toradex: configblock: move environment config to common
authorStefan Agner <stefan.agner@toradex.com>
Sat, 9 May 2015 10:01:21 +0000 (12:01 +0200)
committerStefan Agner <stefan.agner@toradex.com>
Sat, 9 May 2015 10:01:21 +0000 (12:01 +0200)
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.

board/toradex/common/common.c
board/toradex/common/configblock.c

index 30c8ebf8bd37cf19aa050602c37091601b3313cb..4cb3420240d4c6b936a5ee9fa82fd11b16a8d2ea 100644 (file)
@@ -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
index 11e2ba2b5578350ed0a2b3fe25645bf25dec9f8d..f007073e2baad7bd66f5882688817de7ada243d0 100644 (file)
@@ -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);