mirror of
https://xff.cz/git/u-boot/
synced 2025-10-16 23:42:00 +02:00
efi_loader: update runtime services table crc32
The crc32 of the runtime services table must be updated after detaching. efi_update_table_header_crc32() must be __efi_runtime. So move it to efi_runtime.c Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
committed by
Alexander Graf
parent
483dbab9f9
commit
a39f39cdd8
@@ -84,6 +84,18 @@ struct elf_rela {
|
||||
* handle a good number of runtime callbacks
|
||||
*/
|
||||
|
||||
/**
|
||||
* efi_update_table_header_crc32() - Update crc32 in table header
|
||||
*
|
||||
* @table: EFI table
|
||||
*/
|
||||
void __efi_runtime efi_update_table_header_crc32(struct efi_table_hdr *table)
|
||||
{
|
||||
table->crc32 = 0;
|
||||
table->crc32 = crc32(0, (const unsigned char *)table,
|
||||
table->headersize);
|
||||
}
|
||||
|
||||
static void EFIAPI efi_reset_system_boottime(
|
||||
enum efi_reset_type reset_type,
|
||||
efi_status_t reset_status,
|
||||
@@ -273,6 +285,9 @@ static void efi_runtime_detach(ulong offset)
|
||||
debug("%s: Setting %p to %lx\n", __func__, p, newaddr);
|
||||
*p = newaddr;
|
||||
}
|
||||
|
||||
/* Update crc32 */
|
||||
efi_update_table_header_crc32(&efi_runtime_services.hdr);
|
||||
}
|
||||
|
||||
/* Relocate EFI runtime to uboot_reloc_base = offset */
|
||||
|
Reference in New Issue
Block a user