diff options
-rwxr-xr-x | firmware/target/arm/olympus/mrobe-500/crt0.S | 5 | ||||
-rw-r--r-- | firmware/target/arm/olympus/mrobe-500/kernel-mr500.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/olympus/mrobe-500/system-mr500.c | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/firmware/target/arm/olympus/mrobe-500/crt0.S b/firmware/target/arm/olympus/mrobe-500/crt0.S index a7c1131367..193470fd4a 100755 --- a/firmware/target/arm/olympus/mrobe-500/crt0.S +++ b/firmware/target/arm/olympus/mrobe-500/crt0.S @@ -48,6 +48,11 @@ start: str r0, [r1, #28] #endif + /* Disable high vectors (at 0xffff0000 instead of 0x00000000) */ + mrc p15, 0, r0, c1, c0 + and r0, r0, #~(1<<13) + mcr p15, 0, r0, c1, c0 + #if !defined(BOOTLOADER) #if !defined(STUB) diff --git a/firmware/target/arm/olympus/mrobe-500/kernel-mr500.c b/firmware/target/arm/olympus/mrobe-500/kernel-mr500.c index 487bc2d7d2..be2b14b3cb 100644 --- a/firmware/target/arm/olympus/mrobe-500/kernel-mr500.c +++ b/firmware/target/arm/olympus/mrobe-500/kernel-mr500.c @@ -59,5 +59,5 @@ void TIMER1(void) current_tick++; - IO_INTC_IRQ0 |= 1<<IRQ_TIMER1; + IO_INTC_IRQ0 = 1<<IRQ_TIMER1; } diff --git a/firmware/target/arm/olympus/mrobe-500/system-mr500.c b/firmware/target/arm/olympus/mrobe-500/system-mr500.c index 7be44f6242..913850ddb8 100644 --- a/firmware/target/arm/olympus/mrobe-500/system-mr500.c +++ b/firmware/target/arm/olympus/mrobe-500/system-mr500.c @@ -167,6 +167,9 @@ void system_init(void) IO_INTC_FISEL1 = 0; IO_INTC_FISEL2 = 0; + IO_INTC_ENTRY_TBA0 = + IO_INTC_ENTRY_TBA1 = 0; + /* set GIO26 (reset pin) to output and low */ IO_GIO_BITCLR1=(1<<10); IO_GIO_DIR1&=~(1<<10); |