1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _ASM_X86_BOOTPARAM_H 8 #define _ASM_X86_BOOTPARAM_H 9 #include <asm/setup_data.h> 10 #define RAMDISK_IMAGE_START_MASK 0x07FF 11 #define RAMDISK_PROMPT_FLAG 0x8000 12 #define RAMDISK_LOAD_FLAG 0x4000 13 #define LOADED_HIGH (1 << 0) 14 #define KASLR_FLAG (1 << 1) 15 #define QUIET_FLAG (1 << 5) 16 #define KEEP_SEGMENTS (1 << 6) 17 #define CAN_USE_HEAP (1 << 7) 18 #define XLF_KERNEL_64 (1 << 0) 19 #define XLF_CAN_BE_LOADED_ABOVE_4G (1 << 1) 20 #define XLF_EFI_HANDOVER_32 (1 << 2) 21 #define XLF_EFI_HANDOVER_64 (1 << 3) 22 #define XLF_EFI_KEXEC (1 << 4) 23 #define XLF_5LEVEL (1 << 5) 24 #define XLF_5LEVEL_ENABLED (1 << 6) 25 #define XLF_MEM_ENCRYPTION (1 << 7) 26 #ifndef __ASSEMBLY__ 27 #include <linux/types.h> 28 #include <linux/screen_info.h> 29 #include <linux/apm_bios.h> 30 #include <linux/edd.h> 31 #include <asm/ist.h> 32 #include <video/edid.h> 33 struct setup_header { 34 __u8 setup_sects; 35 __u16 root_flags; 36 __u32 syssize; 37 __u16 ram_size; 38 __u16 vid_mode; 39 __u16 root_dev; 40 __u16 boot_flag; 41 __u16 jump; 42 __u32 header; 43 __u16 version; 44 __u32 realmode_swtch; 45 __u16 start_sys_seg; 46 __u16 kernel_version; 47 __u8 type_of_loader; 48 __u8 loadflags; 49 __u16 setup_move_size; 50 __u32 code32_start; 51 __u32 ramdisk_image; 52 __u32 ramdisk_size; 53 __u32 bootsect_kludge; 54 __u16 heap_end_ptr; 55 __u8 ext_loader_ver; 56 __u8 ext_loader_type; 57 __u32 cmd_line_ptr; 58 __u32 initrd_addr_max; 59 __u32 kernel_alignment; 60 __u8 relocatable_kernel; 61 __u8 min_alignment; 62 __u16 xloadflags; 63 __u32 cmdline_size; 64 __u32 hardware_subarch; 65 __u64 hardware_subarch_data; 66 __u32 payload_offset; 67 __u32 payload_length; 68 __u64 setup_data; 69 __u64 pref_address; 70 __u32 init_size; 71 __u32 handover_offset; 72 __u32 kernel_info_offset; 73 } __attribute__((packed)); 74 struct sys_desc_table { 75 __u16 length; 76 __u8 table[14]; 77 }; 78 struct olpc_ofw_header { 79 __u32 ofw_magic; 80 __u32 ofw_version; 81 __u32 cif_handler; 82 __u32 irq_desc_table; 83 } __attribute__((packed)); 84 struct efi_info { 85 __u32 efi_loader_signature; 86 __u32 efi_systab; 87 __u32 efi_memdesc_size; 88 __u32 efi_memdesc_version; 89 __u32 efi_memmap; 90 __u32 efi_memmap_size; 91 __u32 efi_systab_hi; 92 __u32 efi_memmap_hi; 93 }; 94 #define E820_MAX_ENTRIES_ZEROPAGE 128 95 #define JAILHOUSE_SETUP_REQUIRED_VERSION 1 96 struct boot_params { 97 struct screen_info screen_info; 98 struct apm_bios_info apm_bios_info; 99 __u8 _pad2[4]; 100 __u64 tboot_addr; 101 struct ist_info ist_info; 102 __u64 acpi_rsdp_addr; 103 __u8 _pad3[8]; 104 __u8 hd0_info[16]; 105 __u8 hd1_info[16]; 106 struct sys_desc_table sys_desc_table; 107 struct olpc_ofw_header olpc_ofw_header; 108 __u32 ext_ramdisk_image; 109 __u32 ext_ramdisk_size; 110 __u32 ext_cmd_line_ptr; 111 __u8 _pad4[112]; 112 __u32 cc_blob_address; 113 struct edid_info edid_info; 114 struct efi_info efi_info; 115 __u32 alt_mem_k; 116 __u32 scratch; 117 __u8 e820_entries; 118 __u8 eddbuf_entries; 119 __u8 edd_mbr_sig_buf_entries; 120 __u8 kbd_status; 121 __u8 secure_boot; 122 __u8 _pad5[2]; 123 __u8 sentinel; 124 __u8 _pad6[1]; 125 struct setup_header hdr; 126 __u8 _pad7[0x290 - 0x1f1 - sizeof(struct setup_header)]; 127 __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; 128 struct boot_e820_entry e820_table[E820_MAX_ENTRIES_ZEROPAGE]; 129 __u8 _pad8[48]; 130 struct edd_info eddbuf[EDDMAXNR]; 131 __u8 _pad9[276]; 132 } __attribute__((packed)); 133 enum x86_hardware_subarch { 134 X86_SUBARCH_PC = 0, 135 X86_SUBARCH_LGUEST, 136 X86_SUBARCH_XEN, 137 X86_SUBARCH_INTEL_MID, 138 X86_SUBARCH_CE4100, 139 X86_NR_SUBARCHS, 140 }; 141 #endif 142 #endif 143