This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSPM0G1507: SRAM Parity format

Part Number: MSPM0G1507

Hello,

I had a customer reach out wanting to know a little more on the formatting of the SRAM parity bits in the parity memory region.

When they write to the SRAM parity protected region they expect to see the parity bits updated at the corresponding address + offset in the SRAM_PARITY_Data section. So for example a 32 bit write to 0x20100000 would yield a corresponding parity value at 0x20300000. 

image.png

However what we're seeing is that multiple addresses get updated on a 32 bit write in the sram parity data section. 

I took the sram_parity example and modified it slightly and stepped through the code to observe the memory regions as the data got written:

Screenshot 2025-10-30 161001.png

After the first write:

Screenshot 2025-10-30 161139.pngScreenshot 2025-10-30 161121.png

So what we see is that at 0x20300040 the parity bit gets written in the lower nibble, but then also gets mirrored at 0x20300044.

Then the next 32 bit write seems to write its parity bits at 0x20300044's upper nibble and again at 0x20300048:

Screenshot 2025-10-30 161220.png

Screenshot 2025-10-30 161243.png

And so on for the other two words:

Screenshot 2025-10-30 161320.png

Screenshot 2025-10-30 161337.png

Screenshot 2025-10-30 161407.png

Screenshot 2025-10-30 161425.png

To check and see if the behavior truly is to mirror the parity bits, I also checked changed one of the values in SRAM in the memory browser and saw that changing 1 bit in a 32 bit word changed both sets of parity bits.

Is this expected behavior? How come the TRM doesn't mention that the parity module updates the SRAM parity in this way?

Munan