soc/mediatek/mt8196: Disable PMIF reset after enable

Currently, we don't explicitly disable the PMIF and SPMI resets after
the reset is completed, causing them to remain asserted for
approximately 0.5ms. That would cause the DUT to hang during PMIF
initialization (pmif_spmi_init) when using non-serial firmware.

To fix this issue, explicitly disable the PMIF and SPMI resets
immediately after the reset.

BRANCH=rauru
BUG=b:341054056
TEST=Build pass, non-serial firmware boot ok.

Signed-off-by: Lu Tang <lu.tang@mediatek.corp-partner.google.com>
Change-Id: Ic903ddd893470cd46dbfed9c3faa9c2a9e50c904
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86859
Reviewed-by: Yidi Lin <yidilin@google.com>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Lu Tang 2025-03-12 20:57:42 +08:00 committed by Yidi Lin
commit 0b53a60d4d

View file

@ -239,11 +239,12 @@ int pmif_clk_init(void)
/* [12]: pmifspi_m_rst_b [13]: pmifspi_p_rst_b*/
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst0, UNLOCK_KEY, 0x88, PMIFSPMI_RST_B, 0x3,
PMIF_RST_B, 0x3);
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst0, UNLOCK_KEY, 0x88);
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst0, UNLOCK_KEY, 0x88, PMIFSPMI_RST_B, 0x0,
PMIF_RST_B, 0x0);
/* [0]: tia_grst_b */
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst1, UNLOCK_KEY, 0x88, TIA_GRST_B, 0x1);
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst1, UNLOCK_KEY, 0x88);
SET32_BITFIELDS(&mtk_rug->wdt_vlp_swsysrst1, UNLOCK_KEY, 0x88, TIA_GRST_B, 0x0);
printk(BIOS_INFO, "%s: done\n", __func__);