static void scp_wdt_handler(struct mtk_scp *scp, u32 scp_to_host)
 {
+       struct mtk_scp_of_cluster *scp_cluster = scp->cluster;
+       struct mtk_scp *scp_node;
+
        dev_err(scp->dev, "SCP watchdog timeout! 0x%x", scp_to_host);
-       rproc_report_crash(scp->rproc, RPROC_WATCHDOG);
+
+       /* report watchdog timeout to all cores */
+       list_for_each_entry(scp_node, &scp_cluster->mtk_scp_list, elem)
+               rproc_report_crash(scp_node->rproc, RPROC_WATCHDOG);
 }
 
 static void scp_init_ipi_handler(void *data, unsigned int len, void *priv)