--- /dev/null
+/** @file\r
+\r
+ Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>\r
+ This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __LINUX_BZIMAGE_H__\r
+#define __LINUX_BZIMAGE_H__\r
+\r
+#define BOOTSIG 0x1FE\r
+#define SETUP_VERSION 0x206\r
+#define SETUP_HDR 0x53726448 /* 0x53726448 == "HdrS" */\r
+\r
+#define E820_RAM 1\r
+#define E820_RESERVED 2\r
+#define E820_ACPI 3\r
+#define E820_NVS 4\r
+#define E820_UNUSABLE 5\r
+\r
+#pragma pack(1)\r
+\r
+struct setup_header {\r
+ UINT8 setup_secs; /* Sectors for setup code */\r
+ UINT16 root_flags;\r
+ UINT32 sys_size;\r
+ UINT16 ram_size;\r
+ UINT16 video_mode;\r
+ UINT16 root_dev;\r
+ UINT16 signature; /* Boot signature */\r
+ UINT16 jump;\r
+ UINT32 header;\r
+ UINT16 version;\r
+ UINT16 su_switch;\r
+ UINT16 setup_seg;\r
+ UINT16 start_sys;\r
+ UINT16 kernel_ver;\r
+ UINT8 loader_id;\r
+ UINT8 load_flags;\r
+ UINT16 movesize;\r
+ UINT32 code32_start; /* Start of code loaded high */\r
+ UINT32 ramdisk_start; /* Start of initial ramdisk */\r
+ UINT32 ramdisk_len; /* Lenght of initial ramdisk */\r
+ UINT32 bootsect_kludge;\r
+ UINT16 heap_end;\r
+ UINT8 ext_loader_ver; /* Extended boot loader version */\r
+ UINT8 ext_loader_type; /* Extended boot loader ID */\r
+ UINT32 cmd_line_ptr; /* 32-bit pointer to the kernel command line */\r
+ UINT32 ramdisk_max; /* Highest legal initrd address */\r
+ UINT32 kernel_alignment; /* Physical addr alignment required for kernel */\r
+ UINT8 relocatable_kernel; /* Whether kernel is relocatable or not */\r
+ UINT8 _pad2[3];\r
+ UINT32 cmdline_size;\r
+ UINT32 hardware_subarch;\r
+ UINT64 hardware_subarch_data;\r
+ UINT32 payload_offset;\r
+ UINT32 payload_length;\r
+ UINT64 setup_data;\r
+ UINT64 pref_address;\r
+ UINT32 init_size;\r
+ UINT32 handover_offset;\r
+};\r
+\r
+struct efi_info {\r
+ UINT32 efi_loader_signature;\r
+ UINT32 efi_systab;\r
+ UINT32 efi_memdesc_size;\r
+ UINT32 efi_memdesc_version;\r
+ UINT32 efi_memmap;\r
+ UINT32 efi_memmap_size;\r
+ UINT32 efi_systab_hi;\r
+ UINT32 efi_memmap_hi;\r
+};\r
+\r
+struct e820_entry {\r
+ UINT64 addr; /* start of memory segment */\r
+ UINT64 size; /* size of memory segment */\r
+ UINT32 type; /* type of memory segment */\r
+};\r
+\r
+struct screen_info {\r
+ UINT8 orig_x; /* 0x00 */\r
+ UINT8 orig_y; /* 0x01 */\r
+ UINT16 ext_mem_k; /* 0x02 */\r
+ UINT16 orig_video_page; /* 0x04 */\r
+ UINT8 orig_video_mode; /* 0x06 */\r
+ UINT8 orig_video_cols; /* 0x07 */\r
+ UINT8 flags; /* 0x08 */\r
+ UINT8 unused2; /* 0x09 */\r
+ UINT16 orig_video_ega_bx;/* 0x0a */\r
+ UINT16 unused3; /* 0x0c */\r
+ UINT8 orig_video_lines; /* 0x0e */\r
+ UINT8 orig_video_isVGA; /* 0x0f */\r
+ UINT16 orig_video_points;/* 0x10 */\r
+\r
+ /* VESA graphic mode -- linear frame buffer */\r
+ UINT16 lfb_width; /* 0x12 */\r
+ UINT16 lfb_height; /* 0x14 */\r
+ UINT16 lfb_depth; /* 0x16 */\r
+ UINT32 lfb_base; /* 0x18 */\r
+ UINT32 lfb_size; /* 0x1c */\r
+ UINT16 cl_magic, cl_offset; /* 0x20 */\r
+ UINT16 lfb_linelength; /* 0x24 */\r
+ UINT8 red_size; /* 0x26 */\r
+ UINT8 red_pos; /* 0x27 */\r
+ UINT8 green_size; /* 0x28 */\r
+ UINT8 green_pos; /* 0x29 */\r
+ UINT8 blue_size; /* 0x2a */\r
+ UINT8 blue_pos; /* 0x2b */\r
+ UINT8 rsvd_size; /* 0x2c */\r
+ UINT8 rsvd_pos; /* 0x2d */\r
+ UINT16 vesapm_seg; /* 0x2e */\r
+ UINT16 vesapm_off; /* 0x30 */\r
+ UINT16 pages; /* 0x32 */\r
+ UINT16 vesa_attributes; /* 0x34 */\r
+ UINT32 capabilities; /* 0x36 */\r
+ UINT8 _reserved[6]; /* 0x3a */\r
+};\r
+\r
+struct boot_params {\r
+ struct screen_info screen_info;\r
+ UINT8 apm_bios_info[0x14];\r
+ UINT8 _pad2[4];\r
+ UINT64 tboot_addr;\r
+ UINT8 ist_info[0x10];\r
+ UINT8 _pad3[16];\r
+ UINT8 hd0_info[16];\r
+ UINT8 hd1_info[16];\r
+ UINT8 sys_desc_table[0x10];\r
+ UINT8 olpc_ofw_header[0x10];\r
+ UINT8 _pad4[128];\r
+ UINT8 edid_info[0x80];\r
+ struct efi_info efi_info;\r
+ UINT32 alt_mem_k;\r
+ UINT32 scratch;\r
+ UINT8 e820_entries;\r
+ UINT8 eddbuf_entries;\r
+ UINT8 edd_mbr_sig_buf_entries;\r
+ UINT8 _pad6[6];\r
+ struct setup_header hdr;\r
+ UINT8 _pad7[0x290-0x1f1-sizeof(struct setup_header)];\r
+ UINT32 edd_mbr_sig_buffer[16];\r
+ struct e820_entry e820_map[128];\r
+ UINT8 _pad8[48];\r
+ UINT8 eddbuf[0x1ec];\r
+ UINT8 _pad9[276];\r
+};\r
+\r
+typedef struct {\r
+ UINT16 limit;\r
+ UINT64 *base;\r
+} dt_addr_t;\r
+\r
+#pragma pack()\r
+\r
+extern EFI_STATUS setup_graphics(struct boot_params *buf);\r
+\r
+#endif /* __LINUX_BZIMAGE_H__ */\r