[U-Boot] [U-BOOT PATCH] riscv: sifive: fu540: set serial environment variable from otp

Sagar Kadam sagar.kadam at sifive.com
Mon Aug 12 14:54:07 UTC 2019


Hi Bin,

On Mon, Aug 12, 2019 at 2:34 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> 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.
>

Thanks for your suggestions, I will incorporate these in the next
version of this patch.

BR,
Sagar Kadam
> > +                       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