u-boot/arch
Nishanth Menon ee91d46557 arm: mach-k3: common: Make sure firmware sections are loaded prior to armv8 startup
With Device Manager firmware in an elf file form, we cannot load the FIT
image to the exact same address as any of the executable sections of the
elf file itself is located.

However, the device tree descriptions for the ARMV8 bootloader/OS
includes DDR regions only the final sections in DDR where the Device
Manager firmware is actually executing out of.

As the R5 uC is usually operating at a slower rate than an ARMv8 MPU,
by starting the Armv8 ahead of parsing the elf and copying the correct
sections to the required memories creates a race condition where the
ARMv8 could overwrite the elf image loaded from the FIT image prior to
the R5 completing parsing and putting the correct sections of elf in
the required memory locations. OR create rather obscure debug conditions
where data in the section is being modified by ARMV8 OS while the elf
copy is in progress.

To prevent all these conditions, lets make sure that the elf parse and
copy operations are completed ahead of ARMv8 being released to execute.

We will pay a penalty of elf copy time, but that is a valid tradeoff in
comparison to debug of alternate scenarios.

Signed-off-by: Nishanth Menon <nm@ti.com>
2021-09-17 14:48:53 -04:00
..
arc global_data: Ensure we have <config.h> when symbols are not in Kconfig yet 2021-06-23 08:45:03 -04:00
arm arm: mach-k3: common: Make sure firmware sections are loaded prior to armv8 startup 2021-09-17 14:48:53 -04:00
m68k m68k: Remove M52277EVB board 2021-07-18 21:03:57 -04:00
microblaze lmb: move CONFIG_LMB in Kconfig 2021-04-22 14:09:45 -04:00
mips pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
nds32 pci: ppc: Drop ftpci100 driver 2021-08-06 08:26:48 -04:00
nios2 global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
powerpc ppc: Remove UCP1020 board 2021-09-13 18:22:50 -04:00
riscv riscv: lib: modify the indent 2021-09-07 10:34:29 +08:00
sandbox bootcount: add a new driver with syscon as backend 2021-08-22 11:04:52 +02:00
sh global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
x86 efi_loader rename enum efi_mem_type to efi_memory_type 2021-08-17 17:24:08 +02:00
xtensa treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
.gitignore
Kconfig pci: Drop DM_PCI 2021-09-13 18:23:13 -04:00
u-boot-elf.lds arch: Add explicit linker script for u-boot-elf 2020-04-03 11:52:55 -04:00