Compare commits

..

41 Commits

Author SHA1 Message Date
Ken
0a39ed4449 WIFI-14567 WF189 10G PHY code optimization 2025-04-29 13:14:10 +08:00
Ken
29b088ef21 qca-wifi-7: fix WF189 WAN port link issues
Fixes: WIFI-14546
Signed-off-by: Ken <xshi@actiontec.com>
2025-04-28 17:06:48 +02:00
John Crispin
10b875d42c ucentral-schema: update to latest HEAD
3b88fc1 dhcp_inject: Multiple ssids sometime didn't display dhcp option 82 rules

Fixes: WIFI-14564
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-28 12:35:34 +02:00
alex18_huang
1f0a24a941 udhcpinject: Multiple ssids sometime didn't display dhcp option 82 rules
Added check when parsing ssid info retrieved from iwinfo.
Program will exit if expected interface count and iwinfo entry count mismatch.

Fixes: WIFI-14564
Signed-off-by: alex18_huang <alex18_huang@accton.com>
2025-04-28 12:33:00 +02:00
Marek Kwaczynski
ea3afcda56 qca-wifi-7: hostapd.sh: add missed functionality from ipq807x_v5.4
The main reason was adding missed functionality for Radius
configuration which caused rejecting WiFi clients on
authentication level.

Still some changes not included:
* AFC,
* hs20_release,
* multiple_bssid,
* he_co_locate

Fixes: WIFI-14459
Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
2025-04-25 08:16:02 +02:00
mike_ding
b5987cc2a7 qca-wifi-7: Support for AP72TIP and AP72TIP-v4 on APNOS v4.x
Signed-off-by: mike_ding <mike_ding@sdc.sercomm.com>
2025-04-25 08:15:00 +02:00
jackcybertan
fc700364d1 ipq807x: add sonicfi rap650c
Fixes: WIFI-14494
Signed-off-by: jackcybertan <jack.tsai@cybertan.com.tw>
2025-04-25 08:14:14 +02:00
Tanya Singh
f2fec9dd87 rrmd : Update file names from /tmp dir in rrmd init script that need to be removed when rrmd (re)starts
Fixes: WIFI-14560
Signed-off-by: Tanya Singh <tanya_singh@accton.com>
2025-04-25 08:13:22 +02:00
Ken
2de57bf167 qca-wifi-7: WF189 Reset button does not work
Fixes: WIFI-14538
Signed-off-by: Ken <xshi@actiontec.com>
2025-04-22 06:30:39 +02:00
John Crispin
7d31bebdb0 ucentral-schema: update to latest HEAD
048a53d state.uc: Fix the calculation of Channel Utilization (chanUtil) in statistics

Fixes: WIFI-14531
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-18 07:56:34 +02:00
Tanya Singh
fcb5a972cf rrmd: Update Channel Utilization Calculation in RRM
- avoid calculated Channel Utilization value to be 'infinity' from cycle_count_delta being '0'

Fixes: WIFI-14536
Signed-off-by: Tanya Singh <tanya_singh@accton.com>
2025-04-18 07:52:11 +02:00
Wingate Chi
082d04025c qca-wifi-7: change RAP750W-311A LED to PWM mode
Fixes: WIFI-14530
Signed-off-by: Wingate Chi <wingate.chi@cybertan.com.tw>
2025-04-17 13:33:56 +02:00
alex18_huang
9ef7d2c227 udhcpinjecti: missing from the package list in ucentral-ap.yml
Add package udhcpinject into profiles/ucentral-ap.yml

Fixes: WIFI-14529
Signed-off-by: Alex Huang <alex18_huang@accton.com>
2025-04-17 13:32:37 +02:00
Ken
e0d61cb0fb qca-wifi-7: WF189/W/H Add 189H support
Fixes: WIFI-14524
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-17 13:31:56 +02:00
Ken
ed2795b30b qca-wifi-7: CIG smp affinity for supporting 53XX platform with wikiki and pebble
Fixes: WIFI-14526
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-17 13:30:45 +02:00
alex18_huang
4b31e481ec udhcpinject: qdisk didn't create successfully for some interfaces while using dhcpinject
Program sometimes did not setup tc qdisc on some interfaces when creating SSID with dhcpinject enabled initially.

Added delayed startup.

Fixes: WIFI-14522
Signed-off-by: alex18_huang <alex18_huang@accton.com>
2025-04-10 16:17:34 +02:00
John Crispin
ba10a88ab3 ucentral-schema: update to latest HEAD
5a6d23b fix/improve swconfig detection

Fixes: WIFI-14525
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 16:13:58 +02:00
John Crispin
b85bc5db9c ipq50xx: fix swconfig setup to align with latest schema changes
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 16:13:26 +02:00
John Crispin
e998711444 ipq807x/hostapd: backport FT VLAN fix
The bug was in the upstream hostapd codebase, backport/rebase the fix

--> ba150059d1ec964add8f29eb2c92dd6dfde97308

Fixes: WIFI-14508
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 14:26:04 +02:00
John Crispin
2d6bea18df Revert "ipq53xx: add smp-affinity for wifi IRQs"
This reverts commit e5bcda17e7.

The patch was causing crashes

Fixes: WIFI-14523
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 13:06:05 +02:00
John Crispin
1bf9e40987 ucentral-schema: update to latest HEAD
43c7375 default max-inactivity to 300

Fixes: WIFI-14520
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 09:46:30 +02:00
John Crispin
a20b96eb31 ucentral-schema: update to latest HEAD
7624d43 set generate_local_psk to false if roaming and multi_psk are enabled

Fixes: WIFI-14484
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 09:10:45 +02:00
John Crispin
c83ac67492 cloud_discovery: make use of the new TIP cloud discovery server
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 08:30:15 +02:00
John Crispin
2b0c600fb3 ucentral-schema: update to latest HEAD
246873b add max-inactivity to ssid config
3b5a5c4 Allow option 82 DHCP fields to be transparently injected into client DHCP requests

Signed-off-by: John Crispin <john@phrozen.org>
2025-04-10 08:25:21 +02:00
alex18_huang
c5793bae3a udhcpinject: Allow option 82 DHCP fields to be transparently injected into client DHCP requests
1. Added userspace application udhcpinject to inject DHCP option 82 transparently
2. Added README.md for example usage

Fixes: WIFI-14018
Signed-off-by: alex18_huang <alex18_huang@accton.com>
2025-04-10 07:56:13 +02:00
Marek Kwaczynski
6afbb92dec qca-wifi-7: hostapd.sh: add psk2-radius encryption
Fixes: WIFI-14459
Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
2025-04-10 07:55:37 +02:00
John Crispin
89cb9d63bd ucentral-schema: update to latest HEAD
10b5c36 extend swconfig support for dual cpu port swconfig switches

Signed-off-by: John Crispin <john@phrozen.org>
2025-04-09 09:36:43 +02:00
Ken Shi
16963c997f qca-ssdk: increase number of vlans on qca8337
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-09 09:22:41 +02:00
Ken Shi
f7a9ad770d ipq533x: add CIG WF189W support
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-09 09:14:50 +02:00
Ken Shi
dcdccc7ba0 ath12k-firmware: add miami pebble pebble firmware
Signed-off-by: Ken <xshi@actiontec.com>
2025-04-09 09:07:51 +02:00
Rick Sommerville
b67f97f213 hostapd: proxy arp: fail gracefully
Disable proxy arp and continue if snoop interface setup fail.

Fixes: WIFI-14507
Signed-off-by: Rick Sommerville <rick.sommerville@netexperience.com>
2025-04-09 08:53:01 +02:00
jackcybertan
e9dcf3d953 mediatek: RAP630W-211G change ethernet label and led behavior
Fixes: WIFI-14519
Signed-off-by: Jack Tsai <jack.tsai@cybertan.com.tw>
2025-04-08 14:26:19 +02:00
John Crispin
cc5edd4446 ucentral-schema: update to latest HEAD
0683d04 Add pdev_stats and channel utilization for each radio in the statistics

Fixes: WIFI-14460
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-08 07:25:33 +02:00
Marek Kwaczynski
79adece623 mediatek/hostap: fix roaming ASSOC REJECT
During roaming validation, an issue was detected with
the ASSOC-REJECT event, which had a status code of 55.

To resolve this, the SNonce from the Auth Request Frame
was copied, and the random ANonce is now used
only when expired.

Fixes: WIFI-14326

Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
2025-04-08 06:55:15 +02:00
John Crispin
49b64ec93f feed.conf.default: use the github.com based trees
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-07 18:10:23 +02:00
Marek Kwaczynski
b1e3686124 ipq807x_v5.4/mac80211: ath11k: fix peer addition/deletion error on sta band migration
Fix removing rhash when station is roaming between radios and
apply logic from opensource driver during adding/removing
peer.

Fixes: 7374c39d ("ath11k: fix STA roaming between radios")
Fixes: WIFI-14457

Signed-off-by: Arif Alam <arif.alam@netexperience.com>
Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
2025-04-07 16:32:04 +02:00
John Crispin
e5bcda17e7 ipq53xx: add smp-affinity for wifi IRQs
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-07 13:32:14 +02:00
Ken Shi
7c04ed76bd ipq53xx: fix CIF WF189 MDIO clock speed
Fixes: WIFI-14510
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-07 12:46:06 +02:00
John Crispin
04a5cc67e0 ipq53xx: fix rap750w-311a calibration data and memory profile
Signed-off-by: John Crispin <john@phrozen.org>
2025-04-07 11:42:53 +02:00
Wingate Chi
80b2c6d080 WIFI-14511 support Sonicfi RAP750W-311A
Signed-off-by: Wingate Chi <wingate.chi@cybertan.com.tw>
2025-04-07 10:47:47 +02:00
Ken
c683f19b7c ipq60xx: WF188n update the BDF to support FCC/CE/MY/AU/ES/SE/FR
Fixes: WIFI-14512
Signed-off-by: Ken Shi <xshi@actiontec.com>
2025-04-07 10:07:14 +02:00
133 changed files with 46288 additions and 278 deletions

View File

@@ -21,7 +21,7 @@ jobs:
strategy:
fail-fast: false
matrix:
target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap7110c-341x', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ]
target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap650c', 'sonicfi_rap7110c-341x', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ]
steps:
- uses: actions/checkout@v3

View File

@@ -0,0 +1,46 @@
Index: hostapd-2023-09-08-e5ccbfc6/src/ap/wpa_auth_ft.c
===================================================================
--- hostapd-2023-09-08-e5ccbfc6.orig/src/ap/wpa_auth_ft.c
+++ hostapd-2023-09-08-e5ccbfc6/src/ap/wpa_auth_ft.c
@@ -3293,6 +3297,8 @@ static int wpa_ft_process_auth_req(struc
size_t identity_len = 0, radius_cui_len = 0;
size_t pmk_r1_len, kdk_len, len;
int retval = WLAN_STATUS_UNSPECIFIED_FAILURE;
+ struct os_reltime now;
+ struct rsn_ftie *ftie;
*resp_ies = NULL;
*resp_ies_len = 0;
@@ -3324,6 +3330,9 @@ static int wpa_ft_process_auth_req(struc
goto out;
}
+ ftie = (struct rsn_ftie *) parse.ftie;
+ os_memcpy(sm->SNonce, ftie->snonce, WPA_NONCE_LEN);
+
if (parse.r0kh_id == NULL) {
wpa_printf(MSG_DEBUG, "FT: Invalid FTIE - no R0KH-ID");
retval = WLAN_STATUS_INVALID_FTIE;
@@ -3424,10 +3433,18 @@ pmk_r1_derived:
os_memcpy(sm->pmk_r1, pmk_r1, pmk_r1_len);
sm->pmk_r1_len = pmk_r1_len;
- if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
- wpa_printf(MSG_DEBUG, "FT: Failed to get random data for "
- "ANonce");
- goto out;
+ if (os_get_reltime(&now) < 0 ||
+ os_reltime_expired(&now, &sm->ANonce_time, 1)) {
+ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
+ wpa_printf(MSG_DEBUG, "FT: Failed to get random data for "
+ "ANonce");
+ return WLAN_STATUS_UNSPECIFIED_FAILURE;
+ }
+ sm->ANonce_time.sec = now.sec;
+ sm->ANonce_time.usec = now.usec;
+ wpa_printf(MSG_INFO, "FT: ANonce was randomized");
+ } else {
+ wpa_printf(MSG_INFO, "FT: ANonce has not expired");
}
/* Now that we know the correct PMK-R1 length and as such, the length

View File

@@ -53,6 +53,7 @@ ALLWIFIBOARDS:= \
sonicfi-rap630c-311g \
sonicfi-rap630w-311g \
sonicfi-rap630w-312g \
sonicfi-rap650c \
tplink-ex227 \
tplink-ex447 \
yuncore-ax840 \
@@ -410,6 +411,7 @@ $(eval $(call generate-ath11k-wifi-package,indio-um-510axm-v1,Indio UM-510AXM V1
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C 311G))
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,Sonicfi RAP630W 311G))
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-312g,Sonicfi RAP630W 312G))
$(eval $(call generate-ath11k-wifi-package,sonicfi-rap650c,SonicFi RAP650C))
$(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227))
$(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447))
$(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840))

View File

@@ -0,0 +1,27 @@
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -1527,19 +1527,15 @@ int hostapd_setup_bss(struct hostapd_dat
if (x_snoop_init(hapd)) {
wpa_printf(MSG_ERROR,
"Generic snooping infrastructure initialization failed");
- return -1;
- }
-
- if (dhcp_snoop_init(hapd)) {
+ conf->proxy_arp = 0;
+ } else if (dhcp_snoop_init(hapd)) {
wpa_printf(MSG_ERROR,
"DHCP snooping initialization failed");
- return -1;
- }
-
- if (ndisc_snoop_init(hapd)) {
+ conf->proxy_arp = 0;
+ } else if (ndisc_snoop_init(hapd)) {
wpa_printf(MSG_ERROR,
"Neighbor Discovery snooping initialization failed");
- return -1;
+ conf->proxy_arp = 0;
}
}

View File

@@ -0,0 +1,411 @@
From: Jouni Malinen <quic_jouni@quicinc.com>
Date: Tue, 14 Feb 2023 11:29:30 +0200
Subject: [PATCH] FT: Store PMK-R0/PMK-R1 after EAPOL-Key msg 2/4 MIC
validation
hostapd was previously storing the derived PMK-R0 and PMK-R1 as soon as
these keys were derived. While that is fine for most purposes, it is
unnecessary to do that so quickly and if anything were to fail before
the supplicant is able to return a valid EAPOL-Key msg 2/4, there would
not really be any real use for the derived keys.
For the special case of FT-PSK and VLAN determination based on the
wpa_psk file, the VLAN information is set in the per-STA data structures
only after the EAPOL-Key msg 2/4 MIC has been verified. This ended up
storing the PMK-R0/PMK-R1 entries without correct VLAN assignment and as
such, any use of the FT protocol would not be able to transfer the VLAN
information through RRB.
Split local storing of the FT key hierarchy for the cases using the FT
4-way handshake so that PMK-R0 and PMK-R1 are first derived and then
stored as a separate step after having verified the MIC in the EAPOL-Key
msg 2/4 (i.e., after having confirmed the per-STA passphrase/PSK was
selected) and VLAN update. This fixes VLAN information for the
wpa_psk_file cases with FT-PSK.
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
---
--- a/src/ap/wpa_auth.c
+++ b/src/ap/wpa_auth.c
@@ -58,7 +58,9 @@ static int wpa_group_config_group_keys(s
struct wpa_group *group);
static int wpa_derive_ptk(struct wpa_state_machine *sm, const u8 *snonce,
const u8 *pmk, unsigned int pmk_len,
- struct wpa_ptk *ptk, int force_sha256);
+ struct wpa_ptk *ptk, int force_sha256,
+ u8 *pmk_r0, u8 *pmk_r1, u8 *pmk_r0_name,
+ size_t *key_len);
static void wpa_group_free(struct wpa_authenticator *wpa_auth,
struct wpa_group *group);
static void wpa_group_get(struct wpa_authenticator *wpa_auth,
@@ -940,6 +942,10 @@ static int wpa_try_alt_snonce(struct wpa
const u8 *pmk = NULL;
size_t pmk_len;
int vlan_id = 0;
+ u8 pmk_r0[PMK_LEN_MAX], pmk_r0_name[WPA_PMK_NAME_LEN];
+ u8 pmk_r1[PMK_LEN_MAX];
+ size_t key_len;
+ int ret = -1;
os_memset(&PTK, 0, sizeof(PTK));
for (;;) {
@@ -961,8 +967,8 @@ static int wpa_try_alt_snonce(struct wpa
pmk_len = sm->pmk_len;
}
- if (wpa_derive_ptk(sm, sm->alt_SNonce, pmk, pmk_len, &PTK, 0) <
- 0)
+ if (wpa_derive_ptk(sm, sm->alt_SNonce, pmk, pmk_len, &PTK, 0,
+ pmk_r0, pmk_r1, pmk_r0_name, &key_len) < 0)
break;
if (wpa_verify_key_mic(sm->wpa_key_mgmt, pmk_len, &PTK,
@@ -983,7 +989,7 @@ static int wpa_try_alt_snonce(struct wpa
if (!ok) {
wpa_printf(MSG_DEBUG,
"WPA: Earlier SNonce did not result in matching MIC");
- return -1;
+ goto fail;
}
wpa_printf(MSG_DEBUG,
@@ -992,14 +998,26 @@ static int wpa_try_alt_snonce(struct wpa
if (vlan_id && wpa_key_mgmt_wpa_psk(sm->wpa_key_mgmt) &&
wpa_auth_update_vlan(sm->wpa_auth, sm->addr, vlan_id) < 0)
- return -1;
+ goto fail;
+
+#ifdef CONFIG_IEEE80211R_AP
+ if (wpa_key_mgmt_ft(sm->wpa_key_mgmt) && !sm->ft_completed) {
+ wpa_printf(MSG_DEBUG, "FT: Store PMK-R0/PMK-R1");
+ wpa_auth_ft_store_keys(sm, pmk_r0, pmk_r1, pmk_r0_name,
+ key_len);
+ }
+#endif /* CONFIG_IEEE80211R_AP */
os_memcpy(sm->SNonce, sm->alt_SNonce, WPA_NONCE_LEN);
os_memcpy(&sm->PTK, &PTK, sizeof(PTK));
forced_memzero(&PTK, sizeof(PTK));
sm->PTK_valid = true;
- return 0;
+ ret = 0;
+fail:
+ forced_memzero(pmk_r0, sizeof(pmk_r0));
+ forced_memzero(pmk_r1, sizeof(pmk_r1));
+ return ret;
}
@@ -2283,7 +2301,9 @@ SM_STATE(WPA_PTK, PTKSTART)
static int wpa_derive_ptk(struct wpa_state_machine *sm, const u8 *snonce,
const u8 *pmk, unsigned int pmk_len,
- struct wpa_ptk *ptk, int force_sha256)
+ struct wpa_ptk *ptk, int force_sha256,
+ u8 *pmk_r0, u8 *pmk_r1, u8 *pmk_r0_name,
+ size_t *key_len)
{
const u8 *z = NULL;
size_t z_len = 0, kdk_len;
@@ -2311,7 +2331,8 @@ static int wpa_derive_ptk(struct wpa_sta
sm->pairwise,
kdk_len);
}
- return wpa_auth_derive_ptk_ft(sm, ptk);
+ return wpa_auth_derive_ptk_ft(sm, ptk, pmk_r0, pmk_r1,
+ pmk_r0_name, key_len);
}
#endif /* CONFIG_IEEE80211R_AP */
@@ -2934,6 +2955,9 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
struct wpa_eapol_ie_parse kde;
int vlan_id = 0;
int owe_ptk_workaround = !!wpa_auth->conf.owe_ptk_workaround;
+ u8 pmk_r0[PMK_LEN_MAX], pmk_r0_name[WPA_PMK_NAME_LEN];
+ u8 pmk_r1[PMK_LEN_MAX];
+ size_t key_len;
SM_ENTRY_MA(WPA_PTK, PTKCALCNEGOTIATING, wpa_ptk);
sm->EAPOLKeyReceived = false;
@@ -2972,7 +2996,8 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
}
if (wpa_derive_ptk(sm, sm->SNonce, pmk, pmk_len, &PTK,
- owe_ptk_workaround == 2) < 0)
+ owe_ptk_workaround == 2, pmk_r0, pmk_r1,
+ pmk_r0_name, &key_len) < 0)
break;
if (mic_len &&
@@ -3021,7 +3046,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
sm->last_rx_eapol_key,
sm->last_rx_eapol_key_len);
sm->waiting_radius_psk = 1;
- return;
+ goto out;
}
if (!ok) {
@@ -3029,7 +3054,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
"invalid MIC in msg 2/4 of 4-Way Handshake");
if (psk_found)
wpa_auth_psk_failure_report(sm->wpa_auth, sm->addr);
- return;
+ goto out;
}
/*
@@ -3043,12 +3068,12 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
key_data_length = WPA_GET_BE16(mic + mic_len);
if (key_data_length > sm->last_rx_eapol_key_len - sizeof(*hdr) -
sizeof(*key) - mic_len - 2)
- return;
+ goto out;
if (wpa_parse_kde_ies(key_data, key_data_length, &kde) < 0) {
wpa_auth_vlogger(wpa_auth, sm->addr, LOGGER_INFO,
"received EAPOL-Key msg 2/4 with invalid Key Data contents");
- return;
+ goto out;
}
if (kde.rsn_ie) {
eapol_key_ie = kde.rsn_ie;
@@ -3075,7 +3100,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
/* MLME-DEAUTHENTICATE.request */
wpa_sta_disconnect(wpa_auth, sm->addr,
WLAN_REASON_PREV_AUTH_NOT_VALID);
- return;
+ goto out;
}
if ((!sm->rsnxe && kde.rsnxe) ||
(sm->rsnxe && !kde.rsnxe) ||
@@ -3091,7 +3116,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
/* MLME-DEAUTHENTICATE.request */
wpa_sta_disconnect(wpa_auth, sm->addr,
WLAN_REASON_PREV_AUTH_NOT_VALID);
- return;
+ goto out;
}
#ifdef CONFIG_OCV
if (wpa_auth_uses_ocv(sm)) {
@@ -3103,14 +3128,14 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
if (wpa_channel_info(wpa_auth, &ci) != 0) {
wpa_auth_logger(wpa_auth, sm->addr, LOGGER_INFO,
"Failed to get channel info to validate received OCI in EAPOL-Key 2/4");
- return;
+ goto out;
}
if (get_sta_tx_parameters(sm,
channel_width_to_int(ci.chanwidth),
ci.seg1_idx, &tx_chanwidth,
&tx_seg1_idx) < 0)
- return;
+ goto out;
res = ocv_verify_tx_params(kde.oci, kde.oci_len, &ci,
tx_chanwidth, tx_seg1_idx);
@@ -3127,7 +3152,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
OCV_FAILURE "addr=" MACSTR
" frame=eapol-key-m2 error=%s",
MAC2STR(sm->addr), ocv_errorstr);
- return;
+ goto out;
}
}
#endif /* CONFIG_OCV */
@@ -3135,7 +3160,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
if (ft && ft_check_msg_2_of_4(wpa_auth, sm, &kde) < 0) {
wpa_sta_disconnect(wpa_auth, sm->addr,
WLAN_REASON_PREV_AUTH_NOT_VALID);
- return;
+ goto out;
}
#endif /* CONFIG_IEEE80211R_AP */
#ifdef CONFIG_P2P
@@ -3171,7 +3196,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
"DPP: Peer indicated it supports PFS and local configuration allows this, but PFS was not negotiated for the association");
wpa_sta_disconnect(wpa_auth, sm->addr,
WLAN_REASON_PREV_AUTH_NOT_VALID);
- return;
+ goto out;
}
}
#endif /* CONFIG_DPP2 */
@@ -3191,7 +3216,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
sm->sup_pmk_r1_name, WPA_PMK_NAME_LEN);
wpa_hexdump(MSG_DEBUG, "FT: Derived PMKR1Name",
sm->pmk_r1_name, WPA_PMK_NAME_LEN);
- return;
+ goto out;
}
}
#endif /* CONFIG_IEEE80211R_AP */
@@ -3200,7 +3225,7 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
wpa_auth_update_vlan(wpa_auth, sm->addr, vlan_id) < 0) {
wpa_sta_disconnect(wpa_auth, sm->addr,
WLAN_REASON_PREV_AUTH_NOT_VALID);
- return;
+ goto out;
}
sm->pending_1_of_4_timeout = 0;
@@ -3216,9 +3241,20 @@ SM_STATE(WPA_PTK, PTKCALCNEGOTIATING)
sm->MICVerified = true;
+#ifdef CONFIG_IEEE80211R_AP
+ if (wpa_key_mgmt_ft(sm->wpa_key_mgmt) && !sm->ft_completed) {
+ wpa_printf(MSG_DEBUG, "FT: Store PMK-R0/PMK-R1");
+ wpa_auth_ft_store_keys(sm, pmk_r0, pmk_r1, pmk_r0_name,
+ key_len);
+ }
+#endif /* CONFIG_IEEE80211R_AP */
+
os_memcpy(&sm->PTK, &PTK, sizeof(PTK));
forced_memzero(&PTK, sizeof(PTK));
sm->PTK_valid = true;
+out:
+ forced_memzero(pmk_r0, sizeof(pmk_r0));
+ forced_memzero(pmk_r1, sizeof(pmk_r1));
}
--- a/src/ap/wpa_auth_ft.c
+++ b/src/ap/wpa_auth_ft.c
@@ -2175,13 +2175,13 @@ int wpa_ft_store_pmk_fils(struct wpa_sta
}
-int wpa_auth_derive_ptk_ft(struct wpa_state_machine *sm, struct wpa_ptk *ptk)
+int wpa_auth_derive_ptk_ft(struct wpa_state_machine *sm, struct wpa_ptk *ptk,
+ u8 *pmk_r0, u8 *pmk_r1, u8 *pmk_r0_name,
+ size_t *key_len)
{
- u8 pmk_r0[PMK_LEN_MAX], pmk_r0_name[WPA_PMK_NAME_LEN];
size_t pmk_r0_len = wpa_key_mgmt_sha384(sm->wpa_key_mgmt) ?
SHA384_MAC_LEN : PMK_LEN;
size_t pmk_r1_len = pmk_r0_len;
- u8 pmk_r1[PMK_LEN_MAX];
u8 ptk_name[WPA_PMK_NAME_LEN];
const u8 *mdid = sm->wpa_auth->conf.mobility_domain;
const u8 *r0kh = sm->wpa_auth->conf.r0_key_holder;
@@ -2189,13 +2189,6 @@ int wpa_auth_derive_ptk_ft(struct wpa_st
const u8 *r1kh = sm->wpa_auth->conf.r1_key_holder;
const u8 *ssid = sm->wpa_auth->conf.ssid;
size_t ssid_len = sm->wpa_auth->conf.ssid_len;
- int psk_local = sm->wpa_auth->conf.ft_psk_generate_local;
- int expires_in = sm->wpa_auth->conf.r0_key_lifetime;
- struct vlan_description vlan;
- struct rate_description rate;
- const u8 *identity, *radius_cui;
- size_t identity_len, radius_cui_len;
- int session_timeout;
const u8 *mpmk;
size_t mpmk_len;
@@ -2211,10 +2204,41 @@ int wpa_auth_derive_ptk_ft(struct wpa_st
return -1;
}
+ *key_len = pmk_r0_len;
+ if (wpa_derive_pmk_r0(mpmk, mpmk_len, ssid, ssid_len, mdid,
+ r0kh, r0kh_len, sm->addr,
+ pmk_r0, pmk_r0_name,
+ pmk_r0_len == SHA384_MAC_LEN) < 0 ||
+ wpa_derive_pmk_r1(pmk_r0, pmk_r0_len, pmk_r0_name, r1kh, sm->addr,
+ pmk_r1, sm->pmk_r1_name) < 0)
+ return -1;
+
+ return wpa_pmk_r1_to_ptk(pmk_r1, pmk_r1_len, sm->SNonce, sm->ANonce,
+ sm->addr, sm->wpa_auth->addr, sm->pmk_r1_name,
+ ptk, ptk_name, sm->wpa_key_mgmt, sm->pairwise,
+ 0);
+}
+
+
+void wpa_auth_ft_store_keys(struct wpa_state_machine *sm, const u8 *pmk_r0,
+ const u8 *pmk_r1, const u8 *pmk_r0_name,
+ size_t key_len)
+{
+ int psk_local = sm->wpa_auth->conf.ft_psk_generate_local;
+ int expires_in = sm->wpa_auth->conf.r0_key_lifetime;
+ struct vlan_description vlan;
+ struct rate_description rate;
+ const u8 *identity, *radius_cui;
+ size_t identity_len, radius_cui_len;
+ int session_timeout;
+
+ if (psk_local && wpa_key_mgmt_ft_psk(sm->wpa_key_mgmt))
+ return;
+
if (wpa_ft_get_vlan(sm->wpa_auth, sm->addr, &vlan) < 0) {
wpa_printf(MSG_DEBUG, "FT: vlan not available for STA " MACSTR,
MAC2STR(sm->addr));
- return -1;
+ return;
}
wpa_ft_get_rate_limit(sm->wpa_auth, sm->addr, &rate);
@@ -2224,32 +2248,16 @@ int wpa_auth_derive_ptk_ft(struct wpa_st
&radius_cui);
session_timeout = wpa_ft_get_session_timeout(sm->wpa_auth, sm->addr);
- if (wpa_derive_pmk_r0(mpmk, mpmk_len, ssid, ssid_len, mdid,
- r0kh, r0kh_len, sm->addr,
- pmk_r0, pmk_r0_name,
- wpa_key_mgmt_sha384(sm->wpa_key_mgmt)) < 0)
- return -1;
- if (!psk_local || !wpa_key_mgmt_ft_psk(sm->wpa_key_mgmt))
- wpa_ft_store_pmk_r0(sm->wpa_auth, sm->addr, pmk_r0, pmk_r0_len,
- pmk_r0_name,
- sm->pairwise, &vlan, expires_in,
- session_timeout, identity, identity_len,
- radius_cui, radius_cui_len, &rate);
-
- if (wpa_derive_pmk_r1(pmk_r0, pmk_r0_len, pmk_r0_name, r1kh, sm->addr,
- pmk_r1, sm->pmk_r1_name) < 0)
- return -1;
- if (!psk_local || !wpa_key_mgmt_ft_psk(sm->wpa_key_mgmt))
- wpa_ft_store_pmk_r1(sm->wpa_auth, sm->addr, pmk_r1, pmk_r1_len,
- sm->pmk_r1_name, sm->pairwise, &vlan,
- expires_in, session_timeout, identity,
- identity_len, radius_cui, radius_cui_len,
- &rate);
-
- return wpa_pmk_r1_to_ptk(pmk_r1, pmk_r1_len, sm->SNonce, sm->ANonce,
- sm->addr, sm->wpa_auth->addr, sm->pmk_r1_name,
- ptk, ptk_name, sm->wpa_key_mgmt, sm->pairwise,
- 0);
+ wpa_ft_store_pmk_r0(sm->wpa_auth, sm->addr, pmk_r0, key_len,
+ pmk_r0_name,
+ sm->pairwise, &vlan, expires_in,
+ session_timeout, identity, identity_len,
+ radius_cui, radius_cui_len, &rate);
+
+ wpa_ft_store_pmk_r1(sm->wpa_auth, sm->addr, pmk_r1, key_len,
+ sm->pmk_r1_name, sm->pairwise, &vlan,
+ expires_in, session_timeout, identity,
+ identity_len, radius_cui, radius_cui_len, &rate);
}
--- a/src/ap/wpa_auth_i.h
+++ b/src/ap/wpa_auth_i.h
@@ -302,7 +302,12 @@ int wpa_write_ftie(struct wpa_auth_confi
const u8 *anonce, const u8 *snonce,
u8 *buf, size_t len, const u8 *subelem,
size_t subelem_len, int rsnxe_used);
-int wpa_auth_derive_ptk_ft(struct wpa_state_machine *sm, struct wpa_ptk *ptk);
+int wpa_auth_derive_ptk_ft(struct wpa_state_machine *sm, struct wpa_ptk *ptk,
+ u8 *pmk_r0, u8 *pmk_r1, u8 *pmk_r0_name,
+ size_t *key_len);
+void wpa_auth_ft_store_keys(struct wpa_state_machine *sm, const u8 *pmk_r0,
+ const u8 *pmk_r1, const u8 *pmk_r0_name,
+ size_t key_len);
struct wpa_ft_pmk_cache * wpa_ft_pmk_cache_init(void);
void wpa_ft_pmk_cache_deinit(struct wpa_ft_pmk_cache *cache);
void wpa_ft_install_ptk(struct wpa_state_machine *sm, int retry);

View File

@@ -13,10 +13,10 @@ qcom_setup_interfaces()
case $board in
cig,wf186w)
ucidef_add_switch "switch0" "4:wan" "0:lan" "1:lan" "2:lan" "3:lan" "6@eth0"
ucidef_add_switch "switch0" "4:wan" "0:lan" "1:lan" "2:lan" "3:lan" "6u@eth0"
;;
cig,wf186h)
ucidef_add_switch "switch0" "4:wan" "1:lan" "2:lan" "6@eth0"
ucidef_add_switch "switch0" "4:wan" "1:lan" "2:lan" "6u@eth0"
;;
sonicfi,rap630c-311g|\
cybertan,eww631-a1)
@@ -25,7 +25,7 @@ qcom_setup_interfaces()
;;
sonicfi,rap630w-311g|\
cybertan,eww631-b1)
ucidef_add_switch "switch1" "5:wan" "2:lan" "3:lan" "4:lan" "6@eth0"
ucidef_add_switch "switch1" "5:wan" "2:lan" "3:lan" "4:lan" "6u@eth0"
;;
udaya,a6-id2)
ucidef_set_interface_wan "eth1"
@@ -46,7 +46,7 @@ qcom_setup_interfaces()
edgecore,eap104)
ucidef_set_interface_wan "eth0"
ucidef_add_switch "switch1" \
"6@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
"6u@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
;;
hfcl,ion4x_w|\
hfcl,ion4xi_w)
@@ -62,10 +62,10 @@ qcom_setup_interfaces()
sonicfi,rap630w-312g|\
yuncore,fap655)
ucidef_add_switch "switch1" \
"6@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
"6u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
;;
glinet,b3000)
ucidef_add_switch "switch1" "6@eth1" "1:wan" "2:lan" "3:lan"
ucidef_add_switch "switch1" "6u@eth1" "1:wan" "2:lan" "3:lan"
;;
esac
}

View File

@@ -21,6 +21,7 @@ edgecore,oap103)
ucidef_set_led_wlan "power" "POWER" "green:power" "default-on"
;;
sonicfi,rap630w-311g|\
sonicfi,rap650c|\
cybertan,eww631-b1)
ucidef_set_led_default "power" "POWER" "sys:blue" "on"
;;

View File

@@ -24,6 +24,7 @@ qcom_setup_interfaces()
edgecore,eap102|\
edgecore,oap102|\
edgecore,oap103|\
sonicfi,rap650c|\
cig,wf196)
ucidef_set_interface_lan "eth1"
ucidef_set_interface_wan "eth0"
@@ -50,6 +51,16 @@ qcom_setup_macs()
ip link set eth1 address $lan_mac
ucidef_set_label_macaddr $wan_mac
;;
sonicfi,rap650c)
mac=$(fw_printenv -n BaseMacAddress)
[ -z "$mac" ] && return;
wan_mac=$(macaddr_canonicalize $mac)
lan_mac=$(macaddr_add "$wan_mac" 1)
ucidef_set_network_device_mac eth0 $wan_mac
ucidef_set_network_device_mac eth1 $lan_mac
ip link set eth0 address $wan_mac
ip link set eth1 address $lan_mac
;;
*)
wan_mac=$(cat /sys/class/net/eth0/address)
lan_mac=$(macaddr_add "$wan_mac" 1)

View File

@@ -16,6 +16,20 @@ ath11k_generate_macs() {
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
}
ath11k_generate_macs_sonicfi() {
mac=$(fw_printenv -n BaseMacAddress)
[ -z "$mac" ] && return;
touch /lib/firmware/ath11k-macs
eth=$(macaddr_canonicalize $mac)
mac1=$(macaddr_add $eth 2)
mac2=$(macaddr_add $eth 3)
mac3=$(macaddr_add $eth 4)
echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs
echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs
echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs
}
ath11k_generate_macs_wf196() {
touch /lib/firmware/ath11k-macs
mac=$(grep BaseMacAddress= /dev/mtd18 | cut -dx -f2)
@@ -63,6 +77,7 @@ case "$FIRMWARE" in
tplink,ex227|\
tplink,ex447|\
yuncore,ax840|\
sonicfi,rap650c|\
sercomm,wallaby)
caldata_extract "0:ART" 0x1000 0x20000
;;
@@ -97,6 +112,9 @@ ath11k-macs)
cig,wf196)
ath11k_generate_macs_wf196
;;
sonicfi*)
ath11k_generate_macs_sonicfi
;;
esac
;;
ath11k/IPQ8074/hw2.0/board.bin)

View File

@@ -10,7 +10,8 @@ case "$board" in
ln -s /sys/kernel/debug/ath11k/ipq6018\ hw1.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
;;
"edgecore,eap102"|\
"edgecore,oap103")
"edgecore,oap103"|\
"sonicfi,rap650c")
ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy5g
ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
;;

View File

@@ -29,6 +29,7 @@ platform_check_image() {
edgecore,oap102|\
edgecore,oap103|\
edgecore,eap106|\
sonicfi,rap650c|\
tplink,ex227|\
tplink,ex447)
[ "$magic_long" = "73797375" ] && return 0
@@ -83,5 +84,17 @@ platform_do_upgrade() {
fi
nand_upgrade_tar "$1"
;;
sonicfi,rap650c)
boot_part=$(fw_printenv -n bootfrom)
[ ${#boot_part} -eq 0 ] && boot_part=0
echo "Current bootfrom is $boot_part"
if [[ $boot_part == 1 ]]; then
CI_UBIPART="rootfs"
CI_FWSETENV="bootfrom 0"
elif [[ $boot_part == 0 ]]; then
CI_UBIPART="rootfs_1"
CI_FWSETENV="bootfrom 1"
fi
nand_upgrade_tar "$1"
esac
}

View File

@@ -0,0 +1,650 @@
// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
/* Copyright (c) 2020 The Linux Foundation. All rights reserved.
*/
#include "ipq8074.dtsi"
#include "ipq8074-hk-cpu.dtsi"
/ {
#address-cells = <0x2>;
#size-cells = <0x2>;
model = "SonicFi RAP650C";
compatible = "sonicfi,rap650c", "qcom,ipq8074-ap-hk09", "qcom,ipq8074";
qcom,msm-id = <0x157 0x0>, <0x187 0x0>;
interrupt-parent = <&intc>;
aliases {
serial0 = &blsp1_uart5;
/* Aliases as required by u-boot to patch MAC addresses */
ethernet0 = "/soc/dp1";
ethernet1 = "/soc/dp2";
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
chosen {
stdout-path = "serial0";
};
soc {
pinctrl@1000000 {
button_pins: button_pins {
reset_button {
pins = "gpio57";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
usb_mux_sel_pins: usb_mux_pins {
mux {
pins = "gpio27";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
pcie0_pins: pcie_pins {
pcie0_rst {
pins = "gpio58";
function = "pcie0_rst";
drive-strength = <8>;
bias-pull-down;
};
pcie0_wake {
pins = "gpio59";
function = "pcie0_wake";
drive-strength = <8>;
bias-pull-down;
};
};
mdio_pins: mdio_pinmux {
mux_0 {
pins = "gpio68";
function = "mdc";
drive-strength = <8>;
bias-pull-up;
};
mux_1 {
pins = "gpio69";
function = "mdio";
drive-strength = <8>;
bias-pull-up;
};
mux_2 {
pins = "gpio25";
function = "gpio";
bias-pull-up;
};
mux_3 {
pins = "gpio44";
function = "gpio";
bias-pull-up;
};
};
led_pins: led_pins {
red {
pins = "gpio0";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
green {
pins = "gpio2";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
blue {
pins = "gpio9";
function = "gpio";
drive-strength = <8>;
bias-pull-down;
};
};
spi_3_pins: spi_3_pins {
mux {
pins = "gpio50", "gpio52", "gpio53";
function = "blsp3_spi";
drive-strength = <8>;
bias-disable;
};
spi_cs {
pins = "gpio22";
function = "blsp3_spi2";
drive-strength = <8>;
bias-disable;
};
quartz_interrupt {
pins = "gpio47";
function = "gpio";
input;
bias-disable;
};
quartz_reset {
pins = "gpio21";
function = "gpio";
output-low;
bias-disable;
};
};
};
serial@78b3000 {
status = "ok";
};
dp1 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <5>;
reg = <0x3a001800 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <24>;
phy-mode = "sgmii";
};
dp2 {
device_type = "network";
compatible = "qcom,nss-dp";
qcom,id = <6>;
reg = <0x3a001a00 0x200>;
qcom,mactype = <0>;
local-mac-address = [000000000000];
qcom,link-poll = <1>;
qcom,phy-mdio-addr = <28>;
phy-mode = "sgmii";
};
spi@78b5000 {
status = "ok";
pinctrl-0 = <&spi_0_pins>;
pinctrl-names = "default";
cs-select = <0>;
m25p80@0 {
compatible = "n25q128a11";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <50000000>;
};
};
spi@78b8000 {
status = "ok";
pinctrl-0 = <&spi_3_pins>;
pinctrl-names = "default";
cs-select = <2>;
quartz-reset-gpio = <&tlmm 21 1>;
spidev3: spi@3 {
compatible = "qti,spidev";
reg = <0>;
spi-max-frequency = <24000000>;
};
};
dma@7984000 {
status = "ok";
};
nand@79b0000 {
status = "ok";
nand@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-bus-width = <8>;
};
};
qusb@79000 {
status = "ok";
};
ssphy@78000 {
status = "ok";
};
usb3@8A00000 {
status = "ok";
};
qusb@59000 {
status = "ok";
};
ssphy@58000 {
status = "ok";
};
usb3@8C00000 {
status = "ok";
};
phy@84000 {
status = "ok";
};
phy@86000 {
status = "ok";
};
pci@20000000 {
perst-gpio = <&tlmm 58 1>;
status = "ok";
};
gpio_keys {
compatible = "gpio-keys";
pinctrl-0 = <&button_pins>;
pinctrl-names = "default";
status = "ok";
button@1 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&led_pins>;
pinctrl-names = "default";
red {
label = "sys:red";
gpio = <&tlmm 0 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green {
label = "sys:green";
gpio = <&tlmm 2 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
led_power: blue {
label = "sys:blue";
gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
mdio: mdio@90000 {
pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";
phy-reset-gpio = <&tlmm 37 0 &tlmm 25 0 &tlmm 44 0>;
phy0: ethernet-phy@0 {
reg = <0>;
};
phy1: ethernet-phy@1 {
reg = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
};
phy4: ethernet-phy@4 {
reg = <24>;
};
phy5: ethernet-phy@5 {
reg = <28>;
};
};
ess-switch@3a000000 {
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
switch_lan_bmp = <0x3e>; /* lan port bitmap */
switch_wan_bmp = <0x40>; /* wan port bitmap */
switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/
bm_tick_mode = <0>; /* bm tick mode */
tm_tick_mode = <0>; /* tm tick mode */
qcom,port_phyinfo {
port@0 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";
};
port@5 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";
};
};
port_scheduler_resource {
port@0 {
port_id = <0>;
ucast_queue = <0 143>;
mcast_queue = <256 271>;
l0sp = <0 35>;
l0cdrr = <0 47>;
l0edrr = <0 47>;
l1cdrr = <0 7>;
l1edrr = <0 7>;
};
port@1 {
port_id = <1>;
ucast_queue = <144 159>;
mcast_queue = <272 275>;
l0sp = <36 39>;
l0cdrr = <48 63>;
l0edrr = <48 63>;
l1cdrr = <8 11>;
l1edrr = <8 11>;
};
port@2 {
port_id = <2>;
ucast_queue = <160 175>;
mcast_queue = <276 279>;
l0sp = <40 43>;
l0cdrr = <64 79>;
l0edrr = <64 79>;
l1cdrr = <12 15>;
l1edrr = <12 15>;
};
port@3 {
port_id = <3>;
ucast_queue = <176 191>;
mcast_queue = <280 283>;
l0sp = <44 47>;
l0cdrr = <80 95>;
l0edrr = <80 95>;
l1cdrr = <16 19>;
l1edrr = <16 19>;
};
port@4 {
port_id = <4>;
ucast_queue = <192 207>;
mcast_queue = <284 287>;
l0sp = <48 51>;
l0cdrr = <96 111>;
l0edrr = <96 111>;
l1cdrr = <20 23>;
l1edrr = <20 23>;
};
port@5 {
port_id = <5>;
ucast_queue = <208 223>;
mcast_queue = <288 291>;
l0sp = <52 55>;
l0cdrr = <112 127>;
l0edrr = <112 127>;
l1cdrr = <24 27>;
l1edrr = <24 27>;
};
port@6 {
port_id = <6>;
ucast_queue = <224 239>;
mcast_queue = <292 295>;
l0sp = <56 59>;
l0cdrr = <128 143>;
l0edrr = <128 143>;
l1cdrr = <28 31>;
l1edrr = <28 31>;
};
port@7 {
port_id = <7>;
ucast_queue = <240 255>;
mcast_queue = <296 299>;
l0sp = <60 63>;
l0cdrr = <144 159>;
l0edrr = <144 159>;
l1cdrr = <32 35>;
l1edrr = <32 35>;
};
};
port_scheduler_config {
port@0 {
port_id = <0>;
l1scheduler {
group@0 {
sp = <0 1>; /*L0 SPs*/
/*cpri cdrr epri edrr*/
cfg = <0 0 0 0>;
};
};
l0scheduler {
group@0 {
/*unicast queues*/
ucast_queue = <0 4 8>;
/*multicast queues*/
mcast_queue = <256 260>;
/*sp cpri cdrr epri edrr*/
cfg = <0 0 0 0 0>;
};
group@1 {
ucast_queue = <1 5 9>;
mcast_queue = <257 261>;
cfg = <0 1 1 1 1>;
};
group@2 {
ucast_queue = <2 6 10>;
mcast_queue = <258 262>;
cfg = <0 2 2 2 2>;
};
group@3 {
ucast_queue = <3 7 11>;
mcast_queue = <259 263>;
cfg = <0 3 3 3 3>;
};
};
};
port@1 {
port_id = <1>;
l1scheduler {
group@0 {
sp = <36>;
cfg = <0 8 0 8>;
};
group@1 {
sp = <37>;
cfg = <1 9 1 9>;
};
};
l0scheduler {
group@0 {
ucast_queue = <144>;
ucast_loop_pri = <16>;
mcast_queue = <272>;
mcast_loop_pri = <4>;
cfg = <36 0 48 0 48>;
};
};
};
port@2 {
port_id = <2>;
l1scheduler {
group@0 {
sp = <40>;
cfg = <0 12 0 12>;
};
group@1 {
sp = <41>;
cfg = <1 13 1 13>;
};
};
l0scheduler {
group@0 {
ucast_queue = <160>;
ucast_loop_pri = <16>;
mcast_queue = <276>;
mcast_loop_pri = <4>;
cfg = <40 0 64 0 64>;
};
};
};
port@3 {
port_id = <3>;
l1scheduler {
group@0 {
sp = <44>;
cfg = <0 16 0 16>;
};
group@1 {
sp = <45>;
cfg = <1 17 1 17>;
};
};
l0scheduler {
group@0 {
ucast_queue = <176>;
ucast_loop_pri = <16>;
mcast_queue = <280>;
mcast_loop_pri = <4>;
cfg = <44 0 80 0 80>;
};
};
};
port@4 {
port_id = <4>;
l1scheduler {
group@0 {
sp = <48>;
cfg = <0 20 0 20>;
};
group@1 {
sp = <49>;
cfg = <1 21 1 21>;
};
};
l0scheduler {
group@0 {
ucast_queue = <192>;
ucast_loop_pri = <16>;
mcast_queue = <284>;
mcast_loop_pri = <4>;
cfg = <48 0 96 0 96>;
};
};
};
port@5 {
port_id = <5>;
l1scheduler {
group@0 {
sp = <52>;
cfg = <0 24 0 24>;
};
group@1 {
sp = <53>;
cfg = <1 25 1 25>;
};
};
l0scheduler {
group@0 {
ucast_queue = <208>;
ucast_loop_pri = <16>;
mcast_queue = <288>;
mcast_loop_pri = <4>;
cfg = <52 0 112 0 112>;
};
};
};
port@6 {
port_id = <6>;
l1scheduler {
group@0 {
sp = <56>;
cfg = <0 28 0 28>;
};
group@1 {
sp = <57>;
cfg = <1 29 1 29>;
};
};
l0scheduler {
group@0 {
ucast_queue = <224>;
ucast_loop_pri = <16>;
mcast_queue = <292>;
mcast_loop_pri = <4>;
cfg = <56 0 128 0 128>;
};
};
};
port@7 {
port_id = <7>;
l1scheduler {
group@0 {
sp = <60>;
cfg = <0 32 0 32>;
};
group@1 {
sp = <61>;
cfg = <1 33 1 33>;
};
};
l0scheduler {
group@0 {
ucast_queue = <240>;
ucast_loop_pri = <16>;
mcast_queue = <296>;
cfg = <60 0 144 0 144>;
};
};
};
};
};
nss-macsec0 {
compatible = "qcom,nss-macsec";
phy_addr = <0x18>;
phy_access_mode = <0>;
mdiobus = <&mdio>;
};
nss-macsec1 {
compatible = "qcom,nss-macsec";
phy_addr = <0x1c>;
phy_access_mode = <0>;
mdiobus = <&mdio>;
};
};
};
&wifi0 {
qcom,board_id = <0x90>;
};
&wifi1 {
qcom,board_id = <0x290>;
};

View File

@@ -57,6 +57,17 @@ define Device/edgecore_eap106
endef
#TARGET_DEVICES += edgecore_eap106
define Device/sonicfi_rap650c
DEVICE_TITLE := SonicFi RAP650C
DEVICE_DTS := qcom-ipq807x-rap650c
DEVICE_DTS_CONFIG=config@hk09
SUPPORTED_DEVICES := sonicfi,rap650c
DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap650c uboot-envtools
IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
IMAGE/nand-factory.ubi := append-ubi
endef
TARGET_DEVICES += sonicfi_rap650c
define Device/tplink_ex227
DEVICE_TITLE := TP-Link EX227
DEVICE_DTS := qcom-ipq807x-ex227

View File

@@ -0,0 +1,116 @@
Index: backports-20210222_001-5.4.164-b157d2276/drivers/net/wireless/ath/ath11k/peer.c
===================================================================
--- backports-20210222_001-5.4.164-b157d2276.orig/drivers/net/wireless/ath/ath11k/peer.c
+++ backports-20210222_001-5.4.164-b157d2276/drivers/net/wireless/ath/ath11k/peer.c
@@ -789,8 +789,6 @@ int ath11k_peer_delete(struct ath11k *ar
#endif
lockdep_assert_held(&ar->conf_mutex);
- reinit_completion(&ar->peer_delete_done);
-
ath11k_nss_peer_delete(ar->ab, vdev_id, addr);
#ifdef CCPTCFG_ATH11K_NSS_SUPPORTPTCFG_ATH11K_NSS_SUPPORT
mutex_lock(&ar->ab->base_ast_lock);
@@ -799,33 +797,60 @@ int ath11k_peer_delete(struct ath11k *ar
spin_lock_bh(&ar->ab->base_lock);
peer = ath11k_peer_find_by_addr(ar->ab, addr);
- if (peer) {
+ /* Check if the found peer is what we want to remove.
+ * While the sta is transitioning to another band we may
+ * have 2 peer with the same addr assigned to different
+ * vdev_id. Make sure we are deleting the correct peer.
+ */
+ if (peer && peer->vdev_id == vdev_id)
+ ath11k_peer_rhash_delete(ar->ab, peer);
+
+ /* Fallback to peer list search if the correct peer can't be found.
+ * Skip the deletion of the peer from the rhash since it has already
+ * been deleted in peer add.
+ */
+ if (!peer)
+ peer = ath11k_peer_find(ar->ab, vdev_id, addr);
+
+
+ if (!peer) {
+ spin_unlock_bh(&ar->ab->base_lock);
+ mutex_unlock(&ar->ab->tbl_mtx_lock);
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
- peer->delete_in_progress = true;
- if (peer->self_ast_entry) {
- ath11k_peer_del_ast(ar, peer->self_ast_entry);
- peer->self_ast_entry = NULL;
- }
+ mutex_unlock(&ar->ab->base_ast_lock);
+#endif
+ ath11k_warn(ar->ab,
+ "failed to find peer vdev_id %d addr %pM in delete\n",
+ vdev_id, addr);
+ return -EINVAL;
+ }
+
+#ifdef CPTCFG_ATH11K_NSS_SUPPORT
+ peer->delete_in_progress = true;
+ if (peer->self_ast_entry) {
+ ath11k_peer_del_ast(ar, peer->self_ast_entry);
+ peer->self_ast_entry = NULL;
+ }
- list_for_each_entry_safe(ast_entry, tmp_ast,
- &peer->ast_entry_list, ase_list)
- if ((ast_entry->type == ATH11K_AST_TYPE_WDS) ||
- (ast_entry->type == ATH11K_AST_TYPE_MEC)) {
- if (!list_empty(&ast_entry->wmi_list)) {
- ath11k_dbg(ar->ab, ATH11K_DBG_MAC,
- "%s deleting unprocessed ast entry %pM of peer %pM from wmi list\n",
- __func__, ast_entry->addr, addr);
- list_del_init(&ast_entry->wmi_list);
- }
+ list_for_each_entry_safe(ast_entry, tmp_ast,
+ &peer->ast_entry_list, ase_list)
+ if ((ast_entry->type == ATH11K_AST_TYPE_WDS) ||
+ (ast_entry->type == ATH11K_AST_TYPE_MEC)) {
+ if (!list_empty(&ast_entry->wmi_list)) {
+ ath11k_dbg(ar->ab, ATH11K_DBG_MAC,
+ "%s deleting unprocessed ast entry %pM of peer %pM from wmi list\n",
+ __func__, ast_entry->addr, addr);
+ list_del_init(&ast_entry->wmi_list);
}
+ }
#endif
- ath11k_peer_rhash_delete(ar->ab, peer);
- }
spin_unlock_bh(&ar->ab->base_lock);
mutex_unlock(&ar->ab->tbl_mtx_lock);
#ifdef CPTCFG_ATH11K_NSS_SUPPORT
mutex_unlock(&ar->ab->base_ast_lock);
#endif
+ reinit_completion(&ar->peer_delete_done);
+
ret = ath11k_wmi_send_peer_delete_cmd(ar, addr, vdev_id);
if (ret) {
ath11k_warn(ar->ab,
@@ -866,14 +891,20 @@ int ath11k_peer_create(struct ath11k *ar
"failed to create peer due to insufficient peer entry resource in firmware\n");
return -ENOBUFS;
}
-
+ mutex_lock(&ar->ab->tbl_mtx_lock);
spin_lock_bh(&ar->ab->base_lock);
peer = ath11k_peer_find_by_addr(ar->ab, param->peer_addr);
if (peer) {
- spin_unlock_bh(&ar->ab->base_lock);
- return -EINVAL;
+ if (peer->vdev_id == param->vdev_id) {
+ spin_unlock_bh(&ar->ab->base_lock);
+ mutex_unlock(&ar->ab->tbl_mtx_lock);
+ return -EINVAL;
+ }
+ ath11k_peer_rhash_delete(ar->ab, peer);
}
+
spin_unlock_bh(&ar->ab->base_lock);
+ mutex_unlock(&ar->ab->tbl_mtx_lock);
ret = ath11k_wmi_send_peer_create_cmd(ar, param);
if (ret) {

View File

@@ -9,6 +9,11 @@
/ {
aliases {
serial0 = &uart0;
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
chosen {
@@ -39,31 +44,22 @@
leds {
compatible = "gpio-leds";
led_blue {
led_power: led_blue {
label = "sys:blue";
gpios = <&pio 23 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "timer";
active-delay = <500>;
inactive-delay = <500>;
default-state="on";
default-state="off";
};
led_green {
label = "sys:green";
gpios = <&pio 24 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "timer";
active-delay = <500>;
inactive-delay = <500>;
default-state="on";
default-state="off";
};
led_red {
label = "sys:red";
gpios = <&pio 25 GPIO_ACTIVE_LOW>;
linux,default-trigger = "timer";
active-delay = <500>;
inactive-delay = <500>;
default-state="on";
default-state="off";
};
};
};
@@ -113,7 +109,7 @@
port@0 {
reg = <0>;
label = "lan1";
label = "lan3";
};
port@1 {
@@ -123,7 +119,7 @@
port@2 {
reg = <2>;
label = "lan3";
label = "lan1";
};
port@6 {

24
feeds/qca-wifi-7/ath12k-firmware/Makefile Normal file → Executable file
View File

@@ -42,6 +42,15 @@ define Package/ath12k-firmware-ipq5332-peb/description
Standard ath12k firmware for IPQ5332 + Pebble from QCA
endef
define Package/ath12k-firmware-ipq5332-peb-peb
$(Package/ath12k-firmware-default)
TITLE:=ath12k firmware for IPQ5332 + Pebble + Pebble devices
endef
define Package/ath12k-firmware-ipq5332-peb-peb/description
Standard ath12k firmware for IPQ5332 + Pebble + Pebble from QCA
endef
define Build/Compile
endef
@@ -60,10 +69,23 @@ endef
define Package/ath12k-firmware-ipq5332-peb/install
$(INSTALL_DIR) $(1)/lib/firmware/IPQ5332/
$(INSTALL_DATA) ./files/IPQ5332_peb/* \
$(INSTALL_DIR) $(1)/lib/firmware/qcn6432/
$(INSTALL_DATA) ./files/IPQ5332_peb/*.* \
$(1)/lib/firmware/IPQ5332/
$(INSTALL_DATA) ./files/IPQ5332_peb/qcn6432/* \
$(1)/lib/firmware/qcn6432/
endef
define Package/ath12k-firmware-ipq5332-peb-peb/install
$(INSTALL_DIR) $(1)/lib/firmware/IPQ5332/
$(INSTALL_DIR) $(1)/lib/firmware/qcn6432/
$(INSTALL_DATA) ./files/IPQ5332_peb_peb/*.* \
$(1)/lib/firmware/IPQ5332/
$(INSTALL_DATA) ./files/IPQ5332_peb_peb/qcn6432/* \
$(1)/lib/firmware/qcn6432/
endef
$(eval $(call BuildPackage,ath12k-firmware-qcn92xx))
$(eval $(call BuildPackage,ath12k-firmware-ipq5332))
$(eval $(call BuildPackage,ath12k-firmware-ipq5332-peb))
$(eval $(call BuildPackage,ath12k-firmware-ipq5332-peb-peb))

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
//Number of VAPs
{"Mode": 0,"num vap":17} // Max VAP support is 17 per MAC
{"Mode": 1,"num vap":17} // Max VAP support is 17 per MAC
{"Mode": 2,"num vap":17} // Max VAP support is 17 per MAC
//Number of clients
{"Mode":0, "num clients":256} // Max client support is 256 for both single MAC and dual MAC
{"Mode":1, "num clients":256} // Max client support is 256 per MAC
{"Mode":2, "num clients":256} // Max client support is 256 per MAC
// Please do not reduce the default configuration while working in QWRAP Mode.
//AFC Proxy ,Deployment type ,Power mode mask INI configuration
{"afc_local_rsvd":0,"Deployment_Type":1,"Power_mode_mask":7}
2<EFBFBD>=R<02>[I<>
<EFBFBD>;<3B>b|G%<25><><19><05>ъ[<5B>nT

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_eval/PIL_IMAGES/qcn6432/iu_fw.b00
build/ms/bin/5332.wlan_fw2.mia_peb_eval/PIL_IMAGES/qcn6432/iu_fw.b01
build/ms/bin/5332.wlan_fw2.mia_peb_eval/PIL_IMAGES/qcn6432/iu_fw.b02

View File

@@ -0,0 +1,181 @@
seq_start;
seq_type:mem_req;
sink:etr_ddr,0x1,0x400;
seq_end;
seq_start;
seq_type:mac_event_trace;
subsys_cfg_start:umac;
cxc_eb0:0x2,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
reo_eb0:0x4,0x61C81F4,0x0,0x0,0x0;
tqm_eb0:0x5,0xCDB3C6C6,0x803007E0,0x0,0x0;
tcl_eb0:0x6,0x25030034,0x3000,0x0,0x0;
wbm_eb0:0x7,0x880004,0x380000,0x0,0x0;
cxc_eb1:0x8,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
tcl_eb1:0x9,0x25030034,0x3000,0x0,0x0;
reo_eb1:0xA,0x61C81F4,0x0,0x0,0x0;
tqm_eb1:0xB,0xCDB3C6C6,0x803007E0,0x0,0x0;
wbm_eb1:0xC,0x880004,0x380000,0x0,0x0;
mxi:0xD,0x122234,0x0,0x0,0x0;
wsib:0xE,0x0,0x0,0x0,0x0;
memw:0x0;
subsys_cfg_end:umac;
subsys_cfg_start:dmac;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
txdma_eb0:0x1,0x200,0x0,0x0,0x0;
txdma_eb1:0x2,0xD9220,0xAF0,0x0,0x0;
txdma_eb2:0x3,0xD9220,0xAF0,0x0,0x0;
rxdma_eb0:0x4,0x93297E3F,0xC00000,0x0,0x0;
rxdma_eb1:0x5,0x707F,0x0,0x0,0x0;
txole_eb0:0x6,0xFFFFFFFF,0x0,0x0,0x0;
txole_eb1:0x7,0x781F0734,0x6,0x0,0x0;
txole_eb2:0x8,0x781F0734,0x6,0x0,0x0;
rxole_eb0:0x9,0xF,0x0,0x0,0x0;
rxole_eb1:0xA,0x7F,0x0,0x0,0x0;
rxole_eb2:0xB,0x7F,0x0,0x0,0x0;
crypto:0xC,0xFF3FFF,0x0,0x0,0x0;
mxi:0xD,0x122234,0x0,0x0,0x0;
sfm_eb0:0xE,0x40000003,0x7F8,0x0,0x0;
rxmon_eb0:0x14,0x22800010,0x40A00,0x0,0x0;
rxmon_eb1:0x15,0x18005000,0x18,0x0,0x0;
txmon_eb0:0x12,0x22800010,0x40A00,0x0,0x0;
txmon_eb1:0x13,0x98005000,0x199,0x0,0x0;
memw:0x0;
subsys_cfg_end:dmac;
subsys_cfg_start:pmac0;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
hwsch:0x1,0x803FFFF7,0x30003,0x0,0x0;
pdg:0x2,0xE430F87,0x622856E,0x0,0x0;
txpcu_eb0:0x8,0xE87A047,0x132,0x0,0x0;
rxpcu_eb0:0x9,0x10060217,0x1F24500,0x0,0x0;
rri:0xa,0x0,0x0,0x0,0x0;
ampi:0xb,0x69C07,0x0,0x0,0x0;
mxi:0xd,0x122234,0x0,0x0,0x0;
txpcu_eb1:0x10,0x0,0x0,0x0,0x0;
sfm_eb1:0x12,0x40000003,0x7F8,0x0,0x0;
rxpcu_eb1:0x13,0x0,0x0,0x0,0x0;
hwmlo:0x1c,0x1C100004,0x7800,0x0,0x0;
memw:0x0;
subsys_cfg_end:pmac0;
subsys_cfg_start:pmac1;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
hwsch:0x1,0x803FFFF7,0x30003,0x0,0x0;
pdg:0x2,0xE430F87,0x622856E,0x0,0x0;
txpcu_eb0:0x8,0xE87A047,0x132,0x0,0x0;
rxpcu_eb0:0x9,0x10060217,0x1F24500,0x0,0x0;
rri:0xa,0x0,0x0,0x0,0x0;
ampi:0xb,0x69C07,0x0,0x0,0x0;
mxi:0xd,0x122234,0x0,0x0,0x0;
txpcu_eb1:0x10,0x0,0x0,0x0,0x0;
sfm_eb1:0x12,0x40000003,0x7F8,0x0,0x0;
rxpcu_eb1:0x13,0x0,0x0,0x0,0x0;
hwmlo:0x1c,0x1C100004,0x7800,0x0,0x0;
memw:0x0;
subsys_cfg_end:pmac1;
seq_end;
seq_start;
seq_type:phy_event_trace;
subsys_cfg_start:phya0;
data_tlv:0;
wsi:0x0,0x00000000,0x00000000;
rfcntl:0x0,0x00000000,0x00000000;
tpc:0x0,0x00000000,0x00000000;
cal:0x0,0x00000000,0x00000000;
impcorr:0x0,0x00000000,0x00000000;
mpi:0x6,0x00000006,0x00000000;
fft:0x0,0x00000000,0x00000000;
txtd:0x0,0x00000000,0x00000000;
pmi:0x9,0x0000000A,0x00000000;
rxtd:0xa,0x0000000A,0x00000000;
demfront:0x0,0x00000000,0x00000000;
pcss:0xc,0x0000003E,0x00000000;
txfd:0x0,0x00000000,0x00000000;
robe:0x0,0x00000000,0x00000000;
dmac_0_1:0x0,0x00000000,0x00000000;
dmac_2_3:0x0,0x00000000,0x00000000;
dmac_4_5:0x0,0x00000000,0x00000000;
dmac_6:0x0,0x00000000,0x00000000;
eos:0x0,0x00000000,0x00000000;
subsys_cfg_end:phya0;
//subsys_cfg_start:phya1;
//data_tlv:1;
//wsi:0x0,0x00000000,0x00000000;
//rfcntl:0x0,0x00000000,0x00000000;
//tpc:0x0,0x00000000,0x00000000;
//cal:0x0,0x00000000,0x00000000;
//impcorr:0x0,0x00000000,0x00000000;
//mpi:0x6,0x00000006,0x00000000;
//fft:0x0,0x00000000,0x00000000;
//txtd:0x0,0x00000000,0x00000000;
//pmi:0x9,0x0000000A,0x00000000;
//rxtd:0xa,0x0000000A,0x00000000;
//demfront:0x0,0x00000000,0x00000000;
//pcss:0xc,0x0000003E,0x00000000;
//txfd:0x0,0x00000000,0x00000000;
//robe:0x0,0x00000000,0x00000000;
//dmac_0_1:0x0,0x00000000,0x00000000;
//dmac_2_3:0x0,0x00000000,0x00000000;
//dmac_4_5:0x0,0x00000000,0x00000000;
//dmac_6:0x0,0x00000000,0x00000000;
//eos:0x0,0x00000000,0x00000000;
//subsys_cfg_end:phya1;
seq_end;
//seq_start;
//seq_type:noc_trace;
//noc_id:umacnoc;
//syncoutperiod:0x1F;
//probe_id:0x0;
//probe_type:0x2;
//probe_andinv:0x0;
//probe_portsel:0x1;
//filter0_path:0x0;
//filter0_path_mask:0x0;
//filter0_addr_min_lo:0x0;
//filter0_addr_min_hi:0x0;
//filter0_addr_max_lo:0xFFFFFFFF;
//filter0_addr_max_hi:0xF;
//filter0_opcode:0x3;
//filter0_status:0x3;
//filter0_trtype:0x0;
//filter0_extid:0x0;
//filter0_extid_mask:0x0;
//filter1_path:0x0;
//filter1_path_mask:0x0;
//filter1_addr_min_lo:0x0;
//filter1_addr_min_hi:0x0;
//filter1_addr_max_lo:0xFFFFFFFF;
//filter1_addr_max_hi:0xF;
//filter1_opcode:0x3;
//filter1_status:0x3;
//filter1_trtype:0x0;
//filter1_extid:0x0;
//filter1_extid_mask:0x0;
//seq_end;
//seq_start;
//seq_type:mac_tlv_trace;
//subsys_cfg_start:pmac0;
//tlv_port:tqm_hwsch_tlv;
//tlv_config:tlv_type,other_tlv,specific_tlv,data_tlv;
//tlv_config:1,3,3,3;
//memw:0x2,0x10220A0,0xFFFFFDFF,0x10220B0,0x7FFFFFFF;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_start;
//seq_type:mac_tlv_trace;
//subsys_cfg_start:pmac1;
//tlv_port:tqm_hwsch_tlv;
//tlv_config:tlv_type,other_tlv,specific_tlv,data_tlv;
//tlv_config:1,3,3,3;
//memw:0x2,0x10220A0,0xFFFFFDFF,0x10220B0,0x7FFFFFFF;
//subsys_cfg_end:pmac1;
//seq_end;
//seq_start;
//seq_type:mac_obo_trace;
//subsys_cfg_start:pmac0;
//tbus_port:pdg_testbus, 0x7;
//memw:0x0;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_type:irq_trace;
//seq_end;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/iu_fw.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/iu_fw.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/iu_fw.b02

View File

@@ -0,0 +1,11 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b02
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b03
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b04
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b05
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b06
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b07
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b08
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b09
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw0.b11

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw1.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw1.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw1.b02

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw2.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw2.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw2.b02

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw3.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw3.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw3.b02

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw4.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw4.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/q6_fw4.b02

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
//Number of VAPs
{"Mode": 0,"num vap":17} // Max VAP support is 17 per MAC
{"Mode": 1,"num vap":17} // Max VAP support is 17 per MAC
{"Mode": 2,"num vap":17} // Max VAP support is 17 per MAC
//Number of clients
{"Mode":0, "num clients":256} // Max client support is 256 for both single MAC and dual MAC
{"Mode":1, "num clients":256} // Max client support is 256 per MAC
{"Mode":2, "num clients":256} // Max client support is 256 per MAC
// Please do not reduce the default configuration while working in QWRAP Mode.
//AFC Proxy ,Deployment type ,Power mode mask INI configuration
{"afc_local_rsvd":0,"Deployment_Type":1,"Power_mode_mask":7}
2<EFBFBD>=R<02>[I<>
<EFBFBD>;<3B>b|G%<25><><19><05>ъ[<5B>nT

View File

@@ -0,0 +1,3 @@
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/qcn6432/iu_fw.b00
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/qcn6432/iu_fw.b01
build/ms/bin/5332.wlan_fw2.mia_peb_peb_eval_cs/PIL_IMAGES/qcn6432/iu_fw.b02

View File

@@ -0,0 +1,181 @@
seq_start;
seq_type:mem_req;
sink:etr_ddr,0x1,0x400;
seq_end;
seq_start;
seq_type:mac_event_trace;
subsys_cfg_start:umac;
cxc_eb0:0x2,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
reo_eb0:0x4,0x61C81F4,0x0,0x0,0x0;
tqm_eb0:0x5,0xCDB3C6C6,0x803007E0,0x0,0x0;
tcl_eb0:0x6,0x25030034,0x3000,0x0,0x0;
wbm_eb0:0x7,0x880004,0x380000,0x0,0x0;
cxc_eb1:0x8,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
tcl_eb1:0x9,0x25030034,0x3000,0x0,0x0;
reo_eb1:0xA,0x61C81F4,0x0,0x0,0x0;
tqm_eb1:0xB,0xCDB3C6C6,0x803007E0,0x0,0x0;
wbm_eb1:0xC,0x880004,0x380000,0x0,0x0;
mxi:0xD,0x122234,0x0,0x0,0x0;
wsib:0xE,0x0,0x0,0x0,0x0;
memw:0x0;
subsys_cfg_end:umac;
subsys_cfg_start:dmac;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
txdma_eb0:0x1,0x200,0x0,0x0,0x0;
txdma_eb1:0x2,0xD9220,0xAF0,0x0,0x0;
txdma_eb2:0x3,0xD9220,0xAF0,0x0,0x0;
rxdma_eb0:0x4,0x93297E3F,0xC00000,0x0,0x0;
rxdma_eb1:0x5,0x707F,0x0,0x0,0x0;
txole_eb0:0x6,0xFFFFFFFF,0x0,0x0,0x0;
txole_eb1:0x7,0x781F0734,0x6,0x0,0x0;
txole_eb2:0x8,0x781F0734,0x6,0x0,0x0;
rxole_eb0:0x9,0xF,0x0,0x0,0x0;
rxole_eb1:0xA,0x7F,0x0,0x0,0x0;
rxole_eb2:0xB,0x7F,0x0,0x0,0x0;
crypto:0xC,0xFF3FFF,0x0,0x0,0x0;
mxi:0xD,0x122234,0x0,0x0,0x0;
sfm_eb0:0xE,0x40000003,0x7F8,0x0,0x0;
rxmon_eb0:0x14,0x22800010,0x40A00,0x0,0x0;
rxmon_eb1:0x15,0x18005000,0x18,0x0,0x0;
txmon_eb0:0x12,0x22800010,0x40A00,0x0,0x0;
txmon_eb1:0x13,0x98005000,0x199,0x0,0x0;
memw:0x0;
subsys_cfg_end:dmac;
subsys_cfg_start:pmac0;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
hwsch:0x1,0x803FFFF7,0x30003,0x0,0x0;
pdg:0x2,0xE430F87,0x622856E,0x0,0x0;
txpcu_eb0:0x8,0xE87A047,0x132,0x0,0x0;
rxpcu_eb0:0x9,0x10060217,0x1F24500,0x0,0x0;
rri:0xa,0x0,0x0,0x0,0x0;
ampi:0xb,0x69C07,0x0,0x0,0x0;
mxi:0xd,0x122234,0x0,0x0,0x0;
txpcu_eb1:0x10,0x0,0x0,0x0,0x0;
sfm_eb1:0x12,0x40000003,0x7F8,0x0,0x0;
rxpcu_eb1:0x13,0x0,0x0,0x0,0x0;
hwmlo:0x1c,0x1C100004,0x7800,0x0,0x0;
memw:0x0;
subsys_cfg_end:pmac0;
subsys_cfg_start:pmac1;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
hwsch:0x1,0x803FFFF7,0x30003,0x0,0x0;
pdg:0x2,0xE430F87,0x622856E,0x0,0x0;
txpcu_eb0:0x8,0xE87A047,0x132,0x0,0x0;
rxpcu_eb0:0x9,0x10060217,0x1F24500,0x0,0x0;
rri:0xa,0x0,0x0,0x0,0x0;
ampi:0xb,0x69C07,0x0,0x0,0x0;
mxi:0xd,0x122234,0x0,0x0,0x0;
txpcu_eb1:0x10,0x0,0x0,0x0,0x0;
sfm_eb1:0x12,0x40000003,0x7F8,0x0,0x0;
rxpcu_eb1:0x13,0x0,0x0,0x0,0x0;
hwmlo:0x1c,0x1C100004,0x7800,0x0,0x0;
memw:0x0;
subsys_cfg_end:pmac1;
seq_end;
seq_start;
seq_type:phy_event_trace;
subsys_cfg_start:phya0;
data_tlv:0;
wsi:0x0,0x00000000,0x00000000;
rfcntl:0x0,0x00000000,0x00000000;
tpc:0x0,0x00000000,0x00000000;
cal:0x0,0x00000000,0x00000000;
impcorr:0x0,0x00000000,0x00000000;
mpi:0x6,0x00000006,0x00000000;
fft:0x0,0x00000000,0x00000000;
txtd:0x0,0x00000000,0x00000000;
pmi:0x9,0x0000000A,0x00000000;
rxtd:0xa,0x0000000A,0x00000000;
demfront:0x0,0x00000000,0x00000000;
pcss:0xc,0x0000003E,0x00000000;
txfd:0x0,0x00000000,0x00000000;
robe:0x0,0x00000000,0x00000000;
dmac_0_1:0x0,0x00000000,0x00000000;
dmac_2_3:0x0,0x00000000,0x00000000;
dmac_4_5:0x0,0x00000000,0x00000000;
dmac_6:0x0,0x00000000,0x00000000;
eos:0x0,0x00000000,0x00000000;
subsys_cfg_end:phya0;
//subsys_cfg_start:phya1;
//data_tlv:1;
//wsi:0x0,0x00000000,0x00000000;
//rfcntl:0x0,0x00000000,0x00000000;
//tpc:0x0,0x00000000,0x00000000;
//cal:0x0,0x00000000,0x00000000;
//impcorr:0x0,0x00000000,0x00000000;
//mpi:0x6,0x00000006,0x00000000;
//fft:0x0,0x00000000,0x00000000;
//txtd:0x0,0x00000000,0x00000000;
//pmi:0x9,0x0000000A,0x00000000;
//rxtd:0xa,0x0000000A,0x00000000;
//demfront:0x0,0x00000000,0x00000000;
//pcss:0xc,0x0000003E,0x00000000;
//txfd:0x0,0x00000000,0x00000000;
//robe:0x0,0x00000000,0x00000000;
//dmac_0_1:0x0,0x00000000,0x00000000;
//dmac_2_3:0x0,0x00000000,0x00000000;
//dmac_4_5:0x0,0x00000000,0x00000000;
//dmac_6:0x0,0x00000000,0x00000000;
//eos:0x0,0x00000000,0x00000000;
//subsys_cfg_end:phya1;
seq_end;
//seq_start;
//seq_type:noc_trace;
//noc_id:umacnoc;
//syncoutperiod:0x1F;
//probe_id:0x0;
//probe_type:0x2;
//probe_andinv:0x0;
//probe_portsel:0x1;
//filter0_path:0x0;
//filter0_path_mask:0x0;
//filter0_addr_min_lo:0x0;
//filter0_addr_min_hi:0x0;
//filter0_addr_max_lo:0xFFFFFFFF;
//filter0_addr_max_hi:0xF;
//filter0_opcode:0x3;
//filter0_status:0x3;
//filter0_trtype:0x0;
//filter0_extid:0x0;
//filter0_extid_mask:0x0;
//filter1_path:0x0;
//filter1_path_mask:0x0;
//filter1_addr_min_lo:0x0;
//filter1_addr_min_hi:0x0;
//filter1_addr_max_lo:0xFFFFFFFF;
//filter1_addr_max_hi:0xF;
//filter1_opcode:0x3;
//filter1_status:0x3;
//filter1_trtype:0x0;
//filter1_extid:0x0;
//filter1_extid_mask:0x0;
//seq_end;
//seq_start;
//seq_type:mac_tlv_trace;
//subsys_cfg_start:pmac0;
//tlv_port:tqm_hwsch_tlv;
//tlv_config:tlv_type,other_tlv,specific_tlv,data_tlv;
//tlv_config:1,3,3,3;
//memw:0x2,0x10220A0,0xFFFFFDFF,0x10220B0,0x7FFFFFFF;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_start;
//seq_type:mac_tlv_trace;
//subsys_cfg_start:pmac1;
//tlv_port:tqm_hwsch_tlv;
//tlv_config:tlv_type,other_tlv,specific_tlv,data_tlv;
//tlv_config:1,3,3,3;
//memw:0x2,0x10220A0,0xFFFFFDFF,0x10220B0,0x7FFFFFFF;
//subsys_cfg_end:pmac1;
//seq_end;
//seq_start;
//seq_type:mac_obo_trace;
//subsys_cfg_start:pmac0;
//tbus_port:pdg_testbus, 0x7;
//memw:0x0;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_type:irq_trace;
//seq_end;

View File

@@ -0,0 +1,133 @@
seq_start;
seq_type:mem_req;
sink:etr_ddr,0x1,0x400;
seq_end;
seq_start;
seq_type:mac_event_trace;
subsys_cfg_start:umac;
cxc_eb0:0x2,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
reo_eb0:0x4,0x61C81F4,0x0,0x0,0x0;
tqm_eb0:0x5,0xCDB3C6C6,0x803007E0,0x0,0x0;
tcl_eb0:0x6,0x25030034,0x3000,0x0,0x0;
wbm_eb0:0x7,0x880004,0x380000,0x0,0x0;
cxc_eb1:0x8,0x42AAA8B3,0x64BFA3C0,0x00008000,0x0001C0FC;
tcl_eb1:0x9,0x25030034,0x3000,0x0,0x0;
reo_eb1:0xA,0x61C81F4,0x0,0x0,0x0;
tqm_eb1:0xB,0xCDB3C6C6,0x803007E0,0x0,0x0;
wbm_eb1:0xC,0x880004,0x380000,0x0,0x0;
wsib:0xE,0x0,0x0,0x0,0x0;
memw:0x0;
subsys_cfg_end:umac;
subsys_cfg_start:dmac;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
txdma_eb0:0x1,0x0,0x0,0x0,0x0;
txdma_eb1:0x2,0x286C0,0x83C304,0x0,0x0;
txdma_eb2:0x3,0x286C0,0x83C304,0x0,0x0;
rxdma_eb0:0x4,0x93297E3F,0xC00000,0x0,0x0;
rxdma_eb1:0x5,0x707F,0x0,0x0,0x0;
txole_eb0:0x6,0xFFFFFFFF,0x0,0x0,0x0;
txole_eb1:0x7,0x781F0734,0x6,0x0,0x0;
txole_eb2:0x8,0x781F0734,0x6,0x0,0x0;
rxole_eb0:0x9,0xF,0x0,0x0,0x0;
rxole_eb1:0xA,0x7F,0x0,0x0,0x0;
rxole_eb2:0xB,0x7F,0x0,0x0,0x0;
crypto:0xC,0xFF3FFF,0x0,0x0,0x0;
mxi:0xD,0x122234,0x0,0x0,0x0;
sfm_eb0:0xE,0x40000003,0x7F8,0x0,0x0;
rxmon_eb0:0x14,0x0,0x0,0x0,0x0;
rxmon_eb1:0x15,0x0,0x0,0x0,0x0;
txmon_eb0:0x12,0x0,0x0,0x0,0x0;
txmon_eb1:0x13,0x0,0x0,0x0,0x0;
memw:0x0;
subsys_cfg_end:dmac;
subsys_cfg_start:pmac0;
swevt:0x0,0xFFFFFFFF,0xFFFFFFFF,0x00000000,0x00000000;
hwsch:0x1,0x3FFFF7,0x30000,0x0,0x0;
pdg:0x2,0xE430F87,0x622856E,0x0,0x0;
txpcu_eb0:0x8,0xE87A047,0x112,0x0,0x0;
rxpcu_eb0:0x9,0x10060217,0x1824500,0x0,0x0;
rri:0xa,0x0,0x0,0x0,0x0;
ampi:0xb,0x69C07,0x0,0x0,0x0;
mxi:0xd,0x122234,0x0,0x0,0x0;
txpcu_eb1:0x10,0x0,0x0,0x0,0x0;
sfm_eb1:0x12,0x40000003,0x7F8,0x0,0x0;
rxpcu_eb1:0x13,0x0,0x0,0x0,0x0;
hwmlo:0x1c,0x1C100004,0x0,0x0,0x0;
memw:0x0;
subsys_cfg_end:pmac0;
seq_end;
seq_start;
seq_type:phy_event_trace;
subsys_cfg_start:phya0;
data_tlv:0;
wsi:0x0,0x00000000,0x00000000;
rfcntl:0x0,0x00000000,0x00000000;
tpc:0x0,0x00000000,0x00000000;
cal:0x0,0x00000000,0x00000000;
impcorr:0x0,0x00000000,0x00000000;
mpi:0x6,0x00000006,0x00000000;
fft:0x0,0x00000000,0x00000000;
txtd:0x0,0x00000000,0x00000000;
pmi:0x9,0x0000000A,0x00000000;
rxtd:0xa,0x0000000A,0x00000000;
demfront:0x0,0x00000000,0x00000000;
pcss:0xc,0x0000003E,0x00000000;
txfd:0x0,0x00000000,0x00000000;
robe:0x0,0x00000000,0x00000000;
dmac_0_1:0x0,0x00000000,0x00000000;
dmac_2_3:0x0,0x00000000,0x00000000;
dmac_4_5:0x0,0x00000000,0x00000000;
dmac_6:0x0,0x00000000,0x00000000;
eos:0x0,0x00000000,0x00000000;
subsys_cfg_end:phya0;
seq_end;
//seq_start;
//seq_type:noc_trace;
//noc_id:umacnoc;
//syncoutperiod:0x1F;
//probe_id:0x0;
//probe_type:0x2;
//probe_andinv:0x0;
//probe_portsel:0x1;
//filter0_path:0x0;
//filter0_path_mask:0x0;
//filter0_addr_min_lo:0x0;
//filter0_addr_min_hi:0x0;
//filter0_addr_max_lo:0xFFFFFFFF;
//filter0_addr_max_hi:0xF;
//filter0_opcode:0x3;
//filter0_status:0x3;
//filter0_trtype:0x0;
//filter0_extid:0x0;
//filter0_extid_mask:0x0;
//filter1_path:0x0;
//filter1_path_mask:0x0;
//filter1_addr_min_lo:0x0;
//filter1_addr_min_hi:0x0;
//filter1_addr_max_lo:0xFFFFFFFF;
//filter1_addr_max_hi:0xF;
//filter1_opcode:0x3;
//filter1_status:0x3;
//filter1_trtype:0x0;
//filter1_extid:0x0;
//filter1_extid_mask:0x0;
//seq_end;
//seq_start;
//seq_type:mac_tlv_trace;
//subsys_cfg_start:pmac0;
//tlv_port:txpcu_ampi_tlv;
//tlv_config:tlv_type,other_tlv,specific_tlv,data_tlv;
//tlv_config:1,3,3,3;
//memw:0x0;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_type:mac_obo_trace;
//subsys_cfg_start:pmac0;
//tbus_port:pdg_testbus, 0x7;
//memw:0x0;
//subsys_cfg_end:pmac0;
//seq_end;
//seq_start;
//seq_type:irq_trace;
//seq_end;

62
feeds/qca-wifi-7/ath12k-wifi/Makefile Normal file → Executable file
View File

@@ -53,6 +53,27 @@ $(call Package/ath12k-wifi-default)
TITLE:=board-2.bin for RAP750W_311a
endef
define Package/ath12k-wifi-cig-wf189h
$(call Package/ath12k-wifi-default)
TITLE:=board-2.bin for WF189H
endef
define Package/ath12k-wifi-cig-wf189w
$(call Package/ath12k-wifi-default)
TITLE:=board-2.bin for WF189W
endef
define Package/ath12k-wifi-sercomm-ap72tip
$(call Package/ath12k-wifi-default)
TITLE:=board-2.bin for AP72TIP
endef
define Package/ath12k-wifi-sercomm-ap72tip-v4
$(call Package/ath12k-wifi-default)
TITLE:=board-2.bin for AP72TIP-v4
endef
define Package/ath12k-wifi-cig-wf189/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
@@ -76,10 +97,49 @@ endef
define Package/ath12k-wifi-sonicfi-rap750w-311a/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
$(INSTALL_DATA) ./ board-2.bin.rap750w_311a.IPQ5332$(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/
$(INSTALL_DATA) ./board-2.bin.rap750w_311a.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
$(INSTALL_DATA) ./board-2.bin.rap750w_311a.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin
# $(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/regdb.bin
$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
endef
define Package/ath12k-wifi-cig-wf189w/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/
$(INSTALL_DATA) ./board-2.bin.189w.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
$(INSTALL_DATA) ./board-2.bin.189w.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin
$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
endef
define Package/ath12k-wifi-cig-wf189h/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN6432/hw1.0/
$(INSTALL_DATA) ./board-2.bin.189h.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
$(INSTALL_DATA) ./board-2.bin.189h.QCN6432 $(1)/lib/firmware/ath12k/QCN6432/hw1.0/board-2.bin
$(INSTALL_DATA) ./ipq5332_qcn6432.regdb $(1)/lib/firmware/ath12k/QCN6432/hw1.0/regdb.bin
endef
define Package/ath12k-wifi-sercomm-ap72tip/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
$(INSTALL_DATA) ./board-2.bin.ap72tip.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin
$(INSTALL_DATA) ./board-2.bin.ap72tip.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
endef
define Package/ath12k-wifi-sercomm-ap72tip-v4/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
$(INSTALL_DATA) ./board-2.bin.ap72tip-v4.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin
$(INSTALL_DATA) ./board-2.bin.ap72tip-v4.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin
endef
$(eval $(call BuildPackage,ath12k-wifi-cig-wf189))
$(eval $(call BuildPackage,ath12k-wifi-edgecore-eap105))
$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap7110c-341x))
$(eval $(call BuildPackage,ath12k-wifi-sonicfi-rap750w-311a))
$(eval $(call BuildPackage,ath12k-wifi-cig-wf189w))
$(eval $(call BuildPackage,ath12k-wifi-cig-wf189h))
$(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip))
$(eval $(call BuildPackage,ath12k-wifi-sercomm-ap72tip-v4))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,20 @@
[
{
"board": [
{
"names": [
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ap72tip-IPQ5332.bin"
}
],
"regdb": [
{
"names": [
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ipq5332.regdb"
}
]
}
]

View File

@@ -0,0 +1,20 @@
[
{
"board": [
{
"names": [
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ap72tip-QCN92XX.bin"
}
],
"regdb": [
{
"names": [
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
],
"data": "qcn92xx.regdb"
}
]
}
]

View File

@@ -0,0 +1,20 @@
[
{
"board": [
{
"names": [
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ap72tip-v4-IPQ5332.bin"
}
],
"regdb": [
{
"names": [
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ipq5332.regdb"
}
]
}
]

View File

@@ -0,0 +1,20 @@
[
{
"board": [
{
"names": [
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
],
"data": "ap72tip-v4-QCN92XX.bin"
}
],
"regdb": [
{
"names": [
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
],
"data": "qcn92xx.regdb"
}
]
}
]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -9,3 +9,9 @@ $encoder -c board-2-eap105-QCN92XX.json -o board-2.bin.eap105.QCN92XX
$encoder -c board-2-rap7110c_341x-IPQ5332.json -o board-2.bin.rap7110c_341x.IPQ5332
$encoder -c board-2-rap7110c_341x-QCN92XX.json -o board-2.bin.rap7110c_341x.QCN92XX
$encoder -c board-2-ap72tip-IPQ5332.json -o board-2.bin.ap72tip.IPQ5332
$encoder -c board-2-ap72tip-QCN92XX.json -o board-2.bin.ap72tip.QCN92XX
$encoder -c board-2-ap72tip-v4-IPQ5332.json -o board-2.bin.ap72tip-v4.IPQ5332
$encoder -c board-2-ap72tip-v4-QCN92XX.json -o board-2.bin.ap72tip-v4.QCN92XX

Binary file not shown.

View File

@@ -73,6 +73,10 @@ hostapd_append_wpa_key_mgmt() {
owe)
append wpa_key_mgmt "OWE"
;;
psk2-radius)
append wpa_key_mgmt "WPA-PSK"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-PSK"
;;
esac
[ "$fils" -gt 0 ] && {
@@ -122,12 +126,15 @@ hostapd_common_add_device_config() {
config_add_int maxassoc
config_add_int reg_power_type
config_add_boolean stationary_ap
config_add_boolean maxassoc_ignore_probe
config_add_string acs_chan_bias
config_add_boolean acs_exclude_dfs
config_add_array hostapd_options
config_add_int airtime_mode
config_add_int mbssid
config_add_boolean rnr_beacon ema
hostapd_add_log_config
}
@@ -138,10 +145,11 @@ hostapd_prepare_device_config() {
local base_cfg=
json_get_vars country country3 country_ie beacon_int:100 doth require_mode legacy_rates \
json_get_vars country country3 country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \
acs_chan_bias local_pwr_constraint spectrum_mgmt_required airtime_mode cell_density \
rts_threshold beacon_rate rssi_reject_assoc_rssi rssi_ignore_probe_request maxassoc \
mbssid:0 band reg_power_type stationary_ap
rnr_beacon mbssid:0 band reg_power_type stationary_ap acs_exclude_dfs\
maxassoc_ignore_probe band
hostapd_set_log_options base_cfg
@@ -151,6 +159,9 @@ hostapd_prepare_device_config() {
set_default legacy_rates 0
set_default airtime_mode 0
set_default cell_density 0
set_default rnr_beacon 0
set_default ema 0
set_default acs_exclude_dfs 0
[ -n "$country" ] && {
append base_cfg "country_code=$country" "$N"
@@ -240,8 +251,14 @@ hostapd_prepare_device_config() {
[ -n "$brlist" ] && append base_cfg "basic_rates=$brlist" "$N"
append base_cfg "beacon_int=$beacon_int" "$N"
[ -n "$rts_threshold" ] && append base_cfg "rts_threshold=$rts_threshold" "$N"
append base_cfg "dtim_period=$dtim_period" "$N"
[ "$airtime_mode" -gt 0 ] && append base_cfg "airtime_mode=$airtime_mode" "$N"
[ -n "$maxassoc" ] && append base_cfg "iface_max_num_sta=$maxassoc" "$N"
[ "$maxassoc_ignore_probe" -gt 0 ] && append base_cfg "no_probe_resp_if_max_sta=1" "$N"
[ "$rnr_beacon" -gt 0 ] && append base_cfg "rnr_beacon=$rnr_beacon" "$N"
[ "$ema" -gt 0 ] && append base_cfg "ema=$ema" "$N"
[ "$acs_exclude_dfs" -gt 0 ] && append base_cfg "acs_exclude_dfs=$acs_exclude_dfs" "$N"
[ "$mbssid" -gt 0 ] && [ "$mbssid" -le 2 ] && append base_cfg "mbssid=$mbssid" "$N"
[ "$band" = "6g" ] && {
@@ -283,15 +300,24 @@ hostapd_common_add_bss_config() {
config_add_int ieee80211w
config_add_int eapol_version
config_add_array auth_server acct_server
config_add_string 'server:host'
config_add_string 'auth_server:host' 'server:host'
config_add_string auth_secret key
config_add_int 'auth_port:port' 'port:port'
config_add_string acct_server
config_add_string acct_secret
config_add_int acct_port
config_add_string acct_server_secondary
config_add_string acct_secret_secondary
config_add_int acct_port_secondary
config_add_int acct_interval
config_add_string auth_server_secondary
config_add_string auth_secret_secondary
config_add_int auth_port_secondary
config_add_int bss_load_update_period chan_util_avg_period
config_add_string dae_client
@@ -335,8 +361,8 @@ hostapd_common_add_bss_config() {
config_add_string lci civic
config_add_boolean ieee80211r pmk_r1_push ft_psk_generate_local ft_over_ds
config_add_int r0_key_lifetime reassociation_deadline
config_add_string mobility_domain r1_key_holder
config_add_int r0_key_lifetime reassociation_deadline ft_l2_refresh
config_add_string mobility_domain r1_key_holder ft_key
config_add_array r0kh r1kh
config_add_int ieee80211w_max_timeout ieee80211w_retry_timeout
@@ -387,14 +413,18 @@ hostapd_common_add_bss_config() {
config_add_array radius_auth_req_attr
config_add_array radius_acct_req_attr
config_add_int eap_server radius_server_auth_port
config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients
config_add_int eap_server
config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id
config_add_boolean fils
config_add_string fils_dhcp
config_add_boolean ratelimit
config_add_int ocv
config_add_string uci_section
config_add_boolean dynamic_probe_resp
config_add_boolean apup
config_add_string apup_peer_ifname_prefix
}
@@ -429,6 +459,7 @@ hostapd_set_psk() {
local ifname="$1"
rm -f /var/run/hostapd-${ifname}.psk
touch /var/run/hostapd-${ifname}.psk
for_each_station hostapd_set_psk_file ${ifname}
}
@@ -545,18 +576,83 @@ append_airtime_sta_weight() {
[ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N"
}
append_auth_server() {
[ -n "$1" ] || return
append bss_conf "auth_server_addr=$1" "$N"
append bss_conf "auth_server_port=$auth_port" "$N"
[ -n "$auth_secret" ] && append bss_conf "auth_server_shared_secret=$auth_secret" "$N"
}
append_radius_server() {
append_acct_server() {
[ -n "$1" ] || return
append bss_conf "acct_server_addr=$1" "$N"
append bss_conf "acct_server_port=$acct_port" "$N"
[ -n "$acct_secret" ] && append bss_conf "acct_server_shared_secret=$acct_secret" "$N"
json_get_vars \
auth_server auth_secret auth_port \
auth_server_secondary auth_secret_secondary auth_port_secondary \
dae_client dae_secret dae_port \
dynamic_ownip ownip radius_client_addr \
eap_reauth_period request_cui \
erp_domain mobility_domain \
fils_realm fils_dhcp
set_default dynamic_ownip 1
# legacy compatibility
[ -n "$auth_server" ] || json_get_var auth_server server
[ -n "$auth_port" ] || json_get_var auth_port port
[ -n "$auth_secret" ] || json_get_var auth_secret key
[ "$fils" -gt 0 ] && {
set_default erp_domain "$mobility_domain"
set_default erp_domain "$(echo "$ssid" | md5sum | head -c 8)"
set_default fils_realm "$erp_domain"
append bss_conf "erp_send_reauth_start=1" "$N"
append bss_conf "erp_domain=$erp_domain" "$N"
append bss_conf "fils_realm=$fils_realm" "$N"
append bss_conf "fils_cache_id=$(echo "$fils_realm" | md5sum | head -c 4)" "$N"
[ "$fils_dhcp" = "*" ] && {
json_get_values network network
fils_dhcp=
for net in $network; do
fils_dhcp="$(ifstatus "$net" | jsonfilter -e '@.data.dhcpserver')"
[ -n "$fils_dhcp" ] && break
done
[ -z "$fils_dhcp" -a -n "$network_bridge" -a -n "$network_ifname" ] && \
fils_dhcp="$(udhcpc -B -n -q -s /lib/netifd/dhcp-get-server.sh -t 1 -i "$network_ifname" 2>/dev/null)"
}
[ -n "$fils_dhcp" ] && append bss_conf "dhcp_server=$fils_dhcp" "$N"
}
set_default auth_port 1812
set_default auth_port_secondary 1812
set_default dae_port 3799
set_default request_cui 0
[ "$eap_server" -eq 0 -a -n "$auth_server" ] && {
append bss_conf "auth_server_addr=$auth_server" "$N"
append bss_conf "auth_server_port=$auth_port" "$N"
append bss_conf "auth_server_shared_secret=$auth_secret" "$N"
}
[ -n "$auth_server_secondary" ] && {
append bss_conf "auth_server_addr=$auth_server_secondary" "$N"
append bss_conf "auth_server_port=$auth_port_secondary" "$N"
[ -n "$auth_secret_secondary" ] && \
append bss_conf "auth_server_shared_secret=$auth_secret_secondary" "$N"
}
[ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N"
[ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N"
[ -n "$dae_client" -a -n "$dae_secret" ] && {
append bss_conf "radius_das_port=$dae_port" "$N"
append bss_conf "radius_das_client=$dae_client $dae_secret" "$N"
}
json_for_each_item append_radius_auth_req_attr radius_auth_req_attr
if [ -n "$ownip" ]; then
append bss_conf "own_ip_addr=$ownip" "$N"
elif [ "$dynamic_ownip" -gt 0 ]; then
append bss_conf "dynamic_own_ip_addr=$dynamic_ownip" "$N"
fi
[ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N"
[ "$macfilter" = radius ] && append bss_conf "macaddr_acl=2" "$N"
}
hostapd_set_bss_options() {
@@ -566,7 +662,7 @@ hostapd_set_bss_options() {
wireless_vif_parse_encryption
local bss_conf bss_md5sum ft_key
local bss_conf bss_md5sum
local wep_rekey wpa_group_rekey wpa_pair_rekey wpa_master_rekey wpa_key_mgmt
json_get_vars \
@@ -577,13 +673,14 @@ hostapd_set_bss_options() {
wps_independent wps_device_type wps_device_name wps_manufacturer wps_pin \
macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
acct_secret acct_port acct_interval \
acct_server acct_secret acct_port acct_interval \
acct_server_secondary acct_secret_secondary acct_port_secondary \
bss_load_update_period chan_util_avg_period sae_require_mfp sae_pwe \
multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
multicast_to_unicast_all proxy_arp per_sta_vif \
eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \
vendor_elements fils ocv apup multi_psk
vendor_elements fils ocv apup uci_section dynamic_probe_resp multi_psk
set_default fils 0
set_default isolate 0
@@ -600,6 +697,7 @@ hostapd_set_bss_options() {
set_default tdls_prohibit 0
set_default eapol_version $((wpa & 1))
set_default acct_port 1813
set_default acct_port_secondary 1813
set_default bss_load_update_period 60
set_default chan_util_avg_period 600
set_default utf8_ssid 1
@@ -608,6 +706,7 @@ hostapd_set_bss_options() {
set_default airtime_bss_weight 0
set_default airtime_bss_limit 0
set_default eap_server 0
set_default dynamic_probe_resp 0
set_default apup 0
/usr/sbin/hostapd -vfils || fils=0
@@ -634,6 +733,7 @@ hostapd_set_bss_options() {
append bss_conf "preamble=$short_preamble" "$N"
append bss_conf "wmm_enabled=$wmm" "$N"
append bss_conf "ignore_broadcast_ssid=$hidden" "$N"
append bss_conf "dynamic_probe_resp=$dynamic_probe_resp" "$N"
append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
append bss_conf "utf8_ssid=$utf8_ssid" "$N"
append bss_conf "multi_ap=$multi_ap" "$N"
@@ -650,10 +750,22 @@ hostapd_set_bss_options() {
[ -n "$nasid" ] && append bss_conf "nas_identifier=$nasid" "$N"
[ -n "$acct_interval" ] && \
append bss_conf "radius_acct_interim_interval=$acct_interval" "$N"
json_for_each_item append_acct_server acct_server
json_for_each_item append_radius_acct_req_attr radius_acct_req_attr
[ -n "$acct_server" ] && {
append bss_conf "acct_server_addr=$acct_server" "$N"
append bss_conf "acct_server_port=$acct_port" "$N"
[ -n "$acct_secret" ] && \
append bss_conf "acct_server_shared_secret=$acct_secret" "$N"
[ -n "$acct_interval" ] && \
append bss_conf "radius_acct_interim_interval=$acct_interval" "$N"
json_for_each_item append_radius_acct_req_attr radius_acct_req_attr
}
[ -n "$acct_server_secondary" ] && {
append bss_conf "acct_server_addr=$acct_server_secondary" "$N"
append bss_conf "acct_server_port=$acct_port_secondary" "$N"
[ -n "$acct_secret_secondary" ] && \
append bss_conf "acct_server_shared_secret=$acct_secret_secondary" "$N"
}
[ -n "$ocv" ] && append bss_conf "ocv=$ocv" "$N"
@@ -663,7 +775,7 @@ hostapd_set_bss_options() {
set_default sae_require_mfp 1
[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
;;
psk-sae|eap-eap2)
psk-sae|psk2-radius|eap-eap2)
set_default ieee80211w 1
set_default sae_require_mfp 1
[ "$ppsk" -eq 0 ] && set_default sae_pwe 2
@@ -686,6 +798,8 @@ hostapd_set_bss_options() {
# Here we make the assumption that if we're in open mode
# with WPS enabled, we got to be in unconfigured state.
wps_not_configured=1
vlan_possible=1
append_radius_server
;;
psk|sae|psk-sae)
json_get_vars key wpa_psk_file
@@ -710,74 +824,15 @@ hostapd_set_bss_options() {
}
[ "$eapol_version" -ge "1" -a "$eapol_version" -le "2" ] && append bss_conf "eapol_version=$eapol_version" "$N"
append_radius_server
set_default dynamic_vlan 0
vlan_possible=1
wps_possible=1
;;
eap|eap2|eap-eap2|eap192)
json_get_vars \
auth_server auth_secret auth_port \
dae_client dae_secret dae_port \
dynamic_ownip ownip radius_client_addr \
eap_reauth_period request_cui \
erp_domain mobility_domain \
fils_realm fils_dhcp
eap|eap192|eap-eap2|eap2)
append_radius_server
# radius can provide VLAN ID for clients
vlan_possible=1
set_default dynamic_ownip 1
# legacy compatibility
[ -n "$auth_server" ] || json_get_var auth_server server
[ -n "$auth_port" ] || json_get_var auth_port port
[ -n "$auth_secret" ] || json_get_var auth_secret key
[ "$fils" -gt 0 ] && {
set_default erp_domain "$mobility_domain"
set_default erp_domain "$(echo "$ssid" | md5sum | head -c 8)"
set_default fils_realm "$erp_domain"
append bss_conf "erp_send_reauth_start=1" "$N"
append bss_conf "erp_domain=$erp_domain" "$N"
append bss_conf "fils_realm=$fils_realm" "$N"
append bss_conf "fils_cache_id=$(echo "$fils_realm" | md5sum | head -c 4)" "$N"
[ "$fils_dhcp" = "*" ] && {
json_get_values network network
fils_dhcp=
for net in $network; do
fils_dhcp="$(ifstatus "$net" | jsonfilter -e '@.data.dhcpserver')"
[ -n "$fils_dhcp" ] && break
done
[ -z "$fils_dhcp" -a -n "$network_bridge" -a -n "$network_ifname" ] && \
fils_dhcp="$(udhcpc -B -n -q -s /lib/netifd/dhcp-get-server.sh -t 1 -i "$network_ifname" 2>/dev/null)"
}
[ -n "$fils_dhcp" ] && append bss_conf "dhcp_server=$fils_dhcp" "$N"
}
set_default auth_port 1812
set_default dae_port 3799
set_default request_cui 0
[ "$eap_server" -eq 0 ] && json_for_each_item append_auth_server auth_server
[ "$request_cui" -gt 0 ] && append bss_conf "radius_request_cui=$request_cui" "$N"
[ -n "$eap_reauth_period" ] && append bss_conf "eap_reauth_period=$eap_reauth_period" "$N"
[ -n "$dae_client" -a -n "$dae_secret" ] && {
append bss_conf "radius_das_port=$dae_port" "$N"
append bss_conf "radius_das_client=$dae_client $dae_secret" "$N"
}
json_for_each_item append_radius_auth_req_attr radius_auth_req_attr
if [ -n "$ownip" ]; then
append bss_conf "own_ip_addr=$ownip" "$N"
elif [ "$dynamic_ownip" -gt 0 ]; then
append bss_conf "dynamic_own_ip_addr=$dynamic_ownip" "$N"
fi
[ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N"
append bss_conf "eapol_key_index_workaround=1" "$N"
append bss_conf "ieee8021x=1" "$N"
@@ -790,6 +845,11 @@ hostapd_set_bss_options() {
append bss_conf "wep_default_key=$wep_keyidx" "$N"
[ -n "$wep_rekey" ] && append bss_conf "wep_rekey_period=$wep_rekey" "$N"
;;
psk2-radius)
append bss_conf "wpa_psk_radius=3" "$N"
append_radius_server
vlan_possible=1
;;
esac
case "$auth_type" in
@@ -913,45 +973,42 @@ hostapd_set_bss_options() {
}
fi
json_get_vars ieee80211r
set_default ieee80211r 0
if [ "$wpa" -ge "1" ]; then
if [ "$fils" -gt 0 ]; then
json_get_vars fils_realm
set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
fi
json_get_vars ieee80211r
set_default ieee80211r 0
append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
hostapd_append_wpa_key_mgmt
[ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
fi
if [ "$wpa" -ge "2" ]; then
if [ "$ieee80211r" -gt "0" ]; then
json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline
json_get_vars mobility_domain ft_psk_generate_local ft_over_ds reassociation_deadline ft_l2_refresh
set_default mobility_domain "$(echo "$ssid" | md5sum | head -c 4)"
set_default ft_over_ds 0
set_default ft_over_ds 1
set_default ft_l2_refresh 30
set_default reassociation_deadline 1000
skip_kh_setup=0
case "$auth_type" in
psk)
psk|psk-sae)
set_default ft_psk_generate_local 1
skip_kh_setup="$ft_psk_generate_local"
;;
*)
set_default ft_psk_generate_local 0
;;
esac
case "$auth_type" in
*sae*) skip_kh_setup=0;;
esac
[ -n "$network_ifname" ] && append bss_conf "ft_iface=$network_ifname" "$N"
append bss_conf "mobility_domain=$mobility_domain" "$N"
append bss_conf "ft_psk_generate_local=$ft_psk_generate_local" "$N"
append bss_conf "ft_over_ds=$ft_over_ds" "$N"
append bss_conf "reassociation_deadline=$reassociation_deadline" "$N"
[ -n "$ft_l2_refresh" ] && append bss_conf "ft_l2_refresh=$ft_l2_refresh" "$N"
if [ "$ft_psk_generate_local" -eq "0" ]; then
json_get_vars r0_key_lifetime r1_key_holder pmk_r1_push
if [ "$skip_kh_setup" -eq "0" ]; then
json_get_vars r0_key_lifetime r1_key_holder pmk_r1_push ft_key
json_get_values r0kh r0kh
json_get_values r1kh r1kh
@@ -963,12 +1020,15 @@ hostapd_set_bss_options() {
wireless_setup_vif_failed FT_KEY_CANT_BE_DERIVED
return 1
fi
ft_key=`echo -n "$mobility_domain/${auth_secret:-${key}}" | md5sum | awk '{print $1}'`
[ -z "$ft_key" ] && {
key=`echo -n "$mobility_domain/$auth_secret" | md5sum | awk '{print $1}'`
set_default r0kh "ff:ff:ff:ff:ff:ff,*,$ft_key"
set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$ft_key"
set_default r0kh "ff:ff:ff:ff:ff:ff,*,$key"
set_default r1kh "00:00:00:00:00:00,00:00:00:00:00:00,$key"
}
}
[ -n "$ft_key" ] && append bss_conf "ft_key=$ft_key" "$N"
[ -n "$r1_key_holder" ] && append bss_conf "r1_key_holder=$r1_key_holder" "$N"
append bss_conf "r0_key_lifetime=$r0_key_lifetime" "$N"
append bss_conf "pmk_r1_push=$pmk_r1_push" "$N"
@@ -981,7 +1041,18 @@ hostapd_set_bss_options() {
done
fi
fi
if [ "$fils" -gt 0 ]; then
json_get_vars fils_realm
set_default fils_realm "$(echo "$ssid" | md5sum | head -c 8)"
fi
append bss_conf "wpa_disable_eapol_key_retries=$wpa_disable_eapol_key_retries" "$N"
hostapd_append_wpa_key_mgmt
[ -n "$wpa_key_mgmt" ] && append bss_conf "wpa_key_mgmt=$wpa_key_mgmt" "$N"
fi
if [ "$wpa" -ge "2" ]; then
if [ -n "$network_bridge" -a "$rsn_preauth" = 1 ]; then
set_default auth_cache 1
append bss_conf "rsn_preauth=1" "$N"
@@ -1181,6 +1252,8 @@ hostapd_set_bss_options() {
append bss_conf "per_sta_vif=$per_sta_vif" "$N"
fi
[ -n "$uci_section" ] && append bss_conf "uci_section=$uci_section" "$N"
if [ "$apup" -gt 0 ]; then
append bss_conf "apup=$apup" "$N"

View File

@@ -7,11 +7,14 @@ board_config_update
board=$(board_name)
case "$board" in
sercomm,ap72tip-v4|\
sercomm,ap72tip)
ucidef_set_led_default "power" "POWER" "blue:status" "on"
ucidef_set_led_netdev "wan_link" "wan_link" "green:phy" "eth0" "link"
ucidef_set_led_netdev "wan_act" "wan_act" "yellow:phy" "eth0" "rx tx"
;;
sonicfi,rap7110c-341x)
sonicfi,rap7110c-341x|\
sonicfi,rap750w-311a)
ucidef_set_led_default "power" "POWER" "pwm:blue" "on"
;;
esac

View File

@@ -21,6 +21,17 @@ ipq53xx_setup_interfaces()
sonicfi,rap7110c-341x)
ucidef_set_interfaces_lan_wan "" "eth0"
;;
cig,wf189w)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan" "1:lan"
;;
cig,wf189h)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
ucidef_add_switch "switch1" "0u@eth1" "3:lan" "2:lan"
;;
sercomm,ap72tip-v4)
ucidef_set_interface_wan "eth0"
;;
esac
}
@@ -28,6 +39,8 @@ qcom_setup_macs()
{
local board="$1"
case $board in
cig,wf189w|\
cig,wf189h|\
cig,wf189)
mtd=$(find_mtd_chardev "0:APPSBLENV")
[ -z "$mtd" ] && return;
@@ -42,6 +55,13 @@ qcom_setup_macs()
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4)
;;
sercomm,ap72tip)
wan_mac=$(cat /sys/class/net/eth0/address)
lan_mac=$(cat /sys/class/net/eth1/address)
ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 2)
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 4)
;;
edgecore,eap105)
wan_mac=$(cat /sys/class/net/eth0/address)
lan_mac=$(macaddr_add "$wan_mac" 1)
@@ -52,6 +72,18 @@ qcom_setup_macs()
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 3)
;;
sonicfi,rap750w-311a)
wan_mac=$(cat /sys/class/net/eth0/address)
lan_mac=$(macaddr_add "$wan_mac" 1)
ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 2)
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 3)
;;
sercomm,ap72tip-v4)
wan_mac=$(cat /sys/class/net/eth0/address)
ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1)
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
ucidef_set_wireless_macaddr_base 6g $(macaddr_add "$wan_mac" 3)
;;
*)
wan_mac=$(cat /sys/class/net/eth1/address)
lan_mac=$(macaddr_add "$wan_mac" 1)

View File

@@ -27,21 +27,27 @@ board=$(board_name)
case "$FIRMWARE" in
ath12k/IPQ5332/hw1.0/caldata.bin)
case "$board" in
cig,wf189w|\
cig,wf189h|\
cig,wf189|\
edgecore,eap105|\
sonicfi,rap750w-311a|\
sercomm,ap72tip-v4|\
sercomm,ap72tip)
caldata_extract "0:ART" 0x1000 0x20000
;;
sonicfi,rap7110c-341x)
caldata_extract_mmc "0:ART" 0x1000 0xF800
;;
sonicfi,rap750w-311a)
caldata_extract "0:ART" 0x1000 0xf800
;;
esac
;;
ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin)
case "$board" in
cig,wf189|\
edgecore,eap105|\
sercomm,ap72tip-v4|\
sercomm,ap72tip)
caldata_extract "0:ART" 0x58800 0x2d000
;;
@@ -50,6 +56,29 @@ ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin)
;;
esac
;;
ath12k/QCN6432/hw1.0/caldata_1.bin)
case "$board" in
sonicfi,rap750w-311a)
caldata_extract "0:ART" 0x12800 0x18800
;;
esac
;;
ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi1@c0000000.bin)
case "$board" in
cig,wf189h|\
cig,wf189w)
caldata_extract "0:ART" 0x26800 0x20000
;;
esac
;;
ath12k/QCN6432/hw1.0/cal-ahb-soc@0:wifi2@c0000000.bin)
case "$board" in
cig,wf189h|\
cig,wf189w)
caldata_extract "0:ART" 0x58800 0x20000
;;
esac
;;
*)
exit 1
;;

Some files were not shown because too many files have changed in this diff Show More