func cortex_a53_core_pwr_dwn
mov x18, x30
-#if !TI_AM65X_WORKAROUND
/* ---------------------------------------------
* Turn off caches.
* ---------------------------------------------
*/
bl cortex_a53_disable_dcache
-#endif
/* ---------------------------------------------
* Flush L1 caches.
func cortex_a53_cluster_pwr_dwn
mov x18, x30
-#if !TI_AM65X_WORKAROUND
/* ---------------------------------------------
* Turn off caches.
* ---------------------------------------------
*/
bl cortex_a53_disable_dcache
-#endif
/* ---------------------------------------------
* Flush L1 caches.
#include <k3_gicv3.h>
#include <ti_sci.h>
-#ifdef TI_AM65X_WORKAROUND
-/* Need to flush psci internal locks before shutdown or their values are lost */
-#include "../../../../lib/psci/psci_private.h"
-#endif
-
uintptr_t k3_sec_entrypoint;
static void k3_cpu_standby(plat_local_state_t cpu_state)
k3_gic_cpuif_enable();
}
-#ifdef TI_AM65X_WORKAROUND
-static void __dead2 k3_pwr_domain_pwr_down_wfi(const psci_power_state_t
- *target_state)
-{
- flush_cpu_data(psci_svc_cpu_data);
- flush_dcache_range((uintptr_t) psci_locks, sizeof(psci_locks));
- psci_power_down_wfi();
-}
-#endif
-
static void __dead2 k3_system_reset(void)
{
/* Send the system reset request to system firmware */
.pwr_domain_on = k3_pwr_domain_on,
.pwr_domain_off = k3_pwr_domain_off,
.pwr_domain_on_finish = k3_pwr_domain_on_finish,
-#ifdef TI_AM65X_WORKAROUND
- .pwr_domain_pwr_down_wfi = k3_pwr_domain_pwr_down_wfi,
-#endif
.system_reset = k3_system_reset,
.validate_power_state = k3_validate_power_state,
.validate_ns_entrypoint = k3_validate_ns_entrypoint
# Split out RO data into a non-executable section
SEPARATE_CODE_AND_RODATA := 1
-# Leave the caches enabled on core powerdown path
-TI_AM65X_WORKAROUND := 1
-$(eval $(call add_define,TI_AM65X_WORKAROUND))
-
MULTI_CONSOLE_API := 1
TI_16550_MDR_QUIRK := 1
$(eval $(call add_define,TI_16550_MDR_QUIRK))