Is Zynq MP supported by RTEMS 6.1?

I’m trying to build RTEMS 6.1 for Zynq MPSoC (aarch64/zynqmp_apu)

Both waf -bsplists and rtems-bsps seem to indicate that the architecture and bsp is available:

waf -bsplists
...
aarch64/versal_aiedge
aarch64/versal_qemu
aarch64/versal_vck190
aarch64/zynqmp_apu	
aarch64/zynqmp_apu_ilp32
aarch64/zynqmp_cfc400x
aarch64/zynqmp_qemu
aarch64/zynqmp_qemu_ilp32

and

rtems-bsps
aarch64: (families:5 bsps:13)
…
 zynqmp_apu               xilinx-zynqmp
 zynqmp_apu_ilp32         xilinx-zynqmp
 zynqmp_cfc400x           xilinx-zynqmp
 zynqmp_qemu              xilinx-zynqmp
 zynqmp_qemu_ilp32        xilinx-zynqmp

However, when building the toolsuite, sb-set-builder --list-bsets only lists the zynq-7000 dual-core arm CPUs, not the quad cores Aarch64:

sb-set-builder –list-bsets

bsps/xilinx_zynq_zc702.bset
bsps/xilinx_zynq_zc706.bset
bsps/xilinx_zynq_zedboard.bset

And I couldn’t see any related to aarch64, am I missing something?

RTEMS 6.1 does support ZynqMP on aarch64 architecture. The list you’re looking at is only those that have been specifically added to make those BSPs convenient. You can use one of those definitions to define your own BSP.bset if you’d like or you can specify those components as part of the sb-set-builder command line.

Good to know, thanks
So what should I use below to build tools for aarch64?

source-builder/sb-set-builder --prefix=~/quick-start/rtems/6 ???/???.bset

The target for aarch64 tools is 6/rtems-aarch64.

1 Like

That was a bit of advance. Now stuck on the BSP build.

In chapter 2.5 it reads:

To select a proper BSP for your target hardware consult the BSPs (page 71) chapter

However, in page 71 there is no mention to BSP, obviously neither on how to select one.
Following chapters are about RSB Deployment, Tools configuration, Kernels, Packages…
How do a jump into page 71 and following help in selecting a BSP as in 2.5?

Isn’t the BSP instructions to build in 2.5.1?
What is built in chapter 5? Is it needed? is a reference?
Do I need to go through the steps in chapter 5 in the middle of 2.5 “Build a BSP”?
Am I the only one finding the User Manual utterly unhelpful?

At the top of the rtems source tree, you can use rtems-bsps -a aarch64 to get a list of all BSPs for that architecture.

Does the link in the PDF take you to this
https://docs.rtems.org/docs/6.1/user/bsps/bsps-aarch64.html?

Documentation is always a challenge. Feel free to file issues on it. Even better are patches. The documentation is its own repository.

As @opticron pointed out, there are only a handful of BSPs that have RSB bsets or are in deployment. There are about 200 BSPs and most do not have them.

1 Like

And I had to go and try what is the “top of rtems source tree”
because there are 2 rtems folders and one src folder, plus the rsb that stands for rtems source builder…
I know that when one works for years with something, tend to act and talk as if everyone knew most of what they know.
.
├── rtems
│ └── 6
└── src
├── rsb
└── rtems-6.1

Anyways, now I know my bsp: zynqmp_apu

So I try:

…/source-builder/sb-set-builder --prefix=/home/joan/quick-start/rtems/6 --target=6/rtems-aarch64 --with-rtems-bsp=zynqmp_apu --with-rtems-tests=no 6/rtems-kernel

error in the log:

Section name 'zynqmp_apu' is a malformed 'arch/bsp' tuple

So then --with-rtems-bsp is misleading, it wants that arch/bsp tuple…

try again:

../source-builder/sb-set-builder --prefix=/home/joan/quick-start/rtems/6 --target=6/rtems-aarch64 --with-rtems-bsp=aarch64/zynqmp_apu --with-rtems-tests=no 6/rtems-kernel

and that seemed to work at the 2nd try, I might be getting it.
Thanks, tomorrow will be another day