mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
arm: zynqmp: Wire SPL/ATF handoff structure properly
handoff_setup() was used to generate fixed handoff structure for ATF on ZynqMP platform. Switching to bl2_plat_get_bl31_params() platform brings more flexibility because information can be taken from fit image where /fit-images node is created at run time. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
@@ -66,7 +66,9 @@ struct xfsbl_atf_handoff_params {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_SPL_OS_BOOT
|
||||
void handoff_setup(void)
|
||||
struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl32_entry,
|
||||
uintptr_t bl33_entry,
|
||||
uintptr_t fdt_addr)
|
||||
{
|
||||
struct xfsbl_atf_handoff_params *atfhandoffparams;
|
||||
|
||||
@@ -76,11 +78,16 @@ void handoff_setup(void)
|
||||
atfhandoffparams->magic[2] = 'N';
|
||||
atfhandoffparams->magic[3] = 'X';
|
||||
|
||||
atfhandoffparams->num_entries = 1;
|
||||
atfhandoffparams->partition[0].entry_point = CONFIG_SYS_TEXT_BASE;
|
||||
atfhandoffparams->partition[0].flags = FSBL_FLAGS_EL2 <<
|
||||
FSBL_FLAGS_EL_SHIFT;
|
||||
atfhandoffparams->num_entries = 0;
|
||||
if (bl33_entry) {
|
||||
atfhandoffparams->partition[0].entry_point = bl33_entry;
|
||||
atfhandoffparams->partition[0].flags = FSBL_FLAGS_EL2 <<
|
||||
FSBL_FLAGS_EL_SHIFT;
|
||||
atfhandoffparams->num_entries++;
|
||||
}
|
||||
|
||||
writel(CONFIG_SPL_TEXT_BASE, &pmu_base->gen_storage6);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
@@ -46,8 +46,6 @@ struct zynqmp_ipi_msg {
|
||||
int zynq_board_read_rom_ethaddr(unsigned char *ethaddr);
|
||||
unsigned int zynqmp_get_silicon_version(void);
|
||||
|
||||
void handoff_setup(void);
|
||||
|
||||
int zynqmp_mmio_write(const u32 address, const u32 mask, const u32 value);
|
||||
int zynqmp_mmio_read(const u32 address, u32 *value);
|
||||
|
||||
|
@@ -120,8 +120,6 @@ u32 spl_boot_device(void)
|
||||
#ifdef CONFIG_SPL_OS_BOOT
|
||||
int spl_start_uboot(void)
|
||||
{
|
||||
handoff_setup();
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user