diff options
author | Pavel Pisa <ppisa@pikron.com> | 2016-05-19 10:24:46 +0200 |
---|---|---|
committer | Pavel Pisa <ppisa@pikron.com> | 2016-05-19 13:21:40 +0200 |
commit | e706a9d17c61ad0a5ebb43cc1fe59275063105cb (patch) | |
tree | 8ce6688f524fe06dddc374d990d6b3087ea3c743 /c/src/lib/libbsp/arm/raspberrypi/irq/irq.c | |
parent | bsps/arm: CP15 support for flush prefetch buffer and table base control. (diff) | |
download | rtems-e706a9d17c61ad0a5ebb43cc1fe59275063105cb.tar.bz2 |
arm/raspberrypi: ensure that RTEMS application image can be started by U-boot.
The current versions of U-boot start kernel/RTEMS application image
with instruction and data caches enabled and it sets exception
base register to new address after its self-relocation.
ldr r0, [r9, #GD_RELOCADDR] /* r0 = gd->relocaddr */
mcr p15, 0, r0, c12, c0, 0 /* Set VBAR */
Included changes in bsp_start_hook_0 restore default state to
allow RTEMS image to run after startup from newer U-boot version
on Raspberry Pi.
Clear interrupt enable registers in interrupt controller
to ensure that RTEMS starts from well defined state.
Diffstat (limited to 'c/src/lib/libbsp/arm/raspberrypi/irq/irq.c')
-rw-r--r-- | c/src/lib/libbsp/arm/raspberrypi/irq/irq.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c index 0867b6b2f1..96b16fbf20 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c +++ b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c @@ -207,5 +207,9 @@ void bsp_interrupt_handler_default(rtems_vector_number vector) rtems_status_code bsp_interrupt_facility_initialize(void) { raspberrypi_set_exception_handler(ARM_EXCEPTION_IRQ, _ARMV4_Exception_interrupt); + BCM2835_REG(BCM2835_IRQ_DISABLE1) = 0xffffffff; + BCM2835_REG(BCM2835_IRQ_DISABLE2) = 0xffffffff; + BCM2835_REG(BCM2835_IRQ_DISABLE_BASIC) = 0xffffffff; + BCM2835_REG(BCM2835_IRQ_FIQ_CTRL) = 0; return RTEMS_SUCCESSFUL; } |