mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 16:31:25 +01:00 
			
		
		
		
	At present Linux kernel loaded from U-Boot as an EFI payload does not boot. This fills in kernel's boot params structure with the required critical EFI information like system table address and memory map stuff so that kernel can obtain essential data like runtime services and ACPI table to boot. With this patch, now U-Boot as an EFI payload becomes much more practical: it is another option of kernel bootloader, ie, can be a replacement for grub. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * (C) Copyright 2002
 | |
|  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
 | |
|  */
 | |
| 
 | |
| #ifndef _ASM_ZIMAGE_H_
 | |
| #define _ASM_ZIMAGE_H_
 | |
| 
 | |
| #include <asm/bootparam.h>
 | |
| #include <asm/e820.h>
 | |
| 
 | |
| /* linux i386 zImage/bzImage header. Offsets relative to
 | |
|  * the start of the image */
 | |
| 
 | |
| #define HEAP_FLAG           0x80
 | |
| #define BIG_KERNEL_FLAG     0x01
 | |
| 
 | |
| /* magic numbers */
 | |
| #define KERNEL_MAGIC        0xaa55
 | |
| #define KERNEL_V2_MAGIC     0x53726448
 | |
| #define COMMAND_LINE_MAGIC  0xA33F
 | |
| 
 | |
| /* limits */
 | |
| #define BZIMAGE_MAX_SIZE   15*1024*1024     /* 15MB */
 | |
| #define ZIMAGE_MAX_SIZE    512*1024         /* 512k */
 | |
| #define SETUP_MAX_SIZE     32768
 | |
| 
 | |
| #define SETUP_START_OFFSET 0x200
 | |
| #define BZIMAGE_LOAD_ADDR  0x100000
 | |
| #define ZIMAGE_LOAD_ADDR   0x10000
 | |
| 
 | |
| struct boot_params *load_zimage(char *image, unsigned long kernel_size,
 | |
| 				ulong *load_addressp);
 | |
| int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
 | |
| 		 unsigned long initrd_addr, unsigned long initrd_size);
 | |
| void setup_video(struct screen_info *screen_info);
 | |
| void setup_efi_info(struct efi_info *efi_info);
 | |
| 
 | |
| #endif
 |