summaryrefslogtreecommitdiff
path: root/arch/arm/mach-stm32mp/ecdsa_romapi.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2023-01-12 18:58:40 +0100
committerPatrice Chotard <patrice.chotard@foss.st.com>2023-01-13 13:46:57 +0100
commitdbeaca79b7924d46a51228fa0b1db3462036b5e0 (patch)
treeebe9927ea34d0822543b682ab49d5aee0549437e /arch/arm/mach-stm32mp/ecdsa_romapi.c
parentbbafbc044dcab06eccba0dc6a7235a0c6e782484 (diff)
ARM: stm32: Factor out save_boot_params
The STM32MP15xx platform currently comes with two incompatible implementations of save_boot_params() weak function override. Factor the save_boot_params() implementation into common cpu.c code and provide accessors to read out both ROM API table address and DT address from any place in the code instead. Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'arch/arm/mach-stm32mp/ecdsa_romapi.c')
-rw-r--r--arch/arm/mach-stm32mp/ecdsa_romapi.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/arm/mach-stm32mp/ecdsa_romapi.c b/arch/arm/mach-stm32mp/ecdsa_romapi.c
index 6156526253c..12b42b9d59c 100644
--- a/arch/arm/mach-stm32mp/ecdsa_romapi.c
+++ b/arch/arm/mach-stm32mp/ecdsa_romapi.c
@@ -24,26 +24,10 @@ struct ecdsa_rom_api {
uint32_t ecc_algo);
};
-/*
- * Without forcing the ".data" section, this would get saved in ".bss". BSS
- * will be cleared soon after, so it's not suitable.
- */
-static uintptr_t rom_api_loc __section(".data");
-
-/*
- * The ROM gives us the API location in r0 when starting. This is only available
- * during SPL, as there isn't (yet) a mechanism to pass this on to u-boot.
- */
-void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2,
- unsigned long r3)
-{
- rom_api_loc = r0;
- save_boot_params_ret();
-}
-
static void stm32mp_rom_get_ecdsa_functions(struct ecdsa_rom_api *rom)
{
- uintptr_t verify_ptr = rom_api_loc + ROM_API_OFFSET_ECDSA_VERIFY;
+ uintptr_t verify_ptr = get_stm32mp_rom_api_table() +
+ ROM_API_OFFSET_ECDSA_VERIFY;
rom->ecdsa_verify_signature = *(void **)verify_ptr;
}