summaryrefslogtreecommitdiff
path: root/utility/include
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2010-06-11 09:22:13 -0700
committerRandall Spangler <rspangler@chromium.org>2010-06-11 09:22:13 -0700
commit7d6898dbaa8d530dd534d4680e274f7059e4a389 (patch)
tree8ab31b219b12d3b8404dc9fe707fa21e35080673 /utility/include
parentf1372d9109d638fbb1a177a89ebaf64e7ee0637e (diff)
downloadvboot-7d6898dbaa8d530dd534d4680e274f7059e4a389.tar.gz
Added vbutil_kernel.
Review URL: http://codereview.chromium.org/2730011
Diffstat (limited to 'utility/include')
-rw-r--r--utility/include/kernel_blob.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/utility/include/kernel_blob.h b/utility/include/kernel_blob.h
new file mode 100644
index 00000000..d5256aa8
--- /dev/null
+++ b/utility/include/kernel_blob.h
@@ -0,0 +1,50 @@
+// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Constants describing the kernel blob content.
+
+#ifndef VBOOT_REFERENCE_KERNEL_BLOB_H_
+#define VBOOT_REFERENCE_KERNEL_BLOB_H_
+
+
+// Maximum kernel command-line size
+#define CROS_CONFIG_SIZE 4096
+
+// Size of the x86 zeropage table
+#define CROS_PARAMS_SIZE 4096
+
+// Alignment of various chunks within the kernel blob
+#define CROS_ALIGN 4096
+
+// RAM address where the 32-bit kernel expects to be started
+#define CROS_32BIT_ENTRY_ADDR 0x100000
+
+// Simplified version of the vmlinuz file header
+struct linux_kernel_header
+{
+ uint8_t pad0[0x01f1 - 0x0];
+ uint8_t setup_sects; // 1f1
+ uint8_t pad1[0x0230 - 0x1f2];
+} __attribute__ ((packed));
+
+
+// Simplified version of the x86 kernel zeropage table
+struct linux_kernel_params
+{
+ uint8_t pad0[0x01f1 - 0x0];
+ uint8_t setup_sects; // 1f1
+ uint8_t pad1[0x1fe - 0x1f2];
+ uint16_t boot_flag; // 1fe
+ uint8_t pad2[0x210 - 0x200];
+ uint8_t type_of_loader; // 210
+ uint8_t pad3[0x218 - 0x211];
+ uint32_t ramdisk_image; // 218
+ uint32_t ramdisk_size; // 21c
+ uint8_t pad4[0x228 - 0x220];
+ uint32_t cmd_line_ptr; // 228
+ uint8_t pad5[0x0cd0 - 0x22c];
+} __attribute__ ((packed));
+
+
+#endif // VBOOT_REFERENCE_KERNEL_BLOB_H_