mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +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>
Board Support
The board support for an architecture always starts with Qemu support,
this is what each linux_defconfig at the very least sets up. Then
each $BR2_ARCH has additional BSPs, e.g., Banana Pi BPI-R3.
The board/ directory is matched with the configs/*_defconfigs and
the only execption is board/common/, which holds all shared files for
Infix builds.
Each board/$BR2_ARCH/ can then have vendor/product sub-directories
for the BSPs which may contain "fixups" to the base kernel config and
any additional device tree files that should be included as well.
To rebuild a board-specific package, e.g. NanoPi R2S:
make friendlyarm-nanopi-r2s-rebuild all