Example MSS configuration for Linux + BM AMP #555
Replies: 1 comment
-
|
Hello @freihamer , The screenshots provided below from the MSS Configurator are intended for configuring PMP (Peripheral Memory Protection). This feature helps prevent one AMP context from accessing the memory of another AMP context, providing an extra layer of protection. However, please note that it is possible to run an AMP system (e.g., Linux + RTOS) without memory protection and without editing the MSS Configurator. I recommend trying this first before attempting to configure the PMPs. We provide some out-of-the-box demos for AMP (Linux + FreeRTOS or Linux + Bare Metal) that you can evaluate. These demos can be further modified to suit your needs if required. We also have pre-built Yocto demos for the Icicle Kit, which you can download here: Alternatively, you can build the demos yourself as explained in the documentation: Hope this helps. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
According to my understanding, when working with an AMP configuration, it is necessary to define a DDR memory layout for Context A and Context B, using the MSS Configurator.
First of all I have curiosity to ask, related to the above: Is that Context A / B configuration a must - like if you don't do this, the AMP setup cannot possibly boot/work - or is it a "highly recommended?" I am asking this because I did not manage to get a Linux + BM setup to boot without having done that Context A / Context B configuration (only Linux or only BM would boot, or none of the two). However I am not sure about the root cause, as I could have other issues as well.
Either way, I want to have a proper Context A / Context B configuration in place, with DDR memory regions and provision for RPMsg to work (shared memory regions). The Asymmetric Multiprocessing (AMP) article does provide a table describing a DDR memory layout for Context A / B, however I believe there is not a single MSS .cfg file made available in Icicle reference design which defines a similar AMP configuration. Is it possible to get such an example MSS .cfg files?
I am asking for a MSS .cfg file in which the "Memory Partition and Protection" tab has the "Use Processor PMP and AXI Switch MPU Configurations" flag enabled, and the following section is populated, similarly to what is described in the article linked above:

The only article I could find which shows a very basic AMP memory region definition is MPFS PMP Demo but none which implements a complex one like this:

Anyhow, I did try a basic AMP DDR memory regions config of my own, however after flashing the bitstream, the HSS would get stuck already during the copy of payload from eMMC to DDR. Also, I could not use the USBDMSC command anymore, to flash a different payload. I did get at some point a couple of error messages from HSS, telling me that neither eMMC nor USB were allowed to use the DDR memory by design in the MSS generated .xml file. This made me realize that after having enabled the "Use Processor PMP and AXI Switch MPU Configurations" flag, it was then also necessary to define some (forcefully non-cached) DDR memory regions for eMM and USB as well:

About this I don't think I found any documentation anywhere, I tried hard but nothing. I would be happy to be proved wrong of course. The MPFS PMP Demo also did not help here, because in that demo the YMODEM was used to deploy HSS payloads, instead of the more common USBDMSC.
Can you help me to get a MSS .cfg file with "Memory Partition and Protection" having the "Use Processor PMP and AXI Switch MPU Configurations" flag enabled, and all the necessary / recommended memory regions (DDR + AXI Switch MPU) defined for a Linux + BM AMP setup?
Thanks a lot in advance.
Beta Was this translation helpful? Give feedback.
All reactions