Le 15/09/2026 à 17:57, Kumar, Udit a écrit :
On 9/15/2026 7:29 PM, Richard GENOUD wrote:
+ k3_ddrss_lpddr4_exit_low_power(dev, ®s);
+
+ do_resume();
could you check, if caches can be enabled before do_resume() call
I've tested that on j7200 and j784s4, and it fails at resume:
U-Boot SPL 2026.10-rc2-00046-g31003eca655b-dirty (Sep 15 2026 - 15:52:55
+0200)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.2.12--v11.02.12 (Fancy Rat)')
Initialized 4 DRAM controllers
Skipping authentication on GP device
Starting ATF on ARM64 core...
You need to flush caches before starting DM
I did that and it failed in the same way.
I dug more in the PDK, and I found that at startup, it does unconditionally:
__attribute__((section(".startupCode"))) static void _enable_cache(void)
{
CSL_armR5StartupCacheEnableAllCache( CSL_CACHE_DISABLE ); /* Disable
I/D caches */
CSL_armR5StartupCacheEnableForceWrThru( CSL_CACHE_DISABLE ); /* Disable
force write-thru */
CSL_armR5StartupCacheInvalidateAllCache(); /* Invalidate I/D caches */
CSL_armR5StartupCacheEnableAllCache( CSL_CACHE_ENABLE ); /* Enable I/D
caches */
}
Whereas for the mcu_plus / J722s, the case with caches enabled is dealt
with in:
enabled = CacheP_getEnabled();
/* disable the caches if anything is currently enabled */
if (enabled!=0U) {
CacheP_disable((uint32_t)CacheP_TYPE_ALL);
}
/* set DLFO, this is not needed on SOC AM64x and later SOCs */
/* CacheP_setDLFO(); */
if (gCacheConfig.enable!=0U) {
CacheP_configForceWrThru(gCacheConfig.enableForceWrThru);
/*
* CacheP_enable() code will invalidate the L1D and L1P caches.
* Therefore, no need to explicitly invalidate the cache here.
*/
CacheP_enable((uint32_t)CacheP_TYPE_ALL);
}
[ 82.967460] Enabling non-boot CPUs ...
ERROR: Timeout waiting for thread RX_SECURE_TRANSPORT_CHANNEL_ID to fill
ERROR: Thread RX_SECURE_TRANSPORT_CHANNEL_ID verification failed (-60)
ERROR: Message receive failed (-60)
ERROR: Failed to get response (-60)
ERROR: Transfer send failed (-60)
ERROR: Request to start core failed: -60
[ 83.998938] psci: failed to boot CPU1 (-22)
[ 84.003168] CPU1: failed to boot: -22
[ 84.006989] Error taking CPU1 up: -22
--
Richard Genoud, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com