]>
Commit | Line | Data |
---|---|---|
80feb819 | 1 | /** @file\r |
2 | \r | |
25ca06f9 | 3 | Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>\r |
80feb819 | 4 | This program and the accompanying materials\r |
5 | are licensed and made available under the terms and conditions of the BSD License\r | |
6 | which accompanies this distribution. The full text of the license may be found at\r | |
7 | http://opensource.org/licenses/bsd-license.php\r | |
8 | \r | |
9 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
10 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
11 | \r | |
12 | **/\r | |
13 | \r | |
14 | #ifndef __LINUX_BZIMAGE_H__\r | |
15 | #define __LINUX_BZIMAGE_H__\r | |
16 | \r | |
17 | #define BOOTSIG 0x1FE\r | |
80feb819 | 18 | #define SETUP_HDR 0x53726448 /* 0x53726448 == "HdrS" */\r |
19 | \r | |
20 | #define E820_RAM 1\r | |
21 | #define E820_RESERVED 2\r | |
22 | #define E820_ACPI 3\r | |
23 | #define E820_NVS 4\r | |
24 | #define E820_UNUSABLE 5\r | |
25 | \r | |
26 | #pragma pack(1)\r | |
27 | \r | |
28 | struct setup_header {\r | |
29 | UINT8 setup_secs; /* Sectors for setup code */\r | |
30 | UINT16 root_flags;\r | |
31 | UINT32 sys_size;\r | |
32 | UINT16 ram_size;\r | |
33 | UINT16 video_mode;\r | |
34 | UINT16 root_dev;\r | |
35 | UINT16 signature; /* Boot signature */\r | |
36 | UINT16 jump;\r | |
37 | UINT32 header;\r | |
38 | UINT16 version;\r | |
39 | UINT16 su_switch;\r | |
40 | UINT16 setup_seg;\r | |
41 | UINT16 start_sys;\r | |
42 | UINT16 kernel_ver;\r | |
43 | UINT8 loader_id;\r | |
44 | UINT8 load_flags;\r | |
45 | UINT16 movesize;\r | |
46 | UINT32 code32_start; /* Start of code loaded high */\r | |
47 | UINT32 ramdisk_start; /* Start of initial ramdisk */\r | |
48 | UINT32 ramdisk_len; /* Lenght of initial ramdisk */\r | |
49 | UINT32 bootsect_kludge;\r | |
50 | UINT16 heap_end;\r | |
51 | UINT8 ext_loader_ver; /* Extended boot loader version */\r | |
52 | UINT8 ext_loader_type; /* Extended boot loader ID */\r | |
53 | UINT32 cmd_line_ptr; /* 32-bit pointer to the kernel command line */\r | |
54 | UINT32 ramdisk_max; /* Highest legal initrd address */\r | |
55 | UINT32 kernel_alignment; /* Physical addr alignment required for kernel */\r | |
56 | UINT8 relocatable_kernel; /* Whether kernel is relocatable or not */\r | |
25ca06f9 | 57 | UINT8 min_alignment;\r |
58 | UINT16 xloadflags;\r | |
80feb819 | 59 | UINT32 cmdline_size;\r |
60 | UINT32 hardware_subarch;\r | |
61 | UINT64 hardware_subarch_data;\r | |
62 | UINT32 payload_offset;\r | |
63 | UINT32 payload_length;\r | |
64 | UINT64 setup_data;\r | |
65 | UINT64 pref_address;\r | |
66 | UINT32 init_size;\r | |
67 | UINT32 handover_offset;\r | |
68 | };\r | |
69 | \r | |
70 | struct efi_info {\r | |
71 | UINT32 efi_loader_signature;\r | |
72 | UINT32 efi_systab;\r | |
73 | UINT32 efi_memdesc_size;\r | |
74 | UINT32 efi_memdesc_version;\r | |
75 | UINT32 efi_memmap;\r | |
76 | UINT32 efi_memmap_size;\r | |
77 | UINT32 efi_systab_hi;\r | |
78 | UINT32 efi_memmap_hi;\r | |
79 | };\r | |
80 | \r | |
81 | struct e820_entry {\r | |
82 | UINT64 addr; /* start of memory segment */\r | |
83 | UINT64 size; /* size of memory segment */\r | |
84 | UINT32 type; /* type of memory segment */\r | |
85 | };\r | |
86 | \r | |
87 | struct screen_info {\r | |
88 | UINT8 orig_x; /* 0x00 */\r | |
89 | UINT8 orig_y; /* 0x01 */\r | |
90 | UINT16 ext_mem_k; /* 0x02 */\r | |
91 | UINT16 orig_video_page; /* 0x04 */\r | |
92 | UINT8 orig_video_mode; /* 0x06 */\r | |
93 | UINT8 orig_video_cols; /* 0x07 */\r | |
94 | UINT8 flags; /* 0x08 */\r | |
95 | UINT8 unused2; /* 0x09 */\r | |
96 | UINT16 orig_video_ega_bx;/* 0x0a */\r | |
97 | UINT16 unused3; /* 0x0c */\r | |
98 | UINT8 orig_video_lines; /* 0x0e */\r | |
99 | UINT8 orig_video_isVGA; /* 0x0f */\r | |
100 | UINT16 orig_video_points;/* 0x10 */\r | |
101 | \r | |
102 | /* VESA graphic mode -- linear frame buffer */\r | |
103 | UINT16 lfb_width; /* 0x12 */\r | |
104 | UINT16 lfb_height; /* 0x14 */\r | |
105 | UINT16 lfb_depth; /* 0x16 */\r | |
106 | UINT32 lfb_base; /* 0x18 */\r | |
107 | UINT32 lfb_size; /* 0x1c */\r | |
108 | UINT16 cl_magic, cl_offset; /* 0x20 */\r | |
109 | UINT16 lfb_linelength; /* 0x24 */\r | |
110 | UINT8 red_size; /* 0x26 */\r | |
111 | UINT8 red_pos; /* 0x27 */\r | |
112 | UINT8 green_size; /* 0x28 */\r | |
113 | UINT8 green_pos; /* 0x29 */\r | |
114 | UINT8 blue_size; /* 0x2a */\r | |
115 | UINT8 blue_pos; /* 0x2b */\r | |
116 | UINT8 rsvd_size; /* 0x2c */\r | |
117 | UINT8 rsvd_pos; /* 0x2d */\r | |
118 | UINT16 vesapm_seg; /* 0x2e */\r | |
119 | UINT16 vesapm_off; /* 0x30 */\r | |
120 | UINT16 pages; /* 0x32 */\r | |
121 | UINT16 vesa_attributes; /* 0x34 */\r | |
122 | UINT32 capabilities; /* 0x36 */\r | |
123 | UINT8 _reserved[6]; /* 0x3a */\r | |
124 | };\r | |
125 | \r | |
126 | struct boot_params {\r | |
127 | struct screen_info screen_info;\r | |
128 | UINT8 apm_bios_info[0x14];\r | |
129 | UINT8 _pad2[4];\r | |
130 | UINT64 tboot_addr;\r | |
131 | UINT8 ist_info[0x10];\r | |
132 | UINT8 _pad3[16];\r | |
133 | UINT8 hd0_info[16];\r | |
134 | UINT8 hd1_info[16];\r | |
135 | UINT8 sys_desc_table[0x10];\r | |
136 | UINT8 olpc_ofw_header[0x10];\r | |
137 | UINT8 _pad4[128];\r | |
138 | UINT8 edid_info[0x80];\r | |
139 | struct efi_info efi_info;\r | |
140 | UINT32 alt_mem_k;\r | |
141 | UINT32 scratch;\r | |
142 | UINT8 e820_entries;\r | |
143 | UINT8 eddbuf_entries;\r | |
144 | UINT8 edd_mbr_sig_buf_entries;\r | |
145 | UINT8 _pad6[6];\r | |
146 | struct setup_header hdr;\r | |
147 | UINT8 _pad7[0x290-0x1f1-sizeof(struct setup_header)];\r | |
148 | UINT32 edd_mbr_sig_buffer[16];\r | |
149 | struct e820_entry e820_map[128];\r | |
150 | UINT8 _pad8[48];\r | |
151 | UINT8 eddbuf[0x1ec];\r | |
152 | UINT8 _pad9[276];\r | |
153 | };\r | |
154 | \r | |
155 | typedef struct {\r | |
156 | UINT16 limit;\r | |
157 | UINT64 *base;\r | |
158 | } dt_addr_t;\r | |
159 | \r | |
160 | #pragma pack()\r | |
161 | \r | |
162 | extern EFI_STATUS setup_graphics(struct boot_params *buf);\r | |
163 | \r | |
164 | #endif /* __LINUX_BZIMAGE_H__ */\r |