linux/arch/mips/include/asm/bootinfo.h
<<
>>
Prefs
   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 * Copyright (C) 2009       Zhang Le
  11 */
  12#ifndef _ASM_BOOTINFO_H
  13#define _ASM_BOOTINFO_H
  14
  15#include <linux/types.h>
  16#include <asm/setup.h>
  17
  18/*
  19 * The MACH_ IDs are sort of equivalent to PCI product IDs.  As such the
  20 * numbers do not necessarily reflect technical relations or similarities
  21 * between systems.
  22 */
  23
  24/*
  25 * Valid machtype values for group unknown
  26 */
  27#define  MACH_UNKNOWN           0       /* whatever...                  */
  28
  29/*
  30 * Valid machtype for group DEC
  31 */
  32#define  MACH_DSUNKNOWN         0
  33#define  MACH_DS23100           1       /* DECstation 2100 or 3100      */
  34#define  MACH_DS5100            2       /* DECsystem 5100               */
  35#define  MACH_DS5000_200        3       /* DECstation 5000/200          */
  36#define  MACH_DS5000_1XX        4       /* DECstation 5000/120, 125, 133, 150 */
  37#define  MACH_DS5000_XX         5       /* DECstation 5000/20, 25, 33, 50 */
  38#define  MACH_DS5000_2X0        6       /* DECstation 5000/240, 260     */
  39#define  MACH_DS5400            7       /* DECsystem 5400               */
  40#define  MACH_DS5500            8       /* DECsystem 5500               */
  41#define  MACH_DS5800            9       /* DECsystem 5800               */
  42#define  MACH_DS5900            10      /* DECsystem 5900               */
  43
  44/*
  45 * Valid machtype for group PMC-MSP
  46 */
  47#define MACH_MSP4200_EVAL       0       /* PMC-Sierra MSP4200 Evaluation */
  48#define MACH_MSP4200_GW         1       /* PMC-Sierra MSP4200 Gateway demo */
  49#define MACH_MSP4200_FPGA       2       /* PMC-Sierra MSP4200 Emulation */
  50#define MACH_MSP7120_EVAL       3       /* PMC-Sierra MSP7120 Evaluation */
  51#define MACH_MSP7120_GW         4       /* PMC-Sierra MSP7120 Residential GW */
  52#define MACH_MSP7120_FPGA       5       /* PMC-Sierra MSP7120 Emulation */
  53#define MACH_MSP_OTHER        255       /* PMC-Sierra unknown board type */
  54
  55/*
  56 * Valid machtype for group Mikrotik
  57 */
  58#define MACH_MIKROTIK_RB532     0       /* Mikrotik RouterBoard 532     */
  59#define MACH_MIKROTIK_RB532A    1       /* Mikrotik RouterBoard 532A    */
  60
  61/*
  62 * Valid machtype for Loongson family
  63 */
  64enum loongson_machine_type {
  65        MACH_LOONGSON_UNKNOWN,
  66        MACH_LEMOTE_FL2E,
  67        MACH_LEMOTE_FL2F,
  68        MACH_LEMOTE_ML2F7,
  69        MACH_LEMOTE_YL2F89,
  70        MACH_DEXXON_GDIUM2F10,
  71        MACH_LEMOTE_NAS,
  72        MACH_LEMOTE_LL2F,
  73        MACH_LOONGSON_GENERIC,
  74        MACH_LOONGSON_END
  75};
  76
  77/*
  78 * Valid machtype for group INGENIC
  79 */
  80#define  MACH_INGENIC_JZ4730    0       /* JZ4730 SOC           */
  81#define  MACH_INGENIC_JZ4740    1       /* JZ4740 SOC           */
  82
  83extern char *system_type;
  84const char *get_system_type(void);
  85
  86extern unsigned long mips_machtype;
  87
  88#define BOOT_MEM_MAP_MAX        32
  89#define BOOT_MEM_RAM            1
  90#define BOOT_MEM_ROM_DATA       2
  91#define BOOT_MEM_RESERVED       3
  92#define BOOT_MEM_INIT_RAM       4
  93
  94/*
  95 * A memory map that's built upon what was determined
  96 * or specified on the command line.
  97 */
  98struct boot_mem_map {
  99        int nr_map;
 100        struct boot_mem_map_entry {
 101                phys_addr_t addr;       /* start of memory segment */
 102                phys_addr_t size;       /* size of memory segment */
 103                long type;              /* type of memory segment */
 104        } map[BOOT_MEM_MAP_MAX];
 105};
 106
 107extern struct boot_mem_map boot_mem_map;
 108
 109extern void add_memory_region(phys_addr_t start, phys_addr_t size, long type);
 110extern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min,  phys_addr_t sz_max);
 111
 112extern void prom_init(void);
 113extern void prom_free_prom_memory(void);
 114
 115extern void free_init_pages(const char *what,
 116                            unsigned long begin, unsigned long end);
 117
 118extern void (*free_init_pages_eva)(void *begin, void *end);
 119
 120/*
 121 * Initial kernel command line, usually setup by prom_init()
 122 */
 123extern char arcs_cmdline[COMMAND_LINE_SIZE];
 124
 125/*
 126 * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
 127 */
 128extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
 129
 130/*
 131 * Platform memory detection hook called by setup_arch
 132 */
 133extern void plat_mem_setup(void);
 134
 135#ifdef CONFIG_SWIOTLB
 136/*
 137 * Optional platform hook to call swiotlb_setup().
 138 */
 139extern void plat_swiotlb_setup(void);
 140
 141#else
 142
 143static inline void plat_swiotlb_setup(void) {}
 144
 145#endif /* CONFIG_SWIOTLB */
 146
 147#endif /* _ASM_BOOTINFO_H */
 148