text: /* $Id: bootinfo.h,v 1.1.1.1 2001/02/22 14:58:58 serg Exp $
   *
   * bootinfo.h -- Definition of the Linux/MIPS boot information structure
   *
   * Copyright (C) 1995 - 1999 by Ralf Baechle
   * Copyright (C) 1995, 1996 by Stoned Elipot and Paul M. Antoine.
   * Copyright (C) 1999 Ralf Baechle
   *
   * This file is subject to the terms and conditions of the GNU General Public
   * License.  See the file COPYING in the main directory of this archive
   * for more details.
   */
  #ifndef _ASM_BOOTINFO_H
  #define _ASM_BOOTINFO_H
  
  /*
   * Values for machgroup
   */
  #define MACH_GROUP_UNKNOWN      0 /* whatever... */
  #define MACH_GROUP_JAZZ     	1 /* Jazz                                     */
  #define MACH_GROUP_DEC          2 /* Digital Equipment                        */
  #define MACH_GROUP_ARC		3 /* Wreckstation Tyne, rPC44, possibly other */
  #define MACH_GROUP_SNI_RM	4 /* Siemens Nixdorf RM series                */
  #define MACH_GROUP_ACN		5
  #define MACH_GROUP_SGI          6 /* Silicon Graphics workstations and servers */
  #define MACH_GROUP_COBALT       7 /* Cobalt servers		 	      */
  
  #define GROUP_NAMES { "unknown", "Jazz", "Digital", "ARC", \
                        "SNI", "ACN", "SGI", "Cobalt" }
  
  /*
   * Valid machtype values for group unknown (low order halfword of mips_machtype)
   */
  #define MACH_UNKNOWN		0	/* whatever...			*/
  
  #define GROUP_UNKNOWN_NAMES { "unknown" }
  
  /*
   * Valid machtype values for group JAZZ
   */
  #define MACH_ACER_PICA_61	0	/* Acer PICA-61 (PICA1)		*/
  #define MACH_MIPS_MAGNUM_4000	1	/* Mips Magnum 4000 "RC4030"	*/
  #define MACH_OLIVETTI_M700      2	/* Olivetti M700-10 (-15 ??)    */
  
  #define GROUP_JAZZ_NAMES { "Acer PICA 61", "Mips Magnum 4000", "Olivetti M700" }
  
  /*
   * Valid machtype for group DEC 
   */
  #define MACH_DSUNKNOWN		0
  #define MACH_DS23100		1	/* DECstation 2100 or 3100	*/
  #define MACH_DS5100		2	/* DECstation 5100		*/
  #define MACH_DS5000_200		3	/* DECstation 5000/200		*/
  #define MACH_DS5000_1XX		4	/* DECstation 5000/120, 125, 133, 150 */
  #define MACH_DS5000_XX		5	/* DECstation 5000/20, 25, 33, 50 */
  #define MACH_DS5000_2X0		6	/* DECstation 5000/240, 260	*/
  #define MACH_DS5400		7	/* DECstation 5400		*/
  #define MACH_DS5500		8	/* DECstation 5500		*/
  #define MACH_DS5800		9	/* DECstation 5800		*/
  
  #define GROUP_DEC_NAMES { "unknown", "DECstation 2100/3100", "DECstation 5100", \
  	"DECstation 5000/200", "DECstation 5000/1xx", "Personal DECstation 5000/xx", \
  	"DECstation 5000/2x0", "DECstation 5400", "DECstation 5500", \
  	"DECstation 5800" }
  
  /*
   * Valid machtype for group ARC
   */
  #define MACH_DESKSTATION_RPC44  0	/* Deskstation rPC44 */
  #define MACH_DESKSTATION_TYNE	1	/* Deskstation Tyne */
  
  #define GROUP_ARC_NAMES { "Deskstation rPC44", "Deskstation Tyne" }
  
  /*
   * Valid machtype for group SNI_RM
   */
  #define MACH_SNI_RM200_PCI	0	/* RM200/RM300/RM400 PCI series */
  
  #define GROUP_SNI_RM_NAMES { "RM200 PCI" }
  
  /*
   * Valid machtype for group ACN
   */
  #define MACH_ACN_MIPS_BOARD	0       /* ACN MIPS single board        */
  
  #define GROUP_ACN_NAMES { "ACN" }
  
  /*
   * Valid machtype for group SGI
   */
  #define MACH_SGI_INDY		0	/* R4?K and R5K Indy workstaions */
  #define MACH_SGI_CHALLENGE_S	1       /* The Challenge S server */
  #define MACH_SGI_INDIGO2	2	/* The Indigo2 system */
  #define MACH_SGI_IP27		3	/* Origin 200, Origin 2000, Onyx 2 */
  
  #define GROUP_SGI_NAMES { "Indy", "Challenge S", "Indigo2", "IP27" }
  
  
  /*
   * Valid machtype for group COBALT
   */
  #define MACH_COBALT_27 		 0	/* Proto "27" hardware */
  
  #define GROUP_COBALT_NAMES { "Microserver 27" }
  
  /*
   * Valid cputype values
   */
  #define CPU_UNKNOWN		0
  #define CPU_R2000		1
  #define CPU_R3000		2
  #define CPU_R3000A		3
  #define CPU_R3041		4
  #define CPU_R3051		5
  #define CPU_R3052		6
  #define CPU_R3081		7
  #define CPU_R3081E		8
  #define CPU_R4000PC		9
  #define CPU_R4000SC		10
  #define CPU_R4000MC		11
  #define CPU_R4200		12
  #define CPU_R4400PC		13
  #define CPU_R4400SC		14
  #define CPU_R4400MC		15
  #define CPU_R4600		16
  #define CPU_R6000		17
  #define CPU_R6000A		18
  #define CPU_R8000		19
  #define CPU_R10000		20
  #define CPU_R4300		21
  #define CPU_R4650		22
  #define CPU_R4700		23
  #define CPU_R5000		24
  #define CPU_R5000A		25
  #define CPU_R4640		26
  #define CPU_NEVADA		27	/* RM5230, RM5260 */
  #define CPU_LAST		27
  
  #define CPU_NAMES { "unknown", "R2000", "R3000", "R3000A", "R3041", "R3051", \
          "R3052", "R3081", "R3081E", "R4000PC", "R4000SC", "R4000MC",         \
          "R4200", "R4400PC", "R4400SC", "R4400MC", "R4600", "R6000",          \
          "R6000A", "R8000", "R10000", "R4300", "R4650", "R4700", "R5000",     \
          "R5000A", "R4640", "Nevada" }
  
  #define CL_SIZE      (80)
  
  #ifndef _LANGUAGE_ASSEMBLY
  
  /*
   * Some machine parameters passed by the bootloaders. 
   */
  
  struct drive_info_struct {
  	char dummy[32];
  };
  
  extern unsigned long mips_memory_upper;
  extern unsigned long mips_cputype;
  extern unsigned long mips_machtype;
  extern unsigned long mips_machgroup;
  extern unsigned long mips_tlb_entries;
  
  #endif /* _LANGUAGE_ASSEMBLY */
  
  #endif /* _ASM_BOOTINFO_H */
  