3 @@ -69,6 +69,9 @@ _start:
4 #elif defined(CONFIG_PURPLE)
5 .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */
6 .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */
7 +#elif defined(CONFIG_SYS_EBU_BOOT)
8 + .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */
9 + .word 0x00000000 /* phase of the flash */
11 RVECENT(romReserved,2)
13 @@ -202,7 +205,25 @@ _start:
14 * 128 * 8 == 1024 == 0x400
15 * so this is address R_VEC+0x400 == 0xbfc00400
18 +#ifndef CONFIG_PURPLE
19 + XVECENT(romExcHandle,0x400); /* bfc00400: Int, CauseIV=1 */
20 + RVECENT(romReserved,129);
21 + RVECENT(romReserved,130);
22 + RVECENT(romReserved,131);
23 + RVECENT(romReserved,132);
24 + RVECENT(romReserved,133);
25 + RVECENT(romReserved,134);
26 + RVECENT(romReserved,135);
27 + RVECENT(romReserved,136);
28 + RVECENT(romReserved,137);
29 + RVECENT(romReserved,138);
30 + RVECENT(romReserved,139);
31 + RVECENT(romReserved,140);
32 + RVECENT(romReserved,141);
33 + RVECENT(romReserved,142);
34 + RVECENT(romReserved,143);
35 + XVECENT(romExcHandle,0x480); /* bfc00480: EJTAG debug exception */
36 +#else /* CONFIG_PURPLE */
40 @@ -228,6 +249,12 @@ _start:
41 #endif /* CONFIG_PURPLE */
44 +#ifdef CONFIG_SYS_MIPS_MULTI_CPU
46 + and k0, EBASEF_CPUNUM
47 + bne k0, zero, ifx_mips_handler_cpux
51 /* Clear watch registers.
53 @@ -239,6 +266,16 @@ reset:
57 +#if defined(CONFIG_MIPS24KEC) || defined(CONFIG_MIPS34KC)
58 + /* CONFIG7 register */
59 + /* Erratum "RPS May Cause Incorrect Instruction Execution"
60 + * for 24KEC and 34KC */
61 + mfc0 k0, CP0_CONFIG, 7
62 + li k1, MIPS_CONF7_RPS
64 + mtc0 k0, CP0_CONFIG, 7
69 mtc0 zero, CP0_COMPARE
70 @@ -270,9 +307,12 @@ reset:
74 +#ifndef CONFIG_SYS_MIPS_CACHE_OPER_MODE
75 +#define CONFIG_SYS_MIPS_CACHE_OPER_MODE CONF_CM_CACHABLE_NONCOHERENT
77 /* ... and enable them.
79 - li t0, CONF_CM_CACHABLE_NONCOHERENT
80 + li t0, CONFIG_SYS_MIPS_CACHE_OPER_MODE
82 #endif /* !CONFIG_SKIP_LOWLEVEL_INIT */
84 @@ -419,3 +459,15 @@ romReserved:
89 + /* Additional handlers.
91 +#ifdef CONFIG_SYS_MIPS_MULTI_CPU
95 +ifx_mips_handler_cpux:
97 + b ifx_mips_handler_cpux;
100 --- a/include/asm-mips/mipsregs.h
101 +++ b/include/asm-mips/mipsregs.h
103 #define CP0_CAUSE $13
106 +#define CP0_EBASE $15,1
107 #define CP0_CONFIG $16
108 #define CP0_LLADDR $17
109 #define CP0_WATCHLO $18
111 #define CAUSEF_BD (_ULCAST_(1) << 31)
114 + * Bits in the coprocessor 0 EBase register
116 +#define EBASEB_CPUNUM 0
117 +#define EBASEF_CPUNUM (0x3ff << EBASEB_CPUNUM)
118 +#define EBASEB_EXPBASE 12
119 +#define EBASEF_EXPBASE (0x3ffff << EBASEB_EXPBASE)
122 * Bits in the coprocessor 0 config register.