Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/59990 )
Change subject: soc/mediatek/mt8186: add tracker dump ......................................................................
soc/mediatek/mt8186: add tracker dump
Tracker is a debugging tool, and MT8186 only supports AP tracker. When bus timeout occurs, the system reboots and latches some values which could be used for debugging.
This function will be triggered only when it encounters the bug hanging issue.
BUG=b:202871018 TEST=range of registers are dumped as expected.
Signed-off-by: Rex-BC Chen rex-bc.chen@mediatek.com Change-Id: Ie023de2a6f7421a16b2516baa0bf0bf6fff589e2 Reviewed-on: https://review.coreboot.org/c/coreboot/+/59990 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Yu-Ping Wu yupingso@google.com --- M src/soc/mediatek/common/tracker.c M src/soc/mediatek/mt8186/Makefile.inc M src/soc/mediatek/mt8186/bootblock.c M src/soc/mediatek/mt8186/include/soc/addressmap.h A src/soc/mediatek/mt8186/include/soc/tracker.h 5 files changed, 17 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Yu-Ping Wu: Looks good to me, approved
diff --git a/src/soc/mediatek/common/tracker.c b/src/soc/mediatek/common/tracker.c index f3b2e9b..3485449 100644 --- a/src/soc/mediatek/common/tracker.c +++ b/src/soc/mediatek/common/tracker.c @@ -6,6 +6,11 @@ #include <soc/tracker.h> #include <soc/tracker_common.h>
+__weak void tracker_setup(void) +{ + /* do nothing. */ +} + static void tracker_dump_data(void) { int i, j, k; diff --git a/src/soc/mediatek/mt8186/Makefile.inc b/src/soc/mediatek/mt8186/Makefile.inc index 7a2f997..2a22e6e 100644 --- a/src/soc/mediatek/mt8186/Makefile.inc +++ b/src/soc/mediatek/mt8186/Makefile.inc @@ -11,6 +11,7 @@ bootblock-y += ../common/pll.c pll.c bootblock-$(CONFIG_SPI_FLASH) += ../common/spi.c spi.c bootblock-y += ../common/timer.c timer.c +bootblock-y += ../common/tracker.c ../common/tracker_v1.c bootblock-y += ../common/uart.c bootblock-y += ../common/wdt.c wdt.c
diff --git a/src/soc/mediatek/mt8186/bootblock.c b/src/soc/mediatek/mt8186/bootblock.c index d5b288a..e5d1e73 100644 --- a/src/soc/mediatek/mt8186/bootblock.c +++ b/src/soc/mediatek/mt8186/bootblock.c @@ -5,11 +5,13 @@ #include <soc/gic.h> #include <soc/mmu_operations.h> #include <soc/pll.h> +#include <soc/tracker_common.h> #include <soc/wdt.h>
void bootblock_soc_init(void) { mtk_mmu_init(); + bustracker_init(); mtk_wdt_init(); mt_pll_init(); unmask_eint_event_mask(); diff --git a/src/soc/mediatek/mt8186/include/soc/addressmap.h b/src/soc/mediatek/mt8186/include/soc/addressmap.h index 6a5ce5c..adb1d59 100644 --- a/src/soc/mediatek/mt8186/include/soc/addressmap.h +++ b/src/soc/mediatek/mt8186/include/soc/addressmap.h @@ -42,6 +42,7 @@ I2C8_DMA_BASE = IO_PHYS + 0x00200A80, I2C9_DMA_BASE = IO_PHYS + 0x00200C00, DEVAPC_BASE = IO_PHYS + 0x00207000, + DBG_TRACKER_BASE = IO_PHYS + 0x00208000, EMI0_BASE = IO_PHYS + 0x00219000, EMI0_MPU_BASE = IO_PHYS + 0x0021B000, DRAMC_CHA_AO_BASE = IO_PHYS + 0x00220000, diff --git a/src/soc/mediatek/mt8186/include/soc/tracker.h b/src/soc/mediatek/mt8186/include/soc/tracker.h new file mode 100644 index 0000000..9c671c9 --- /dev/null +++ b/src/soc/mediatek/mt8186/include/soc/tracker.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_MT8186_TRACKER_H +#define SOC_MEDIATEK_MT8186_TRACKER_H + +#include <soc/tracker_v1.h> + +#endif