blob: 0f366626880a701ccdc066d58e819e2317ac91c7 [file] [log] [blame]
wdenk591dda52002-11-18 00:14:45 +00001/*
2 * (C) Copyright 2002
Albert ARIBAUD60fbc8d2011-08-04 18:45:45 +02003 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
wdenk57b2d802003-06-27 21:31:46 +00004 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
wdenk591dda52002-11-18 00:14:45 +00006 */
7
8#ifndef _ASM_ZIMAGE_H_
9#define _ASM_ZIMAGE_H_
10
Gabe Black540c2622011-12-05 12:09:26 +000011#include <asm/bootparam.h>
Gabe Blackc67a9482011-12-05 12:09:24 +000012#include <asm/e820.h>
13
wdenk57b2d802003-06-27 21:31:46 +000014/* linux i386 zImage/bzImage header. Offsets relative to
wdenk591dda52002-11-18 00:14:45 +000015 * the start of the image */
16
wdenk591dda52002-11-18 00:14:45 +000017#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
wdenk57b2d802003-06-27 21:31:46 +000031#define BZIMAGE_LOAD_ADDR 0x100000
wdenk591dda52002-11-18 00:14:45 +000032#define ZIMAGE_LOAD_ADDR 0x10000
wdenk57b2d802003-06-27 21:31:46 +000033
Gabe Blackc67a9482011-12-05 12:09:24 +000034/* Implementation defined function to install an e820 map. */
35unsigned install_e820_map(unsigned max_entries, struct e820entry *);
36
Gabe Black540c2622011-12-05 12:09:26 +000037struct 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);
wdenk591dda52002-11-18 00:14:45 +000041
Gabe Blackc67a9482011-12-05 12:09:24 +000042void boot_zimage(void *setup_base, void *load_address);
wdenk591dda52002-11-18 00:14:45 +000043
44#endif