[RTEMS Project] #4272: BSP Executable Conversion

RTEMS trac trac at rtems.org
Fri Apr 9 02:00:27 UTC 2021


#4272: BSP Executable Conversion
-------------------------+--------------------------
 Reporter:  Chris Johns  |       Owner:  Chris Johns
     Type:  project      |      Status:  assigned
 Priority:  normal       |   Milestone:  Indefinite
Component:  bsps         |     Version:
 Severity:  normal       |  Resolution:
 Keywords:  SoC, BSP     |  Blocked By:
 Blocking:               |
-------------------------+--------------------------
Description changed by Chris Johns:

Old description:

> = BSP Executable Conversion =
>
> [[PageOutline(1-5, Contents, inline)]]
>
> == Mentors ==
> Chris Johns, Joel Sherrill
>
> == Students ==
>
> TBD.
>
> == Status ==
>
> Looking for students.
>
> = Introduction =
>
> This is an entry level programming project that requires some python and
> shell script programming knowledge combined with good communications
> skills. Some knowledge of the low level executable formats such as ELF
> and `mkimage` is recommended.
>
> RTEMS is organized as architectures and each architecture can have a
> number of Board Support Packages (BSP). An architecture is a family of
> processors such as ARM, X86, PowerPC and more. A BSP is a physical board
> with a processor from the architecture on it plus memory and input and
> output devices. RTEMS is built for a BSP and the executables created are
> specific to only that BSP's board.
>
> The board will have a boot loader that takes the RTEMS executable, loads
> it into memory and starts it executing. The boot loader and the format it
> uses is specific to each BSP. This project is about capturing the
> commands and logic needed to convert the RTEMS executable format to the
> BSP boot loader format.
>
> RTEMS 4.11 and earlier captured some of the conversions in the RTEMS
> build system. These commands were called the post-link processing. The
> commands were not generally available for all users as it required a user
> use the RTEMS specific build system environment. The objective of this
> project is to make the conversions available via a single uniform
> command.
>
> = Project =
>
> == Goal ==
>
> The project is to:
>
> * Design a suitable command line command called `rtems-exe-convert` in
> Python that is installed when RTEMS is installed. The command is required
> to accept a suitable set of user options and then detect a BSP's
> installed script or command and executable it.
>
> * Convert all post-link commands in RTEMS 4.11 and RTEMS 5 into a per BSP
> command called `bsp-exe-convert`. This script or command is installed in
> the BSP area. These commands are held in the `rtems.git` repo under each
> BSP and installed when the BSP is installed.
>
> * Add support for any BSP that needs an executable converter and does not
> have one.
>
> * Update the BSP documentation in the User Manual about the BSP including
> documenting the executable conversion command.
>
> == Prerequisite ==
>
> * Knowledge of Python Programming language and the Unix shell command.
> * Knowledge of the ELF file format.
> * Knowledge of building RTEMS tools and BSPs using the waf build system.
> * Knowledge of YAML format.
> * Knowledge of the `rtems.git` BSP structure and the BSPs present.
>
> == Resources ==
>
> * Current RTEMS developers.
> * Use existing build system.
>
> = Tasks =
>
> The following are the tasks:
>
> == Tools ==
>
> TBD
>
> = Acknowledgements =
>
> Joel, he told us all a while go we need a script per BSP to perform the
> conversion.
>
> = References =
>
> * RTEMS 4.11 source tree

New description:

 = BSP Executable Conversion =

 [[PageOutline(1-5, Contents, inline)]]

 == Mentors ==
 Chris Johns, Joel Sherrill

 == Students ==

 TBD.

 == Status ==

 Looking for students.

 = Introduction =

 This is an entry level programming project that requires some python and
 shell script programming knowledge combined with good communications
 skills. Some knowledge of the low level executable formats such as ELF and
 `mkimage` is recommended.

 RTEMS is organized as architectures and each architecture can have a
 number of Board Support Packages (BSP). An architecture is a family of
 processors such as ARM, X86, PowerPC and more. A BSP is a physical board
 with a processor from the architecture on it plus memory and input and
 output devices. RTEMS is built for a BSP and the executables created are
 specific to only that BSP's board.

 The board will have a boot loader that takes the RTEMS executable, loads
 it into memory and starts it executing. The boot loader and the format it
 uses is specific to each BSP. This project is about capturing the commands
 and logic needed to convert the RTEMS executable format to the BSP boot
 loader format.

 RTEMS 4.11 and earlier captured some of the conversions in the RTEMS build
 system. These commands were called the post-link processing. The commands
 were not generally available for all users as it required a user use the
 RTEMS specific build system environment. The objective of this project is
 to make the conversions available via a single uniform command.

 = Project =

 == Goal ==

 The project is to:

 * Design a suitable command line command called `rtems-exe-convert` in
 Python that is installed when RTEMS is installed. The command is required
 to accept a suitable set of user options and then detect a BSP's installed
 script or command and execute it.

 * Convert all post-link commands in RTEMS 4.11 and RTEMS 5 into a per BSP
 command called `bsp-exe-convert`. This will create a script per BSP that
 supported post-link conversion support. This script or command is
 installed in the BSP area and will have the same name. These commands are
 held in the `rtems.git` repo under each BSP and installed when the BSP is
 installed.

 * Add support for any BSP that needs an executable converter and does not
 have one.

 * Update the BSP documentation in the User Manual about the BSP including
 documenting the executable conversion command.

 == Prerequisite ==

 * Knowledge of Python Programming language and the Unix shell command.
 * Knowledge of the ELF file format.
 * Knowledge of building RTEMS tools and BSPs using the waf build system.
 * Knowledge of YAML format.
 * Knowledge of the `rtems.git` BSP structure and the BSPs present.

 == Resources ==

 * Current RTEMS developers.
 * Use existing build system.

 = Tasks =

 The following are the tasks:

 == Tools ==

 TBD

 = Acknowledgements =

 Joel, he told us all a while go we need a script per BSP to perform the
 conversion.

 = References =

 * RTEMS 4.11 source tree

--

--
Ticket URL: <http://devel.rtems.org/ticket/4272#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list