u-boot-brain/arch
Alexey Brodkin 8f590063ba ARC: Enable unaligned access in hardware if compiler uses it
Even if ARC core might handle unaligned access to data this
hardware feature by default is disabled.

But GCC starting from 8.1.0 unconditionally uses it for ARC HS cores.
Which leads to quite strange and fatal run-time failures like the one
below if HW is not configured properly:
| hsdk# sf probe
| Misaligned data access exception @ 0xbff794d4
| ECR:    0x000d0000
| RET:    0xbff794d4
| BLINK:  0xbff79644
| STAT32: 0x00000800
| GP: 0x1003e000   r25: 0xbfd58f08
| BTA: 0xbff794a4  SP: 0xbfd58cd4  FP: 0xbfd58ef0
| LPS: 0xbff90240 LPE: 0xbff90244 LPC: 0x00000000
| r00: 0x00000000 r01: 0x00000003 r02: 0x000026bf
| r03: 0x00000000 r04: 0x00000100 r05: 0x00000000
| r06: 0x00000001 r07: 0x00000000 r08: 0x1dcd6500
| r09: 0x00000000 r10: 0x00200000 r11: 0x00000000
| r12: 0x1b3d4440 r13: 0xbff9eca4 r14: 0xbfd59d68
| r15: 0xbfd60cd0 r16: 0x00000000 r17: 0x00000000
| r18: 0xbff9ed14 r19: 0xbfd59c78 r20: 0xbfd58d40
| r21: 0xbfd58d44 r22: 0x00000000 r23: 0x00000000
| r24: 0xbfd59ba8
| Resetting CPU ...

Now we're checking for __ARC_UNALIGNED__ define emitted by the
compiler if it's going to use unaligned access and then we
force-enable it in hardware too.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2018-07-31 07:49:47 +03:00
..
arc ARC: Enable unaligned access in hardware if compiler uses it 2018-07-31 07:49:47 +03:00
arm Patch queue for efi - 2018-07-25 2018-07-30 16:02:29 -04:00
m68k m68k: m5253evbe: Remove this board 2018-07-23 14:33:21 -04:00
microblaze dm: Change CMD_DM enabling 2018-07-30 07:18:48 -04:00
mips Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
nds32 nds32: Define PLATFORM__CLEAR_BIT for generic_clear_bit() 2018-05-15 21:44:05 -04:00
nios2 .gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore 2018-06-18 14:43:12 -04:00
powerpc Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
riscv efi_loader: Rename sections to allow for implicit data 2018-07-25 14:57:44 +02:00
sandbox Patch queue for efi - 2018-07-25 2018-07-30 16:02:29 -04:00
sh SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
x86 x86: Add efi_loader bits to x86_64 linker script 2018-07-25 14:57:44 +02:00
xtensa SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
.gitignore
Kconfig dm: Change CMD_DM enabling 2018-07-30 07:18:48 -04:00