linux/arch/mips/loongson/common/machtype.c
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2009 Lemote Inc.
   3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
   4 *
   5 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
   6 *
   7 * This program is free software; you can redistribute  it and/or modify it
   8 * under  the terms of  the GNU General  Public License as published by the
   9 * Free Software Foundation;  either version 2 of the  License, or (at your
  10 * option) any later version.
  11 */
  12#include <linux/errno.h>
  13#include <asm/bootinfo.h>
  14
  15#include <loongson.h>
  16#include <machine.h>
  17
  18/* please ensure the length of the machtype string is less than 50 */
  19#define MACHTYPE_LEN 50
  20
  21static const char *system_types[] = {
  22        [MACH_LOONGSON_UNKNOWN]         "unknown loongson machine",
  23        [MACH_LEMOTE_FL2E]              "lemote-fuloong-2e-box",
  24        [MACH_LEMOTE_FL2F]              "lemote-fuloong-2f-box",
  25        [MACH_LEMOTE_ML2F7]             "lemote-mengloong-2f-7inches",
  26        [MACH_LEMOTE_YL2F89]            "lemote-yeeloong-2f-8.9inches",
  27        [MACH_DEXXON_GDIUM2F10]         "dexxon-gdium-2f",
  28        [MACH_LEMOTE_NAS]               "lemote-nas-2f",
  29        [MACH_LEMOTE_LL2F]              "lemote-lynloong-2f",
  30        [MACH_LOONGSON_END]             NULL,
  31};
  32
  33const char *get_system_type(void)
  34{
  35        return system_types[mips_machtype];
  36}
  37
  38void __weak __init mach_prom_init_machtype(void)
  39{
  40}
  41
  42void __init prom_init_machtype(void)
  43{
  44        char *p, str[MACHTYPE_LEN + 1];
  45        int machtype = MACH_LEMOTE_FL2E;
  46
  47        mips_machtype = LOONGSON_MACHTYPE;
  48
  49        p = strstr(arcs_cmdline, "machtype=");
  50        if (!p) {
  51                mach_prom_init_machtype();
  52                return;
  53        }
  54        p += strlen("machtype=");
  55        strncpy(str, p, MACHTYPE_LEN);
  56        str[MACHTYPE_LEN] = '\0';
  57        p = strstr(str, " ");
  58        if (p)
  59                *p = '\0';
  60
  61        for (; system_types[machtype]; machtype++)
  62                if (strstr(system_types[machtype], str)) {
  63                        mips_machtype = machtype;
  64                        break;
  65                }
  66}
  67
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.