I am working with the C66x CorePac on two products, one with the AM5716 and one with the C6674. I was hoping to get some clarification regarding the operating procedure of the L2 EDC. Section 11.3.2 of sprugw0c states that the setup procedure for the L2 EDC is as follows.
- Disable EDC
- Clear EDC Errors
- Scrub Memory with IDMA
- Enable EDC
- Run
- Periodically scrub memory with IDMA (optional)
I've read through the Memory Scrubbing Technique section (11-12) but am still unclear on certain aspects. My questions are as follows.
- The memory scrubbing procedure appears to provide two options, writing 128 bits that are 128 bit aligned to ensure correct parity and valid bits, and writing to the entire used section of L2. Which one of these is referred to by step 3 of the above procedure?
- Is there a specific time when these procedure should be performed? At the beginning of the application or in the bootloader?
- The bootloader for the one product (C6674) is running on the first core. Since one core's L2 is accessible by another core can I perform the memory scrubbing from a core to which the L2 being scrubbed doesn't belong? (e.g. can Core 0 scrub Core 1's L2 memory?)
- What does "optional" mean in step 6 above? What are the consequences of not performing periodic scrubbing of the memory?
- Can you clarify whether or not scrubbing removes the errors reported in the L2 EDC status register?