mirror of
https://xff.cz/git/u-boot/
synced 2025-10-22 10:31:56 +02:00
efi_loader: set image_base and image_size to correct values
Currently, image's image_base points to an address where the image was temporarily uploaded for further loading. Since efi_loader relocates the image to final destination, image_base and image_size should reflect that. This bug was detected in UEFI SCT, "Loaded Image Protocol Test - test 2," which shows that 'Unload' function doesn't fit into a range suggested by image_base and image_size. TestCase/UEFI/EFI/Protocol/LoadedImage/BlackBoxTest/ LoadedImageBBTestMain.c:1002 Changes in this patch also includes: * reverts a patch, "efi_loader: save image relocation address and size" since newly added fields are no longer needed. * copy PE headers as well since those information will be needed for module loading, in particular, at gurb. (This bug was reported by Heinrich.) Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Rebase patch. Remove unused fields from struct efi_loaded_image_obj. Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
37279ad3ee
commit
8458bf648f
@@ -203,15 +203,11 @@ struct efi_object {
|
||||
* struct efi_loaded_image_obj - handle of a loaded image
|
||||
*
|
||||
* @header: EFI object header
|
||||
* @reloc_base: base address for the relocated image
|
||||
* @reloc_size: size of the relocated image
|
||||
* @exit_jmp: long jump buffer for returning form started image
|
||||
* @entry: entry address of the relocated image
|
||||
*/
|
||||
struct efi_loaded_image_obj {
|
||||
struct efi_object header;
|
||||
void *reloc_base;
|
||||
aligned_u64 reloc_size;
|
||||
efi_status_t exit_status;
|
||||
struct jmp_buf_data exit_jmp;
|
||||
EFIAPI efi_status_t (*entry)(efi_handle_t image_handle,
|
||||
|
||||
Reference in New Issue
Block a user