Explicitly invalidate cache lines on RP2350

Clean alone can lead to crashes.

Fixes #9746
This commit is contained in:
Scott Shawcroft 2024-10-23 10:17:49 -07:00
parent c606994c17
commit 9bda80b906
No known key found for this signature in database

View file

@ -51,7 +51,9 @@ static void save_psram_settings(void) {
// We're about to invalidate the XIP cache, clean it first to commit any dirty writes to PSRAM
uint8_t *maintenance_ptr = (uint8_t *)XIP_MAINTENANCE_BASE;
for (int i = 1; i < 16 * 1024; i += 8) {
maintenance_ptr[i] = 0;
// Background info: https://forums.raspberrypi.com/viewtopic.php?t=378249
maintenance_ptr[i] = 0; // Clean
maintenance_ptr[i - 1] = 0; // Explicitly invalidate
}
m1_timing = qmi_hw->m[1].timing;