Revert "Revert "Fix device_info for v1/v2.""
This reverts commit 7514c31bc41f710de696c1b9c8ba446482eea641.
Reason for revert: okay
Change-Id: I2c8d1230db2998acc728dcd5496e71c1a9ca2eff
diff --git a/marvell/obm/Common/Misc/device_info.c b/marvell/obm/Common/Misc/device_info.c
index db751dc..b65aa04 100755
--- a/marvell/obm/Common/Misc/device_info.c
+++ b/marvell/obm/Common/Misc/device_info.c
@@ -36,8 +36,7 @@
}
mbtk_device_info_header_t *header = (mbtk_device_info_header_t*)dev_info_buff;
- if(header->tag != MBTK_DEVICE_INFO_PARTITION_TAG || header->version != MBTK_DEVICE_INFO_CURR_VERSION
- || header->item_count != MBTK_DEVICE_INFO_ITEM_NUM) {
+ if(header->tag != MBTK_DEVICE_INFO_PARTITION_TAG || header->item_count != MBTK_DEVICE_INFO_ITEM_NUM) {
obm_printf("dev_info header error: tag - 0x%x, version - 0x%x, item - %d\n\r", header->tag, header->version, header->item_count);
Retval = GeneralError;
goto EXIT;
@@ -54,14 +53,26 @@
goto EXIT;
}
- memcpy(item_ptr, dev_info_buff + header->item_header[item_type].addr, item_size);
- mbtk_device_info_basic_t *dev_basic = (mbtk_device_info_basic_t*)item_ptr;
- if(memcmp(dev_basic->name, MBTK_DEVICE_INFO_ITEM_STR_BASIC, 5)
- || dev_basic->version != MBTK_DEVICE_INFO_CURR_VERSION) {
- obm_printf("dev_info BASIC error: name - %s, version - 0x%x\n\r", dev_basic->name, dev_basic->version);
- Retval = GeneralError;
- goto EXIT;
+ mbtk_device_info_basic_t *basic_ptr = (mbtk_device_info_basic_t*)item_ptr;
+ basic_ptr->version = (mbtk_device_info_version_enum)header->version;
+ if(basic_ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(&(basic_ptr->basic.v1), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_basic_v1_t));
+ if(memcmp(basic_ptr->basic.v1.name, MBTK_DEVICE_INFO_ITEM_STR_BASIC, 5)) {
+ obm_printf("dev_info BASIC error: name - %s\n\r", basic_ptr->basic.v1.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
+ } else {
+ memcpy(&(basic_ptr->basic.v2), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_basic_v2_t));
+ if(memcmp(basic_ptr->basic.v2.name, MBTK_DEVICE_INFO_ITEM_STR_BASIC, 5)) {
+ obm_printf("dev_info BASIC error: name - %s\n\r", basic_ptr->basic.v2.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
}
+
break;
}
case MBTK_DEVICE_INFO_ITEM_FOTA:
@@ -72,13 +83,24 @@
goto EXIT;
}
- memcpy(item_ptr, dev_info_buff + header->item_header[item_type].addr, item_size);
- mbtk_device_info_fota_t *dev_fota = (mbtk_device_info_fota_t*)item_ptr;
- if(memcmp(dev_fota->name, MBTK_DEVICE_INFO_ITEM_STR_FOTA, 4)
- || dev_fota->version != MBTK_DEVICE_INFO_CURR_VERSION) {
- obm_printf("dev_info FOTA error: name - %s, version - 0x%x\n\r", dev_fota->name, dev_fota->version);
- Retval = GeneralError;
- goto EXIT;
+ mbtk_device_info_fota_t *fota_ptr = (mbtk_device_info_fota_t*)item_ptr;
+ fota_ptr->version = (mbtk_device_info_version_enum)header->version;
+ if(fota_ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(&(fota_ptr->fota.v1), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_fota_v1_t));
+ if(memcmp(fota_ptr->fota.v1.name, MBTK_DEVICE_INFO_ITEM_STR_FOTA, 4)) {
+ obm_printf("dev_info FOTA error: name - %s\n\r", fota_ptr->fota.v1.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
+ } else {
+ memcpy(&(fota_ptr->fota.v2), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_fota_v2_t));
+ if(memcmp(fota_ptr->fota.v2.name, MBTK_DEVICE_INFO_ITEM_STR_FOTA, 4)) {
+ obm_printf("dev_info FOTA error: name - %s\n\r", fota_ptr->fota.v2.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
}
break;
}
@@ -90,13 +112,24 @@
goto EXIT;
}
- memcpy(item_ptr, dev_info_buff + header->item_header[item_type].addr, item_size);
- mbtk_device_info_modem_t *dev_modem = (mbtk_device_info_modem_t*)item_ptr;
- if(memcmp(dev_modem->name, MBTK_DEVICE_INFO_ITEM_STR_MODEM, 5)
- || dev_modem->version != MBTK_DEVICE_INFO_CURR_VERSION) {
- obm_printf("dev_info MODEM error: name - %s, version - 0x%x\n\r", dev_modem->name, dev_modem->version);
- Retval = GeneralError;
- goto EXIT;
+ mbtk_device_info_modem_t *modem_ptr = (mbtk_device_info_modem_t*)item_ptr;
+ modem_ptr->version = (mbtk_device_info_version_enum)header->version;
+ if(modem_ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(&(modem_ptr->modem.v1), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_modem_v1_t));
+ if(memcmp(modem_ptr->modem.v1.name, MBTK_DEVICE_INFO_ITEM_STR_MODEM, 5)) {
+ obm_printf("dev_info MODEM error: name - %s\n\r", modem_ptr->modem.v1.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
+ } else {
+ memcpy(&(modem_ptr->modem.v2), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_modem_v2_t));
+ if(memcmp(modem_ptr->modem.v2.name, MBTK_DEVICE_INFO_ITEM_STR_MODEM, 5)) {
+ obm_printf("dev_info MODEM error: name - %s\n\r", modem_ptr->modem.v2.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
}
break;
}
@@ -108,14 +141,26 @@
goto EXIT;
}
- memcpy(item_ptr, dev_info_buff + header->item_header[item_type].addr, item_size);
- mbtk_device_info_log_t *dev_log = (mbtk_device_info_log_t*)item_ptr;
- if(memcmp(dev_log->name, MBTK_DEVICE_INFO_ITEM_STR_LOG, 3)
- || dev_log->version != MBTK_DEVICE_INFO_CURR_VERSION) {
- obm_printf("dev_info LOG error: name - %s, version - 0x%x\n\r", dev_log->name, dev_log->version);
- Retval = GeneralError;
- goto EXIT;
+ mbtk_device_info_log_t *log_ptr = (mbtk_device_info_log_t*)item_ptr;
+ log_ptr->version = (mbtk_device_info_version_enum)header->version;
+ if(log_ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(&(log_ptr->log.v1), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_log_v1_t));
+ if(memcmp(log_ptr->log.v1.name, MBTK_DEVICE_INFO_ITEM_STR_LOG, 3)) {
+ obm_printf("dev_info LOG error: name - %s\n\r", log_ptr->log.v1.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
+ } else {
+ memcpy(&(log_ptr->log.v2), dev_info_buff + header->item_header[item_type].addr,
+ sizeof(mbtk_device_info_log_v2_t));
+ if(memcmp(log_ptr->log.v2.name, MBTK_DEVICE_INFO_ITEM_STR_LOG, 3)) {
+ obm_printf("dev_info LOG error: name - %s\n\r", log_ptr->log.v2.name);
+ Retval = GeneralError;
+ goto EXIT;
+ }
}
+
break;
}
default:
@@ -151,6 +196,13 @@
obm_printf("item_size != sizeof(mbtk_device_info_basic_t)\n\r");
return GeneralError;
}
+
+ mbtk_device_info_basic_t *ptr = (mbtk_device_info_basic_t*)item_ptr;
+ if(ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->basic.v1), sizeof(mbtk_device_info_basic_v1_t));
+ } else {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->basic.v2), sizeof(mbtk_device_info_basic_v2_t));
+ }
break;
}
case MBTK_DEVICE_INFO_ITEM_FOTA:
@@ -159,6 +211,13 @@
obm_printf("item_size != sizeof(mbtk_device_info_fota_t)\n\r");
return GeneralError;
}
+
+ mbtk_device_info_fota_t *ptr = (mbtk_device_info_fota_t*)item_ptr;
+ if(ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->fota.v1), sizeof(mbtk_device_info_fota_v1_t));
+ } else {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->fota.v2), sizeof(mbtk_device_info_fota_v2_t));
+ }
break;
}
case MBTK_DEVICE_INFO_ITEM_MODEM:
@@ -167,6 +226,13 @@
obm_printf("item_size != sizeof(mbtk_device_info_modem_t)\n\r");
return GeneralError;
}
+
+ mbtk_device_info_modem_t *ptr = (mbtk_device_info_modem_t*)item_ptr;
+ if(ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->modem.v1), sizeof(mbtk_device_info_modem_v1_t));
+ } else {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->modem.v2), sizeof(mbtk_device_info_modem_v2_t));
+ }
break;
}
case MBTK_DEVICE_INFO_ITEM_LOG:
@@ -175,6 +241,13 @@
obm_printf("item_size != sizeof(mbtk_device_info_log_t)\n\r");
return GeneralError;
}
+
+ mbtk_device_info_log_t *ptr = (mbtk_device_info_log_t*)item_ptr;
+ if(ptr->version == DEV_INFO_VERSION_V1) {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->log.v1), sizeof(mbtk_device_info_log_v1_t));
+ } else {
+ memcpy(dev_info_buff + header->item_header[item_type].addr, &(ptr->log.v2), sizeof(mbtk_device_info_log_v2_t));
+ }
break;
}
default:
@@ -184,8 +257,6 @@
}
}
- memcpy(dev_info_buff + header->item_header[item_type].addr, item_ptr, item_size);
-
MainRet = EraseFlash(MBTK_DEV_INFO_PARTITION_ADDR, BlockSize, BOOT_FLASH);
if (MainRet != NoError)
{
diff --git a/marvell/obm/Loader/Main/BootLoader.c b/marvell/obm/Loader/Main/BootLoader.c
index 1057792..af2d813 100755
--- a/marvell/obm/Loader/Main/BootLoader.c
+++ b/marvell/obm/Loader/Main/BootLoader.c
@@ -647,33 +647,61 @@
memset(&basic_info, 0x0, sizeof(mbtk_device_info_basic_t));
UINT_T Retval = Dev_Info_Get(MBTK_DEVICE_INFO_ITEM_BASIC, &basic_info, sizeof(mbtk_device_info_basic_t));
if(Retval == NoError) {
- obm_printf("MBTK reboot flag : %d, boot reason : %d\n\r", basic_info.reboot_flag, boot_reason);
+ if(basic_info.version == DEV_INFO_VERSION_V1) {
+ obm_printf("MBTK reboot flag : %d, boot reason : %d\n\r", basic_info.basic.v1.reboot_flag, boot_reason);
#if MBTK_AUTO_DL
#else
- if(basic_info.reboot_flag == MBTK_REBOOT_FLAG_DOWNLOAD) {
- mode = UPGRADESW;
- time_count_enable = TRUE;
- time_count_in_sec = 0;
- obm_printf("MBTK reboot download\n\r");
- basic_info.reboot_flag = MBTK_REBOOT_FLAG_NORMAL;
- Dev_Info_Save(MBTK_DEVICE_INFO_ITEM_BASIC, &basic_info, sizeof(mbtk_device_info_basic_t));
- return mode;
- }
-#endif
- if(boot_reason == SYS_BR_REBOOT) {
- if(basic_info.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
- basic_info.reboot_flag = MBTK_REBOOT_FLAG_HARDWARE;
- }
- } else {
- if(basic_info.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
- basic_info.reboot_flag = MBTK_REBOOT_FLAG_POWER_OFF;
+ if(basic_info.basic.v1.reboot_flag == MBTK_REBOOT_FLAG_DOWNLOAD) {
+ mode = UPGRADESW;
+ time_count_enable = TRUE;
+ time_count_in_sec = 0;
+ obm_printf("MBTK reboot download\n\r");
+ basic_info.basic.v1.reboot_flag = MBTK_REBOOT_FLAG_NORMAL;
+ Dev_Info_Save(MBTK_DEVICE_INFO_ITEM_BASIC, &basic_info, sizeof(mbtk_device_info_basic_t));
+ return mode;
}
+#endif
+ if(boot_reason == SYS_BR_REBOOT) {
+ if(basic_info.basic.v1.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
+ basic_info.basic.v1.reboot_flag = MBTK_REBOOT_FLAG_HARDWARE;
+ }
+ } else {
+ if(basic_info.basic.v1.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
+ basic_info.basic.v1.reboot_flag = MBTK_REBOOT_FLAG_POWER_OFF;
+ }
+ }
+
+ obm_printf("MBTK save reboot flag : %d\n\r", basic_info.basic.v1.reboot_flag);
+ } else {
+ obm_printf("MBTK reboot flag : %d, boot reason : %d\n\r", basic_info.basic.v2.reboot_flag, boot_reason);
+#if MBTK_AUTO_DL
+#else
+ if(basic_info.basic.v2.reboot_flag == MBTK_REBOOT_FLAG_DOWNLOAD) {
+ mode = UPGRADESW;
+ time_count_enable = TRUE;
+ time_count_in_sec = 0;
+ obm_printf("MBTK reboot download\n\r");
+ basic_info.basic.v2.reboot_flag = MBTK_REBOOT_FLAG_NORMAL;
+ Dev_Info_Save(MBTK_DEVICE_INFO_ITEM_BASIC, &basic_info, sizeof(mbtk_device_info_basic_t));
+ return mode;
+ }
+#endif
+ if(boot_reason == SYS_BR_REBOOT) {
+ if(basic_info.basic.v2.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
+ basic_info.basic.v2.reboot_flag = MBTK_REBOOT_FLAG_HARDWARE;
+ }
+ } else {
+ if(basic_info.basic.v2.reboot_flag == MBTK_REBOOT_FLAG_NORMAL) {
+ basic_info.basic.v2.reboot_flag = MBTK_REBOOT_FLAG_POWER_OFF;
+ }
+ }
+
+ obm_printf("MBTK save reboot flag : %d\n\r", basic_info.basic.v2.reboot_flag);
}
- obm_printf("MBTK save reboot flag : %d\n\r", basic_info.reboot_flag);
Dev_Info_Save(MBTK_DEVICE_INFO_ITEM_BASIC, &basic_info, sizeof(mbtk_device_info_basic_t));
}
-
+
#if MBTK_AUTO_DL
mode = UPGRADESW;
time_count_enable = TRUE;
diff --git a/marvell/services/ota/mbtk_ota.c b/marvell/services/ota/mbtk_ota.c
index 96bf086..939d3ab 100755
--- a/marvell/services/ota/mbtk_ota.c
+++ b/marvell/services/ota/mbtk_ota.c
@@ -207,9 +207,15 @@
mbtk_device_info_header_t *info_header = (mbtk_device_info_header_t*)mtd_buff;
mbtk_device_info_basic_t *info_basic = (mbtk_device_info_basic_t*)(mtd_buff + info_header->item_header[MBTK_DEVICE_INFO_ITEM_BASIC].addr);
- OTA_DEBUG("Old version : %s", info_basic->revision_out);
- memset(info_basic->revision_out, 0, sizeof(info_basic->revision_out));
- memcpy(info_basic->revision_out, revision_out, strlen(revision_out));
+ if(info_basic->version == DEV_INFO_VERSION_V1) {
+ OTA_DEBUG("Old version : %s", info_basic->basic.v1.revision_out);
+ memset(info_basic->basic.v1.revision_out, 0, sizeof(info_basic->basic.v1.revision_out));
+ memcpy(info_basic->basic.v1.revision_out, revision_out, strlen(revision_out));
+ } else {
+ OTA_DEBUG("Old version : %s", info_basic->basic.v2.revision_out);
+ memset(info_basic->basic.v2.revision_out, 0, sizeof(info_basic->basic.v2.revision_out));
+ memcpy(info_basic->basic.v2.revision_out, revision_out, strlen(revision_out));
+ }
lseek(fd, 0, SEEK_SET);
if (write(fd, mtd_buff, info.erase_size) != info.erase_size) {
diff --git a/mbtk/device_info_generate b/mbtk/device_info_generate
index 5d7e738..e88914e 100755
--- a/mbtk/device_info_generate
+++ b/mbtk/device_info_generate
Binary files differ
diff --git a/mbtk/include/mbtk/mbtk_device.h b/mbtk/include/mbtk/mbtk_device.h
index f7e7cef..b2f1729 100755
--- a/mbtk/include/mbtk/mbtk_device.h
+++ b/mbtk/include/mbtk/mbtk_device.h
@@ -6,17 +6,15 @@
* Author : lb
* Date : 2023/12/30 11:36:35
*/
-#ifndef _MBTK_DEVICE_V2_H
-#define _MBTK_DEVICE_V2_H
+#ifndef _MBTK_DEVICE_H
+#define _MBTK_DEVICE_H
//#include "mbtk_type.h"
#define MBTK_DEVICE_INFO_PARTITION_NAME "device_info"
#define MBTK_DEVICE_INFO_PARTITION_TAG 0x87878787
-#define MBTK_DEVICE_INFO_CURR_VERSION 2
-#define MBTK_DEV_INFO_PARTITION_ADDR 0x02A20000
+#define MBTK_DEV_INFO_PARTITION_ADDR 0x005C0000
-// 78,147,482,134742231
#define MBTK_BAND_ALL_GSM_DEFAULT 78 // GSM : ASR default.
#define MBTK_BAND_ALL_WCDMA_DEFAULT 147 // WCDMA : ASR default.
#define MBTK_BAND_ALL_TDLTE_DEFAULT 482 // TDD-LTE : ASR default.
@@ -27,45 +25,11 @@
#define MBTK_BAND_ALL_NR_1_DEFAULT 256 // n41
#define MBTK_BAND_ALL_NR_0_DEFAULT 134217877 // n1/n3/n5/n8/n28
-#define MBTK_BAND_CN_GSM_DEFAULT 11 // GSM : B3/B8 (PGSM 900/DCS GSM 1800/EGSM 900)
-#define MBTK_BAND_CN_WCDMA_DEFAULT 145 // WCDMA : B1/B5/B8
-#define MBTK_BAND_CN_TDLTE_DEFAULT 482 // TDD-LTE : B34/B38/B39/B40/B41
-#define MBTK_BAND_CN_FDDLTE_DEFAULT 149 // FDD-LTE : B1/B3/B5/B8
-#define MBTK_BAND_CN_EXT_LTE_DEFAULT 0 // EXT-LTE
-#define MBTK_BAND_CN_NR_3_DEFAULT 0
-#define MBTK_BAND_CN_NR_2_DEFAULT 24576 // n78/n79
-#define MBTK_BAND_CN_NR_1_DEFAULT 384 // n40/n41
-#define MBTK_BAND_CN_NR_0_DEFAULT 134217877 // n1/n3/n5/n8/n28
-
-#define MBTK_BAND_EU_GSM_DEFAULT 11 // GSM : B3/B8 (PGSM 900/DCS GSM 1800/EGSM 900)
-#define MBTK_BAND_EU_WCDMA_DEFAULT 145 // WCDMA : B1/B5/B8
-#define MBTK_BAND_EU_TDLTE_DEFAULT 416 // TDD-LTE : B38/B40/B41
-#define MBTK_BAND_EU_FDDLTE_DEFAULT 134742229 // FDD-LTE : B1/B3/B5/B7/B8/B20/B28
-#define MBTK_BAND_EU_EXT_LTE_DEFAULT 0 // EXT-LTE
-#define MBTK_BAND_EU_NR_3_DEFAULT 0
-#define MBTK_BAND_EU_NR_2_DEFAULT 12352 // n71/n77/n78
-#define MBTK_BAND_EU_NR_1_DEFAULT 416 // n38/n40/n41
-#define MBTK_BAND_EU_NR_0_DEFAULT 134742229 // n1/n3/n5/n7/n8/n20/n28
-
-#define MBTK_BAND_SA_GSM_DEFAULT 79 // GSM : B2/B3/B5/B8(GSM 850/PGSM 900/EGSM 900/DCS GSM 1800/PCS GSM 1900)
-#define MBTK_BAND_SA_WCDMA_DEFAULT 155 // WCDMA : B1/B2/B4/B5/B8
-#define MBTK_BAND_SA_TDLTE_DEFAULT 128 // TDD-LTE : B40
-#define MBTK_BAND_SA_FDDLTE_DEFAULT 134217951 // FDD-LTE : B1/B2/B3/B4/B5/B7/B8/B28
-#define MBTK_BAND_SA_EXT_LTE_DEFAULT 2 // EXT-LTE : B66
-#define MBTK_BAND_SA_NR_3_DEFAULT MBTK_BAND_ALL_NR_3_DEFAULT
-#define MBTK_BAND_SA_NR_2_DEFAULT MBTK_BAND_ALL_NR_2_DEFAULT
-#define MBTK_BAND_SA_NR_1_DEFAULT MBTK_BAND_ALL_NR_1_DEFAULT
-#define MBTK_BAND_SA_NR_0_DEFAULT MBTK_BAND_ALL_NR_0_DEFAULT
-
#define MBTK_DEVICE_INFO_ITEM_STR_BASIC "BASIC"
#define MBTK_DEVICE_INFO_ITEM_STR_FOTA "FOTA"
#define MBTK_DEVICE_INFO_ITEM_STR_MODEM "MODEM"
#define MBTK_DEVICE_INFO_ITEM_STR_LOG "LOG"
-#define MBTK_DEVICE_INFO_ITEM_ADDR_BASIC 0x100 // Header is 0x100
-#define MBTK_DEVICE_INFO_ITEM_ADDR_FOTA 0x500 // Basic is 1k
-#define MBTK_DEVICE_INFO_ITEM_ADDR_MODEM 0x900 // Fota is 1k
-#define MBTK_DEVICE_INFO_ITEM_ADDR_LOG 0xD00 // Modem is 1k
#define MBTK_NET_SUPPORT_2G (1)
#define MBTK_NET_SUPPORT_3G (1<<1)
@@ -94,6 +58,11 @@
} mbtk_device_info_header_t;
typedef enum {
+ DEV_INFO_VERSION_V1 = 1,
+ DEV_INFO_VERSION_V2,
+} mbtk_device_info_version_enum;
+
+typedef enum {
MBTK_REBOOT_FLAG_NORMAL = 0,
MBTK_REBOOT_FLAG_DOWNLOAD,
MBTK_REBOOT_FLAG_POWER_OFF, //Power off and restart
@@ -113,13 +82,41 @@
uint8 revision_out[48]; // L508_X6v01.01b04.00
uint8 revision_in[64];
uint8 build_time[64];
- uint8 asr_baseline[64];
+} mbtk_device_info_basic_v1_t;
+
+typedef struct {
+ uint8 name[16];
+ uint32 version; // Default : 0x01
+ uint8 project[16]; // T108 / L508_X6
+ uint8 project_cust[16]; // T108_C1 / L508_X6_C1 (Refer to: Custom_Model in blf file.)
+ uint32 ab_support; // 1 for ab
+ mbtk_device_info_reboot_flag_enum reboot_flag;
+ uint8 revision_out[48]; // L508_X6v01.01b04.00
+ uint8 revision_in[64];
+ uint8 build_time[64];
+ uint8 asr_baseline[128];
+} mbtk_device_info_basic_v2_t;
+
+typedef struct {
+ mbtk_device_info_version_enum version;
+ union {
+ mbtk_device_info_basic_v1_t v1;
+ mbtk_device_info_basic_v2_t v2;
+ } basic;
} mbtk_device_info_basic_t;
typedef struct {
uint8 name[16];
uint32 version; // Default : 0x01
uint32 state; //
+} mbtk_device_info_fota_v1_t, mbtk_device_info_fota_v2_t;
+
+typedef struct {
+ mbtk_device_info_version_enum version;
+ union {
+ mbtk_device_info_fota_v1_t v1;
+ mbtk_device_info_fota_v2_t v2;
+ } fota;
} mbtk_device_info_fota_t;
typedef enum {
@@ -133,6 +130,17 @@
uint8 name[16];
uint32 version; // Default : 0x01
mbtk_modem_band_area_enum band_area;
+ uint32 band_gsm;
+ uint32 band_wcdma;
+ uint32 band_tdlte;
+ uint32 band_fddlte;
+ uint32 band_lte_ext;
+} mbtk_device_info_modem_v1_t;
+
+typedef struct {
+ uint8 name[16];
+ uint32 version; // Default : 0x01
+ mbtk_modem_band_area_enum band_area;
uint32 net_pref; // Refor to : mbtk_net_pref_enum
uint32 net_support; // 1:GSM 2:WCDMA 4:LTE 8:NR
uint32 band_gsm;
@@ -144,25 +152,33 @@
uint32 band_nr_2;
uint32 band_nr_1;
uint32 band_nr_0;
+} mbtk_device_info_modem_v2_t;
+
+typedef struct {
+ mbtk_device_info_version_enum version;
+ union {
+ mbtk_device_info_modem_v1_t v1;
+ mbtk_device_info_modem_v2_t v2;
+ } modem;
} mbtk_device_info_modem_t;
typedef struct {
uint8 name[16];
uint32 version; // Default : 0x01
uint32 state; //
+} mbtk_device_info_log_v1_t, mbtk_device_info_log_v2_t;
+
+typedef struct {
+ mbtk_device_info_version_enum version;
+ union {
+ mbtk_device_info_log_v1_t v1;
+ mbtk_device_info_log_v2_t v2;
+ } log;
} mbtk_device_info_log_t;
-
-/*
-* MBTK_DEVICE_INFO_ITEM_BASIC - mbtk_device_info_basic_t
-* MBTK_DEVICE_INFO_ITEM_FOTA - mbtk_device_info_fota_t
-* MBTK_DEVICE_INFO_ITEM_MODEM - mbtk_device_info_modem_t
-* MBTK_DEVICE_INFO_ITEM_LOG - mbtk_device_info_log_t
-*/
int mbtk_dev_info_read(mbtk_device_info_item_enum item_type, void *item_ptr, int item_size);
int mbtk_dev_info_write(mbtk_device_info_item_enum item_type, void *item_ptr, int item_size);
int mbtk_dev_info_revision_get(char *revision_out, char *revision_in, char *project_cust, char *band_area,
char* build_time);
-#endif /* _MBTK_DEVICE_V2_H */
-
+#endif /* _MBTK_DEVICE_H */
diff --git a/mbtk/mbtk_at/asr/mbtk_device_info.c b/mbtk/mbtk_at/asr/mbtk_device_info.c
index 1158301..e1238a6 100755
--- a/mbtk/mbtk_at/asr/mbtk_device_info.c
+++ b/mbtk/mbtk_at/asr/mbtk_device_info.c
@@ -61,11 +61,20 @@
return -1;
}
- if(strlen(info_basic.revision_out) > 0) {
- memcpy(revision_out, info_basic.revision_out, strlen(info_basic.revision_out));
- }
- if(strlen(info_basic.revision_in) > 0) {
- memcpy(revision_in, info_basic.revision_in, strlen(info_basic.revision_in));
+ if(info_basic.version == DEV_INFO_VERSION_V1) {
+ if(strlen(info_basic.basic.v1.revision_out) > 0) {
+ memcpy(revision_out, info_basic.basic.v1.revision_out, strlen(info_basic.basic.v1.revision_out));
+ }
+ if(strlen(info_basic.basic.v1.revision_in) > 0) {
+ memcpy(revision_in, info_basic.basic.v1.revision_in, strlen(info_basic.basic.v1.revision_in));
+ }
+ } else {
+ if(strlen(info_basic.basic.v2.revision_out) > 0) {
+ memcpy(revision_out, info_basic.basic.v2.revision_out, strlen(info_basic.basic.v2.revision_out));
+ }
+ if(strlen(info_basic.basic.v2.revision_in) > 0) {
+ memcpy(revision_in, info_basic.basic.v2.revision_in, strlen(info_basic.basic.v2.revision_in));
+ }
}
dev_info_inited = TRUE;
return 0;
diff --git a/mbtk/mbtk_at/src/mbtk_at_basic.c b/mbtk/mbtk_at/src/mbtk_at_basic.c
index 55638ef..77be9bf 100755
--- a/mbtk/mbtk_at/src/mbtk_at_basic.c
+++ b/mbtk/mbtk_at/src/mbtk_at_basic.c
@@ -734,13 +734,23 @@
{
char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
if(!dev_info_get()) {
- snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX,
- "Revision:%s\r\n"
- "Custom_Model:%s\r\n"
- "Module_Type:%s\r\n",
- strlen(info_basic.revision_out) > 0 ? info_basic.revision_out: "Unknown",
- strlen(info_basic.project_cust) > 0 ? info_basic.project_cust: "Unknown",
- band_area_2_str(info_modem.band_area));
+ if(info_basic.version == DEV_INFO_VERSION_V1) {
+ snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX,
+ "Revision:%s\r\n"
+ "Custom_Model:%s\r\n"
+ "Module_Type:%s\r\n",
+ strlen(info_basic.basic.v1.revision_out) > 0 ? info_basic.basic.v1.revision_out: "Unknown",
+ strlen(info_basic.basic.v1.project_cust) > 0 ? info_basic.basic.v1.project_cust: "Unknown",
+ band_area_2_str(info_modem.modem.v1.band_area));
+ } else {
+ snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX,
+ "Revision:%s\r\n"
+ "Custom_Model:%s\r\n"
+ "Module_Type:%s\r\n",
+ strlen(info_basic.basic.v2.revision_out) > 0 ? info_basic.basic.v2.revision_out: "Unknown",
+ strlen(info_basic.basic.v2.project_cust) > 0 ? info_basic.basic.v2.project_cust: "Unknown",
+ band_area_2_str(info_modem.modem.v2.band_area));
+ }
} else {
snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX,
"Revision:%s\r\n"
@@ -1003,9 +1013,15 @@
{
char resp_buf[MBTK_AT_RESP_LEN_MAX] = {0};
if(!dev_info_get()) {
- snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX, "Version: %s\r\nBuild time: %s\r\n",
- strlen(info_basic.revision_out) > 0 ? info_basic.revision_out: "Unknown",
- strlen(info_basic.build_time) > 0 ? info_basic.build_time: "Unknown");
+ if(info_basic.version == DEV_INFO_VERSION_V1) {
+ snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX, "Version: %s\r\nBuild time: %s\r\n",
+ strlen(info_basic.basic.v1.revision_out) > 0 ? info_basic.basic.v1.revision_out: "Unknown",
+ strlen(info_basic.basic.v1.build_time) > 0 ? info_basic.basic.v1.build_time: "Unknown");
+ } else {
+ snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX, "Version: %s\r\nBuild time: %s\r\n",
+ strlen(info_basic.basic.v2.revision_out) > 0 ? info_basic.basic.v2.revision_out: "Unknown",
+ strlen(info_basic.basic.v2.build_time) > 0 ? info_basic.basic.v2.build_time: "Unknown");
+ }
} else {
snprintf(resp_buf, MBTK_AT_RESP_LEN_MAX, "Version: %s\r\nBuild time: %s\r\n",
"Unknown", "Unknown");