Hello,
I have a problem with CRC which occurs after writing to QSPI. I'm testing CRC like the following:
I have data written into QSPI on address 0xA80000. I calculate CRC with function SBLUtilsComputeCRC on this address and CRC value is correct. Then I read data from QSPI address 0xA80000, change the endianess in DDR and write it back to memory on address 0x1080000. When I calculate CRC on address 0x1080000 I get different value. I checked with memory browser and data on the address 0x1080000 are the same as on the address 0xA80000. To check it again I removed writing to QSPI and just calculated the CRC on address 0x1080000 (I assumed that memory on this location want be changed and I just burned new SBL in QSPI). In this case CRC is correct. I tried to invalidate cache using function UNICACHEWriteBackAndInvalidateAll(SOC_IPU1_UNICACHE_MMU_CONF_REGS_BASE, UNICACHE_WAIT_INFINITE); but it brings no difference. I tried with enabling and disabling cache but it didn't affect calculation.
Do I need to use EDMA for this? If so, how?
I'm working on VSDK 2.12.1.
Can you see something wrong done here?
Best regards,
Sasa Mihajlica