diff options
author | Tom Rini <trini@konsulko.com> | 2022-06-10 16:02:42 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-06-10 16:02:42 -0400 |
commit | a87a6fcd20c0e29fe55bfbb6917c4aa1f1bbce74 (patch) | |
tree | d5eb96f5979b773406d061572de14027b34a281e /arch/arm/mach-k3/sysfw-loader.c | |
parent | e5028bb227c578ca89273f0b1e0d289ec1987d2f (diff) | |
parent | e16aac3b730e10420d54cfa64f658fe7ef0397c6 (diff) |
Merge branch '2022-06-10-assorted-platform-updates' into next
- TI J721E hyperflash support, TI OMAP3 updates, TI AM654 updates,
TI AM62 initial support, Broadcom bcmbca 47622 SoC support, NPCM7xx
pinctrl and rng drivers, Synquacer updates
Diffstat (limited to 'arch/arm/mach-k3/sysfw-loader.c')
-rw-r--r-- | arch/arm/mach-k3/sysfw-loader.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/mach-k3/sysfw-loader.c b/arch/arm/mach-k3/sysfw-loader.c index 5e48c36ccd5..988e7586292 100644 --- a/arch/arm/mach-k3/sysfw-loader.c +++ b/arch/arm/mach-k3/sysfw-loader.c @@ -346,6 +346,25 @@ static void k3_sysfw_spi_copy(u32 *dst, u32 *src, size_t len) } #endif +#if CONFIG_IS_ENABLED(NOR_SUPPORT) +static void *get_sysfw_hf_addr(void) +{ + struct udevice *dev; + fdt_addr_t addr; + int ret; + + ret = uclass_find_first_device(UCLASS_MTD, &dev); + if (ret) + return NULL; + + addr = dev_read_addr_index(dev, 1); + if (addr == FDT_ADDR_T_NONE) + return NULL; + + return (void *)(addr + CONFIG_K3_SYSFW_IMAGE_SPI_OFFS); +} +#endif + void k3_sysfw_loader(bool rom_loaded_sysfw, void (*config_pm_pre_callback)(void), void (*config_pm_done_callback)(void)) @@ -413,6 +432,15 @@ void k3_sysfw_loader(bool rom_loaded_sysfw, CONFIG_K3_SYSFW_IMAGE_SIZE_MAX); break; #endif +#if CONFIG_IS_ENABLED(NOR_SUPPORT) + case BOOT_DEVICE_HYPERFLASH: + sysfw_spi_base = get_sysfw_hf_addr(); + if (!sysfw_spi_base) + ret = -ENODEV; + k3_sysfw_spi_copy(sysfw_load_address, sysfw_spi_base, + CONFIG_K3_SYSFW_IMAGE_SIZE_MAX); + break; +#endif #if CONFIG_IS_ENABLED(YMODEM_SUPPORT) case BOOT_DEVICE_UART: #ifdef CONFIG_K3_EARLY_CONS |