Disable unaligned access (may not work across armv6-v8 on same binary)

pull/256/head
IanSB 2021-11-28 04:07:08 +00:00
rodzic 171fff3d57
commit 8e5ce6a87d
7 zmienionych plików z 25 dodań i 11 usunięć

Wyświetl plik

@ -441,7 +441,7 @@ _swi_handler_:
_enable_unaligned_access:
mrc p15, 0, r0, c1, c0, 0 // read SCTLR
bic r0, r0, #2 // A (no unaligned access fault)
orr r0, r0, #1 << 22 // U (v6 unaligned access model)
orr r0, r0, #1 << 22 // U (v6 unaligned access model) not available on arm v8
mcr p15, 0, r0, c1, c0, 0 // write SCTLR
mov pc, lr

Wyświetl plik

@ -2281,7 +2281,7 @@ run_core:
mov r0, 0
mov r1, 0
bl enable_MMU_and_IDCaches
bl _enable_unaligned_access
// bl _enable_unaligned_access //do not use for an armv6 to armv8 compatible binary
bl _init_cycle_counter
run_core_loop:
wfe

Wyświetl plik

@ -3584,7 +3584,7 @@ void kernel_main(unsigned int r0, unsigned int r1, unsigned int atags)
#else
enable_MMU_and_IDCaches(0,0);
#endif
_enable_unaligned_access();
//_enable_unaligned_access(); //do not use for an armv6 to armv8 compatible binary
log_info("***********************RESET***********************");
log_info("RGB to HDMI booted");

Wyświetl plik

@ -59,6 +59,7 @@ set( CMAKE_OBJCOPY ${TC_PATH}${CROSS_COMPILE}objcopy
#use hardware floating point
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mno-unaligned-access" )
#pi1 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )

Wyświetl plik

@ -59,6 +59,7 @@ set( CMAKE_OBJCOPY ${TC_PATH}${CROSS_COMPILE}objcopy
#use hardware floating point
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mno-unaligned-access" )
#pi1 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )
@ -75,10 +76,15 @@ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a53" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
#current flags for all
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=arm1176jzf-s" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp" )
#pi4 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a72" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
#current flags
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a72" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" )
set( CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=armv7-a" )

Wyświetl plik

@ -59,6 +59,7 @@ set( CMAKE_OBJCOPY ${TC_PATH}${CROSS_COMPILE}objcopy
#use hardware floating point
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mno-unaligned-access" )
#pi1 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )

Wyświetl plik

@ -59,6 +59,7 @@ set( CMAKE_OBJCOPY ${TC_PATH}${CROSS_COMPILE}objcopy
#use hardware floating point
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mno-unaligned-access" )
#pi1 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )
@ -75,10 +76,15 @@ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a53" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
#current flags for all
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv6zk" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=arm1176jzf-s" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=vfp" )
#pi4 flags
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a72" )
#set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
#current flags
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=cortex-a72" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpu=crypto-neon-fp-armv8" )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "" )
set( CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -march=armv7-a" )