[PATCH 1/3] cmd: env: Add 'env import -h' for Marvell hw_info formatted environments
Luka Kovacic
luka.kovacic at sartura.hr
Fri Feb 5 23:51:10 CET 2021
On Fri, Feb 5, 2021 at 11:40 PM Tom Rini <trini at konsulko.com> wrote:
>
> On Fri, Feb 05, 2021 at 11:36:25PM +0100, Luka Kovacic wrote:
> > On Fri, Feb 5, 2021 at 11:04 PM Tom Rini <trini at konsulko.com> wrote:
> > >
> > > On Fri, Feb 05, 2021 at 11:02:23PM +0100, Luka Kovacic wrote:
> > > > Hello Tom,
> > > >
> > > > On Thu, Feb 4, 2021 at 6:06 PM Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > On Thu, Feb 04, 2021 at 11:46:35AM +0100, Luka Kovacic wrote:
> > > > >
> > > > > > The '-h' flag is added to the 'env import' command to enable parsing
> > > > > > Marvell hw_info formatted environments.
> > > > > > This format is often used on Marvell Armada A37XX based devices to store
> > > > > > parameters like the board serial number, factory MAC addresses and some
> > > > > > other information.
> > > > > >
> > > > > > Currently this environment format can only be imported, not exported.
> > > > > > These parameters are usually written to the flash in the factory.
> > > > > >
> > > > > > This functionality has been tested on the GST ESPRESSOBin-Ultra board
> > > > > > successfully.
> > > > > >
> > > > > > Usage example:
> > > > > > => sf probe
> > > > > > => sf read ${loadaddr} 0x003E000A 0x1F0 # Read the environment from
> > > > > > SPI flash
> > > > > > => env import -h ${loadaddr}
> > > > > >
> > > > > > Signed-off-by: Luka Kovacic <luka.kovacic at sartura.hr>
> > > > > > Cc: Luka Perkov <luka.perkov at sartura.hr>
> > > > > > Cc: Robert Marko <robert.marko at sartura.hr>
> > > > >
> > > > > So, the implementation itself is fine:
> > > > >
> > > > > Reviewed-by: Tom Rini <trini at konsulko.com>
> > > > >
> > > > > And I take it as a given that we can't get the boards populated with an
> > > > > existing separator, so we need to solve this somehow or another. I am
> > > > > however loathe to increase every platform by a handful of bytes (help
> > > > > text, code text) to cover this case, and adding #ifdef around the help
> > > > > text in particular would be very ugly. Is there any clean way to write
> > > > > this as a board-specific command? I assume the overall intention is to
> > > > > import the factory env for the required information, store it in regular
> > > > > U-Boot environment and then never touch the factory area again. Thanks!
> > > >
> > > > I have already considered the possibility of implementing this in a
> > > > board-specific way, but I tried implementing it here to avoid unnecessary
> > > > code duplication.
> > > > You are correct, the intention is to use this functionality as a migration
> > > > path. It's good to keep the factory area intact, in case it's still needed in
> > > > the future.
> > > > The Marvell hw_info area is limited to MACs and serial numbers by the
> > > > stock utility.
> > >
> > > OK. And can we put this in the board-specific path somehow, relatively
> > > cleanly?
> >
> > I've been thinking about the following options:
> > - Implementing a separate command under cmd/mvebu (hw_info), like done
> > in the stock U-Boot.
> > I'm not inclined to this one, as I don't see real utility in updating
> > this factory
> > area. A positive with this one is that it abstracts reading of the SPI flash.
> >
> > - No command, automatic migration, directly from the SPI flash (implemented
> > in the board.c file.
> > I don't see this as a clean way of doing it, the Armada A37XX board.c is
> > already quite full of board-specific init.
> >
> > - Implemented as is, but with #ifdef
> > This would break CONFIG_CMD_IMPORTENV into smaller pieces.
> > #ifdef wouldn't look too bad around the code, only the inline string changes
> > would be ugly.
> >
> > What would you recommend?
>
> I hate to say it but I prefer the first, especially if it ends up being
> like 50 lines of code or whatever to write the function and all that.
> Or the second option, if the first option really ends up being messy
> once you write it and the second one less messy. Thanks!
Okay, I agree.
I think the first option should end up cleaner than both other options.
I'll do it this way.
>
> --
> Tom
Kind regards,
Luka
More information about the U-Boot
mailing list