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