The UEFI spec mandates that unaligned memory access should be enabled if supported by the CPU architecture. This patch implements the function unaligned_access() to reset the aligned access flag in the system control register (SCTLR). It is called when the bootefi command is invoked. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> [agraf: fix SPDX identifier] Signed-off-by: Alexander Graf <agraf@suse.de>lime2-spi
parent
c3b11dea7c
commit
78f90aaeec
@ -0,0 +1,22 @@ |
||||
/* SPDX-License-Identifier: GPL-2.0+ */ |
||||
/* |
||||
* Routines to access the system control register |
||||
* |
||||
* Copyright (c) 2018 Heinrich Schuchardt |
||||
*/ |
||||
|
||||
#include <linux/linkage.h> |
||||
|
||||
/* |
||||
* void allow_unaligned(void) - allow unaligned access |
||||
* |
||||
* This routine clears the aligned flag in the system control register. |
||||
* After calling this routine unaligned access does no longer lead to a |
||||
* data abort but is handled by the CPU. |
||||
*/ |
||||
ENTRY(allow_unaligned) |
||||
mrc p15, 0, r0, c1, c0, 0 @ load system control register
|
||||
bic r0, r0, #2 @ clear aligned flag
|
||||
mcr p15, 0, r0, c1, c0, 0 @ write system control register
|
||||
bx lr @ return
|
||||
ENDPROC(allow_unaligned) |
Loading…
Reference in new issue