aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain.inc
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2015-01-16 16:06:00 -0800
committerPatrick Georgi <pgeorgi@google.com>2015-04-17 09:21:16 +0200
commit1968b5801098ab1c549ed47e42f543aff1cb2637 (patch)
tree71fcc90abc5165328b0c16e7a44bf2390d3d6c33 /toolchain.inc
parent6addd4026876d48e7205dced69174cd4dfef09bb (diff)
downloadcoreboot-1968b5801098ab1c549ed47e42f543aff1cb2637.tar.gz
coreboot-1968b5801098ab1c549ed47e42f543aff1cb2637.tar.xz
coreboot-1968b5801098ab1c549ed47e42f543aff1cb2637.zip
ARM: Remove -mno-unaligned-access
We've decided that it is generally okay for coreboot to expect unaligned accesses to work. Trying to find all instances of unaligned access opportunities and working around them in software would be an unsustainable whack-a-mole contest. Instead, architectures and boards need to make sure they conform to this, which on ARM and ARM64 requires setting up paging early in the bootblock. Other architectures (x86, ARM64, MIPS) already generate code in this manner. ARM still had an -mno-unaligned-access flag hanging around that has been copied so many times its initial origin was lost in time (probably U-Boot). Let's remove it for consistency between architectures and to improve code generation. BRANCH=veyron BUG=None TEST=Booted Jerry and Blaze. Looked at the disassembly for timestamp_sync() and confirmed that it only gives you half as much eye cancer as before (GCC still somehow insists on byte accesses when zeroing fields which is very odd, but at least that terrible AND/OR mess is gone). Measured a boot time increase of about 11ms on Jerry (mostly faster timestamp and CBFS accesses). Could not test Storm because despite our claimed abundance of test devices, every time I get one of them it magically disappears again in less than a week. Change-Id: I8fc08cc7ce4471651a51ee795269909ef69277c8 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 07591fadb89bd127fe065abf0b9ba3facecf1aeb Original-Change-Id: I1d046e05bb11822b86e467eafb6aa92e8fbce774 Original-Signed-off-by: Julius Werner <jwerner@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/241732 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/9728 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
Diffstat (limited to 'toolchain.inc')
-rw-r--r--toolchain.inc2
1 files changed, 1 insertions, 1 deletions
diff --git a/toolchain.inc b/toolchain.inc
index b79985551..9820fa222 100644
--- a/toolchain.inc
+++ b/toolchain.inc
@@ -60,7 +60,7 @@ ARCHDIR-arm64 := arm64
ARCHDIR-riscv := riscv
ARCHDIR-mips := mips
-CFLAGS_arm := -mno-unaligned-access -ffunction-sections -fdata-sections
+CFLAGS_arm := -ffunction-sections -fdata-sections
CFLAGS_arm64 := -ffunction-sections -fdata-sections