efi_loader: allow unaligned memory access

The UEFI spec mandates that unaligned memory access should be enabled if
supported by the CPU architecture.

This patch adds an empty weak function unaligned_access() that can be
overridden by an architecture specific routine.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Heinrich Schuchardt 2018-04-03 21:59:32 +02:00 committed by Alexander Graf
parent fa241e2f19
commit c3b11dea7c
2 changed files with 16 additions and 0 deletions

View File

@ -17,6 +17,7 @@
#include <memalign.h>
#include <asm/global_data.h>
#include <asm-generic/sections.h>
#include <asm-generic/unaligned.h>
#include <linux/linkage.h>
DECLARE_GLOBAL_DATA_PTR;
@ -82,6 +83,15 @@ out:
return ret;
}
/*
* Allow unaligned memory access.
*
* This routine is overridden by architectures providing this feature.
*/
void __weak allow_unaligned(void)
{
}
/*
* Set the load options of an image from an environment variable.
*
@ -370,6 +380,9 @@ static int do_bootefi(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
efi_status_t r;
void *fdt_addr;
/* Allow unaligned memory access */
allow_unaligned();
/* Initialize EFI drivers */
r = efi_init_obj_list();
if (r != EFI_SUCCESS) {

View File

@ -20,4 +20,7 @@
#error invalid endian
#endif
/* Allow unaligned memory access */
void allow_unaligned(void);
#endif