* RTL8380M SoC, 1 MIPS 4KEc core @ 500MHz
* 256MB DRAM
* 32MB NOR Flash
* 8 x 10/100/1000BASE-T ports
* 2 x SFP ports
* Power LED, Fault LED
* Reset button on front panel
* UART (115200 8N1) via populated standard pin header marked JP1
TODO: The SFP ports use a shared SCL GPIO that the driver cannot handle.
The left SFP port (lan9) is defined and fully functional while the laser
on the right SFP port (lan10) is off by default.
Installation using OEM webinterface
-----------------------------------
1. Make sure you are running OEM firmware in secondary slot
2. Install squashfs-factory.imag to primary slot by upload via http
Installation using serial interface
-----------------------------------
1. Press "a" "c" "p" during message "Enter correct key to stop autoboot"
2. Load image with "upgrade runtime <TFTP IP>:squashfs-sysupgrade.bin" command
3. Switch to primary slot with "setsys bootpartition 0"
4. Store config with "savesys"
5. Boot the image with `boota` command
Dual-boot with stock firmware using writable u-boot-env
-------------------------------------------------------
From stock to OpenWrt / primary image 1 (CLI as admin):
- > boot system image1
- > reboot
From OpenWrt to stock / boot image 2: (shell as root)
- # fw_setsys bootpartition 1
- # reboot
Debrick using serial interface
------------------------------
1. Press "a" "c" "p" during message "Enter correct key to stop autoboot"
2. Load vendor image with "upgrade runtime <TFTP IP>:LGS310xxxxx.imag"
3. switch to primary partition "setsys bootpartition 0"
4. safe config "savesys"
Further documentation
---------------------
See https://openwrt.org/toh/linksys/lgs352c
It has been developed and tested on device with v1 revision.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> Link: https://github.com/openwrt/openwrt/pull/16068
[Add missing 'w' in name of firmware partition] Signed-off-by: Sander Vanheule <sander@svanheule.net>
In file included from hostapd-wpad-basic-mbedtls/hostapd-2024.03.09~695277a5/src/ap/ubus.h:11,
from hostapd-wpad-basic-mbedtls/hostapd-2024.03.09~695277a5/src/ap/hostapd.h:21,
from main.c:26:
hostapd-2024.03.09~695277a5/src/ap/sta_info.h: In function 'ap_sta_is_mld':
hostapd-2024.03.09~695277a5/src/ap/sta_info.h:425:20: error: invalid use of undefined type 'struct hostapd_data'
425 | return hapd->conf->mld_ap && sta && sta->mld_info.mld_sta;
| ^~
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Backport patch that fixes memory disclosure in packet padding.
The downstream driver supports statistics, so when a packet
cannot be padded the statistics of dropped packets are incremented.
The other patches do not introduce any functional changes.
Chukun Pan [Sun, 29 Sep 2024 15:18:26 +0000 (23:18 +0800)]
mt76: add missing eeprom for mt7992 firmware
Avoid the following errors:
[ 9.219272] mt7996e 0000:01:00.0: Direct firmware load for mediatek/mt7996/mt7992_eeprom_2i5i.bin failed with error -2
[ 9.229975] mt7996e 0000:01:00.0: Falling back to sysfs fallback for: mediatek/mt7996/mt7992_eeprom_2i5i.bin
Fixes: 2f7d22d ("mt76: update to Git HEAD (2024-09-29)") Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Michael Pratt [Sat, 28 Sep 2024 11:06:59 +0000 (07:06 -0400)]
tools/elfutils: prevent invalid include of stack binary
In some versions of Xcode, some C++ header has an include
of the standard C++ header "stack" while "." is in the include paths
which can conflict with the binary "stack" built by elfutils.
This leads to a decode error as the binary is interpreted as text.
Add an arbitrary dependency between stack and the C++ program.
Daniel Golle [Sun, 29 Sep 2024 18:17:23 +0000 (19:17 +0100)]
mediatek: filogic: select MT7996 2+3+3 firmware
Select MT7996 2+3+3 firmware for the Adtran SmartRG SDG-8733A device
and also add it to the image for the BPi-R4 which supports both, BE19000 (4+5+5) as well as BE14000 (2+3+3) Wi-Fi 7 modules.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Felix Fietkau [Sun, 29 Sep 2024 15:58:13 +0000 (17:58 +0200)]
mt76: update to Git HEAD (2024-09-29)
1231d45dcb5e wifi: mt76: mt7915: check devm_kasprintf() returned value 042082027b3f wifi: mt76: mt7921: Check devm_kasprintf() returned value 4a95c1a81eee wifi: mt76: Avoid multiple -Wflex-array-member-not-at-end warnings 5fdb1841f726 wifi: mt76: mt7925: fix a potential association failure upon resuming eeb51b527377 wifi: mt76: mt7925: convert comma to semicolon d4b3b302ceb9 wifi: mt76: mt7615: check devm_kasprintf() returned value 922e515bd8e0 wifi: mt76: mt7925: fix a potential array-index-out-of-bounds issue for clc bec8cb851d99 wifi: mt76: mt7925: replace chan config with extend txpower config for clc d10ce9d65dac wifi: mt76: remove mt76_calculate_default_rate() 6685a2f4c217 wifi: mt76: mt7996: remove phy->monitor_vif a2a9d9826277 wifi: mt76: do not increase mcu skb refcount if retry is not supported 059342ca6a68 wifi: mt76: move mt76_tm_policy to from testmode.h to mt76.h 8bef11443290 wifi: mac80211: inform the low level if drv_stop() is a suspend 4b16d2bfdcbd wifi: mac80211: handle color change per link 4529cddb6718 wifi: mt76: mt7996: extend flexibility of mt7996_mcu_get_eeprom() 4364571e4b2b wifi: mt76: mt7996: add support for more variants 8c86aa304ea1 wifi: mt76: mt7996: set correct background radar capability addfbd141863 firmware: add latest mt7996 + mt7992 firmware 5ba4981f8b92 wifi: mt76: mt792x: add P2P_DEVICE support dc32780c7fcd wifi: mt76: mt7921s: fix a potential firmware freeze during startup 7b5d653ea90e wifi: mt76: mt7925: fix off by one in mt7925_load_clc() 1e57d2da94c9 wifi: mt76: mt7615: Convert comma to semicolon 7aca94abac47 wifi: mt76: mt7915: fix slot time for 5/6GHz e3e6d490ab90 wifi: mt76: mt7915: Fix mesh scan on MT7916 DBDC ee693260c521 firmware: move mt7996 firmware to the right place 867accf4f4aa wifi: mt76: mt7996: Add eht radiotap tlv 7c4d6e403381 wifi: mt76: Fix EHT NSS radiotap reporting. 71c3949fa8ac wifi: mt76: mt7921: fix a potential scan no APs 61641da04c9e mt76: mt76u_vendor_request: Do not print error messages when -EPROTO 680bc70f161f wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.
kernel: make 'no port node found' output a debug message
There are cases where an unavailable port is not an error, making
this error message a false-positive. The kernel log is flooded with
the messages like:
OF: graph: no port node found in /soc@0/bus@42000000/i2c@42530000/usb-typec@50
Silence this message by making it a debug message.
Shiji Yang [Fri, 27 Sep 2024 10:15:16 +0000 (18:15 +0800)]
tools: fakeroot: update to 1.36
The type 'id_t' check has been moved to configure.ac in upstream commit: 819063eb4d27 ("test for id_t with autoconf instead of blind typedef, fixes FTBFS on FreeBSD")
base-files: emmc: invalidate kernel image while rootfs is being written
Some setups have alternate boot actions in case the main OS fails to
boot. These can include a secondary copy of the OS, a recovery OS, a
fallback to TFTP boot, etc.
This commit invalidates the kernel image while rootfs is being written
which, if a sysupgrade is interrupted, will trigger an alternate boot
action in devices that support it. This results in safer sysupgrades.
Shiji Yang [Fri, 27 Sep 2024 01:51:22 +0000 (09:51 +0800)]
mac80211: fix build error on kernel 6.6
The virtio_find_vqs() ABI has been changed since the 6.11 kernel.
Switch back to using the old ABI to fix the build error:
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c: In function 'init_vqs':
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6632:31: error: array type has incomplete element type 'struct virtqueue_info'
6632 | struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
| ^~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6637:16: error: too few arguments to function 'virtio_find_vqs'
6637 | return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
| ^~~~~~~~~~~~~~~
In file included from ../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:38:
./include/linux/virtio_config.h:224:5: note: declared here
224 | int virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs,
| ^~~~~~~~~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6632:31: error: unused variable 'vqs_info' [-Werror=unused-variable]
6632 | struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
| ^~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6639:1: error: control reaches end of non-void function [-Werror=return-type]
6639 | }
| ^
Felix Fietkau [Thu, 26 Sep 2024 08:58:44 +0000 (10:58 +0200)]
kernel: fix crashes after linearizing fraglist GSO skbs
This fixes some corner cases triggered by enabling fraglist GRO, where some
protocols may accidentally or intentionally linearize fraglist skbs.
Previously, these skbs became unusable and segmenting them led to crashes.
With this patch, they are properly handled by passing them to skb_segment
instead of skb_segment_list.
Chukun Pan [Wed, 18 Sep 2024 15:10:16 +0000 (23:10 +0800)]
openssl: update download mirrors
New releases of openssl are only published on GitHub, and official
downloads are also redirected to GitHub. So remove the old download
mirrors (file 404), and replace the current address with https.
Robert Marko [Wed, 25 Sep 2024 11:31:29 +0000 (13:31 +0200)]
tools: e2fsprogs: pass --with-crond-dir=no instead of patching
Currently, e2fsprogs is being patched to avoid detecting host crond, but
instead of doing that we can simply pass --with-crond-dir=no as an
argument and drop the patch.
Robert Marko [Wed, 25 Sep 2024 11:26:19 +0000 (13:26 +0200)]
tools: e2fsprogs: drop the e4defrag patch
Considering that this patch to not build e4defrag was added 12 years ago
because:
Compilation fails on older systems due to missing syscalls
I think its safe to say that enough time is passed so that whatever those
older systems were are either updated or not used anymore so lets drop
the patch.
D-Link DGS-1210-28P rev. F1 is a switch with 24 ethernet ports and 4
combo ports, all ports Gbit capable. It is based on a RTL8382 SoC
@500MHz, DRAM 128MB and 32MB flash. 24 ethernet ports are 802.3af/at PoE
capable with a total PoE power budget of 193W.
Power over Ethernet:
--------------------
The PSE hardware consists of three BCM59121 PSE chips, serving 8 ports
each. They are controlled by a Nuvoton MCU. In order to enable PoE, the
realtek-poe package is required. It is installed by default, but
currently it requires the manual editing of /etc/config/poe. Keep in
mind that the port number assignment does not match on this switch,
alway 8 ports are in reversed order: 8-1, 16-9 and 24-17.
LEDs and Buttons:
-----------------
On stock firmware, the mode button is supposed to switch the LED
indicators of all port LEDs between Link Activity and PoE status. The
currently selected mode is visualized using the respective LEDs. PoE Max
indicates that the maximum PoE budget has been reached. Since there is
currently no support for this behavior, these LEDs and the mode button
can be used independently.
Serial connection:
------------------
The UART for the SoC (115200 8N1) is available via unpopulated standard
0.1" pin header marked J6. Pin1 is marked with arrow and square.
Pin 1: Vcc 3.3V
Pin 2: Tx
Pin 3: Rx
Pin 4: Gnd
OEM installation from Web Interface:
------------------------------------
1. Make sure you are booting using OEM in image 2 slot. If not,
switch to
image2 using the menus
System > Firmware Information > Boot from image2
Tools > reboot
2. Upload image in vendor firmware via Tools > Backup / Upgrade
Firmware > image1
3. Toggle startup image via System > Firmware Information > Boot
from
image1
4. Tools > reboot
Other installation methods not tested, but since the device shares the
board with the DGS-1210-28, the following should work:
Boot initramfs image from U-Boot:
---------------------------------
1. Press Escape key during `Hit Esc key to stop autoboot` prompt
2. Press CTRL+C keys to get into real U-Boot prompt
3. Init network with `rtk network on` command
4. Load image with `tftpboot 0x8f000000
openwrt-rtl838x-generic-d-link_dgs-1210-28p-f-initramfs-kernel.bin`
command
5. Boot the image with `bootm` command
Daniel Golle [Sat, 6 Jul 2024 23:59:13 +0000 (00:59 +0100)]
tools/flex: respect STAGING_DIR_HOST
flex currently leaks the path of m4 as found on the build host.
While it is possible to override this using the M4 environment
variable (which we always did for autotools based builds) when
using CMake or Ninja the M4 variable is not set.
One easy fix is to make flex take STAGING_DIR_HOST into account
and expect m4 there if that variable is set in the environment.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Platform specified fiptool files was moved before lf-6.6.23-2.0.0 bump.
But PLAT_FIPTOOL_HELPER_MK still pointed to old location.
This cause problems with ls-ddr-phy build.
This patch fix PLAT_FIPTOOL_HELPER_MK path.
Fixes: 0ec659bd2b7e ("tfa-layerscape: Bump to lf-6.6.23-2.0.0") Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16472 Signed-off-by: Robert Marko <robimarko@gmail.com>
* Version 5 of this action updated the runtime to Node.js 20.
All scripts are now run with Node.js 20 instead of Node.js 16
and are affected by any breaking changes between Node.js 16 and 20.
* adapt the labeler configuration to the new format
ipq807x: sax1v1k: fix sysupgrade not touching rootfs_data
Before this commit, sysupgrade saved the settings backup data to
the area following rootfs even though the device has an actual
rootfs_data partition. The backup data was completely ignored on
the following boot, but since rootfs_data was not being cleared
during sysupgrade, the issue was not noticed earlier.
Note that this commit changes the filesystem of rootfs_data from
ext4 to F2FS (if OEM partitioning is used).
of_property_read_u32 returns -EINVAL when property does not exist,
according to the documentation -ENOENT is not a valid return code.
So, instead of checking for -ENOENT check for -EINVAL as otherwise the
blamed commit breaks AQR probe since it will return -EINVAL during probe.
Fixes: cb2a11f49c98 ("generic: phy: aquantia: add pending patch to force MDI pair order") Link: https://github.com/openwrt/openwrt/pull/16466 Signed-off-by: Robert Marko <robimarko@gmail.com>
Janusz Dziedzic [Mon, 24 Jun 2024 16:48:46 +0000 (18:48 +0200)]
mac80211: ath12k: prevent ltssm crash
Fix ltssm crashes on BPI-Rx boards.
Seems read32/write32 using wrong address which
is not a problem on x86/64 PCI controllers.
But have issues on BPI-Rx boards.
Shiji Yang [Fri, 13 Sep 2024 11:52:30 +0000 (19:52 +0800)]
ath79: disable ath79 USB phy drivers by default
We already have an kernel module package "kmod-phy-ath79-usb" to
drive the ath79 USB. It will be selected by the usb base package
"kmod-usb2" and "kmod-usb-ohci".
Shiji Yang [Fri, 13 Sep 2024 11:52:30 +0000 (19:52 +0800)]
kernel: usb: improve support for ath79 target
1. Remove outdated symbol CONFIG_USB_OHCI_ATH79.
The ath79 OHCI USB was already supported by the generic driver
kmod-usb-ohci. And this kernel symbol has been dropped since
upstream commit: 53d473fc1e38 ("usb: host: Remove the deprecated ATH79 USB host config options")
2. Add ath79 USB phy package to the OHCI dependencies.
Both EHCI and OHCI require it on the ath79 target.
Chris Webb [Mon, 10 Jun 2024 08:54:23 +0000 (09:54 +0100)]
uboot-mediatek: support GL.iNet GL-X3000 and GL-XE3000
Add u-boot support based on the kernel dts introduced in d1016446 and
the GL-MT6000 u-boot support in fe10f974.
The pcie-mediatek-gen3 kernel driver doesn't like hotplug, so to work in
PCIe mode, the 5G modem on this device needs to be switched on by u-boot
before starting the kernel. Include an init_modem step in the boot_system
action to set the relevant gpios. (The factory bootloader does the same,
using Mediatek SDK-specific gpio_power_clr and gpio_pull_up.)
Ideally the modem would be started using gpio-hog in the device tree, but
this will need to wait until mediatek gpio-hog support is fixed upstream:
The bootloader can be replaced using the built-in web interface of the
factory bootloader. Hold the reset button for five seconds while powering
on the device and it will boot into a recovery http server.
http://192.168.1.1/uboot.html and http://192.168.1.1/bl2.html can then
be used to upload openwrt-mediatek-filogic-glinet_gl-x3000-bl31-uboot.fip
and openwrt-mediatek-filogic-glinet_gl-x3000-preloader.bin respectively.
Alternatively, from a root shell on the running system, unlock the boot
partition with
echo 0 >/sys/block/mmcblk0boot0/force_ro
then write openwrt-mediatek-filogic-glinet_gl-x3000-bl31-uboot.fip to
/dev/mmcblk0p4 and openwrt-mediatek-filogic-glinet_gl-x3000-preloader.bin
to /dev/mmcblk0boot0.