From a5c043fb31109f173dc1149bb861a5867d7a33d1 Mon Sep 17 00:00:00 2001 From: Tao Zeng Date: Thu, 25 Apr 2019 10:27:09 +0800 Subject: [PATCH] ddr: enable bandwidth and dmc monitor for tm2 [1/1] PD#SWPL-7728 Problem: bandwidth measure on tm2 is not enabled Solution: Adding port description of ddr controller for tm2 Also enable dmc monitor function for tm2 Verify: AB301 Change-Id: I0127ac04fe29723669525f6ff1161e2fa35d69ca Signed-off-by: Tao Zeng --- arch/arm/boot/dts/amlogic/mesontm2.dtsi | 4 +- arch/arm64/boot/dts/amlogic/mesontm2.dtsi | 4 +- drivers/amlogic/ddr_tool/ddr_port_desc.c | 70 +++++++++++++++++++++++++------ drivers/amlogic/ddr_tool/dmc_g12.c | 4 +- 4 files changed, 65 insertions(+), 17 deletions(-) diff --git a/arch/arm/boot/dts/amlogic/mesontm2.dtsi b/arch/arm/boot/dts/amlogic/mesontm2.dtsi index efabf3b..d3bebbf 100644 --- a/arch/arm/boot/dts/amlogic/mesontm2.dtsi +++ b/arch/arm/boot/dts/amlogic/mesontm2.dtsi @@ -1560,8 +1560,8 @@ dmc_monitor { compatible = "amlogic, dmc_monitor"; - status = "disabled"; - reg_base = <0xff638800>; + status = "okay"; + reg_base = <0xff639000>; interrupts = ; }; diff --git a/arch/arm64/boot/dts/amlogic/mesontm2.dtsi b/arch/arm64/boot/dts/amlogic/mesontm2.dtsi index 2e18b04..4ff50c9 100644 --- a/arch/arm64/boot/dts/amlogic/mesontm2.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesontm2.dtsi @@ -1541,8 +1541,8 @@ dmc_monitor { compatible = "amlogic, dmc_monitor"; - status = "disabled"; - reg_base = <0xff638800>; + status = "okay"; + reg_base = <0xff639000>; interrupts = ; }; diff --git a/drivers/amlogic/ddr_tool/ddr_port_desc.c b/drivers/amlogic/ddr_tool/ddr_port_desc.c index 03d8cc7..4871aba 100644 --- a/drivers/amlogic/ddr_tool/ddr_port_desc.c +++ b/drivers/amlogic/ddr_tool/ddr_port_desc.c @@ -71,7 +71,7 @@ static struct ddr_port_desc ddr_port_desc_m8b[] __initdata = { { .port_id = 38, .port_name = "GE2D SOURCE1" }, { .port_id = 39, .port_name = "GE2D SOURCE2" }, { .port_id = 40, .port_name = "GE2D DEST" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "SANA" }, { .port_id = 43, .port_name = "SDIO2" }, { .port_id = 44, .port_name = "SPICC" }, @@ -103,7 +103,7 @@ static struct ddr_port_desc ddr_port_desc_gxbb[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -138,7 +138,7 @@ static struct ddr_port_desc ddr_port_desc_gxl[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -173,7 +173,7 @@ static struct ddr_port_desc ddr_port_desc_gxm[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -208,7 +208,7 @@ static struct ddr_port_desc ddr_port_desc_gxlx[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -244,7 +244,7 @@ static struct ddr_port_desc ddr_port_desc_g12a[] __initdata = { { .port_id = 37, .port_name = "USB1" }, { .port_id = 38, .port_name = "AUDIO" }, { .port_id = 39, .port_name = "AIFIFO" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC2" }, @@ -285,7 +285,7 @@ static struct ddr_port_desc ddr_port_desc_g12b[] __initdata = { { .port_id = 38, .port_name = "AUDIO" }, { .port_id = 39, .port_name = "AIFIFO" }, { .port_id = 40, .port_name = "SD_EMMC_A" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC2" }, @@ -342,7 +342,7 @@ static struct ddr_port_desc ddr_port_desc_txl[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -378,7 +378,7 @@ static struct ddr_port_desc ddr_port_desc_txlx[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -412,7 +412,7 @@ static struct ddr_port_desc ddr_port_desc_txhd[] __initdata = { { .port_id = 38, .port_name = "AUDIO OUT" }, { .port_id = 39, .port_name = "AUDIO IN" }, { .port_id = 40, .port_name = "AIU" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC" }, @@ -447,7 +447,7 @@ static struct ddr_port_desc ddr_port_desc_tl1[] __initdata = { { .port_id = 37, .port_name = "USB1" }, { .port_id = 38, .port_name = "AUDIO" }, { .port_id = 39, .port_name = "AIFIFO" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC2" }, @@ -485,7 +485,7 @@ static struct ddr_port_desc ddr_port_desc_sm1[] __initdata = { { .port_id = 37, .port_name = "USB1" }, { .port_id = 38, .port_name = "AUDIO" }, { .port_id = 39, .port_name = "AIFIFO" }, - { .port_id = 41, .port_name = "PASER" }, + { .port_id = 41, .port_name = "PARSER" }, { .port_id = 42, .port_name = "AO CPU" }, { .port_id = 43, .port_name = "SD_EMMC_C" }, { .port_id = 44, .port_name = "SPICC2" }, @@ -493,6 +493,47 @@ static struct ddr_port_desc ddr_port_desc_sm1[] __initdata = { { .port_id = 46, .port_name = "SANA" } }; +static struct ddr_port_desc ddr_port_desc_tm2[] __initdata = { + { .port_id = 0, .port_name = "ARM" }, + { .port_id = 1, .port_name = "MALI" }, + { .port_id = 2, .port_name = "PCIE" }, + { .port_id = 3, .port_name = "HDCP" }, + { .port_id = 4, .port_name = "HEVC FRONT" }, + { .port_id = 5, .port_name = "TEST" }, + { .port_id = 6, .port_name = "USB3.0" }, + { .port_id = 7, .port_name = "DEVICE" }, + { .port_id = 8, .port_name = "HEVC BACK" }, + { .port_id = 9, .port_name = "DSPA" }, + { .port_id = 10, .port_name = "DSPB" }, + { .port_id = 11, .port_name = "NNA" }, + { .port_id = 12, .port_name = "PCIE1" }, + { .port_id = 16, .port_name = "VPU READ1" }, + { .port_id = 17, .port_name = "VPU READ2" }, + { .port_id = 18, .port_name = "VPU READ3" }, + { .port_id = 19, .port_name = "VPU WRITE1" }, + { .port_id = 20, .port_name = "VPU WRITE2" }, + { .port_id = 21, .port_name = "VDEC" }, + { .port_id = 22, .port_name = "HCODEC" }, + { .port_id = 23, .port_name = "GE2D" }, + /* start of each device */ + { .port_id = 32, .port_name = "SPICC1" }, + { .port_id = 33, .port_name = "USB0" }, + { .port_id = 34, .port_name = "DMA" }, + { .port_id = 35, .port_name = "ARB0" }, + { .port_id = 36, .port_name = "SD_EMMC_B" }, + { .port_id = 37, .port_name = "USB1" }, + { .port_id = 38, .port_name = "AUDIO" }, + { .port_id = 39, .port_name = "AIFIFO" }, + { .port_id = 40, .port_name = "PARSER1" }, + { .port_id = 41, .port_name = "PARSER" }, + { .port_id = 42, .port_name = "AO CPU" }, + { .port_id = 43, .port_name = "SD_EMMC_C" }, + { .port_id = 44, .port_name = "SPICC2" }, + { .port_id = 45, .port_name = "ETHERNET" }, + { .port_id = 46, .port_name = "SANA" }, + { .port_id = 47, .port_name = "DEMODE" } +}; + static struct ddr_port_desc *chip_ddr_port; static unsigned char chip_ddr_port_num; @@ -572,6 +613,11 @@ int __init ddr_find_port_desc(int cpu_type, struct ddr_port_desc **desc) desc_size = ARRAY_SIZE(ddr_port_desc_sm1); break; + case MESON_CPU_MAJOR_ID_TM2: + *desc = ddr_port_desc_tm2; + desc_size = ARRAY_SIZE(ddr_port_desc_tm2); + break; + default: return -EINVAL; } diff --git a/drivers/amlogic/ddr_tool/dmc_g12.c b/drivers/amlogic/ddr_tool/dmc_g12.c index 859b76e..364dd64 100644 --- a/drivers/amlogic/ddr_tool/dmc_g12.c +++ b/drivers/amlogic/ddr_tool/dmc_g12.c @@ -113,10 +113,12 @@ static void check_violation(struct dmc_monitor *mon) break; case MESON_CPU_MAJOR_ID_SM1: case MESON_CPU_MAJOR_ID_TL1: - /* bit fix for SM1/TL1 */ + case MESON_CPU_MAJOR_ID_TM2: + /* bit fix for SM1/TL1/TM2 */ off1 = 22; off2 = 11; break; + default: /* G12A */ off1 = 21; off2 = 10; -- 2.7.4