3 Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 #ifndef __LINUX_BZIMAGE_H__
15 #define __LINUX_BZIMAGE_H__
18 #define SETUP_HDR 0x53726448 /* 0x53726448 == "HdrS" */
21 #define E820_RESERVED 2
24 #define E820_UNUSABLE 5
29 UINT8 setup_secs
; /* Sectors for setup code */
35 UINT16 signature
; /* Boot signature */
46 UINT32 code32_start
; /* Start of code loaded high */
47 UINT32 ramdisk_start
; /* Start of initial ramdisk */
48 UINT32 ramdisk_len
; /* Length of initial ramdisk */
49 UINT32 bootsect_kludge
;
51 UINT8 ext_loader_ver
; /* Extended boot loader version */
52 UINT8 ext_loader_type
; /* Extended boot loader ID */
53 UINT32 cmd_line_ptr
; /* 32-bit pointer to the kernel command line */
54 UINT32 ramdisk_max
; /* Highest legal initrd address */
55 UINT32 kernel_alignment
; /* Physical addr alignment required for kernel */
56 UINT8 relocatable_kernel
; /* Whether kernel is relocatable or not */
60 UINT32 hardware_subarch
;
61 UINT64 hardware_subarch_data
;
62 UINT32 payload_offset
;
63 UINT32 payload_length
;
67 UINT32 handover_offset
;
71 UINT32 efi_loader_signature
;
73 UINT32 efi_memdesc_size
;
74 UINT32 efi_memdesc_version
;
76 UINT32 efi_memmap_size
;
82 UINT64 addr
; /* start of memory segment */
83 UINT64 size
; /* size of memory segment */
84 UINT32 type
; /* type of memory segment */
88 UINT8 orig_x
; /* 0x00 */
89 UINT8 orig_y
; /* 0x01 */
90 UINT16 ext_mem_k
; /* 0x02 */
91 UINT16 orig_video_page
; /* 0x04 */
92 UINT8 orig_video_mode
; /* 0x06 */
93 UINT8 orig_video_cols
; /* 0x07 */
94 UINT8 flags
; /* 0x08 */
95 UINT8 unused2
; /* 0x09 */
96 UINT16 orig_video_ega_bx
;/* 0x0a */
97 UINT16 unused3
; /* 0x0c */
98 UINT8 orig_video_lines
; /* 0x0e */
99 UINT8 orig_video_isVGA
; /* 0x0f */
100 UINT16 orig_video_points
;/* 0x10 */
102 /* VESA graphic mode -- linear frame buffer */
103 UINT16 lfb_width
; /* 0x12 */
104 UINT16 lfb_height
; /* 0x14 */
105 UINT16 lfb_depth
; /* 0x16 */
106 UINT32 lfb_base
; /* 0x18 */
107 UINT32 lfb_size
; /* 0x1c */
108 UINT16 cl_magic
, cl_offset
; /* 0x20 */
109 UINT16 lfb_linelength
; /* 0x24 */
110 UINT8 red_size
; /* 0x26 */
111 UINT8 red_pos
; /* 0x27 */
112 UINT8 green_size
; /* 0x28 */
113 UINT8 green_pos
; /* 0x29 */
114 UINT8 blue_size
; /* 0x2a */
115 UINT8 blue_pos
; /* 0x2b */
116 UINT8 rsvd_size
; /* 0x2c */
117 UINT8 rsvd_pos
; /* 0x2d */
118 UINT16 vesapm_seg
; /* 0x2e */
119 UINT16 vesapm_off
; /* 0x30 */
120 UINT16 pages
; /* 0x32 */
121 UINT16 vesa_attributes
; /* 0x34 */
122 UINT32 capabilities
; /* 0x36 */
123 UINT8 _reserved
[6]; /* 0x3a */
127 struct screen_info screen_info
;
128 UINT8 apm_bios_info
[0x14];
131 UINT8 ist_info
[0x10];
135 UINT8 sys_desc_table
[0x10];
136 UINT8 olpc_ofw_header
[0x10];
138 UINT8 edid_info
[0x80];
139 struct efi_info efi_info
;
143 UINT8 eddbuf_entries
;
144 UINT8 edd_mbr_sig_buf_entries
;
146 struct setup_header hdr
;
147 UINT8 _pad7
[0x290-0x1f1-sizeof(struct setup_header
)];
148 UINT32 edd_mbr_sig_buffer
[16];
149 struct e820_entry e820_map
[128];
162 extern EFI_STATUS
setup_graphics(struct boot_params
*buf
);
164 #endif /* __LINUX_BZIMAGE_H__ */