[PATCH] bsp-howto: Update BSP source code structure

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Apr 17 09:33:17 UTC 2018


This patch is a part of the BSP source reorganization.

Update #3285.
---
 bsp-howto/target_dependant_files.rst | 104 +++++++++++++----------------------
 1 file changed, 38 insertions(+), 66 deletions(-)

diff --git a/bsp-howto/target_dependant_files.rst b/bsp-howto/target_dependant_files.rst
index fdfe5d2..bbd13ae 100644
--- a/bsp-howto/target_dependant_files.rst
+++ b/bsp-howto/target_dependant_files.rst
@@ -165,69 +165,41 @@ appropriate subdirectories for the specific CPU model your BSP has.
 Board Support Package Structure
 ===============================
 
-The BSPs are all under the ``c/src/lib/libbsp`` directory.  Below this
-directory, there is a subdirectory for each CPU family.  Each BSP is found
-under the subdirectory for the appropriate processor family (arm, powerpc,
-sparc, etc.).  In addition, there is source code available which may be shared
-across all BSPs regardless of the CPU family or just across BSPs within a
-single CPU family.  This results in a BSP using the following directories:
-
-.. code-block:: c
-
-    c/src/lib/libbsp/shared
-    c/src/lib/libbsp/<CPU>/shared
-    c/src/lib/libbsp/<CPU>/<BSP>
-
-Under each BSP specific directory, there is a collection of subdirectories.
-For commonly provided functionality, the BSPs follow a convention on
-subdirectory naming.  The following list describes the commonly found
-subdirectories under each BSP.
-
-- ``console``:
-  is technically the serial driver for the BSP rather than just a console
-  driver, it deals with the board UARTs (i.e. serial devices).
-
-- ``clock``:
-  support for the clock tick - a regular time basis to the kernel.
-
-- ``timer``:
-  support of timer devices.
-
-- ``rtc`` or ``tod``:
-  support for the hardware real-time clock.
-
-- ``nvmem``:
-  support for non-volatile memory such as EEPROM or Flash.
-
-- ``network``:
-  the Ethernet driver.
-
-- ``shmsupp``:
-  support of shared memory driver MPCI layer in a multiprocessor system,
-
-- ``include``:
-  include files for this BSP.
-
-- ``gnatsupp``:
-  BSP specific support for the GNU Ada run-time.  Each BSP that wishes to have
-  the possibility to map faults or exceptions into Ada language exceptions or
-  hardware interrupts into Ada interrupt tasks must provide this support.
-
-There may be other directories in the BSP tree and the name should be
-indicative of the functionality of the code within that directory.
-
-The build order of the BSP is determined by the Makefile structure.  This
-structure is discussed in more detail in the :ref:`Makefiles` chapter.
-
-.. sidebar:
-
-This manual refers to the gen68340 BSP for numerous concrete examples.  You
-should have a copy of the gen68340 BSP available while reading this piece of
-documentation.  This BSP is located in the following directory:
-
-.. code-block:: c
-
-    c/src/lib/libbsp/m68k/gen68340
-
-Later in this document, the $BSP340_ROOT label will be used to refer to this
-directory.
+The BSPs are all under the `bsps <https://git.rtems.org/rtems/tree/bsps>`_
+directory.  The structure in the source subtree is:
+
+* :file:`bsps/shared`
+* :file:`bsps/@RTEMS_CPU@/shared`
+* :file:`bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILY@`
+
+The ``@RTEMS_CPU@`` is a particular architecture, e.g. arm,
+powerpc, sparc, etc.  The ``@RTEMS_BSP_FAMILY@`` directories
+contain BSPs for a particular system on chip (SoC) or processor family.
+
+Use the following structure under the :file:`bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILY@`:
+
+* :file:`ata` - the legacy ATA/IDE driver.
+* :file:`cache` - cache controller support.
+* :file:`clock` - the clock driver.
+* :file:`config` - build system configuration files.
+* :file:`console` - the console driver.
+* :file:`contrib` - imports of external sources.
+
+  * The layout of external sources should be used as is if possible.
+
+* :file:`i2c` - the I2C driver.
+* :file:`include` - public header files.
+* :file:`irq` - the interrupt controller support.
+* :file:`mpci` - support for heterogeneous multiprocessing
+  (``RTEMS_MULTIPROCESSING``).
+* :file:`net` - legacy network stack drivers.
+* :file:`rtc` - the RTC driver.
+* :file:`spi` - the SPI driver.
+* :file:`start` - everything required to run a minimal application without
+  devices.
+
+  * :file:`start.S` - lowest level startup code.
+  * :file:`bspstart.c` - low level startup code.
+  * :file:`bspsmp.c` - SMP support.
+  * :file:`linkcmds` - the linker command file.
+* :file:`btimer` - the benchmark timer driver.
-- 
2.12.3



More information about the devel mailing list