mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-13 19:37:08 +00:00
Compare commits
13 Commits
v4.2.0-rc1
...
v4.2.0-rc2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a00dbfa6e4 | ||
|
|
815006f3e7 | ||
|
|
a7a9458d81 | ||
|
|
e366742c1b | ||
|
|
ee601508d9 | ||
|
|
5c5eb7891c | ||
|
|
501c11be52 | ||
|
|
352e94a133 | ||
|
|
20f5fa0284 | ||
|
|
aa1d2b1c73 | ||
|
|
09a7f53fb4 | ||
|
|
7665eefe1d | ||
|
|
099726eff6 |
2
.github/workflows/build-dev.yml
vendored
2
.github/workflows/build-dev.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: [ 'cig_wf189h', 'cig_wf189w', 'cig_wf660a', 'cig_wf672', '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_rap750e-h', 'sonicfi_rap750e-s', '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', 'emplus_wap588m', 'zyxel_nwa130be', 'sercomm_ap72tip-v4' ]
|
||||
target: [ 'cig_wf189h', 'cig_wf189w', 'cig_wf660a', 'cig_wf672', '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_rap750e-h', 'sonicfi_rap750e-s', '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', 'emplus_wap588m', 'zyxel_nwa130be', 'sercomm_ap72tip-v4', 'asterfusion_ap7330']
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ define Package/$(PKG_NAME)
|
||||
URL:=http://www.qca.qualcomm.com
|
||||
MAINTAINER:=Qualcomm Atheros
|
||||
TITLE:= QCA ftm utils
|
||||
DEPENDS:= @TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_64||TARGET_ipq_ipq60xx||TARGET_ipq_ipq60xx_64||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64||TARGET_ipq807x||TARGET_ipq50xx +libnl +libtcmd +qca-diag +librt +kmod-diag-char
|
||||
DEPENDS:= @TARGET_ipq_ipq807x||TARGET_ipq_ipq807x_64||TARGET_ipq_ipq60xx||TARGET_ipq_ipq60xx_64||TARGET_ipq_ipq50xx||TARGET_ipq_ipq50xx_64||TARGET_ipq807x||TARGET_ipq60xx||TARGET_ipq50xx +libnl +libtcmd +qca-diag +librt +kmod-diag-char
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/description/Default
|
||||
|
||||
@@ -16,6 +16,7 @@ PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=https://github.com/MorseMicro/morse_driver.git
|
||||
PKG_MIRROR_HASH:=3ba6acd2760a1939fcd8e6f9b4dadbaed4562ce9879a21ff2a821ab445fa22b5
|
||||
PKG_HASH:=159d018a92e0cf742795ed49bd94fb6ed324163012bb91c2a2e4e0f6037bbf23
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=b2ab42a5f22527422adf6afab73f2d019c16f162
|
||||
|
||||
@@ -16,6 +16,7 @@ PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=https://github.com/MorseMicro/hostap.git
|
||||
PKG_MIRROR_HASH:=a2f17ce3d2fe25d45cc2d6869e9ea644bcac441ec9b541972034768d4fc63608
|
||||
PKG_HASH:=a2f17ce3d2fe25d45cc2d6869e9ea644bcac441ec9b541972034768d4fc63608
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=https://github.com/MorseMicro/morse_cli.git
|
||||
PKG_MIRROR_HASH:=04c88a3aea99082a29eb1f84a9b62dcbb85980fa040e0e34901c1826f33ae74c
|
||||
PKG_HASH:=04c88a3aea99082a29eb1f84a9b62dcbb85980fa040e0e34901c1826f33ae74c
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
PKG_SOURCE_VERSION:=$(PKG_VERSION)
|
||||
PKG_SOURCE_URL:=https://github.com/MorseMicro/hostap.git
|
||||
PKG_MIRROR_HASH:=c342d1489d03363b79b5b4e185ccbceca53aab9e634daefb81180ad1012b77b7
|
||||
PKG_HASH:=c342d1489d03363b79b5b4e185ccbceca53aab9e634daefb81180ad1012b77b7
|
||||
PKG_SOURCE_PROTO:=git
|
||||
|
||||
|
||||
@@ -108,6 +108,11 @@ $(call Package/ath12k-wifi-default)
|
||||
TITLE:=board-2.bin for WF672
|
||||
endef
|
||||
|
||||
define Package/ath12k-wifi-asterfusion-ap7330
|
||||
$(call Package/ath12k-wifi-default)
|
||||
TITLE:=board.bin for Asterfusion AP7330
|
||||
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/
|
||||
@@ -223,6 +228,13 @@ define Package/ath12k-wifi-cig-wf672/install
|
||||
$(INSTALL_DATA) ./board-2.bin.wf672-us.IPQ5332 $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/board-2.bin.US
|
||||
endef
|
||||
|
||||
define Package/ath12k-wifi-asterfusion-ap7330/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/IPQ5332/hw1.0/
|
||||
$(INSTALL_DATA) ./board-2.bin.ap7330.QCN92XX $(1)/lib/firmware/ath12k/QCN92XX/hw1.0/board-2.bin
|
||||
$(INSTALL_DATA) ./board-2.bin.ap7330.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-emplus-wap7635))
|
||||
@@ -238,3 +250,4 @@ $(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa130be))
|
||||
$(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa50be))
|
||||
$(eval $(call BuildPackage,ath12k-wifi-zyxel-nwa210be))
|
||||
$(eval $(call BuildPackage,ath12k-wifi-cig-wf672))
|
||||
$(eval $(call BuildPackage,ath12k-wifi-asterfusion-ap7330))
|
||||
|
||||
20
feeds/qca-wifi-7/ath12k-wifi/board-2-ap7330-IPQ5332.json
Normal file
20
feeds/qca-wifi-7/ath12k-wifi/board-2-ap7330-IPQ5332.json
Normal file
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{
|
||||
"board": [
|
||||
{
|
||||
"names": [
|
||||
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
|
||||
],
|
||||
"data": "board-asterfusion-ap7330.bin.ipq53xx"
|
||||
}
|
||||
],
|
||||
"regdb": [
|
||||
{
|
||||
"names": [
|
||||
"bus=ahb,qmi-chip-id=0,qmi-board-id=255"
|
||||
],
|
||||
"data": "regdb-asterfusion-ipq5332-qcn92xx.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
20
feeds/qca-wifi-7/ath12k-wifi/board-2-ap7330-QCN92XX.json
Normal file
20
feeds/qca-wifi-7/ath12k-wifi/board-2-ap7330-QCN92XX.json
Normal file
@@ -0,0 +1,20 @@
|
||||
[
|
||||
{
|
||||
"board": [
|
||||
{
|
||||
"names": [
|
||||
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
|
||||
],
|
||||
"data": "board-asterfusion-ap7330.bin.qcn9224"
|
||||
}
|
||||
],
|
||||
"regdb": [
|
||||
{
|
||||
"names": [
|
||||
"bus=pci,qmi-chip-id=0,qmi-board-id=255"
|
||||
],
|
||||
"data": "regdb-asterfusion-ipq5332-qcn92xx.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
BIN
feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap7330.IPQ5332
Normal file
BIN
feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap7330.IPQ5332
Normal file
Binary file not shown.
BIN
feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap7330.QCN92XX
Normal file
BIN
feeds/qca-wifi-7/ath12k-wifi/board-2.bin.ap7330.QCN92XX
Normal file
Binary file not shown.
@@ -24,3 +24,6 @@ $encoder -c board-2-nwa50be-QCN6432.json -o board-2.bin.nwa50be.QCN6432
|
||||
|
||||
$encoder -c board-2-nwa210be-IPQ5332.json -o board-2.bin.nwa210be.IPQ5332
|
||||
$encoder -c board-2-nwa210be-QCN92XX.json -o board-2.bin.nwa210be.QCN92XX
|
||||
|
||||
$encoder -c board-2-ap7330-IPQ5332.json -o board-2.bin.ap7330.IPQ5332
|
||||
$encoder -c board-2-ap7330-QCN92XX.json -o board-2.bin.ap7330.QCN92XX
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
From c2e1dbd799ae5ed166e9c84a3c3d3a07a8f8cc9b Mon Sep 17 00:00:00 2001
|
||||
From: Venkat Chimata <venkat@nearhop.com>
|
||||
Date: Thu, 11 Dec 2025 10:38:07 +0530
|
||||
Subject: [PATCH] bandwidth: Correct handling of RADIUS-assigned bandwidth
|
||||
limits
|
||||
|
||||
Description:
|
||||
Hostapd successfully parsed the uplink and downlink bandwidth attributes from
|
||||
the RADIUS server, but the values were not being propagated correctly into
|
||||
sta_info. As a result, the bandwidth information was missing in the UBUS
|
||||
events sent to ucentral-event.
|
||||
|
||||
Fix:
|
||||
Ensure the parsed bandwidth values are correctly passed to sta_info so they
|
||||
are included in subsequent UBUS notifications.
|
||||
|
||||
Tests Performed:
|
||||
Configured per-client bandwidth limits on the RADIUS server and verified that:
|
||||
|
||||
- The AP enforces the configured uplink/downlink limits, and
|
||||
- The correct bandwidth values appear in the UBUS events.
|
||||
|
||||
Signed-off-by: Venkat Chimata <venkat@nearhop.com>
|
||||
---
|
||||
src/ap/ieee802_11.c | 2 ++
|
||||
src/ap/ieee802_11_auth.c | 1 +
|
||||
src/ap/ieee802_11_auth.h | 1 +
|
||||
3 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
|
||||
index ef1ad21..615fb32 100644
|
||||
--- a/src/ap/ieee802_11.c
|
||||
+++ b/src/ap/ieee802_11.c
|
||||
@@ -2485,6 +2485,8 @@ int ieee802_11_set_radius_info(struct hostapd_data *hapd, struct sta_info *sta,
|
||||
ap_sta_no_session_timeout(hapd, sta);
|
||||
}
|
||||
|
||||
+ os_memcpy(sta->bandwidth, info->bandwidth, sizeof(sta->bandwidth));
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/src/ap/ieee802_11_auth.c b/src/ap/ieee802_11_auth.c
|
||||
index e673296..9d0d734 100644
|
||||
--- a/src/ap/ieee802_11_auth.c
|
||||
+++ b/src/ap/ieee802_11_auth.c
|
||||
@@ -581,6 +581,7 @@ hostapd_acl_recv_radius(struct radius_msg *msg, struct radius_msg *req,
|
||||
os_memcpy(info->radius_cui, buf, len);
|
||||
}
|
||||
|
||||
+ radius_msg_get_wispr(msg, info->bandwidth);
|
||||
if (hapd->conf->wpa_psk_radius == PSK_RADIUS_REQUIRED &&
|
||||
!info->psk)
|
||||
cache->accepted = HOSTAPD_ACL_REJECT;
|
||||
diff --git a/src/ap/ieee802_11_auth.h b/src/ap/ieee802_11_auth.h
|
||||
index 22ae1a9..b0005bd 100644
|
||||
--- a/src/ap/ieee802_11_auth.h
|
||||
+++ b/src/ap/ieee802_11_auth.h
|
||||
@@ -23,6 +23,7 @@ struct radius_sta {
|
||||
struct hostapd_sta_wpa_psk_short *psk;
|
||||
char *identity;
|
||||
char *radius_cui;
|
||||
+ u32 bandwidth[2];
|
||||
};
|
||||
|
||||
int hostapd_check_acl(struct hostapd_data *hapd, const u8 *addr,
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
diff -urp a/src/ap/hostapd.c b/src/ap/hostapd.c
|
||||
--- a/src/ap/hostapd.c 2025-10-28 15:50:59.024346272 +0800
|
||||
+++ b/src/ap/hostapd.c 2025-12-09 23:03:55.351738472 +0800
|
||||
@@ -5115,14 +5115,11 @@ static void hostapd_switch_color_timeout
|
||||
}
|
||||
|
||||
if (i == HE_OPERATION_BSS_COLOR_MAX) {
|
||||
- /* There are no free colors so turn BSS coloring off */
|
||||
+ /* There are no free colors so do not change color and wait for next check */
|
||||
wpa_printf(MSG_INFO,
|
||||
- "No free colors left, turning off BSS coloring");
|
||||
+ "No free colors left, stay at the same color");
|
||||
hapd->iface->conf->he_op.he_bss_color_disabled = 1;
|
||||
- hapd->iface->conf->he_op.he_bss_color = os_random() % 63 + 1;
|
||||
hapd->no_free_color = 1;
|
||||
- for (b = 0; b < hapd->iface->num_bss; b++)
|
||||
- ieee802_11_set_beacon(hapd->iface->bss[b]);
|
||||
|
||||
/* Enabling for next check after timeout*/
|
||||
hapd->iface->conf->he_op.he_bss_color_disabled = 0;
|
||||
@@ -46,6 +46,11 @@ ipq53xx_setup_interfaces()
|
||||
zyxel,nwa130be)
|
||||
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||
;;
|
||||
asterfusion,AP7330)
|
||||
ucidef_set_interface_wan "eth0"
|
||||
ucidef_add_switch "switch1" \
|
||||
"0u@eth1" "3:lan" "4:lan"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -154,6 +159,19 @@ qcom_setup_macs()
|
||||
ucidef_set_wireless_macaddr_base 2g $(macaddr_add "$wan_mac" 1)
|
||||
ucidef_set_wireless_macaddr_base 5g $(macaddr_add "$wan_mac" 2)
|
||||
;;
|
||||
asterfusion,AP7330)
|
||||
mtd=$(find_mtd_chardev "0:ART")
|
||||
[ -z "$mtd" ] && return;
|
||||
wan_mac=$(mtd_get_mac_binary 0:ART 0x0)
|
||||
[ -z "$wan_mac" ] && return;
|
||||
wan_mac=$(macaddr_canonicalize $wan_mac)
|
||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||
ucidef_set_network_device_mac eth0 $wan_mac
|
||||
ucidef_set_network_device_mac eth1 $lan_mac
|
||||
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)
|
||||
;;
|
||||
*)
|
||||
wan_mac=$(cat /sys/class/net/eth1/address)
|
||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||
|
||||
@@ -67,6 +67,7 @@ ath12k/IPQ5332/hw1.0/caldata.bin)
|
||||
emplus,wap7635|\
|
||||
sercomm,ap72tip-v4|\
|
||||
sercomm,ap72tip|\
|
||||
asterfusion,AP7330|\
|
||||
zyxel,nwa130be|\
|
||||
zyxel,nwa210be|\
|
||||
zyxel,nwa50be)
|
||||
@@ -92,6 +93,7 @@ ath12k/QCN92XX/hw1.0/cal-pci-0001:01:00.0.bin)
|
||||
emplus,wap7635|\
|
||||
sercomm,ap72tip-v4|\
|
||||
sercomm,ap72tip|\
|
||||
asterfusion,AP7330|\
|
||||
zyxel,nwa210be|\
|
||||
zyxel,nwa130be)
|
||||
caldata_extract "0:ART" 0x58800 0x2d000
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
"asterfusion,AP7330"|\
|
||||
"edgecore,eap105")
|
||||
ln -s /sys/kernel/debug/ath12k/ipq5332\ hw1.0_c000000.wifi/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy2g
|
||||
ln -s /sys/kernel/debug/ath12k/qcn9274\ hw2.0_0001:01:00.0/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy5g
|
||||
|
||||
@@ -174,6 +174,7 @@ platform_do_upgrade() {
|
||||
sonicfi_dualimage_check
|
||||
nand_upgrade_tar "$1"
|
||||
;;
|
||||
asterfusion,AP7330|\
|
||||
zyxel,nwa130be|\
|
||||
zyxel,nwa210be|\
|
||||
zyxel,nwa50be)
|
||||
|
||||
@@ -1226,3 +1226,5 @@ CONFIG_PSTORE_RAM=y
|
||||
# CONFIG_RTL8221D_PHY is not set
|
||||
# CONFIG_INPUT_LSM303AGR is not set
|
||||
# CONFIG_USB_SERIAL_XR is not set
|
||||
CONFIG_GPIO_WATCHDOG=y
|
||||
CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y
|
||||
|
||||
711
feeds/qca-wifi-7/ipq53xx/dts/ipq5332-asterfusion-ap7330.dts
Normal file
711
feeds/qca-wifi-7/ipq53xx/dts/ipq5332-asterfusion-ap7330.dts
Normal file
@@ -0,0 +1,711 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
|
||||
/*
|
||||
* IPQ5332 RDP468 board device tree source
|
||||
*
|
||||
* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include "ipq5332.dtsi"
|
||||
#include "ipq5332-default-memory.dtsi"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* This file is copied from ipq5332-rdp468.dts but has been modified.
|
||||
* For modification, please compare the original QSDK's ipq5332-mi01.6.dts
|
||||
* with the modified version.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/ {
|
||||
model = "ASTERFUSION";
|
||||
compatible = "asterfusion,AP7330", "qcom,ipq5332-ap-mi01.6", "qcom,ipq5332-rdp468", "qcom,ipq5332";
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
ramoops@49c00000 {
|
||||
compatible = "ramoops";
|
||||
no-map;
|
||||
reg = <0x0 0x49c00000 0x0 0x50000>;
|
||||
record-size = <0x20000>;
|
||||
console-size = <0x8000>;
|
||||
pmsg-size = <0x8000>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
serial0 = &blsp1_uart0;
|
||||
serial1 = &blsp1_uart1;
|
||||
ethernet0 = "/soc/dp1";
|
||||
ethernet1 = "/soc/dp2";
|
||||
led-boot = &led_green;
|
||||
led-failsafe = &led_red;
|
||||
led-running = &led_green;
|
||||
led-upgrade = &led_green;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0";
|
||||
};
|
||||
|
||||
soc@0 {
|
||||
mdio:mdio@90000 {
|
||||
pinctrl-0 = <&mdio1_pins &mdio0_pins>;
|
||||
pinctrl-names = "default";
|
||||
/*gpio51 for manhattan reset*/
|
||||
phy-reset-gpio = <&tlmm 51 GPIO_ACTIVE_LOW>;
|
||||
phyaddr_fixup = <0xC90F018>;
|
||||
uniphyaddr_fixup = <0xC90F014>;
|
||||
mdio_clk_fixup; /* MDIO clock sequence fix up flag */
|
||||
status = "okay";
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
reg = <1>;
|
||||
fixup;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
reg = <2>;
|
||||
fixup;
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
reg = <3>;
|
||||
fixup;
|
||||
};
|
||||
phy3: ethernet-phy@3 {
|
||||
reg = <4>;
|
||||
fixup;
|
||||
};
|
||||
|
||||
switch0@10 {
|
||||
compatible = "qca,qca8386";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x10>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "cpu";
|
||||
ethernet = <&gmac2>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
phy-handle = <&phy1>;
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
phy-handle = <&phy2>;
|
||||
};
|
||||
port@4 {
|
||||
reg = <4>;
|
||||
label = "lan4";
|
||||
phy-handle = <&phy3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ess-instance {
|
||||
num_devices = <0x2>;
|
||||
|
||||
ess-switch@3a000000 {
|
||||
pinctrl-names = "default";
|
||||
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
|
||||
switch_lan_bmp = <0x2>; /* lan port bitmap */
|
||||
switch_wan_bmp = <0x4>; /* wan port bitmap */
|
||||
switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/
|
||||
switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1*/
|
||||
switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/
|
||||
|
||||
qcom,port_phyinfo {
|
||||
port@0 {
|
||||
port_id = <1>;
|
||||
forced-speed = <2500>;
|
||||
forced-duplex = <1>;
|
||||
};
|
||||
port@1 {
|
||||
port_id = <2>;
|
||||
phy_address = <30>;
|
||||
media-type = "sfp"; /* fiber mode */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ess-switch1@1 {
|
||||
compatible = "qcom,ess-switch-qca8386";
|
||||
device_id = <1>;
|
||||
switch_access_mode = "mdio";
|
||||
mdio-bus = <&mdio>;
|
||||
switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */
|
||||
switch_mac_mode1 = <0xff>; /* mac mode1 for uniphy instance1 */
|
||||
switch_cpu_bmp = <0x1>; /* cpu port bitmap */
|
||||
switch_lan_bmp = <0x1e>; /* lan port bitmap */
|
||||
switch_wan_bmp = <0x0>; /* wan port bitmap */
|
||||
link-polling-required = <0>;
|
||||
fdb_sync = "interrupt";
|
||||
link-intr-gpio = <&tlmm 23 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
qcom,port_phyinfo {
|
||||
port@0 {
|
||||
port_id = <0>;
|
||||
forced-speed = <2500>;
|
||||
forced-duplex = <1>;
|
||||
};
|
||||
port@1 {
|
||||
port_id = <1>;
|
||||
phy_address = <1>;
|
||||
};
|
||||
port@2 {
|
||||
port_id = <2>;
|
||||
phy_address = <2>;
|
||||
};
|
||||
port@3 {
|
||||
port_id = <3>;
|
||||
phy_address = <3>;
|
||||
};
|
||||
port@4 {
|
||||
port_id = <4>;
|
||||
phy_address = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
led_source@2 {
|
||||
source = <2>;
|
||||
mode = "normal";
|
||||
speed = "all";
|
||||
blink_en = "enable";
|
||||
active = "high";
|
||||
};
|
||||
led_source@5 {
|
||||
source = <5>;
|
||||
mode = "normal";
|
||||
speed = "all";
|
||||
blink_en = "enable";
|
||||
active = "high";
|
||||
};
|
||||
led_source@8 {
|
||||
source = <8>;
|
||||
mode = "normal";
|
||||
speed = "all";
|
||||
blink_en = "enable";
|
||||
active = "high";
|
||||
};
|
||||
led_source@11 {
|
||||
source = <11>;
|
||||
mode = "normal";
|
||||
speed = "all";
|
||||
blink_en = "enable";
|
||||
active = "high";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dp1 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <2>;
|
||||
reg = <0x3a504000 0x4000>;
|
||||
qcom,mactype = <1>;
|
||||
local-mac-address = [000000000000];
|
||||
mdio-bus = <&mdio>;
|
||||
qcom,phy-mdio-addr = <30>;
|
||||
qcom,link-poll = <1>;
|
||||
phy-mode = "sgmii";
|
||||
};
|
||||
|
||||
gmac2:dp2 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <1>;
|
||||
reg = <0x3a500000 0x4000>;
|
||||
qcom,mactype = <1>;
|
||||
local-mac-address = [000000000000];
|
||||
phy-mode = "sgmii";
|
||||
qcom,mht-dev = <1>;
|
||||
qcom,is_switch_connected = <1>;
|
||||
qcom,ppe-offload-disabled = <1>;
|
||||
};
|
||||
|
||||
/* EDMA host driver configuration for the board */
|
||||
edma@3ab00000 {
|
||||
qcom,txdesc-ring-start = <4>; /* Tx desc ring start ID */
|
||||
qcom,txdesc-rings = <12>; /* Total number of Tx desc rings to be provisioned */
|
||||
qcom,mht-txdesc-rings = <8>; /* Extra Tx desc rings to be provisioned for MHT SW ports */
|
||||
qcom,txcmpl-ring-start = <4>; /* Tx complete ring start ID */
|
||||
qcom,txcmpl-rings = <12>; /* Total number of Tx complete rings to be provisioned */
|
||||
qcom,mht-txcmpl-rings = <8>; /* Extra Tx complete rings to be provisioned for mht sw ports. */
|
||||
qcom,rxfill-ring-start = <4>; /* Rx fill ring start ID */
|
||||
qcom,rxfill-rings = <4>; /* Total number of Rx fill rings to be provisioned */
|
||||
qcom,rxdesc-ring-start = <12>; /* Rx desc ring start ID */
|
||||
qcom,rxdesc-rings = <4>; /* Total number of Rx desc rings to be provisioned */
|
||||
qcom,rx-page-mode = <0>; /* Rx fill ring page mode */
|
||||
qcom,tx-map-priority-level = <1>; /* Tx priority level per port */
|
||||
qcom,rx-map-priority-level = <1>; /* Rx priority level per core */
|
||||
qcom,ppeds-num = <2>; /* Number of PPEDS nodes */
|
||||
/* PPE-DS node format: <Rx-fill Tx-cmpl Rx Tx Queue-base Queue-count> */
|
||||
qcom,ppeds-map = <1 1 1 1 32 8>, /* PPEDS Node#0 ring and queue map */
|
||||
<2 2 2 2 40 8>; /* PPEDS Node#1 ring and queue map */
|
||||
qcom,txdesc-map = <8 9 10 11>, /* Port0 per-core Tx ring map */
|
||||
<12 13 14 15>, /* MHT-Port1 per-core Tx ring map */
|
||||
<4 5 6 7>, /* MHT-Port2 per-core Tx ring map/packets from vp*/
|
||||
<16 17 18 19>, /* MHT-Port3 per-core Tx ring map */
|
||||
<20 21 22 23>; /* MHT-Port4 per-core Tx ring map */
|
||||
qcom,txdesc-fc-grp-map = <1 2 3 4 5>; /* Per GMAC flow control group map */
|
||||
qcom,rxfill-map = <4 5 6 7>; /* Per-core Rx fill ring map */
|
||||
qcom,rxdesc-map = <12 13 14 15>; /* Per-core Rx desc ring map */
|
||||
qcom,rx-queue-start = <0>; /* Rx queue start */
|
||||
qcom,rx-ring-queue-map = <0 8 16 24>, /* Priority 0 queues per-core Rx ring map */
|
||||
<1 9 17 25>, /* Priority 1 queues per-core Rx ring map */
|
||||
<2 10 18 26>, /* Priority 2 queues per-core Rx ring map */
|
||||
<3 11 19 27>, /* Priority 3 queues per-core Rx ring map */
|
||||
<4 12 20 28>, /* Priority 4 queues per-core Rx ring map */
|
||||
<5 13 21 29>, /* Priority 5 queues per-core Rx ring map */
|
||||
<6 14 22 30>, /* Priority 6 queues per-core Rx ring map */
|
||||
<7 15 23 31>; /* Priority 7 queues per-core Rx ring map */
|
||||
interrupts = <0 163 4>, /* Tx complete ring id #4 IRQ info */
|
||||
<0 164 4>, /* Tx complete ring id #5 IRQ info */
|
||||
<0 165 4>, /* Tx complete ring id #6 IRQ info */
|
||||
<0 166 4>, /* Tx complete ring id #7 IRQ info */
|
||||
<0 167 4>, /* Tx complete ring id #8 IRQ info */
|
||||
<0 168 4>, /* Tx complete ring id #9 IRQ info */
|
||||
<0 169 4>, /* Tx complete ring id #10 IRQ info */
|
||||
<0 170 4>, /* Tx complete ring id #11 IRQ info */
|
||||
<0 171 4>, /* Tx complete ring id #12 IRQ info */
|
||||
<0 172 4>, /* Tx complete ring id #13 IRQ info */
|
||||
<0 173 4>, /* Tx complete ring id #14 IRQ info */
|
||||
<0 174 4>, /* Tx complete ring id #15 IRQ info */
|
||||
<0 139 4>, /* Rx desc ring id #12 IRQ info */
|
||||
<0 140 4>, /* Rx desc ring id #13 IRQ info */
|
||||
<0 141 4>, /* Rx desc ring id #14 IRQ info */
|
||||
<0 142 4>, /* Rx desc ring id #15 IRQ info */
|
||||
<0 191 4>, /* Misc error IRQ info */
|
||||
<0 160 4>, /* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */
|
||||
<0 128 4>, /* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */
|
||||
<0 152 4>, /* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */
|
||||
<0 161 4>, /* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */
|
||||
<0 129 4>, /* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */
|
||||
<0 153 4>, /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */
|
||||
<0 175 4>, /* MHT port Tx complete ring id #16 IRQ info */
|
||||
<0 176 4>, /* MHT port Tx complete ring id #17 IRQ info */
|
||||
<0 177 4>, /* MHT port Tx complete ring id #18 IRQ info */
|
||||
<0 178 4>, /* MHT port Tx complete ring id #19 IRQ info */
|
||||
<0 179 4>, /* MHT port Tx complete ring id #20 IRQ info */
|
||||
<0 180 4>, /* MHT port Tx complete ring id #21 IRQ info */
|
||||
<0 181 4>, /* MHT port Tx complete ring id #22 IRQ info */
|
||||
<0 182 4>; /* MHT port Tx complete ring id #23 IRQ info */
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
pinctrl-0 = <&gpio_leds_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
led_wifi: led@36 {
|
||||
label = "led_wifi";
|
||||
gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "none";
|
||||
default-state = "off";
|
||||
};
|
||||
led_red: led@37 {
|
||||
label = "led_red";
|
||||
gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "timer";
|
||||
default-state = "on";
|
||||
};
|
||||
led_green: led@38 {
|
||||
label = "led_green";
|
||||
gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "none";
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
gpio-watchdog {
|
||||
compatible = "linux,wdt-gpio";
|
||||
gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
|
||||
hw_algo = "toggle";
|
||||
hw_margin_ms = <5000>;
|
||||
always-running;
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
pinctrl-0 = <&button_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
button@1 {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
|
||||
linux,input-type = <1>;
|
||||
debounce-interval = <60>;
|
||||
};
|
||||
};
|
||||
|
||||
wsi: wsi {
|
||||
id = <0>;
|
||||
num_chip = <2>;
|
||||
status = "okay";
|
||||
chip_info = <0 1 1>,
|
||||
<1 1 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
// led-gpio = <&tlmm 36 GPIO_ACTIVE_HIGH>;
|
||||
qcom,rproc = <&q6_wcss_pd1>;
|
||||
qcom,rproc_rpd = <&q6v5_wcss>;
|
||||
qcom,multipd_arch;
|
||||
qcom,userpd-subsys-name = "q6v5_wcss_userpd1";
|
||||
memory-region = <&q6_region>;
|
||||
qcom,wsi = <&wsi>;
|
||||
qcom,wsi_index = <0>;
|
||||
qcom,board_id = <0x12>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qcn9224_pcie1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_uart0 {
|
||||
pinctrl-0 = <&serial_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_uart1 {
|
||||
pinctrl-0 = <&serial_1_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&blsp1_i2c1 {
|
||||
clock-frequency = <400000>;
|
||||
pinctrl-0 = <&i2c_1_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&blsp1_spi0 {
|
||||
pinctrl-0 = <&spi_0_data_clk_pins &spi_0_cs_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "n25q128a11", "micron,n25q128a11", "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
spi-max-frequency = <50000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_spi2 {
|
||||
pinctrl-0 = <&spi_2_pins>;
|
||||
pinctrl-names = "default";
|
||||
cs-select = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pcm {
|
||||
pinctrl-0 = <&audio_pins_pri>;
|
||||
pinctrl-names = "primary";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&sdhc {
|
||||
bus-width = <4>;
|
||||
max-frequency = <192000000>;
|
||||
mmc-ddr-1_8v;
|
||||
mmc-hs200-1_8v;
|
||||
non-removable;
|
||||
pinctrl-0 = <&sdc_default_state>;
|
||||
pinctrl-names = "default";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&sleep_clk {
|
||||
clock-frequency = <32000>;
|
||||
};
|
||||
|
||||
&xo {
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&qpic_nand {
|
||||
pinctrl-0 = <&qspi_default_state>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
nandcs@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
nand-ecc-strength = <8>;
|
||||
nand-ecc-step-size = <512>;
|
||||
nand-bus-width = <8>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1_phy_x2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
pinctrl-0 = <&pcie1_default_state>;
|
||||
pinctrl-names = "default";
|
||||
perst-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
|
||||
pcie1_rp {
|
||||
reg = <0 0 0 0 0>;
|
||||
|
||||
qcom,mhi@1 {
|
||||
reg = <0 0 0 0 0>;
|
||||
boot-args = <0x2 0x4 0x34 0x3 0x0 0x0 /* MX Rail, GPIO52, Drive strength 0x3 */
|
||||
0x4 0x4 0x18 0x3 0x0 0x0 /* RFA1p2 Rail, GPIO24, Drive strength 0x3 */
|
||||
0x0 0x4 0x0 0x0 0x0 0x0>; /* End of arguments */
|
||||
memory-region = <&qcn9224_pcie1>;
|
||||
qcom,wsi = <&wsi>;
|
||||
qcom,wsi_index = <1>;
|
||||
qcom,board_id = <0x1006>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* PINCTRL */
|
||||
|
||||
&tlmm {
|
||||
|
||||
audio_pins_pri: audio_pinmux_pri {
|
||||
mux_1 {
|
||||
pins = "gpio29";
|
||||
function = "audio_pri";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
mux_2 {
|
||||
pins = "gpio30";
|
||||
function = "audio_pri";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
mux_3 {
|
||||
pins = "gpio31";
|
||||
function = "audio_pri";
|
||||
drive-strength = <4>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
mux_4 {
|
||||
pins = "gpio32";
|
||||
function = "audio_pri";
|
||||
drive-strength = <4>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
i2c_1_pins: i2c-1-state {
|
||||
pins = "gpio29", "gpio30";
|
||||
function = "blsp1_i2c0";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
spi_2_pins: spi-2-pins {
|
||||
pins = "gpio33", "gpio34", "gpio35";
|
||||
function = "blsp2_spi0";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
sdc_default_state: sdc-default-state {
|
||||
clk-pins {
|
||||
pins = "gpio13";
|
||||
function = "sdc_clk";
|
||||
drive-strength = <8>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
cmd-pins {
|
||||
pins = "gpio12";
|
||||
function = "sdc_cmd";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
data-pins {
|
||||
pins = "gpio8", "gpio9", "gpio10", "gpio11";
|
||||
function = "sdc_data";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
spi_0_data_clk_pins: spi-0-data-clk-state {
|
||||
pins = "gpio14", "gpio15", "gpio16";
|
||||
function = "blsp0_spi";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
spi_0_cs_pins: spi-0-cs-state {
|
||||
pins = "gpio17";
|
||||
function = "blsp0_spi";
|
||||
drive-strength = <2>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
qspi_default_state: qspi-default-state {
|
||||
qspi_clock {
|
||||
pins = "gpio13";
|
||||
function = "qspi_clk";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
qspi_cs {
|
||||
pins = "gpio12";
|
||||
function = "qspi_cs";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
qspi_data {
|
||||
pins = "gpio8", "gpio9", "gpio10", "gpio11";
|
||||
function = "qspi_data";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
serial_1_pins: serial1-pinmux {
|
||||
pins = "gpio33", "gpio34", "gpio35", "gpio36";
|
||||
function = "blsp1_uart2";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
gpio_leds_default: gpio-leds-default-state {
|
||||
led_wifi {
|
||||
pins = "gpio36";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
led_blue {
|
||||
pins = "gpio49";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
led_red {
|
||||
pins = "gpio37";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
led_green {
|
||||
pins = "gpio38";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
led_all_enable {
|
||||
pins = "gpio24";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
hwwatchdog {
|
||||
pins = "gpio39";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
button_pins: button-state {
|
||||
pins = "gpio35";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pwm_pins: pwm-state {
|
||||
pins = "gpio46";
|
||||
function = "pwm0";
|
||||
drive-strength = <8>;
|
||||
};
|
||||
|
||||
pcie1_default_state: pcie1-default-state {
|
||||
pins = "gpio47";
|
||||
function = "gpio";
|
||||
drive-strength = <8>;
|
||||
bias-pull-up;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
|
||||
&license_manager {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3 {
|
||||
qcom,multiplexed-phy;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&hs_m31phy_0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ssuniphy_0 {
|
||||
status = "okay";
|
||||
};
|
||||
@@ -204,3 +204,16 @@ define Device/cig_wf672
|
||||
DEVICE_PACKAGES := ath12k-wifi-cig-wf672 ath12k-firmware-ipq5332 ath12k-firmware-qcn92xx
|
||||
endef
|
||||
TARGET_DEVICES += cig_wf672
|
||||
|
||||
define Device/asterfusion_ap7330
|
||||
DEVICE_TITLE := Asterfusion AP7330
|
||||
DEVICE_DTS := ipq5332-asterfusion-ap7330
|
||||
DEVICE_DTS_CONFIG := config@mi01.6
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
SUPPORTED_DEVICES := asterfusion,AP7330 AP7330
|
||||
IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
|
||||
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||
IMAGE/nand-factory.ubi := append-ubi
|
||||
DEVICE_PACKAGES := ath12k-wifi-asterfusion-ap7330 ath12k-firmware-qcn92xx ath12k-firmware-ipq5332
|
||||
endef
|
||||
TARGET_DEVICES += asterfusion_ap7330
|
||||
|
||||
@@ -37,7 +37,19 @@ function qdisc_del(iface) {
|
||||
}
|
||||
|
||||
function ifb_dev(iface) {
|
||||
return "i-" + iface;
|
||||
let ifbname;
|
||||
|
||||
if ((index(iface, 'phy') != -1) && (index(iface, 'ap') != -1)) {
|
||||
// For interfaces like phy6g-ap0, phy5g-ap0, phy2g-ap0
|
||||
// we replace 'phy' with "p" to confine the ifb name length
|
||||
// and replace 'ap' with 'a' to further shorten it.
|
||||
ifbname = replace(iface, 'phy', 'p');
|
||||
ifbname = replace(ifbname, 'ap', 'a');
|
||||
} else {
|
||||
ifbname = iface;
|
||||
}
|
||||
ifbname = "i-" + ifbname;
|
||||
return ifbname;
|
||||
}
|
||||
|
||||
function ifb_add(iface, ifbdev) {
|
||||
|
||||
@@ -364,9 +364,9 @@ function switch_status_check(iface, dfs_enabled_5g_flag) {
|
||||
let cac_time = trim(_cac_time.read('all'));
|
||||
_cac_time.close();
|
||||
|
||||
// if cac_time is a valid number, set timer to cac_time + 5 seconds
|
||||
// if cac_time is a valid number, set timer to cac_time + 10 seconds
|
||||
if (cac_time > 0 && match(cac_time, /^[0-9]+$/)) {
|
||||
timer = int(cac_time) + 5;
|
||||
timer = int(cac_time) + 10;
|
||||
}
|
||||
|
||||
while (p < timer) {
|
||||
@@ -537,7 +537,7 @@ function get_chan_util(radio_band, sleep_time) {
|
||||
return chan_util;
|
||||
}
|
||||
|
||||
function random_channel_selection(iface, band, htmode, chan_list_valid) {
|
||||
function random_channel_selection(iface, band, htmode, chan_list_valid, exclude_dfs) {
|
||||
let math = require('math');
|
||||
let bw = replace(htmode, /[^0-9]/g, '');
|
||||
let iface_num = replace(iface, /[^0-9]/g, '');
|
||||
@@ -547,7 +547,9 @@ function random_channel_selection(iface, band, htmode, chan_list_valid) {
|
||||
}
|
||||
|
||||
// channel list from the driver based on the country code
|
||||
let chan_list_cc = global.phy.phys[phy_id].channels;
|
||||
let chan_list_cc = uniq(sort(global.phy.phys[phy_id].channels, (a, b) => a - b));
|
||||
// DFS channel list from the driver
|
||||
let dfs_chan_list = global.phy.phys[phy_id].dfs_channels || [];
|
||||
// complete channel list
|
||||
let chan_list_default = {};
|
||||
// allowed channel list to select random channel from
|
||||
@@ -555,6 +557,7 @@ function random_channel_selection(iface, band, htmode, chan_list_valid) {
|
||||
|
||||
let chan_list_init = [];
|
||||
let chan_list_legal = [];
|
||||
let _chan_list_legal = [];
|
||||
|
||||
ulog_info(`[%s] Channel list from the driver = %s \n`, iface, chan_list_cc);
|
||||
ulog_info(`[%s] Selected channel list from config (default channel list shall be used in case channels haven't been selected) = %s \n`, iface, (chan_list_valid || '[]'));
|
||||
@@ -663,9 +666,29 @@ function random_channel_selection(iface, band, htmode, chan_list_valid) {
|
||||
|
||||
if (band == '5g' && (bw == "80" || bw == "40")) {
|
||||
// exclude last channels from the channel list when bw is 80MHz or 40MHz to avoid selecting a channel with a secondary channel that cannot be supported
|
||||
chan_list_legal = slice(chan_list_init, 0, length(chan_list_init)-1) ;
|
||||
_chan_list_legal = slice(chan_list_init, 0, length(chan_list_init)-1) ;
|
||||
} else {
|
||||
chan_list_legal = chan_list_init;
|
||||
_chan_list_legal = chan_list_init;
|
||||
}
|
||||
|
||||
// check if dfs is enabled or disabled for 5G radio; if dfs is disabled, remove dfs channels from chan_list_legal
|
||||
if (band == '5g' && exclude_dfs == true) {
|
||||
ulog_info(`[%s] DFS Channel list from the driver = %s \n`, iface, dfs_chan_list);
|
||||
|
||||
for (let _legal_chan in _chan_list_legal) {
|
||||
let is_dfs_chan = false;
|
||||
for (let dfs_chan in dfs_chan_list) {
|
||||
if (dfs_chan == _legal_chan) {
|
||||
is_dfs_chan = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (is_dfs_chan == false) {
|
||||
push(chan_list_legal, _legal_chan);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
chan_list_legal = _chan_list_legal;
|
||||
}
|
||||
|
||||
if (chan_list_valid) {
|
||||
@@ -710,13 +733,13 @@ function check_center_channel(chosen_random_channel, current_channel, band, htmo
|
||||
return ret;
|
||||
}
|
||||
|
||||
function algo_rcs(iface, current_channel, band, htmode, selected_channels) {
|
||||
function algo_rcs(iface, current_channel, band, htmode, selected_channels, exclude_dfs) {
|
||||
let chosen_random_channel = 0;
|
||||
let res = 0;
|
||||
let same_center_channel = false;
|
||||
|
||||
// random_channel_selection script will help to select random channel
|
||||
chosen_random_channel = random_channel_selection(iface, band, htmode, selected_channels);
|
||||
chosen_random_channel = random_channel_selection(iface, band, htmode, selected_channels, exclude_dfs);
|
||||
stats_info_write("/tmp/rrm_random_channel_" + iface, chosen_random_channel);
|
||||
|
||||
if (chosen_random_channel == current_channel) {
|
||||
@@ -826,7 +849,7 @@ function channel_optimize() {
|
||||
|
||||
// get radio's uci config
|
||||
htmode[j] = wireless_status[radio_id].config.htmode;
|
||||
acs_exclude_dfs[j] = wireless_status[radio_id].config.acs_exclude_dfs;
|
||||
acs_exclude_dfs[j] = wireless_status[radio_id].config.acs_exclude_dfs || false;
|
||||
channel_config[j] = wireless_status[radio_id].config.channel;
|
||||
selected_channels[j] = wireless_status[radio_id].config.channels;
|
||||
|
||||
@@ -961,7 +984,7 @@ function channel_optimize() {
|
||||
let assign_max_chan_util = 0;
|
||||
|
||||
// call RCS for multiple random chan
|
||||
let chan_scan = algo_rcs(radio_iface[l], curr_chan_list[num_chan-1], radio_band[l], htmode[l], selected_channels[l]);
|
||||
let chan_scan = algo_rcs(radio_iface[l], curr_chan_list[num_chan-1], radio_band[l], htmode[l], selected_channels[l], acs_exclude_dfs[l]);
|
||||
curr_chan_list[num_chan] = stats_info_read("/tmp/rrm_random_channel_" + radio_iface[l]);
|
||||
|
||||
if (chan_scan == 1) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"major": 4,
|
||||
"minor": 1,
|
||||
"patch": 1
|
||||
"minor": 2,
|
||||
"patch": 0
|
||||
}
|
||||
|
||||
@@ -4,10 +4,10 @@ PKG_NAME:=ucentral-schema
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL=https://github.com/Telecominfraproject/wlan-ucentral-schema.git
|
||||
PKG_MIRROR_HASH:=7eac2e19363e3810b0980afd0ae9ce63e11b7da0f5ccff5ff6b3c8c0e2c07a3e
|
||||
PKG_MIRROR_HASH:=6d3b8e342ce8e7aeef908acfcbefc989523f0de9cac215d8be4f148746c4e0ce
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2025-12-05
|
||||
PKG_SOURCE_VERSION:=384eba5c0ecfe9ec0b09864752c3516937aec9db
|
||||
PKG_SOURCE_DATE:=2025-12-12
|
||||
PKG_SOURCE_VERSION:=d26c4b0a1e38d331deeef89c5ccf669ce9044791
|
||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
|
||||
|
||||
16
profiles/asterfusion_ap7330.yml
Normal file
16
profiles/asterfusion_ap7330.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
profile: asterfusion_ap7330
|
||||
target: ipq53xx
|
||||
subtarget: generic
|
||||
description: Build image for the asterfusion ap7330
|
||||
image: bin/targets/ipq53xx/generic/openwrt-ipq53xx-asterfusion_ap7330-squashfs-sysupgrade.tar
|
||||
feeds:
|
||||
- name: qca
|
||||
path: ../../feeds/qca-wifi-7
|
||||
include:
|
||||
- ucentral-ap
|
||||
packages:
|
||||
- ipq53xx
|
||||
- qca-ssdk-shell
|
||||
diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
@@ -18,3 +18,4 @@ packages:
|
||||
- kmod-cig-poe-judgment
|
||||
diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
CONFIG_PACKAGE_ATH_DEBUG=y
|
||||
|
||||
@@ -17,3 +17,4 @@ packages:
|
||||
- kmod-cig-poe-judgment
|
||||
diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
CONFIG_PACKAGE_ATH_DEBUG=y
|
||||
|
||||
@@ -17,3 +17,4 @@ packages:
|
||||
- kmod-cig-poe-judgment
|
||||
diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
CONFIG_PACKAGE_ATH_DEBUG=y
|
||||
|
||||
@@ -27,3 +27,4 @@ diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
CONFIG_BUSYBOX_CUSTOM=y
|
||||
CONFIG_BUSYBOX_CONFIG_STTY=y
|
||||
CONFIG_PACKAGE_ATH_DEBUG=y
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
profile: edgecore_eap111
|
||||
target: mediatek
|
||||
subtarget: filogic
|
||||
subtarget: mt7981
|
||||
description: Build image for the EdgeCore EAP111
|
||||
image: bin/targets/mediatek/filogic/openwrt-mediatek-filogic-edgecore_eap111-squashfs-sysupgrade.bin
|
||||
image: bin/targets/mediatek/mt7981/openwrt-mediatek-mt7981-edgecore_eap111-squashfs-sysupgrade.bin
|
||||
feeds:
|
||||
- name: mediatek
|
||||
path: ../../feeds/mediatek
|
||||
path: ../../feeds/mediatek-sdk
|
||||
packages:
|
||||
- mediatek
|
||||
include:
|
||||
|
||||
@@ -6,3 +6,4 @@ description: Build image for the Sonicfi EAP RAP63XC-211G
|
||||
image: bin/targets/ramips/mt7621/openwrt-ramips-mt7621-sonicfi_rap63xc-211g-squashfs-sysupgrade.bin
|
||||
include:
|
||||
- ucentral-ap
|
||||
- hostapd
|
||||
|
||||
Reference in New Issue
Block a user