Write the BSP for ARM Versatile Express device

Gedare Bloom gedare at rtems.org
Wed Apr 14 05:52:56 UTC 2021

Hi Duc,

On Tue, Apr 13, 2021 at 8:57 AM Đức Anh <dauto98 at gmail.com> wrote:
> Dear all,
> I want to develop a BSP for ARM Versatile Express platform. My final purpose is to run Gem5 simulation using RTEMS as the kernel. Now Gem5 only model Versatile Express device, and I can see RTEMS does not have a BSP for it yet.
> More specifically, the machine type modelled in Gem5 is:
> - Arm Motherboard Express uATX (V2M-P1)
> - The memory map is based on Versatile Express RS1, with RS2 extension
> - Arm CoreTile Express A15x2 (V2P-CA15) as daughterboard. It contains Cortex-A15 CPU.
> In the past, the Realview-pbx-a9 BSP used to run successfully in Gem5, when they still supported realview machine type. It is not the case now. So I guess I can reuse the CPU related code in realview-pbx-a9 and just write new code for the BSP ?
Well, the realview pbx a9 is a cortex-a9 device and not an a15. Plus,
I guess the vexpress will have some differences in how it deals with
interrupts and maybe messaging given its tiled architecture? I don't
know too much about it. But, your best bet is probably to try to start
with the FVP bsp, which was only added about 5 months ago and supports
just a Cortex-R52 right now, but probably adding the vexpress RS1
memory map with the V2P-CA15 is the right way for you to go.

> I am new to RTEMS so I need some help. Which direction should I head for?
Join the devel at rtems.org mailing list for technical email discussions
regarding hacking within RTEMS proper. (The "users" mailing list is a
bit more for people trying to develop/maintain their application
software using RTEMS mostly *fingers crossed* out of the box.) I would
strongly recommend that you get started by following through our
tutorials to get a feel for the tools and development environment:
Read carefully and don't skip steps, or you probably miss something
important that you won't figure out until a couple hours later and
have to redo everything. Since you plan new development, you should
use the `master` branch of RTEMS with the `master` branch of the
rtems-source-builder to build your cross-compiler toolchain. This is
referred to as version '6' although it is not yet a released version.

Right now we have a lot of new faces on devel@ because of the Google
Summer of Code, so you'll find a lot of other people with questions
and answers about how to get started etc. I would recommend you also
do our GSoC Getting Started part of the tutorial so that you can get
some comfort with the developer workflow and how to make changes in
RTEMS and see them in the recompiled version.

Finally, for new BSP development, I guess you can start by having a
look at https://docs.rtems.org/branches/master/bsp-howto/index.html
This is an aging document, but still a good resource to understand the
basic ideas about BSP implementation.


> Best regards,
> Duc Anh
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users

More information about the users mailing list