423 lines
15 KiB
C
423 lines
15 KiB
C
#include "system/includes.h"
|
|
#include "syscfg_id.h"
|
|
|
|
#ifdef CONFIG_EXT_WIFI_ENABLE
|
|
|
|
#define INTERFACE "wlan0"
|
|
#define DRIVER "rtl871xdrv"
|
|
#define DRIVER_NAME "RTL818x"
|
|
|
|
#if ((defined CONFIG_RTL8189E_ENABLE) || (defined CONFIG_RTL8822CS_ENABLE))
|
|
static char hostapd_config_file[] = \
|
|
"interface="INTERFACE"\n\
|
|
ssid=####SSID_LENTH_MUST_LESS_THAN_32\n\
|
|
channel=6\n\
|
|
macaddr_acl=0\n\
|
|
auth_algs=3\n\
|
|
ignore_broadcast_ssid=0\n\
|
|
wpa=#\n\
|
|
wpa_passphrase=#########wpa_passphrase_lenth_must_more_than_7_and_less_than_63\n\
|
|
wpa_key_mgmt=WPA-PSK\n\
|
|
wpa_pairwise=CCMP\n\
|
|
rsn_pairwise=CCMP\n\
|
|
wpa_group_rekey=86400\n\
|
|
wpa_gmk_rekey=86400\n\
|
|
wpa_ptk_rekey=86400\n\
|
|
driver="DRIVER"\n\
|
|
preamble=1\n\
|
|
hw_mode=g\n"
|
|
"ieee80211n=1\n"
|
|
"ht_capab=[SHORT-GI-20]\n\
|
|
wme_enabled=1\n\
|
|
device_name="DRIVER_NAME"\n\
|
|
manufacturer=Realtek\n\
|
|
logger_syslog=-1\n\
|
|
logger_syslog_level=2\n\
|
|
logger_stdout=-1\n\
|
|
logger_stdout_level=2\n\
|
|
ctrl_interface=/var/run/hostapd\n\
|
|
ctrl_interface_group=0\n\
|
|
beacon_int=100\n\
|
|
dtim_period=1\n\
|
|
max_num_sta=4\n\
|
|
rts_threshold=2347\n\
|
|
fragm_threshold=2346\n\
|
|
wmm_enabled=1\n\
|
|
wmm_ac_bk_cwmin=4\n\
|
|
wmm_ac_bk_cwmax=10\n\
|
|
wmm_ac_bk_aifs=7\n\
|
|
wmm_ac_bk_txop_limit=0\n\
|
|
wmm_ac_bk_acm=0\n\
|
|
wmm_ac_be_aifs=3\n\
|
|
wmm_ac_be_cwmin=4\n\
|
|
wmm_ac_be_cwmax=10\n\
|
|
wmm_ac_be_txop_limit=0\n\
|
|
wmm_ac_be_acm=0\n\
|
|
wmm_ac_vi_aifs=2\n\
|
|
wmm_ac_vi_cwmin=3\n\
|
|
wmm_ac_vi_cwmax=4\n\
|
|
wmm_ac_vi_txop_limit=94\n\
|
|
wmm_ac_vi_acm=0\n\
|
|
wmm_ac_vo_aifs=2\n\
|
|
wmm_ac_vo_cwmin=2\n\
|
|
wmm_ac_vo_cwmax=3\n\
|
|
wmm_ac_vo_txop_limit=47\n\
|
|
wmm_ac_vo_acm=0\n\
|
|
eapol_key_index_workaround=0\n\
|
|
eap_server=0\n\
|
|
own_ip_addr=192.168.1.1\n";
|
|
|
|
#elif CONFIG_RTL8822ES_10M_ENABLE
|
|
|
|
static char hostapd_config_file[] =
|
|
"interface=wlan0\n\
|
|
ssid=####SSID_LENTH_MUST_LESS_THAN_32\n\
|
|
channel=36\n\
|
|
macaddr_acl=0\n\
|
|
auth_algs=3\n\
|
|
ignore_broadcast_ssid=0\n\
|
|
wpa=#\n\
|
|
wpa_passphrase=#########wpa_passphrase_lenth_must_more_than_7_and_less_than_63\n\
|
|
wpa_key_mgmt=WPA-PSK\n\
|
|
wpa_pairwise=CCMP\n\
|
|
rsn_pairwise=CCMP\n\
|
|
wpa_group_rekey=86400\n\
|
|
wpa_gmk_rekey=86400\n\
|
|
wpa_ptk_rekey=86400\n\
|
|
driver=rtl871xdrv\n\
|
|
preamble=1\n\
|
|
hw_mode=a\n"
|
|
"ieee80211n=0\n"
|
|
"ht_capab=[SHORT-GI-20]\n\
|
|
wme_enabled=1\n\
|
|
device_name=RTL818x\n\
|
|
manufacturer=Realtek\n\
|
|
logger_syslog=-1\n\
|
|
logger_syslog_level=2\n\
|
|
logger_stdout=-1\n\
|
|
logger_stdout_level=2\n\
|
|
ctrl_interface=/var/run/hostapd\n\
|
|
ctrl_interface_group=0\n\
|
|
beacon_int=100\n\
|
|
dtim_period=1\n\
|
|
max_num_sta=4\n\
|
|
rts_threshold=2347\n\
|
|
fragm_threshold=2346\n\
|
|
wmm_enabled=1\n\
|
|
wmm_ac_bk_cwmin=4\n\
|
|
wmm_ac_bk_cwmax=10\n\
|
|
wmm_ac_bk_aifs=7\n\
|
|
wmm_ac_bk_txop_limit=0\n\
|
|
wmm_ac_bk_acm=0\n\
|
|
wmm_ac_be_aifs=3\n\
|
|
wmm_ac_be_cwmin=4\n\
|
|
wmm_ac_be_cwmax=10\n\
|
|
wmm_ac_be_txop_limit=0\n\
|
|
wmm_ac_be_acm=0\n\
|
|
wmm_ac_vi_aifs=2\n\
|
|
wmm_ac_vi_cwmin=3\n\
|
|
wmm_ac_vi_cwmax=4\n\
|
|
wmm_ac_vi_txop_limit=94\n\
|
|
wmm_ac_vi_acm=0\n\
|
|
wmm_ac_vo_aifs=2\n\
|
|
wmm_ac_vo_cwmin=2\n\
|
|
wmm_ac_vo_cwmax=3\n\
|
|
wmm_ac_vo_txop_limit=47\n\
|
|
wmm_ac_vo_acm=0\n\
|
|
eapol_key_index_workaround=0\n\
|
|
eap_server=0\n\
|
|
own_ip_addr=192.168.1.1\n";
|
|
|
|
#endif
|
|
|
|
|
|
/*wps channel only support 1 5 9 */
|
|
|
|
static char wps_hostapd_config_file[] = \
|
|
"interface=wlan0\n\
|
|
ctrl_interface=/var/run/hostapd\n\
|
|
ctrl_interface_group=0\n\
|
|
macaddr_acl=0\n\
|
|
rsn_pairwise=CCMP\n\
|
|
wpa_gmk_rekey=86400\n\
|
|
wpa_ptk_rekey=86400\n\
|
|
preamble=1\n\
|
|
ht_capab=[SHORT-GI-20]\n\
|
|
logger_syslog=-1\n\
|
|
logger_syslog_level=2\n\
|
|
logger_stdout=-1\n\
|
|
logger_stdout_level=2\n\
|
|
dtim_period=1\n\
|
|
rts_threshold=2347\n\
|
|
fragm_threshold=2346\n\
|
|
wmm_enabled=1\n\
|
|
wmm_ac_bk_cwmin=4\n\
|
|
wmm_ac_bk_cwmax=10\n\
|
|
wmm_ac_bk_aifs=7\n\
|
|
wmm_ac_bk_txop_limit=0\n\
|
|
wmm_ac_bk_acm=0\n\
|
|
wmm_ac_be_aifs=3\n\
|
|
wmm_ac_be_cwmin=4\n\
|
|
wmm_ac_be_cwmax=10\n\
|
|
wmm_ac_be_txop_limit=0\n\
|
|
wmm_ac_be_acm=0\n\
|
|
wmm_ac_vi_aifs=2\n\
|
|
wmm_ac_vi_cwmin=3\n\
|
|
wmm_ac_vi_cwmax=4\n\
|
|
wmm_ac_vi_txop_limit=94\n\
|
|
wmm_ac_vi_acm=0\n\
|
|
wmm_ac_vo_aifs=2\n\
|
|
wmm_ac_vo_cwmin=2\n\
|
|
wmm_ac_vo_cwmax=3\n\
|
|
wmm_ac_vo_txop_limit=47\n\
|
|
wmm_ac_vo_acm=0\n\
|
|
eapol_key_index_workaround=0\n\
|
|
own_ip_addr=192.168.1.1\n\
|
|
ssid=wifi_camera_ac54_wlan_direct\n\
|
|
channel=06\n\
|
|
wpa=2\n\
|
|
wpa_passphrase=12345678\n\
|
|
auth_algs=3\n\
|
|
ignore_broadcast_ssid=0\n\
|
|
eap_server=1\n\
|
|
wps_state=2\n\
|
|
uuid=12345678-9abc-def0-1234-56789abcdef0\n\
|
|
device_name=wifi_camera_ac54_wlan_direct\n\
|
|
manufacturer=Realtek\n\
|
|
model_name=RTW_SOFTAP\n\
|
|
model_number=WLAN_ES\n\
|
|
serial_number=12345\n\
|
|
device_type=6-0050F204-1\n\
|
|
os_version=01020300\n\
|
|
config_methods=label display push_button keypad\n\
|
|
driver=rtl871xdrv\n\
|
|
beacon_int=100\n\
|
|
hw_mode=g\n\
|
|
ieee80211n=1\n\
|
|
wme_enabled=1\n\
|
|
wpa_key_mgmt=WPA-PSK\n\
|
|
wpa_pairwise=CCMP\n\
|
|
max_num_sta=4\n\
|
|
wpa_group_rekey=86400\n";
|
|
|
|
|
|
|
|
|
|
const char *get_hostapd_config_file(unsigned char enable_wps)
|
|
{
|
|
#if ((defined CONFIG_RTL8189E_ENABLE) || \
|
|
(defined CONFIG_RTL8822ES_10M_ENABLE) || \
|
|
(defined CONFIG_RTL8822CS_ENABLE))
|
|
if (enable_wps) {
|
|
return wps_hostapd_config_file;
|
|
} else {
|
|
return hostapd_config_file;
|
|
}
|
|
#endif
|
|
return (char *)0;
|
|
}
|
|
|
|
|
|
#if 0
|
|
const u8 ntp_get_time_init = 0;
|
|
const u8 IPV4_ADDR_CONFLICT_DETECT = 0;
|
|
|
|
//void wifi_get_mode_cur_info(struct wifi_mode_info *info)
|
|
void wifi_get_mode_cur_info(void *info)
|
|
{
|
|
printf("%s, %s, line = %d\n", __FILE__, __FUNCTION__, __LINE__);
|
|
}
|
|
int wifi_get_mac(u8 *mac)
|
|
{
|
|
int netdev_get_mac_addr(char *mac_addr);
|
|
int ret = netdev_get_mac_addr(mac);
|
|
printf("%s, %s, line = %d, %02x:%02x:%02x:%02x:%02x:%02x\n", __FILE__, __FUNCTION__, __LINE__, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
|
return ret;
|
|
}
|
|
#endif
|
|
|
|
int db_select_buffer(u8 index, char *buffer, int len)
|
|
{
|
|
return syscfg_read(index, buffer, len);
|
|
}
|
|
|
|
|
|
int db_update_buffer(u8 index, char *buffer, int len)
|
|
{
|
|
return syscfg_write(index, buffer, len);
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_RTL8822CS_ENABLE
|
|
|
|
static char rtw_8822cs_cache_efuse[1024] = {
|
|
0x29, 0x81, 0x00, 0x8F, 0xFF, 0x20, 0x28, 0x00, 0x9A, 0x04, 0xED, 0x75, 0x10, 0x0F, 0xF1, 0xEB,
|
|
0x57, 0x50, 0x54, 0x59, 0x59, 0x59, 0x4D, 0x4D, 0x4E, 0x52, 0x52, 0x26, 0x00, 0x00, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0x54, 0x53, 0x52, 0x52, 0x54, 0x4F, 0x4A, 0x4B, 0x4C, 0x4C, 0x4E, 0x4E, 0x4E, 0x4E,
|
|
0x26, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xE0, 0xA0, 0xFF, 0xFF, 0x61, 0x62, 0x62, 0x63, 0x63, 0x63,
|
|
0x56, 0x56, 0x57, 0x59, 0x59, 0x26, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x4E, 0x4D, 0x4D, 0x4D,
|
|
0x53, 0x4F, 0x4C, 0x4B, 0x4A, 0x4A, 0x49, 0x49, 0x49, 0x49, 0x26, 0x00, 0xFF, 0xFF, 0x00, 0xFF,
|
|
0xE0, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x55, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0x21, 0x00, 0x10, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x33, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0x1E, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xF0, 0x94, 0x65, 0xD3, 0x58, 0xC5, 0xFF, 0xFF, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xC0, 0xC0, 0xFC, 0xA0, 0xD8, 0xD8, 0xFD, 0xFF, 0x35, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFE, 0xDF, 0x01, 0x23, 0x34, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x02, 0x22, 0xC8, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,/*mac*/0x7C, 0xA7, 0xB0, 0xC7, 0xFD, 0xBE, /*end of mac*/
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
};
|
|
|
|
#define MAC_ADDR_OFFSET 0X16A
|
|
#define GET_RTW_CACHE_EFUSE_ADDR rtw_8822cs_cache_efuse
|
|
|
|
#define MAC_ADDR_LEN 6
|
|
|
|
#define PATHA_CCK_POWER_IDX_OFFSET 0X10
|
|
#define PATHA_CCK_POWER_IDX_LEN 6
|
|
|
|
#define PATHA_BW40_1S_POWER_IDX_OFFSET 0x16
|
|
#define PATHA_BW40_1S_POWER_IDX_LEN 5
|
|
|
|
#define PATHA_BW20_1S_DIFF_OFDM_1_POWER_IDX_DIFF_OFFSET 0x1B
|
|
#define PATHA_BW20_1S_DIFF_OFDM_1_POWER_IDX_DIFF_LEN 1
|
|
|
|
static int get_flash_mac_addr(char mac[6])
|
|
{
|
|
if (db_select_buffer(EXT_WIFI_MAC_IDX, mac, MAC_ADDR_LEN) == MAC_ADDR_LEN) {
|
|
printf("get_flash_mac_addr valid [%x:%x:%x:%x:%x:%x] \r\n",
|
|
(unsigned char)mac[0], (unsigned char)mac[1], (unsigned char)mac[2], (unsigned char)mac[3], (unsigned char)mac[4], (unsigned char)mac[5]);
|
|
|
|
return 0;
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
char *get_rtw_cache_efuse(void)
|
|
{
|
|
return 0;
|
|
char macaddr[MAC_ADDR_LEN];
|
|
if (get_flash_mac_addr(macaddr) == 0) {
|
|
memcpy(&GET_RTW_CACHE_EFUSE_ADDR[MAC_ADDR_OFFSET], macaddr, MAC_ADDR_LEN);
|
|
} else {
|
|
void get_random_bytes(char *buf, int nbytes);
|
|
char macaddr[MAC_ADDR_LEN];
|
|
get_random_bytes(macaddr, MAC_ADDR_LEN);
|
|
macaddr[0] &= ~((1 << 0) | (1 << 1));
|
|
memcpy(&GET_RTW_CACHE_EFUSE_ADDR[MAC_ADDR_OFFSET], macaddr, MAC_ADDR_LEN);
|
|
db_update_buffer(EXT_WIFI_MAC_IDX, macaddr, MAC_ADDR_LEN);
|
|
printf("wifi use random mac[%x:%x:%x:%x:%x:%x] \r\n", (unsigned char)macaddr[0], (unsigned char)macaddr[1], (unsigned char)macaddr[2], (unsigned char)macaddr[3], (unsigned char)macaddr[4], (unsigned char)macaddr[5]);
|
|
}
|
|
return GET_RTW_CACHE_EFUSE_ADDR;
|
|
}
|
|
|
|
|
|
int get_rtw_cache_mac_addr(char *mac)
|
|
{
|
|
if (!mac) {
|
|
return 0;
|
|
}
|
|
char macaddr[MAC_ADDR_LEN];
|
|
if (get_flash_mac_addr(macaddr) == 0) {
|
|
memcpy(mac, macaddr, MAC_ADDR_LEN);
|
|
} else {
|
|
void get_random_bytes(char *buf, int nbytes);
|
|
char macaddr[MAC_ADDR_LEN];
|
|
get_random_bytes(macaddr, MAC_ADDR_LEN);
|
|
macaddr[0] &= ~((1 << 0) | (1 << 1));
|
|
memcpy(mac, macaddr, MAC_ADDR_LEN);
|
|
db_update_buffer(EXT_WIFI_MAC_IDX, macaddr, MAC_ADDR_LEN);
|
|
printf(" wifi use random mac[%x:%x:%x:%x:%x:%x] \r\n", (unsigned char)macaddr[0], (unsigned char)macaddr[1], (unsigned char)macaddr[2], (unsigned char)macaddr[3], (unsigned char)macaddr[4], (unsigned char)macaddr[5]);
|
|
}
|
|
return MAC_ADDR_LEN;
|
|
}
|
|
|
|
|
|
void set_rtw_cache_efuse(char *buf, unsigned int len)
|
|
{
|
|
if (len > sizeof(GET_RTW_CACHE_EFUSE_ADDR)) {
|
|
printf("set_rtw_cache_efuse file size error!!!!, %d ,while1 \r\n", len);
|
|
while (1);
|
|
}
|
|
memcpy(GET_RTW_CACHE_EFUSE_ADDR, buf, len);
|
|
|
|
//put_buf(GET_RTW_CACHE_EFUSE_ADDR, len);
|
|
}
|
|
|
|
|
|
void set_rtw_cache_efuse_macaddr(char *macaddr[6])
|
|
{
|
|
memcpy(&GET_RTW_CACHE_EFUSE_ADDR[MAC_ADDR_OFFSET], macaddr, MAC_ADDR_LEN);
|
|
|
|
//第一个字节的BIT0和BIT1不能够为1, 另外不能够全0xff和全0x00
|
|
GET_RTW_CACHE_EFUSE_ADDR[MAC_ADDR_OFFSET] &= ~((1 << 0) | (1 << 1));
|
|
}
|
|
|
|
|
|
void set_rtw_cache_efuse_power_index(void)
|
|
{
|
|
memset(&GET_RTW_CACHE_EFUSE_ADDR[PATHA_CCK_POWER_IDX_OFFSET], 0x28, PATHA_CCK_POWER_IDX_LEN);
|
|
memset(&GET_RTW_CACHE_EFUSE_ADDR[PATHA_BW40_1S_POWER_IDX_OFFSET], 0x28, PATHA_BW40_1S_POWER_IDX_LEN);
|
|
memset(&GET_RTW_CACHE_EFUSE_ADDR[PATHA_BW20_1S_DIFF_OFDM_1_POWER_IDX_DIFF_OFFSET], 0x03, PATHA_BW20_1S_DIFF_OFDM_1_POWER_IDX_DIFF_LEN);
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|