root/include/asm-mips/bootinfo.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   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 */

/* [previous][next][first][last][top][bottom][index][help] */