From adf9a7bb274f4f573ea2a196bc2d360505c0e255 Mon Sep 17 00:00:00 2001 From: Patrick Murphy Date: Wed, 24 Mar 2021 06:58:47 -0500 Subject: added dc_board EEPROM support --- src/eeprom_main.c | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 158 insertions(+), 3 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index d8a81e8..81caa84 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -33,6 +33,7 @@ #include #ifdef MTCDT3B #include +#include #endif #include "log.h" @@ -44,9 +45,9 @@ static int eeprom_size = 512; static void mts_id_eeprom_inspect(struct mts_id_eeprom_layout *id_eeprom); static void mts_ap_eeprom_inspect(struct mts_ap_eeprom_layout *ap_eeprom); - #ifdef MTCDT3B static void mtcdt3b_eeprom_inspect(struct mtcdt3b_eeprom_layout *mtcdt3b_eeprom); +static void mtcdt3dc_eeprom_inspect(struct mtcdt3dc_eeprom_layout *mtcdt3dc_eeprom); #endif //Returns 0 on success, 1 on failure @@ -331,6 +332,37 @@ static int mtcdt3b_yaml_out(const char *name, struct mtcdt3b_eeprom_layout *mtcd return 0; } + +static int mtcdt3dc_yaml_out(const char *name, struct mtcdt3dc_eeprom_layout *mtcdt3dc_eeprom) +{ + FILE *file; + + if (!strcmp(name, "-")) { + file = stdout; + } else { + file = fopen(name, "w+"); + if (!file) { + log_error("could not open %s: %m", name); + return -1; + } + } + + fprintf(file, "---\n"); + fprintf(file, "\n"); + fprintf(file, "vendor-id: \"%.32s\"\n", mtcdt3dc_eeprom->vendor_id); + fprintf(file, "product-id: \"%.32s\"\n", mtcdt3dc_eeprom->product_id); + fprintf(file, "capa-mei-serial: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); + fprintf(file, "capa-mtac: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); + fprintf(file, "mei-serial count: %hu\n", mtcdt3dc_eeprom->serial_cnt); + fprintf(file, "mtac count: %hu\n", mtcdt3dc_eeprom->mtac_cnt); + + fprintf(file, "...\n"); + fclose(file); + + return 0; + +} + #endif static int bin_out(const char *name, char *eeprom) @@ -504,6 +536,16 @@ static void mtcdt3b_eeprom_inspect(struct mtcdt3b_eeprom_layout *mtcdt3b_eeprom) mtcdt3b_eeprom->mac_eth_switch[4], mtcdt3b_eeprom->mac_eth_switch[5]); } + +static void mtcdt3dc_eeprom_inspect(struct mtcdt3dc_eeprom_layout *mtcdt3dc_eeprom) +{ + log_info("vendor-id: %.32s", mtcdt3dc_eeprom->vendor_id); + log_info("product-id: %.32s", mtcdt3dc_eeprom->product_id); + log_info("capa-mei-serial: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); + log_info("capa-mtac: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); + log_info("mei-serial count: %hu", mtcdt3dc_eeprom->serial_cnt); + log_info("mtac count: %hu", mtcdt3dc_eeprom->mtac_cnt); +} #endif static void print_version(const char *name) { @@ -550,8 +592,13 @@ static void usage(FILE *out) { fprintf(out, " --accessory-card\n"); #ifdef MTCDT3B fprintf(out, " --base-board\n"); + fprintf(out, " --sub-board\n"); fprintf(out, " --slot i=0,device-id=,lora-eui=,i=1,...\n"); fprintf(out, " --capa-eth-switch \n"); + fprintf(out, " --capa-mtac \n"); + fprintf(out, " --capa-serial \n"); + fprintf(out, " --mtac-count \n"); + fprintf(out, " --serial-count \n"); fprintf(out, " --eth-switch-version \n"); fprintf(out, " --eth-switch-mac-addr \n"); #endif @@ -590,10 +637,15 @@ enum { CMD_OPT_ACCESSORY_CARD, #ifdef MTCDT3B CMD_OPT_BASE_BOARD, + CMD_OPT_DC_BOARD, CMD_OPT_SLOTS, CMD_OPT_CAPA_ETH_SWITCH, CMD_OPT_ETH_SWITCH_VERSION, CMD_OPT_ETH_SWITCH_MAC_ADDR, + CMD_OPT_CAPA_MTAC, + CMD_OPT_CAPA_SERIAL, + CMD_OPT_NUM_MTAC, + CMD_OPT_NUM_SERIAL, #endif CMD_OPT_VERSION, CMD_OPT_HELP, @@ -633,8 +685,13 @@ static struct option long_options[] = { {"accessory-card", 0, NULL, CMD_OPT_ACCESSORY_CARD}, #ifdef MTCDT3B {"base-board", 0, NULL, CMD_OPT_BASE_BOARD}, + {"sub-board", 0, NULL, CMD_OPT_DC_BOARD}, {"slots", 1, NULL, CMD_OPT_SLOTS}, {"capa-eth-switch", 0, NULL, CMD_OPT_CAPA_ETH_SWITCH}, + {"capa-mtac", 0, NULL, CMD_OPT_CAPA_MTAC}, + {"capa-serial", 0, NULL, CMD_OPT_CAPA_SERIAL}, + {"mtac-count", 1, NULL, CMD_OPT_NUM_MTAC}, + {"serial-count", 1, NULL, CMD_OPT_NUM_SERIAL}, {"eth-switch-version", 1, NULL, CMD_OPT_ETH_SWITCH_VERSION}, {"eth-switch-mac-addr", 1, NULL, CMD_OPT_ETH_SWITCH_MAC_ADDR}, #endif @@ -669,6 +726,7 @@ int main(int argc, char *argv[]) { int accessory_card = 0; #ifdef MTCDT3B int base_board = 0; + int dc_board = 0; char *slots = NULL; #endif char *vendor_id = NULL; @@ -690,6 +748,14 @@ int main(int argc, char *argv[]) { eeprom_size,sizeof mtcdt3b_eeprom); exit(1); } + + struct mtcdt3dc_eeprom_layout mtcdt3dc_eeprom; + memset (&mtcdt3dc_eeprom, 0, eeprom_size); + if (sizeof mtcdt3dc_eeprom != eeprom_size) { + fprintf(stderr, "Internal error:\n mtcdt3dc_eeprom is not the correct size: expecdted %d, but %d is defined for the part\n", + eeprom_size,sizeof mtcdt3dc_eeprom); + exit(1); + } #endif memset(&id_eeprom, 0, eeprom_size); @@ -713,6 +779,10 @@ int main(int argc, char *argv[]) { case CMD_OPT_BASE_BOARD: base_board = 1; break; + + case CMD_OPT_DC_BOARD: + dc_board = 1; + break; #endif case CMD_OPT_VERSION: @@ -741,8 +811,11 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B } else if (base_board) { tmp = read(fd, (char *) &mtcdt3b_eeprom, eeprom_size); + + } else if (dc_board) { + tmp = read(fd, (char *) &mtcdt3dc_eeprom, eeprom_size); #endif - } else { + } else { tmp = read(fd, (char *) &id_eeprom, eeprom_size); } @@ -761,6 +834,8 @@ int main(int argc, char *argv[]) { } else if (base_board) { log_info("loaded ap eeprom from %s successfully", in_file); mtcdt3b_eeprom_inspect(&mtcdt3b_eeprom); + } else if (dc_board) { + mtcdt3dc_eeprom_inspect(&mtcdt3dc_eeprom); #endif } else { log_info("loaded id eeprom from %s successfully", in_file); @@ -794,6 +869,11 @@ int main(int argc, char *argv[]) { case CMD_OPT_BASE_BOARD: // handled above break; + + case CMD_OPT_DC_BOARD: + // handled above + break; + case CMD_OPT_SLOTS: // concatenate slots arguments if (base_board) { @@ -933,6 +1013,18 @@ int main(int argc, char *argv[]) { #endif DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA); break; +#ifdef MTCDT3B + case CMD_OPT_CAPA_MTAC: + if (dc_board) { + DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_MTAC); + break; + } + case CMD_OPT_CAPA_SERIAL: + if (dc_board) { + DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_SERIAL); + break; + } +#endif case CMD_OPT_CAPA_BATTERY: DEVICE_CAPA_SET(id_eeprom.capa, CAPA_BATTERY); break; @@ -994,8 +1086,9 @@ int main(int argc, char *argv[]) { exit(1); } mtcdt3b_eeprom.hw_version_eth_switch = u16; + break; } - break; + case CMD_OPT_ETH_SWITCH_MAC_ADDR: if (base_board) { tmp = hwaddr_aton(optarg, mtcdt3b_eeprom.mac_eth_switch, sizeof(mtcdt3b_eeprom.mac_eth_switch)); @@ -1004,6 +1097,40 @@ int main(int argc, char *argv[]) { usage(stderr); exit(1); } + break; + } + + case CMD_OPT_NUM_MTAC: + if (dc_board) { + uint16_t u16_mtac_test; + if (sscanf(optarg, "%hu", &u16_mtac_test) != 1) { + log_error("invalid mtac count %s", optarg); + usage(stderr); + exit(1); + } + if (u16_mtac_test < MTAC_MIN || u16_mtac_test >MTAC_MAX) { + log_error("invalid mtac count %s", optarg); + usage(stderr); + exit(1); + } + mtcdt3dc_eeprom.mtac_cnt = u16_mtac_test; + } + break; + + case CMD_OPT_NUM_SERIAL: + if (dc_board) { + uint16_t u16_serial_test; + if (sscanf(optarg, "%hu", &u16_serial_test) !=1) { + log_error("invalid serial count %s", optarg); + usage(stderr); + exit(1); + } + if (u16_serial_test < SERIAL_MIN || u16_serial_test > SERIAL_MAX) { + log_error("invalid serial count %s", optarg); + usage(stderr); + exit(1); + } + mtcdt3dc_eeprom.serial_cnt = u16_serial_test; } break; #endif @@ -1018,6 +1145,11 @@ int main(int argc, char *argv[]) { memset(mtcdt3b_eeprom.capa, 0, sizeof(mtcdt3b_eeprom.capa)); capa_clear = 0; } + + if(dc_board && capa_clear) { + memset(mtcdt3dc_eeprom.capa, 0, sizeof(mtcdt3dc_eeprom.capa)); + capa_clear = 0; + } #endif if(capa_clear) { @@ -1035,6 +1167,9 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,vendor_id) + + else if (dc_board) + EEPROM_SET(mtcdt3dc_eeprom,vendor_id) #endif else EEPROM_SET(id_eeprom,vendor_id) @@ -1045,6 +1180,10 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,product_id) + + else if (dc_board) + EEPROM_SET(mtcdt3dc_eeprom,product_id) + #endif else EEPROM_SET(id_eeprom,product_id) @@ -1055,6 +1194,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,device_id) + #endif else EEPROM_SET(id_eeprom,device_id) @@ -1065,6 +1205,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,hw_version) + #endif else EEPROM_SET(id_eeprom,hw_version) @@ -1076,6 +1217,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if(base_board) tmp = hwaddr_aton(mac_addr, mtcdt3b_eeprom.mac_addr, sizeof(mtcdt3b_eeprom.mac_addr)); + #endif else tmp = hwaddr_aton(mac_addr, id_eeprom.mac_addr, sizeof(id_eeprom.mac_addr)); @@ -1096,6 +1238,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,lora_product_id) + #endif else EEPROM_SET(id_eeprom,lora_product_id) @@ -1111,6 +1254,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,lora_hw_version) + #endif else EEPROM_SET(id_eeprom,lora_hw_version) @@ -1124,6 +1268,7 @@ int main(int argc, char *argv[]) { usage(stderr); exit(1); } + #endif else tmp = hwaddr_aton(lora_eui, id_eeprom.lora_eui, sizeof(id_eeprom.lora_eui)); @@ -1233,6 +1378,9 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) bin_out(out_file, (char*) &mtcdt3b_eeprom); + + else if (dc_board) + bin_out(out_file, (char*) &mtcdt3dc_eeprom); #endif else { id_eeprom.eeprom_layout_version = EEPROM_LAYOUT_VERSION; @@ -1244,6 +1392,9 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) mtcdt3b_yaml_out(out_file, &mtcdt3b_eeprom); + + else if (dc_board) + mtcdt3dc_yaml_out(out_file, &mtcdt3dc_eeprom); #endif else id_yaml_out(out_file, &id_eeprom); @@ -1260,6 +1411,9 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) mtcdt3b_eeprom_inspect(&mtcdt3b_eeprom); + + else if (dc_board) + mtcdt3dc_eeprom_inspect(&mtcdt3dc_eeprom); #endif else mts_id_eeprom_inspect(&id_eeprom); @@ -1269,3 +1423,4 @@ int main(int argc, char *argv[]) { return 0; } + -- cgit v1.2.3 From 1eed1378127cfb554f69cfde87e324de73b50d20 Mon Sep 17 00:00:00 2001 From: Patrick Murphy Date: Wed, 24 Mar 2021 10:52:14 -0500 Subject: moved break statements from within if statements to outside. fixed a typo on line 755 --- src/eeprom_main.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 81caa84..a29bf72 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -752,7 +752,7 @@ int main(int argc, char *argv[]) { struct mtcdt3dc_eeprom_layout mtcdt3dc_eeprom; memset (&mtcdt3dc_eeprom, 0, eeprom_size); if (sizeof mtcdt3dc_eeprom != eeprom_size) { - fprintf(stderr, "Internal error:\n mtcdt3dc_eeprom is not the correct size: expecdted %d, but %d is defined for the part\n", + fprintf(stderr, "Internal error:\n mtcdt3dc_eeprom is not the correct size: expected %d, but %d is defined for the part\n", eeprom_size,sizeof mtcdt3dc_eeprom); exit(1); } @@ -1017,13 +1017,14 @@ int main(int argc, char *argv[]) { case CMD_OPT_CAPA_MTAC: if (dc_board) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_MTAC); - break; } + break; + case CMD_OPT_CAPA_SERIAL: if (dc_board) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_SERIAL); - break; } + break; #endif case CMD_OPT_CAPA_BATTERY: DEVICE_CAPA_SET(id_eeprom.capa, CAPA_BATTERY); @@ -1072,6 +1073,7 @@ int main(int argc, char *argv[]) { DEVICE_CAPA_SET(mtcdt3b_eeprom.capa, MTCDT3B_CAPA_ETH_SWITCH); } break; + case CMD_OPT_ETH_SWITCH_VERSION: if (base_board) { uint16_t u16; @@ -1086,8 +1088,8 @@ int main(int argc, char *argv[]) { exit(1); } mtcdt3b_eeprom.hw_version_eth_switch = u16; - break; } + break; case CMD_OPT_ETH_SWITCH_MAC_ADDR: if (base_board) { -- cgit v1.2.3 From 96be76305c6353fe85305e5933031f1444b74fac Mon Sep 17 00:00:00 2001 From: Patrick Murphy Date: Thu, 25 Mar 2021 06:10:30 -0500 Subject: addressed additional mislocated breaks found above suggested dc board changes in case statement --- src/eeprom_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index a29bf72..66a510e 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -1008,8 +1008,8 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B if (base_board) { DEVICE_CAPA_SET(mtcdt3b_eeprom.capa, MTCDT3B_CAPA_LORA); - break; } + break; #endif DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA); break; @@ -1099,9 +1099,8 @@ int main(int argc, char *argv[]) { usage(stderr); exit(1); } - break; } - + break; case CMD_OPT_NUM_MTAC: if (dc_board) { uint16_t u16_mtac_test; -- cgit v1.2.3 From c20e979fb0e13f0360496f6f0a2269c212dd1e9b Mon Sep 17 00:00:00 2001 From: Mike Nicholson Date: Fri, 7 May 2021 14:02:11 -0500 Subject: Add device-id and hw-version to CDT3ACDC --- src/eeprom_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 66a510e..a4bf4f1 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -351,6 +351,8 @@ static int mtcdt3dc_yaml_out(const char *name, struct mtcdt3dc_eeprom_layout *mt fprintf(file, "\n"); fprintf(file, "vendor-id: \"%.32s\"\n", mtcdt3dc_eeprom->vendor_id); fprintf(file, "product-id: \"%.32s\"\n", mtcdt3dc_eeprom->product_id); + fprintf(file, "device-id: \"%.32s\"\n", mtcdt3dc_eeprom->device_id); + fprintf(file, "hardware-id: \"%.32s\"\n", mtcdt3dc_eeprom->hw_version); fprintf(file, "capa-mei-serial: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); fprintf(file, "capa-mtac: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); fprintf(file, "mei-serial count: %hu\n", mtcdt3dc_eeprom->serial_cnt); @@ -541,6 +543,8 @@ static void mtcdt3dc_eeprom_inspect(struct mtcdt3dc_eeprom_layout *mtcdt3dc_eepr { log_info("vendor-id: %.32s", mtcdt3dc_eeprom->vendor_id); log_info("product-id: %.32s", mtcdt3dc_eeprom->product_id); + log_info("hw-version: %.32s", mtcdt3dc_eeprom->hw_version); + log_info("device-id: %.32s", mtcdt3dc_eeprom->device_id); log_info("capa-mei-serial: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); log_info("capa-mtac: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); log_info("mei-serial count: %hu", mtcdt3dc_eeprom->serial_cnt); @@ -1195,6 +1199,8 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,device_id) + else if (dc_board) + EEPROM_SET(mtcdt3dc_eeprom,device_id) #endif else @@ -1206,6 +1212,8 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,hw_version) + else if (dc_board) + EEPROM_SET(mtcdt3dc_eeprom,hw_version) #endif else -- cgit v1.2.3 From 0998bd1bb800149dd1bbf9ff567d3cdb643841dc Mon Sep 17 00:00:00 2001 From: Andrii Pientsov Date: Fri, 21 Jan 2022 10:11:50 +0200 Subject: MTX-4356 mPower R.6.0.x: MTCAP3 - GP-1352, PP-477 : need --capa-lora-lbt for MTCAP3 in mts-id-eeprom --- src/eeprom_main.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 26cfe70..66c948b 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -169,6 +169,7 @@ static int id_yaml_out(const char *name, struct mts_id_eeprom_layout *id_eeprom) fprintf(file, "capa-wifi: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_WIFI) ? "true" : "false"); fprintf(file, "capa-bluetooth: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_BLUETOOTH) ? "true" : "false"); fprintf(file, "capa-lora: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_LORA) ? "true" : "false"); + fprintf(file, "capa-lora-lbt: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_LORA_LBT) ? "true" : "false"); fprintf(file, "capa-battery: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_BATTERY) ? "true" : "false"); fprintf(file, "capa-supercap: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_SUPERCAP) ? "true" : "false"); fprintf(file, "capa-cellular: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_CELLULAR) ? "true" : "false"); @@ -393,6 +394,7 @@ static void mts_id_eeprom_inspect(struct mts_id_eeprom_layout *id_eeprom) log_info("capa-wifi: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_WIFI) ? "yes" : "no"); log_info("capa-bluetooth: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_BLUETOOTH) ? "yes" : "no"); log_info("capa-lora: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_LORA) ? "yes" : "no"); + log_info("capa-lora-lbt: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_LORA_LBT) ? "yes" : "no"); log_info("capa-supercap: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_SUPERCAP) ? "yes" : "no"); log_info("capa-cellular: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_CELLULAR) ? "yes" : "no"); @@ -552,6 +554,7 @@ static void usage(FILE *out) { fprintf(out, " --capa-wifi |\n"); fprintf(out, " --capa-bluetooth |\n"); fprintf(out, " --capa-lora |\n"); + fprintf(out, " --capa-lora-lbt |\n"); fprintf(out, " --capa-battery |\n"); fprintf(out, " --capa-supercap |\n"); fprintf(out, " --capa-cellular |\n"); @@ -593,6 +596,7 @@ enum { CMD_OPT_CAPA_WIFI, CMD_OPT_CAPA_BLUETOOTH, CMD_OPT_CAPA_LORA, + CMD_OPT_CAPA_LORA_LBT, CMD_OPT_CAPA_BATTERY, CMD_OPT_CAPA_SUPERCAP, CMD_OPT_CAPA_CELLULAR, @@ -643,6 +647,7 @@ static struct option long_options[] = { {"capa-wifi", 0, NULL, CMD_OPT_CAPA_WIFI}, {"capa-bluetooth", 0, NULL, CMD_OPT_CAPA_BLUETOOTH}, {"capa-lora", 0, NULL, CMD_OPT_CAPA_LORA}, + {"capa-lora-lbt", 0, NULL, CMD_OPT_CAPA_LORA_LBT}, {"capa-battery", 0, NULL, CMD_OPT_CAPA_BATTERY}, {"capa-supercap", 0, NULL, CMD_OPT_CAPA_SUPERCAP}, {"capa-cellular", 0, NULL, CMD_OPT_CAPA_CELLULAR}, @@ -967,6 +972,9 @@ int main(int argc, char *argv[]) { #endif DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA); break; + case CMD_OPT_CAPA_LORA_LBT: + DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA_LBT); + break; case CMD_OPT_CAPA_BATTERY: DEVICE_CAPA_SET(id_eeprom.capa, CAPA_BATTERY); break; -- cgit v1.2.3 From e0f209ee7cd8ea28a2f436d363fdfd5470312b3f Mon Sep 17 00:00:00 2001 From: Mykola Salomatin Date: Fri, 13 May 2022 18:40:43 +0300 Subject: [MTX-4480] mPower R.6.0.X: MTCAP3 - Filesystem Encryption capability GP-1586 Added user data encryption capability for encryption purposes in MTCAP3 devices. --- src/eeprom_main.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 66c948b..ed7d674 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -173,6 +173,7 @@ static int id_yaml_out(const char *name, struct mts_id_eeprom_layout *id_eeprom) fprintf(file, "capa-battery: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_BATTERY) ? "true" : "false"); fprintf(file, "capa-supercap: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_SUPERCAP) ? "true" : "false"); fprintf(file, "capa-cellular: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_CELLULAR) ? "true" : "false"); + fprintf(file, "capa-user-data-encryption: %s\n", DEVICE_CAPA(id_eeprom->capa, CAPA_USER_DATA_ENCRYPTION) ? "true" : "false"); fprintf(file, "capa: \""); for (i = 0; i < sizeof(id_eeprom->capa); i++) { @@ -397,6 +398,7 @@ static void mts_id_eeprom_inspect(struct mts_id_eeprom_layout *id_eeprom) log_info("capa-lora-lbt: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_LORA_LBT) ? "yes" : "no"); log_info("capa-supercap: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_SUPERCAP) ? "yes" : "no"); log_info("capa-cellular: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_CELLULAR) ? "yes" : "no"); + log_info("capa-user-data-encryption: %s", DEVICE_CAPA(id_eeprom->capa, CAPA_USER_DATA_ENCRYPTION) ? "yes" : "no"); log_info("mac-bluetooth: %02X:%02X:%02X:%02X:%02X:%02X", id_eeprom->mac_bluetooth[0], @@ -558,6 +560,7 @@ static void usage(FILE *out) { fprintf(out, " --capa-battery |\n"); fprintf(out, " --capa-supercap |\n"); fprintf(out, " --capa-cellular |\n"); + fprintf(out, " --capa-user-data-encryption |\n"); fprintf(out, " --capa-clear (clears all flags) |\n"); fprintf(out, " --hex-to-bin | \n"); fprintf(out, " --out-format { bin | yaml (default) } |\n"); @@ -600,6 +603,7 @@ enum { CMD_OPT_CAPA_BATTERY, CMD_OPT_CAPA_SUPERCAP, CMD_OPT_CAPA_CELLULAR, + CMD_OPT_CAPA_USER_DATA_ENCRYPTION, CMD_OPT_CAPA_CLEAR, CMD_OPT_OUT_FORMAT, CMD_OPT_UPDATE, @@ -651,6 +655,7 @@ static struct option long_options[] = { {"capa-battery", 0, NULL, CMD_OPT_CAPA_BATTERY}, {"capa-supercap", 0, NULL, CMD_OPT_CAPA_SUPERCAP}, {"capa-cellular", 0, NULL, CMD_OPT_CAPA_CELLULAR}, + {"capa-user-data-encryption", 0, NULL, CMD_OPT_CAPA_USER_DATA_ENCRYPTION}, {"capa-clear", 0, NULL, CMD_OPT_CAPA_CLEAR}, {"hex-to-bin", 0, NULL, CMD_OPT_HEX_TO_BIN}, {"out-format", 1, NULL, CMD_OPT_OUT_FORMAT}, @@ -972,9 +977,11 @@ int main(int argc, char *argv[]) { #endif DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA); break; + case CMD_OPT_CAPA_LORA_LBT: DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA_LBT); break; + case CMD_OPT_CAPA_BATTERY: DEVICE_CAPA_SET(id_eeprom.capa, CAPA_BATTERY); break; @@ -987,6 +994,10 @@ int main(int argc, char *argv[]) { DEVICE_CAPA_SET(id_eeprom.capa, CAPA_CELLULAR); break; + case CMD_OPT_CAPA_USER_DATA_ENCRYPTION: + DEVICE_CAPA_SET(id_eeprom.capa, CAPA_USER_DATA_ENCRYPTION); + break; + case CMD_OPT_CAPA_CLEAR: capa_clear = 1; break; -- cgit v1.2.3 From dc1ab19c393118ba60a30cb18fef43e34fad927c Mon Sep 17 00:00:00 2001 From: Volodymyr Vorobiov Date: Thu, 15 Sep 2022 17:40:52 +0300 Subject: [MTX-4620] MTCDT3 R.6.2.0: support in mts-id-eeprom for MTCDT3AC GP-1742 Change flag sub-board to daughter-board and some fix --- src/eeprom_main.c | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 04887c8..7b1c78c 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -359,11 +359,11 @@ static int mtcdt3dc_yaml_out(const char *name, struct mtcdt3dc_eeprom_layout *mt fprintf(file, "vendor-id: \"%.32s\"\n", mtcdt3dc_eeprom->vendor_id); fprintf(file, "product-id: \"%.32s\"\n", mtcdt3dc_eeprom->product_id); fprintf(file, "device-id: \"%.32s\"\n", mtcdt3dc_eeprom->device_id); - fprintf(file, "hardware-id: \"%.32s\"\n", mtcdt3dc_eeprom->hw_version); + fprintf(file, "hw-version: \"%.32s\"\n", mtcdt3dc_eeprom->hw_version); fprintf(file, "capa-mei-serial: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); fprintf(file, "capa-mtac: %.32s\n", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); - fprintf(file, "mei-serial count: %hu\n", mtcdt3dc_eeprom->serial_cnt); - fprintf(file, "mtac count: %hu\n", mtcdt3dc_eeprom->mtac_cnt); + fprintf(file, "mei-serial-count: %hu\n", mtcdt3dc_eeprom->serial_cnt); + fprintf(file, "mtac-count: %hu\n", mtcdt3dc_eeprom->mtac_cnt); fprintf(file, "...\n"); fclose(file); @@ -556,8 +556,8 @@ static void mtcdt3dc_eeprom_inspect(struct mtcdt3dc_eeprom_layout *mtcdt3dc_eepr { log_info("vendor-id: %.32s", mtcdt3dc_eeprom->vendor_id); log_info("product-id: %.32s", mtcdt3dc_eeprom->product_id); - log_info("hw-version: %.32s", mtcdt3dc_eeprom->hw_version); log_info("device-id: %.32s", mtcdt3dc_eeprom->device_id); + log_info("hw-version: %.32s", mtcdt3dc_eeprom->hw_version); log_info("capa-mei-serial: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_MTAC) ? "true" : "false"); log_info("capa-mtac: %.32s", DEVICE_CAPA(mtcdt3dc_eeprom->capa, MTCDT3DC_CAPA_SERIAL) ? "true" : "false"); log_info("mei-serial count: %hu", mtcdt3dc_eeprom->serial_cnt); @@ -615,7 +615,7 @@ static void usage(FILE *out) { fprintf(out, " --accessory-card\n"); #ifdef MTCDT3B fprintf(out, " --base-board\n"); - fprintf(out, " --sub-board\n"); + fprintf(out, " --daughter-board\n"); fprintf(out, " --slot i=0,device-id=,lora-eui=,i=1,...\n"); fprintf(out, " --capa-eth-switch \n"); fprintf(out, " --capa-mtac \n"); @@ -666,7 +666,7 @@ enum { #endif #ifdef MTCDT3B CMD_OPT_BASE_BOARD, - CMD_OPT_DC_BOARD, + CMD_OPT_DAUGHTER_BOARD, CMD_OPT_SLOTS, CMD_OPT_CAPA_ETH_SWITCH, CMD_OPT_ETH_SWITCH_VERSION, @@ -720,7 +720,7 @@ static struct option long_options[] = { {"accessory-card", 0, NULL, CMD_OPT_ACCESSORY_CARD}, #ifdef MTCDT3B {"base-board", 0, NULL, CMD_OPT_BASE_BOARD}, - {"sub-board", 0, NULL, CMD_OPT_DC_BOARD}, + {"daughter-board", 0, NULL, CMD_OPT_DAUGHTER_BOARD}, {"slots", 1, NULL, CMD_OPT_SLOTS}, {"capa-eth-switch", 0, NULL, CMD_OPT_CAPA_ETH_SWITCH}, {"capa-mtac", 0, NULL, CMD_OPT_CAPA_MTAC}, @@ -761,7 +761,7 @@ int main(int argc, char *argv[]) { int accessory_card = 0; #ifdef MTCDT3B int base_board = 0; - int dc_board = 0; + int daughter_board = 0; char *slots = NULL; #endif char *vendor_id = NULL; @@ -819,8 +819,8 @@ int main(int argc, char *argv[]) { base_board = 1; break; - case CMD_OPT_DC_BOARD: - dc_board = 1; + case CMD_OPT_DAUGHTER_BOARD: + daughter_board = 1; break; #endif @@ -848,13 +848,13 @@ int main(int argc, char *argv[]) { if (accessory_card) { tmp = read(fd, (char *) &ap_eeprom, eeprom_size); #ifdef MTCDT3B - } else if (base_board) { - tmp = read(fd, (char *) &mtcdt3b_eeprom, eeprom_size); + } else if (base_board) { + tmp = read(fd, (char *) &mtcdt3b_eeprom, eeprom_size); - } else if (dc_board) { - tmp = read(fd, (char *) &mtcdt3dc_eeprom, eeprom_size); + } else if (daughter_board) { + tmp = read(fd, (char *) &mtcdt3dc_eeprom, eeprom_size); #endif - } else { + } else { tmp = read(fd, (char *) &id_eeprom, eeprom_size); } @@ -873,7 +873,7 @@ int main(int argc, char *argv[]) { } else if (base_board) { log_info("loaded ap eeprom from %s successfully", in_file); mtcdt3b_eeprom_inspect(&mtcdt3b_eeprom); - } else if (dc_board) { + } else if (daughter_board) { mtcdt3dc_eeprom_inspect(&mtcdt3dc_eeprom); #endif } else { @@ -909,7 +909,7 @@ int main(int argc, char *argv[]) { // handled above break; - case CMD_OPT_DC_BOARD: + case CMD_OPT_DAUGHTER_BOARD: // handled above break; @@ -1064,13 +1064,13 @@ int main(int argc, char *argv[]) { break; #ifdef MTCDT3B case CMD_OPT_CAPA_MTAC: - if (dc_board) { + if (daughter_board) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_MTAC); } break; case CMD_OPT_CAPA_SERIAL: - if (dc_board) { + if (daughter_board) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_SERIAL); } break; @@ -1157,7 +1157,7 @@ int main(int argc, char *argv[]) { } break; case CMD_OPT_NUM_MTAC: - if (dc_board) { + if (daughter_board) { uint16_t u16_mtac_test; if (sscanf(optarg, "%hu", &u16_mtac_test) != 1) { log_error("invalid mtac count %s", optarg); @@ -1174,7 +1174,7 @@ int main(int argc, char *argv[]) { break; case CMD_OPT_NUM_SERIAL: - if (dc_board) { + if (daughter_board) { uint16_t u16_serial_test; if (sscanf(optarg, "%hu", &u16_serial_test) !=1) { log_error("invalid serial count %s", optarg); @@ -1202,10 +1202,10 @@ int main(int argc, char *argv[]) { capa_clear = 0; } - if(dc_board && capa_clear) { - memset(mtcdt3dc_eeprom.capa, 0, sizeof(mtcdt3dc_eeprom.capa)); - capa_clear = 0; - } + if(daughter_board && capa_clear) { + memset(mtcdt3dc_eeprom.capa, 0, sizeof(mtcdt3dc_eeprom.capa)); + capa_clear = 0; + } #endif if(capa_clear) { @@ -1224,7 +1224,7 @@ int main(int argc, char *argv[]) { else if (base_board) EEPROM_SET(mtcdt3b_eeprom,vendor_id) - else if (dc_board) + else if (daughter_board) EEPROM_SET(mtcdt3dc_eeprom,vendor_id) #endif else @@ -1237,7 +1237,7 @@ int main(int argc, char *argv[]) { else if (base_board) EEPROM_SET(mtcdt3b_eeprom,product_id) - else if (dc_board) + else if (daughter_board) EEPROM_SET(mtcdt3dc_eeprom,product_id) #endif @@ -1250,7 +1250,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,device_id) - else if (dc_board) + else if (daughter_board) EEPROM_SET(mtcdt3dc_eeprom,device_id) #endif @@ -1263,7 +1263,7 @@ int main(int argc, char *argv[]) { #ifdef MTCDT3B else if (base_board) EEPROM_SET(mtcdt3b_eeprom,hw_version) - else if (dc_board) + else if (daughter_board) EEPROM_SET(mtcdt3dc_eeprom,hw_version) #endif @@ -1455,7 +1455,7 @@ int main(int argc, char *argv[]) { else if (base_board) bin_out(out_file, (char*) &mtcdt3b_eeprom); - else if (dc_board) + else if (daughter_board) bin_out(out_file, (char*) &mtcdt3dc_eeprom); #endif else { @@ -1469,7 +1469,7 @@ int main(int argc, char *argv[]) { else if (base_board) mtcdt3b_yaml_out(out_file, &mtcdt3b_eeprom); - else if (dc_board) + else if (daughter_board) mtcdt3dc_yaml_out(out_file, &mtcdt3dc_eeprom); #endif else @@ -1488,7 +1488,7 @@ int main(int argc, char *argv[]) { else if (base_board) mtcdt3b_eeprom_inspect(&mtcdt3b_eeprom); - else if (dc_board) + else if (daughter_board) mtcdt3dc_eeprom_inspect(&mtcdt3dc_eeprom); #endif else -- cgit v1.2.3 From e3978729ce069a3a473299b029b8edfe4ffac44b Mon Sep 17 00:00:00 2001 From: Volodymyr Vorobiov Date: Sat, 24 Sep 2022 16:23:08 +0300 Subject: [MTX-4639] [GP-1757] MTCDT3 - EEPROM review available settings and values format remove 'mtcdt3b-capa-lora', 'lora-product-id' and 'lora-hw-version' --- src/eeprom_main.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 7b1c78c..8745dbc 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -308,9 +308,6 @@ static int mtcdt3b_yaml_out(const char *name, struct mtcdt3b_eeprom_layout *mtcd mtcdt3b_eeprom->mac_addr[3], mtcdt3b_eeprom->mac_addr[4], mtcdt3b_eeprom->mac_addr[5]); - fprintf(file, "capa-lora: %s\n", DEVICE_CAPA(mtcdt3b_eeprom->capa, MTCDT3B_CAPA_LORA) ? "true" : "false"); - fprintf(file, "lora-product-id: \"%.32s\"\n", mtcdt3b_eeprom->lora_product_id); - fprintf(file, "lora-hw-version: \"%.32s\"\n", mtcdt3b_eeprom->lora_hw_version); for(i=0;i<2;i++) { fprintf(file,"slot %d:\n",i); fprintf(file, " lora-device-id: \"%.32s\"\n", mtcdt3b_eeprom->slot[i].device_id); @@ -525,9 +522,6 @@ static void mtcdt3b_eeprom_inspect(struct mtcdt3b_eeprom_layout *mtcdt3b_eeprom) mtcdt3b_eeprom->mac_addr[3], mtcdt3b_eeprom->mac_addr[4], mtcdt3b_eeprom->mac_addr[5]); - log_info("mtcdt3b-capa-lora: %s", DEVICE_CAPA(mtcdt3b_eeprom->capa, MTCDT3B_CAPA_LORA) ? "yes" : "no"); - log_info("lora-product-id: %.32s", mtcdt3b_eeprom->lora_product_id); - log_info("lora-hw-version: %.32s", mtcdt3b_eeprom->lora_hw_version); for(i=0;i<2;i++) { log_info("slot %d:",i); log_info(" lora-device-id: \"%.32s\"", mtcdt3b_eeprom->slot[i].device_id); @@ -1054,12 +1048,6 @@ int main(int argc, char *argv[]) { break; case CMD_OPT_CAPA_LORA: -#ifdef MTCDT3B - if (base_board) { - DEVICE_CAPA_SET(mtcdt3b_eeprom.capa, MTCDT3B_CAPA_LORA); - break; - } -#endif DEVICE_CAPA_SET(id_eeprom.capa, CAPA_LORA); break; #ifdef MTCDT3B @@ -1068,7 +1056,7 @@ int main(int argc, char *argv[]) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_MTAC); } break; - + case CMD_OPT_CAPA_SERIAL: if (daughter_board) { DEVICE_CAPA_SET(mtcdt3dc_eeprom.capa, MTCDT3DC_CAPA_SERIAL); @@ -1294,10 +1282,6 @@ int main(int argc, char *argv[]) { usage(stderr); exit(1); } -#ifdef MTCDT3B - else if (base_board) - EEPROM_SET(mtcdt3b_eeprom,lora_product_id) -#endif else EEPROM_SET(id_eeprom,lora_product_id) } @@ -1309,10 +1293,6 @@ int main(int argc, char *argv[]) { usage(stderr); exit(1); } -#ifdef MTCDT3B - else if (base_board) - EEPROM_SET(mtcdt3b_eeprom,lora_hw_version) -#endif else EEPROM_SET(id_eeprom,lora_hw_version) } -- cgit v1.2.3 From 077a8cbfc0f42e669178f6311c4a68f5aeb61f19 Mon Sep 17 00:00:00 2001 From: Volodymyr Vorobiov Date: Sat, 24 Sep 2022 16:36:47 +0300 Subject: [MTX-4639] [GP-1757] MTCDT3 - EEPROM review available settings and values format update field names 'eth-switch-version' and 'eth-switch-mac-addr' --- src/eeprom_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/eeprom_main.c b/src/eeprom_main.c index 8745dbc..d2199a0 100644 --- a/src/eeprom_main.c +++ b/src/eeprom_main.c @@ -322,8 +322,8 @@ static int mtcdt3b_yaml_out(const char *name, struct mtcdt3b_eeprom_layout *mtcd mtcdt3b_eeprom->slot[i].lora_eui[7]); } fprintf(file, "capa-eth-switch: %s\n", DEVICE_CAPA(mtcdt3b_eeprom->capa, MTCDT3B_CAPA_ETH_SWITCH) ? "true" : "false"); - fprintf(file, "hw-version-eth-switch: %hu\n", mtcdt3b_eeprom->hw_version_eth_switch); - fprintf(file, "mac-eth-switch: \"%02X:%02X:%02X:%02X:%02X:%02X\"\n", + fprintf(file, "eth-switch-version: %hu\n", mtcdt3b_eeprom->hw_version_eth_switch); + fprintf(file, "eth-switch-mac-addr: \"%02X:%02X:%02X:%02X:%02X:%02X\"\n", mtcdt3b_eeprom->mac_eth_switch[0], mtcdt3b_eeprom->mac_eth_switch[1], mtcdt3b_eeprom->mac_eth_switch[2], @@ -536,8 +536,8 @@ static void mtcdt3b_eeprom_inspect(struct mtcdt3b_eeprom_layout *mtcdt3b_eeprom) mtcdt3b_eeprom->slot[i].lora_eui[7]); } log_info("capa-eth-switch: %s", DEVICE_CAPA(mtcdt3b_eeprom->capa, MTCDT3B_CAPA_ETH_SWITCH) ? "yes" : "no"); - log_info("hw-version-eth-switch: %hu", mtcdt3b_eeprom->hw_version_eth_switch); - log_info("mac-eth-switch: \"%02X:%02X:%02X:%02X:%02X:%02X\"", + log_info("eth-switch-version: %hu", mtcdt3b_eeprom->hw_version_eth_switch); + log_info("eth-switch-mac-addr: \"%02X:%02X:%02X:%02X:%02X:%02X\"", mtcdt3b_eeprom->mac_eth_switch[0], mtcdt3b_eeprom->mac_eth_switch[1], mtcdt3b_eeprom->mac_eth_switch[2], -- cgit v1.2.3