[PATCH] arm: socfpga: arria10: Add save_boot_params()
Marek Vasut
marex at denx.de
Sun Mar 1 16:12:00 CET 2020
On 2/26/20 8:01 PM, Ley Foon Tan wrote:
[...]
> +#define BOOTROM_SHARED_MEM_ADDR (CONFIG_SYS_INIT_RAM_ADDR + 0x40000 \
> + - 0x800)
> +#define RST_STATUS_SHARED_ADDR (BOOTROM_SHARED_MEM_ADDR + 0x438)
Are all these magic values needed or is there some more descriptive
macro name available for them ?
> +u32 rst_mgr_status __section(.data);
static u32 ... ?
> +
> +/*
> + * Bootrom will clear the status register in reset manager and stores the
> + * reset status value in shared memory. Bootrom stores shared data at last
> + * 2KB of onchip RAM.
> + * This function save reset status provided by BootROM to rst_mgr_status.
> + * More information about reset status register value can be found in reset
> + * manager register description.
> + * When running in debugger without Bootrom, r0 to r3 are random values.
> + * So, skip save the value when r0 is not BootROM shared data address.
> + *
> + * r0 - Contains the pointer to the shared memory block. The shared
> + * memory block is located in the top 2 KB of on-chip RAM.
> + * r1 - contains the length of the shared memory.
> + * r2 - unused and set to 0x0.
> + * r3 - points to the version block.
> + */
> +void save_boot_params(unsigned long r0, unsigned long r1, unsigned long r2,
> + unsigned long r3)
> +{
> + if (r0 == BOOTROM_SHARED_MEM_ADDR)
> + rst_mgr_status = readl(RST_STATUS_SHARED_ADDR);
> +
> + save_boot_params_ret();
> +}
> +
> u32 spl_boot_device(void)
> {
> const u32 bsel = readl(socfpga_get_sysmgr_addr() + SYSMGR_A10_BOOTINFO);
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list