
Hello Tom,
On Thu, Feb 4, 2021 at 6:06 PM Tom Rini trini@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@sartura.hr Cc: Luka Perkov luka.perkov@sartura.hr Cc: Robert Marko robert.marko@sartura.hr
So, the implementation itself is fine:
Reviewed-by: Tom Rini trini@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.
I've also compared the resulting u-boot.bin binary size with and without the patch and the difference is about 40 bytes.
-- Tom
Kind regards, Luka