mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-30 01:53:48 +01:00 
			
		
		
		
	efi_loader: set IMAGE_FILE_LARGE_ADDRESS_AWARE
For the 64bit EFI binaries that we create set the IMAGE_FILE_LARGE_ADDRESS_AWARE characteristic in the PE-COFF header to indicate that they can handle addresses above 2 GiB. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
		| @@ -34,6 +34,7 @@ coff_header: | |||||||
| 	.short	(IMAGE_FILE_EXECUTABLE_IMAGE | \ | 	.short	(IMAGE_FILE_EXECUTABLE_IMAGE | \ | ||||||
| 		 IMAGE_FILE_LINE_NUMS_STRIPPED | \ | 		 IMAGE_FILE_LINE_NUMS_STRIPPED | \ | ||||||
| 		 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ | 		 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ | ||||||
|  | 		 IMAGE_FILE_LARGE_ADDRESS_AWARE | \ | ||||||
| 		 IMAGE_FILE_DEBUG_STRIPPED) | 		 IMAGE_FILE_DEBUG_STRIPPED) | ||||||
| optional_header: | optional_header: | ||||||
| 	.short	IMAGE_NT_OPTIONAL_HDR64_MAGIC	/* PE32+ format */ | 	.short	IMAGE_NT_OPTIONAL_HDR64_MAGIC	/* PE32+ format */ | ||||||
|   | |||||||
| @@ -16,12 +16,23 @@ | |||||||
| #define LOAD_LONG(reg, idx)	ld	reg, (idx*SIZE_LONG)(sp) | #define LOAD_LONG(reg, idx)	ld	reg, (idx*SIZE_LONG)(sp) | ||||||
| #define PE_MACHINE	IMAGE_FILE_MACHINE_RISCV64 | #define PE_MACHINE	IMAGE_FILE_MACHINE_RISCV64 | ||||||
| #define PE_MAGIC    IMAGE_NT_OPTIONAL_HDR64_MAGIC | #define PE_MAGIC    IMAGE_NT_OPTIONAL_HDR64_MAGIC | ||||||
|  | #define IMG_CHARACTERISTICS \ | ||||||
|  | 	(IMAGE_FILE_EXECUTABLE_IMAGE | \ | ||||||
|  | 	 IMAGE_FILE_LINE_NUMS_STRIPPED | \ | ||||||
|  | 	 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ | ||||||
|  | 	 IMAGE_FILE_LARGE_ADDRESS_AWARE | \ | ||||||
|  | 	 IMAGE_FILE_DEBUG_STRIPPED) | ||||||
| #else | #else | ||||||
| #define SIZE_LONG	4 | #define SIZE_LONG	4 | ||||||
| #define SAVE_LONG(reg, idx)	sw	reg, (idx*SIZE_LONG)(sp) | #define SAVE_LONG(reg, idx)	sw	reg, (idx*SIZE_LONG)(sp) | ||||||
| #define LOAD_LONG(reg, idx)	lw	reg, (idx*SIZE_LONG)(sp) | #define LOAD_LONG(reg, idx)	lw	reg, (idx*SIZE_LONG)(sp) | ||||||
| #define PE_MACHINE	IMAGE_FILE_MACHINE_RISCV32 | #define PE_MACHINE	IMAGE_FILE_MACHINE_RISCV32 | ||||||
| #define PE_MAGIC    IMAGE_NT_OPTIONAL_HDR32_MAGIC | #define PE_MAGIC    IMAGE_NT_OPTIONAL_HDR32_MAGIC | ||||||
|  | #define IMG_CHARACTERISTICS \ | ||||||
|  | 	(IMAGE_FILE_EXECUTABLE_IMAGE | \ | ||||||
|  | 	 IMAGE_FILE_LINE_NUMS_STRIPPED | \ | ||||||
|  | 	 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ | ||||||
|  | 	 IMAGE_FILE_DEBUG_STRIPPED) | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -47,11 +58,7 @@ coff_header: | |||||||
| 	.long	0				/* PointerToSymbolTable */ | 	.long	0				/* PointerToSymbolTable */ | ||||||
| 	.long	0				/* NumberOfSymbols */ | 	.long	0				/* NumberOfSymbols */ | ||||||
| 	.short	section_table - optional_header	/* SizeOfOptionalHeader */ | 	.short	section_table - optional_header	/* SizeOfOptionalHeader */ | ||||||
| 	/* Characteristics */ | 	.short	IMG_CHARACTERISTICS		/* Characteristics */ | ||||||
| 	.short	(IMAGE_FILE_EXECUTABLE_IMAGE | \ |  | ||||||
| 		 IMAGE_FILE_LINE_NUMS_STRIPPED | \ |  | ||||||
| 		 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \ |  | ||||||
| 		 IMAGE_FILE_DEBUG_STRIPPED) |  | ||||||
| optional_header: | optional_header: | ||||||
| 	.short	PE_MAGIC			/* PE32(+) format */ | 	.short	PE_MAGIC			/* PE32(+) format */ | ||||||
| 	.byte	0x02				/* MajorLinkerVersion */ | 	.byte	0x02				/* MajorLinkerVersion */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user