Microblaze FSBL

WIP Collecting thoughts on this

I am attempting to make a fsbl using rtems.
This requires different linker script settings .

I could see 3 different ways to do this.

I used AI to prototype these 3 different ways.

  1. Replicate what aarch64/a53 does
    https://gitlab.rtems.org/TheSamPrice/rtems/-/commit/0c57d00456b4c9fea9f967b6d77a299cee708cc8

This one is newer and shows up more often in the

  1. Replicate what arm/stm32h7 does
    https://gitlab.rtems.org/TheSamPrice/rtems/-/commit/07ee87c206e3c148d7d7492827f1e11b850e4467

  2. Add more parameters to the linker script.
    This is the method I settled on.
    mb: parametrize the linker script to support FSBL (!1300) · Merge requests · RTEMS / RTOS / RTEMS · GitLab
    This reduces the number of linker.yml files that need updated in the future.

One could create their own config.ini file like

[microblaze/kcu105_fsbl]
INHERIT = kcu105
# Tests / examples will not build with reduced code spaces.
BUILD_TESTS = False
BUILD_SAMPLES = False
BSP_MICROBLAZE_FPGA_IMAGE_MEMORY = BRAM
BSP_MICROBLAZE_FPGA_BRAM_LENGTH = 0x00100000
BSP_MICROBLAZE_FPGA_START_ADDR = 0x90000000
BSP_MICROBLAZE_FPGA_RAM_LENGTH = 0x10000000

aarch64/a53 arm/stm32h7 Params in linkerscript
What chooses the linker ach BSP’s links: list a string option that picks an INCLUDE target
Linker spec files N files, each installs to target: linkcmds (only one linked per BSP) 1 thin top-level + N body files, all installed; one INCLUDE-selected
User override switch BSP variants override STM32H7_DEFAULT_LINKCMDS=... in config.ini
Where mistakes show up spec-graph time (which linkcmds got linked) link time (file not found if the option points at nothing)

found if the option points at nothing) |