[PATCH] odroid_xu3: Fix board environment variable
Tom Rini
trini at konsulko.com
Mon Aug 14 17:15:21 CEST 2023
On Mon, Aug 07, 2023 at 10:18:33PM -0400, Ben Wolsieffer wrote:
> On Wed, Jun 08, 2022 at 02:30:14PM -0400, Tom Rini wrote:
> > When migrating CONFIG_CONS_INDEX to Kconfig, on this platform we changed
> > what "board" evaluated to in the environment. This in turn meant that
> > we would no longer try and find the correct fdtfile via the normal
> > distro boot logic. Fix this by overriding board in the default
> > environment, as done on other platforms where CONFIG_SYS_BOARD is not
> > what we want to be in the board environment variable.
> >
> > Fixes: f76750d11133 ("Convert CONFIG_CONS_INDEX et al to Kconfig")
> > Reported-by: Gabriel Hojda <ghojda at yo2urs.ro>
> > Tested-by: Gabriel Hojda <ghojda at yo2urs.ro>
> > Signed-off-by: Tom Rini <trini at konsulko.com>
> > ---
> > include/configs/odroid_xu3.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h
> > index eb35d7b4ae2d..360815bc03ee 100644
> > --- a/include/configs/odroid_xu3.h
> > +++ b/include/configs/odroid_xu3.h
> > @@ -86,6 +86,7 @@
> > "rootfstype=ext4\0" \
> > "console=console=ttySAC2,115200n8\0" \
> > "fdtfile=exynos5422-odroidxu3.dtb\0" \
> > + "board=odroid\0" \
> > "board_name=odroidxu3\0" \
> > "mmcbootdev=0\0" \
> > "mmcrootdev=0\0" \
> > --
> > 2.25.1
> >
>
> Hi Tom,
>
> This patch doesn't appear to have fixed the issue. There is a report
> from Debian of it occuring even after this patch was applied [1], and I
> ran into it today as well with 2023.07.02.
>
> I looked into it a bit, and the problem seems to be that
> set_board_info() constructs the fdtfile variable using CONFIG_SYS_BOARD,
> so setting the correct value of the board variable has no effect. I
> think either set_board_info() needs to construct fdtfile differently, or
> things need to be restructured to allow CONFIG_SYS_BOARD to be set as
> "odroid".
>
> I would submit a patch, but I'm not sure of the right approach to take,
> and I would appreciate your help.
Thanks for the detailed report. I believe the problem is that
board/samsung/common/misc.c::set_board_info() should be doing a lot more
checks for if the environment variable is already set, before
over-riding them. This is typically done around ethaddr (so there's a
number of examples to look at) and in this case I think everything other
than soc_rev / soc_id should have a check before blindly overwriting.
However, just checking for board_name / fdtfile already being set
before setting them is enough to fix this problem I think.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230814/7dc9eddf/attachment.sig>
More information about the U-Boot
mailing list