home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.2 / LINUX-1.2 / LINUX-1 / linux / include / asm-mips / bootinfo.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-18  |  4.1 KB  |  160 lines

  1. /*
  2.  * bootinfo.h -- Definition of the Linux/MIPS boot information structure
  3.  *
  4.  * Copyright (C) 1994 by Waldorf Electronics
  5.  * Written by Ralf Baechle and Andreas Busse
  6.  *
  7.  * Based on Linux/68k linux/include/linux/bootstrap.h
  8.  * Copyright (C) 1992 by Greg Harp
  9.  *
  10.  * This file is subject to the terms and conditions of the GNU General Public
  11.  * License.  See the file README.legal in the main directory of this archive
  12.  * for more details.
  13.  */
  14.  
  15. #ifndef __ASM_MIPS_BOOTINFO_H
  16. #define __ASM_MIPS_BOOTINFO_H
  17.  
  18. /*
  19.  * Valid values for machtype field
  20.  */
  21. #define MACH_UNKNOWN        0        /* whatever... */
  22. #define MACH_DESKSTATION_TYNE    1        /* Deskstation Tyne    */
  23. #define MACH_ACER_PICA_61    2        /* Acer PICA-61 (PICA1) */
  24. #define MACH_MIPS_MAGNUM_4000    3        /* Mips Magnum 4000 (aka RC4030) */
  25.  
  26. /*
  27.  * Valid values for cputype field
  28.  */
  29. #define CPU_UNKNOWN        0
  30. #define CPU_R2000        1
  31. #define CPU_R3000        2
  32. #define CPU_R3000A        3
  33. #define CPU_R3041        4
  34. #define CPU_R3051        5
  35. #define CPU_R3052        6
  36. #define CPU_R3081        7
  37. #define CPU_R3081E        8
  38. #define CPU_R4000PC        9
  39. #define CPU_R4000SC        10
  40. #define CPU_R4000MC        11
  41. #define CPU_R4200        12
  42. #define CPU_R4400PC        13
  43. #define CPU_R4400SC        14
  44. #define CPU_R4400MC        15
  45. #define CPU_R4600        16
  46. #define CPU_R6000        17
  47. #define CPU_R6000A        18
  48. #define CPU_R8000        19
  49. #define CPU_R10000        20
  50.  
  51. #define CPU_NAMES { "UNKNOWN", "R2000", "R3000", "R3000A", "R3041", "R3051", \
  52.         "R3052", "R3081", "R3081E", "R4000PC", "R4000SC", "R4000MC",         \
  53.         "R4200", "R4400PC", "R4400SC", "R4400MC", "R4600", "R6000",          \
  54.         "R6000A", "R8000", "R10000" }
  55.  
  56. #define CL_SIZE      (80)
  57.  
  58. #ifndef __ASSEMBLY__
  59.  
  60. /*
  61.  * Some machine parameters passed by MILO. Note that bootinfo
  62.  * *must* be in the data segment since the kernel clears the
  63.  * bss segment directly after startup.
  64.  */
  65.  
  66. struct drive_info_struct {
  67.     char dummy[32];
  68.     };
  69.  
  70. struct bootinfo {
  71.     unsigned long machtype;            /* machine type */
  72.     unsigned long cputype;            /* system CPU & FPU */
  73.  
  74.     /*
  75.      * Installed RAM
  76.      */
  77.     unsigned long memlower;
  78.     unsigned long memupper;
  79.  
  80.     /*
  81.      * Cache Sizes (0xffffffff = unknown)
  82.      */
  83.     unsigned long icache_size;
  84.     unsigned long icache_linesize;
  85.     unsigned long dcache_size;
  86.     unsigned long dcache_linesize;
  87.     unsigned long scache_size;
  88.     unsigned long scache_linesize;
  89.  
  90.     /*
  91.      * TLB Info
  92.      */
  93.     unsigned long tlb_entries;
  94.  
  95.     /*
  96.      * DMA buffer size (Deskstation only)
  97.      */
  98.     unsigned long dma_cache_size;
  99.     unsigned long dma_cache_base;
  100.  
  101.     /*
  102.      * Ramdisk Info
  103.      */
  104.     unsigned long ramdisk_size;        /* ramdisk size in 1024 byte blocks */
  105.     unsigned long ramdisk_base;        /* address of the ram disk in mem */
  106.  
  107.     /*
  108.      * Boot flags for the kernel
  109.      */
  110.     unsigned long mount_root_rdonly;
  111.     struct drive_info_struct drive_info;
  112.  
  113.     /*
  114.      * Video ram info (not in tty.h)
  115.      */
  116.     unsigned long vram_base;        /* video ram base address */
  117.       
  118.     char command_line[CL_SIZE];        /* kernel command line parameters */
  119.   
  120. };
  121.  
  122. extern struct bootinfo boot_info;
  123.  
  124. /*
  125.  * Defaults, may be overwritten by milo. We initialize
  126.  * them to make sure that both boot_info and screen_info
  127.  * are in the .data segment since the .bss segment is
  128.  * cleared during startup.
  129.  */
  130. #define BOOT_INFO { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"" }
  131.  
  132. #else /* !__ASSEMBLY__ */
  133.  
  134. /*
  135.  * Same structure, but as offsets for usage within assembler source.
  136.  * Don't mess with struct bootinfo without changing offsets too!
  137.  */
  138.  
  139. #define OFFSET_BOOTINFO_MACHTYPE           0
  140. #define OFFSET_BOOTINFO_CPUTYPE            4
  141. #define OFFSET_BOOTINFO_MEMLOWER           8
  142. #define OFFSET_BOOTINFO_MEMUPPER          12
  143. #define OFFSET_BOOTINFO_ICACHE_SIZE       16
  144. #define OFFSET_BOOTINFO_ICACHE_LINESIZE   20
  145. #define OFFSET_BOOTINFO_DCACHE_SIZE       24
  146. #define OFFSET_BOOTINFO_DCACHE_LINESIZE   28
  147. #define OFFSET_BOOTINFO_SCACHE_SIZE       32
  148. #define OFFSET_BOOTINFO_SCACHE_LINESIZE   36
  149. #define OFFSET_BOOTINFO_TLB_ENTRIES       40
  150. #define OFFSET_BOOTINFO_DMA_CACHE_SIZE    44
  151. #define OFFSET_BOOTINFO_DMA_CACHE_BASE    48
  152. #define OFFSET_BOOTINFO_RAMDISK_SIZE      52
  153. #define OFFSET_BOOTINFO_RAMDISK_BASE      56
  154. #define OFFSET_BOOTINFO_VRAM_BASE         60
  155. #define OFFSET_BOOTINFO_COMMAND_LINE      64
  156.  
  157. #endif /* __ASSEMBLY__ */
  158.  
  159. #endif /* __ASM_MIPS_BOOTINFO_H */
  160.