[{"id":3683953,"web_url":"http://patchwork.ozlabs.org/comment/3683953/","msgid":"<acde30a6-23b1-4f1e-8f09-ddfe20f22390@nvidia.com>","list_archive_url":null,"date":"2026-04-29T09:29:28","subject":"Re: [PATCH V2 2/2] memory: tegra: Add T238 MC support","submitter":{"id":66273,"url":"http://patchwork.ozlabs.org/api/people/66273/","name":"Jon Hunter","email":"jonathanh@nvidia.com"},"content":"On 27/04/2026 08:34, Ashish Mhetre wrote:\n\nWe prefer to use 'Tegra238' and not T238. However, don't worry too much \nabout that unless there are other comments.\n\n> Add Memory Controller driver support for Tegra238 SOC, including:\n> - MC client definitions with Tegra238-specific stream IDs\n> - Reuse of Tegra234 ICC operations for bandwidth management via BPMP-FW\n> - Device tree compatible string \"nvidia,tegra238-mc\"\n> \n> Export tegra234_mc_icc_ops so it can be shared with the Tegra238 MC\n> driver, as both SoCs use the same ICC aggregation and bandwidth\n> management logic.\n> \n> Signed-off-by: Ashish Mhetre <amhetre@nvidia.com>\n> ---\n>   drivers/memory/tegra/Makefile   |   1 +\n>   drivers/memory/tegra/mc.c       |   3 +\n>   drivers/memory/tegra/mc.h       |   9 +\n>   drivers/memory/tegra/tegra234.c |   2 +-\n>   drivers/memory/tegra/tegra238.c | 391 ++++++++++++++++++++++++++++++++\n>   5 files changed, 405 insertions(+), 1 deletion(-)\n>   create mode 100644 drivers/memory/tegra/tegra238.c\n> \n> diff --git a/drivers/memory/tegra/Makefile b/drivers/memory/tegra/Makefile\n> index 6334601e6120..7c2fca12076b 100644\n> --- a/drivers/memory/tegra/Makefile\n> +++ b/drivers/memory/tegra/Makefile\n> @@ -10,6 +10,7 @@ tegra-mc-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210.o\n>   tegra-mc-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186.o\n>   tegra-mc-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra186.o tegra194.o\n>   tegra-mc-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra186.o tegra234.o\n> +tegra-mc-$(CONFIG_ARCH_TEGRA_238_SOC) += tegra186.o tegra234.o tegra238.o\n>   tegra-mc-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra186.o tegra264.o\n>   \n>   obj-$(CONFIG_TEGRA_MC) += tegra-mc.o\n> diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c\n> index d620660da331..10ef3c323e22 100644\n> --- a/drivers/memory/tegra/mc.c\n> +++ b/drivers/memory/tegra/mc.c\n> @@ -49,6 +49,9 @@ static const struct of_device_id tegra_mc_of_match[] = {\n>   #ifdef CONFIG_ARCH_TEGRA_234_SOC\n>   \t{ .compatible = \"nvidia,tegra234-mc\", .data = &tegra234_mc_soc },\n>   #endif\n> +#ifdef CONFIG_ARCH_TEGRA_238_SOC\n> +\t{ .compatible = \"nvidia,tegra238-mc\", .data = &tegra238_mc_soc },\n> +#endif\n>   #ifdef CONFIG_ARCH_TEGRA_264_SOC\n>   \t{ .compatible = \"nvidia,tegra264-mc\", .data = &tegra264_mc_soc },\n>   #endif\n> diff --git a/drivers/memory/tegra/mc.h b/drivers/memory/tegra/mc.h\n> index 649b54369263..e94d265d7b67 100644\n> --- a/drivers/memory/tegra/mc.h\n> +++ b/drivers/memory/tegra/mc.h\n> @@ -240,6 +240,14 @@ extern const struct tegra_mc_soc tegra194_mc_soc;\n>   extern const struct tegra_mc_soc tegra234_mc_soc;\n>   #endif\n>   \n> +#if defined(CONFIG_ARCH_TEGRA_234_SOC) || defined(CONFIG_ARCH_TEGRA_238_SOC)\n> +extern const struct tegra_mc_icc_ops tegra234_mc_icc_ops;\n> +#endif\n> +\n> +#ifdef CONFIG_ARCH_TEGRA_238_SOC\n> +extern const struct tegra_mc_soc tegra238_mc_soc;\n> +#endif\n> +\n>   #ifdef CONFIG_ARCH_TEGRA_264_SOC\n>   extern const struct tegra_mc_soc tegra264_mc_soc;\n>   #endif\n> @@ -256,6 +264,7 @@ extern const struct tegra_mc_ops tegra30_mc_ops;\n>   #if defined(CONFIG_ARCH_TEGRA_186_SOC) || \\\n>       defined(CONFIG_ARCH_TEGRA_194_SOC) || \\\n>       defined(CONFIG_ARCH_TEGRA_234_SOC) || \\\n> +    defined(CONFIG_ARCH_TEGRA_238_SOC) || \\\n>       defined(CONFIG_ARCH_TEGRA_264_SOC)\n>   extern const struct tegra_mc_ops tegra186_mc_ops;\n>   #endif\n> diff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra234.c\n> index 87b22038a5fb..9fbd34d4abe0 100644\n> --- a/drivers/memory/tegra/tegra234.c\n> +++ b/drivers/memory/tegra/tegra234.c\n> @@ -1125,7 +1125,7 @@ static int tegra234_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *pea\n>   \treturn 0;\n>   }\n>   \n> -static const struct tegra_mc_icc_ops tegra234_mc_icc_ops = {\n> +const struct tegra_mc_icc_ops tegra234_mc_icc_ops = {\n>   \t.xlate = tegra_mc_icc_xlate,\n>   \t.aggregate = tegra234_mc_icc_aggregate,\n>   \t.get_bw = tegra234_mc_icc_get_init_bw,\n> diff --git a/drivers/memory/tegra/tegra238.c b/drivers/memory/tegra/tegra238.c\n> new file mode 100644\n> index 000000000000..938c8985600e\n> --- /dev/null\n> +++ b/drivers/memory/tegra/tegra238.c\n> @@ -0,0 +1,391 @@\n> +// SPDX-License-Identifier: GPL-2.0-only\n> +/*\n> + * Copyright (C) 2026, NVIDIA CORPORATION.  All rights reserved.\n> + */\n> +\n> +#include <soc/tegra/mc.h>\n> +\n> +#include <dt-bindings/memory/tegra234-mc.h>\n> +#include <dt-bindings/memory/nvidia,tegra238-mc.h>\n> +#include <linux/interconnect.h>\n> +#include <linux/tegra-icc.h>\n> +\n> +#include <soc/tegra/bpmp.h>\n> +#include \"mc.h\"\n> +\n> +static const struct tegra_mc_client tegra238_mc_clients[] = {\n> +\t{\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_HDAR,\n> +\t\t.name = \"hdar\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_HDA,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_HDA,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0xa8,\n> +\t\t\t\t.security = 0xac,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_HDAW,\n> +\t\t.name = \"hdaw\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_HDA,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_HDA,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x1a8,\n> +\t\t\t\t.security = 0x1ac,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_SDMMCRAB,\n> +\t\t.name = \"sdmmcrab\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_SDMMC4A,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x318,\n> +\t\t\t\t.security = 0x31c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_SDMMCWAB,\n> +\t\t.name = \"sdmmcwab\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_SDMMC4A,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x338,\n> +\t\t\t\t.security = 0x33c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_APER,\n> +\t\t.name = \"aper\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_APE,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_ISO_APE0,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x3d0,\n> +\t\t\t\t.security = 0x3d4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_APEW,\n> +\t\t.name = \"apew\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_APE,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_ISO_APE0,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x3d8,\n> +\t\t\t\t.security = 0x3dc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR,\n> +\t\t.name = \"nvdisplayr\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,\n> +\t\t.type = TEGRA_ICC_ISO_DISPLAY,\n> +\t\t.sid = TEGRA238_SID_ISO_NVDISPLAY,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x490,\n> +\t\t\t\t.security = 0x494,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR1,\n> +\t\t.name = \"nvdisplayr1\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,\n> +\t\t.type = TEGRA_ICC_ISO_DISPLAY,\n> +\t\t.sid = TEGRA238_SID_ISO_NVDISPLAY,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x508,\n> +\t\t\t\t.security = 0x50c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPR,\n> +\t\t.name = \"bpmpr\",\n> +\t\t.sid = TEGRA238_SID_BPMP,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x498,\n> +\t\t\t\t.security = 0x49c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPW,\n> +\t\t.name = \"bpmpw\",\n> +\t\t.sid = TEGRA238_SID_BPMP,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x4a0,\n> +\t\t\t\t.security = 0x4a4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPDMAR,\n> +\t\t.name = \"bpmpdmar\",\n> +\t\t.sid = TEGRA238_SID_BPMP,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x4a8,\n> +\t\t\t\t.security = 0x4ac,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPDMAW,\n> +\t\t.name = \"bpmpdmaw\",\n> +\t\t.sid = TEGRA238_SID_BPMP,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x4b0,\n> +\t\t\t\t.security = 0x4b4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_APEDMAR,\n> +\t\t.name = \"apedmar\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_APEDMA,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_ISO_APE1,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x4f8,\n> +\t\t\t\t.security = 0x4fc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_APEDMAW,\n> +\t\t.name = \"apedmaw\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_APEDMA,\n> +\t\t.type = TEGRA_ICC_ISO_AUDIO,\n> +\t\t.sid = TEGRA238_SID_ISO_APE1,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x500,\n> +\t\t\t\t.security = 0x504,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_VICSRD,\n> +\t\t.name = \"vicsrd\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_VIC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_VIC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x360,\n> +\t\t\t\t.security = 0x364,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_VICSWR,\n> +\t\t.name = \"vicswr\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_VIC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_VIC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x368,\n> +\t\t\t\t.security = 0x36c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVDECSRD,\n> +\t\t.name = \"nvdecsrd\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_NVDEC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_NVDEC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x3c0,\n> +\t\t\t\t.security = 0x3c4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVDECSWR,\n> +\t\t.name = \"nvdecswr\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_NVDEC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_NVDEC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x3c8,\n> +\t\t\t\t.security = 0x3cc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVENCSRD,\n> +\t\t.name = \"nvencsrd\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_NVENC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_NVENC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0xe0,\n> +\t\t\t\t.security = 0xe4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVENCSWR,\n> +\t\t.name = \"nvencswr\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_NVENC,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_NVENC,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x158,\n> +\t\t\t\t.security = 0x15c,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE0R,\n> +\t\t.name = \"pcie0r\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE0,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6c0,\n> +\t\t\t\t.security = 0x6c4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE0W,\n> +\t\t.name = \"pcie0w\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE0,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6c8,\n> +\t\t\t\t.security = 0x6cc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE1R,\n> +\t\t.name = \"pcie1r\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE1,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6d0,\n> +\t\t\t\t.security = 0x6d4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE1W,\n> +\t\t.name = \"pcie1w\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE1,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6d8,\n> +\t\t\t\t.security = 0x6dc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE2AR,\n> +\t\t.name = \"pcie2ar\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE2,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6e0,\n> +\t\t\t\t.security = 0x6e4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE2AW,\n> +\t\t.name = \"pcie2aw\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE2,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6e8,\n> +\t\t\t\t.security = 0x6ec,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE3R,\n> +\t\t.name = \"pcie3r\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE3,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6f0,\n> +\t\t\t\t.security = 0x6f4,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE3W,\n> +\t\t.name = \"pcie3w\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t\t.sid = TEGRA238_SID_PCIE3,\n> +\t\t.regs = {\n> +\t\t\t.sid = {\n> +\t\t\t\t.override = 0x6f8,\n> +\t\t\t\t.security = 0x6fc,\n> +\t\t\t},\n> +\t\t},\n> +\t}, {\n> +\t\t.id = TEGRA_ICC_MC_CPU_CLUSTER0,\n> +\t\t.name = \"sw_cluster0\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER0,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVL1R,\n> +\t\t.name = \"nvl1r\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_GPU,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t}, {\n> +\t\t.id = TEGRA234_MEMORY_CLIENT_NVL1W,\n> +\t\t.name = \"nvl1w\",\n> +\t\t.bpmp_id = TEGRA_ICC_BPMP_GPU,\n> +\t\t.type = TEGRA_ICC_NISO,\n> +\t}\n> +};\n> +\n> +static const struct tegra_mc_intmask tegra238_mc_intmasks[] = {\n> +\t{\n> +\t\t.reg = MC_INTMASK,\n> +\t\t.mask = MC_INT_DECERR_ROUTE_SANITY | MC_INT_DECERR_GENERALIZED_CARVEOUT |\n> +\t\t\tMC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |\n> +\t\t\tMC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM,\n> +\t},\n> +};\n> +\n> +const struct tegra_mc_soc tegra238_mc_soc = {\n> +\t.num_clients = ARRAY_SIZE(tegra238_mc_clients),\n> +\t.clients = tegra238_mc_clients,\n> +\t.num_address_bits = 40,\n> +\t.num_channels = 8,\n> +\t.client_id_mask = 0x1ff,\n> +\t.intmasks = tegra238_mc_intmasks,\n> +\t.num_intmasks = ARRAY_SIZE(tegra238_mc_intmasks),\n> +\t.has_addr_hi_reg = true,\n> +\t.ops = &tegra186_mc_ops,\n> +\t.icc_ops = &tegra234_mc_icc_ops,\n> +\t.ch_intmask = 0x0000ff00,\n> +\t.global_intstatus_channel_shift = 8,\n> +\t.num_carveouts = 32,\n> +\t.regs = &tegra20_mc_regs,\n> +\t.handle_irq = tegra30_mc_irq_handlers,\n> +\t.num_interrupts = ARRAY_SIZE(tegra30_mc_irq_handlers),\n> +\t.mc_addr_hi_mask = 0x3,\n> +\t.mc_err_status_type_mask = (0x7 << 28),\n> +};\n\nReviewed-by: Jon Hunter <jonathanh@nvidia.com>\n\nThanks!\nJon","headers":{"Return-Path":"\n <linux-tegra+bounces-14054-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=GBONFiVQ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-tegra+bounces-14054-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"GBONFiVQ\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.48.49","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5Bqp3JPGz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 19:30:46 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 7A04E301048F\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 09:29:39 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 484303C1991;\n\tWed, 29 Apr 2026 09:29:39 +0000 (UTC)","from MW6PR02CU001.outbound.protection.outlook.com\n (mail-westus2azon11012049.outbound.protection.outlook.com [52.101.48.49])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 45F3A3C13E3;\n\tWed, 29 Apr 2026 09:29:37 +0000 (UTC)","from LV5PR12MB9754.namprd12.prod.outlook.com (2603:10b6:408:305::12)\n by CY3PR12MB9654.namprd12.prod.outlook.com (2603:10b6:930:ff::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.12; Wed, 29 Apr\n 2026 09:29:33 +0000","from LV5PR12MB9754.namprd12.prod.outlook.com\n ([fe80::9667:3c95:27d2:73da]) by LV5PR12MB9754.namprd12.prod.outlook.com\n ([fe80::9667:3c95:27d2:73da%7]) with mapi id 15.20.9870.020; Wed, 29 Apr 2026\n 09:29:33 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777454979; cv=fail;\n b=mMgG1MO7dn6pYCUOCJFjFKQnCxveRbdvFFhgobkvp0OlBOcCOPr2PYywQhcKQQvVpW0nPP4UBXfzRjluKg592YKlHJNUOzsJAG2l8c6nqfaDNUCCkwv6cwaksjL5Lh2049CdN8ltJ066hSDAk4BaTSJfe4KXPaF+zRlYVggelMY=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=IVaH0eM/ZEXOfsI+bl6uumhaI7B8ITsrn4gj1SfDj3MOWgenP8GOOrEQIwYOCuOi0/AMkiQXl/6JExJpaedgwpQDyyDU52fyy1HYgYlCDj+QII97mkPDGHLl6OaUVNpw8PVFn390nh0HiSTghVRYgZIWNUzUyTcC4zdTozhOgM2Fxepmgd6QwbDj1y4V5Iu02GGFAyYbB1VlF2JhsRFsTY79i/4R4mnrA0Ijiq+hJbfGICLIc1n66Q8ycNgaMh7Sly3FayK1sXppxq10A27SRCw/tACXu38Xf58MSuGaHLqwzRVIVtqB598ZQY9I5FDwTxnWqErOjfvzqHFORba2Dg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777454979; c=relaxed/simple;\n\tbh=3NqQbgXYvg+/TgaqK4nvH1xt9ZYxV2DC+s9QpXkHuhk=;\n\th=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=d3NW49UTXD9yTUaKdYEWVnQvahKmwZ+E8SdF4i+KmyhlnVfFsb6ZW/bWNN1QbYVbz14wwwkZt6bmQAwSR649b78FaSTXVFuZ3Hmos2iuUZWJFgUARQGbucy/JAoFH8Q1vcLa9jMv/EjUhCic1H3aiX7oMxO2kBY1p4kTTZxubh8=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=1UvwYSTHkOALZQkputzdiasBggyWROw0dkQ01FmHmwY=;\n b=yVPAzaa1tBgisVBlah2D19vsA1MRDAFrGLYHVRra3FxgYrc6BjbJlJnk/oOg2tsiuL0lJ1YUyLW4q5TXoHNVAOR2YsEFk7ZIJg7NejB4HKvKnsBYAqEenI2Tl0oC+HPkHXgsY/lpkQzDHeiabHJomPe7dS51guixgtrwTirhqJbK+/7SvctHPLswD1TFEnipiTr/wJVlSi9Qvuzo/6Zej0a/XVLX2v8iuDQ7YyP7MzTblXaIS3ejZf82OJfRuZY7YSj6pNpJ+S0oWt7w8MdPm+Xx0GEz6aaJrPGixgO5O3+dvXQz0/nFi2GwDzSK5u9k9TOu7ZwPbbgnLyjpHVgQwg=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=GBONFiVQ; arc=fail smtp.client-ip=52.101.48.49","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=1UvwYSTHkOALZQkputzdiasBggyWROw0dkQ01FmHmwY=;\n b=GBONFiVQNOCKpFAC0KgCMUd4eX8Gh/fPtK4wywL28gXt3qgVjHNE9iUFzwTxO0NaXcuWkLLFIwJrqOr8MC1dDiHJA/s2SGVnHtlXkLg4Erw1/3tvc8P67DSURqBP5o30NwZoJpOD4pSX3oNt9DqNk0vwPa0gGjejXjuGxC6nE1dzpJIk5iSyTfFk46f6xiWMv84Ua6TN1qX2II/8ThqhHz59nuGBSvgO84SUFPt/kz1gIxC/YMmvvSORoQXju14uTj9F1TOUzsfD6hhoe/0T8fQKEZfzobrz8qfHQiK2Ge0Li8U0aCKcij5Q7zo2qLmreq22AYJw5BdNKAC86oZ0Jg==","Message-ID":"<acde30a6-23b1-4f1e-8f09-ddfe20f22390@nvidia.com>","Date":"Wed, 29 Apr 2026 10:29:28 +0100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH V2 2/2] memory: tegra: Add T238 MC support","To":"Ashish Mhetre <amhetre@nvidia.com>, krzk@kernel.org, robh@kernel.org,\n conor+dt@kernel.org, =thierry.reding@kernel.org, sumitg@nvidia.com","Cc":"linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,\n linux-tegra@vger.kernel.org","References":"<20260427073419.567360-1-amhetre@nvidia.com>\n <20260427073419.567360-3-amhetre@nvidia.com>","From":"Jon Hunter <jonathanh@nvidia.com>","Content-Language":"en-US","In-Reply-To":"<20260427073419.567360-3-amhetre@nvidia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"SJ2PR07CA0002.namprd07.prod.outlook.com\n (2603:10b6:a03:505::25) To LV5PR12MB9754.namprd12.prod.outlook.com\n (2603:10b6:408:305::12)","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"LV5PR12MB9754:EE_|CY3PR12MB9654:EE_","X-MS-Office365-Filtering-Correlation-Id":"e3d0c642-9230-449f-2e19-08dea5d1d26e","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|366016|376014|10070799003|1800799024|22082099003|56012099003|18002099003;","X-Microsoft-Antispam-Message-Info":"\n\t+xRVzBGhFFSvHbQ3CxQhCrOjORrejkSFGb37Nl0tmrKPUJ2n8xjSVwi9UkjeRNOuoixvv/NrE976AU+7eayE1LcOIR70kQmjDcfRJm8Wc77nm1Qd0P4cCXmIYlWhf7MmDpxsajUy53fTWUZt4KhWCoAjRLxWvv0qZulbCBBiw4sJdJbXUdQutV0SP48OI+YJkKsxJSiKdVS3x9QbbBYSrsylCu2un7hPFo29r57yxNOhgwq2dbFt5MU0jFu0XIhiPElnDFfTiZU0DAdWABo/k2Y0/LsqnyF3K94SPmvpC94iGTCYk19Uk4XdvFDl38tiMV2hmOTjfKc9TjIjhmMj9+nPk5VeT0ohdNYmkcVrNic1RMKnETKmXhjG6ChUePZCY63MNJq3F9BjNnouXxj4ZEbWrNlHQZse4cXxEsHEopjVqnszwuRuDR/Rw3Ps0lWg5vko6t87fRZtIHLcIZjhzm2UJTlSNiUl6NhBwL7y13scXNB+35b+KJM2Kz9FfE60ZnMN7URbzGbcFixaks+E8h/dbklEIJV+eqN47cjbgvW7mhxHhe643NyOlVoh3kbF+2QPVVbg3Vewy9EpSm20e+Ey9LcVkxlwEI5taOOxeQvOBfqEQKiP1hDN5jIX/xysMbfdC1JpCXkwtoCgUab+pJ7RD+OCUTU1a2/+m6108BfUWOOmkbfTdMXDNxwHppRT7msviBYrwnjyKg3vxbiwmstbktcWX/UZgmXRl3xste0=","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV5PR12MB9754.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(10070799003)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"2","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?BJ7JRL2w2J4z1XUqV4a4XcD1J2Oe?=\n\t=?utf-8?q?kk9/pkEKxrzr4e4W8N0jWW1wXWcjkAGW+4GNl3bfLj4FBntOzZKJxEHxyX0l0JR6P?=\n\t=?utf-8?q?upbrtM/Ux/wbZDlaQAZyGQzw00F4w8yshQzLxRm33HjVromb2OrHYDI6W3OJZ1Fny?=\n\t=?utf-8?q?NEBHfnxTOH3RTzVSFVT9LRp/YVdPI/xpfi7DaVY4U+3vEpMX2Euh2rpB8k+1t7Yox?=\n\t=?utf-8?q?jDRctgQQLMvKYuX38/p++1c4hS8ltCmbeKhr6cxyx1N7p3HTjkN1F9D27FtVOyKjj?=\n\t=?utf-8?q?sv0fQVxXU2jnsDoKJ0qB7tS40d5XBUSw7ca5IdgAmfN7mVE2rGuojg95tjUfr+fjE?=\n\t=?utf-8?q?rR19I8lfxlBx1fUmyKa6Cl7h/hZXbRk7bQ7b6Ub8U+4p0OKXbOWZTVTPYvxeurY69?=\n\t=?utf-8?q?VxIw6M+yXX75A/De7VhtiF8tCIzEVyO1VHNVUX5Yh6Qh+EYIhl5FYotN4y6OgrPTu?=\n\t=?utf-8?q?PMMprz97UVpdY53j2yOB+fZ3lTlDVP3DAfravt4tM6pmXsTZBjxeFAKzhE5rLxOaB?=\n\t=?utf-8?q?G3d/zmPQ97xa8lwgjX4pmZraRC228QBWPgiIqbLWpuEtA79XoeCUNwpGAUlPhnfJ4?=\n\t=?utf-8?q?QHGj0FUpj35GLw0HqOekhSsZvO1tV0BeU8E0/UyeOzweZFAgq5R34yt8x9gUCBR6k?=\n\t=?utf-8?q?JnKNLvZUgDf/zyYoa1HbhfbhmRarg1AF0mHMofj3g7BJjdKQbGGX7HZb/jBzsQAYn?=\n\t=?utf-8?q?z+coc2wrjqdum7Y1T4FbvpW0O2Zwn+hJzGM/hihhFfu7rvvoqDd0tu/Uo261fpE/y?=\n\t=?utf-8?q?13NSIY3ISnu/VvQC0FGGkLsKJCb6lwX6WH3X9QbXP4P4wMbBJ/xP4G3XGQixE6+uV?=\n\t=?utf-8?q?AMe601QWPbjZfulUVs8rw9yaI4oLP9Ta8+SS2XwRtQjLmLW0sJJprcv8TbvZClK9M?=\n\t=?utf-8?q?82p3loCdc9snjkrgQoYHncFqmZLs3gNE58qAz1wJ+DeUpBnraPpkAiy+jsL3NDkY3?=\n\t=?utf-8?q?uGuahczAcmzEtiFVjxEDb1HZZ6IjQb2jVrLDMfxHq2Qb/jJIek62vjknSvF10Rx3z?=\n\t=?utf-8?q?oGYgKCnUfWcelGMM0oEG89UILUgNtgXPXvtWAfpijnZDBWs5OhocDlX3N9YuPjdwc?=\n\t=?utf-8?q?C6TYm+mskZFaLMoHzPhCKUpvOvhtOhMEfx8/N37WBMExcRCPaCXsmKRmjfNBBzl79?=\n\t=?utf-8?q?2TJGaEociepVVLeIvR+y3dd3GDMmk3KPT4ECaBh6wbG1XymTE7xtytHcXKmaeO8Bl?=\n\t=?utf-8?q?UVCWY88eG285AL1XCkkXENo/SKtnN4qTVDt2lAbGfAmmmQ6oh2769Z/6rHHk1QLL3?=\n\t=?utf-8?q?W5F3UEG8Uk3LYhSATkSRpAdffDYCoD3NRIY1atupLFJc5OrVBTmb0hhaIwjXPr1zR?=\n\t=?utf-8?q?kAoxLFEekgAVaDBoy0xBt/4Scwvde7DC6v1zHR1bzor93mbxJbP4XdgM7Ya0gvxsR?=\n\t=?utf-8?q?2VaTgUHoHwrp4drlQWvTm0bV0Aig9OBKdaU7LfL2TAqVEim5b3zqnBKm7BoW0w45o?=\n\t=?utf-8?q?mTjgZxJB5QIzdCBeJupKRRp6zVw3ZQjROOld62u+haEt4iSlFNmaRWZJB3PYmNsG0?=\n\t=?utf-8?q?Z3zSOxvBzwj4yH3KHeutPBZ9OZrrN7K1eVsPY2a9JhFYzcFPXH/e75ugDaVqy5F4q?=\n\t=?utf-8?q?CdOWfUu3isWqbNxpgfSZdZJXWz1xbBLvB9Z9mgkvqfFgB0ba/JV1XQq+D5RcYiTAL?=\n\t=?utf-8?q?95UIWGnfippmae9CVCTIzLIw885FIeUvsjsxwdCDx+fa5C3VU1SFxhlHLW2kXKJTZ?=\n\t=?utf-8?q?xHzxuDTDwqRo+rgiq?=","X-MS-Exchange-AntiSpam-MessageData-1":"ceDlveBRK2b0mw==","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n e3d0c642-9230-449f-2e19-08dea5d1d26e","X-MS-Exchange-CrossTenant-AuthSource":"LV5PR12MB9754.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"29 Apr 2026 09:29:33.1100\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n sl2GRYpW112LSFvfWv29DpDCoDuwvUXdDW6LbwTenBUitZ1yAjuqngajv/Hc+BO60hsB6Ts5xZTmd7CycUw3IA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY3PR12MB9654"}}]