[PATCH] fdt_support: add optional board_rng_seed() hook

Rasmus Villemoes rasmus.villemoes at prevas.dk
Tue Aug 23 16:06:36 CEST 2022


On 23/08/2022 15.38, Simon Glass wrote:

>> +/**
>> + * board_rng_seed() - Provide a seed to be passed via /chosen/rng-seed
>> + *
>> + * This function is called if CONFIG_BOARD_RNG_SEED is set, and must
>> + * be provided by the board. It should return, via @buf, some suitable
>> + * seed value to pass to the kernel.
>> + *
>> + * @param buf         A struct abuf for returning the seed and its size.
>> + * @return            0 if ok, negative on error.
>> + */
>> +int board_rng_seed(struct abuf *buf);
> 
> Instead of yet another hook, can we use EVT_FT_FIXUP? An even better
> option might be to use EVT_FT_FIXUP and then call a UCLASS_BOARD
> method to obtain the information.

I didn't know there was anything called EVT_FT_FIXUP, and from grepping,
it seems suffer the same problem as ft_board_setup() as I mention,
namely running after the command line (aka /chosen/bootargs) has been
set up.

Also, I can't see how it can actually affect the blob being passed to
the kernel, doesn't

                fixup.tree = oftree_default();
                ret = event_notify(EVT_FT_FIXUP, &fixup, sizeof(fixup));

mean that fixup.tree points at U-Boot's control fdt rather than the blob
that will be passed as the kernel's fdt? That seems wrong.

Rasmus


More information about the U-Boot mailing list