[rtems commit] leon3: avoid dependency on apbuart/timer driver

Daniel Hellstrom danielh at rtems.org
Sun Mar 7 15:56:14 UTC 2021


Module:    rtems
Branch:    5
Commit:    0ed294b6cce8f1cb123327f32eb8fdc973d7f4a7
Changeset: http://git.rtems.org/rtems/commit/?id=0ed294b6cce8f1cb123327f32eb8fdc973d7f4a7

Author:    Daniel Hellstrom <daniel at gaisler.com>
Date:      Thu Sep 12 14:48:29 2019 +0200

leon3: avoid dependency on apbuart/timer driver

Moves drvmgr_drivers[] from amba.c to a separate file in order
to avoid the dependecy on APBUART/GPTIMER drivers. This has
an effect when user configured not to use timer or uart
in their project.

Update #4309.

---

 bsps/sparc/leon3/start/amba.c               | 12 ------------
 bsps/sparc/leon3/start/drvmgr_def_drivers.c | 28 ++++++++++++++++++++++++++++
 c/src/lib/libbsp/sparc/leon3/Makefile.am    |  1 +
 3 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/bsps/sparc/leon3/start/amba.c b/bsps/sparc/leon3/start/amba.c
index e7ff298..1de2061 100644
--- a/bsps/sparc/leon3/start/amba.c
+++ b/bsps/sparc/leon3/start/amba.c
@@ -34,18 +34,6 @@ struct ambapp_bus ambapp_plb;
 #include <drvmgr/drvmgr.h>
 #include <grlib/ambapp_bus_grlib.h>
 
-extern void gptimer_register_drv (void);
-extern void apbuart_cons_register_drv(void);
-/* All drivers included by BSP, this is overridden by the user by including
- * the drvmgr_confdefs.h. By default the Timer and UART driver are included.
- */
-drvmgr_drv_reg_func drvmgr_drivers[] __attribute__((weak)) =
-{
-  gptimer_register_drv,
-  apbuart_cons_register_drv,
-  NULL /* End array with NULL */
-};
-
 /* Driver resources configuration for AMBA root bus. It is declared weak
  * so that the user may override it, if the defualt settings are not
  * enough.
diff --git a/bsps/sparc/leon3/start/drvmgr_def_drivers.c b/bsps/sparc/leon3/start/drvmgr_def_drivers.c
new file mode 100644
index 0000000..688b37b
--- /dev/null
+++ b/bsps/sparc/leon3/start/drvmgr_def_drivers.c
@@ -0,0 +1,28 @@
+/*
+ *  Default BSP drivers when Driver Manager enabled
+ *
+ *  COPYRIGHT (c) 2019.
+ *  Cobham Gaisler
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.org/license/LICENSE.
+ */
+#include <bsp.h>
+
+#ifdef RTEMS_DRVMGR_STARTUP
+#include <drvmgr/drvmgr.h>
+
+extern void gptimer_register_drv (void);
+extern void apbuart_cons_register_drv(void);
+/* All drivers included by BSP, this is overridden by the user by including
+ * the drvmgr_confdefs.h. By default the Timer and UART driver are included.
+ */
+drvmgr_drv_reg_func drvmgr_drivers[] __attribute__((weak)) =
+{
+  gptimer_register_drv,
+  apbuart_cons_register_drv,
+  NULL /* End array with NULL */
+};
+
+#endif
diff --git a/c/src/lib/libbsp/sparc/leon3/Makefile.am b/c/src/lib/libbsp/sparc/leon3/Makefile.am
index 7933a48..beb1b96 100644
--- a/c/src/lib/libbsp/sparc/leon3/Makefile.am
+++ b/c/src/lib/libbsp/sparc/leon3/Makefile.am
@@ -38,6 +38,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/start/bspreset-empty.c
 librtemsbsp_a_SOURCES += ../../../../../../bsps/sparc/leon3/start/cpucounter.c
 librtemsbsp_a_SOURCES += ../../../../../../bsps/sparc/shared/start/bsp_fatal_exit.c
 librtemsbsp_a_SOURCES += ../../../../../../bsps/sparc/leon3/start/bsp_fatal_halt.c
+librtemsbsp_a_SOURCES += ../../../../../../bsps/sparc/leon3/start/drvmgr_def_drivers.c
 
 # gnatsupp
 librtemsbsp_a_SOURCES += ../../../../../../bsps/sparc/leon3/gnatsupp/gnatsupp.c



More information about the vc mailing list