I have a question about FVP (Fixed Virtual Platform) and its memory initialization behavior. Specifically, I noticed that unused memory in FVP is not set to 0, but instead contains non-zero values like 0xcfdfdfdfdfdfdfcf.
0
For example, when reading a non-used memory area in FVP, the values appear as non-zero by default. This behavior can lead to issues, such as:
.bss
Given that FVP operates in a virtualized memory environment, I’m wondering why it doesn’t simply initialize all memory to zero. Is there a specific design rationale or technical limitation for this behavior?
I'm not sure which specific FVP you are using, but enter the command:
<fvp_executable> --list-params > params.txt
bp.dram.fill1=3755990991 # (int , init-time) default = '0xdfdfdfcf' : Fill pattern 1, initialise memory at start of simulation with alternating fill1, fill2 pattern bp.dram.fill2=3487555551 # (int , init-time) default = '0xcfdfdfdf' : Fill pattern 2, initialise memory at start of simulation with alternating fill1, fill2 pattern
-C bp.dram.fill1=0
See also https://developer.arm.com/documentation/100966/1127/Getting-Started-with-Fixed-Virtual-Platforms/Configuring-the-model
Thanks you very much, I successfully clear the memory of the OS's bss section.