root/arch/mips/loongson64/common/machtype.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. get_system_type
  2. mach_prom_init_machtype
  3. prom_init_machtype

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  * Copyright (C) 2009 Lemote Inc.
   4  * Author: Wu Zhangjin, wuzhangjin@gmail.com
   5  *
   6  * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
   7  */
   8 #include <linux/errno.h>
   9 #include <asm/bootinfo.h>
  10 
  11 #include <loongson.h>
  12 #include <machine.h>
  13 
  14 /* please ensure the length of the machtype string is less than 50 */
  15 #define MACHTYPE_LEN 50
  16 
  17 static const char *system_types[] = {
  18         [MACH_LOONGSON_UNKNOWN] = "unknown loongson machine",
  19         [MACH_LEMOTE_FL2E]      = "lemote-fuloong-2e-box",
  20         [MACH_LEMOTE_FL2F]      = "lemote-fuloong-2f-box",
  21         [MACH_LEMOTE_ML2F7]     = "lemote-mengloong-2f-7inches",
  22         [MACH_LEMOTE_YL2F89]    = "lemote-yeeloong-2f-8.9inches",
  23         [MACH_DEXXON_GDIUM2F10] = "dexxon-gdium-2f",
  24         [MACH_LEMOTE_NAS]       = "lemote-nas-2f",
  25         [MACH_LEMOTE_LL2F]      = "lemote-lynloong-2f",
  26         [MACH_LOONGSON_GENERIC] = "generic-loongson-machine",
  27         [MACH_LOONGSON_END]     = NULL,
  28 };
  29 
  30 const char *get_system_type(void)
  31 {
  32         return system_types[mips_machtype];
  33 }
  34 
  35 void __weak __init mach_prom_init_machtype(void)
  36 {
  37 }
  38 
  39 void __init prom_init_machtype(void)
  40 {
  41         char *p, str[MACHTYPE_LEN + 1];
  42         int machtype = MACH_LEMOTE_FL2E;
  43 
  44         mips_machtype = LOONGSON_MACHTYPE;
  45 
  46         p = strstr(arcs_cmdline, "machtype=");
  47         if (!p) {
  48                 mach_prom_init_machtype();
  49                 return;
  50         }
  51         p += strlen("machtype=");
  52         strncpy(str, p, MACHTYPE_LEN);
  53         str[MACHTYPE_LEN] = '\0';
  54         p = strstr(str, " ");
  55         if (p)
  56                 *p = '\0';
  57 
  58         for (; system_types[machtype]; machtype++)
  59                 if (strstr(system_types[machtype], str)) {
  60                         mips_machtype = machtype;
  61                         break;
  62                 }
  63 }

/* [<][>][^][v][top][bottom][index][help] */