]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: Add Linux bzimage include file
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Nov 2012 18:26:30 +0000 (18:26 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Nov 2012 18:26:30 +0000 (18:26 +0000)
This file is from the efilinux project where it resides
under the path loaders/bzimage/bzimage.h.
git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Matt Fleming <matt.fleming@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13920 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/Include/IndustryStandard/LinuxBzimage.h [new file with mode: 0644]

diff --git a/OvmfPkg/Include/IndustryStandard/LinuxBzimage.h b/OvmfPkg/Include/IndustryStandard/LinuxBzimage.h
new file mode 100644 (file)
index 0000000..d16b112
--- /dev/null
@@ -0,0 +1,164 @@
+/** @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