Message ID | 20190325161829.7888-3-marcel@ziswiler.com |
---|---|
State | Accepted |
Commit | 43bfc499925ee1f49355974409808a227cb4f9a0 |
Delegated to: | Stefano Babic |
Headers | show |
Series | toradex: common: fix/improve config block handling | expand |
Reviewed-by: Igor Opaniuk <igor.opaniuk@toradex.com> On Mon, Mar 25, 2019 at 6:19 PM Marcel Ziswiler <marcel@ziswiler.com> wrote: > > From: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> > > If the config block is missing, various things may fail or behave > strangely on certain modules. This patch unifies that behaviour by > using a fake MAC address, until user updates the config block. > > Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com> > Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> > > --- > > Changes in v2: > - Introduced a define for the Toradex OUI ("0x00142dUL") as suggested by > Igor. > - Removed redundant comment as suggested by Igor. > > board/toradex/common/tdx-common.c | 34 ++++++++++++++++--------------- > 1 file changed, 18 insertions(+), 16 deletions(-) > > diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c > index fde230c955..2d560cceaf 100644 > --- a/board/toradex/common/tdx-common.c > +++ b/board/toradex/common/tdx-common.c > @@ -12,6 +12,8 @@ > #include <asm/setup.h> > #include "tdx-common.h" > > +#define TORADEX_OUI 0x00142dUL > + > #ifdef CONFIG_TDX_CFG_BLOCK > static char tdx_serial_str[9]; > static char tdx_board_rev_str[6]; > @@ -68,20 +70,25 @@ int show_board_info(void) > unsigned char ethaddr[6]; > > if (read_tdx_cfg_block()) { > - printf("Missing Toradex config block\n"); > + printf("MISSING TORADEX CONFIG BLOCK\n"); > + tdx_eth_addr.oui = htonl(TORADEX_OUI << 8); > + tdx_eth_addr.nic = htonl(tdx_serial << 8); > checkboard(); > - return 0; > + } else { > + sprintf(tdx_serial_str, "%08u", tdx_serial); > + sprintf(tdx_board_rev_str, "V%1d.%1d%c", > + tdx_hw_tag.ver_major, > + tdx_hw_tag.ver_minor, > + (char)tdx_hw_tag.ver_assembly + 'A'); > + > + env_set("serial#", tdx_serial_str); > + > + printf("Model: Toradex %s %s, Serial# %s\n", > + toradex_modules[tdx_hw_tag.prodid], > + tdx_board_rev_str, > + tdx_serial_str); > } > > - /* board serial-number */ > - sprintf(tdx_serial_str, "%08u", tdx_serial); > - sprintf(tdx_board_rev_str, "V%1d.%1d%c", > - tdx_hw_tag.ver_major, > - tdx_hw_tag.ver_minor, > - (char)tdx_hw_tag.ver_assembly + 'A'); > - > - env_set("serial#", tdx_serial_str); > - > /* > * Check if environment contains a valid MAC address, > * set the one from config block if not > @@ -101,11 +108,6 @@ int show_board_info(void) > } > #endif > > - printf("Model: Toradex %s %s, Serial# %s\n", > - toradex_modules[tdx_hw_tag.prodid], > - tdx_board_rev_str, > - tdx_serial_str); > - > return 0; > } > > -- > 2.20.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c index fde230c955..2d560cceaf 100644 --- a/board/toradex/common/tdx-common.c +++ b/board/toradex/common/tdx-common.c @@ -12,6 +12,8 @@ #include <asm/setup.h> #include "tdx-common.h" +#define TORADEX_OUI 0x00142dUL + #ifdef CONFIG_TDX_CFG_BLOCK static char tdx_serial_str[9]; static char tdx_board_rev_str[6]; @@ -68,20 +70,25 @@ int show_board_info(void) unsigned char ethaddr[6]; if (read_tdx_cfg_block()) { - printf("Missing Toradex config block\n"); + printf("MISSING TORADEX CONFIG BLOCK\n"); + tdx_eth_addr.oui = htonl(TORADEX_OUI << 8); + tdx_eth_addr.nic = htonl(tdx_serial << 8); checkboard(); - return 0; + } else { + sprintf(tdx_serial_str, "%08u", tdx_serial); + sprintf(tdx_board_rev_str, "V%1d.%1d%c", + tdx_hw_tag.ver_major, + tdx_hw_tag.ver_minor, + (char)tdx_hw_tag.ver_assembly + 'A'); + + env_set("serial#", tdx_serial_str); + + printf("Model: Toradex %s %s, Serial# %s\n", + toradex_modules[tdx_hw_tag.prodid], + tdx_board_rev_str, + tdx_serial_str); } - /* board serial-number */ - sprintf(tdx_serial_str, "%08u", tdx_serial); - sprintf(tdx_board_rev_str, "V%1d.%1d%c", - tdx_hw_tag.ver_major, - tdx_hw_tag.ver_minor, - (char)tdx_hw_tag.ver_assembly + 'A'); - - env_set("serial#", tdx_serial_str); - /* * Check if environment contains a valid MAC address, * set the one from config block if not @@ -101,11 +108,6 @@ int show_board_info(void) } #endif - printf("Model: Toradex %s %s, Serial# %s\n", - toradex_modules[tdx_hw_tag.prodid], - tdx_board_rev_str, - tdx_serial_str); - return 0; }