3 Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
8 #ifndef __LINUX_BZIMAGE_H__
9 #define __LINUX_BZIMAGE_H__
12 #define SETUP_HDR 0x53726448 /* 0x53726448 == "HdrS" */
15 #define E820_RESERVED 2
18 #define E820_UNUSABLE 5
23 UINT8 setup_secs
; /* Sectors for setup code */
29 UINT16 signature
; /* Boot signature */
40 UINT32 code32_start
; /* Start of code loaded high */
41 UINT32 ramdisk_start
; /* Start of initial ramdisk */
42 UINT32 ramdisk_len
; /* Length of initial ramdisk */
43 UINT32 bootsect_kludge
;
45 UINT8 ext_loader_ver
; /* Extended boot loader version */
46 UINT8 ext_loader_type
; /* Extended boot loader ID */
47 UINT32 cmd_line_ptr
; /* 32-bit pointer to the kernel command line */
48 UINT32 ramdisk_max
; /* Highest legal initrd address */
49 UINT32 kernel_alignment
; /* Physical addr alignment required for kernel */
50 UINT8 relocatable_kernel
; /* Whether kernel is relocatable or not */
54 UINT32 hardware_subarch
;
55 UINT64 hardware_subarch_data
;
56 UINT32 payload_offset
;
57 UINT32 payload_length
;
61 UINT32 handover_offset
;
65 UINT32 efi_loader_signature
;
67 UINT32 efi_memdesc_size
;
68 UINT32 efi_memdesc_version
;
70 UINT32 efi_memmap_size
;
76 UINT64 addr
; /* start of memory segment */
77 UINT64 size
; /* size of memory segment */
78 UINT32 type
; /* type of memory segment */
82 UINT8 orig_x
; /* 0x00 */
83 UINT8 orig_y
; /* 0x01 */
84 UINT16 ext_mem_k
; /* 0x02 */
85 UINT16 orig_video_page
; /* 0x04 */
86 UINT8 orig_video_mode
; /* 0x06 */
87 UINT8 orig_video_cols
; /* 0x07 */
88 UINT8 flags
; /* 0x08 */
89 UINT8 unused2
; /* 0x09 */
90 UINT16 orig_video_ega_bx
; /* 0x0a */
91 UINT16 unused3
; /* 0x0c */
92 UINT8 orig_video_lines
; /* 0x0e */
93 UINT8 orig_video_isVGA
; /* 0x0f */
94 UINT16 orig_video_points
; /* 0x10 */
96 /* VESA graphic mode -- linear frame buffer */
97 UINT16 lfb_width
; /* 0x12 */
98 UINT16 lfb_height
; /* 0x14 */
99 UINT16 lfb_depth
; /* 0x16 */
100 UINT32 lfb_base
; /* 0x18 */
101 UINT32 lfb_size
; /* 0x1c */
102 UINT16 cl_magic
, cl_offset
; /* 0x20 */
103 UINT16 lfb_linelength
; /* 0x24 */
104 UINT8 red_size
; /* 0x26 */
105 UINT8 red_pos
; /* 0x27 */
106 UINT8 green_size
; /* 0x28 */
107 UINT8 green_pos
; /* 0x29 */
108 UINT8 blue_size
; /* 0x2a */
109 UINT8 blue_pos
; /* 0x2b */
110 UINT8 rsvd_size
; /* 0x2c */
111 UINT8 rsvd_pos
; /* 0x2d */
112 UINT16 vesapm_seg
; /* 0x2e */
113 UINT16 vesapm_off
; /* 0x30 */
114 UINT16 pages
; /* 0x32 */
115 UINT16 vesa_attributes
; /* 0x34 */
116 UINT32 capabilities
; /* 0x36 */
117 UINT8 _reserved
[6]; /* 0x3a */
121 struct screen_info screen_info
;
122 UINT8 apm_bios_info
[0x14];
125 UINT8 ist_info
[0x10];
129 UINT8 sys_desc_table
[0x10];
130 UINT8 olpc_ofw_header
[0x10];
132 UINT8 edid_info
[0x80];
133 struct efi_info efi_info
;
137 UINT8 eddbuf_entries
;
138 UINT8 edd_mbr_sig_buf_entries
;
140 struct setup_header hdr
;
141 UINT8 _pad7
[0x290-0x1f1-sizeof (struct setup_header
)];
142 UINT32 edd_mbr_sig_buffer
[16];
143 struct e820_entry e820_map
[128];
158 struct boot_params
*buf
161 #endif /* __LINUX_BZIMAGE_H__ */