blob: 0f366626880a701ccdc066d58e819e2317ac91c7 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/*
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. */
35unsigned install_e820_map(unsigned max_entries, struct e820entry *);
36
37struct boot_params *load_zimage(char *image, unsigned long kernel_size,
38 void **load_address);
39int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
40 unsigned long initrd_addr, unsigned long initrd_size);
41
42void boot_zimage(void *setup_base, void *load_address);
43
44#endif