Vybrid memory protection - Linux / MQX

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Vybrid memory protection - Linux / MQX

Jump to solution
866 Views
EricCowden
Contributor IV

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.

Eric Cowden

Field Application Engineer

Office: 847-843-6816

Cell: 630-408-4453

0 Kudos
1 Solution
517 Views
timesyssupport
Senior Contributor II

Hello Eric,

64Kb of SRAM is allocated by Linux, starting at address 0x3f070000. The code that does this can be found in the post_cpu_init() function, in arch/arm/mach-mvf/cpu.c in your kernel source tree.

Thanks, and let me know if you have any questions.

Timesys Support

View solution in original post

0 Kudos
5 Replies
518 Views
timesyssupport
Senior Contributor II

Hello Eric,

64Kb of SRAM is allocated by Linux, starting at address 0x3f070000. The code that does this can be found in the post_cpu_init() function, in arch/arm/mach-mvf/cpu.c in your kernel source tree.

Thanks, and let me know if you have any questions.

Timesys Support

0 Kudos
518 Views
karina_valencia
NXP Apps Support
NXP Apps Support

ioseph_martinez can you review this case to see if you can provide follow up or let me know if this is required to be attended by Timesys.

0 Kudos
518 Views
ioseph_martinez
NXP Employee
NXP Employee

karinavalencia we will need to include timesys to help on the Linux part.

Also, probably handing the Security Manual to Eric would be helpful.

0 Kudos
517 Views
karina_valencia
NXP Apps Support
NXP Apps Support

EricCowden I will move your question to the public community to  get the support  from Timesys on this case.

0 Kudos
517 Views
karina_valencia
NXP Apps Support
NXP Apps Support

timesyssupport can  you  help on this case and provide follow up?

0 Kudos