diff options
-rw-r--r-- | board/toradex/common/common.c | 32 | ||||
-rw-r--r-- | board/toradex/common/configblock.c | 25 |
2 files changed, 30 insertions, 27 deletions
diff --git a/board/toradex/common/common.c b/board/toradex/common/common.c index 30c8ebf8bd3..4cb3420240d 100644 --- a/board/toradex/common/common.c +++ b/board/toradex/common/common.c @@ -8,6 +8,8 @@ #include <common.h> #include <g_dnl.h> +static char trdx_serial_str[9]; + __weak int checkboard_fallback(void) { return 0; @@ -77,17 +79,43 @@ u32 get_board_rev(void) int checkboard(void) { #ifdef CONFIG_TRDX_CFG_BLOCK + unsigned char ethaddr[6]; + if (read_trdx_cfg_block()) { printf("Missing Toradex config block\n"); checkboard_fallback(); return 0; } - printf("Model: Toradex %s V%d.%d%c\n", + /* board serial-number */ + sprintf(trdx_serial_str, "%08u", trdx_serial); + setenv("serial#", trdx_serial_str); + + /* + * Check if environment contains a valid MAC address, + * set the one from config block if not + */ + if (!eth_getenv_enetaddr("ethaddr", ethaddr)) + eth_setenv_enetaddr("ethaddr", (u8 *)&trdx_eth_addr); + +#ifdef CONFIG_TRDX_CFG_BLOCK_2ND_ETHADDR + if (!eth_getenv_enetaddr("eth1addr", ethaddr)) { + /* + * Secondary MAC address is allocated from block + * 0x100000 higher then the first MAC address + */ + memcpy(ethaddr, &trdx_eth_addr, 6); + ethaddr[3] += 0x10; + eth_setenv_enetaddr("eth1addr", ethaddr); + } +#endif + + printf("Model: Toradex %s V%d.%d%c, Serial# %08u\n", toradex_modules[trdx_hw_tag.prodid], trdx_hw_tag.ver_major, trdx_hw_tag.ver_minor, - (char)trdx_hw_tag.ver_assembly + 'A'); + (char)trdx_hw_tag.ver_assembly + 'A', + trdx_serial); #else checkboard_fallback(); #endif diff --git a/board/toradex/common/configblock.c b/board/toradex/common/configblock.c index 11e2ba2b557..f007073e2ba 100644 --- a/board/toradex/common/configblock.c +++ b/board/toradex/common/configblock.c @@ -152,8 +152,6 @@ int read_trdx_cfg_block(void) struct toradex_tag *tag; size_t size = TRDX_CFG_BLOCK_MAX_SIZE; int offset; - unsigned char ethaddr[6]; - char serial[9]; /* Allocate RAM area for config block */ config_block = memalign(ARCH_DMA_MINALIGN, size); @@ -197,29 +195,6 @@ int read_trdx_cfg_block(void) /* NIC part of MAC address is serial number */ trdx_serial = ntohl(trdx_eth_addr.nic) >> 8; - - /* board serial-number */ - sprintf(serial, "%08u", trdx_serial); - setenv("serial#", serial); - - /* - * Check if environment contains a valid MAC address, - * set the one from config block if not - */ - if (!eth_getenv_enetaddr("ethaddr", ethaddr)) - eth_setenv_enetaddr("ethaddr", (u8 *)&trdx_eth_addr); - -#ifdef CONFIG_TRDX_CFG_BLOCK_2ND_ETHADDR - if (!eth_getenv_enetaddr("eth1addr", ethaddr)) { - /* - * Secondary MAC address is allocated from block - * 0x100000 higher then the first MAC address - */ - memcpy(ethaddr, &trdx_eth_addr, 6); - ethaddr[3] += 0x10; - eth_setenv_enetaddr("eth1addr", ethaddr); - } -#endif break; case TAG_HW: memcpy(&trdx_hw_tag, config_block + offset, 8); |