1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * (C) Copyright 2002 4 * Daniel Engström, Omicron Ceti AB, daniel@omicron.se 5 */ 6 7 #ifndef _ASM_ZIMAGE_H_ 8 #define _ASM_ZIMAGE_H_ 9 10 #include <asm/bootparam.h> 11 #include <asm/e820.h> 12 13 /* linux i386 zImage/bzImage header. Offsets relative to 14 * the start of the image */ 15 16 #define HEAP_FLAG 0x80 17 #define BIG_KERNEL_FLAG 0x01 18 19 /* magic numbers */ 20 #define KERNEL_MAGIC 0xaa55 21 #define KERNEL_V2_MAGIC 0x53726448 22 #define COMMAND_LINE_MAGIC 0xA33F 23 24 /* limits */ 25 #define BZIMAGE_MAX_SIZE 15*1024*1024 /* 15MB */ 26 #define ZIMAGE_MAX_SIZE 512*1024 /* 512k */ 27 #define SETUP_MAX_SIZE 32768 28 29 #define SETUP_START_OFFSET 0x200 30 #define BZIMAGE_LOAD_ADDR 0x100000 31 #define ZIMAGE_LOAD_ADDR 0x10000 32 33 /** 34 * load_zimage() - Load a zImage or bzImage 35 * 36 * This copies an image into the standard location ready for setup 37 * 38 * @image: Address of image to load 39 * @kernel_size: Size of kernel including setup block (or 0 if the kernel is 40 * new enough to have a 'syssize' value) 41 * @load_addressp: Returns the address where the kernel has been loaded 42 * @return address of setup block, or NULL if something went wrong 43 */ 44 struct boot_params *load_zimage(char *image, unsigned long kernel_size, 45 ulong *load_addressp); 46 47 /** 48 * setup_zimage() - Set up a loaded zImage or bzImage ready for booting 49 * 50 * @setup_base: Pointer to the boot parameters, typically at address 51 * DEFAULT_SETUP_BASE 52 * @cmd_line: Place to put the command line, or NULL to use the one in the setup 53 * block 54 * @initrd_addr: Address of the initial ramdisk, or 0 if none 55 * @initrd_size: Size of the initial ramdisk, or 0 if none 56 * @load_address: Address where the bzImage is moved before booting, either 57 * BZIMAGE_LOAD_ADDR or ZIMAGE_LOAD_ADDR 58 * @cmdline_force: Address of 'override' command line, or 0 to use the one in 59 * the * setup block 60 * @return 0 (always) 61 */ 62 int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot, 63 ulong initrd_addr, ulong initrd_size, ulong cmdline_force); 64 65 /** 66 * zimage_dump() - Dump the metadata of a zimage 67 * 68 * This shows all available information in a zimage that has been loaded. 69 * 70 * @base_ptr: Pointer to the boot parameters, typically at address 71 * DEFAULT_SETUP_BASE 72 */ 73 void zimage_dump(struct boot_params *base_ptr); 74 75 void setup_video(struct screen_info *screen_info); 76 void setup_efi_info(struct efi_info *efi_info); 77 78 #endif 79