arm, arm926ejs: Add option CONFIG_SYS_EXCEPTION_VECTORS_HIGH
The V bit of the c1 register of CP15 should not be cleared on DA850 SoCs since they have no valid memory at 0x00000000. This patch introduces a configuration option CONFIG_SYS_EXCEPTION_VECTORS_HIGH that allows setting the correct value for the V bit. Signed-off-by: Christian Riesch <christian.riesch@omicron.at> Reported-by: Sughosh Ganu <urwithsughosh@gmail.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Tom Rini <trini@ti.com> Cc: Sughosh Ganu <urwithsughosh@gmail.com> Cc: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
da104e04ec
commit
b67d8816fd
6
README
6
README
@ -420,6 +420,12 @@ The following options need to be configured:
|
||||
XWAY SoCs for booting from NOR flash. The U-Boot image needs to
|
||||
be swapped if a flash programmer is used.
|
||||
|
||||
- ARM options:
|
||||
CONFIG_SYS_EXCEPTION_VECTORS_HIGH
|
||||
|
||||
Select high exception vectors of the ARM core, e.g., do not
|
||||
clear the V bit of the c1 register of CP15.
|
||||
|
||||
- Linux Kernel Interface:
|
||||
CONFIG_CLOCKS_IN_MHZ
|
||||
|
||||
|
@ -372,8 +372,13 @@ flush_dcache:
|
||||
* disable MMU and D cache, and enable I cache
|
||||
*/
|
||||
mrc p15, 0, r0, c1, c0, 0
|
||||
bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */
|
||||
bic r0, r0, #0x00000300 /* clear bits 9:8 (---- --RS) */
|
||||
bic r0, r0, #0x00000087 /* clear bits 7, 2:0 (B--- -CAM) */
|
||||
#ifdef CONFIG_SYS_EXCEPTION_VECTORS_HIGH
|
||||
orr r0, r0, #0x00002000 /* set bit 13 (--V- ----) */
|
||||
#else
|
||||
bic r0, r0, #0x00002000 /* clear bit 13 (--V- ----) */
|
||||
#endif
|
||||
orr r0, r0, #0x00000002 /* set bit 2 (A) Align */
|
||||
orr r0, r0, #0x00001000 /* set bit 12 (I) I-Cache */
|
||||
mcr p15, 0, r0, c1, c0, 0
|
||||
|
@ -37,6 +37,7 @@
|
||||
#define CONFIG_ARM926EJS /* arm926ejs CPU core */
|
||||
#define CONFIG_SOC_DA8XX /* TI DA8xx SoC */
|
||||
#define CONFIG_SOC_DA850 /* TI DA850 SoC */
|
||||
#define CONFIG_SYS_EXCEPTION_VECTORS_HIGH
|
||||
#define CONFIG_SYS_CLK_FREQ clk_get(DAVINCI_ARM_CLKID)
|
||||
#define CONFIG_SYS_OSCIN_FREQ 24000000
|
||||
#define CONFIG_SYS_TIMERBASE DAVINCI_TIMER0_BASE
|
||||
|
@ -40,6 +40,7 @@
|
||||
#define CONFIG_ARM926EJS /* arm926ejs CPU core */
|
||||
#define CONFIG_SOC_DA8XX /* TI DA8xx SoC */
|
||||
#define CONFIG_SOC_DA850 /* TI DA850 SoC */
|
||||
#define CONFIG_SYS_EXCEPTION_VECTORS_HIGH
|
||||
#define CONFIG_SYS_CLK_FREQ clk_get(DAVINCI_ARM_CLKID)
|
||||
#define CONFIG_SYS_OSCIN_FREQ 24000000
|
||||
#define CONFIG_SYS_TIMERBASE DAVINCI_TIMER0_BASE
|
||||
|
@ -35,6 +35,7 @@
|
||||
#define CONFIG_ARM926EJS /* arm926ejs CPU core */
|
||||
#define CONFIG_SOC_DA8XX /* TI DA8xx SoC */
|
||||
#define CONFIG_SOC_DA850 /* TI DA850 SoC */
|
||||
#define CONFIG_SYS_EXCEPTION_VECTORS_HIGH
|
||||
#define CONFIG_SYS_CLK_FREQ clk_get(DAVINCI_ARM_CLKID)
|
||||
#define CONFIG_SYS_OSCIN_FREQ 24000000
|
||||
#define CONFIG_SYS_TIMERBASE DAVINCI_TIMER0_BASE
|
||||
|
Loading…
Reference in New Issue
Block a user