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 */
  64#define MACH_LOONGSON_UNKNOWN  0
  65#define MACH_LEMOTE_FL2E       1
  66#define MACH_LEMOTE_FL2F       2
  67#define MACH_LEMOTE_ML2F7      3
  68#define MACH_LEMOTE_YL2F89     4
  69#define MACH_DEXXON_GDIUM2F10  5
  70#define MACH_LEMOTE_NAS        6
  71#define MACH_LEMOTE_LL2F       7
  72#define MACH_LOONGSON_END      8
  73
  74/*
  75 * Valid machtype for group INGENIC
  76 */
  77#define  MACH_INGENIC_JZ4730    0       /* JZ4730 SOC           */
  78#define  MACH_INGENIC_JZ4740    1       /* JZ4740 SOC           */
  79
  80extern char *system_type;
  81const char *get_system_type(void);
  82
  83extern unsigned long mips_machtype;
  84
  85#define BOOT_MEM_MAP_MAX        32
  86#define BOOT_MEM_RAM            1
  87#define BOOT_MEM_ROM_DATA       2
  88#define BOOT_MEM_RESERVED       3
  89
  90/*
  91 * A memory map that's built upon what was determined
  92 * or specified on the command line.
  93 */
  94struct boot_mem_map {
  95        int nr_map;
  96        struct boot_mem_map_entry {
  97                phys_t addr;    /* start of memory segment */
  98                phys_t size;    /* size of memory segment */
  99                long type;              /* type of memory segment */
 100        } map[BOOT_MEM_MAP_MAX];
 101};
 102
 103extern struct boot_mem_map boot_mem_map;
 104
 105extern void add_memory_region(phys_t start, phys_t size, long type);
 106
 107extern void prom_init(void);
 108extern void prom_free_prom_memory(void);
 109
 110extern void free_init_pages(const char *what,
 111                            unsigned long begin, unsigned long end);
 112
 113/*
 114 * Initial kernel command line, usually setup by prom_init()
 115 */
 116extern char arcs_cmdline[COMMAND_LINE_SIZE];
 117
 118/*
 119 * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
 120 */
 121extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
 122
 123/*
 124 * Platform memory detection hook called by setup_arch
 125 */
 126extern void plat_mem_setup(void);
 127
 128#ifdef CONFIG_SWIOTLB
 129/*
 130 * Optional platform hook to call swiotlb_setup().
 131 */
 132extern void plat_swiotlb_setup(void);
 133
 134#else
 135
 136static inline void plat_swiotlb_setup(void) {}
 137
 138#endif /* CONFIG_SWIOTLB */
 139
 140#endif /* _ASM_BOOTINFO_H */
 141