Bare metal user application on BeagleV Fire


I want to run a bare metal application on the BeagleV Fire and communicate with peripherals.
I first tried to isolate the Linux CPU core, but if e.g. I remove the SPI peripheral from the device tree, then I cannot write via /dev/mem. If I don’t disable it in the device tree, I read incorrect data (I think the kernel module also reads it), I checked it with a logic analyzer.

As I can see, somehow the E51 CPU can be used for this purpose as well. In this case, should I somehow load my program onto that CPU via HSS? Or what options are there?
What do you suggest? How would it be worthwhile to run a bare metal user application?

Could you please help me?

There are some bare metal examples for PolarFire SoC avialable here: GitHub - polarfire-soc/polarfire-soc-bare-metal-examples: Bare metal example software projects for PolarFire SoC

Might be helpful.

Or you might be trying to build an AMP system. If so, please see: polarfire-soc-documentation/applications-and-demos/asymmetric-multiprocessing/ at master · polarfire-soc/polarfire-soc-documentation · GitHub

Thanks for the reply @Vauban!

I need AMP. Maybe you know if it is possible to run a bare metal user application on the E51 monitor core after booting Linux? Or does it have to run HSS alongside Linux?

You should run your bare metal code on one of the U54, not the E51 (technically you could but then you have to write everything yourself and take care of obscure silicon details).
To keep life simple, leave the E51 run the HSS. Let 3 of the U54 cores/harts run Linux and the fourth one run your bare metal code or RTOS.
I think someone will be giving a talk about running Linux and Zephyr in AMP mode on BeagleV-Fire at one of the upcoming conferences this month.
Edit: My mistake the talk is only about the Zephyr side: Embedded Open Source Summit 2024: Automated, Simulation-Based Flow for Low...