mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-20 22:21:41 +00:00
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:
parent
fa241e2f19
commit
c3b11dea7c
2 changed files with 16 additions and 0 deletions
|
@ -17,6 +17,7 @@
|
||||||
#include <memalign.h>
|
#include <memalign.h>
|
||||||
#include <asm/global_data.h>
|
#include <asm/global_data.h>
|
||||||
#include <asm-generic/sections.h>
|
#include <asm-generic/sections.h>
|
||||||
|
#include <asm-generic/unaligned.h>
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
@ -82,6 +83,15 @@ out:
|
||||||
return ret;
|
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.
|
* 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;
|
efi_status_t r;
|
||||||
void *fdt_addr;
|
void *fdt_addr;
|
||||||
|
|
||||||
|
/* Allow unaligned memory access */
|
||||||
|
allow_unaligned();
|
||||||
|
|
||||||
/* Initialize EFI drivers */
|
/* Initialize EFI drivers */
|
||||||
r = efi_init_obj_list();
|
r = efi_init_obj_list();
|
||||||
if (r != EFI_SUCCESS) {
|
if (r != EFI_SUCCESS) {
|
||||||
|
|
|
@ -20,4 +20,7 @@
|
||||||
#error invalid endian
|
#error invalid endian
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Allow unaligned memory access */
|
||||||
|
void allow_unaligned(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue