summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-17 09:23:59 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-02-19 09:59:38 +0100
commit801b5d80325dbd3e92218271d54e75f389da7136 (patch)
treed804e85db347bafd1c7b52b086beff7b6d61c170 /c/src/lib/libbsp/powerpc
parentscore: Move SMP interrupt stack initialization (diff)
downloadrtems-801b5d80325dbd3e92218271d54e75f389da7136.tar.bz2
powerpc: Change interrupt disable implemetation
Instead of SPRG0 (= special purpose register 272) use the new global symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask. The benefit is that it is now possible to disable interrupts without further run-time initialization in boot_card(). At least on Freescale e500 cores this leads also to a faster execution since the mfmsr and mfspr instruction require four cycles to complete. The instructions to load the mask value can execute while the mfmsr is in progress.
Diffstat (limited to 'c/src/lib/libbsp/powerpc')
-rw-r--r--c/src/lib/libbsp/powerpc/beatnik/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/ep1a/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/psim/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/smp.c1
-rw-r--r--c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c1
-rw-r--r--c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c4
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c4
21 files changed, 10 insertions, 57 deletions
diff --git a/c/src/lib/libbsp/powerpc/beatnik/startup/bspstart.c b/c/src/lib/libbsp/powerpc/beatnik/startup/bspstart.c
index 763c9d805e..d2501b55dc 100644
--- a/c/src/lib/libbsp/powerpc/beatnik/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/beatnik/startup/bspstart.c
@@ -242,11 +242,7 @@ void bsp_start( void )
/*
* Initialize default raw exception handlers. See vectors/vectors_init.c
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
printk("CPU: %s\n", get_ppc_cpu_type_name(current_ppc_cpu));
diff --git a/c/src/lib/libbsp/powerpc/ep1a/startup/bspstart.c b/c/src/lib/libbsp/powerpc/ep1a/startup/bspstart.c
index b22a743843..1098de29ec 100644
--- a/c/src/lib/libbsp/powerpc/ep1a/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/ep1a/startup/bspstart.c
@@ -323,11 +323,7 @@ ShowBATS();
/*
* Initialize default raw exception hanlders.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
/*
* Init MMU block address translation to enable hardware
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c
index 56de4a5aca..8324b44dc9 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c
@@ -170,7 +170,6 @@ void bsp_start(void)
/* Initialize exception handler */
ppc_exc_cache_wb_check = 0;
ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_interrupt_stack_start,
(uintptr_t) bsp_interrupt_stack_size
);
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
index 9abf1733f4..abdc2e2a13 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
@@ -136,7 +136,6 @@ void bsp_start( void)
ppc_exc_cache_wb_check = 0;
#endif
ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size()
);
diff --git a/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c b/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c
index fc7e932b28..3dfecb6826 100644
--- a/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c
@@ -206,7 +206,6 @@ void bsp_start( void )
* Initialize default raw exception handlers.
*/
ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) intrStack_start,
(uintptr_t) intrStack_size
);
diff --git a/c/src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c
index 6216754184..ffa8500f61 100644
--- a/c/src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mbx8xx/startup/bspstart.c
@@ -114,7 +114,6 @@ void bsp_start(void)
/* Initialize exception handler */
ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) IntrStack_start,
(uintptr_t) intrStack - (uintptr_t) IntrStack_start
);
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
index 7f4f93524d..ed3ef537b5 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c
@@ -108,7 +108,6 @@ void bsp_start(void)
/* Initialize exceptions */
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size(),
mpc55xx_exc_vector_base
diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
index ef18cee7fd..81c6809003 100644
--- a/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspstart.c
@@ -174,7 +174,6 @@ void bsp_start(void)
/* Initialize exception handler */
/* FIXME: Interrupt stack begin and size */
ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) IntrStack_start,
(uintptr_t) intrStack - (uintptr_t) IntrStack_start
);
diff --git a/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c
index 78b79baa0b..71e72f2fe0 100644
--- a/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c
@@ -270,11 +270,7 @@ VpdBufRec vpdData [] = {
/*
* Initialize default raw exception handlers.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
printk("CPU 0x%x - rev 0x%x\n", myCpu, myCpuRevision);
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c
index 06e48604c5..7b97906661 100644
--- a/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/mvme5500/startup/bspstart.c
@@ -245,11 +245,7 @@ void bsp_start( void )
/*
* Initialize default raw exception handlers.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
/*
* Init MMU block address translation to enable hardware
diff --git a/c/src/lib/libbsp/powerpc/psim/startup/bspstart.c b/c/src/lib/libbsp/powerpc/psim/startup/bspstart.c
index b156f4d901..881d79a175 100644
--- a/c/src/lib/libbsp/powerpc/psim/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/psim/startup/bspstart.c
@@ -99,7 +99,6 @@ void bsp_start( void )
* Initialize default raw exception handlers.
*/
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size(),
(void *) 0xfff00000
diff --git a/c/src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c
index 62c5931e0c..878defa02a 100644
--- a/c/src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/qemuppc/startup/bspstart.c
@@ -94,11 +94,7 @@ void bsp_start( void )
/*
* Initialize default raw exception handlers.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
/* Install default handler for the decrementer exception */
sc = ppc_exc_set_handler( ASM_DEC_VECTOR, default_decrementer_exception_handler);
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
index fe726e368a..f5145588c8 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
@@ -110,7 +110,6 @@ void bsp_start(void)
/* Initialize exception handler */
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size(),
bsp_exc_vector_base
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
index 9caaa99a01..38a7305ea7 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/smp.c
@@ -116,7 +116,6 @@ void qoriq_secondary_cpu_initialize(void)
/* Initialize exception handler */
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) second_cpu->interrupt_stack_low,
rtems_configuration_get_interrupt_stack_size(),
bsp_exc_vector_base
diff --git a/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c b/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c
index 3519a59f3b..8caf955835 100644
--- a/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c
@@ -194,11 +194,7 @@ void bsp_start( void )
/*
* Initialize default raw exception handlers.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
msr_value = 0x2030;
_CPU_MSR_SET( msr_value );
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c b/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c
index abdb774c1f..e8bd070402 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c
@@ -232,11 +232,7 @@ void bsp_start( void )
/*
* Initialize default raw exception handlers.
*/
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize
- );
+ ppc_exc_initialize(intrStackStart, intrStackSize);
boardManufacturer = checkPrepBoardType(&residualCopy);
if (boardManufacturer != PREP_Motorola) {
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c b/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
index 6d2196a301..6b6dd1caaf 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/t32mppc/startup/bspstart.c
@@ -68,7 +68,6 @@ void bsp_start(void)
/* Initialize exception handler */
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size(),
bsp_exc_vector_base
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
index 0c3a760d17..af014c6d24 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/startup/bspstart.c
@@ -183,11 +183,7 @@ void bsp_start( void)
rtems_counter_initialize_converter(bsp_time_base_frequency);
/* Initialize exception handler */
- ppc_exc_initialize(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- interrupt_stack_start,
- interrupt_stack_size
- );
+ ppc_exc_initialize(interrupt_stack_start, interrupt_stack_size);
/* Initalize interrupt support */
bsp_interrupt_initialize();
diff --git a/c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c
index b29509f7f5..1625428848 100644
--- a/c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/virtex/startup/bspstart.c
@@ -95,7 +95,6 @@ void bsp_start( void )
* Initialize default raw exception handlers.
*/
ppc_exc_initialize_with_vector_base(
- PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
(uintptr_t) bsp_section_work_begin,
rtems_configuration_get_interrupt_stack_size(),
virtex_exc_vector_base
diff --git a/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
index 7628e8d3b9..85f7847599 100644
--- a/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/virtex4/startup/bspstart.c
@@ -208,9 +208,7 @@ void bsp_start(void)
intrStackStart = CPU_UP_ALIGN((uint32_t)__bsp_ram_start);
intrStackSize = rtems_configuration_get_interrupt_stack_size();
- ppc_exc_initialize(PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize);
+ ppc_exc_initialize(intrStackStart, intrStackSize);
/* Let the user know what parameters we were compiled with */
printk(" Base/Start End Size\n"
diff --git a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
index 9a041cac62..4ff5b2e396 100644
--- a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
@@ -228,9 +228,7 @@ void bsp_start(void)
intrStackStart = CPU_UP_ALIGN((uint32_t)__bsp_ram_start);
intrStackSize = rtems_configuration_get_interrupt_stack_size();
- ppc_exc_initialize(PPC_INTERRUPT_DISABLE_MASK_DEFAULT,
- intrStackStart,
- intrStackSize);
+ ppc_exc_initialize(intrStackStart, intrStackSize);
/* Let the user know what parameters we were compiled with */
printk(" Base/Start End Size\n"