From f814ff5e0b10a0b6a1b303a849e68f302f0d8627 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Wed, 13 Oct 2021 13:06:02 -0700 Subject: [PATCH] ARM: tegra: Support EMC frequency tables on Tegra210 The EMC frequency tables are created from a training sequence performed during early boot and passed in via a reserved memory region by nvtboot. Copy this table to the kernel DTB so that the kernel can use it to scale the EMC frequency at runtime. Note that early bootloaders store the EMC table at an address that currently intersects with the load address of the initial ramdisk. In order to avoid copying the table to a different address, simply change the load address for the initial ramdisk in U-Boot. Signed-off-by: Thierry Reding Signed-off-by: Tom Warren --- board/nvidia/p2371-2180/p2371-2180.c | 1 + board/nvidia/p3450-0000/p3450-0000.c | 1 + include/configs/tegra210-common.h | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/board/nvidia/p2371-2180/p2371-2180.c b/board/nvidia/p2371-2180/p2371-2180.c index f5126c552b..cd5dc2de62 100644 --- a/board/nvidia/p2371-2180/p2371-2180.c +++ b/board/nvidia/p2371-2180/p2371-2180.c @@ -183,6 +183,7 @@ static void ft_carveout_setup(void *fdt) static const char * const nodes[] = { "/host1x@50000000/dc@54200000", "/host1x@50000000/dc@54240000", + "/external-memory-controller@7001b000", }; unsigned int i; int err; diff --git a/board/nvidia/p3450-0000/p3450-0000.c b/board/nvidia/p3450-0000/p3450-0000.c index 97b99001a9..ba57528265 100644 --- a/board/nvidia/p3450-0000/p3450-0000.c +++ b/board/nvidia/p3450-0000/p3450-0000.c @@ -182,6 +182,7 @@ static void ft_carveout_setup(void *fdt) static const char * const nodes[] = { "/host1x@50000000/dc@54200000", "/host1x@50000000/dc@54240000", + "/external-memory-controller@7001b000", }; unsigned int i; int err; diff --git a/include/configs/tegra210-common.h b/include/configs/tegra210-common.h index b9e04147be..e1b91f6250 100644 --- a/include/configs/tegra210-common.h +++ b/include/configs/tegra210-common.h @@ -44,7 +44,7 @@ "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ "fdtfile=" FDTFILE "\0" \ "fdt_addr_r=0x83000000\0" \ - "ramdisk_addr_r=0x83200000\0" + "ramdisk_addr_r=0x83420000\0" /* For USB EHCI controller */ #define CONFIG_EHCI_IS_TDI -- 2.39.5