.. | .. |
---|
2 | 2 | #ifndef _ASM_X86_BOOTPARAM_H |
---|
3 | 3 | #define _ASM_X86_BOOTPARAM_H |
---|
4 | 4 | |
---|
5 | | -/* setup_data types */ |
---|
| 5 | +/* setup_data/setup_indirect types */ |
---|
6 | 6 | #define SETUP_NONE 0 |
---|
7 | 7 | #define SETUP_E820_EXT 1 |
---|
8 | 8 | #define SETUP_DTB 2 |
---|
.. | .. |
---|
10 | 10 | #define SETUP_EFI 4 |
---|
11 | 11 | #define SETUP_APPLE_PROPERTIES 5 |
---|
12 | 12 | #define SETUP_JAILHOUSE 6 |
---|
| 13 | + |
---|
| 14 | +#define SETUP_INDIRECT (1<<31) |
---|
| 15 | + |
---|
| 16 | +/* SETUP_INDIRECT | max(SETUP_*) */ |
---|
| 17 | +#define SETUP_TYPE_MAX (SETUP_INDIRECT | SETUP_JAILHOUSE) |
---|
13 | 18 | |
---|
14 | 19 | /* ram_size flags */ |
---|
15 | 20 | #define RAMDISK_IMAGE_START_MASK 0x07FF |
---|
.. | .. |
---|
29 | 34 | #define XLF_EFI_HANDOVER_32 (1<<2) |
---|
30 | 35 | #define XLF_EFI_HANDOVER_64 (1<<3) |
---|
31 | 36 | #define XLF_EFI_KEXEC (1<<4) |
---|
| 37 | +#define XLF_5LEVEL (1<<5) |
---|
| 38 | +#define XLF_5LEVEL_ENABLED (1<<6) |
---|
32 | 39 | |
---|
33 | 40 | #ifndef __ASSEMBLY__ |
---|
34 | 41 | |
---|
.. | .. |
---|
45 | 52 | __u32 type; |
---|
46 | 53 | __u32 len; |
---|
47 | 54 | __u8 data[0]; |
---|
| 55 | +}; |
---|
| 56 | + |
---|
| 57 | +/* extensible setup indirect data node */ |
---|
| 58 | +struct setup_indirect { |
---|
| 59 | + __u32 type; |
---|
| 60 | + __u32 reserved; /* Reserved, must be set to zero. */ |
---|
| 61 | + __u64 len; |
---|
| 62 | + __u64 addr; |
---|
48 | 63 | }; |
---|
49 | 64 | |
---|
50 | 65 | struct setup_header { |
---|
.. | .. |
---|
86 | 101 | __u64 pref_address; |
---|
87 | 102 | __u32 init_size; |
---|
88 | 103 | __u32 handover_offset; |
---|
| 104 | + __u32 kernel_info_offset; |
---|
89 | 105 | } __attribute__((packed)); |
---|
90 | 106 | |
---|
91 | 107 | struct sys_desc_table { |
---|
.. | .. |
---|
137 | 153 | * setup data structure. |
---|
138 | 154 | */ |
---|
139 | 155 | struct jailhouse_setup_data { |
---|
140 | | - __u16 version; |
---|
141 | | - __u16 compatible_version; |
---|
142 | | - __u16 pm_timer_address; |
---|
143 | | - __u16 num_cpus; |
---|
144 | | - __u64 pci_mmconfig_base; |
---|
145 | | - __u32 tsc_khz; |
---|
146 | | - __u32 apic_khz; |
---|
147 | | - __u8 standard_ioapic; |
---|
148 | | - __u8 cpu_ids[255]; |
---|
| 156 | + struct { |
---|
| 157 | + __u16 version; |
---|
| 158 | + __u16 compatible_version; |
---|
| 159 | + } __attribute__((packed)) hdr; |
---|
| 160 | + struct { |
---|
| 161 | + __u16 pm_timer_address; |
---|
| 162 | + __u16 num_cpus; |
---|
| 163 | + __u64 pci_mmconfig_base; |
---|
| 164 | + __u32 tsc_khz; |
---|
| 165 | + __u32 apic_khz; |
---|
| 166 | + __u8 standard_ioapic; |
---|
| 167 | + __u8 cpu_ids[255]; |
---|
| 168 | + } __attribute__((packed)) v1; |
---|
| 169 | + struct { |
---|
| 170 | + __u32 flags; |
---|
| 171 | + } __attribute__((packed)) v2; |
---|
149 | 172 | } __attribute__((packed)); |
---|
150 | 173 | |
---|
151 | 174 | /* The so-called "zeropage" */ |
---|
.. | .. |
---|
155 | 178 | __u8 _pad2[4]; /* 0x054 */ |
---|
156 | 179 | __u64 tboot_addr; /* 0x058 */ |
---|
157 | 180 | struct ist_info ist_info; /* 0x060 */ |
---|
158 | | - __u8 _pad3[16]; /* 0x070 */ |
---|
| 181 | + __u64 acpi_rsdp_addr; /* 0x070 */ |
---|
| 182 | + __u8 _pad3[8]; /* 0x078 */ |
---|
159 | 183 | __u8 hd0_info[16]; /* obsolete! */ /* 0x080 */ |
---|
160 | 184 | __u8 hd1_info[16]; /* obsolete! */ /* 0x090 */ |
---|
161 | 185 | struct sys_desc_table sys_desc_table; /* obsolete! */ /* 0x0a0 */ |
---|
.. | .. |
---|
231 | 255 | * currently supportd through this PV boot path. |
---|
232 | 256 | * @X86_SUBARCH_INTEL_MID: Used for Intel MID (Mobile Internet Device) platform |
---|
233 | 257 | * systems which do not have the PCI legacy interfaces. |
---|
234 | | - * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC for |
---|
| 258 | + * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC |
---|
235 | 259 | * for settop boxes and media devices, the use of a subarch for CE4100 |
---|
236 | 260 | * is more of a hack... |
---|
237 | 261 | */ |
---|