/* Copyright 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_

/* Linux vmlinuz header signature */
#define VMLINUZ_HEADER_SIG 0x53726448

/* 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

/* Sentinel RAM address indicating that no entry address is specified */
#define CROS_NO_ENTRY_ADDR     (~0)

/* RAM address where the 32-bit kernel expects to be started */
#define CROS_32BIT_ENTRY_ADDR  0x100000

/* Simplified version of x86 kernel e820 memory map entries */
#define E820_ENTRY_MAX 128
#define E820_TYPE_RAM      1
#define E820_TYPE_RESERVED 2

struct linux_kernel_e820entry {
	uint64_t start_addr;
	uint64_t segment_size;
	uint32_t segment_type;
} __attribute__ ((packed));

/* Simplified version of the x86 kernel zeropage table */
struct linux_kernel_params {
	uint8_t pad0[0x1e8 - 0x0];
	uint8_t n_e820_entry;			/* 1e8 */
	uint8_t pad1[0x1f1 - 0x1e9];
	uint8_t setup_sects;			/* 1f1 */
	uint8_t pad2[0x1fe - 0x1f2];
	uint16_t boot_flag;			/* 1fe */
	uint16_t jump;				/* 200 */
	uint32_t header;			/* 202 */
	uint16_t version;			/* 206 */
	uint8_t pad3[0x210 - 0x208];
	uint8_t type_of_loader;			/* 210 */
	uint8_t pad4[0x218 - 0x211];
	uint32_t ramdisk_image;			/* 218 */
	uint32_t ramdisk_size;			/* 21c */
	uint8_t pad5[0x228 - 0x220];
	uint32_t cmd_line_ptr;			/* 228 */
	uint32_t ramdisk_max;			/* 22c */
	uint32_t kernel_alignment;		/* 230 */
	uint8_t relocatable_kernel;		/* 234 */
	uint8_t min_alignment;			/* 235 */
	uint8_t pad6[0x2d0 - 0x236];
	struct linux_kernel_e820entry
		e820_entries[E820_ENTRY_MAX];	/* 2d0-cd0 */
} __attribute__ ((packed));

#endif  /* VBOOT_REFERENCE_KERNEL_BLOB_H_ */
