xref: /openbmc/u-boot/arch/x86/include/asm/zimage.h (revision bcc05c7a)
1 /*
2  * (C) Copyright 2002
3  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #ifndef _ASM_ZIMAGE_H_
9 #define _ASM_ZIMAGE_H_
10 
11 #include <asm/bootparam.h>
12 #include <asm/e820.h>
13 
14 /* linux i386 zImage/bzImage header. Offsets relative to
15  * the start of the image */
16 
17 #define HEAP_FLAG           0x80
18 #define BIG_KERNEL_FLAG     0x01
19 
20 /* magic numbers */
21 #define KERNEL_MAGIC        0xaa55
22 #define KERNEL_V2_MAGIC     0x53726448
23 #define COMMAND_LINE_MAGIC  0xA33F
24 
25 /* limits */
26 #define BZIMAGE_MAX_SIZE   15*1024*1024     /* 15MB */
27 #define ZIMAGE_MAX_SIZE    512*1024         /* 512k */
28 #define SETUP_MAX_SIZE     32768
29 
30 #define SETUP_START_OFFSET 0x200
31 #define BZIMAGE_LOAD_ADDR  0x100000
32 #define ZIMAGE_LOAD_ADDR   0x10000
33 
34 /* Implementation defined function to install an e820 map. */
35 unsigned install_e820_map(unsigned max_entries, struct e820entry *);
36 
37 struct boot_params *load_zimage(char *image, unsigned long kernel_size,
38 				void **load_address);
39 int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
40 		 unsigned long initrd_addr, unsigned long initrd_size);
41 
42 void boot_zimage(void *setup_base, void *load_address);
43 
44 #endif
45