Merge pull request #13198 from kyle-cypress/pr/whd-1.91.2

Cypress: Update WHD to version 1.91.2
pull/13223/head
Martin Kojtal 2020-07-01 12:01:51 +02:00 committed by GitHub
commit ab84dcde03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 205 additions and 128 deletions

View File

@ -113,13 +113,16 @@ static nsapi_security_t whd_tosecurity(whd_security_t sec)
case WHD_SECURITY_WEP_PSK:
case WHD_SECURITY_WEP_SHARED:
return NSAPI_SECURITY_WEP;
case WHD_SECURITY_WPA_MIXED_PSK:
case WHD_SECURITY_WPA_TKIP_PSK:
case WHD_SECURITY_WPA_TKIP_ENT:
return NSAPI_SECURITY_WPA;
case WHD_SECURITY_WPA2_MIXED_PSK:
case WHD_SECURITY_WPA2_WPA_AES_PSK:
case WHD_SECURITY_WPA2_WPA_MIXED_PSK:
return NSAPI_SECURITY_WPA_WPA2;
case WHD_SECURITY_WPA2_MIXED_ENT:
return NSAPI_SECURITY_WPA2_ENT;
case WHD_SECURITY_WPA2_MIXED_PSK:
case WHD_SECURITY_WPA2_AES_PSK:
case WHD_SECURITY_WPA2_AES_ENT:
case WHD_SECURITY_WPA2_FBT_PSK:

View File

@ -6,4 +6,4 @@
* MAC address is printed during WHD power up
*/
#define NVRAM_GENERATED_MAC_ADDRESS "macaddr=00:A0:50:83:ef:22"
#define NVRAM_GENERATED_MAC_ADDRESS "macaddr=00:A0:50:6f:b2:ea"

View File

@ -44,6 +44,7 @@ extern "C"
#define WPA_SECURITY 0x00200000 /**< Flag to enable WPA Security */
#define WPA2_SECURITY 0x00400000 /**< Flag to enable WPA2 Security */
#define WPA3_SECURITY 0x01000000 /**< Flag to enable WPA3 PSK Security */
#define SECURITY_MASK (WEP_ENABLED | TKIP_ENABLED | AES_ENABLED) /**< Flag to Security mask */
#define ENTERPRISE_ENABLED 0x02000000 /**< Flag to enable Enterprise Security */
#define WPS_ENABLED 0x10000000 /**< Flag to enable WPS Security */
@ -191,6 +192,9 @@ typedef enum
WHD_SECURITY_WPA2_MIXED_PSK = (WPA2_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA2 PSK Security with AES & TKIP */
WHD_SECURITY_WPA2_FBT_PSK = (WPA2_SECURITY | AES_ENABLED | FBT_ENABLED), /**< WPA2 FBT PSK Security with AES & TKIP */
WHD_SECURITY_WPA3_SAE = (WPA3_SECURITY | AES_ENABLED), /**< WPA3 Security with AES */
WHD_SECURITY_WPA2_WPA_AES_PSK = (WPA2_SECURITY | WPA_SECURITY | AES_ENABLED), /**< WPA2 WPA PSK Security with AES */
WHD_SECURITY_WPA2_WPA_MIXED_PSK = (WPA2_SECURITY | WPA_SECURITY | AES_ENABLED | TKIP_ENABLED), /**< WPA2 WPA PSK Security with AES & TKIP */
WHD_SECURITY_WPA3_WPA2_PSK = (WPA3_SECURITY | WPA2_SECURITY | AES_ENABLED), /**< WPA3 WPA2 PSK Security with AES */
WHD_SECURITY_WPA_TKIP_ENT = (ENTERPRISE_ENABLED | WPA_SECURITY | TKIP_ENABLED), /**< WPA Enterprise Security with TKIP */

View File

@ -1,3 +1,3 @@
#define WHD_VERSION "v1.90.2"
#define WHD_BRANCH "v1.90.2"
#define WHD_DATE "2020-04-13 02:49:57 -0500"
#define WHD_VERSION "v1.91.2"
#define WHD_BRANCH "v1.91.2"
#define WHD_DATE "2020-06-25 02:15:47 -0500"

View File

@ -289,7 +289,8 @@ extern uint32_t whd_wifi_join(whd_interface_t ifp, const whd_ssid_t *ssid, whd_s
* On successful return, the system is ready to send data packets.
*
* @param ifp Pointer to handle instance of whd interface
* @param ap A pointer to a whd_scan_result_t structure containing AP details
* @param ap A pointer to a whd_scan_result_t structure containing AP details and
* set ap.channel to 0 for unspecificed channel
* @param security_key A byte array containing either the cleartext security key for WPA/WPA2
* secured networks
* @param key_length The length of the security_key in bytes.
@ -804,7 +805,7 @@ whd_result_t whd_arp_cache_clear(whd_interface_t ifp);
/** Get ARP Offload Feature Flags from Device (WLAN)
*
* @param[in] ifp : pointer to handle instance of whd interface
* @param[out] features : ptr to store currently set features - bit flags @ref CY_ARP_OL_AGENT_ENABLE, etc.
* @param[out] features : ptr to store currently set features - bit flags CY_ARP_OL_AGENT_ENABLE, etc.
* ARL_OL_AGENT | ARL_OL_SNOOP | ARP_OL_HOST_AUTO_REPLY | ARP_OL_PEER_AUTO_REPLY
*
* @return whd_result_t
@ -814,7 +815,7 @@ whd_result_t whd_arp_features_get(whd_interface_t ifp, uint32_t *features);
/** Set ARP Offload Feature Flags in Device (WLAN)
*
* @param[in] ifp : pointer to handle instance of whd interface
* @param[in] features : features to set value (you can OR ('|') multiple flags) @ref CY_ARP_OL_AGENT_ENABLE, etc.
* @param[in] features : features to set value (you can OR ('|') multiple flags) CY_ARP_OL_AGENT_ENABLE, etc.
* ARL_OL_AGENT | ARL_OL_SNOOP | ARP_OL_HOST_AUTO_REPLY | ARP_OL_PEER_AUTO_REPLY
*
* @return whd_result_t
@ -823,7 +824,7 @@ whd_result_t whd_arp_features_set(whd_interface_t ifp, uint32_t features);
/** Print ARP Offload Feature Flags in Human readable form to console
*
* @param[in] features : feature flags to set (you can OR '|' multiple flags) @ref CY_ARP_OL_AGENT_ENABLE, etc.
* @param[in] features : feature flags to set (you can OR '|' multiple flags) CY_ARP_OL_AGENT_ENABLE, etc.
* ARL_OL_AGENT | ARL_OL_SNOOP | ARP_OL_HOST_AUTO_REPLY | ARP_OL_PEER_AUTO_REPLY
* @param[in] title : Optional: Title for output (NULL == no title)
*
@ -898,7 +899,7 @@ whd_result_t whd_arp_stats_clear(whd_interface_t ifp);
/** Get ARP Offload statistics from Device (WLAN)
*
* @param[in] ifp : pointer to handle instance of whd interface
* @param[out] stats : Ptr to store statistics @ref whd_arp_stats_t
* @param[out] stats : Ptr to store statistics whd_arp_stats_t
*
* @return whd_result_t
*/

View File

@ -1,96 +0,0 @@
/*
* Copyright (c) 2019, Cypress Semiconductor Corporation, All Rights Reserved
* SPDX-License-Identifier: LicenseRef-PBL
*
* This file and the related binary are licensed under the
* Permissive Binary License, Version 1.0 (the "License");
* you may not use these files except in compliance with the License.
*
* You may obtain a copy of the License here:
* LICENSE-permissive-binary-license-1.0.txt and at
* https://www.mbed.com/licenses/PBL-1.0
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef INCLUDED_NVRAM_IMAGE_H_
#define INCLUDED_NVRAM_IMAGE_H_
#include <string.h>
#include <stdint.h>
#include "generated_mac_address.txt"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Character array of NVRAM image
* Generated from cyw9cy8cmod-064b0s2-4343w_P100_724315.txt
*/
static const char wifi_nvram_image[] =
"NVRAMRev=$Rev: 724315 $" "\x00"
"manfid=0x2d0" "\x00"
"prodid=0x087d" "\x00"
"vendid=0x14e4" "\x00"
"devid=0x43e2" "\x00"
"boardtype=0x087d" "\x00"
"boardrev=0x1100" "\x00"
"boardnum=22" "\x00"
NVRAM_GENERATED_MAC_ADDRESS "\x00"
"sromrev=11" "\x00"
"boardflags=0x00404201" "\x00"
"boardflags3=0x08000000" "\x00"
"xtalfreq=37400" "\x00"
"nocrc=1" "\x00"
"ag0=255" "\x00"
"aa2g=1" "\x00"
"ccode=ALL" "\x00"
"" "\x00"
"swdiv_en=1" "\x00"
"swdiv_gpio=2" "\x00"
"" "\x00"
"pa0itssit=0x20" "\x00"
"extpagain2g=0" "\x00"
"" "\x00"
"pa2ga0=-168,6393,-757" "\x00"
"AvVmid_c0=0x0,0xc8" "\x00"
"AvVmidIQcal=0x2,0xa8" "\x00"
"cckpwroffset0=5" "\x00"
"" "\x00"
"maxp2ga0=84" "\x00"
"txpwrbckof=6" "\x00"
"cckbw202gpo=0" "\x00"
"legofdmbw202gpo=0x66111111" "\x00"
"mcsbw202gpo=0x77711111" "\x00"
"propbw202gpo=0xdd" "\x00"
"" "\x00"
"ofdmdigfilttype=18" "\x00"
"ofdmdigfilttypebe=18" "\x00"
"papdmode=1" "\x00"
"papdvalidtest=1" "\x00"
"pacalidx2g=32" "\x00"
"papdepsoffset=-36" "\x00"
"papdendidx=61" "\x00"
"" "\x00"
"" "\x00"
"wl0id=0x431b" "\x00"
"" "\x00"
"deadman_to=0xffffffff" "\x00"
"muxenab=0x11" "\x00"
"" "\x00"
"spurconfig=0x3 " "\x00"
"" "\x00"
"rssicorrnorm=1" "\x00"
"\x00\x00";
#ifdef __cplusplus
} /*extern "C" */
#endif
#else /* ifndef INCLUDED_NVRAM_IMAGE_H_ */
#error Wi-Fi NVRAM image included twice
#endif /* ifndef INCLUDED_NVRAM_IMAGE_H_ */

View File

@ -0,0 +1,157 @@
/*
* Copyright (c) 2019, Cypress Semiconductor Corporation, All Rights Reserved
* SPDX-License-Identifier: LicenseRef-PBL
*
* This file and the related binary are licensed under the
* Permissive Binary License, Version 1.0 (the "License");
* you may not use these files except in compliance with the License.
*
* You may obtain a copy of the License here:
* LICENSE-permissive-binary-license-1.0.txt and at
* https://www.mbed.com/licenses/PBL-1.0
*
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef INCLUDED_NVRAM_IMAGE_H_
#define INCLUDED_NVRAM_IMAGE_H_
#include <string.h>
#include <stdint.h>
#include "generated_mac_address.txt"
#ifdef __cplusplus
extern "C" {
#endif
/**
* Character array of NVRAM image
* Generated from cyw943012p6evb_01_P202_723362.txt
*/
static const char wifi_nvram_image[] =
"NVRAMRev=$Rev:723362 $" "\x00"
"sromrev=11" "\x00"
"cckdigfilttype=4" "\x00"
"cckpwroffset0=2" "\x00"
"bphyscale=0x20" "\x00"
"boardflags3=0x40000100" "\x00"
"vendid=0x14e4" "\x00"
"devid=0xA804" "\x00"
"manfid=0x2d0" "\x00"
"prodid=0x052e" "\x00"
NVRAM_GENERATED_MAC_ADDRESS "\x00"
"mac_clkgating=1" "\x00"
"nocrc=1" "\x00"
"boardtype=0x0871" "\x00"
"boardrev=0x1202" "\x00"
"xtalfreq=37400" "\x00"
"boardflags2=0xc0000000" "\x00"
"boardflags=0x00000001" "\x00"
"etmode=0x11" "\x00"
"extpagain2g=2" "\x00"
"extpagain5g=2" "\x00"
"ccode=0" "\x00"
"regrev=0" "\x00"
"antswitch=0" "\x00"
"rxgains2gelnagaina0=0" "\x00"
"rxgains2gtrisoa0=15" "\x00"
"rxgains2gtrelnabypa0=0" "\x00"
"rxgains5gelnagaina0=0" "\x00"
"rxgains5gtrisoa0=9" "\x00"
"rxgains5gtrelnabypa0=0" "\x00"
"pdgain5g=0" "\x00"
"pdgain2g=0" "\x00"
"tworangetssi2g=0" "\x00"
"tworangetssi5g=0" "\x00"
"rxchain=1" "\x00"
"txchain=1" "\x00"
"aa2g=1" "\x00"
"aa5g=1" "\x00"
"tssipos5g=0" "\x00"
"tssipos2g=0" "\x00"
"femctrl=17" "\x00"
"subband5gver=4" "\x00"
"pa2ga0=-108,6062,-661" "\x00"
"pa5ga0=-82,6252,-698,-14,6722,-697,-92,6084,-710,-88,6465,-755" "\x00"
"pdoffset40ma0=0" "\x00"
"pdoffset80ma0=0" "\x00"
"lowpowerrange2g=0" "\x00"
"lowpowerrange5g=0" "\x00"
"ed_thresh2g=-63" "\x00"
"ed_thresh5g=-63" "\x00"
"swctrlmap_2g=0x10101010,0x20202020,0x10101010,0x442020,0x3ff" "\x00"
"swctrlmapext_2g=0x01000100,0x01000100,0x01000100,0x000000,0x301" "\x00"
"swctrlmap_5g=0x80808080,0x00000000,0x80808080,0x442020,0x381" "\x00"
"swctrlmapext_5g=0x01000100,0x01000100,0x00000000,0x000000,0x303" "\x00"
"ulpnap=0" "\x00"
"ulpadc=1" "\x00"
"ssagc_en=0" "\x00"
"ds1_nap=0" "\x00"
"spurcan_ch_list_MHz=2422,2427,2432,2437,2462,2467,2472" "\x00"
"spurcan_sp_freq_KHz=9000,4000,-1000,-6000,6400,1400,-3600" "\x00"
"spurcan_NumSpur=7" "\x00"
"epacal2g=0" "\x00"
"epacal5g=0" "\x00"
"papdcck=0" "\x00"
"epacal2g_mask=0x3fff" "\x00"
"maxp2ga0=74" "\x00"
"ofdmlrbw202gpo=0x0020" "\x00"
"dot11agofdmhrbw202gpo=0x6442" "\x00"
"mcsbw202gpo=0xCC864420" "\x00"
"maxp5ga0=70,70,70,70" "\x00"
"mcsbw205glpo=0xCC864220" "\x00"
"mcsbw205gmpo=0xCC864220" "\x00"
"mcsbw205ghpo=0xCC864220" "\x00"
"femctrlwar=0" "\x00"
"use5gpllfor2g=1" "\x00"
"pt5db_gaintbl=0" "\x00"
"txwbpapden=1" "\x00"
"wb_rxattn=0x0303" "\x00"
"wb_txattn=0x0203" "\x00"
"wb_papdcalidx=0x0808" "\x00"
"wb_papdcalidx_5g=0x00101010" "\x00"
"wb_eps_offset=0x01ba01a8" "\x00"
"wb_eps_offset_5g=0x01ba01bc" "\x00"
"wb_bbmult=0x2040" "\x00"
"wb_bbmult_5g=0x00303030" "\x00"
"wb_calref_db=0x1c2e" "\x00"
"wb_tia_gain_mode=0x0606" "\x00"
"wb_txbuf_offset=0x1e1e" "\x00"
"wb_frac_del=0x6991" "\x00"
"wb_g_frac_bits=0xab" "\x00"
"nb_rxattn=0x0404" "\x00"
"nb_txattn=0x0404" "\x00"
"nb_papdcalidx=0x1414" "\x00"
"nb_eps_offset=0x01d701d7" "\x00"
"nb_bbmult=0x5A5A" "\x00"
"nb_tia_gain_mode=0x0000" "\x00"
"AvVmid_c0=6,100,7,70,7,70,7,70,7,70" "\x00"
"tssisleep_en=0x5" "\x00"
"lpflags=0x0" "\x00"
"lpo_select=4" "\x00"
"muxenab=0x01" "\x00"
"paprrmcsgamma2g=450,500,550,600,675,950,950,950,950,950,950,950" "\x00"
"paprrmcsgamma5g20=450,500,550,600,800,950,1100,1100,1100,1100,1100,1100""\x00"
"swdiv_en=0" "\x00"
"swdiv_gpio=0" "\x00"
"swdiv_swctrl_en=2" "\x00"
"swdiv_swctrl_ant0=0" "\x00"
"swdiv_swctrl_ant1=1" "\x00"
"swdiv_antmap2g_main=1" "\x00"
"swdiv_antmap5g_main=1" "\x00"
"lhlgpio_cfg=0x00000020,0x00000000" "\x00"
"swdiv_snrlim=10000" "\x00"
"swdiv_thresh=3000" "\x00"
"swdiv_snrthresh=24" "\x00"
"\x00\x00";
#ifdef __cplusplus
} /*extern "C" */
#endif
#else /* ifndef INCLUDED_NVRAM_IMAGE_H_ */
#error Wi-Fi NVRAM image included twice
#endif /* ifndef INCLUDED_NVRAM_IMAGE_H_ */

View File

@ -458,7 +458,7 @@ void *whd_cdc_get_ioctl_buffer(whd_driver_t whd_driver,
whd_buffer_t *buffer,
uint16_t data_length)
{
if ((uint32_t)IOCTL_OFFSET + data_length > USHRT_MAX)
if ( (uint32_t)IOCTL_OFFSET + data_length > USHRT_MAX )
{
WPRINT_WHD_ERROR( ("The reserved ioctl buffer length is over %u\n", USHRT_MAX) );
return NULL;
@ -500,8 +500,7 @@ void whd_process_cdc(whd_driver_t whd_driver, whd_buffer_t buffer)
/* Save the response packet in a variable */
cdc_bdc_info->ioctl_response = buffer;
WPRINT_WHD_DATA_LOG( ("Wcd:< Procd pkt 0x%08lX: IOCTL Response (%d bytes)\n", (unsigned long)buffer,
size) );
WPRINT_WHD_DATA_LOG( ("Wcd:< Procd pkt 0x%08lX: IOCTL Response\n", (unsigned long)buffer) );
/* Wake the thread which sent the IOCTL/IOVAR so that it will resume */
result = cy_rtos_set_semaphore(&cdc_bdc_info->ioctl_sleep, WHD_FALSE);
@ -572,7 +571,7 @@ void whd_process_bdc(whd_driver_t whd_driver, whd_buffer_t buffer)
WPRINT_WHD_DATA_LOG( ("IP data not aligned to 4 bytes %lx\n", ip_data_start_add) );
}
WPRINT_WHD_DATA_LOG( ("Wcd:< Procd pkt 0x%08lX: Data (%d bytes)\n", (unsigned long)buffer, size) );
WPRINT_WHD_DATA_LOG( ("Wcd:< Procd pkt 0x%08lX\n", (unsigned long)buffer) );
bssid_index = (uint32_t)(bdc_header->flags2 & BDC_FLAG2_IF_MASK);
ifp = whd_driver->iflist[bssid_index];

View File

@ -1080,6 +1080,8 @@ static uint32_t whd_wifi_prepare_join(whd_interface_t ifp, whd_security_t auth_t
case WHD_SECURITY_WPA2_AES_PSK:
case WHD_SECURITY_WPA2_TKIP_PSK:
case WHD_SECURITY_WPA2_MIXED_PSK:
case WHD_SECURITY_WPA2_WPA_AES_PSK:
case WHD_SECURITY_WPA2_WPA_MIXED_PSK:
/* Set the EAPOL key packet timeout value, otherwise unsuccessful supplicant events aren't reported. If the IOVAR is unsupported then continue. */
CHECK_RETURN_UNSUPPORTED_CONTINUE(whd_wifi_set_supplicant_key_timeout(ifp,
DEFAULT_EAPOL_KEY_PACKET_TIMEOUT) );
@ -1226,6 +1228,8 @@ static uint32_t whd_wifi_prepare_join(whd_interface_t ifp, whd_security_t auth_t
case WHD_SECURITY_WPA2_AES_PSK:
case WHD_SECURITY_WPA2_TKIP_PSK:
case WHD_SECURITY_WPA2_MIXED_PSK:
case WHD_SECURITY_WPA2_WPA_AES_PSK:
case WHD_SECURITY_WPA2_WPA_MIXED_PSK:
*wpa_auth = (uint32_t)WPA2_AUTH_PSK;
break;
@ -1493,17 +1497,19 @@ uint32_t whd_wifi_join_specific(whd_interface_t ifp, const whd_scan_result_t *ap
ext_join_params->scan_params.nprobes = -1;
ext_join_params->scan_params.passive_time = -1;
ext_join_params->assoc_params.bssid_cnt = 0;
ext_join_params->assoc_params.chanspec_num = (uint32_t)1;
ext_join_params->assoc_params.chanspec_list[0] =
(wl_chanspec_t)htod16( (ap->channel |
GET_C_VAR(whd_driver, CHANSPEC_BW_20) | GET_C_VAR(whd_driver,
CHANSPEC_CTL_SB_NONE) ) );
if (ap->channel)
{
ext_join_params->assoc_params.chanspec_num = (uint32_t)1;
ext_join_params->assoc_params.chanspec_list[0] =
(wl_chanspec_t)htod16( (ap->channel |
GET_C_VAR(whd_driver, CHANSPEC_BW_20) | GET_C_VAR(whd_driver,
CHANSPEC_CTL_SB_NONE) ) );
/* set band properly */
wl_band_for_channel = whd_channel_to_wl_band(whd_driver, ap->channel);
ext_join_params->assoc_params.chanspec_list[0] |= wl_band_for_channel;
/* set band properly */
wl_band_for_channel = whd_channel_to_wl_band(whd_driver, ap->channel);
ext_join_params->assoc_params.chanspec_list[0] |= wl_band_for_channel;
}
result = whd_cdc_send_iovar(ifp, CDC_SET, buffer, 0);
WPRINT_WHD_INFO( ("%s: set_ssid result (err %" PRIu32 "); left network\n", __func__, result) );
@ -1520,15 +1526,17 @@ uint32_t whd_wifi_join_specific(whd_interface_t ifp, const whd_scan_result_t *ap
ENABLE_COMPILER_WARNING(diag_suppress = Pa039)
memcpy(&join_params->params.bssid, &ap->BSSID, sizeof(whd_mac_t) );
join_params->params.bssid_cnt = 0;
join_params->params.chanspec_num = (uint32_t)1;
join_params->params.chanspec_list[0] =
(wl_chanspec_t)htod16( (ap->channel |
GET_C_VAR(whd_driver,
CHANSPEC_BW_20) | GET_C_VAR(whd_driver, CHANSPEC_CTL_SB_NONE) ) );
/* set band properly */
join_params->params.chanspec_list[0] |= wl_band_for_channel;
if (ap->channel)
{
join_params->params.chanspec_num = (uint32_t)1;
join_params->params.chanspec_list[0] =
(wl_chanspec_t)htod16( (ap->channel |
GET_C_VAR(whd_driver,
CHANSPEC_BW_20) | GET_C_VAR(whd_driver, CHANSPEC_CTL_SB_NONE) ) );
/* set band properly */
join_params->params.chanspec_list[0] |= wl_band_for_channel;
}
result = whd_cdc_send_ioctl(ifp, CDC_SET, WLC_SET_SSID, buffer, 0);
}
@ -2595,7 +2603,7 @@ uint32_t whd_wifi_get_ap_info(whd_interface_t ifp, wl_bss_info_t *ap_info, whd_s
/* Read the WSEC setting */
CHECK_RETURN(whd_wifi_get_ioctl_value(ifp, WLC_GET_WSEC, &security_value) );
security_value = security_value & SECURITY_MASK;
*security = ( whd_security_t )(security_value);
if (*security == WHD_SECURITY_WEP_PSK)

View File

@ -0,0 +1 @@
1.91.2.3926