summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2015-05-09 12:01:21 +0200
committerStefan Agner <stefan.agner@toradex.com>2015-05-09 12:01:21 +0200
commit1f6e33606ff7b6438f629853800cb40f63fbdfcd (patch)
tree88a2864d849ae62a02472cab47c07397896af076
parent2da77958e96151295e72f8f85aee352d0b4010fe (diff)
toradex: configblock: move environment config to common
Move setting of environment variables to common code. This prepares for further enhancements which will enhance the device tree with module specific information from the configblock.
-rw-r--r--board/toradex/common/common.c32
-rw-r--r--board/toradex/common/configblock.c25
2 files changed, 30 insertions, 27 deletions
diff --git a/board/toradex/common/common.c b/board/toradex/common/common.c
index 30c8ebf8bd..4cb3420240 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 11e2ba2b55..f007073e2b 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);