[U-Boot] [U-BOOT PATCH] riscv: sifive: fu540: set serial environment variable from otp
Bin Meng
bmeng.cn at gmail.com
Mon Aug 12 09:03:54 UTC 2019
On Mon, Aug 12, 2019 at 2:42 PM Sagar Shrikant Kadam
<sagar.kadam at sifive.com> wrote:
>
> This patch sets the serial# environment variable by reading the
> board serial number from the OTP memory region.
>
> Signed-off-by: Sagar Shrikant Kadam <sagar.kadam at sifive.com>
> ---
> board/sifive/fu540/fu540.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c
> index 11daf1a..06bf442 100644
> --- a/board/sifive/fu540/fu540.c
> +++ b/board/sifive/fu540/fu540.c
> @@ -122,10 +122,20 @@ static void fu540_setup_macaddr(u32 serialnum)
>
> int misc_init_r(void)
> {
> - /* Set ethaddr environment variable if not set */
> - if (!env_get("ethaddr"))
> - fu540_setup_macaddr(fu540_read_serialnum());
> -
> + u32 serial_num;
> + char buf[11] = {0};
buf[9] should be enough.
> +
> + /* Set ethaddr environment variable from board serial number */
> + if (!env_get("serial#")) {
> + serial_num = fu540_read_serialnum();
> + if (!serial_num) {
> + WARN(1, "Board serial number should not be 0 !!");
nits: please use true instead of 1, and adding a '\n' at the end.
> + return 0;
> + }
> + snprintf(buf, sizeof(buf), "%08x", serial_num);
> + env_set("serial#", buf);
> + fu540_setup_macaddr(serial_num);
> + }
> return 0;
> }
Regards,
Bin
More information about the U-Boot
mailing list