Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

s5l77xx: Correct definitions of VICADDRESS(n) and AESINADDR

By switching them from (const void* volatile*) to (void* volatile*)

The 'const' bit was causing GCC>4 to optimize away writes to those
addresses when compiled with -Os, badly breaking the interrupt handler.

Change-Id: Ia4b0ca37e082bddf78e084b80a5e550894645f1a

+2 -3
+2 -3
firmware/export/s5l87xx.h
··· 29 29 #define REG16_PTR_T volatile uint16_t * 30 30 #define REG32_PTR_T volatile uint32_t * 31 31 #define VOID_PTR_PTR_T void* volatile* 32 - #define CONST_VOID_PTR_PTR_T const void* volatile* 33 32 34 33 #if CONFIG_CPU==S5L8700 || CONFIG_CPU==S5L8701 35 34 #define CACHEALIGN_BITS (4) /* 2^4 = 16 bytes */ ··· 1596 1595 #define AESAUXADDR (*((REG32_PTR_T)(AES_BASE + 0x30))) 1597 1596 #elif CONFIG_CPU==S5L8702 || CONFIG_CPU==S5L8720 1598 1597 #define AESOUTADDR (*((VOID_PTR_PTR_T)(AES_BASE + 0x20))) 1599 - #define AESINADDR (*((CONST_VOID_PTR_PTR_T)(AES_BASE + 0x28))) 1598 + #define AESINADDR (*((VOID_PTR_PTR_T)(AES_BASE + 0x28))) 1600 1599 #define AESAUXADDR (*((VOID_PTR_PTR_T)(AES_BASE + 0x30))) 1601 1600 #define AESKEY ((REG32_PTR_T)(AES_BASE + 0x4c)) 1602 1601 #define AESIV ((REG32_PTR_T)(AES_BASE + 0x74)) ··· 1698 1697 #define VICPRIORITYDAISY(v) (*((REG32_PTR_T)(VICBASE(v) + 0x28))) 1699 1698 #define VICVECTADDR(v, i) (*((REG32_PTR_T)(VICBASE(v) + 0x100 + 4 * (i)))) 1700 1699 #define VICVECTPRIORITY(v, i) (*((REG32_PTR_T)(VICBASE(v) + 0x200 + 4 * (i)))) 1701 - #define VICADDRESS(v) (*((CONST_VOID_PTR_PTR_T)(VICBASE(v) + 0xF00))) 1700 + #define VICADDRESS(v) (*((VOID_PTR_PTR_T)(VICBASE(v) + 0xF00))) 1702 1701 1703 1702 #define VIC0IRQSTATUS VICIRQSTATUS(0) 1704 1703 #define VIC0FIQSTATUS VICFIQSTATUS(0)