Customer is developing a Vybrid application running Linux on the A5 core and MQX on the M4 core.
Can you point me to some documentation or resources that explain how the Vybrid's memory protection unit gets configured? Meaning which parts of a typical Linux kernel and/or Uboot bootloader would be touching it? e.g is there a specific Linux kernel driver, userspace utility, and/or boot script? I'm most interested in figuring out which ranges of system memory addresses are currently reserved for program code of the M4 core. Also which additional regions could potentially be used for that purpose. I've reviewed the System Memory Map in section 3.1 of the Vybrid Reference Manual, and other sections, and it raised many questions.
We'll need to know those things during the entire development effort. But I'm asking today because I've just exceeded the 256 Kb that's currently allowed for the M4's program code. That region at 0x3f000000 is specified by the linker scatter file ram.scf as provided in one of the example apps. And it's used by mqxboot utility also. We need to find more program memory for the M4, and adjust the scatter file to use it. If we do that wrong, I guess the system would crash.
DS-5 includes a graphical Scatter File Editor which should make it easier to create or edit a scatter file. But the editor doesn't like the ram.scf scatter file. It throws a handful of errors and won't load the file. So we might have to create an all-new scatter file to be compatible with that editor. If so, we'll need to understand the situation even better so we can create that.
We'll probably face the same situation again later when we exceed the allocated data memory for the M4's variables. So these questions really apply to both code and data regions.
Field Application Engineer