Message ID | 1565621860-30676-2-git-send-email-sagar.kadam@sifive.com |
---|---|
State | Accepted |
Commit | cba0635386df71f7f39d940938811fdf279f83d2 |
Delegated to: | Andes |
Headers | show |
Series | [U-Boot,U-BOOT,v1] riscv: sifive: fu540: set serial environment variable from otp | expand |
On Mon, Aug 12, 2019 at 10:58 PM Sagar Shrikant Kadam <sagar.kadam@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@sifive.com> > Reviewed-by: Anup Patel <anup@brainfault.org> > --- > board/sifive/fu540/fu540.c | 18 ++++++++++++++---- > 1 file changed, 14 insertions(+), 4 deletions(-) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
Hi Bin, On Mon, Aug 12, 2019 at 8:43 PM Bin Meng <bmeng.cn@gmail.com> wrote: > > On Mon, Aug 12, 2019 at 10:58 PM Sagar Shrikant Kadam > <sagar.kadam@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@sifive.com> > > Reviewed-by: Anup Patel <anup@brainfault.org> > > --- > > board/sifive/fu540/fu540.c | 18 ++++++++++++++---- > > 1 file changed, 14 insertions(+), 4 deletions(-) > > > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Tested-by: Bin Meng <bmeng.cn@gmail.com> Thanks for Reviewing and Testing the patch. Regards, Sagar
diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c index 11daf1a..47a2090 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[9] = {0}; + + /* Set ethaddr environment variable from board serial number */ + if (!env_get("serial#")) { + serial_num = fu540_read_serialnum(); + if (!serial_num) { + WARN(true, "Board serial number should not be 0 !!\n"); + return 0; + } + snprintf(buf, sizeof(buf), "%08x", serial_num); + env_set("serial#", buf); + fu540_setup_macaddr(serial_num); + } return 0; }