blob: 8e7dd424ca5fdcff015ac2e305ab5ff63e7afa3e [file] [log] [blame]
Googlere00b8eb2019-07-08 16:37:07 -07001/*
2 * (C) Copyright 2002
3 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
Googler695f9d92023-09-11 15:38:29 +08004 *
5 * SPDX-License-Identifier: GPL-2.0+
Googlere00b8eb2019-07-08 16:37:07 -07006 */
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
Googler695f9d92023-09-11 15:38:29 +080034/* Implementation defined function to install an e820 map. */
35unsigned install_e820_map(unsigned max_entries, struct e820entry *);
36
Googlere00b8eb2019-07-08 16:37:07 -070037struct boot_params *load_zimage(char *image, unsigned long kernel_size,
38 ulong *load_addressp);
39int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
40 unsigned long initrd_addr, unsigned long initrd_size);
Googlere00b8eb2019-07-08 16:37:07 -070041
42#endif