diff options
author | Randall Spangler <rspangler@chromium.org> | 2010-06-11 09:22:13 -0700 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2010-06-11 09:22:13 -0700 |
commit | 7d6898dbaa8d530dd534d4680e274f7059e4a389 (patch) | |
tree | 8ab31b219b12d3b8404dc9fe707fa21e35080673 /utility/include | |
parent | f1372d9109d638fbb1a177a89ebaf64e7ee0637e (diff) | |
download | vboot-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.h | 50 |
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_ |