On 22/07/2026 09:41, Varadarajan Narayanan wrote:
> Update the SMEM with the boot device information got from the boot rom.
> 
> Reviewed-by: Balaji Selvanathan <[email protected]>
> Reviewed-by: Simon Glass <[email protected]>
> Signed-off-by: Varadarajan Narayanan <[email protected]>
> ---
>  arch/arm/mach-snapdragon/board_spl.c | 46 
> ++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/arch/arm/mach-snapdragon/board_spl.c 
> b/arch/arm/mach-snapdragon/board_spl.c
> index 6ae59481ba9..69a32e5d8cf 100644
> --- a/arch/arm/mach-snapdragon/board_spl.c
> +++ b/arch/arm/mach-snapdragon/board_spl.c
> @@ -85,3 +85,49 @@ u32 spl_boot_device(void)
>       pr_err("No boot device configured\n");
>       return BOOT_DEVICE_NONE;
>  }
> +
> +#if IS_ENABLED(CONFIG_SPL_SMEM)
> +/**
> + * qcom_spl_populate_smem() - Populate shared memory (SMEM) information.
> + * @ctx:     Pointer to the global SPL context.
> + *
> + * This function initializes and populates various SMEM items with 
> boot-related
> + * information, such as flash type, try-mode status, and ATF enable status.

ATF? what? where?

> + * Return: 0 on success, or a negative error code on failure.
> + */
> +static int qcom_spl_populate_smem(void *ctx)
> +{
> +     int ret;
> +     size_t size;
> +     struct udevice *smem;
> +     u32 *fltype;
> +
> +     ret = uclass_get_device(UCLASS_SMEM, 0, &smem);

still not rebased on qcom-next
> +     if (ret) {
> +             pr_err("Failed to find SMEM node (%d)\n", ret);
> +             return ret;
> +     }
> +
> +     size = sizeof(u32);
> +     ret = smem_alloc(smem, -1, SMEM_BOOT_FLASH_TYPE, size);
> +     if (ret) {
> +             pr_err("Failed to alloc item: SMEM_BOOT_FLASH_TYPE (%d)\n", 
> ret);
> +             return ret;
> +     }
> +
> +     fltype = (u32 *)smem_get(smem, -1, SMEM_BOOT_FLASH_TYPE, &size);
> +     if (!fltype) {
> +             pr_err("Failed to get item: SMEM_BOOT_FLASH_TYPE\n");
> +             return -ENOENT;
> +     }
> +
> +     if (IS_ENABLED(CONFIG_SPL_MMC)) {
> +             *fltype = SMEM_BOOT_MMC_FLASH;

missing wmb() ?

> +             return 0;
> +     }
> +
> +     pr_err("Boot medium not specified\n");
> +
> +     return -ENOENT;
> +}
> +#endif /* IS_ENABLED(CONFIG_SPL_SMEM) */
> 

-- 
// Casey (she/her)

Reply via email to