Home | History | Annotate | Download | only in conn_init
      1 /*
      2  * Copyright 2012 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 #include <stdio.h>
     18 #include <stdlib.h>
     19 #include <string.h>
     20 #include <getopt.h>
     21 #include "wfc_util_fctrl.h"
     22 #include "wfc_util_common.h"
     23 
     24 #ifdef WLAN_CHIP_VERSION_WCNSS
     25 #ifndef WFC_UTIL_CFG_FILE_NAME
     26 #define WFC_UTIL_CFG_FILE_NAME          "./WCNSS_qcom_cfg.ini"
     27 #endif
     28 #ifndef WFC_UTIL_NV_BIN_FILE_NAME
     29 #define WFC_UTIL_NV_BIN_FILE_NAME       "./WCNSS_qcom_wlan_nv.bin"
     30 #endif
     31 #else  /* WLAN_CHIP_VERSION_WCN1314 */
     32 #ifndef WFC_UTIL_CFG_FILE_NAME
     33 #define WFC_UTIL_CFG_FILE_NAME          "./WCN1314_qcom_cfg.ini"
     34 #endif
     35 #ifndef WFC_UTIL_NV_BIN_FILE_NAME
     36 #define WFC_UTIL_NV_BIN_FILE_NAME       "./WCN1314_qcom_wlan_nv.bin"
     37 #endif
     38 #endif /* WLAN_CHIP_VERSION_XXXX */
     39 #define WFC_UTIL_CFG_TAG_END_OF_CFG     "END"
     40 #define WFC_UTIL_CFG_TAG_MAC_ADDRESS    "NetworkAddress="
     41 #define WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS "gAPMacAddr="
     42 #define WFC_UTIL_CFG_TAG_END_OF_LINE    "\n"
     43 #define WFC_UTIL_CFG_LENGHT_MAC         (6)
     44 #define WFC_UTIL_CFG_LENGHT_MAC_STRING  (WFC_UTIL_CFG_LENGHT_MAC*2)
     45 
     46 /*
     47  * persist/WCNSS_qcom_wlan_nv.bin
     48  *
     49  * typedef PACKED_PRE struct PACKED_POST
     50  * {
     51  *     //always ensure fields are aligned to 32-bit boundaries
     52  *     tANI_U16  productId;
     53  *     tANI_U8   productBands;
     54  *     tANI_U8   wlanNvRevId;
     55  *
     56  *     tANI_U8   numOfTxChains;
     57  *     tANI_U8   numOfRxChains;
     58  *     tANI_U8   macAddr[NV_FIELD_MAC_ADDR_SIZE];
     59  *     tANI_U8   mfgSN[NV_FIELD_MFG_SN_SIZE];
     60  * } sNvFields;
     61  */
     62 #define WFC_UTIL_NV_BIN_HEADER_LENGTH    (4)
     63 #define WFC_UTIL_NV_BIN_POS_PRODUCT_ID   (WFC_UTIL_NV_BIN_HEADER_LENGTH + 0)
     64 #define WFC_UTIL_NV_BIN_POS_PRODUCT_BAND (WFC_UTIL_NV_BIN_HEADER_LENGTH + 2)
     65 #define WFC_UTIL_NV_BIN_POS_MAC_ADDR     (WFC_UTIL_NV_BIN_HEADER_LENGTH + 6)
     66 
     67 int main(int argc, char **argv)
     68 {
     69 	int ret = 0;
     70 	char mac_add_buff[WFC_UTIL_CFG_LENGHT_MAC_STRING+1];
     71 	unsigned char mac_add_buff_2[WFC_UTIL_CFG_LENGHT_MAC] = {0x88, 0xcd, 0xba, 0x0c, 0x90, 0x00};
     72 	unsigned char mac_add_buff_3[WFC_UTIL_CFG_LENGHT_MAC] = {0x00, 0x90, 0x0c, 0xba, 0xcd, 0x88};
     73 
     74 	printf("wfc_util_main is started\n");
     75 
     76 	if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
     77 	                            WFC_UTIL_CFG_TAG_END_OF_CFG,
     78 	                            WFC_UTIL_CFG_TAG_MAC_ADDRESS,
     79 	                            WFC_UTIL_CFG_TAG_END_OF_LINE,
     80 	                            mac_add_buff,
     81 	                            WFC_UTIL_CFG_LENGHT_MAC_STRING+1)) {
     82 		printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
     83 	} else {
     84 		printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
     85 	}
     86 
     87 	wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
     88 	                     WFC_UTIL_CFG_TAG_END_OF_CFG,
     89 	                     WFC_UTIL_CFG_TAG_AP_MAC_ADDRESS,
     90 	                     WFC_UTIL_CFG_TAG_END_OF_LINE,
     91 	                     "00900cbacd88");
     92 
     93 	wfc_util_fset_string(WFC_UTIL_CFG_FILE_NAME,
     94 	                     WFC_UTIL_CFG_TAG_END_OF_CFG,
     95 	                     WFC_UTIL_CFG_TAG_MAC_ADDRESS,
     96 	                     WFC_UTIL_CFG_TAG_END_OF_LINE,
     97 	                     "00900cbacd88");
     98 
     99 	if(0 < wfc_util_fget_string(WFC_UTIL_CFG_FILE_NAME,
    100 	                            WFC_UTIL_CFG_TAG_END_OF_CFG,
    101 	                            WFC_UTIL_CFG_TAG_MAC_ADDRESS,
    102 	                            WFC_UTIL_CFG_TAG_END_OF_LINE,
    103 	                            mac_add_buff,
    104 	                            WFC_UTIL_CFG_LENGHT_MAC_STRING+1)) {
    105 		printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
    106 
    107 		wfc_util_atoh(mac_add_buff, strlen(mac_add_buff), mac_add_buff_2, WFC_UTIL_CFG_LENGHT_MAC);
    108 		printf("wfc_util_main : %s%02x:%02x:%02x:%02x:%02x:%02x\n",
    109 		                        WFC_UTIL_CFG_TAG_MAC_ADDRESS,
    110 		                        mac_add_buff_2[0], mac_add_buff_2[1], mac_add_buff_2[2],
    111 		                        mac_add_buff_2[3], mac_add_buff_2[4], mac_add_buff_2[5]);
    112 
    113 		wfc_util_htoa(mac_add_buff_2, WFC_UTIL_CFG_LENGHT_MAC, mac_add_buff, WFC_UTIL_CFG_LENGHT_MAC_STRING);
    114 		printf("wfc_util_main : %s%s\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS, mac_add_buff);
    115 
    116 	} else {
    117 		printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
    118 	}
    119 
    120 	wfc_util_fset_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
    121 	                     WFC_UTIL_NV_BIN_POS_MAC_ADDR,
    122 	                     mac_add_buff_3,
    123 	                     WFC_UTIL_CFG_LENGHT_MAC);
    124 
    125 	if(0 < wfc_util_fget_buffer(WFC_UTIL_NV_BIN_FILE_NAME,
    126 	                            WFC_UTIL_NV_BIN_POS_MAC_ADDR,
    127 	                            6,
    128 	                            mac_add_buff_2,
    129 	                            WFC_UTIL_CFG_LENGHT_MAC)) {
    130 		printf("wfc_util_main : wfc_util_fget_buffer[%02x:%02x:%02x:%02x:%02x:%02x]\n",
    131 		                        mac_add_buff_2[0], mac_add_buff_2[1], mac_add_buff_2[2],
    132 		                        mac_add_buff_2[3], mac_add_buff_2[4], mac_add_buff_2[5]);
    133 	} else {
    134 		printf("wfc_util_main : %s is not found\n", WFC_UTIL_CFG_TAG_MAC_ADDRESS);
    135 	}
    136 
    137 	return ret;
    138 }
    139 
    140