Path: blob/master/arch/x86/include/asm/bootparam.h
10821 views
#ifndef _ASM_X86_BOOTPARAM_H1#define _ASM_X86_BOOTPARAM_H23#include <linux/types.h>4#include <linux/screen_info.h>5#include <linux/apm_bios.h>6#include <linux/edd.h>7#include <asm/e820.h>8#include <asm/ist.h>9#include <video/edid.h>1011/* setup data types */12#define SETUP_NONE 013#define SETUP_E820_EXT 114#define SETUP_DTB 21516/* extensible setup data list node */17struct setup_data {18__u64 next;19__u32 type;20__u32 len;21__u8 data[0];22};2324struct setup_header {25__u8 setup_sects;26__u16 root_flags;27__u32 syssize;28__u16 ram_size;29#define RAMDISK_IMAGE_START_MASK 0x07FF30#define RAMDISK_PROMPT_FLAG 0x800031#define RAMDISK_LOAD_FLAG 0x400032__u16 vid_mode;33__u16 root_dev;34__u16 boot_flag;35__u16 jump;36__u32 header;37__u16 version;38__u32 realmode_swtch;39__u16 start_sys;40__u16 kernel_version;41__u8 type_of_loader;42__u8 loadflags;43#define LOADED_HIGH (1<<0)44#define QUIET_FLAG (1<<5)45#define KEEP_SEGMENTS (1<<6)46#define CAN_USE_HEAP (1<<7)47__u16 setup_move_size;48__u32 code32_start;49__u32 ramdisk_image;50__u32 ramdisk_size;51__u32 bootsect_kludge;52__u16 heap_end_ptr;53__u8 ext_loader_ver;54__u8 ext_loader_type;55__u32 cmd_line_ptr;56__u32 initrd_addr_max;57__u32 kernel_alignment;58__u8 relocatable_kernel;59__u8 _pad2[3];60__u32 cmdline_size;61__u32 hardware_subarch;62__u64 hardware_subarch_data;63__u32 payload_offset;64__u32 payload_length;65__u64 setup_data;66} __attribute__((packed));6768struct sys_desc_table {69__u16 length;70__u8 table[14];71};7273/* Gleaned from OFW's set-parameters in cpu/x86/pc/linux.fth */74struct olpc_ofw_header {75__u32 ofw_magic; /* OFW signature */76__u32 ofw_version;77__u32 cif_handler; /* callback into OFW */78__u32 irq_desc_table;79} __attribute__((packed));8081struct efi_info {82__u32 efi_loader_signature;83__u32 efi_systab;84__u32 efi_memdesc_size;85__u32 efi_memdesc_version;86__u32 efi_memmap;87__u32 efi_memmap_size;88__u32 efi_systab_hi;89__u32 efi_memmap_hi;90};9192/* The so-called "zeropage" */93struct boot_params {94struct screen_info screen_info; /* 0x000 */95struct apm_bios_info apm_bios_info; /* 0x040 */96__u8 _pad2[4]; /* 0x054 */97__u64 tboot_addr; /* 0x058 */98struct ist_info ist_info; /* 0x060 */99__u8 _pad3[16]; /* 0x070 */100__u8 hd0_info[16]; /* obsolete! */ /* 0x080 */101__u8 hd1_info[16]; /* obsolete! */ /* 0x090 */102struct sys_desc_table sys_desc_table; /* 0x0a0 */103struct olpc_ofw_header olpc_ofw_header; /* 0x0b0 */104__u8 _pad4[128]; /* 0x0c0 */105struct edid_info edid_info; /* 0x140 */106struct efi_info efi_info; /* 0x1c0 */107__u32 alt_mem_k; /* 0x1e0 */108__u32 scratch; /* Scratch field! */ /* 0x1e4 */109__u8 e820_entries; /* 0x1e8 */110__u8 eddbuf_entries; /* 0x1e9 */111__u8 edd_mbr_sig_buf_entries; /* 0x1ea */112__u8 _pad6[6]; /* 0x1eb */113struct setup_header hdr; /* setup header */ /* 0x1f1 */114__u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)];115__u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */116struct e820entry e820_map[E820MAX]; /* 0x2d0 */117__u8 _pad8[48]; /* 0xcd0 */118struct edd_info eddbuf[EDDMAXNR]; /* 0xd00 */119__u8 _pad9[276]; /* 0xeec */120} __attribute__((packed));121122enum {123X86_SUBARCH_PC = 0,124X86_SUBARCH_LGUEST,125X86_SUBARCH_XEN,126X86_SUBARCH_MRST,127X86_SUBARCH_CE4100,128X86_NR_SUBARCHS,129};130131132133#endif /* _ASM_X86_BOOTPARAM_H */134135136