diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2011-12-12 15:50:57 +0100 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2015-04-17 01:10:16 +0200 |
commit | e428dc4a953d18b7046773965b83c78e64071317 (patch) | |
tree | 11a6802e917c7faafeb6147ab37995e3415aa177 /c/src/lib/libbsp/sparc/leon3/startup | |
parent | DRVMGR: added drvmgr shell command (diff) | |
download | rtems-e428dc4a953d18b7046773965b83c78e64071317.tar.bz2 |
LEON3: implemented BSP DRVMGR startup initialization
Diffstat (limited to 'c/src/lib/libbsp/sparc/leon3/startup')
-rw-r--r-- | c/src/lib/libbsp/sparc/leon3/startup/bsppredriver.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/startup/bsppredriver.c b/c/src/lib/libbsp/sparc/leon3/startup/bsppredriver.c index a45d9d3b58..bdc1ab8a9e 100644 --- a/c/src/lib/libbsp/sparc/leon3/startup/bsppredriver.c +++ b/c/src/lib/libbsp/sparc/leon3/startup/bsppredriver.c @@ -16,6 +16,14 @@ #include <bsp.h> #include <bsp/bootcard.h> +static void leon3_interrupt_common_init( void ) +{ + /* Initialize shared interrupt handling, must be done after IRQ + * controller has been found and initialized. + */ + BSP_shared_interrupt_init(); +} + /* * bsp_predriver_hook * @@ -24,8 +32,30 @@ */ void bsp_predriver_hook( void ) { +#ifndef RTEMS_DRVMGR_STARTUP + leon3_interrupt_common_init(); +#endif +} + +#ifdef RTEMS_DRVMGR_STARTUP +/* + * bsp_driver_level_hook + * + * BSP driver level hook. Called just after drivers have reached initialization + * level 'level' (1,2,3,4). See exinit.c for meaning of the every level. + * + * Initializes the BSP Interrupt layer + * After Level 1 we can trust that interrupt controller and system + * clock timer drivers now have been initialized. + */ +void bsp_driver_level_hook( int level ) +{ /* Initialize shared interrupt handling, must be done after IRQ * controller has been found and initialized. */ - BSP_shared_interrupt_init(); + if (level != 1) + return; + + leon3_interrupt_common_init(); } +#endif |