feat(wifi): refactor and add more wifi feature for 11n certificate

This commit is contained in:
Zhang Jun Hao
2019-08-12 14:06:25 +08:00
parent f12b37bdf5
commit 53813599e9
7 changed files with 204 additions and 41 deletions

View File

@ -76,6 +76,15 @@ static void esp_wifi_set_debug_log()
#endif
#if CONFIG_ESP8266_WIFI_DEBUG_LOG_SUBMODULE_WPS
wifi_log_submodule |= WIFI_LOG_SUBMODULE_WPS;
#endif
#if CONFIG_ESP8266_WIFI_DEBUG_LOG_SUBMODULE_AMPDU
wifi_log_submodule |= WIFI_LOG_SUBMODULE_AMPDU;
#endif
#if CONFIG_ESP8266_WIFI_DEBUG_LOG_SUBMODULE_AMSDU
wifi_log_submodule |= WIFI_LOG_SUBMODULE_AMSDU;
#endif
#if CONFIG_ESP8266_WIFI_DEBUG_LOG_SUBMODULE_FRAG
wifi_log_submodule |= WIFI_LOG_SUBMODULE_FRAG;
#endif
esp_wifi_internal_set_log_level(wifi_log_level);
esp_wifi_internal_set_log_mod(wifi_log_submodule);

View File

@ -29,6 +29,8 @@ void phy_afterwake_set_rfoption(uint8_t);
void write_data_to_rtc(uint8_t *);
void get_data_from_rtc(uint8_t *);
int register_chipv6_phy(uint8_t* );
void phy_disable_agc();
uint8_t chip_init(uint8_t* init_data, uint8_t *mac, uint32_t uart_baudrate);

View File

@ -68,12 +68,7 @@ esp_err_t esp_phy_rf_init(const esp_phy_init_data_t* init_data, esp_phy_calibrat
{
esp_err_t status = ESP_OK;
uint8_t sta_mac[6];
uint8_t* local_init_data = calloc(1, 256);
#ifdef CONFIG_CONSOLE_UART_BAUDRATE
const uint32_t uart_baudrate = CONFIG_CONSOLE_UART_BAUDRATE;
#else
const uint32_t uart_baudrate = 74880; // ROM default baudrate
#endif
uint8_t *local_init_data = calloc(1, 256);
memcpy(local_init_data, init_data->params, 128);
@ -89,9 +84,16 @@ esp_err_t esp_phy_rf_init(const esp_phy_init_data_t* init_data, esp_phy_calibrat
}
esp_efuse_mac_get_default(sta_mac);
chip_init(local_init_data, sta_mac, uart_baudrate);
ESP_LOGI(TAG, "phy ver: %d_%d", (READ_PERI_REG(0x6000107C) >> 16) & 0xFFF, READ_PERI_REG(0x6000107C) >> 28);
get_data_from_rtc((uint8_t*)calibration_data);
int ret = register_chipv6_phy(local_init_data);
if (ret) {
ESP_LOGI(TAG, "phy register error, ret:%d", ret);
}
phy_disable_agc();
ESP_LOGI(TAG, "phy ver: %d_%d", (READ_PERI_REG(0x6000107C)>>16)&0xFFF, READ_PERI_REG(0x6000107C)>>28);
get_data_from_rtc((uint8_t *)calibration_data);
memcpy(rx_gain_dc_table, calibration_data->rx_gain_dc_table, 4 * 125);
phy_rx_gain_dc_table = rx_gain_dc_table;

View File

@ -30,6 +30,7 @@
#include "internal/esp_wifi_internal.h"
#include "internal/esp_system_internal.h"
#include "esp8266/eagle_soc.h"
#include "esp8266/uart_register.h"
#include "FreeRTOS.h"
#include "task.h"
@ -47,6 +48,7 @@ extern int wifi_timer_init(void);
extern int wifi_nvs_init(void);
extern esp_err_t esp_pthread_init(void);
extern void phy_get_bb_evm(void);
extern void uart_div_modify(uint8_t uart_no, uint16_t DivLatchValue);
static inline int should_load(uint32_t load_addr)
{
@ -61,6 +63,19 @@ static inline int should_load(uint32_t load_addr)
return 1;
}
static inline void uart_init()
{
#ifdef CONFIG_CONSOLE_UART_BAUDRATE
const uint32_t uart_baudrate = CONFIG_CONSOLE_UART_BAUDRATE;
#else
const uint32_t uart_baudrate = 74880; // ROM default baudrate
#endif
while (READ_PERI_REG(UART_STATUS(0)) & (UART_TXFIFO_CNT << UART_TXFIFO_CNT_S));
while (READ_PERI_REG(UART_STATUS(1)) & (UART_TXFIFO_CNT << UART_TXFIFO_CNT_S));
uart_div_modify(0, UART_CLK_FREQ / uart_baudrate);
uart_div_modify(1, UART_CLK_FREQ / uart_baudrate);
}
static void user_init_entry(void *param)
{
void (**func)(void);
@ -76,13 +91,16 @@ static void user_init_entry(void *param)
phy_get_bb_evm();
/*enable tsf0 interrupt for pwm*/
REG_WRITE(PERIPHS_DPORT_BASEADDR, (REG_READ(PERIPHS_DPORT_BASEADDR) & ~0x1F) | 0x1);
REG_WRITE(INT_ENA_WDEV, REG_READ(INT_ENA_WDEV) | WDEV_TSF0_REACH_INT);
assert(nvs_flash_init() == 0);
assert(wifi_nvs_init() == 0);
assert(rtc_init() == 0);
assert(mac_init() == 0);
uart_init();
assert(base_gpio_init() == 0);
esp_phy_load_cal_and_init(0);
assert(wifi_timer_init() == 0);
esp_wifi_set_rx_pbuf_mem_type(WIFI_RX_PBUF_DRAM);