Remove patches related to some ancient cache aliasing bugs that were fixed in earlier versions and are no longer relevant to us.
Co-authored-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com> Link: https://github.com/openwrt/openwrt/pull/15635 Signed-off-by: Robert Marko <robimarko@gmail.com>
Shiji Yang [Thu, 4 Jul 2024 10:35:50 +0000 (18:35 +0800)]
generic: gpio: fix broken GPIO for big endian CPUs
Align the "bgpio_bits" with the data bus width.
Fixes: https://github.com/openwrt/openwrt/issues/15739 Signed-off-by: Shiji Yang <yangshiji66@qq.com> Suggested-By: Mark Mentovai <mark@mentovai.com> Tested-by: Lóránd Horváth <lorand.horvath82@gmail.com> Link: https://github.com/openwrt/openwrt/pull/15784 Signed-off-by: Robert Marko <robimarko@gmail.com>
Shiji Yang [Thu, 4 Jul 2024 10:35:50 +0000 (18:35 +0800)]
ath79: suppress GPIO static base allocation warning
Silence ath79 GPIO driver warning by setting GPIO numberspace base
dynamically. This patch also reorganize and fix the GPIO numbers on
6.6 kernel. The new gpio chip base number algorithm:
gpiochip ath79-SOC ath9k-0 ath9k-1
base 512 512+ngpios 512+ngpios+10
Shiji Yang [Thu, 4 Jul 2024 10:35:50 +0000 (18:35 +0800)]
ath79: fix 5GHz External Antenna A GPIO for BSAP-1840
Each ath9k device only has 10 gpios. ath9k-0 gpio number range is
502-511, and ath9k-1 gpio number range is 492-501. So "5GHz External
Antenna A" gpio line number should be 492 instead of 489.
Rodrigo Balerdi [Sun, 30 Jun 2024 22:45:43 +0000 (19:45 -0300)]
ipq40xx: add BDFs for Linksys WHW03 V1
BDFs come from latest firmware, version 1.1.19.209880 (2022-06-20):
- /lib/firmware/IPQ4019/v1/FCC/boardData_1_0_IPQ4019_DK04_2G.bin
- /lib/firmware/IPQ4019/v1/FCC/boardData_1_0_IPQ4019_DK04_5G.bin
- /lib/firmware/QCA9888/v1/FCC/boardData_2_0_QCA9888_5G_Y9690_SBS_HB.bin
As reported in https://github.com/openwrt/openwrt/issues/15834 using the PWR
LED for indicating diag status is confusing since this is usually used for
power supply failures on RPi devices.
This commit uses ACT LED for diag status and restores it to mmc activity.
Hauke Mehrtens [Sat, 29 Jun 2024 15:54:49 +0000 (17:54 +0200)]
kernel: Fix kmod-lib-lz4 packaging
The kernel provides two variants of the lz4 compression a normal version
and a high compression mode version. The old kmod-lib-lz4 package
contained the normal version plus one part of the lz4hc version. There
was already code which selected the kmod-lib-lz4hc package which did
not exists.
I split this into 3 packages. kmod-lib-lz4 and kmod-lib-lz4hc for the
normal the and high compression algorithm which contain the specific
code and the kmod-lib-lz4-decompress which contains the common
decompressor.
Hauke Mehrtens [Sat, 29 Jun 2024 15:24:09 +0000 (17:24 +0200)]
kernel: Extract kmod-nf-dup-inet
The nf_dup_ipv4.ko and nf_dup_ipv6.ko kernel module were packaged by
kmod-ipt-tee and kmod-nft-dup-inet at the same time. Extract them into a
separate package used by both.
Michael Pratt [Wed, 3 Jul 2024 07:15:46 +0000 (03:15 -0400)]
build: fix missing SOURCE_VERSION variable
The recipe Download/git-kernel uses DownloadMethod/git
which now requires a definition of SOURCE_VERSION instead of VERSION
due to Validate/git being used to check for the variables.
Rename the variable as intended to match with the others
that were renamed in the referenced commit.
This fixes the following Makefile parse error
when downloading a specific kernel repository version
when configured with the CONFIG_KERNEL_GIT_CLONE_URI option:
Makefile:19: *** Download/git-kernel is missing the SOURCE_VERSION field.. Stop.
Fixes: 9fc79e2e2 ("download: don't overwrite VERSION variable") Signed-off-by: Michael Pratt <mcpratt@pm.me> Link: https://github.com/openwrt/openwrt/pull/15858 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Lu jicong [Tue, 2 Jul 2024 13:01:49 +0000 (21:01 +0800)]
target.mk: fix arm architecture level detection
Now kernel configs of armv6k CPUs don't include CONFIG_CPU_V6.
So armv6k CPUs cannot be detected as arm_v6.
Fix this by adding detection for CONFIG_CPU_V6K.
Robert Marko [Tue, 2 Jul 2024 09:14:17 +0000 (11:14 +0200)]
tools/e2fsprogs: fixup STAGING_DIR_HOST path evaluation in shell scripts
We have to use curly braces on the exported STAGING_DIR_HOST env variable,
instead of evaluating it directly as we are not in Make but a separate
shell script.
Otherwise it would fail with:
staging_dir/host/bin/compile_et: line 6: STAGING_DIR_HOST: command not found
staging_dir/host/bin/mk_cmds: line 5: STAGING_DIR_HOST: command not found
And so when krb5 tries to build it will fail as compile_et and mk_cmds will
return an error.
Daniel Golle [Mon, 1 Jul 2024 19:37:58 +0000 (20:37 +0100)]
generic: 6.6: net: ethernet: mediatek: Allow gaps in MAC allocation
Some devices with MediaTek SoCs don't use the first but only the second
MAC in the chip. Especially with MT7981 which got a built-in 1GE PHY
connected to the second MAC this is quite common.
Make sure to reset and enable PSE also in those cases by skipping gaps
using 'continue' instead of aborting the loop using 'break'.
Fixes: 75081235b8 ("generic: 6.6: (re-)add support multiple PPE to mtk_eth_soc") Reported-by: Daniel Suchy <danny@danysek.cz> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Hauke Mehrtens [Wed, 26 Jun 2024 22:12:43 +0000 (00:12 +0200)]
pistachio: Fix setting mtd name
The bootloader provides the partition table using the boot arguments
and uses the name spi-nor and spi-nand for the different controllers.
The old code was not setting the name any more because mtd->name was
already set before. Move the setting of the name to the spi-mem code
now.
Hauke Mehrtens [Tue, 28 May 2024 21:07:43 +0000 (23:07 +0200)]
kernel/pistachio: Restore kernel files for v6.1
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
Hauke Mehrtens [Sun, 26 May 2024 11:47:33 +0000 (13:47 +0200)]
kernel: bump 5.15 to 5.15.159
Removed because they are upstream:
generic/pending-5.15/778-net-l2tp-drop-flow-hash-on-forward.patch
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.15.y&id=e97e0051056b6dbcc43ae1862dcfcb05d06517c3
David Bauer [Thu, 27 Jun 2024 20:58:56 +0000 (22:58 +0200)]
hostapd: don't ignore probe-requests with invalid DSSS params
Don't ignore probe requests which contain an invalid DS parameter for the
current operating channel.
As the comment outlines, the drop shall only apply if
dot11RadioMeasurementActivated is set to 1.
However, it was observed Linux clients (Debian 12 / NixOS 23.11)
with an Intel 8265 NIC may generate a probe request frame with
dot11RadioMeasurementActivated set to false and an invalid DSSS
parameter.
These were also dropped even though they should not have been. They
however should not have contained this parameter in the first place.
Don't drop Probe Requests which contain such an invalid field. This may
lead to more probe responses being sent, however it does fix very
frequent connection issues for these clients on 2.4 GHz.
Paul Spooren [Tue, 18 Jun 2024 09:56:10 +0000 (11:56 +0200)]
malta: enable VM targets again
These targets are interesting for automated testing. The currently
available targets are from 2017 and either we should enable them again
or delete the remaining files on the download servers.
Rosen Penev [Sun, 30 Jun 2024 16:08:40 +0000 (09:08 -0700)]
tools/e2fsprogs: fix shell scripts under SDK
7c32295b0036be425ba0cd527eb06316a87d0ec0 exposed a problem where the SDK
builds these shell scripts with a nonsensical absolute path for the DIR
variable. Use sed to patch in $STAGING_DIR_HOST.
Also remove PKG_RELEASE as that is nonsensical for tools.
Robert Marko [Sun, 30 Jun 2024 09:08:16 +0000 (11:08 +0200)]
ipq40xx: habanero-dvk: fix LAN MAC adresses
Currently, only the WAN MAC is being populated on Habanero DVK, and that is
happening via the ethernet1 alias so U-Boot does it, previously ethernet0
was implicitly added in the SoC DTSI so it would populate the LAN MAC-s but
it was dropped(rightly so) so now LAN MAC-s and the GMAC one are random.
So, lets simply switch to using NVMEM to assign the proper MAC adresses.
John Thomson [Sat, 29 Jun 2024 22:45:47 +0000 (08:45 +1000)]
ipq40xx: ipqess: do not free ipqess_init
If this function is marked as __init, kernel will splat when driver is
(re)bind
echo "c080000.ethernet">/sys/bus/platform/drivers/ipqess-edma/unbind
echo "c080000.ethernet">/sys/bus/platform/drivers/ipqess-edma/bind
John Thomson [Fri, 28 Jun 2024 06:15:54 +0000 (16:15 +1000)]
ipq40xx: ipqess: pass up ethdev_addr probe defer
Notify via dev_info when a random MAC address is set.
of_get_ethdev_address can return -EPROBE_DEFER for NVMEM devices,
return this up, so that ipqess can defer as well.
Also move this MAC assignment from _init into _probe, so that this defer
can happen earlier.
Before change, with MAC address allocated from a built-in NVMEM layout
driver (mikrotik,routerboot-nvmem) with extra of_get_ethdev_address
result and random MAC printfs:
[ 1.197571] ipqess-edma c080000.ethernet: ipqess_init of_get_ethdev_address ret:-517, of_node: /soc/ethernet@c080000
[ 1.197690] ipqess-edma c080000.ethernet: generated random MAC address 22:e7:36:e0:e4:a3
[ 1.614444] ipqess-edma c080000.ethernet eth0: entered promiscuous mode
[ 5.055929] ipqess-edma c080000.ethernet eth0: configuring for fixed/internal link mode
after change:
[ 1.173776] ipqess-edma c080000.ethernet: of_get_ethdev_address: -517
[ 1.614607] ipqess-edma c080000.ethernet eth0: entered promiscuous mode
[ 5.246105] ipqess-edma c080000.ethernet eth0: configuring for fixed/internal link mode
[ 5.260754] ipqess-edma c080000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
with extra __func__ printf to show _probe and _init:
[ 1.173685] ipqess-edma c080000.ethernet: ipqess_axi_probe
[ 1.173784] ipqess-edma c080000.ethernet: of_get_ethdev_address: -517
[ 1.280347] ipqess-edma c080000.ethernet: ipqess_axi_probe
[ 1.304844] ipqess-edma c080000.ethernet: ipqess_init
[ 1.614664] ipqess-edma c080000.ethernet eth0: entered promiscuous mode
Shiji Yang [Fri, 21 Jun 2024 13:56:23 +0000 (13:56 +0000)]
kernel: mtd: ubi: avoid attaching "linux,ubi" mtd again
"linux,ubi" compatible MTD device can be automatically attached early
since commit fc153aa8d94f. Therefore, there is no need to attach MTD
devices named "ubi" or "data" again.
Bryan Berg [Sat, 18 May 2024 23:29:28 +0000 (16:29 -0700)]
ipq806x: ap3935: Use rgmii-id mode for LAN1
Fix issue with LAN1 interface on ap3935 devices, where the LAN
1interface won't come up after boot unless the bootloader has
initialized the network stack. Use of `fixed-link` in the prior code
kept the driver from clobbering PHY settings, but now that the driver
supports rgmii-id phy-mode, we can just use that.
Michael Pratt [Tue, 25 Jun 2024 06:30:22 +0000 (02:30 -0400)]
tools/coreutils: remove 64-bit time disable flag
This was added to support building coreutils on host systems
that still only have 32-bit time support.
Because other tools now also require the flag for building
with 32-bit time when support for 64-bit time is not present,
this flag is now added to all host builds
on a variable basis using the same test before building,
so it can now be removed from specific tools.
Michael Pratt [Tue, 25 Jun 2024 05:48:45 +0000 (01:48 -0400)]
build: add test for 64-bit time support
Several GNU tools such as tar, coreutils, and findutils
now build with support for 64-bit time by default
and otherwise require reconfiguring with a flag
--disable-year2038 in order to build without 64-bit time.
Some standard C libraries, for example,
certain older versions of glibc such as 2.31
have large file support but not long time bits support:
checking for ... option to enable large file support... -D_FILE_OFFSET_BITS=64
checking for ... option for timestamps after 2038... support not detected
This test using C code taken from largefile.m4 in gnulib
uses math and casting to check for overflow
with a macro and array pair that can only be defined
when 64-bit time support is present, and otherwise errors.
It is the exact same code used to test for 64-bit time
during the configure stage of building these tools,
so the results of this test before configure takes place
will always be in concordance with the results of
the test that takes place during the configure script.
Based on the test, the configure flag --disable-year2038
is added to every host tool build depending on the host system.
When the year 2038 problem finally comes around,
the effect of the test can be converted
from the toggling of a configure option into a build prerequisite,
requiring it to pass in order to continue building.
Hang Zhou [Wed, 20 Mar 2024 15:23:46 +0000 (02:23 +1100)]
bmips: add support for Sagem F@ST3864OP
Specifications:
* SoC: BCM63168
* RAM: NT5CC64M16GP-DI, DDR3 128MiB
* NAND: W29N01HVSINA, 128MiB
* Ethernet: 4x1000M LAN, 1x 1000M WAN
* Serial interface: on board but not populated, 3.3V, 115200, 8N1
Notes:
* Use DSA for VLAN and switches
* Ethernet ports and USB works
* gpio-leds are not working
* WLAN, xDSL, and FXS are not going to work
Signed-off-by: Hang Zhou <929513338@qq.com>
[refactor, reorder, drop unneeded or not working stuff] Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Robert Marko [Tue, 25 Jun 2024 15:53:11 +0000 (17:53 +0200)]
tools: mtd-utils: use libuuid provided by util-linux
Now that util-linux is building libuuid we can simply use that instead
of manually pointing to e2fsprogs libuuid so we can disable building
libuuid in e2fsprogs.
Robert Marko [Tue, 25 Jun 2024 17:45:12 +0000 (19:45 +0200)]
tools: e2fsprogs: use standard make uninstall
There is no need to manually only remove 2 binaries during cleanup and
leave rest of the e2fsprogs installed stuff untouched, so instead use
make uninstall to do the cleanup.
Robert Marko [Tue, 25 Jun 2024 15:49:43 +0000 (17:49 +0200)]
tools: util-linux: use standard make install/uninstall
Instead of manually installing the binaries and removing them, we can now
simply rely on standard make install/uninstall as we are only building
tools we want to use.
This will be especially important when we start building libraries in
util-linux.
mtd-utils are currently depending on zlib, however it is not expressed
as a dependency and it is somehow being only pulled-in by lincurses-devel
so mtd-utils were able to compile.
Since 2.2.0 zlib is optional so lets disable support for it like for other
compressors since we dont package the mkfs.ubifs or mkfs.jffs2 that
are only users of compressors anyway.
Daniel Golle [Tue, 25 Jun 2024 19:40:59 +0000 (20:40 +0100)]
ramips: yuncore_g720: fix buttons
Turns out the device got two buttons, while the currently listed on is
actually WPS, and the other (will hidden) button is intended as RESET.
Update DT accordingly.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Robert Marko [Sun, 23 Jun 2024 21:52:45 +0000 (23:52 +0200)]
tools: mtd-utils: fix disabling tests
Passing --disable-tests does not do anything since upstream commit [0]
("Fix test binary installation") as that commit removed it since there is
already and existing --without-tests compile option to not compile
the tests at all as --disable-tests was just disabling their installation.
So, lets just pass --without-tests instead to disable test compilation.
Manually refresh the portability and JFFS2 LZMA patches.
Since mtd-utils have converted most of the JFFS2 compressors to be compile
time configurable and manual refreshing of JFFS2 LZMA was needed I also
converted it to a compile time option and enabled the new --with-lzma
option.
generic: 6.6: replace Aquantia pending LEDs patch with upstream version
Replace Aquantia pending LEDs patch with upstream version.
Sadly net maintainers didn't like integrated solution hence we still
need to handle LED restore on reset with custom solution.
qualcommax: fix RAX120v2 PWM Fan controller wrong definition
Fix RAX120v2 PWM Fan controller wrong definition by using a non-existant
kmod and using the wrong compatible for it enabling an external clock
while actually the device use an internal one.
generic: 6.6: backport patch for G671 PWM Fan controller support
Backport patch for G761 PWM Fan controller support. This is used by
an ipq807x RAX120v2 and have an internal clock that was currently
unconfigured making the device not working.
Sergey Filippov [Sat, 15 Jun 2024 19:36:43 +0000 (21:36 +0200)]
ipq806x: add support for Linksys e8350-v1
AC2400 Dual-Band Gigabit Wi-Fi Router base on ipq8064.
https://www.linksys.com/support-product?sku=E8350
Specification:
- Qualcomm dual-core IPQ8064 @ 1.4 GHz
- 512 MB of RAM
- 4 MB of SPI NOR MX25U3235F
- 128 MB of NAND S34MS01G2
- Qualcomm QCA9880 2.4GHz 802.11bgn
- Quantenna QSR1000 5GHz 802.11ac (no support)
- 4 x 10/100/1000 Mbit/s w/ vlan support Ethernet
- Qualcomm Atheros QCA8337 switch
- 1 x 3.0 + 1 x 2.0 (combo with eSata port)
- 115200, 8N1 internal serial console
- Power, Reset, WPS and WLAN buttons
- Power, WPS and WLAN leds
- 12 VDC, 3 A power
Installation:
The installation must be done using web interface of the router.
To achive this new firmware-utils tool was added to set correct
magic headers for the factory images.
Installation from vendor firmware:
1. Flash over the native Linksys WEB interface using factory image.
Installation using recovery mode:
1. Power off the device and disconnect the WAN port.
(Only LAN port to be connected)
2. Press & hold the "Reset" button
3. Power on the device & wait 10 seconds with pressed "Reset" button
4. Set IP Internet Protocol on your PC from
192.168.1.0/24 network (Router is on IP 192.168.1.1)
5. Open the Firmware Recovery page in your browser:
http://192.168.1.1/index.shtml
Firmware Recovery -> File Name -> Recovery & Reboot
The device page in inbox:
https://openwrt.org/inbox/toh/linksys/linksys_ea8350_1
Backport upstream fix for incorrect ifdeffery and dependency of CONFIG_KEXEC,
which causes compilation errors with the following symbols:
CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
CONFIG_CRASH_DUMP=y
Konstantin Demin [Wed, 19 Jun 2024 16:43:51 +0000 (19:43 +0300)]
tools/llvm: update to 18.1.7
- release notes:
- https://discourse.llvm.org/t/llvm-16-0-0-release/69326
- https://discourse.llvm.org/t/llvm-17-0-1-released/73549
- https://discourse.llvm.org/t/llvm-18-1-0-released/77448
- https://discourse.llvm.org/t/llvm-18-1-1-released/77540
- https://discourse.llvm.org/t/18-1-2-released/77821
- https://discourse.llvm.org/t/18-1-3-released/78136
- https://discourse.llvm.org/t/18-1-4-released/78430
- https://discourse.llvm.org/t/18-1-5-released/78740
- https://discourse.llvm.org/t/18-1-6-released/79068
- https://discourse.llvm.org/t/18-1-7-released/79433
- remove PKG_RELEASE (irrelevant to tools)
- set default target/triplet to "bpf"
- rearrange configuration options
- better control feature support and improve build reproducibility:
disable auxiliary features that are enabled implicitly - their
support is detected at build-time
Robert Marko [Wed, 9 Feb 2022 07:45:47 +0000 (09:45 +0200)]
mvebu: add support for RB5009UG+S+IN
This patch adds support for Mikrotik RB5009UG+S+IN.
Specifications:
- SoC: Marvell Armada 7040 (88F7040) - 4 cores, ARMv8 Cortex-A72, 1.4GHz, 64bit
- RAM: 1024MB DDR4
- Flash: 16MB SPI NOR flash, 1024MB NAND
- Ethernet:
* Marvell 88E6393X - Amethyst:
* one 2.5G RJ45 port via Qualcomm QCA8081 PHY
* seven 1G RJ45 ports via built-in PHY-s
* one 10G SFP+ cage
* All ports share the same 10G switch uplink to the CPU
- LED: User, SFP, Hdr1, Hdr2
- Buttons: Reset
- UART: 115200 8n1 on the MikroTik 16 pin header
- USB: One USB3 port
- Power: 24-57 V via
* DC jack
* 802.3af/at PoE on Ethernet 1
* 2-pin terminal on the side
Do note that the default RouterBoot has disabled UART even when the
required hard-config bit is set to indicate UART support.
Patched RouterBoot must be used if UART is desired.
Also, since ARM64 Linux support does not support in any way appending the
DTB to the kernel image we use mainline U-Boot with added RB5009 support
in order to boot OpenWrt.
MikroTik uses YAFFS to store the boot kernel and we use YAFUT to put U-Boot
as the kernel which RouterBoot then simply boots as an ELF.
Install instructions:
NOTE: In case you are using an existing out of tree version of OpenWrt make
sure to reinstall RouterOS via Netinstall to return the expected partition
layout.
1. Prepare FAT or EXT4 formatted USB drive with OpenWrt initramfs:
* Copy bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-initramfs-uImage.itb
to the root of FAT or EXT4 formatted USB drive.
* Plug in the drive to the RB5009 USB port
2. Boot the modified OpenWrt built U-Boot ELF:
u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf
Consult OpenWrt wiki for common instructions on switching to boot from
Ethernet once as well as serving the file:
https://openwrt.org/toh/mikrotik/common
Once U-Boot is booted it will attempt to boot in the following order:
1. NAND
2. USB
3. Network
NAND is expected to fail but USB or Networking need to serve the OpenWrt
initramfs image and after booting it will be accessible from LAN ports
on the default 192.168.1.1 IP with default credentials.
3. Flash modified RouterBoot that enables UART (Optional but recommended):
https://public.robimarko.eu/RB5009/70x0-7.15-uart.fwf
* Copy the file over to the booted OpenWrt initramfs to /tmp
* Run: mtd erase RouterBOOT-primary
* Run: mtd write /tmp/70x0-7.15-uart.fwf RouterBOOT-primary
4. Install U-Boot to boot OpenWrt:
* Copy the u-boot.elf from bin/targets/mvebu/cortexa72/u-boot-rb5009/u-boot.elf
to OpenWrt initramfs to /tmp.
* Run: . /lib/functions.sh
* Run: yafut -d /dev/mtd$(find_mtd_index "YAFFS") -w -i /tmp/u-boot.elf -o kernel -T
This will use yafut to copy the U-Boot as kernel in YAFFS so that RouterBoot boots it.
5. Wipe the NAND UBI partition:
* Run: ubiformat /dev/mtd$(find_mtd_index "ubi") -y
This will prepare the existing RouterOS rootfs partition for OpenWrt.
6. Flash OpenWrt:
* Copy the bin/targets/mvebu/cortexa72/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin
to OpenWrt initramfs to /tmp.
* Run: sysupgrade /tmp/openwrt-mvebu-cortexa72-mikrotik_rb5009-squashfs-sysupgrade.bin
Device will reboot, boot U-Boot and then OpenWrt.
Recovery:
In case you need to reinstall OpenWrt if it crashes after U-Boot, there is
a recovery mechanism in OpenWrt to boot the OpenWrt initramfs.
You need to hold the reset button while U-Boot is booting and then it will
boot the OpenWrt initramfs from:
1. USB
2. Networking
In recovery mode U-Boot will light all of the LED-s except for the switch
ones.
In case you want to return to RouterOS, you can simply do that via
Netinstall like on any other MikroTik board.
Credits also go to Serhii Serhieiev <adron@mstnt.com> who origininally
figured out the RouterBoot modification for UART, the missing 10G MVPP2
support in U-Boot as well as the custom aux loader to boot directly via
RouterBoot.
Robert Marko [Sat, 8 Jun 2024 08:25:29 +0000 (10:25 +0200)]
uboot-mvebu: add support for MikroTik RB5009
MikroTik RB5009 uses RouterBoot as its bootloader like all MikroTik devices
running RouterOS, meaning that its not FIT compatible and can only boot
ELF images.
Now this is not so much of an issue on ARM or MIPS since kernel supports
appending DTB-s to it (Or we patch the kernel to embed it), but on ARM64
there is intentionally no such support.
RouterBoot will pass a DTB, but its the broken MikroTik one which is a
modified reference DTB and incorrect in more places than its valid so we
cannot use it to boot our kernel.
Thus, the solution is to use an intermediary loader and luckily for us
Armada 7040 is well supported in U-Boot which makes it a great option since
it supports anything that we will ever need to boot.
Upstream U-Boot currently requires the Armada boards to be converted to
OF_UPSTREAM before adding anything new and this requires updating all of
the drivers to accomodate the Linux DTS, while I plan to do this eventually
we will need to keep this board downstream for now.
Most stuff is supported in U-Boot, including networking since the switch
is preconfigured by RouterBoot.
A custom environment is used to try and boot from the following devices:
1. NAND (UBI)
2. USB
3. Networking
If NAND boot fails then U-Boot will attempt to boot OpenWrt initramfs from
USB or via networking.
There is a manual recovery mechanism implemented where if the reset button
is held when U-Boot is booting it will try to boot OpenWrt initramfs from:
1. USB
2. Networking
When U-Boot is in recovery mode it will light all of the LED-s except the
switch ones.
Robert Marko [Fri, 7 Jun 2024 17:43:14 +0000 (19:43 +0200)]
mvebu: cortex-a72: enable U-Boot NVMEM driver
In order to not have to ship envtools configuration per board, we can
instead rely on the kernel U-Boot environment NVMEM driver through which
envtools can read/write the environement.
Since size difference is negligeble and this subtarget has rather large
storage regardless, enable it by default.
Robert Marko [Tue, 27 Feb 2024 18:07:42 +0000 (19:07 +0100)]
generic: backport QCA808x possible interfaces fix
QCA808x does not currently fill in the possible_interfaces.
This leads to Phylink not being aware that it supports 2500Base-X as well
so in cases where it is connected to a DSA switch like MV88E6393 it will
limit that port to phy-mode set in the DTS.
That means that if SGMII is used you are limited to 1G only while if
2500Base-X was set you are limited to 2.5G only.
Populating the possible_interfaces fixes this, so lets backport the patches
from kernel 6.9.
This also includes a backport of the Phylink PHY validation series from
kernel 6.8 that allows the use of possible_interfaces.
Marvell Amethyst switches use a different SMI GPIO pin setup than other
switches, and since RB5009 uses Amethyst switch and its SMI bus to talk
to QCA8081 lets backport the required fix from kernel 6.9.
Robert Marko [Sun, 23 Jun 2024 16:02:09 +0000 (18:02 +0200)]
qualcommax: get rid of custom socinfo.h header
Now that SSDK has been updated to use in-kernel SMEM ID-s to identify
the SoC its running on instead of relying on the downstream socinfo.h
header we can move the read_ipq_soc_version_major() function directly to
cpr3-util.c as its the only user of anything from the header and drop it.
Shiji Yang [Sat, 22 Jun 2024 14:58:56 +0000 (14:58 +0000)]
ath79: remove SPI driver link order hack
This hack is used to make sure that the mfd device starts before the
mtd driver[1]. Now the linux driver framework "struct spi_driver {}"
can always ensure this.
[1] 47f8fd1dde5d ("ar71xx: rewrite SPI drivers for the RB4xx boards")
After porting the ar71xx target to the new ath79 target, we are now
using the device tree instead of the device mach file. And the
platform drivers already support deferred probe. So there is no need
to keep it.
Robert Marko [Sun, 23 Jun 2024 15:24:57 +0000 (17:24 +0200)]
qca-ssdk: fix compiling for ipq60xx
Trying to compile for ipq60xx will fail with:
ERROR: modpost: "qca808x_phy_reset" [build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq60xx/qca-ssdk-2024.06.13~c451136b/qca-ssdk.ko] undefined!
So, lets fix this by disabling Manhattan switch and PHY support as this is
the new 2.5G quad port switch that is not present on ipq60xx boards.
Fixes: 87a45ea43207 ("kernel: qca-ssdk: update 12.5 to 2024-06-13") Signed-off-by: Robert Marko <robimarko@gmail.com>
List of changes:
2024-04-16 -c451136b- qca-ssdk: strip MRPPE code
2024-06-05 -f455a820- [qca-ssdk]: fix enum-int-mismatch warnings
2024-05-31 -bbfc0fa9- Merge "[qca-ssdk]: update eee status of phydev"
2024-05-31 -adbe9dc5- Merge "[qca-ssdk]: support psgmii and uqsxgmii mode of kernel"
2024-05-31 -d06ca777- Merge "[qca-ssdk]: fix 5G issue with the AQR FW that use 5gbaser for 5G speed"
2024-05-31 -c6f539a5- Merge "qca-ssdk: support mrppe pktedit padding functions"
2024-04-29 -c321e2a9- qca-ssdk: support mrppe pktedit padding functions
2024-05-24 -ee6e201e- qca-ssdk: Fix the big endian compile error
2024-05-15 -8c116bb9- [qca-ssdk]: update eee status of phydev
2024-05-20 -f0341a2c- Merge "qca-ssdk: Enable igmp for PPE MINI profile"
2024-05-16 -44a0ce93- qca-ssdk: Enable igmp for PPE MINI profile
2024-05-15 -8b91bbf6- [qca-ssdk]: support psgmii and uqsxgmii mode of kernel
2024-05-14 -7eec1658- [qca-ssdk]: fix 5G issue with the AQR FW that use 5gbaser for 5G speed
2024-05-12 -b9f5ea0e- [qca-ssdk]: ethtool support, do not change wake-up timer when the requested timer is 0
2024-05-09 -5e2c15ed- Merge "[qca-ssdk]: remove check when mht clock enable"
2024-05-09 -a1563b90- Merge "[qca-ssdk] support new sku IPQ5321"
2024-04-23 -f04b7680- [qca-ssdk]: show unknown status when link down
2024-03-22 -33b91b30- [qca-ssdk]: remove check when mht clock enable
2024-04-29 -b6362f2b- Merge "qca-ssdk:fix bug in marina nptv6 iid cal"
2024-04-29 -097033ae- Merge "[qca-ssdk] support cypress uniphy0 connecting MHT switch port0"
2024-04-24 -d45560fd- qca-ssdk:fix bug in marina nptv6 iid cal
2024-04-24 -7d7a42af- qca-ssdk: enable policer counter on low memory profile
2024-04-18 -e36cf6ea- Merge "[qca-ssdk]: change portvlan egress mode initial value as untouched"
2024-04-18 -27817881- Merge "[qca-ssdk]: update the aqr phy supported ability"
2024-04-18 -5a3a693c- Merge "qca-ssdk:support marina nptv6"
2024-04-16 -129fe9b3- Merge "qca-ssdk: support tunnel fields and innner fields inverse"
2024-01-09 -fc8f6abd- qca-ssdk:support marina nptv6
Removed upstreamed:
generic/pending-6.1/779-net-vxlan-don-t-learn-non-unicast-L2-destinations.patch
reference:
This patch can be removed. It will never return false. And the upstream commit should fix the same issue:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.95&id=a31d0e5deb1abe7c57c6457ae2502f278063126e