How to allocate DDR cache and non-cache areas to the same physical address? #281
-
I am currently using the Icicle kit reference design for various experiments. The operation I want to do is the following operation.
To achieve this behavior, I used MSS configurator v2022.3 and set the physical DDR offset to all 0's from the memory partition settings tab. However, the values readable for 0x8000_0000 and 0XC000_0000 were different, even when accessed using the procedure described above. I see two possible causes for this problem. The second is that after writing a value to the non-cache area, the cache area is accessed but hit in the L1 or L2 cache and the DDR is not read. If anyone is familiar with these issues, I would love to know how to solve them. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hey @Usutatsu My first question is did you add the newly generated XML to your bare metal / HSS project, and apply the changes using the debugger or by programming the eNVM? If you only imported an updated MSS component into Libero the SEG values won't be changed. You can flush regions of the L2 cache using the cache flush registers, table 4-9 on page 22 of the TRM contains the address of the registers, there is a description of the registers in section 4.1.6.3.12. You're looking for |
Beta Was this translation helpful? Give feedback.
Hey @Usutatsu
My first question is did you add the newly generated XML to your bare metal / HSS project, and apply the changes using the debugger or by programming the eNVM? If you only imported an updated MSS component into Libero the SEG values won't be changed.
You can flush regions of the L2 cache using the cache flush registers, table 4-9 on page 22 of the TRM contains the address of the registers, there is a description of the registers in section 4.1.6.3.12. You're looking for
Flush64
andFlush32
.