summaryrefslogtreecommitdiff
path: root/board/toradex/common/configblock.c
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2014-12-19 13:54:40 +0100
committerStefan Agner <stefan.agner@toradex.com>2014-12-19 13:54:40 +0100
commitf7e57f71da1eecbf1ac28339868d15492c929925 (patch)
treec7b6cf430f5bbc893a5f230f6695a387c536062f /board/toradex/common/configblock.c
parentd69e7bbceb14e09f0af2cddeb68ee5734a1c2d45 (diff)
Set USB vendor and product ID of the module when using DFU. This allows to identify the module over USB and act accordingly if necessary (e.g. flash different version or root filesystem or similar use cases). Also the serial number of the USB device is visible by using the lsusb utility: $ lsusb -d 1b67: -v Bus 002 Device 092: ID 1b67:0018 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 2 Abstract (modem) bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1b67 idProduct 0x0018 bcdDevice 2.21 iManufacturer 1 Toradex iProduct 2 USB download gadget iSerial 3 4799890 ...
Diffstat (limited to 'board/toradex/common/configblock.c')
-rw-r--r--board/toradex/common/configblock.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/board/toradex/common/configblock.c b/board/toradex/common/configblock.c
index 0d333d5a67..7843e0aa8b 100644
--- a/board/toradex/common/configblock.c
+++ b/board/toradex/common/configblock.c
@@ -186,4 +186,33 @@ err:
config_block = NULL;
return err;
}
+
+void get_board_serial_char(char *serialnr)
+{
+ unsigned int serial = 0;
+ unsigned int serial_offset = 11;
+
+ if (config_block == NULL) {
+ strcpy(serialnr, "UNKNOWN");
+ return;
+ }
+
+ /* Get MAC address from config block */
+ memcpy(&serial, config_block + serial_offset, 3);
+ serial = ntohl(serial);
+ serial >>= 8;
+
+ sprintf(serialnr, "%u", serial);
+}
+
+void get_board_product_number(unsigned short *prodnr)
+{
+ unsigned int prodnr_offset = 25;
+
+ if (config_block == NULL)
+ return;
+
+ memcpy(prodnr, config_block + prodnr_offset, 2);
+ *prodnr = ntohs(*prodnr);
+}
#endif /* CONFIG_TRDX_CFG_BLOCK */