summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-13 16:43:25 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-03-19 07:00:20 +0100
commit09dd82a5974d01525402e32f47d66ff1fe1b6a67 (patch)
treeb56ea9c64b078ab53fe78369a91e16a33d906bcc
parentbsps/powerpc: Move exceptions support to bsps (diff)
downloadrtems-09dd82a5974d01525402e32f47d66ff1fe1b6a67.tar.bz2
bsp/ss555: Move libcpu content to bsps
This patch is a part of the BSP source reorganization. Update #3285.
-rw-r--r--bsps/powerpc/ss555/dev/clock.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/clock/clock.c)0
-rw-r--r--bsps/powerpc/ss555/dev/console-generic.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c)0
-rw-r--r--bsps/powerpc/ss555/dev/timer.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/timer/timer.c)0
-rw-r--r--bsps/powerpc/ss555/start/irq.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c)0
-rw-r--r--bsps/powerpc/ss555/start/irq_asm.S (renamed from c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_asm.S)0
-rw-r--r--bsps/powerpc/ss555/start/irq_init.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c)0
-rw-r--r--bsps/powerpc/ss555/start/raw_exception.c (renamed from c/src/lib/libcpu/powerpc/mpc5xx/exceptions/raw_exception.c)0
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/Makefile.am14
-rw-r--r--c/src/lib/libbsp/powerpc/ss555/README24
-rw-r--r--c/src/lib/libcpu/powerpc/Makefile.am35
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/README23
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c68
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.h75
13 files changed, 31 insertions, 208 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/clock/clock.c b/bsps/powerpc/ss555/dev/clock.c
index 9f843cee4f..9f843cee4f 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/clock/clock.c
+++ b/bsps/powerpc/ss555/dev/clock.c
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c b/bsps/powerpc/ss555/dev/console-generic.c
index 7e1629b714..7e1629b714 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/console-generic/console-generic.c
+++ b/bsps/powerpc/ss555/dev/console-generic.c
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/timer/timer.c b/bsps/powerpc/ss555/dev/timer.c
index 65deae961e..65deae961e 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/timer/timer.c
+++ b/bsps/powerpc/ss555/dev/timer.c
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c b/bsps/powerpc/ss555/start/irq.c
index 8bb3cd240e..8bb3cd240e 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.c
+++ b/bsps/powerpc/ss555/start/irq.c
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_asm.S b/bsps/powerpc/ss555/start/irq_asm.S
index 52911c48e3..52911c48e3 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_asm.S
+++ b/bsps/powerpc/ss555/start/irq_asm.S
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c b/bsps/powerpc/ss555/start/irq_init.c
index 351edb4ffe..351edb4ffe 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq_init.c
+++ b/bsps/powerpc/ss555/start/irq_init.c
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/exceptions/raw_exception.c b/bsps/powerpc/ss555/start/raw_exception.c
index 6cb35be650..6cb35be650 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/exceptions/raw_exception.c
+++ b/bsps/powerpc/ss555/start/raw_exception.c
diff --git a/c/src/lib/libbsp/powerpc/ss555/Makefile.am b/c/src/lib/libbsp/powerpc/ss555/Makefile.am
index 6997ece985..0a85ecd539 100644
--- a/c/src/lib/libbsp/powerpc/ss555/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/ss555/Makefile.am
@@ -37,16 +37,16 @@ libbsp_a_SOURCES += startup/tm27supp.c
libbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/cache/cache.c
libbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/exceptions/ppc_exc_print.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/dev/clock.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/dev/console-generic.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/dev/timer.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/irq_asm.S
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/irq.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/irq_init.c
+libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/raw_exception.c
libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/vectors_init.c
libbsp_a_SOURCES += ../../../../../../bsps/powerpc/ss555/start/vectors.S
-libbsp_a_LIBADD = \
- ../../../libcpu/@RTEMS_CPU@/mpc5xx/clock.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc5xx/console-generic.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc5xx/exceptions.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc5xx/irq.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc5xx/timer.rel
-
include $(top_srcdir)/../../../../automake/local.am
include $(srcdir)/../../../../../../bsps/powerpc/shared/shared.am
include $(srcdir)/../../../../../../bsps/powerpc/ss555/headers.am
diff --git a/c/src/lib/libbsp/powerpc/ss555/README b/c/src/lib/libbsp/powerpc/ss555/README
index d4b020ba19..54d0bfa85a 100644
--- a/c/src/lib/libbsp/powerpc/ss555/README
+++ b/c/src/lib/libbsp/powerpc/ss555/README
@@ -256,3 +256,27 @@ Sample programs:
- The loopback, fileio, unilimited, and pppd tests fail due to memory
limitations.
- The paranoia program dies on a floating-point assist exception.
+
+Various non-BSP-dependent support routines.
+
+timer - Support for the RTEMS timer tick, using the Programmable
+ Interval Timer (PIT).
+
+console-generic - Console support via the on-chip dual SCI port in the QSMCM
+ module.
+
+exception - Installation and deinstallation of exception handlers, by
+ manipulation of exception vector table.
+
+irq - Exception handler for all external and decrementer interrupts.
+ Generalized interrupt handler which calls specific handlers
+ via entries in the interrupt connection table. Interrupt
+ connection table maintenance routines. USIU and UIMB
+ interrupt masking and level control.
+
+timer - Support for RTEMS timer tests, using the PowerPC timebase
+ (TB) registers.
+
+vectors - Compressed MPC5XX exception vector table, exception handler
+ prologues, default exception handler. Code to initialize
+ table with default handlers.
diff --git a/c/src/lib/libcpu/powerpc/Makefile.am b/c/src/lib/libcpu/powerpc/Makefile.am
index 724dfea710..6d5bc19e5b 100644
--- a/c/src/lib/libcpu/powerpc/Makefile.am
+++ b/c/src/lib/libcpu/powerpc/Makefile.am
@@ -45,41 +45,6 @@ if ppc405
## ppc4xx/include
endif # ppc405
-
-## mpc5xx
-EXTRA_DIST += mpc5xx/README
-if mpc5xx
-# mpc5xx/clock
-noinst_PROGRAMS += mpc5xx/clock.rel
-mpc5xx_clock_rel_SOURCES = mpc5xx/clock/clock.c
-mpc5xx_clock_rel_CPPFLAGS = $(AM_CPPFLAGS)
-mpc5xx_clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-
-# mpc5xx/console-generic
-noinst_PROGRAMS += mpc5xx/console-generic.rel
-mpc5xx_console_generic_rel_SOURCES = mpc5xx/console-generic/console-generic.c
-mpc5xx_console_generic_rel_CPPFLAGS = $(AM_CPPFLAGS)
-mpc5xx_console_generic_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-
-# mpc5xx/exceptions
-noinst_PROGRAMS += mpc5xx/exceptions.rel
-mpc5xx_exceptions_rel_SOURCES = mpc5xx/exceptions/raw_exception.c
-mpc5xx_exceptions_rel_CPPFLAGS = $(AM_CPPFLAGS)
-mpc5xx_exceptions_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-
-# mpc5xx/irq
-noinst_PROGRAMS += mpc5xx/irq.rel
-mpc5xx_irq_rel_SOURCES = mpc5xx/irq/irq.c mpc5xx/irq/irq_init.c mpc5xx/irq/irq_asm.S
-mpc5xx_irq_rel_CPPFLAGS = $(AM_CPPFLAGS)
-mpc5xx_irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-
-# mpc5xx/timer
-noinst_PROGRAMS += mpc5xx/timer.rel
-mpc5xx_timer_rel_SOURCES = mpc5xx/timer/timer.c
-mpc5xx_timer_rel_CPPFLAGS = $(AM_CPPFLAGS)
-mpc5xx_timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-endif
-
if mpc6xx
# mpc6xx/mmu
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/README b/c/src/lib/libcpu/powerpc/mpc5xx/README
deleted file mode 100644
index 54d6985649..0000000000
--- a/c/src/lib/libcpu/powerpc/mpc5xx/README
+++ /dev/null
@@ -1,23 +0,0 @@
-Various non-BSP-dependent support routines.
-
-timer - Support for the RTEMS timer tick, using the Programmable
- Interval Timer (PIT).
-
-console-generic - Console support via the on-chip dual SCI port in the QSMCM
- module.
-
-exception - Installation and deinstallation of exception handlers, by
- manipulation of exception vector table.
-
-irq - Exception handler for all external and decrementer interrupts.
- Generalized interrupt handler which calls specific handlers
- via entries in the interrupt connection table. Interrupt
- connection table maintenance routines. USIU and UIMB
- interrupt masking and level control.
-
-timer - Support for RTEMS timer tests, using the PowerPC timebase
- (TB) registers.
-
-vectors - Compressed MPC5XX exception vector table, exception handler
- prologues, default exception handler. Code to initialize
- table with default handlers.
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c b/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c
deleted file mode 100644
index 51db6a62c1..0000000000
--- a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * mpc505/509 external interrupt controller management.
- */
-
-#include "ictrl.h"
-
-#include <rtems.h>
-#include <rtems/score/powerpc.h>
-
-/*
- * Internal routines.
- */
-
-static unsigned long volatile *const IRQAND =
- (unsigned long volatile *const)0x8007EFA4;
-
-static void nullHandler()
-{
-}
-
-/* Interrupt dispatch table. */
-static ExtIsrHandler extIrqHandlers[NUM_IRQS] =
-{
- nullHandler,
- nullHandler,
- nullHandler,
- nullHandler,
- nullHandler,
- nullHandler,
- nullHandler
-};
-
-
-/* RTEMS external interrupt handler. Calls installed external interrupt
- handlers for every pending external interrupt in turn. */
-static rtems_isr extIsr_( rtems_vector_number i )
-{
-#define BIT_NUMBER(val, bit) \
- __asm__ volatile ( "cntlzw %0, %1; srawi %0, %0, 1": "=r" (bit) : "r" (val) );
-
- int bit;
- (void)i;
-
- BIT_NUMBER(*IRQAND & IMASK_ALL, bit);
- while ( bit < NUM_IRQS ) {
- extIrqHandlers[bit]();
- BIT_NUMBER(*IRQAND & IMASK_ALL, bit);
- }
-}
-
-/*
- * Public routines
- */
-
-void extIrqSetHandler(ExtInt interrupt,ExtIsrHandler handler)
-{
- extIrqHandlers[interrupt] = handler;
-}
-
-void extIsrInit( void )
-{
- int i = 0;
-
- extIrqDisable(IMASK_ALL);
- for( i = 0; i < NUM_IRQS; i++)
- extIrqHandlers[i] = nullHandler;
- set_vector(extIsr_,PPC_IRQ_EXTERNAL,1);
-}
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.h b/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.h
deleted file mode 100644
index 303ece825d..0000000000
--- a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.h
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef _ICTRL_H
-#define _ICTRL_H
-
-/*
- * mpc505/509 external interrupt controller management.
- *
- * FIXME: should be somehow merged into general RTEMS interrupt
- * management code.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define _SIU_IRQENABLE ((unsigned long volatile *const)0x8007EFA8)
-#define _SIU_IRQPEND ((unsigned long volatile *const)0x8007EFA0)
-
-/* Interrupt masks. */
-enum {
- IMASK_EXT0 = 0x80000000,
- IMASK_EXT1 = 0x20000000,
- IMASK_EXT2 = 0x08000000,
- IMASK_EXT3 = 0x02000000,
- IMASK_EXT4 = 0x00800000,
- IMASK_EXT5 = 0x00200000,
- IMASK_EXT6 = 0x00080000,
- IMASK_ALL = IMASK_EXT0 | IMASK_EXT1 | IMASK_EXT2 | IMASK_EXT3 |
- IMASK_EXT4 | IMASK_EXT5 | IMASK_EXT6
-};
-
-/* Interrupt numbers. */
-typedef enum {
- IRQ_EXT0,
- IRQ_EXT1,
- IRQ_EXT2,
- IRQ_EXT3,
- IRQ_EXT4,
- IRQ_EXT5,
- IRQ_EXT6,
- NUM_IRQS
-} ExtInt;
-
-/* Type of external interrupt handlers */
-typedef void (*ExtIsrHandler) (void);
-
-/* Initialization. Must be called once after RTEMS interrupts sybsystem
- is initiailized. 'predriver_hook' is one of such places. */
-extern void extIsrInit( void );
-
-/* Set interrupt handler 'handler' for external interrupt number
- 'interrupt'. */
-extern void extIrqSetHandler(ExtInt interrupt, ExtIsrHandler handler);
-
-/* Check is external interrupt 'irq' (IMASK_XXXX) is pended. */
-#define extIrqIsSet(irq) \
- (*_SIU_IRQPEND & (irq))
-
-/* Enable external interrupt 'irq' (IMASK_XXXX) processing. */
-#define extIrqEnable(irq) \
- (*_SIU_IRQENABLE |= (irq))
-
-/* Disable external interrupt 'irq' (IMASK_XXXX) processing. */
-#define extIrqDisable(irq) \
- (*_SIU_IRQENABLE &= ~(irq))
-
-/* Check if external interrupt 'irq' (IMASK_XXXX) processing is
- enabled. */
-#define extIrqGetEnable \
- (*_SIU_IRQENABLE)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ICTRL_H */