100 Commits
Author SHA1 Message Date
Robert MarkoandRobert Marko 696b38be9c uboot-airoha: fix AN7583 pinctrl compatible
Use the compatible expected by the AN7583 pinctrl driver so the pinctrl and integrated GPIO driver can bind.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-17 12:07:33 +02:00
Robert MarkoandRobert Marko 4be1036213 airoha: an7583: fix AN7583 PCS port count
The AN7583 PCS match data does not initialize num_port. This leaves it at
zero, so probe allocates a zero-sized ports array and a later PCS lookup
returns a pointer derived from NULL.

Set the number of ports for each AN7583 PCS instance. Also reject
out-of-range PCS indices defensively.

Fixes kernel crashing on boot once ethernet starts probing on AN7583.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-16 14:30:21 +02:00
Robert MarkoandRobert Marko 5625dadb4b airoha: an7583: update ethernet node for new PCS implementation
With new PCS implementation, the pcs property needs to be updated to the
new name of 'pcs-handle' to correctly work with PCS fwnode
consumer/provider.

Fixes: 4d5f579a81 ("airoha: update PCS node in DTSI for new PCS implementation")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-16 11:42:02 +02:00
Robert MarkoandRobert Marko 5882239031 qualcommbe: i2c-an7581: depend only on target
i2c-an7581 (In reality its just i2c-mt7621) should depend on the airoha
target in general and not on an7581 as an7583 also uses it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-16 11:33:02 +02:00
Robert MarkoandRobert Marko b0a38a4c30 qualcommbe: an7583: correct I2C controller compatible
AN7583 DTS currently uses a non existant compatible that only exists in the
Airoha SDK.

It should just be changed to the generic MT7621 compatible as AN7581 uses
as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-16 11:33:02 +02:00
Robert MarkoandRobert Marko 273b186ac3 mac80211: ath12k: fix regulatory range for wideband radios
Currently, trying to start a 5GHz radio on 8devices Kiwi will fail as
despite the phy listing the 5GHz channels in iw phy dump, no radio actually
claims the 5GHz range.

This is because driver assumes that if radio supports 6GHz then it cannot
be used for 5Ghz, this is however not correct for wideband radios.

So, similar to the 103-wifi-ath12k-fix-5GHz-operation-on-wideband-QCN.patch
patch ath12k_regd_update() so that 5Ghz range is listed as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://github.com/openwrt/openwrt/pull/24106
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-07-07 10:52:39 +02:00
Robert MarkoandRobert Marko b994fb029a microchip: update TAS patch to pending one
Update the TAS patch to the one sent upstream, it adds SparX-5 registers.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-02 13:44:11 +02:00
Robert Marko 53389564b9 microchipsw: configure TAS port link speed
On the TSN and RED variants of SparX-5 and LAN969x TAS (Time-Aware Shaper)
is present in the silicon.

Currently, the driver does not use configure it at all, which means that
the TAS_PROFILE_CONFIG.LINK_SPEED[1] value is left at the default of 3
which means that its configured for 1 Gbps.

So, running iperf between two 10G switch ports will result in only 940-ish
Mbps while we should be getting around 9.3 Gbps.

Correctly populating the TAS_PROFILE_CONFIG.LINK_SPEED[1] with the current
port speed fixes this issue and we achieve around 9.4 Gbps between two 10G
switch ports.

So, port the TAS port link speed setting from the vendor BSP 6.18 kernel[2]

[1] https://microchip-ung.github.io/lan969x-industrial_reginfo/reginfo_LAN969x-Industrial.html?select=hsch,tas_profile_cfg,tas_profile_config,link_speed
[2] https://github.com/microchip-ung/linux/tree/bsp-6.18-2026

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-07-01 20:40:19 +02:00
Robert MarkoandRobert Marko 4fa4766986 qualcommbe: kiwi: include Realtek PHY kmod and RTL8261N firmware
Since 6.18 RTL8261N support was added to the generic Realtek PHY driver
and was dropped from the downstream driver.

So, fix the missing RTL8261N support by including the Realtek PHY kmod
and the relevant firmware.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-11 13:35:29 +02:00
Robert MarkoandRobert Marko eee679b9b3 qualcommbe: ipq95xx: 6.18: refresh config
Refresh the really outdated kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-11 13:35:29 +02:00
Robert MarkoandRobert Marko 1a2d3bb23d microchipsw: lan969x: refresh config
Refresh the kernel config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-09 11:30:01 +02:00
Robert MarkoandRobert Marko ce81558d33 microchipsw: use upstreamed NVMEM support
NVMEM OTP support was upstreamed, so backport those patches instead of
our downstream ones.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-09 11:28:27 +02:00
Robert MarkoandRobert Marko 957b042056 microchipsw: replace hwmon patch with upstreamed one
Selection of Sparx5 hwmon driver for LAN969x was upstreamed, so use that
instead of the downstream patch.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-09 11:10:00 +02:00
Robert MarkoandRobert Marko 849dd5d4f0 microchipsw: renumber upstreamed patches
Lets restart the numbering from 0 as most of the patches were upstreamed.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-09 11:02:45 +02:00
Robert MarkoandRobert Marko 5101f3f12f microchipsw: backport MDIO probe defferal silencing
Currently, MDIO driver will print the probe defferal as error.
So, instead of spaming the log, backport the upstream fix for it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-06-09 09:51:30 +02:00
Robert MarkoandRobert Marko 7f6ae9d34b qualcommbe: 6.18: refresh config
Lets refresh the config as generic config was wastly updated, and we
need the CONFIG_PAGE_BLOCK_MAX_ORDER to be defined.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-28 10:47:03 +02:00
Robert MarkoandRobert Marko df660e89c4 qualcommbe: 6.18: refresh patches
Lets make the PCS one actually apply and refresh the rest.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-28 10:47:03 +02:00
Robert Marko fb7787803c mvebu: cortexa53: uDPU/eDPU: update active bootscript as well
Currently, sysupgrade will only upgrade the unused slot, however since the
whole dual firmware logic is in the bootscript U-boot will just use the
first bootscript it finds.

So, in a case that you are running slot A it will upgrade slot B, however
that means that slot B will be still booted by the old bootscript that came
with the previous firmware version.

This is an issue if you need to change anything, so lets add a custom
function that upgrades the active bootscript as well after flashing the
slot firmware.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-26 19:35:42 +02:00
Robert Marko ada2753d6a mvebu: cortexa53: uDPU/eDPU convert to dual firmware (A/B)
Methode uDPU and eDPU devices are one of the rare ones with a completely
custom image format being used with custom partition table with F2FS.

Instead of converting the boards to dual firmware (A/B style) and further
expand the already convoluted custom scripts, especially considering that
dual firmware conversion is a breaking change anyway, lets convert to using
the generic eMMC sysupgrade based images.

F2FS ZSTD compression is preserved thanks to fstools now supporting its use
on overlays.

Dual firmware support is implemented via U-Boot scripts so no U-Boot
upgrade is required.

Since there is a partition table layout change, eMMC must be wiped and
reflashed with the generated GPT image from OpenWrt initramfs.

Then on each sysupgrade the firmware slot will be altered.

Instructions:
1. Boot into OpenWrt initramfs
2. Copy openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img.gz to
the device into /tmp
3. Erase eMMC:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M
4. Extract image
gzip -d /tmp/openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img.gz
5. Flash image
dd if=/tmp/openwrt-mvebu-cortexa53-methode_edpu-squashfs-emmc-gpt.img of=/dev/mmcblk0
6. Reboot

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-26 19:35:42 +02:00
Robert MarkoandRobert Marko 920a382cb6 fstools: update to Git HEAD (2026-03-17)
1bf2d490484e libfstools: make get_var_from_file() reusable
0b6022439cad mount_root: add kernel parameter to specify the overlay storage name
e600d842ce81 mount_root: add kernel parameter to specify the overlay fileystem type

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-22 13:10:42 +02:00
Robert MarkoandRobert Marko 337c93a1cb microchipsw: use upstreamed QSGMII soft reset patch
It was merged into the net tree, so use the upstreamed version.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-05-05 13:11:14 +02:00
Robert MarkoandRobert Marko 30c4c4301e microchipsw: fix LAN8814 QSGMII soft reset
Currently, moving from a port on one LAN8814 PHY package to another results
in a no traffic flowing on that new port.

It was tracked down to upstream change that fixed the issue that QSGMII
was soft reset on .config_init of each of 4 PHY-s in the package resulting
in a temporary traffic loss until QSGMII resynced.

However, it seems that the QSGMII soft reset timing is crucial and doing
the reset during probe only cause the QSGMII link to become partially
unsynced (Like 2 or 3 lanes are not synced).

So, add an upstream pending patch[1] to fix this, patch was modified as we
dont have the inband caps currently.

[1] https://patchwork.kernel.org/project/netdevbpf/patch/20260428134138.1741253-1-robert.marko@sartura.hr/

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-04-29 11:40:10 +02:00
Robert MarkoandRobert Marko 60fda6238c microchipsw: use 6.18 as default and drop 6.12
Now that 6.18 is stable there is no point in keeping 6.12 around.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-04-26 19:38:45 +02:00
Robert MarkoandRobert Marko e7e5d470c1 toolchain: gcc: 14/15: fix libcody compilation with GCC16
libcody will fail to build if building using a GCC16 host compiler, so
backport the upstream fix.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-04-22 16:50:10 +02:00
Robert MarkoandRobert Marko 7f143ec96f generic: filter: add RUSTC symbols
These symbols depend on rustc version and is autodetected and set, so make
sure to filter them out.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-04-22 16:46:44 +02:00
Robert MarkoandRobert Marko da9eee7c55 generic: 6.18: hack: io_uring: zcrx: Use IS_REACHABLE() instead of IS_ENABLED()
We patch DMA_BUF to make it tristate, so once ALL_KMODS is selected it will
be built as a module even if previously disabled in the config.

So, since IO_URING_ZCRX does not depend on DMA_BUF linking will fail with:
aarch64-openwrt-linux-musl-ld: Unexpected GOT/PLT entries detected!
aarch64-openwrt-linux-musl-ld: Unexpected run-time procedure linkages detected!
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.o: in function `io_release_dmabuf':
io_uring/zcrx.c:94:(.text+0x20): undefined reference to `dma_buf_unmap_attachment_unlocked'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:97:(.text+0x30): undefined reference to `dma_buf_detach'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:99:(.text+0x3c): undefined reference to `dma_buf_put'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.o: in function `io_import_dmabuf':
io_uring/zcrx.c:125:(.text+0x1b20): undefined reference to `dma_buf_get'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:132:(.text+0x1b34): undefined reference to `dma_buf_attach'
aarch64-openwrt-linux-musl-ld: io_uring/zcrx.c:139:(.text+0x1b48): undefined reference to `dma_buf_map_attachment_unlocked'
make[6]: *** [scripts/Makefile.vmlinux:72: vmlinux.unstripped] Error 1

So, lets use IS_REACHABLE() to check for CONFIG_DMA_SHARED_BUFFER instead
to avoid adding a dependency to CONFIG_DMA_SHARED_BUFFER.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-31 18:55:50 +02:00
Robert Marko 2fcd673ed3 microchipsw: add 6.18 testing kernel
Add the 6.18 kernel config and allow selecting it as testing kernel.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert Marko 0257e6df33 microchipsw: 6.18: refresh patches
Refresh the patches for 6.18 so they apply.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert Marko 3c49e25cea microchipsw: 6.18: drop upstreamed patches
Drop patches that were upstead into 6.18 or earlier.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert Marko 3ac8490569 kernel/microchipsw: restore files for v6.12
This is an automatically generated commit which aids following Kernel patch
history, as git will see the move and copy as a rename thus defeating the
purpose.

For the original discussion see:
https://lists.openwrt.org/pipermail/openwrt-devel/2023-October/041673.html

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert Marko cf62da3eb1 kernel/microchipsw: create files for v6.18 (from v6.12)
This is an automatically generated commit.

When doing `git bisect`, consider `git bisect --skip`.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert Marko c400fb8305 microchipsw: lan969x: make kernel config version specific
As preparation for enabling 6.18 kernel, rename the existing config to a
version specific 6.12 config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-29 18:07:05 +02:00
Robert MarkoandRobert Marko bb76ac1e4a generic: 6.18: disable CONFIG_ROCKCHIP_ERRATUM_3568002
CONFIG_ROCKCHIP_ERRATUM_3568002 should be disabled in the generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:54:34 +01:00
Robert MarkoandRobert Marko c445cc6c6a generic: 6.18: disable CONFIG_AMPERE_ERRATUM_AC04_CPU_23
CONFIG_AMPERE_ERRATUM_AC04_CPU_23 should be disabled in generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:54:34 +01:00
Robert MarkoandRobert Marko d3bf8ada02 generic: 6.18: disable CONFIG_ARCH_SOPHGO
CONFIG_ARCH_SOPHGO should be disabled in the generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:46:30 +01:00
Robert MarkoandRobert Marko 9934653738 generic: 6.18: disable CONFIG_ARCH_CIX
CONFIG_ARCH_CIX should be disabled in the generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:46:29 +01:00
Robert MarkoandRobert Marko 397e66f181 generic: 6.18: disable CONFIG_ARCH_BLAIZE
CONFIG_ARCH_BLAIZE should be disabled in the generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:46:29 +01:00
Robert MarkoandRobert Marko a08d2beedd generic: 6.18: disable CONFIG_ARCH_AXIADO
CONFIG_ARCH_AXIADO should be disabled in the generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:46:29 +01:00
Robert MarkoandRobert Marko f4a927ab86 generic: 6.18: disable CONFIG_AMD_SBRMI_I2C
CONFIG_AMD_SBRMI_I2C should be disabled in generic config.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 17:46:29 +01:00
Robert MarkoandRobert Marko fa20221a8b microchipsw: tactical-1000: expand FIP partition size
Expand the FIP partition size to future proof and allow custom firmware
to be used as BL31 instead of U-Boot.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-28 12:15:08 +01:00
Robert Marko 0a82d6054c microchipsw: add MTU change support
Add the MTU change support ported from Microchip BSP kernel.
It will be sent upstream as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-24 18:42:52 +01:00
Robert Marko c5455f60ab microchipsw: lan969x: use upstreamed DTS
LAN969x DTS was finally merged upstream, so lets backport the backported
DTS instead of keeping a local copy.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-24 18:04:29 +01:00
Robert Marko 593b448455 microchipsw: lan969x: tactical-1000: describe RS0 pins
Tactical 1000 has per per port RS0 and RS1 pins, however internally they
are tied together.

So, model them as RS0 at least.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-24 17:17:10 +01:00
Robert Marko 55f1f2c1c4 microchipsw: lan969x: tactical-1000: fix SFP I2C buses
SFP I2C buses for ports 1 and 3 were swapped as order changed on production
boards.

So, swap them around to fix SFP 1 and 3 failed to read EEPROM errors.

Fixes: 29b3d929a6 ("microchipsw: lan969x: add Novarq Tactical 1000")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-12 11:05:40 +01:00
Robert Marko b4df523754 microchipsw: backport fix for ets qdisc offload
Backport upstream fix for ets qdisc offloading.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-12 10:09:07 +01:00
Robert Marko 369bb6aa54 microchipsw: tactical-1000: rename ports
Rename the network ports so they match the information printed on the
case.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-03-12 10:09:07 +01:00
Robert MarkoandRobert Marko 7bbe8d560c mvebu: use libdeflate for FitImage
Use libdeflate for faster and better compression in FitImages.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-24 11:47:22 +01:00
Robert Marko f2a532ec09 mvebu: cortex-a53: uDPU/eDPU: cleanup recipe a bit
Reuse Device/FitImage recipe instead of open coding it and
drop duplicate KERNEL_INITRAMFS recipe for eDPU.

While at it, lets clean up the boot script to drop uneeded console
setting, earlycon etc.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-19 11:43:03 +01:00
Robert Marko f03bb44a08 mvebu: move FitImage recipe to generic image Makefile
Move the Device/FitImage recipe to the generic image Makefile to avoid
duplicating it for other subtargets.

Will be used for uDPU/eDPU.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-19 11:43:03 +01:00
Robert Marko ef92265772 mvebu: cortex-a53: respect DEVICE_packages for Methode devices
Use the added support for generating per device targz rootfs so that images
generated for Methode devices when CONFIG_TARGET_MULTI_PROFILE and
CONFIG_TARGET_PER_DEVICE_ROOTFS are set, we actually get the targz rootfs
that respects DEVICE_PACKAGES.

Currently, buildbot generated images have no networking, LM75 nor I2C
working, as the generated images do not include required kmods that are
listed in DEVICE_PACKAGES.

While at it, there is no need for tar to run in verbose mode.

Fixes: 7dff6a8c89 ("mvebu: uDPU: add sysupgrade support")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-09 16:43:30 +01:00
Robert Marko d89cb72c23 image: support generating per device targz rootfs
Currently, for targets that use the CONFIG_TARGET_ROOTFS_TARGZ a single
rootfs tarball is generated for the subtarget based of $(TARGET_DIR).

However, this means that it does not respect DEVICE_PACKAGES like other
rootfs images.

So, lets augment CONFIG_TARGET_ROOTFS_TARGZ by adding a proper targz fstype
so that per device rootfs is generated under lock.

This is required so that devices that use custom sysupgrade archives like
Methode devices, can actually include a per device rootfs so when building
for multiple devices and with CONFIG_TARGET_PER_DEVICE_ROOTFS set the built
image actually includes the listed DEVICE_PACKAGES.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-02-09 16:43:29 +01:00
Robert Marko 3353827fb5 mvebu: cortex-a53: fix Methode eDPU migration to upstream DTS
Migration of the eDPU DTS to upstream one broke the eDPU plus model
since the required ethernet aliases are missing and U-Boot then cannot
find the required ethernet nodes.

So, after sending the required fix upstream, lets apply it in OpenWrt
as well.

Fixes: 9852dda410 ("mvebu: move DTS diff into a patch for Methode uDPU")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-28 10:19:18 +01:00
Robert Marko 51710e9dd4 microchipsw: lan969x: include ip-bridge and dcb tools
Now that DCB is enabled by default, it makes sense to include it on
lan969x.

While we are here, lets include ip-bridge as these devices are switches
and the Busybox applet does not expose enough functionality.

These devices have no space constraints.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-25 22:10:22 +01:00
Robert Marko 4c0c7442db microchipsw: enable DCB by default
Switchdev driver used by microchipsw supports DCB and has not storage
constraints, so enable kernel and driver DCB support by default.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-25 22:10:22 +01:00
Robert Marko 78c98abd30 uboot-microchipsw: add FIP update flashing shortcut
Add env variable to make it easy to flash an FIP update.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-23 11:07:23 +01:00
Robert MarkoandRobert Marko 19e097e18a microchipsw: update DTS with the latest pending upstream
Update the DTS to the latest pending upstream version, it looks like this
should get merged soon upstream.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-23 10:55:29 +01:00
Robert MarkoandRobert Marko b300a9e63d microchipsw: lan969x: use network driver as a module
Due to PTP conflicts with CONFIG_ALL_KMODS which causes the end images
to end up with no switchdev driver included, lets switch to using the
switchdev and PHY drivers as modules instead.

Fixes: 88a404a2d1 ("microchipsw: add support for Microchip LAN969x switches")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-21 16:25:42 +01:00
Robert MarkoandRobert Marko 9a4c6550a7 kernel: modules: package Microchip SparX-5 switchdev driver as a module
Package the Microchip SparX-5 switchdev driver as a module.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-21 16:25:38 +01:00
Robert MarkoandRobert Marko 082fe669f7 boot: arm-trusted-firmware-microchipsw: depend on host Ruby
Microchip ATF depends on Ruby scripts to generate the FWU monitor HTML
and more, so make sure that host Ruby is available.

We also need to call the scripts directly via Ruby executable as shebang
wont work due to lack of Ruby in the Buildbot container.

Fixes: 5205c0c426 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-12 18:01:17 +01:00
Robert MarkoandRobert Marko 410277ca12 boot: arm-trusted-firmware-microchipsw: fix compilation against LibreSSL
LibreSSL 3.9+ has dropped support for X509V3 extension API so cert_create
tool does not compile against it at all.

This was hidden by the fact that it was compiling against OpenSSL on my
host which still has that API, however we do not ship libssl-dev in the
Buildbot containers so compiling against distro OpenSSL is not possible.

So, after a long time trying to find any docs on that API I resorted to
LLM(Gemini 3 Pro) to get it to compile.

Our libcrypto is linked against pthread so we must pass -lpthread as well
for cert_tool.

Fixes: 5205c0c426 ("microchipsw: lan969x: add Microchip EV23X71A")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-12 18:01:11 +01:00
Robert MarkoandRobert Marko 66e6ebbc1e microchipsw: drop source-only
Now that there is a consumer board available, lets drop source-only so that
buildbots provide official images.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:53:32 +01:00
Robert Marko 29b3d929a6 microchipsw: lan969x: add Novarq Tactical 1000
Novarq Tactical 1000 is a LAN9696 based switch.

Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 2GB DDR4
* Storage:
	* 32MB QSPI NOR
	* 16GB eMMC
* Networking:
	* 24 x 10/100/1000 RJ45 via LAN8804 Quad PHY-s over QSGMII
	* 4 x 100/1000/2500/5000/10000 SFP+ ports
	* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
	* UART @ 115200 baud (Default), 921600 possible
	* GPIO-s for bootstrap and reset
* LED-s:
	* 2 per networking port (Green and Yellow)
	* Green status LED
* Soft reset GPIO
* Power: 12V DC barrel jack
* External PoE:
	* Option for PoE add-on
* Temperature Sensors:
	* TMP1075 onboard
	* CPU temperature
* Microchip MCP79402 RTC with battery back-up
* Microchip ATECC608C secure peripheral
* CPU heatsink with PWM fan
* Onboard header for case fan

Installation instructions:

1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img.gz

6. Wipe eMMC with:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M

7. Flash OpenWrt eMMC image with:
dd if=/tmp/openwrt-microchipsw-lan969x-novarq_tactical-1000-squashfs-emmc-gpt.img
of=/dev/mmcblk0

After a restart OpenWrt will boot, and then regular sysupgrade can be used
for upgrades.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Robert Marko 7b7a559976 microchipsw: use upstreamed patches
Replace some of the pending patches with the upstreamed versions and mark
them accordingly.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Robert Marko 6e0379deb9 boot: arm-trusted-firmware-microchipsw: update to latest
Update microchipsw TF-A to the latest bugfix release that fixes
SHA checksum validation if large files are uploaded via the monitor mode.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Robert Marko 6944f1c6a0 microchipsw: use latest DTS
Use the latest v3 that is sent upstream, it now uses a DTS header for clock
indices.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-01-09 18:50:23 +01:00
Robert MarkoandRobert Marko bce8432bbd microchipsw: sync with DTS sent upstream
Sync the DTS with the version sent upstream, clock bindings also.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-12-24 10:57:17 +01:00
Robert Marko 5205c0c426 microchipsw: lan969x: add Microchip EV23X71A
Microchip EV23X71A is a LAN9696 based EVB.

Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 1GB DDR4
* Storage:
	* 2MB QSPI NOR
	* 4GB eMMC
* Networking:
	* 24 x 10/100/1000 RJ45 via LAN8814 Quad PHY-s over QSGMII
	* 4 x 100/1000/2500/5000/10000 SFP+ ports
	* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
	* UART @ 115200 baud
	* GPIO-s for bootstrap, reset and clock selection
* DIP switch for boostrap configuration
* LED-s:
	* 2 per networking port (Green and Yellow)
	* Green status LED
	* Yellow reset LED
* Hard reset button
* Power:
	* 12V DC barrel jack
	* 48/56V DC screw terminal
	* Selectable via toggle switch
* PTP support:
	* Sync-E DPLL ZL30732B to generate the board required clocks
	* Two SMAs for PTP and two for Station clock inputs and outputs
	* Two ITU-T G.8275-compliant RS-422 interfaces for PTP applications
* External PoE:
	* Option for PoE add-on, like EV14Y36A (IEEE 802.3af/at/bt Type 4
	standard com-pliant)
* Option for external CPU control via SPI and PCIe

Installation instructions:

1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz

And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz

6. Wipe eMMC with:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M

7. Flash OpenWrt eMMC image with:
dd if=/tmp/openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img
of=/dev/mmcblk0

After a restart OpenWrt will boot, and then regular sysupgrade can be used
for upgrades.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-12-03 12:13:17 +01:00
Robert Marko 88a404a2d1 microchipsw: add support for Microchip LAN969x switches
Add a new microchipsw target aimed add supporting Microchip switch
SoC-s.

Start by supporting LAN969x SoC-s as the first subtarget.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-12-03 12:13:17 +01:00
Robert MarkoandTianling Shen fb8a72921c mhz: update to latest version
Update mhz to latest version to include new calibration features.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-10-23 15:42:15 +08:00
Robert MarkoandRobert Marko 7f08a9c1db kernel: modules: add PWM GPIO module
Package the generic kernel PWM GPIO driver as module to avoid the need
to build it into the kernel.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://github.com/openwrt/openwrt/pull/20160
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-09-25 21:53:54 +02:00
Robert Marko dfacae3049 mvebu: armada37xx: add pending PXA I2C recovery fix
Import pending PXA I2C recovery fixes so that if I2C recovery is enabled in
the DTS it does not completely break I2C as it currently does since kernel
6.6.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-05-20 20:54:48 +02:00
Robert Marko 831994e258 mvebu: armada37xx: backport pinctrl fixes
Backport upstream pinctrl fixes, these are required for the follow-up I2C
PXA recovery fixes.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-05-20 20:54:47 +02:00
Robert Marko fe37574be6 libpcap: add missing PKG_CONFIG_DEPENDS entries
Currently, enabling USB, BT or Netfilter support after initial compilation
will not trigger a rebuild, so add the missing PKG_CONFIG_DEPENDS so
that rebuild gets triggered.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2025-02-27 12:39:16 +01:00
Robert MarkoandRobert Marko ff5f77ecdd iproute2: update to 6.12.0
Release Notes:
https://lore.kernel.org/netdev/20241119092743.6a1bdcb7@hermes.local/T/

Allows us to drop 2 upstreamed patches:
package/network/utils/iproute2/patches/010-bridge-mst-fix-a-musl-build-issue.patch
package/network/utils/iproute2/patches/011-bridge-mst-fix-a-further-musl-build-issue.patch

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://github.com/openwrt/openwrt/pull/17206
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-12-10 11:40:57 +01:00
Robert Marko c3251f5d52 kernel: netdevices: add RmNet MAP support
RmNet driver provides a transport agnostic MAP (multiplexing and
aggregation protocol) support in embedded module. Module provides
virtual network devices which can be attached to any IP-mode
physical device.

This is commonly used on Qualcomm based modems for data aggregation.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-10-09 21:21:57 +02:00
Robert Marko 2b443497c2 mediatek: EAP111: add label-mac-device
Add the label-mac-device alias so that label MAC is set and can later
be used in userspace.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-08-10 18:00:14 +02:00
Robert Marko 70088a7e4c mvebu: uDPU/eDPU: mount F2FS with ZSTD compression
Now that we can pass the desired compression via cmdline, pass ZSTD as the
desired compression algorithm for F2FS.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-06-17 20:16:20 +02:00
Robert Marko 149a1ab273 mvebu: uDPU/eDPU: mount misc partition with ZSTD compression
F2FS requires the compression algorith to be passed as argument while
mounting, so lets do so for the misc partition.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-06-17 20:16:20 +02:00
Robert Marko 23191b4075 mvebu: uDPU/eDPU: format F2FS partitons with compression support
In order to prolong the eMMC life and utilize ZSTD compression on Methode
devices, we must format the F2FS rootfs and misc partition with xattr and
compression support feature flags first.

This will only happen if partitions are broken currently, but later
commits will add support to convert existing boards to use compression.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-06-17 20:16:20 +02:00
Robert Marko 793b925f8b mvebu: cortexa53: include mkfs.f2fs and fdisk for sysupgrade
Methode devices require mkfs.f2fs in order to format rootfs and misc
partitions if they have not already been formatted.
fdisk is required if partition table got broke so it can be regenerated.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-06-17 20:16:19 +02:00
Robert Marko ae358b8489 mvebu: cortexa53: enable F2FS ZSTD compression support
We would love to utilize ZSTD compression support in F2FS on the
Methode euroDPU so lets enable the required kernel support.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-06-17 20:16:19 +02:00
Robert Marko 5c833329ce arm-trusted-firmware-mvebu: refresh cryptopp hash
Well, it seems that cryptopp hash was never refreshed since calling
make package/boot/arm-trusted-firmware-mvebu/check FIXUP=1 V=s does not
actually refresh the download calls hashes so refresh it manually.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-04-29 13:02:23 +02:00
Robert Marko e909746665 arm-trusted-firmware-mvebu: use SOURCE_VERSION instead of VERSION
Since ("download: don't overwrite VERSION variable") trying to download the
required sources for mvebu ATF will fail with:
Makefile:247: *** Download/mox-boot-builder is missing the SOURCE_VERSION field..  Stop.

This also broke the buildbot mvebu/cortex-a53 builds.

So, fix it by switching to SOURCE_VERSION instead.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-04-29 12:05:45 +02:00
Robert Marko 040af127e7 uboot-mvebu: update to version 2024.04
Lets update to 2024.04 in order to drop all of the patches as they have
been merged upstream.

Tested on Methode eDPU.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-04-19 10:50:55 +02:00
Robert Marko 923d7c5531 mediatek: filogic: add support for Edgecore EAP111
HW specifications:
* Mediatek MT7981A
* 256MB SPI-NAND
* 512MB DRAM
* Uplink: 1 x 10/100/1000Base-T Ethernet, Auto MDIX, RJ-45 with 802.3at
PoE (Built-in GBe PHY)
* LAN: 1 x 10/100/1000Base-T Ethernet, Auto MDIX, RJ-45 (Airoha EN8801SC)
* 1 Tricolor LED
* Reset button
* 12V/2.0A DC input

Installation:
Board comes with OpenWifi/TIP which is OpenWrt based, so sysupgrade can
be used directly over SSH.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-04-11 13:25:11 +02:00
Robert Marko 2dba4308d1 mediatek: add Airoha EN8801SC PHY driver
Airoha EN8801SC PHY is a gigabit PHY used on Edgecore EAP111 so, include
the MTK driver with some cleanups.

Unfortunatelly, there is no specification sheet nor datasheet available
in order to demistify the magic PBUS writes and work on upstreaming
this driver.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-04-11 13:10:15 +02:00
Robert MarkoandHauke Mehrtens 5dae4a6aba ipq40xx: refresh patches
CI reported that ipq40xx needed a refresh, so lets refresh it.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-11-25 00:12:01 +01:00
Robert MarkoandHauke Mehrtens f74f5b2994 mvebu: fix PXA I2C bus with recovery
Since kernel 5.11, the PXA I2C driver has been converted to generic I2C
recovery, which makes the I2C bus completely lock up if recovery pinctrl
is present in the DT and I2C recovery is enabled.

This effectively completely broke I2C on Methode uDPU and eDPU boards
as both of them rely on I2C recovery.

After a discussion upstream, it was concluded that there is no simple fix
and that the blamed upstream commit:
0b01392c18b9993a584f36ace1d61118772ad0ca ("i2c: pxa: move to generic GPIO
recovery") should be reverted.
I have sent the revert upstream, it should be merged soon so lets "fix"
OpenWrt as well.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-11-12 14:28:21 +01:00
Robert Marko d6ac365e42 mvebu: eDPU: add support for version with external switch
New revision of eDPU uses an Marvell MV88E6361 switch to connect the SFP
cage and G.hn IC instead of connecting them directly to the ethernet
controllers.

The same image can be used on both versions as U-Boot will enable the
switch node and disable the unused ethernet controller.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-09-19 12:12:17 +02:00
Robert Marko 2bb418299d uboot-mvebu: eDPU: add support for version with external switch
New revision of eDPU uses an Marvell MV88E6361 switch to connect the SFP
cage and G.hn IC instead of connecting them directly to the ethernet
controllers.

In order to use the same image for both boards, U-Boot is responsible for
detecting the revision and enabling/disabling DTS nodes.
So, to make it easy for users, lets add the pending U-Boot patches to build
in OpenWrt.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-09-19 12:12:17 +02:00
Robert Marko 0b6d62c50b generic: 6.1: backport support for Marvell 88E6361 switch
New revision of Methode eDPU boards uses Marvell 88E6361 switch, so lets
backport it from kernel 6.5.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-09-19 12:12:17 +02:00
Robert Marko 39227de5e5 generic: 5.15: backport support for Marvell 88E6361 switch
New revision of Methode eDPU boards uses Marvell 88E6361 switch, so lets
backport it from kernel 6.5.

Since 5.15 doesnt have phylink_get_caps I had to modify the backport to
use the old mv88e6393x_phylink_validate instead.
I had to fixup one more instance of port_max_speed_mode as well that is not
present in 6.5.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-09-19 12:12:17 +02:00
Robert MarkoandHauke Mehrtens 67dacdd652 arm-trusted-firmware-mvebu: bump to v2.9
We are using the outdated 2.7 TF-A, so lets update to current v2.9 version.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens f6ca36df84 arm-trusted-firmware-mvebu: update CM3 GCC to 12.3rel1
We are using the outdated 11.2 GCC for CM3, lets update to the current
12.3rel1 version from ARM [1].

[1] https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens 84e9d49452 arm-trusted-firmware-mvebu: bump cryptopp to version 8.8
We are using the outdated Crypto++ version 8.5, so lets update to the
current version 8.8.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens ef82e26d35 arm-trusted-firmware-mvebu: bump mox-boot-builder to current version
We have to move to use git clone as there are no newer tagged releases.

Changes:
604f8f5 Default CROSS_CM3 to arm-none-eabi- instead of armv7m-softfloat-eabi-
b9b9419 Tidy up license information
0290b2c wtmi: Fix typo
a10b8e9 Makefile: fix a53-firmware.bin generation (maximum size is not optimal)
f654082 wtmi: Add const qualifier to isr_vector
4a43a3b wtmi: Improve detection of ESPRESSObin boards with Topaz
189e629 wtmi: Improve detection of boards with insufficient MDIO pull-up
3dac4fe wtmi: Fix detection of Armada 3720 Devel Board
3ca4dfa Bump mox-imager commit

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens ff671d318c arm-trusted-firmware-mvebu: bump mv-ddr-marvell to current version
Changes:
1de442d Convert floating point operations to integer operations
ce6770d Modify mv_ddr4_calibration_validate function body to match function header

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens ebbcfd095d arm-trusted-firmware-mvebu: bump a3700-utils to current version
Changes:
a3e1c67 wtmi: Fix linker output sections
f65e3bf wtmi: Remove usage of non-existant string.h file and memcpy() function

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-26 00:11:48 +02:00
Robert MarkoandHauke Mehrtens 96727397ef uboot-envtools: fix parallel building
Recent envtools update to 2023.07.02 has introduced a breakage when trying
to parallel build with the following error:
/bin/sh: line 1: scripts/basic/fixdep: No such file or directory

Luckily it can easily be reproduced locally via a simple script so it was
not hard to bisect it down to upstream commit [1].

However, its not that commits fault, it just uncovered an issue with the
way we have been building envtools for a long time, maybe even from the
package introduction.

The issue is that we are trying to build envtools as one of the U-Boot
no-dot-config-targets but envtools was newer a valid target for it but
since we were creating the config headers that were not actually used it
was actually building all this time.

Since the blamed commit [1] a tool called printinitialenv is built and
now a proper config is actually required in order for prerequisites to
get built properly.

So, in order to properly fix this (Hopefully for good) lets stop pretending
that envtools are a valid no-dot-config-targets target and use the
tools-only defconfig which is meant exactly for just building the tools.
This will make a minimal config for the U-Boot sandbox target and then
envtools will build just fine in parallel mode (I tested with 32 threads).
We do hovewer need to override the ARCH passed by OpenWrt and set it to
sandbox as otherwise U-Boot will not find the required headers because the
ARCH is being overriden to an incorrect one.

[1] https://source.denx.de/u-boot/u-boot/-/commit/40b77f2a3ac13a7547c1b7c9c51a4090869de8f4

Fixes: 9db0330052 ("uboot-envtools: update to 2023.07.02")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-08-25 23:38:11 +02:00
Robert MarkoandHauke Mehrtens 39b2251cd9 treewide: remove CONFIG_FRAME_WARN from kernel configs
CONFIG_FRAME_WARN is set dynamically, so there is no need for it to be set
in target kernel configs, so lets remove it from all configs.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2023-07-01 11:53:21 +02:00