ddr: enable bandwidth and dmc monitor for tm2 [1/1]
authorTao Zeng <tao.zeng@amlogic.com>
Thu, 25 Apr 2019 02:27:09 +0000 (10:27 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Fri, 26 Apr 2019 08:25:50 +0000 (01:25 -0700)
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 <tao.zeng@amlogic.com>
arch/arm/boot/dts/amlogic/mesontm2.dtsi
arch/arm64/boot/dts/amlogic/mesontm2.dtsi
drivers/amlogic/ddr_tool/ddr_port_desc.c
drivers/amlogic/ddr_tool/dmc_g12.c

index efabf3b..d3bebbf 100644 (file)
 
        dmc_monitor {
                compatible = "amlogic, dmc_monitor";
-               status = "disabled";
-               reg_base = <0xff638800>;
+               status = "okay";
+               reg_base = <0xff639000>;
                interrupts = <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>;
        };
 
index 2e18b04..4ff50c9 100644 (file)
 
        dmc_monitor {
                compatible = "amlogic, dmc_monitor";
-               status = "disabled";
-               reg_base = <0xff638800>;
+               status = "okay";
+               reg_base = <0xff639000>;
                interrupts = <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>;
        };
 
index 03d8cc7..4871aba 100644 (file)
@@ -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;
        }
index 859b76e..364dd64 100644 (file)
@@ -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;