Due to what seems to be an undocumented oddity in MediaTek's MT7988
SoC design the CLK_INFRA_PCIE_PERI_26M_CK_P2 clock requires
CLK_INFRA_PCIE_PERI_26M_CK_P3 to be enabled.
This currently leads to PCIe port 2 not working in Linux.
Reflect the apparent relationship in the clk driver to make sure PCIe
port 2 of the MT7988 SoC works.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Include a statement about having to run the installer in the
sysupgrade compat warning for the Linksys E8450 (UBI).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Probing of the fitblk driver in some situations happens after the kernel
attempts to mount rootfs, which then fails.
Always use 'rootwait' when using fitblk for rootfs.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Commit 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible") leaves Xiaomi Redmi AX6000 un-converted,
the two LEDs become dead.
Now, LEDs are alive again.
Fixes: 2d63d42f5e ("mediatek: convert to new LED color/function
format where possible")
Signed-off-by: Furong Xu <xfr@outlook.com>
Use type casts to prevent compiler warnings which are going to turn
into errors when we switch to Linux 6.6.
In the long run we should try to get rid of this downstream driver
now that RTL8367S is support by the rtl8365mb DSA driver.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Rename kernel patches accepted upstream to indicate at which version
they have been accepted, replacing downstream variants which what was
accepted upstream. Note that some of them are fixes which will
find their way to older kernel versions as well via linux-stable.
No functional changes.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Some backported thermal patches ended up with the wrong kernel
version in their filename. Fix this.
Fixes: c36de2e73a ("mediatek: backport a hell of thermal commits")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
MT7981B /256MB /16MB SPI (XM25QH128C)
AX 2.4Ghz
AX 5Ghz 160Mhz wide
1Gbit LAN
OEM:
root@RE3000:~# ifconfig |grep HWaddr
br-lan Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0 (label)
br-wan Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
eth0 Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
ra0 Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
ra2 Link encap:Ethernet HWaddr 82:XX:XX:28:XX:X0
rax0 Link encap:Ethernet HWaddr 82:XX:XX:38:XX:X0
rax2 Link encap:Ethernet HWaddr 82:XX:XX:58:XX:X0
OpenWrt
root@OpenWrt:/# ifconfig |grep HW
br-lan Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
eth0 Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
phy0-ap0 Link encap:Ethernet HWaddr 80:XX:XX:08:XX:X0
phy1-ap0 Link encap:Ethernet HWaddr 82:XX:XX:08:XX:X1
tftp Installation via u-boot:
Connect TTL3.3V converter
connector is under the radiator Set speed 115200 8 N 1
Interrupt boot process by holding down-arrow key during boot then
>> 6. Load image
>> 0 - TFTP client (Default)
enter IP adresses and initramfs-kernel.bin
write to flash via sysupgrade or gui
Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
The boot loader does not have a fixed size limit for the kernel,
so we're free to change the layout. This may break sysupgrade, but a fresh
flash from initramfs works.
Fixes: 6e2962d4c5 ("mediatek: mt7622: skip build for MT7622 rfb1 (UBI)")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
If selected on a per-board base, fitblk doesn't end up in initramfs
images which always only come with the subtarget's default packages.
Hence fitblk needs to be included as a default package of all
subtargets making use of fitblk instead of it being selected for
individual boards.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Now that we got fitblk_get_bootdev in /lib/upgrade/common.sh we don't
need platform_get_bootdev in each of the subtargets any longer.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The device booting successfully indicates that bootloader has been
updated. Set compat_version to 1.1 on new configs and bump
compat_version to 1.1 on first boot after a successful sysupgrade.
Fixes: 6368ed1ae5 ("mediatek: mt7623: phase out uImage.FIT partition parser")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Set root=/dev/fit0 cmdline parameter as the kernel won't mount rootfs
otherwise after the change from the FIT partition parser to the fitblk
driver which replaces it.
Fixes: 6368ed1ae5 ("mediatek: mt7623: phase out uImage.FIT partition parser")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Use the new fitblk driver on the BananaPi R2 as well as UniElec U7623.
Introduce boot device selection for fitblk's /chosen/rootdisk
handle, similar to how it is already done on MT7622, MT7986 and MT7988.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
All mt7622 board previously using the FIT partition parser have been
converted to use the fitblk driver:
6aec3c7b5b mediatek: mt7622: modernize Linksys E8450 / Belkin RT3200 UBI build
41c053141e mediatek: mt7622: convert unifi6lr-v{1,2,3}-ubootmod to fitblk
208f6c1232 mediatek: mt7622: convert BPi-R64 to all-UBI layout and fitblk
Remove the now no longer needed FIT partition parser from builds for
mt7622.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Use newly added support for NVMEM-on-UBI instead of extracting MAC
address and WiFi EEPROM data in userspace.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Fix style of nvmem cell names in the device tree of the GL.iNet MT-2500.
Fixes: 49ed52b862 ("mediatek: filogic: convert GL.iNet MT-2500 to use NVMEM-on-MMC)"
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Import patch to make sure SGM_REG_SEL clock is always enabled as it
seems that more registers than just SGMIISYS0 and SGMIISYS1 are
depending on that clock being enabled.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Now that we can reference MMC partitions in device tree, use that
to get rid of Wi-Fi EEPROM and MAC address setup in userspace.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Remove inaccurate compatible string 'mediatek,mt7986-ethsys' which
results in the wrong clock driver probing on MT7981 with Linux 6.1 and
ends up freezing the system once WED is used.
Fixes: da970d63fb ("mediatek: switch to Linux version 6.1")
Reported-by: Chen Minqiang <ptpt52@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Some Aquantia PHYs (e.g. AQR113C) require firmware to be uploaded by
host system. With built-in drivers this doesn't work in OpenWrt /
embeddded as filesystem isn't available during PHY probe. That results
in delays like:
[ 1.588068] Aquantia AQR113C mdio-bus:00: Falling back to sysfs fallback for: Rhe-05.06-Candidate9-AQR_Mediatek_23B_P5_ID45824_LCLVER1.cld
[ 64.526387] Aquantia AQR113C mdio-bus:00: failed to find FW file Rhe-05.06-Candidate9-AQR_Mediatek_23B_P5_ID45824_LCLVER1.cld (-110)
Switch to module to postpone PHY probe to init state.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Also here build fails due to increased kernel size.
Fixes: da970d63fb ("mediatek: switch to Linux version 6.1")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Due to increased kernel size the build currently fails if including
the MT7622 rfb1 (UBI). Skip it for now until there is a better
solution (such as replacing the bootloader and changing the flash
layout).
Fixes: da970d63fb ("mediatek: switch to Linux version 6.1")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Include the needed Ethernet PHY driver module for the BananaPi R3 mini.
Fixes: b03d3644cf ("mediatek: filogic: add BananaPi BPi-R3 mini")
Reported-by: BPI forum user nezar_taima
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
One of the pins requiered by M.2 slot is conflict with spi1,
however, spi1 seems unused so simply disable it for now, this
matches the factory behavior [1].
1. 9bd78779f2
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Conversion to new LED color/function format and drop label format.
This was needed previously when the new format wasn't supported by
leds.sh functions script. Now that is supported this property can be
removed in favor of the new format.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Generate ubinized image as ARTIFACT and make use of now available
generic 'ubinize-image' build step intended for that purpose.
Fixes: b03d3644cf ("mediatek: filogic: add BananaPi BPi-R3 mini")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Fix NAND flash layout which was out-of-sync with the definition in
ARM TrustedFirmware-A which expects UBI to start at 0x200000.
Fixes: b03d3644cf ("mediatek: filogic: add BananaPi BPi-R3 mini")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Hardware specification
----------------------
SoC: MediaTek MT7986A 4x A53
Flash: 128MB SPI-NAND, 8GB eMMC
RAM: 2GB DDR4
Ethernet: 2x 2.5GbE (Airoha EN8811H)
WiFi: MediaTek MT7976C 2x2 2.4G + 3x3 5G
Interfaces:
* M.2 Key-M: PCIe 2.0 x2 for NVMe SSD
* M.2 Key-B: USB 3.0 with SIM slot
* front USB 2.0 port
LED: Power, Status, WLAN2G, WLAN5G, LTE, SSD
Button: Reset, internal boot switch
Fan: PWM-controlled 5V fan
Power: 12V Type-C PD
Installation instructions for eMMC
----------------------------------
0. Set boot switch to boot from SPI-NAND (assuming stock rom or immortalwrt
running there).
1. Write GPT partition table to eMMC
Move openwrt-mediatek-filogic-bananapi_bpi-r3-mini-emmc-gpt.bin to
the device /tmp using scp and write it to /dev/mmcblk0:
dd if=/tmp/openwrt-*-r3-mini-emmc-gpt.bin of=/dev/mmcblk0
2. Reboot (to reload partition table)
3. Write bootloader and OpenWrt images
Move files to the device /tmp using scp:
- openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin
- openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip
- openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
- openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
Write them to the appropriate partitions:
echo 0 > /sys/block/mmcblk0boot0/force_ro
dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-preloader.bin of=/dev/mmcblk0boot0
dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-emmc-bl31-uboot.fip of=/dev/mmcblk0p3
dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb of=/dev/mmcblk0p4
dd if=/tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb of=/dev/mmcblk0p5
sync
4. Remove the device from power, set boot switch to eMMC and boot into
OpenWrt. The device will come up with IP 192.168.1.1 and assume the
Ethernet port closer to the USB-C power connector as LAN port.
5. If you like to have Ethernet support inside U-Boot (eg. to boot via
TFTP) you also need to write the PHY firmware to /dev/mmcblk0boot1:
echo 0 > /sys/block/mmcblk0boot1/force_ro
dd if=/lib/firmware/airoha/EthMD32.dm.bin of=/dev/mmcblk0boot1
dd if=/lib/firmware/airoha/EthMD32.DSP.bin bs=16384 seek=1 of=/dev/mmcblk0boot1
Installation instructions for NAND
----------------------------------
0. Set boot switch to boot from eMMC (assuming OpenWrt is installed there
by instructions above. Using stock rom or immortalwrt does NOT work!)
1. Write things to NAND
Move files to the device /tmp using scp:
- openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin
- openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
- openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
- openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
Write them to the appropriate locations:
mtd write /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-preloader.bin /dev/mtd0
ubidetach -m 1
ubiformat /dev/mtd1
ubiattach -m 1
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip)
ubimkvol /dev/ubi0 -N fip -n 0 -s $volsize -t static
ubiupdatevol /dev/ubi0_0 /tmp/openwrt-*-bananapi_bpi-r3-mini-snand-bl31-uboot.fip
cd /lib/firmware/airoha
cat EthMD32.dm.bin EthMD32.DSP.bin > /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -N en8811h-firmware -n 1 -s 147456 -t static
ubiupdatevol /dev/ubi0_1 /tmp/en8811h-fw.bin
ubimkvol /dev/ubi0 -n 2 -N ubootenv -s 126976
ubimkvol /dev/ubi0 -n 3 -N ubootenv2 -s 126976
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb)
ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
ubiupdatevol /dev/ubi0_4 /tmp/openwrt-*-bananapi_bpi-r3-mini-initramfs-recovery.itb
volsize=$(wc -c < /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb)
ubimkvol /dev/ubi0 -n 4 -N recovery -s $volsize
ubiupdatevol /dev/ubi0_4 /tmp/openwrt-*-bananapi_bpi-r3-mini-squashfs-sysupgrade.itb
3. Remove the device from power, set boot switch to NAND, power up and
boot into OpenWrt.
Partially based on immortalwrt support for the R3 mini, big thanks for
doing the ground work!
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Add PHY driver for Airoha EN8811H PHY and package it as kernel module.
The PHY needs to load firmware from rootfs, so there is no point in
having the driver built-into the kernel.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Firmware for the built-in 2.5G Ethernet PHY of the MediaTek MT7988 SoC
is now part of linux-firmware, so we can package it.
Only a single file is needed with recent driver.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Move fip and factory into UBI static volumes.
Use fitblk instead of partition parser.
!! RUN INSTALLER FIRST !!
Existing users of previous OpenWrt releases or snapshot builds will
have to **re-run the updated installer** before upgrading to firmware
after this commit.
DO NOT flash or run even just the initramfs image unless you have
run the updated installer which moves the content of the 'factory'
partition into a UBI volume.
tl;dr: DON'T USE YET!
Signed-off-by: Daniel Golle <daniel@makrotopia.org>