home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / bootinfo.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  7.8 KB  |  262 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General Public
  3.  * License.  See the file COPYING in the main directory of this archive
  4.  * for more details.
  5.  *
  6.  * Copyright (C) 1995, 1996, 2003 by Ralf Baechle
  7.  * Copyright (C) 1995, 1996 Andreas Busse
  8.  * Copyright (C) 1995, 1996 Stoned Elipot
  9.  * Copyright (C) 1995, 1996 Paul M. Antoine.
  10.  */
  11. #ifndef _ASM_BOOTINFO_H
  12. #define _ASM_BOOTINFO_H
  13.  
  14. #include <linux/types.h>
  15. #include <asm/setup.h>
  16.  
  17. /*
  18.  * The MACH_GROUP_ IDs are the equivalent to PCI vendor IDs; the remaining
  19.  * MACH_ values equivalent to product IDs.  As such the numbers do not
  20.  * necessarily reflect technical relations or similarities between systems.
  21.  */
  22.  
  23. /*
  24.  * Valid machtype values for group unknown
  25.  */
  26. #define MACH_GROUP_UNKNOWN      0    /* whatever...            */
  27. #define  MACH_UNKNOWN        0    /* whatever...            */
  28.  
  29. /*
  30.  * Valid machtype values for group JAZZ
  31.  */
  32. #define MACH_GROUP_JAZZ        1     /* Jazz                */
  33. #define  MACH_ACER_PICA_61    0    /* Acer PICA-61 (PICA1)        */
  34. #define  MACH_MIPS_MAGNUM_4000    1    /* Mips Magnum 4000 "RC4030"    */
  35. #define  MACH_OLIVETTI_M700    2    /* Olivetti M700-10 (-15 ??)    */
  36.  
  37. /*
  38.  * Valid machtype for group DEC
  39.  */
  40. #define MACH_GROUP_DEC          2    /* Digital Equipment        */
  41. #define  MACH_DSUNKNOWN        0
  42. #define  MACH_DS23100        1    /* DECstation 2100 or 3100    */
  43. #define  MACH_DS5100        2    /* DECsystem 5100        */
  44. #define  MACH_DS5000_200    3    /* DECstation 5000/200        */
  45. #define  MACH_DS5000_1XX    4    /* DECstation 5000/120, 125, 133, 150 */
  46. #define  MACH_DS5000_XX        5    /* DECstation 5000/20, 25, 33, 50 */
  47. #define  MACH_DS5000_2X0    6    /* DECstation 5000/240, 260    */
  48. #define  MACH_DS5400        7    /* DECsystem 5400        */
  49. #define  MACH_DS5500        8    /* DECsystem 5500        */
  50. #define  MACH_DS5800        9    /* DECsystem 5800        */
  51. #define  MACH_DS5900        10    /* DECsystem 5900        */
  52.  
  53. /*
  54.  * Valid machtype for group ARC
  55.  */
  56. #define MACH_GROUP_ARC        3    /* Deskstation            */
  57. #define MACH_DESKSTATION_RPC44  0    /* Deskstation rPC44 */
  58. #define MACH_DESKSTATION_TYNE    1    /* Deskstation Tyne */
  59.  
  60. /*
  61.  * Valid machtype for group SNI_RM
  62.  */
  63. #define MACH_GROUP_SNI_RM    4    /* Siemens Nixdorf RM series    */
  64. #define  MACH_SNI_RM200_PCI    0    /* RM200/RM300/RM400 PCI series */
  65.  
  66. /*
  67.  * Valid machtype for group ACN
  68.  */
  69. #define MACH_GROUP_ACN        5
  70. #define  MACH_ACN_MIPS_BOARD    0       /* ACN MIPS single board        */
  71.  
  72. /*
  73.  * Valid machtype for group SGI
  74.  */
  75. #define MACH_GROUP_SGI          6    /* Silicon Graphics        */
  76. #define  MACH_SGI_IP22        0    /* Indy, Indigo2, Challenge S    */
  77. #define  MACH_SGI_IP27        1    /* Origin 200, Origin 2000, Onyx 2 */
  78. #define  MACH_SGI_IP28        2    /* Indigo2 Impact        */
  79. #define  MACH_SGI_IP32        3    /* O2                */
  80. #define  MACH_SGI_IP30        4    /* Octane, Octane2              */
  81.  
  82. /*
  83.  * Valid machtype for group COBALT
  84.  */
  85. #define MACH_GROUP_COBALT       7    /* Cobalt servers        */
  86. #define  MACH_COBALT_27        0    /* Proto "27" hardware        */
  87.  
  88. /*
  89.  * Valid machtype for group NEC DDB
  90.  */
  91. #define MACH_GROUP_NEC_DDB    8    /* NEC DDB            */
  92. #define  MACH_NEC_DDB5074    0    /* NEC DDB Vrc-5074 */
  93. #define  MACH_NEC_DDB5476    1    /* NEC DDB Vrc-5476 */
  94. #define  MACH_NEC_DDB5477    2    /* NEC DDB Vrc-5477 */
  95. #define  MACH_NEC_ROCKHOPPER    3    /* Rockhopper base board */
  96. #define  MACH_NEC_ROCKHOPPERII    4    /* Rockhopper II base board */
  97.  
  98. /*
  99.  * Valid machtype for group BAGET
  100.  */
  101. #define MACH_GROUP_BAGET    9    /* Baget            */
  102. #define  MACH_BAGET201        0    /* BT23-201 */
  103. #define  MACH_BAGET202        1    /* BT23-202 */
  104.  
  105. /*
  106.  * Cosine boards.
  107.  */
  108. #define MACH_GROUP_COSINE      10    /* CoSine Orion            */
  109. #define  MACH_COSINE_ORION    0
  110.  
  111. /*
  112.  * Valid machtype for group GALILEO
  113.  */
  114. #define MACH_GROUP_GALILEO     11    /* Galileo Eval Boards        */
  115. #define  MACH_EV96100        0    /* EV96100 */
  116. #define  MACH_EV64120A        1    /* EV64120A */
  117.  
  118. /*
  119.  * Valid machtype for group MOMENCO
  120.  */
  121. #define MACH_GROUP_MOMENCO    12    /* Momentum Boards        */
  122. #define  MACH_MOMENCO_OCELOT    0
  123. #define  MACH_MOMENCO_OCELOT_G    1
  124. #define  MACH_MOMENCO_OCELOT_C    2
  125. #define  MACH_MOMENCO_JAGUAR_ATX 3
  126. #define  MACH_MOMENCO_OCELOT_3    4
  127.  
  128. /*
  129.  * Valid machtype for group ITE
  130.  */
  131. #define MACH_GROUP_ITE        13    /* ITE Semi Eval Boards        */
  132. #define  MACH_QED_4N_S01B    0    /* ITE8172 based eval board */
  133.  
  134. /*
  135.  * Valid machtype for group PHILIPS
  136.  */
  137. #define MACH_GROUP_PHILIPS     14
  138. #define  MACH_PHILIPS_NINO    0    /* Nino */
  139. #define  MACH_PHILIPS_VELO    1    /* Velo */
  140. #define  MACH_PHILIPS_JBS    2    /* JBS */
  141.  
  142. /*
  143.  * Valid machtype for group Globespan
  144.  */
  145. #define MACH_GROUP_GLOBESPAN   15    /* Globespan */
  146. #define  MACH_IVR        0    /* IVR eval board */
  147.  
  148. /*
  149.  * Valid machtype for group SIBYTE
  150.  */
  151. #define MACH_GROUP_SIBYTE    16    /* Sibyte / Broadcom */
  152. #define  MACH_SWARM              0
  153.  
  154. /*
  155.  * Valid machtypes for group Toshiba
  156.  */
  157. #define MACH_GROUP_TOSHIBA    17 /* Toshiba Reference Systems TSBREF       */
  158. #define  MACH_PALLAS        0
  159. #define  MACH_TOPAS        1
  160. #define  MACH_JMR        2
  161. #define  MACH_TOSHIBA_JMR3927    3    /* JMR-TX3927 CPU/IO board */
  162. #define  MACH_TOSHIBA_RBTX4927    4
  163. #define  MACH_TOSHIBA_RBTX4937    5
  164. #define  MACH_TOSHIBA_RBTX4938    6
  165.  
  166. #define GROUP_TOSHIBA_NAMES    { "Pallas", "TopasCE", "JMR", "JMR TX3927", \
  167.                   "RBTX4927", "RBTX4937" }
  168.  
  169. /*
  170.  * Valid machtype for group Alchemy
  171.  */
  172. #define MACH_GROUP_ALCHEMY     18    /* AMD Alchemy    */
  173. #define  MACH_PB1000        0    /* Au1000-based eval board */
  174. #define  MACH_PB1100        1    /* Au1100-based eval board */
  175. #define  MACH_PB1500        2    /* Au1500-based eval board */
  176. #define  MACH_DB1000        3       /* Au1000-based eval board */
  177. #define  MACH_DB1100        4       /* Au1100-based eval board */
  178. #define  MACH_DB1500        5       /* Au1500-based eval board */
  179. #define  MACH_XXS1500        6       /* Au1500-based eval board */
  180. #define  MACH_MTX1        7       /* 4G MTX-1 Au1500-based board */
  181. #define  MACH_PB1550        8       /* Au1550-based eval board */
  182. #define  MACH_DB1550        9       /* Au1550-based eval board */
  183. #define  MACH_PB1200        10       /* Au1200-based eval board */
  184. #define  MACH_DB1200        11       /* Au1200-based eval board */
  185.  
  186. /*
  187.  * Valid machtype for group NEC_VR41XX
  188.  *
  189.  * Various NEC-based devices.
  190.  *
  191.  * FIXME: MACH_GROUPs should be by _MANUFACTURER_ of * the device, not by
  192.  *        technical properties, so no new additions to this group.
  193.  */
  194. #define MACH_GROUP_NEC_VR41XX  19
  195. #define  MACH_NEC_OSPREY    0    /* Osprey eval board */
  196. #define  MACH_NEC_EAGLE        1    /* NEC Eagle/Hawk board */
  197. #define  MACH_ZAO_CAPCELLA    2    /* ZAO Networks Capcella */
  198. #define  MACH_VICTOR_MPC30X    3    /* Victor MP-C303/304 */
  199. #define  MACH_IBM_WORKPAD    4    /* IBM WorkPad z50 */
  200. #define  MACH_CASIO_E55        5    /* CASIO CASSIOPEIA E-10/15/55/65 */
  201. #define  MACH_TANBAC_TB0226    6    /* TANBAC TB0226 (Mbase) */
  202. #define  MACH_TANBAC_TB0229    7    /* TANBAC TB0229 (VR4131DIMM) */
  203. #define  MACH_NEC_CMBVR4133    8    /* CMB VR4133 Board */
  204.  
  205. #define MACH_GROUP_HP_LJ    20    /* Hewlett Packard LaserJet    */
  206. #define  MACH_HP_LASERJET    1
  207.  
  208. /*
  209.  * Valid machtype for group LASAT
  210.  */
  211. #define MACH_GROUP_LASAT       21
  212. #define  MACH_LASAT_100        0    /* Masquerade II/SP100/SP50/SP25 */
  213. #define  MACH_LASAT_200        1    /* Masquerade PRO/SP200 */
  214.  
  215. /*
  216.  * Valid machtype for group TITAN
  217.  */
  218. #define MACH_GROUP_TITAN       22    /* PMC-Sierra Titan        */
  219. #define  MACH_TITAN_YOSEMITE    1    /* PMC-Sierra Yosemite        */
  220.  
  221. #define CL_SIZE            COMMAND_LINE_SIZE
  222.  
  223. const char *get_system_type(void);
  224.  
  225. extern unsigned long mips_machtype;
  226. extern unsigned long mips_machgroup;
  227.  
  228. #define BOOT_MEM_MAP_MAX    32
  229. #define BOOT_MEM_RAM        1
  230. #define BOOT_MEM_ROM_DATA    2
  231. #define BOOT_MEM_RESERVED    3
  232.  
  233. /*
  234.  * A memory map that's built upon what was determined
  235.  * or specified on the command line.
  236.  */
  237. struct boot_mem_map {
  238.     int nr_map;
  239.     struct boot_mem_map_entry {
  240.         phys_t addr;    /* start of memory segment */
  241.         phys_t size;    /* size of memory segment */
  242.         long type;        /* type of memory segment */
  243.     } map[BOOT_MEM_MAP_MAX];
  244. };
  245.  
  246. extern struct boot_mem_map boot_mem_map;
  247.  
  248. extern void add_memory_region(phys_t start, phys_t size, long type);
  249.  
  250. extern void prom_init(void);
  251.  
  252. /*
  253.  * Initial kernel command line, usually setup by prom_init()
  254.  */
  255. extern char arcs_cmdline[CL_SIZE];
  256.  
  257. /*
  258.  * Registers a0, a1, a3 and a4 as passed to the kenrel entry by firmware
  259.  */
  260. extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
  261. #endif /* _ASM_BOOTINFO_H */
  262.