From ac6070a79fb531975d83a32932f2ad66b5af7825 Mon Sep 17 00:00:00 2001 From: Rex-BC Chen Date: Thu, 2 Dec 2021 19:57:46 +0800 Subject: [PATCH] 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 Change-Id: Ie023de2a6f7421a16b2516baa0bf0bf6fff589e2 Reviewed-on: https://review.coreboot.org/c/coreboot/+/59990 Tested-by: build bot (Jenkins) Reviewed-by: Yu-Ping Wu --- src/soc/mediatek/common/tracker.c | 5 +++++ src/soc/mediatek/mt8186/Makefile.inc | 1 + src/soc/mediatek/mt8186/bootblock.c | 2 ++ src/soc/mediatek/mt8186/include/soc/addressmap.h | 1 + src/soc/mediatek/mt8186/include/soc/tracker.h | 8 ++++++++ 5 files changed, 17 insertions(+) create mode 100644 src/soc/mediatek/mt8186/include/soc/tracker.h diff --git a/src/soc/mediatek/common/tracker.c b/src/soc/mediatek/common/tracker.c index f3b2e9bfd8..3485449b6b 100644 --- a/src/soc/mediatek/common/tracker.c +++ b/src/soc/mediatek/common/tracker.c @@ -6,6 +6,11 @@ #include #include +__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 7a2f997153..2a22e6ef2a 100644 --- a/src/soc/mediatek/mt8186/Makefile.inc +++ b/src/soc/mediatek/mt8186/Makefile.inc @@ -11,6 +11,7 @@ bootblock-y += ../common/mmu_operations.c 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 d5b288a168..e5d1e73047 100644 --- a/src/soc/mediatek/mt8186/bootblock.c +++ b/src/soc/mediatek/mt8186/bootblock.c @@ -5,11 +5,13 @@ #include #include #include +#include #include 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 6a5ce5c350..adb1d59140 100644 --- a/src/soc/mediatek/mt8186/include/soc/addressmap.h +++ b/src/soc/mediatek/mt8186/include/soc/addressmap.h @@ -42,6 +42,7 @@ enum { 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 0000000000..9c671c9e38 --- /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 + +#endif