Hi Tom,

On 11/9/23 22:28, Tom Rini wrote:
On Wed, Nov 08, 2023 at 03:20:35PM +0100, Quentin Schulz wrote:

From: Quentin Schulz <quentin.sch...@theobroma-systems.com>

U-Boot proper automatically modifies boot_targets to swap the order in
which MMC storage media are used for standard boot based on which MMC
storage medium was used to load U-Boot proper. This is however only done
if the user has not changed it manually, therefore a check between the
default and current value is done.

This used to work fine until the migration to standard boot where
boot_targets value size in the default environment went above the 32
characters that env_get_default function can return, thus resulting in a
truncated variable.

Therefore the check between default and current value would always fail.

By using the newly added env_get_default_into function, a buffer of
the appropriate size can be allocated on the stack to get the whole
value of boot_targets in the default environment and thus fixing the
check.

Cc: Quentin Schulz <foss+ub...@0leil.net>
Signed-off-by: Quentin Schulz <quentin.sch...@theobroma-systems.com>
---
  board/theobroma-systems/ringneck_px30/ringneck-px30.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

This looks like what the puma-rk3399 is doing in 5/6. Can we have this
in a more common location? Or would there be a downside to that?


I can think of a few things, yes. Now wondering how far I want to push it :)

I could simply pass the DT paths to a function for eMMC/SD controller.

Or I could derive those from spl_boot_devices array in spl-boot-order.c and do everything automagically somehow.

Will try a v2 next week.

Cheers,
Quentin

Reply via email to