mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 07:30:26 +09:00
arm: mach-k3: am642: Store boot info from ROM
For AM642, ROM supports loading system firmware directly from boot image. ROM passes information about the number of images that are loaded to bootloader at a specific address that is temporary. Add support for storing this information somewhere permanent before it gets corrupted. Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
This commit is contained in:
parent
b4a8c3b242
commit
6d52c9dd90
@ -29,12 +29,33 @@ static void ctrl_mmr_unlock(void)
|
||||
mmr_unlock(CTRL_MMR0_BASE, 6);
|
||||
}
|
||||
|
||||
/*
|
||||
* This uninitialized global variable would normal end up in the .bss section,
|
||||
* but the .bss is cleared between writing and reading this variable, so move
|
||||
* it to the .data section.
|
||||
*/
|
||||
u32 bootindex __section(".data");
|
||||
static struct rom_extended_boot_data bootdata __section(.data);
|
||||
|
||||
static void store_boot_info_from_rom(void)
|
||||
{
|
||||
bootindex = *(u32 *)(CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX);
|
||||
memcpy(&bootdata, (uintptr_t *)ROM_ENTENDED_BOOT_DATA_INFO,
|
||||
sizeof(struct rom_extended_boot_data));
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
#if defined(CONFIG_CPU_V7R)
|
||||
setup_k3_mpu_regions();
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Cannot delay this further as there is a chance that
|
||||
* K3_BOOT_PARAM_TABLE_INDEX can be over written by SPL MALLOC section.
|
||||
*/
|
||||
store_boot_info_from_rom();
|
||||
|
||||
ctrl_mmr_unlock();
|
||||
|
||||
/* Init DM early */
|
||||
|
@ -47,4 +47,6 @@
|
||||
#define CTRLMMR_LOCK_KICK1 0x0100c
|
||||
#define CTRLMMR_LOCK_KICK1_UNLOCK_VAL 0xd172bc5a
|
||||
|
||||
#define ROM_ENTENDED_BOOT_DATA_INFO 0x701beb00
|
||||
|
||||
#endif /* __ASM_ARCH_DRA8_HARDWARE_H */
|
||||
|
Loading…
Reference in New Issue
Block a user