root/arch/mips/include/asm/bootinfo.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. plat_swiotlb_setup

   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 enum 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 #define  MACH_INGENIC_JZ4770    2       /* JZ4770 SOC           */
  83 #define  MACH_INGENIC_JZ4780    3       /* JZ4780 SOC           */
  84 #define  MACH_INGENIC_X1000             4       /* X1000 SOC            */
  85 
  86 extern char *system_type;
  87 const char *get_system_type(void);
  88 
  89 extern unsigned long mips_machtype;
  90 
  91 #define BOOT_MEM_RAM            1
  92 #define BOOT_MEM_ROM_DATA       2
  93 #define BOOT_MEM_RESERVED       3
  94 #define BOOT_MEM_INIT_RAM       4
  95 #define BOOT_MEM_NOMAP          5
  96 
  97 extern void add_memory_region(phys_addr_t start, phys_addr_t size, long type);
  98 extern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min,  phys_addr_t sz_max);
  99 
 100 extern void prom_init(void);
 101 extern void prom_free_prom_memory(void);
 102 
 103 extern void free_init_pages(const char *what,
 104                             unsigned long begin, unsigned long end);
 105 
 106 extern void (*free_init_pages_eva)(void *begin, void *end);
 107 
 108 /*
 109  * Initial kernel command line, usually setup by prom_init()
 110  */
 111 extern char arcs_cmdline[COMMAND_LINE_SIZE];
 112 
 113 /*
 114  * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
 115  */
 116 extern unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
 117 
 118 #ifdef CONFIG_USE_OF
 119 extern unsigned long fw_passed_dtb;
 120 #endif
 121 
 122 /*
 123  * Platform memory detection hook called by setup_arch
 124  */
 125 extern void plat_mem_setup(void);
 126 
 127 #ifdef CONFIG_SWIOTLB
 128 /*
 129  * Optional platform hook to call swiotlb_setup().
 130  */
 131 extern void plat_swiotlb_setup(void);
 132 
 133 #else
 134 
 135 static inline void plat_swiotlb_setup(void) {}
 136 
 137 #endif /* CONFIG_SWIOTLB */
 138 
 139 #ifdef CONFIG_USE_OF
 140 /**
 141  * plat_get_fdt() - Return a pointer to the platform's device tree blob
 142  *
 143  * This function provides a platform independent API to get a pointer to the
 144  * flattened device tree blob. The interface between bootloader and kernel
 145  * is not consistent across platforms so it is necessary to provide this
 146  * API such that common startup code can locate the FDT.
 147  *
 148  * This is used by the KASLR code to get command line arguments and random
 149  * seed from the device tree. Any platform wishing to use KASLR should
 150  * provide this API and select SYS_SUPPORTS_RELOCATABLE.
 151  *
 152  * Return: Pointer to the flattened device tree blob.
 153  */
 154 extern void *plat_get_fdt(void);
 155 
 156 #ifdef CONFIG_RELOCATABLE
 157 
 158 /**
 159  * plat_fdt_relocated() - Update platform's information about relocated dtb
 160  *
 161  * This function provides a platform-independent API to set platform's
 162  * information about relocated DTB if it needs to be moved due to kernel
 163  * relocation occurring at boot.
 164  */
 165 void plat_fdt_relocated(void *new_location);
 166 
 167 #endif /* CONFIG_RELOCATABLE */
 168 #endif /* CONFIG_USE_OF */
 169 
 170 #endif /* _ASM_BOOTINFO_H */

/* [<][>][^][v][top][bottom][index][help] */