mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-05 15:13:02 +02:00
Add board support for the BananaPi BPI-R4 router board, based on the MediaTek MT7988A (Filogic 880) SoC with quad-core Cortex-A73 CPU. The BPI-R4 is the successor to the BPI-R3 but uses entirely different silicon: the internal switch runs at 2.5 GbE per port, the two SFP+ uplinks use native USXGMII at up to 10 Gbps, and WiFi is provided by a MediaTek MT7996E PCIe module supporting tri-band WiFi 7 (2.4/5/6 GHz). Two board variants, BPI-R4-2g5 and BPI-R4P, replace one SFP+ cage with a 2.5 GbE RJ45 port (using the MT7988A internal 2.5G PHY); the R4P adds an optional PoE daughterboard on that port. Both use the upstream mt7988a-bananapi-bpi-r4-2g5 device tree. Interfaces: - Standard R4: eth1 (gmac1/sfp2 LAN cage) → sfp2, eth2 (gmac2/sfp1 WAN cage) → sfp1 - R4-2g5/R4P: eth1 (2.5G PHY) → wan, eth2 (gmac2/sfp1 WAN cage) → sfp1 Factory reset / WPS button (GPIO14, active-low): detected by U-Boot at boot for factory reset; reused by Linux as KEY_WPS_BUTTON at runtime. eMMC install note: the MT7988A eMMC (pins 38-49) and SD card (pins 32-37) use separate physical pads so there is no electrical bus sharing, unlike some BPi-R3 configurations. However, a single MMC controller (mmc@11230000) handles both, so only one is active per boot session. The eMMC install procedure therefore still requires an intermediate SPI NAND bootloader step until a Linux-side install path is tested. SD card build (bpi_r4_sd_boot_defconfig) now uses the new mt7988a_bpir4_sd U-Boot defconfig with cap-sd-highspeed enabled, giving 50 MHz SD transfers instead of the previous 25 MHz legacy mode. Also adds MT7988/MT7996 firmware support to the buildroot linux-firmware package, for 2.5 GbE port PHY and WiFi7 extension board, and updates the aarch64_defconfig, aarch64_minimal_defconfig, the arch README, CI boot/image workflows, mkimage.sh, and the ChangeLog. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
28 lines
655 B
Devicetree
28 lines
655 B
Devicetree
/ {
|
|
config {
|
|
env: environment {
|
|
};
|
|
};
|
|
};
|
|
|
|
&env {
|
|
vendor = "infix";
|
|
preboot = "run ixpreboot";
|
|
ixbootdelay = "0.5";
|
|
bootdelay = "-2";
|
|
bootmenu_delay = "10";
|
|
boot_targets = "virtio mmc";
|
|
bootcmd = "run ixboot";
|
|
|
|
ixvariant = "";
|
|
ixpreboot = /incbin/("scripts/ixpreboot.sh");
|
|
ixbtn-devmode = /incbin/("scripts/ixbtn-devmode.sh");
|
|
ixbtn-factory = /incbin/("scripts/ixbtn-factory.sh");
|
|
ixfactory = /incbin/("scripts/ixfactory.sh");
|
|
|
|
ixboot = /incbin/("scripts/ixboot.sh");
|
|
ixbootslot = /incbin/("scripts/ixbootslot.sh");
|
|
ixprepblk = /incbin/("scripts/ixprepblk.sh");
|
|
ixprepdhcp = /incbin/("scripts/ixprepdhcp.sh");
|
|
};
|