Revert "Revert "Fix device_info for v1/v2.""

This reverts commit 7514c31bc41f710de696c1b9c8ba446482eea641.

Reason for revert: okay

Change-Id: I2c8d1230db2998acc728dcd5496e71c1a9ca2eff
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");