Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2023-11-16 13:39:28 +08:00
commit e4b2ac8644
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
21 changed files with 159 additions and 84 deletions

View File

@ -19,6 +19,15 @@ body:
```. /etc/openwrt_release && echo $DISTRIB_REVISION```
validations:
required: true
- type: input
id: release
attributes:
label: ImmortalWrt release
description: |
The ImmortalWrt release or commit hash where this bug occurs (use command below).
```. /etc/openwrt_release && echo $DISTRIB_RELEASE```
validations:
required: true
- type: input
id: target
attributes:

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=qca-ssdk
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk.git
PKG_SOURCE_PROTO:=git
@ -45,6 +45,7 @@ MAKE_FLAGS+= \
EXTRA_CFLAGS=-fno-stack-protector -I$(STAGING_DIR)/usr/include \
SoC=$(CONFIG_TARGET_SUBTARGET) \
PTP_FEATURE=disable SWCONFIG_FEATURE=disable \
ISISC_ENABLE=disable IN_QCA803X_PHY=FALSE \
$(LNX_CONFIG_OPTS)
ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq807x")

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
PKG_UPSTREAM_VERSION:=2.89
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
PKG_RELEASE:=6
PKG_RELEASE:=7
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/

View File

@ -539,8 +539,13 @@ dhcp_add() {
# Do not support non-static interfaces for now
[ static = "$proto" ] || return 0
ipaddr="${subnet%%/*}"
prefix_or_netmask="${subnet##*/}"
# Override interface netmask with dhcp config if applicable
config_get netmask "$cfg" netmask "${subnet##*/}"
config_get netmask "$cfg" netmask
[ -n "$netmask" ] && prefix_or_netmask="$netmask"
#check for an already active dhcp server on the interface, unless 'force' is set
config_get_bool force "$cfg" force 0
@ -583,7 +588,7 @@ dhcp_add() {
nettag="${networkid:+set:${networkid},}"
# make sure the DHCP range is not empty
if [ "$dhcpv4" != "disabled" ] && ipcalc "${subnet%%/*}" "$netmask" "$start" "$limit" ; then
if [ "$dhcpv4" != "disabled" ] && ipcalc "$ipaddr/$prefix_or_netmask" "$start" "$limit" ; then
[ "$dynamicdhcpv4" = "0" ] && END="static"
xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}"

View File

@ -4,7 +4,7 @@ use strict;
use warnings;
use Cwd;
my (%targets, %architectures, %kernels);
my (%targets, %architectures, %kernels, %devices);
$ENV{'TOPDIR'} = Cwd::getcwd();
@ -56,6 +56,68 @@ sub parse_targetinfo {
}
}
sub parse_devices {
my ($target_dir, $subtarget) = @_;
if (open M, "make -C '$target_dir' --no-print-directory DUMP=1 TARGET_BUILD=1 SUBTARGET='$subtarget' V=s |") {
my ($device_profile, $device_name, @device_alt_names, $device_is_alt);
while (defined(my $line = readline M)) {
chomp $line;
if ($line =~ /^Target-Profile-Name: (.+)$/) {
$device_name = $1;
}
elsif ($line =~ /^Target-Profile: DEVICE_(.+)$/) {
$device_profile = $1;
}
# Logic behind this.
# DUMP duplicate info for each alternative device name and
# the alternative device name are printed first before the
# primary device name
# Alternative device titles always have the full list of
# all the alternative device name.
# The device name pattern for an alternative device name is
# Target-Profile-Name: ALT_NAME (PRIMARY_NAME)
# We compare the detected device name and check if it does
# match the alternative device name pattern with one of
# the alternative device name in Alternative device titles:
# If an alternative device name is detected,
# alternative device is skipped.
elsif ($line =~ /^Alternative device titles:$/) {
while (defined($line = readline M)) {
if ($line =~ /^- (.+)$/) {
if ($device_name =~ /^\Q$1\E \((.+)\)$/) {
$device_is_alt = 1;
last;
}
push @device_alt_names, $1;
}
else {
last;
}
}
}
if ($line =~ /^@\@$/) {
if ($device_name && $device_profile && ! $device_is_alt) {
push @{$devices{$device_profile}}, $device_name;
if (scalar @device_alt_names) {
foreach my $device_alt_name (sort values @device_alt_names) {
push @{$devices{$device_profile}}, $device_alt_name;
}
}
}
undef $device_name;
undef $device_profile;
undef $device_is_alt;
@device_alt_names = ();
}
}
close M;
}
}
sub get_targetinfo {
foreach my $target_makefile (glob "target/linux/*/Makefile") {
my ($target_dir) = $target_makefile =~ m!^(.+)/Makefile$!;
@ -86,6 +148,15 @@ sub get_targetinfo {
}
}
sub get_devices {
my ($target_subtarget) = @_;
my ($target, $subtarget) = split /\//, $target_subtarget;
my ($target_dir) = "target/linux/" . $target;
parse_devices($target_dir, $subtarget)
}
if (@ARGV == 1 && $ARGV[0] eq 'targets') {
get_targetinfo();
foreach my $target_name (sort keys %targets) {
@ -104,8 +175,15 @@ elsif (@ARGV == 1 && $ARGV[0] eq 'kernels') {
printf "%s %s\n", $target_name, join ' ', @{$kernels{$target_name}};
}
}
elsif (@ARGV == 2 && $ARGV[0] eq 'devices') {
get_devices($ARGV[1]);
foreach my $device (sort keys %devices) {
printf "%s \"%s\"\n", $device, join '" "', @{$devices{$device}};
}
}
else {
print "Usage: $0 targets\n";
print "Usage: $0 architectures\n";
print "Usage: $0 kernels\n";
print "Usage: $0 devices <target/subtarget>\n";
}

View File

@ -271,28 +271,11 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
switch_lan_bmp = <ESS_PORT5>; /* lan port bitmap */
switch_mac_mode = <MAC_MODE_PSGMII>; /* mac mode for uniphy instance0*/
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@5 {
port_id = <5>;
phy_address = <4>;
};

View File

@ -235,24 +235,24 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT2 | ESS_PORT3 | ESS_PORT4)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
switch_lan_bmp = <(ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT2>; /* wan port bitmap */
switch_mac_mode = <MAC_MODE_PSGMII>; /* mac mode for uniphy instance0*/
qcom,port_phyinfo {
port@1 {
port@2 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port@5 {
port_id = <5>;
phy_address = <4>;
};

View File

@ -343,18 +343,18 @@
&switch {
status = "okay";
switch_lan_bmp = <ESS_PORT5>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT6>; /* wan port bitmap */
switch_lan_bmp = <ESS_PORT6>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
switch_mac_mode1 = <MAC_MODE_SGMII_CHANNEL0>; /* mac mode for uniphy instance1*/
switch_mac_mode2 = <MAC_MODE_SGMII_CHANNEL0>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@4 {
port@5 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -172,13 +172,13 @@
switch_mac_mode2 = <MAC_MODE_SGMII_CHANNEL0>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@4 {
port@5 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -321,8 +321,8 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT6>; /* wan port bitmap */
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT6)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
malibu_first_phy_addr = <16>; /* PHY addr of the first malibu PHY */
switch_mac_mode = <MAC_MODE_QSGMII>; /* mac mode for uniphy instance0*/
switch_mac_mode1 = <MAC_MODE_USXGMII>; /* mac mode for uniphy instance1*/

View File

@ -325,18 +325,18 @@
&switch {
status = "okay";
switch_lan_bmp = <ESS_PORT5>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT6>; /* wan port bitmap */
switch_lan_bmp = <ESS_PORT6>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
switch_mac_mode1 = <MAC_MODE_SGMII_CHANNEL0>; /* mac mode for uniphy instance1*/
switch_mac_mode2 = <MAC_MODE_SGMII_CHANNEL0>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@4 {
port@5 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -388,23 +388,23 @@
switch_mac_mode1 = <MAC_MODE_SGMII_PLUS>; /* mac mode for uniphy instance1*/
qcom,port_phyinfo {
port@0 {
port@1 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port@2 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port@5 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";

View File

@ -175,23 +175,23 @@
switch_mac_mode2 = <MAC_MODE_SGMII_PLUS>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@0 {
port@1 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port@2 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -193,23 +193,23 @@
switch_mac_mode2 = <MAC_MODE_USXGMII>; /* mac mode for uniphy instance2*/
qcom,port_phyinfo {
port@0 {
port@1 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port@2 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port@6 {
port_id = <6>;
phy_address = <8>;
compatible = "ethernet-phy-ieee802.3-c45";

View File

@ -89,12 +89,12 @@
&switch {
status = "okay";
switch_wan_bmp = <ESS_PORT6>;
switch_lan_bmp = <ESS_PORT6>;
switch_mac_mode = <MAC_MODE_PSGMII>;
switch_mac_mode2 = <MAC_MODE_SGMII_CHANNEL0>;
qcom,port_phyinfo {
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -117,12 +117,12 @@
&switch {
status = "okay";
switch_wan_bmp = <ESS_PORT6>;
switch_lan_bmp = <ESS_PORT6>;
switch_mac_mode = <MAC_MODE_PSGMII>;
switch_mac_mode2 = <MAC_MODE_SGMII_CHANNEL0>;
qcom,port_phyinfo {
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -407,7 +407,7 @@
port_id = <4>;
phy_address = <3>;
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -298,40 +298,40 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>;
switch_wan_bmp = <ESS_PORT6>;
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT6)>;
switch_wan_bmp = <ESS_PORT5>;
switch_mac_mode = <MAC_MODE_PSGMII>;
switch_mac_mode1 = <MAC_MODE_SGMII_CHANNEL0>;
switch_mac_mode2 = <MAC_MODE_USXGMII>;
qcom,port_phyinfo {
port@0 {
port@1 {
port_id = <1>;
phy_address = <0>;
};
port@1 {
port@2 {
port_id = <2>;
phy_address = <1>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <2>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@4 {
port@5 {
port_id = <5>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";
};
port@5 {
port@6 {
port_id = <6>;
ethernet-phy-ieee802.3-c45;
phy_address = <8>;

View File

@ -195,8 +195,8 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT6>; /* wan port bitmap */
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT6)>; /* lan port bitmap */
switch_wan_bmp = <ESS_PORT5>; /* wan port bitmap */
switch_mac_mode = <MAC_MODE_PSGMII>; /* mac mode for uniphy instance0*/
switch_mac_mode2 = <MAC_MODE_USXGMII>; /* mac mode for uniphy instance2*/

View File

@ -151,18 +151,17 @@
&switch {
status = "okay";
switch_lan_bmp = <ESS_PORT4>;
switch_wan_bmp = <ESS_PORT6>;
switch_lan_bmp = <(ESS_PORT4 | ESS_PORT6)>;
switch_mac_mode = <MAC_MODE_PSGMII>;
switch_mac_mode2 = <MAC_MODE_USXGMII>;
qcom,port_phyinfo {
port@3 {
port@4 {
port_id = <4>;
phy_address = <3>;
};
port@5 {
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";

View File

@ -267,40 +267,40 @@
&switch {
status = "okay";
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT5)>;
switch_wan_bmp = <ESS_PORT6>;
switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT6)>;
switch_wan_bmp = <ESS_PORT5>;
switch_mac_mode = <MAC_MODE_QSGMII>;
switch_mac_mode1 = <MAC_MODE_USXGMII>;
switch_mac_mode2 = <MAC_MODE_USXGMII>;
qcom,port_phyinfo {
port@0 {
port@1 {
port_id = <1>;
phy_address = <0x18>;
};
port@1 {
port@2 {
port_id = <2>;
phy_address = <0x19>;
};
port@2 {
port@3 {
port_id = <3>;
phy_address = <0x1a>;
};
port@3 {
port@4 {
port_id = <4>;
phy_address = <0x1b>;
};
port@4 {
port@5 {
port_id = <5>;
ethernet-phy-ieee802.3-c45;
phy_address = <0x0>;
};
port@5 {
port@6 {
port_id = <6>;
ethernet-phy-ieee802.3-c45;
phy_address = <0x8>;