From c33473d527ee5354abc3d169f68395179074f5df Mon Sep 17 00:00:00 2001 From: Varun Wadekar <vwadekar@nvidia.com> Date: Mon, 19 Mar 2018 15:19:28 -0700 Subject: [PATCH] Tegra210: skip past sc7entry-fw signature header This patch skips past the signature header added to the sc7entry-fw binary by the previous level bootloader. Currently, the size of the header is 1KB, so adjust the start address and the binary size at the time of copy. Change-Id: Id0494548009749035846d54df417a960c640c8f9 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> --- plat/nvidia/tegra/include/t210/tegra_def.h | 5 +++++ plat/nvidia/tegra/soc/t210/plat_psci_handlers.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/plat/nvidia/tegra/include/t210/tegra_def.h b/plat/nvidia/tegra/include/t210/tegra_def.h index 0f24f324c..7e3789c65 100644 --- a/plat/nvidia/tegra/include/t210/tegra_def.h +++ b/plat/nvidia/tegra/include/t210/tegra_def.h @@ -37,6 +37,11 @@ #define PLAT_PHY_ADDR_SPACE_SIZE (ULL(1) << 35) #define PLAT_VIRT_ADDR_SPACE_SIZE (ULL(1) << 35) +/******************************************************************************* + * SC7 entry firmware's header size + ******************************************************************************/ +#define SC7ENTRY_FW_HEADER_SIZE_BYTES U(0x400) + /******************************************************************************* * iRAM memory constants ******************************************************************************/ diff --git a/plat/nvidia/tegra/soc/t210/plat_psci_handlers.c b/plat/nvidia/tegra/soc/t210/plat_psci_handlers.c index b6a0b69dc..d18a987b1 100644 --- a/plat/nvidia/tegra/soc/t210/plat_psci_handlers.c +++ b/plat/nvidia/tegra/soc/t210/plat_psci_handlers.c @@ -381,8 +381,8 @@ int tegra_soc_pwr_domain_power_down_wfi(const psci_power_state_t *target_state) /* Copy the firmware to BPMP's internal RAM */ (void)memcpy((void *)(uintptr_t)TEGRA_IRAM_BASE, - (const void *)plat_params->sc7entry_fw_base, - plat_params->sc7entry_fw_size); + (const void *)(plat_params->sc7entry_fw_base + SC7ENTRY_FW_HEADER_SIZE_BYTES), + plat_params->sc7entry_fw_size - SC7ENTRY_FW_HEADER_SIZE_BYTES); /* Power on the BPMP and execute from IRAM base */ tegra_fc_bpmp_on(TEGRA_IRAM_BASE); -- GitLab