From 16e72e8741d51fa46aeb6c0a852f30360187204f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Wed, 18 Feb 2026 17:23:27 +0100 Subject: [PATCH 1/3] boards: Add new board bpi-r3-mini This is a simple two port router board, with the same WiFi chips as BPI-r3. The bootloader shall be the same as the BPI-r3, the bootloader now probes which of the two is booting by checking for the PHYS that only exist on BPI-r3-mini. --- board/aarch64/bananapi-bpi-r3/Config.in | 1 + .../bananapi-bpi-r3/bananapi-bpi-r3.mk | 1 + board/aarch64/bananapi-bpi-r3/dts/Makefile | 2 +- .../mediatek/mt7986a-bananapi-bpi-r3-emmc.dts | 2 + .../mediatek/mt7986a-bananapi-bpi-r3-mini.dts | 12 + .../mt7986a-bananapi-bpi-r3-mini.dtsi | 2 + .../mediatek/mt7986a-bananapi-bpi-r3-sd.dts | 2 + .../dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi | 2 - board/aarch64/bananapi-bpi-r3/genimage.cfg.in | 5 + .../etc/factory-config.cfg | 445 ++++++++ .../90-bpi-r3-mini-rename-ethernet.rules | 2 + .../bananapi-bpi-r3/uboot/extras.config | 12 + .../bananapi-bpi-r3/uboot/mt7986-env.dtsi | 4 + configs/bpi_r3_emmc_boot_defconfig | 2 + ...ush-Remove-Ctrl-C-detection-in-loops.patch | 16 +- ... => 0002-cmd-new-command-rpidisplay.patch} | 20 + ...a7g5ek-increase-clock-for-sdmmc-from.patch | 48 + ...a7g5ek-supports-high-speed-on-mmc0-e.patch | 37 + ...hy-Add-the-Airoha-EN8811H-PHY-driver.patch | 980 ++++++++++++++++++ .../0006-Add-bpi-r3-mini-device-tree.patch | 275 +++++ ...i-r3-r4-Add-probe-for-specific-model.patch | 562 ++++++++++ utils/mkimage.sh | 49 + 22 files changed, 2472 insertions(+), 9 deletions(-) create mode 100644 board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts create mode 100644 board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dtsi create mode 100644 board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg create mode 100644 board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/udev/rules.d/90-bpi-r3-mini-rename-ethernet.rules rename patches/uboot/2025.01/{0002-add-rpidisplay-check.patch => 0002-cmd-new-command-rpidisplay.patch} (86%) create mode 100644 patches/uboot/2025.01/0003-arm-dts-at91-sama7g5ek-increase-clock-for-sdmmc-from.patch create mode 100644 patches/uboot/2025.01/0004-arm-dts-at91-sama7g5ek-supports-high-speed-on-mmc0-e.patch create mode 100644 patches/uboot/2025.01/0005-net-phy-Add-the-Airoha-EN8811H-PHY-driver.patch create mode 100644 patches/uboot/2025.01/0006-Add-bpi-r3-mini-device-tree.patch create mode 100644 patches/uboot/2025.01/0007-bpi-r3-r4-Add-probe-for-specific-model.patch diff --git a/board/aarch64/bananapi-bpi-r3/Config.in b/board/aarch64/bananapi-bpi-r3/Config.in index c7cccf3fc..4801e6eff 100644 --- a/board/aarch64/bananapi-bpi-r3/Config.in +++ b/board/aarch64/bananapi-bpi-r3/Config.in @@ -5,6 +5,7 @@ config BR2_PACKAGE_BANANAPI_BPI_R3 select BR2_PACKAGE_LINUX_FIRMWARE select BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK select BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7986 + select BR2_PACKAGE_LINUX_FIRMWARE_AIROHA_EN8811H select SDCARD_AUX help Build Banana PI R3 support diff --git a/board/aarch64/bananapi-bpi-r3/bananapi-bpi-r3.mk b/board/aarch64/bananapi-bpi-r3/bananapi-bpi-r3.mk index 93b20786c..14caf570c 100644 --- a/board/aarch64/bananapi-bpi-r3/bananapi-bpi-r3.mk +++ b/board/aarch64/bananapi-bpi-r3/bananapi-bpi-r3.mk @@ -9,6 +9,7 @@ define BANANAPI_BPI_R3_LINUX_CONFIG_FIXUPS $(call KCONFIG_ENABLE_OPT,CONFIG_MEDIATEK_WATCHDOG) $(call KCONFIG_ENABLE_OPT,CONFIG_MEDIATEK_GE_PHY) $(call KCONFIG_ENABLE_OPT,CONFIG_REALTEK_PHY) + $(call KCONFIG_SET_OPT,CONFIG_AIR_EN8811H_PHY,m) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_MEDIATEK) $(call KCONFIG_ENABLE_OPT,CONFIG_NET_MEDIATEK_SOC) $(call KCONFIG_SET_OPT,CONFIG_NET_DSA_MT7530,m) diff --git a/board/aarch64/bananapi-bpi-r3/dts/Makefile b/board/aarch64/bananapi-bpi-r3/dts/Makefile index 974394efb..aa34a9795 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/Makefile +++ b/board/aarch64/bananapi-bpi-r3/dts/Makefile @@ -1 +1 @@ -dtb-y += mediatek/mt7986a-bananapi-bpi-r3-sd.dtb mediatek/mt7986a-bananapi-bpi-r3-emmc.dtb +dtb-y += mediatek/mt7986a-bananapi-bpi-r3-sd.dtb mediatek/mt7986a-bananapi-bpi-r3-emmc.dtb mediatek/mt7986a-bananapi-bpi-r3-mini.dtb diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts index dafbe2451..573285c8c 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-emmc.dts @@ -1,2 +1,4 @@ +#include + #include "mt7986a-bananapi-bpi-r3.dtsi" #include "mt7986a-bananapi-bpi-r3-emmc.dtsi" diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts new file mode 100644 index 000000000..bcb323e6b --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dts @@ -0,0 +1,12 @@ +#include + +#include "mt7986a-bananapi-bpi-r3.dtsi" +#include "mt7986a-bananapi-bpi-r3-emmc.dtsi" + +&phy0 { + compatible = "ethernet-phy-id03a2.a411"; +}; +&phy1 { + compatible = "ethernet-phy-id03a2.a411"; +}; + diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dtsi b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dtsi new file mode 100644 index 000000000..dafbe2451 --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-mini.dtsi @@ -0,0 +1,2 @@ +#include "mt7986a-bananapi-bpi-r3.dtsi" +#include "mt7986a-bananapi-bpi-r3-emmc.dtsi" diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts index 725f7b4e2..640586fc7 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3-sd.dts @@ -1,2 +1,4 @@ +#include + #include "mt7986a-bananapi-bpi-r3.dtsi" #include "mt7986a-bananapi-bpi-r3-sd.dtsi" diff --git a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi index f4637d603..355afd163 100644 --- a/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi +++ b/board/aarch64/bananapi-bpi-r3/dts/mediatek/mt7986a-bananapi-bpi-r3.dtsi @@ -1,5 +1,3 @@ -#include - / { chosen { infix { diff --git a/board/aarch64/bananapi-bpi-r3/genimage.cfg.in b/board/aarch64/bananapi-bpi-r3/genimage.cfg.in index cbb345f69..f9fc6fccf 100644 --- a/board/aarch64/bananapi-bpi-r3/genimage.cfg.in +++ b/board/aarch64/bananapi-bpi-r3/genimage.cfg.in @@ -51,6 +51,11 @@ image #INFIX_ID##VERSION#-bpi-r3-#TARGET#.img { size = 4096s } + partition en8811h_fw { + size = 10M + image = "en8811h-fw.bin" + } + partition aux { partition-uuid = D4EF35A0-0652-45A1-B3DE-D63339C82035 image = "aux.ext4" diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg new file mode 100644 index 000000000..19068393f --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/factory-config.cfg @@ -0,0 +1,445 @@ +{ + "ieee802-dot1ab-lldp:lldp": { + "infix-lldp:enabled": true + }, + "ietf-hardware:hardware": { + "component": [ + { + "name": "USB", + "class": "infix-hardware:usb", + "state": { + "admin-state": "unlocked" + } + }, + { + "class": "infix-hardware:usb", + "name": "USB2", + "state": { + "admin-state": "unlocked" + } + }, + { + "name": "radio0", + "class": "infix-hardware:wifi", + "infix-hardware:wifi-radio": { + "country-code": "DE", + "band": "2.4GHz", + "channel": "auto" + } + }, + { + "name": "radio1", + "class": "infix-hardware:wifi", + "infix-hardware:wifi-radio": { + "country-code": "DE", + "band": "5GHz", + "channel": "auto" + } + } + ] + }, + "ietf-interfaces:interfaces": { + "interface": [ + { + "name": "br0", + "type": "infix-if-type:bridge", + "ietf-ip:ipv4": { + "address": [ + { + "ip": "192.168.0.1", + "prefix-length": 24 + } + ] + } + }, + { + "name": "lan", + "type": "infix-if-type:ethernet", + "ietf-ip:ipv6": {}, + "infix-interfaces:bridge-port": { + "bridge": "br0" + } + }, + { + "name": "lo", + "type": "infix-if-type:loopback", + "ietf-ip:ipv4": { + "address": [ + { + "ip": "127.0.0.1", + "prefix-length": 8 + } + ] + }, + "ietf-ip:ipv6": { + "address": [ + { + "ip": "::1", + "prefix-length": 128 + } + ] + } + }, + { + "name": "wan", + "type": "infix-if-type:ethernet", + "ietf-ip:ipv4": { + "infix-dhcp-client:dhcp": { + "option": [ + { + "id": "ntp-server" + }, + { + "id": "broadcast" + }, + { + "id": "domain" + }, + { + "id": "hostname" + }, + { + "id": "dns-server" + }, + { + "id": "router" + }, + { + "id": "netmask" + }, + { + "id": "vendor-class", + "value": "Banana Pi BPI-R3" + } + ] + } + }, + "ietf-ip:ipv6": { + "infix-dhcpv6-client:dhcp": { + "option": [ + { + "id": "ntp-server" + }, + { + "id": "client-fqdn" + }, + { + "id": "domain-search" + }, + { + "id": "dns-server" + } + ] + } + } + }, + { + "name": "wifi0-ap", + "type": "infix-if-type:wifi", + "infix-interfaces:wifi": { + "radio": "radio0", + "access-point": { + "ssid": "Infix", + "security": { + "secret": "wifi" + } + } + }, + "infix-interfaces:bridge-port": { + "bridge": "br0" + } + }, + { + "name": "wifi1-ap", + "type": "infix-if-type:wifi", + "infix-interfaces:wifi": { + "radio": "radio1", + "access-point": { + "ssid": "Infix5Ghz", + "security": { + "secret": "wifi" + } + } + }, + "infix-interfaces:bridge-port": { + "bridge": "br0" + } + } + ] + }, + "ietf-keystore:keystore": { + "asymmetric-keys": { + "asymmetric-key": [ + { + "name": "genkey", + "public-key-format": "infix-crypto-types:ssh-public-key-format", + "public-key": "", + "private-key-format": "infix-crypto-types:rsa-private-key-format", + "cleartext-private-key": "", + "certificates": {} + } + ] + }, + "symmetric-keys": { + "symmetric-key": [ + { + "name": "wifi", + "cleartext-symmetric-key": "aW5maXhpbmZpeA==", + "key-format": "infix-crypto-types:passphrase-key-format" + } + ] + } + }, + "ietf-netconf-acm:nacm": { + "enable-nacm": true, + "read-default": "permit", + "write-default": "permit", + "exec-default": "permit", + "groups": { + "group": [ + { + "name": "admin", + "user-name": [ + "admin" + ] + }, + { + "name": "operator", + "user-name": [] + }, + { + "name": "guest", + "user-name": [] + } + ] + }, + "rule-list": [ + { + "name": "admin-acl", + "group": [ + "admin" + ], + "rule": [ + { + "name": "permit-all", + "module-name": "*", + "access-operations": "*", + "action": "permit", + "comment": "Allow 'admin' group complete access to all operations and data." + } + ] + }, + { + "name": "operator-acl", + "group": [ + "operator" + ], + "rule": [ + { + "name": "permit-system-rpcs", + "module-name": "ietf-system", + "rpc-name": "*", + "access-operations": "exec", + "action": "permit", + "comment": "Operators can reboot, shutdown, and set system time." + } + ] + }, + { + "name": "guest-acl", + "group": [ + "guest" + ], + "rule": [ + { + "name": "deny-all-write+exec", + "module-name": "*", + "access-operations": "create update delete exec", + "action": "deny", + "comment": "Guests cannot change anything or exec rpcs." + } + ] + }, + { + "name": "default-deny-all", + "group": [ + "*" + ], + "rule": [ + { + "name": "deny-password-access", + "path": "/ietf-system:system/authentication/user/password", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access password hashes." + }, + { + "name": "deny-keystore-access", + "module-name": "ietf-keystore", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access cryptographic keys." + }, + { + "name": "deny-truststore-access", + "module-name": "ietf-truststore", + "access-operations": "*", + "action": "deny", + "comment": "No user except admins can access trust store." + } + ] + } + ] + }, + "ietf-netconf-server:netconf-server": { + "listen": { + "endpoints": { + "endpoint": [ + { + "name": "default-ssh", + "ssh": { + "tcp-server-parameters": { + "local-bind": [ + { + "local-address": "::" + } + ] + }, + "ssh-server-parameters": { + "server-identity": { + "host-key": [ + { + "name": "default-key", + "public-key": { + "central-keystore-reference": "genkey" + } + } + ] + } + } + } + } + ] + } + } + }, + "ietf-system:system": { + "hostname": "bpi-%m", + "ntp": { + "server": [ + { + "name": "default", + "udp": { + "address": "pool.ntp.org" + } + } + ] + }, + "authentication": { + "user": [ + { + "name": "admin", + "password": "$factory$", + "infix-system:shell": "bash" + } + ] + }, + "infix-system:motd-banner": "Li0tLS0tLS0uCnwgIC4gLiAgfCBJbmZpeCBPUyDigJQgSW1tdXRhYmxlLkZyaWVuZGx5LlNlY3VyZQp8LS4gdiAuLXwgaHR0cHM6Ly9rZXJuZWxraXQub3JnCictJy0tLSctJwo=" + }, + "infix-dhcp-server:dhcp-server": { + "option": [ + { + "id": "ntp-server", + "address": "auto" + }, + { + "id": "dns-server", + "address": "auto" + }, + { + "id": "router", + "address": "auto" + } + ], + "subnet": [ + { + "subnet": "192.168.0.0/24", + "pool": { + "start-address": "192.168.0.100", + "end-address": "192.168.0.250" + } + } + ] + }, + "infix-firewall:firewall": { + "default": "wan", + "zone": [ + { + "name": "lan", + "action": "accept", + "interface": [ + "br0" + ] + }, + { + "name": "wan", + "action": "drop", + "interface": [ + "wan" + ], + "service": [ + "dhcpv6-client" + ] + } + ], + "policy": [ + { + "name": "lan-to-wan", + "action": "accept", + "ingress": [ + "lan" + ], + "egress": [ + "wan" + ], + "masquerade": true + } + ] + }, + "infix-meta:meta": { + "version": "1.7" + }, + "infix-services:mdns": { + "enabled": true + }, + "infix-services:ssh": { + "enabled": true, + "hostkey": [ + "genkey" + ], + "listen": [ + { + "name": "ipv4", + "address": "0.0.0.0", + "port": 22 + }, + { + "name": "ipv6", + "address": "::", + "port": 22 + } + ] + }, + "infix-services:web": { + "enabled": true, + "console": { + "enabled": true + }, + "netbrowse": { + "enabled": true + }, + "restconf": { + "enabled": true + } + } +} diff --git a/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/udev/rules.d/90-bpi-r3-mini-rename-ethernet.rules b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/udev/rules.d/90-bpi-r3-mini-rename-ethernet.rules new file mode 100644 index 000000000..23366a8e4 --- /dev/null +++ b/board/aarch64/bananapi-bpi-r3/rootfs/usr/share/product/bananapi,bpi-r3mini/etc/udev/rules.d/90-bpi-r3-mini-rename-ethernet.rules @@ -0,0 +1,2 @@ +ACTION=="add", SUBSYSTEM=="net", DEVPATH=="/devices/platform/soc/15100000.ethernet/net/eth0", NAME="lan" +ACTION=="add", SUBSYSTEM=="net", DEVPATH=="/devices/platform/soc/15100000.ethernet/net/eth1", NAME="wan" diff --git a/board/aarch64/bananapi-bpi-r3/uboot/extras.config b/board/aarch64/bananapi-bpi-r3/uboot/extras.config index 70fa5ab64..364c6c92b 100644 --- a/board/aarch64/bananapi-bpi-r3/uboot/extras.config +++ b/board/aarch64/bananapi-bpi-r3/uboot/extras.config @@ -3,6 +3,9 @@ CONFIG_BOOTDELAY=2 # CONFIG_MMC_PCI is not set CONFIG_ENV_IS_NOWHERE=y # CONFIG_ENV_IS_IN_MMC is not set +CONFIG_MULTI_DTB_FIT=y +CONFIG_OF_LIST="mt7986a-bpi-r3-sd mt7986a-bpi-r3-emmc mt7986a-bpi-r3-mini" + CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_MTK=y @@ -26,8 +29,17 @@ CONFIG_MTD_SPI_NAND=y CONFIG_MTK_SPIM=y CONFIG_MTK_SNOR=y +CONFIG_DM_MDIO=y +CONFIG_DM_ETH_PHY=y +CONFIG_PHY_ETHERNET_ID=y + +CONFIG_PHY_AIROHA=y +CONFIG_PHY_AIROHA_EN8811H=y +CONFIG_PHY_AIROHA_FW_IN_MMC=y + CONFIG_CMD_SF=y CONFIG_CMD_USB=y CONFIG_CMD_MTD=y +CONFIG_CMD_MDIO=y CONFIG_CMD_MTDPARTS=y CONFIG_CMD_DM=y diff --git a/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi b/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi index 20a532f22..6964340f8 100644 --- a/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi +++ b/board/aarch64/bananapi-bpi-r3/uboot/mt7986-env.dtsi @@ -15,6 +15,10 @@ scriptaddr = "0x48000000"; ramdisk_addr_r = "0x4A000000"; + en8811h_fw_part = "0#en8811h_fw"; + en8811h_fw_dm_dir = "EthMD32.dm.bin"; + en8811h_fw_dsp_dir = "EthMD32.DSP.bin"; + /* This is a development platform, keep * developer mode statically enabled. */ diff --git a/configs/bpi_r3_emmc_boot_defconfig b/configs/bpi_r3_emmc_boot_defconfig index 184febd2c..387ed369e 100644 --- a/configs/bpi_r3_emmc_boot_defconfig +++ b/configs/bpi_r3_emmc_boot_defconfig @@ -11,6 +11,8 @@ BR2_SSP_NONE=y BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_AIROHA_EN8811H=y # BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_ARM_TRUSTED_FIRMWARE=y diff --git a/patches/uboot/2025.01/0001-hush-Remove-Ctrl-C-detection-in-loops.patch b/patches/uboot/2025.01/0001-hush-Remove-Ctrl-C-detection-in-loops.patch index 0e1c08801..ce9970206 100644 --- a/patches/uboot/2025.01/0001-hush-Remove-Ctrl-C-detection-in-loops.patch +++ b/patches/uboot/2025.01/0001-hush-Remove-Ctrl-C-detection-in-loops.patch @@ -1,8 +1,11 @@ -From 989ef8436df2ee48d308981098c44b1b8257c23b Mon Sep 17 00:00:00 2001 +From 9a9885324c70d607c9c79814441dbc829e212e41 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Mon, 10 Jun 2024 13:25:31 +0200 -Subject: [PATCH 8/8] hush: Remove Ctrl-C detection in loops -Organization: Addiva Elektronik +Subject: [PATCH 1/7] hush: Remove Ctrl-C detection in loops +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires Assume that the original intent was to emulate SIGINT to a shell. This only works as expected if the loop in question is the ouermost, and @@ -14,15 +17,16 @@ Disable this behavior and delegate the problem of loop termination to the writer of the script instead. Signed-off-by: Tobias Waldekranz +Signed-off-by: Mattias Walström --- common/cli_hush.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/common/cli_hush.c b/common/cli_hush.c -index 171069f5f4..d6d487893f 100644 +index a6a8edce1f4..0711e05a779 100644 --- a/common/cli_hush.c +++ b/common/cli_hush.c -@@ -1796,13 +1796,6 @@ static int run_list_real(struct pipe *pi) +@@ -1792,13 +1792,6 @@ static int run_list_real(struct pipe *pi) for (; pi; pi = (flag_restore != 0) ? rpipe : pi->next) { if (pi->r_mode == RES_WHILE || pi->r_mode == RES_UNTIL || pi->r_mode == RES_FOR) { @@ -37,5 +41,5 @@ index 171069f5f4..d6d487893f 100644 if (!rpipe) { flag_rep = 0; -- -2.34.1 +2.43.0 diff --git a/patches/uboot/2025.01/0002-add-rpidisplay-check.patch b/patches/uboot/2025.01/0002-cmd-new-command-rpidisplay.patch similarity index 86% rename from patches/uboot/2025.01/0002-add-rpidisplay-check.patch rename to patches/uboot/2025.01/0002-cmd-new-command-rpidisplay.patch index 5629d150f..9594f4433 100644 --- a/patches/uboot/2025.01/0002-add-rpidisplay-check.patch +++ b/patches/uboot/2025.01/0002-cmd-new-command-rpidisplay.patch @@ -1,3 +1,20 @@ +From 7efc3aa61fbc84b2c0c959e737257d2de2e8020c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= +Date: Sat, 6 Sep 2025 22:18:27 +0200 +Subject: [PATCH 2/7] cmd: new command rpidisplay +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +Signed-off-by: Mattias Walström +--- + cmd/Kconfig | 14 ++++++++ + cmd/Makefile | 2 +- + cmd/rpi_display.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 96 insertions(+), 1 deletion(-) + create mode 100644 cmd/rpi_display.c + diff --git a/cmd/Kconfig b/cmd/Kconfig index 1d7ddb4ed36..8572dc4353e 100644 --- a/cmd/Kconfig @@ -130,3 +147,6 @@ index 00000000000..07abdc08552 + "Returns: 0=connected, 1=not detected, 2=no video\n" + "Usage: if testrpidisplay; then echo DSI found; fi" +); +-- +2.43.0 + diff --git a/patches/uboot/2025.01/0003-arm-dts-at91-sama7g5ek-increase-clock-for-sdmmc-from.patch b/patches/uboot/2025.01/0003-arm-dts-at91-sama7g5ek-increase-clock-for-sdmmc-from.patch new file mode 100644 index 000000000..0e96b9214 --- /dev/null +++ b/patches/uboot/2025.01/0003-arm-dts-at91-sama7g5ek-increase-clock-for-sdmmc-from.patch @@ -0,0 +1,48 @@ +From c646eef3ee304ae49ad7e3f998ed08bfa0efb7b9 Mon Sep 17 00:00:00 2001 +From: Mihai Sain +Date: Fri, 5 May 2023 13:28:31 +0300 +Subject: [PATCH 3/7] arm: dts: at91: sama7g5ek: increase clock for sdmmc from + 25 MHz to 50 MHz +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +Current clock for sdmmc0 and sdmmc1 is 25 MHz because of the caps forced +by the mainline kernel. + +Remove the caps in order to increase the clock to 50 MHz. This will +improve the boot time when reading the kernel binary. Tested on +sama7g5ek rev 5 using mmcinfo command. + +Signed-off-by: Mihai Sain +Signed-off-by: Mattias Walström +--- + arch/arm/dts/at91-sama7g5ek.dts | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/arch/arm/dts/at91-sama7g5ek.dts b/arch/arm/dts/at91-sama7g5ek.dts +index 9b247fcaf66..5bbbdd8ed76 100644 +--- a/arch/arm/dts/at91-sama7g5ek.dts ++++ b/arch/arm/dts/at91-sama7g5ek.dts +@@ -776,8 +776,6 @@ + &sdmmc0 { + bus-width = <8>; + non-removable; +- no-1-8-v; +- sdhci-caps-mask = <0x0 0x00200000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sdmmc0_default>; + status = "okay"; +@@ -785,8 +783,6 @@ + + &sdmmc1 { + bus-width = <4>; +- no-1-8-v; +- sdhci-caps-mask = <0x0 0x00200000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sdmmc1_default>; + status = "okay"; +-- +2.43.0 + diff --git a/patches/uboot/2025.01/0004-arm-dts-at91-sama7g5ek-supports-high-speed-on-mmc0-e.patch b/patches/uboot/2025.01/0004-arm-dts-at91-sama7g5ek-supports-high-speed-on-mmc0-e.patch new file mode 100644 index 000000000..6bbef0563 --- /dev/null +++ b/patches/uboot/2025.01/0004-arm-dts-at91-sama7g5ek-supports-high-speed-on-mmc0-e.patch @@ -0,0 +1,37 @@ +From 5a530e4eebf64887fd6b449dd45df04eccd07cad Mon Sep 17 00:00:00 2001 +From: Joachim Wiberg +Date: Thu, 12 Feb 2026 10:00:02 +0100 +Subject: [PATCH 4/7] arm: dts: at91: sama7g5ek supports high-speed on mmc0 + (eMMC) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +- eMMC high-speed timing is supported +- eMMC hardware reset is supported + +Tested on sama7g5ek rev 5. + +Signed-off-by: Joachim Wiberg +Signed-off-by: Mattias Walström +--- + arch/arm/dts/at91-sama7g5ek.dts | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm/dts/at91-sama7g5ek.dts b/arch/arm/dts/at91-sama7g5ek.dts +index 5bbbdd8ed76..d2d16bd5f1f 100644 +--- a/arch/arm/dts/at91-sama7g5ek.dts ++++ b/arch/arm/dts/at91-sama7g5ek.dts +@@ -776,6 +776,8 @@ + &sdmmc0 { + bus-width = <8>; + non-removable; ++ cap-mmc-highspeed; ++ cap-mmc-hw-reset; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sdmmc0_default>; + status = "okay"; +-- +2.43.0 + diff --git a/patches/uboot/2025.01/0005-net-phy-Add-the-Airoha-EN8811H-PHY-driver.patch b/patches/uboot/2025.01/0005-net-phy-Add-the-Airoha-EN8811H-PHY-driver.patch new file mode 100644 index 000000000..81e8eccc5 --- /dev/null +++ b/patches/uboot/2025.01/0005-net-phy-Add-the-Airoha-EN8811H-PHY-driver.patch @@ -0,0 +1,980 @@ +From be250151366460ee318ca47bb15ec23e5e322a84 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= +Date: Wed, 18 Feb 2026 17:00:09 +0100 +Subject: [PATCH 5/7] net: phy: Add the Airoha EN8811H PHY driver +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +Add the driver for the Airoha EN8811H 2.5 Gigabit PHY. The PHY supports +100/1000/2500 Mbps with auto negotiation only. + +The driver uses two firmware files, for which updated versions are added to +linux-firmware already. + +Locating the AIROHA FW within the filesystem at the designated partition +and path will trigger its automatic loading and writing to the PHY via MDIO. +If need board specific loading override, +please override the en8811h_read_fw function on board or architecture level. + +Linux upstream AIROHA EN8811H driver commit: +71e79430117d56c409c5ea485a263bc0d8083390 + +Based on the Linux upstream AIROHA EN8811H driver code(air_en8811h.c), +I have modified the relevant process to align with the U-Boot boot sequence. +and have validated this on Banana Pi BPI-R3 Mini. + +Signed-off-by: Lucien.Jheng +Signed-off-by: Mattias Walström +--- + drivers/net/phy/Kconfig | 25 + + drivers/net/phy/Makefile | 1 + + drivers/net/phy/air_en8811h.c | 887 ++++++++++++++++++++++++++++++++++ + 3 files changed, 913 insertions(+) + create mode 100644 drivers/net/phy/air_en8811h.c + +diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig +index 13e73810ad6..4f7451bf0c1 100644 +--- a/drivers/net/phy/Kconfig ++++ b/drivers/net/phy/Kconfig +@@ -83,6 +83,31 @@ config PHY_ADIN + help + Add support for configuring RGMII on Analog Devices ADIN PHYs. + ++menuconfig PHY_AIROHA ++ bool "Airoha Ethernet PHYs support" ++ ++config PHY_AIROHA_EN8811H ++ bool "Airoha Ethernet EN8811H support" ++ depends on PHY_AIROHA ++ help ++ AIROHA EN8811H supported. ++ ++choice ++ prompt "Location of the Airoha PHY firmware" ++ default PHY_AIROHA_FW_IN_MMC ++ depends on PHY_AIROHA_EN8811H ++ ++config PHY_AIROHA_FW_IN_MMC ++ bool "Airoha firmware in MMC partition" ++ help ++ Airoha PHYs use firmware which can be loaded automatically ++ from storage directly attached to the PHY, and then loaded ++ via MDIO commands by the boot loader. The firmware is loaded ++ from a file specified by the U-Boot environment variables ++ en8811h_fw_part, en8811h_fw_dm_dir, and en8811h_fw_dsp_dir. ++ ++endchoice ++ + menuconfig PHY_AQUANTIA + bool "Aquantia Ethernet PHYs support" + select PHY_GIGE +diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile +index 2487f366e1c..87dee3c15b9 100644 +--- a/drivers/net/phy/Makefile ++++ b/drivers/net/phy/Makefile +@@ -11,6 +11,7 @@ obj-$(CONFIG_MV88E6352_SWITCH) += mv88e6352.o + obj-$(CONFIG_PHYLIB) += phy.o + obj-$(CONFIG_PHYLIB_10G) += generic_10g.o + obj-$(CONFIG_PHY_ADIN) += adin.o ++obj-$(CONFIG_PHY_AIROHA_EN8811H) += air_en8811h.o + obj-$(CONFIG_PHY_AQUANTIA) += aquantia.o + obj-$(CONFIG_PHY_ATHEROS) += atheros.o + obj-$(CONFIG_PHY_BROADCOM) += broadcom.o +diff --git a/drivers/net/phy/air_en8811h.c b/drivers/net/phy/air_en8811h.c +new file mode 100644 +index 00000000000..d856d48b4a5 +--- /dev/null ++++ b/drivers/net/phy/air_en8811h.c +@@ -0,0 +1,887 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Driver for the Airoha EN8811H 2.5 Gigabit PHY. ++ * ++ * Limitations of the EN8811H: ++ * - Only full duplex supported ++ * - Forced speed (AN off) is not supported by hardware (100Mbps) ++ * ++ * Source originated from linux air_en8811h.c ++ * ++ * Copyright (C) 2025 Airoha Technology Corp. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define EN8811H_PHY_ID 0x03a2a411 ++ ++#define AIR_FW_ADDR_DM 0x00000000 ++#define AIR_FW_ADDR_DSP 0x00100000 ++ ++#define EN8811H_MD32_DM_SIZE 0x4000 ++#define EN8811H_MD32_DSP_SIZE 0x20000 ++ ++ #define EN8811H_FW_CTRL_1 0x0f0018 ++ #define EN8811H_FW_CTRL_1_START 0x0 ++ #define EN8811H_FW_CTRL_1_FINISH 0x1 ++ #define EN8811H_FW_CTRL_2 0x800000 ++ #define EN8811H_FW_CTRL_2_LOADING BIT(11) ++ ++ /* MII Registers */ ++ #define AIR_AUX_CTRL_STATUS 0x1d ++ #define AIR_AUX_CTRL_STATUS_SPEED_MASK GENMASK(4, 2) ++ #define AIR_AUX_CTRL_STATUS_SPEED_100 0x4 ++ #define AIR_AUX_CTRL_STATUS_SPEED_1000 0x8 ++ #define AIR_AUX_CTRL_STATUS_SPEED_2500 0xc ++ ++#define AIR_EXT_PAGE_ACCESS 0x1f ++#define AIR_PHY_PAGE_STANDARD 0x0000 ++#define AIR_PHY_PAGE_EXTENDED_4 0x0004 ++ ++/* MII Registers Page 4*/ ++#define AIR_BPBUS_MODE 0x10 ++#define AIR_BPBUS_MODE_ADDR_FIXED 0x0000 ++#define AIR_BPBUS_MODE_ADDR_INCR BIT(15) ++#define AIR_BPBUS_WR_ADDR_HIGH 0x11 ++#define AIR_BPBUS_WR_ADDR_LOW 0x12 ++#define AIR_BPBUS_WR_DATA_HIGH 0x13 ++#define AIR_BPBUS_WR_DATA_LOW 0x14 ++#define AIR_BPBUS_RD_ADDR_HIGH 0x15 ++#define AIR_BPBUS_RD_ADDR_LOW 0x16 ++#define AIR_BPBUS_RD_DATA_HIGH 0x17 ++#define AIR_BPBUS_RD_DATA_LOW 0x18 ++ ++/* Registers on MDIO_MMD_VEND1 */ ++#define EN8811H_PHY_FW_STATUS 0x8009 ++#define EN8811H_PHY_READY 0x02 ++ ++/* Registers on MDIO_MMD_VEND2 */ ++#define AIR_PHY_LED_BCR 0x021 ++#define AIR_PHY_LED_BCR_MODE_MASK GENMASK(1, 0) ++#define AIR_PHY_LED_BCR_TIME_TEST BIT(2) ++#define AIR_PHY_LED_BCR_CLK_EN BIT(3) ++#define AIR_PHY_LED_BCR_EXT_CTRL BIT(15) ++ ++#define AIR_PHY_LED_DUR_ON 0x022 ++ ++#define AIR_PHY_LED_DUR_BLINK 0x023 ++ ++#define AIR_PHY_LED_ON(i) (0x024 + ((i) * 2)) ++#define AIR_PHY_LED_ON_MASK (GENMASK(6, 0) | BIT(8)) ++#define AIR_PHY_LED_ON_LINK1000 BIT(0) ++#define AIR_PHY_LED_ON_LINK100 BIT(1) ++#define AIR_PHY_LED_ON_LINK10 BIT(2) ++#define AIR_PHY_LED_ON_LINKDOWN BIT(3) ++#define AIR_PHY_LED_ON_FDX BIT(4) /* Full duplex */ ++#define AIR_PHY_LED_ON_HDX BIT(5) /* Half duplex */ ++#define AIR_PHY_LED_ON_FORCE_ON BIT(6) ++#define AIR_PHY_LED_ON_LINK2500 BIT(8) ++#define AIR_PHY_LED_ON_POLARITY BIT(14) ++#define AIR_PHY_LED_ON_ENABLE BIT(15) ++ ++#define AIR_PHY_LED_BLINK(i) (0x025 + ((i) * 2)) ++#define AIR_PHY_LED_BLINK_1000TX BIT(0) ++#define AIR_PHY_LED_BLINK_1000RX BIT(1) ++#define AIR_PHY_LED_BLINK_100TX BIT(2) ++#define AIR_PHY_LED_BLINK_100RX BIT(3) ++#define AIR_PHY_LED_BLINK_10TX BIT(4) ++#define AIR_PHY_LED_BLINK_10RX BIT(5) ++#define AIR_PHY_LED_BLINK_COLLISION BIT(6) ++#define AIR_PHY_LED_BLINK_RX_CRC_ERR BIT(7) ++#define AIR_PHY_LED_BLINK_RX_IDLE_ERR BIT(8) ++#define AIR_PHY_LED_BLINK_FORCE_BLINK BIT(9) ++#define AIR_PHY_LED_BLINK_2500TX BIT(10) ++#define AIR_PHY_LED_BLINK_2500RX BIT(11) ++ ++#define EN8811H_FW_VERSION 0x3b3c ++ ++#define EN8811H_POLARITY 0xca0f8 ++#define EN8811H_POLARITY_TX_NORMAL BIT(0) ++#define EN8811H_POLARITY_RX_REVERSE BIT(1) ++ ++#define EN8811H_CLK_CGM 0xcf958 ++#define EN8811H_CLK_CGM_CKO BIT(26) ++#define EN8811H_HWTRAP1 0xcf914 ++#define EN8811H_HWTRAP1_CKO BIT(12) ++ ++#define air_upper_16_bits(n) ((u16)((n) >> 16)) ++#define air_lower_16_bits(n) ((u16)((n) & 0xffff)) ++#define clear_bit(bit, bitmap) __clear_bit(bit, bitmap) ++ ++/* Led definitions */ ++#define EN8811H_LED_COUNT 3 ++ ++struct led { ++ unsigned long rules; ++ unsigned long state; ++}; ++ ++enum { ++ AIR_PHY_LED_STATE_FORCE_ON, ++ AIR_PHY_LED_STATE_FORCE_BLINK, ++}; ++ ++enum { ++ AIR_PHY_LED_DUR_BLINK_32MS, ++ AIR_PHY_LED_DUR_BLINK_64MS, ++ AIR_PHY_LED_DUR_BLINK_128MS, ++ AIR_PHY_LED_DUR_BLINK_256MS, ++ AIR_PHY_LED_DUR_BLINK_512MS, ++ AIR_PHY_LED_DUR_BLINK_1024MS, ++}; ++ ++enum { ++ AIR_LED_DISABLE, ++ AIR_LED_ENABLE, ++}; ++ ++enum { ++ AIR_ACTIVE_LOW, ++ AIR_ACTIVE_HIGH, ++}; ++ ++enum { ++ AIR_LED_MODE_DISABLE, ++ AIR_LED_MODE_USER_DEFINE, ++}; ++ ++/* Trigger specific enum */ ++enum air_led_trigger_netdev_modes { ++ AIR_TRIGGER_NETDEV_LINK = 0, ++ AIR_TRIGGER_NETDEV_LINK_10, ++ AIR_TRIGGER_NETDEV_LINK_100, ++ AIR_TRIGGER_NETDEV_LINK_1000, ++ AIR_TRIGGER_NETDEV_LINK_2500, ++ AIR_TRIGGER_NETDEV_LINK_5000, ++ AIR_TRIGGER_NETDEV_LINK_10000, ++ AIR_TRIGGER_NETDEV_HALF_DUPLEX, ++ AIR_TRIGGER_NETDEV_FULL_DUPLEX, ++ AIR_TRIGGER_NETDEV_TX, ++ AIR_TRIGGER_NETDEV_RX, ++ AIR_TRIGGER_NETDEV_TX_ERR, ++ AIR_TRIGGER_NETDEV_RX_ERR, ++ ++ /* Keep last */ ++ __AIR_TRIGGER_NETDEV_MAX, ++}; ++ ++/* Default LED setup: ++ * GPIO5 <-> LED0 On: Link detected, blink Rx/Tx ++ * GPIO4 <-> LED1 On: Link detected at 2500 and 1000 Mbps ++ * GPIO3 <-> LED2 On: Link detected at 2500 and 100 Mbps ++ */ ++#define AIR_DEFAULT_TRIGGER_LED0 (BIT(AIR_TRIGGER_NETDEV_LINK) | \ ++ BIT(AIR_TRIGGER_NETDEV_RX) | \ ++ BIT(AIR_TRIGGER_NETDEV_TX)) ++#define AIR_DEFAULT_TRIGGER_LED1 (BIT(AIR_TRIGGER_NETDEV_LINK_2500) | \ ++ BIT(AIR_TRIGGER_NETDEV_LINK_1000)) ++#define AIR_DEFAULT_TRIGGER_LED2 (BIT(AIR_TRIGGER_NETDEV_LINK_2500) | \ ++ BIT(AIR_TRIGGER_NETDEV_LINK_100)) ++ ++#define AIR_PHY_LED_DUR_UNIT 781 ++#define AIR_PHY_LED_DUR (AIR_PHY_LED_DUR_UNIT << AIR_PHY_LED_DUR_BLINK_64MS) ++ ++struct en8811h_priv { ++ int firmware_version; ++ bool mcu_needs_restart; ++ struct led led[EN8811H_LED_COUNT]; ++}; ++ ++static int air_phy_read_page(struct phy_device *phydev) ++{ ++ return phy_read(phydev, MDIO_DEVAD_NONE, AIR_EXT_PAGE_ACCESS); ++} ++ ++static int air_phy_write_page(struct phy_device *phydev, int page) ++{ ++ return phy_write(phydev, MDIO_DEVAD_NONE, AIR_EXT_PAGE_ACCESS, page); ++} ++ ++int air_phy_select_page(struct phy_device *phydev, int page) ++{ ++ int ret, oldpage; ++ ++ oldpage = air_phy_read_page(phydev); ++ if (oldpage < 0) ++ return oldpage; ++ ++ if (oldpage != page) { ++ ret = air_phy_write_page(phydev, page); ++ if (ret < 0) ++ return ret; ++ } ++ ++ return oldpage; ++} ++ ++int air_phy_restore_page(struct phy_device *phydev, int oldpage, int ret) ++{ ++ int r; ++ ++ if (oldpage < 0) ++ return oldpage; ++ ++ r = air_phy_write_page(phydev, oldpage); ++ if (ret >= 0 && r < 0) ++ ret = r; ++ ++ return ret; ++} ++ ++static int air_buckpbus_reg_write(struct phy_device *phydev, ++ u32 pbus_address, u32 pbus_data) ++{ ++ int ret, saved_page; ++ ++ saved_page = air_phy_select_page(phydev, AIR_PHY_PAGE_EXTENDED_4); ++ if (saved_page < 0) ++ return saved_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_MODE, ++ AIR_BPBUS_MODE_ADDR_FIXED); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_HIGH, ++ air_upper_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_LOW, ++ air_lower_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_HIGH, ++ air_upper_16_bits(pbus_data)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_LOW, ++ air_lower_16_bits(pbus_data)); ++ if (ret < 0) ++ goto restore_page; ++ ++restore_page: ++ if (ret < 0) ++ printf("%s 0x%08x failed: %d\n", __func__, ++ pbus_address, ret); ++ ++ return air_phy_restore_page(phydev, saved_page, ret); ++} ++ ++static int air_buckpbus_reg_read(struct phy_device *phydev, ++ u32 pbus_address, u32 *pbus_data) ++{ ++ int pbus_data_low, pbus_data_high; ++ int ret = 0, saved_page; ++ ++ saved_page = air_phy_select_page(phydev, AIR_PHY_PAGE_EXTENDED_4); ++ if (saved_page < 0) ++ return saved_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_MODE, ++ AIR_BPBUS_MODE_ADDR_FIXED); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_ADDR_HIGH, ++ air_upper_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_ADDR_LOW, ++ air_lower_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ pbus_data_high = phy_read(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_DATA_HIGH); ++ if (pbus_data_high < 0) { ++ ret = pbus_data_high; ++ goto restore_page; ++ } ++ ++ pbus_data_low = phy_read(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_DATA_LOW); ++ if (pbus_data_low < 0) { ++ ret = pbus_data_low; ++ goto restore_page; ++ } ++ ++ *pbus_data = pbus_data_low | (pbus_data_high << 16); ++ ++restore_page: ++ if (ret < 0) ++ printf("%s 0x%08x failed: %d\n", __func__, ++ pbus_address, ret); ++ ++ return air_phy_restore_page(phydev, saved_page, ret); ++} ++ ++static int air_buckpbus_reg_modify(struct phy_device *phydev, ++ u32 pbus_address, u32 mask, u32 set) ++{ ++ int pbus_data_low, pbus_data_high; ++ u32 pbus_data_old, pbus_data_new; ++ int ret = 0, saved_page; ++ ++ saved_page = air_phy_select_page(phydev, AIR_PHY_PAGE_EXTENDED_4); ++ if (saved_page < 0) ++ return saved_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_MODE, ++ AIR_BPBUS_MODE_ADDR_FIXED); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_ADDR_HIGH, ++ air_upper_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_ADDR_LOW, ++ air_lower_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ pbus_data_high = phy_read(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_DATA_HIGH); ++ if (pbus_data_high < 0) ++ return pbus_data_high; ++ ++ pbus_data_low = phy_read(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_RD_DATA_LOW); ++ if (pbus_data_low < 0) ++ return pbus_data_low; ++ ++ pbus_data_old = pbus_data_low | (pbus_data_high << 16); ++ pbus_data_new = (pbus_data_old & ~mask) | set; ++ if (pbus_data_new == pbus_data_old) ++ return 0; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_HIGH, ++ air_upper_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_LOW, ++ air_lower_16_bits(pbus_address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_HIGH, ++ air_upper_16_bits(pbus_data_new)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_LOW, ++ air_lower_16_bits(pbus_data_new)); ++ if (ret < 0) ++ goto restore_page; ++ ++restore_page: ++ if (ret < 0) ++ printf("%s 0x%08x failed: %d\n", __func__, ++ pbus_address, ret); ++ ++ return air_phy_restore_page(phydev, saved_page, ret); ++} ++ ++static int air_write_buf(struct phy_device *phydev, unsigned long address, ++ unsigned long array_size, const unsigned char *buffer) ++{ ++ unsigned int offset; ++ int ret, saved_page; ++ u16 val; ++ ++ saved_page = air_phy_select_page(phydev, AIR_PHY_PAGE_EXTENDED_4); ++ if (saved_page < 0) ++ return saved_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_MODE, ++ AIR_BPBUS_MODE_ADDR_INCR); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_HIGH, ++ air_upper_16_bits(address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_ADDR_LOW, ++ air_lower_16_bits(address)); ++ if (ret < 0) ++ goto restore_page; ++ ++ for (offset = 0; offset < array_size; offset += 4) { ++ val = get_unaligned_le16(&buffer[offset + 2]); ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_HIGH, val); ++ if (ret < 0) ++ goto restore_page; ++ ++ val = get_unaligned_le16(&buffer[offset]); ++ ret = phy_write(phydev, MDIO_DEVAD_NONE, AIR_BPBUS_WR_DATA_LOW, val); ++ if (ret < 0) ++ goto restore_page; ++ } ++ ++restore_page: ++ if (ret < 0) ++ printf("%s 0x%08lx failed: %d\n", __func__, ++ address, ret); ++ ++ return air_phy_restore_page(phydev, saved_page, ret); ++} ++ ++static int en8811h_wait_mcu_ready(struct phy_device *phydev) ++{ ++ int ret, reg_value; ++ ++ /* Because of mdio-lock, may have to wait for multiple loads */ ++ ret = phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1, ++ EN8811H_PHY_FW_STATUS, reg_value, ++ reg_value == EN8811H_PHY_READY, ++ 20000, 7500000, true); ++ if (ret) { ++ printf("MCU not ready: 0x%x\n", reg_value); ++ return -ENODEV; ++ } ++ ++ return 0; ++} ++ ++__weak int en8811h_read_fw(void **addr) ++{ ++ const char *fw_dm, *fw_dsp, *fw_part; ++ u32 ca_crc32; ++ void *buffer; ++ loff_t read; ++ int ret; ++ ++ if (!IS_ENABLED(CONFIG_PHY_AIROHA_FW_IN_MMC)) ++ return -EOPNOTSUPP; ++ ++ /* Allocate memory to store both DM and DSP firmware */ ++ buffer = malloc(EN8811H_MD32_DM_SIZE + EN8811H_MD32_DSP_SIZE); ++ if (!buffer) { ++ printf("Failed to allocate memory for firmware\n"); ++ return -ENOMEM; ++ } ++ ++ /* Get the partition name where the firmware is stored */ ++ fw_part = env_get("en8811h_fw_part"); ++ if (!fw_part) { ++ printf("Error: env var en8811h_fw_part not set.\n"); ++ ret = -EINVAL; ++ goto err_free; ++ } ++ ++ /* Get the DM firmware file path */ ++ fw_dm = env_get("en8811h_fw_dm_dir"); ++ if (!fw_dm) { ++ printf("Error: env var en8811h_fw_dm_dir not set.\n"); ++ ret = -EINVAL; ++ goto err_free; ++ } ++ ++ /* Get the DSP firmware file path */ ++ fw_dsp = env_get("en8811h_fw_dsp_dir"); ++ if (!fw_dsp) { ++ printf("Error: env var en8811h_fw_dsp_dir not set.\n"); ++ ret = -EINVAL; ++ goto err_free; ++ } ++ ++ /* Load DM firmware */ ++ ret = fs_set_blk_dev("mmc", fw_part, FS_TYPE_ANY); ++ if (ret < 0) ++ goto err_free; ++ ++ /* Read DM firmware file into the start of buffer */ ++ ret = fs_read(fw_dm, (ulong)buffer, 0, EN8811H_MD32_DM_SIZE, &read); ++ if (ret < 0) { ++ printf("Failed to read DM firmware: %s\n", fw_dm); ++ goto err_free; ++ } ++ ++ /* Calculate CRC32 of DM firmware for verification */ ++ ca_crc32 = crc32(0, (unsigned char *)buffer, EN8811H_MD32_DM_SIZE); ++ debug("DM crc32: 0x%x\n", ca_crc32); ++ ++ /* Load DSP firmware */ ++ ret = fs_set_blk_dev("mmc", fw_part, FS_TYPE_ANY); ++ if (ret < 0) ++ goto err_free; ++ ++ /* Read DSP firmware file into buffer after DM section */ ++ ret = fs_read(fw_dsp, (ulong)buffer + EN8811H_MD32_DM_SIZE, 0, ++ EN8811H_MD32_DSP_SIZE, &read); ++ if (ret < 0) { ++ printf("Failed to read DSP firmware: %s\n", fw_dsp); ++ goto err_free; ++ } ++ ++ /* Calculate CRC32 of DSP firmware for verification */ ++ ca_crc32 = crc32(0, (unsigned char *)buffer + EN8811H_MD32_DM_SIZE, ++ EN8811H_MD32_DSP_SIZE); ++ debug("DSP crc32: 0x%x\n", ca_crc32); ++ ++ *addr = buffer; ++ debug("Found Airoha Firmware.\n"); ++ ++ return 0; ++ ++err_free: ++ free(buffer); ++ return ret; ++} ++ ++static int en8811h_load_firmware(struct phy_device *phydev) ++{ ++ struct en8811h_priv *priv = phydev->priv; ++ void *buffer = NULL; ++ int ret; ++ ++ if (!IS_ENABLED(CONFIG_PHY_AIROHA_FW_IN_MMC)) { ++ printf("Airoha EN8811H firmware loading not implemented\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ ret = en8811h_read_fw(&buffer); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_buckpbus_reg_write(phydev, EN8811H_FW_CTRL_1, ++ EN8811H_FW_CTRL_1_START); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_buckpbus_reg_modify(phydev, EN8811H_FW_CTRL_2, ++ EN8811H_FW_CTRL_2_LOADING, ++ EN8811H_FW_CTRL_2_LOADING); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_write_buf(phydev, AIR_FW_ADDR_DM, EN8811H_MD32_DM_SIZE, ++ (unsigned char *)buffer); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_write_buf(phydev, AIR_FW_ADDR_DSP, EN8811H_MD32_DSP_SIZE, ++ (unsigned char *)buffer + EN8811H_MD32_DM_SIZE); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_buckpbus_reg_modify(phydev, EN8811H_FW_CTRL_2, ++ EN8811H_FW_CTRL_2_LOADING, 0); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = air_buckpbus_reg_write(phydev, EN8811H_FW_CTRL_1, ++ EN8811H_FW_CTRL_1_FINISH); ++ if (ret < 0) ++ goto en8811h_load_firmware_out; ++ ++ ret = en8811h_wait_mcu_ready(phydev); ++ ++ air_buckpbus_reg_read(phydev, EN8811H_FW_VERSION, ++ &priv->firmware_version); ++ printf("MD32 firmware version: %08x\n", ++ priv->firmware_version); ++ ++en8811h_load_firmware_out: ++ free(buffer); ++ if (ret < 0) ++ printf("Firmware loading failed: %d\n", ret); ++ ++ return ret; ++} ++ ++static int en8811h_restart_mcu(struct phy_device *phydev) ++{ ++ int ret; ++ ++ ret = phy_write_mmd(phydev, 0x1e, 0x8009, 0x0); ++ if (ret < 0) ++ return ret; ++ ++ ret = air_buckpbus_reg_write(phydev, EN8811H_FW_CTRL_1, ++ EN8811H_FW_CTRL_1_START); ++ if (ret < 0) ++ return ret; ++ ++ return air_buckpbus_reg_write(phydev, EN8811H_FW_CTRL_1, ++ EN8811H_FW_CTRL_1_FINISH); ++} ++ ++static int air_led_hw_control_set(struct phy_device *phydev, u8 index, ++ unsigned long rules) ++{ ++ struct en8811h_priv *priv = phydev->priv; ++ u16 on = 0, blink = 0; ++ int ret; ++ ++ if (index >= EN8811H_LED_COUNT) ++ return -EINVAL; ++ ++ priv->led[index].rules = rules; ++ ++ if (rules & BIT(AIR_TRIGGER_NETDEV_FULL_DUPLEX)) ++ on |= AIR_PHY_LED_ON_FDX; ++ ++ if (rules & (BIT(AIR_TRIGGER_NETDEV_LINK_10) | BIT(AIR_TRIGGER_NETDEV_LINK))) ++ on |= AIR_PHY_LED_ON_LINK10; ++ ++ if (rules & (BIT(AIR_TRIGGER_NETDEV_LINK_100) | BIT(AIR_TRIGGER_NETDEV_LINK))) ++ on |= AIR_PHY_LED_ON_LINK100; ++ ++ if (rules & (BIT(AIR_TRIGGER_NETDEV_LINK_1000) | BIT(AIR_TRIGGER_NETDEV_LINK))) ++ on |= AIR_PHY_LED_ON_LINK1000; ++ ++ if (rules & (BIT(AIR_TRIGGER_NETDEV_LINK_2500) | BIT(AIR_TRIGGER_NETDEV_LINK))) ++ on |= AIR_PHY_LED_ON_LINK2500; ++ ++ if (rules & BIT(AIR_TRIGGER_NETDEV_RX)) { ++ blink |= AIR_PHY_LED_BLINK_10RX | ++ AIR_PHY_LED_BLINK_100RX | ++ AIR_PHY_LED_BLINK_1000RX | ++ AIR_PHY_LED_BLINK_2500RX; ++ } ++ ++ if (rules & BIT(AIR_TRIGGER_NETDEV_TX)) { ++ blink |= AIR_PHY_LED_BLINK_10TX | ++ AIR_PHY_LED_BLINK_100TX | ++ AIR_PHY_LED_BLINK_1000TX | ++ AIR_PHY_LED_BLINK_2500TX; ++ } ++ ++ if (blink || on) { ++ /* switch hw-control on, so led-on and led-blink are off */ ++ clear_bit(AIR_PHY_LED_STATE_FORCE_ON, ++ &priv->led[index].state); ++ clear_bit(AIR_PHY_LED_STATE_FORCE_BLINK, ++ &priv->led[index].state); ++ } else { ++ priv->led[index].rules = 0; ++ } ++ ++ ret = phy_modify_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_ON(index), ++ AIR_PHY_LED_ON_MASK, on); ++ ++ if (ret < 0) ++ return ret; ++ ++ return phy_write_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_BLINK(index), ++ blink); ++}; ++ ++static int air_led_init(struct phy_device *phydev, u8 index, u8 state, u8 pol) ++{ ++ int val = 0; ++ int err; ++ ++ if (index >= EN8811H_LED_COUNT) ++ return -EINVAL; ++ ++ if (state == AIR_LED_ENABLE) ++ val |= AIR_PHY_LED_ON_ENABLE; ++ else ++ val &= ~AIR_PHY_LED_ON_ENABLE; ++ ++ if (pol == AIR_ACTIVE_HIGH) ++ val |= AIR_PHY_LED_ON_POLARITY; ++ else ++ val &= ~AIR_PHY_LED_ON_POLARITY; ++ ++ err = phy_write_mmd(phydev, 0x1f, AIR_PHY_LED_ON(index), val); ++ if (err < 0) ++ return err; ++ ++ return 0; ++} ++ ++static int air_leds_init(struct phy_device *phydev, int num, u16 dur, int mode) ++{ ++ struct en8811h_priv *priv = phydev->priv; ++ int ret, i; ++ ++ ret = phy_write_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_DUR_BLINK, ++ dur); ++ if (ret < 0) ++ return ret; ++ ++ ret = phy_write_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_DUR_ON, ++ dur >> 1); ++ if (ret < 0) ++ return ret; ++ ++ switch (mode) { ++ case AIR_LED_MODE_DISABLE: ++ ret = phy_modify_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_BCR, ++ AIR_PHY_LED_BCR_EXT_CTRL | ++ AIR_PHY_LED_BCR_MODE_MASK, 0); ++ break; ++ case AIR_LED_MODE_USER_DEFINE: ++ ret = phy_modify_mmd(phydev, MDIO_MMD_VEND2, AIR_PHY_LED_BCR, ++ AIR_PHY_LED_BCR_EXT_CTRL | ++ AIR_PHY_LED_BCR_CLK_EN, ++ AIR_PHY_LED_BCR_EXT_CTRL | ++ AIR_PHY_LED_BCR_CLK_EN); ++ if (ret < 0) ++ return ret; ++ break; ++ default: ++ printf("LED mode %d is not supported\n", mode); ++ return -EINVAL; ++ } ++ ++ for (i = 0; i < num; ++i) { ++ ret = air_led_init(phydev, i, AIR_LED_ENABLE, AIR_ACTIVE_HIGH); ++ if (ret < 0) { ++ printf("LED%d init failed: %d\n", i, ret); ++ return ret; ++ } ++ air_led_hw_control_set(phydev, i, priv->led[i].rules); ++ } ++ ++ return 0; ++} ++ ++static int en8811h_config(struct phy_device *phydev) ++{ ++ struct en8811h_priv *priv = phydev->priv; ++ ofnode node = phy_get_ofnode(phydev); ++ u32 pbus_value = 0; ++ int ret = 0; ++ ++ /* If restart happened in .probe(), no need to restart now */ ++ if (priv->mcu_needs_restart) { ++ ret = en8811h_restart_mcu(phydev); ++ if (ret < 0) ++ return ret; ++ } else { ++ ret = en8811h_load_firmware(phydev); ++ if (ret) { ++ printf("Load firmware fail.\n"); ++ return ret; ++ } ++ /* Next calls to .config() mcu needs to restart */ ++ priv->mcu_needs_restart = true; ++ } ++ ++ ret = phy_write_mmd(phydev, 0x1e, 0x800c, 0x0); ++ if (ret < 0) ++ return ret; ++ ret = phy_write_mmd(phydev, 0x1e, 0x800d, 0x0); ++ if (ret < 0) ++ return ret; ++ ret = phy_write_mmd(phydev, 0x1e, 0x800e, 0x1101); ++ if (ret < 0) ++ return ret; ++ ret = phy_write_mmd(phydev, 0x1e, 0x800f, 0x0002); ++ if (ret < 0) ++ return ret; ++ ++ /* Serdes polarity */ ++ pbus_value = 0; ++ if (ofnode_read_bool(node, "airoha,pnswap-rx")) ++ pbus_value |= EN8811H_POLARITY_RX_REVERSE; ++ else ++ pbus_value &= ~EN8811H_POLARITY_RX_REVERSE; ++ if (ofnode_read_bool(node, "airoha,pnswap-tx")) ++ pbus_value &= ~EN8811H_POLARITY_TX_NORMAL; ++ else ++ pbus_value |= EN8811H_POLARITY_TX_NORMAL; ++ ret = air_buckpbus_reg_modify(phydev, EN8811H_POLARITY, ++ EN8811H_POLARITY_RX_REVERSE | ++ EN8811H_POLARITY_TX_NORMAL, pbus_value); ++ if (ret < 0) ++ return ret; ++ ++ ret = air_leds_init(phydev, EN8811H_LED_COUNT, AIR_PHY_LED_DUR, ++ AIR_LED_MODE_USER_DEFINE); ++ if (ret < 0) { ++ printf("Failed to disable leds: %d\n", ret); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int en8811h_parse_status(struct phy_device *phydev) ++{ ++ int ret = 0, reg_value; ++ ++ phydev->duplex = DUPLEX_FULL; ++ ++ reg_value = phy_read(phydev, MDIO_DEVAD_NONE, AIR_AUX_CTRL_STATUS); ++ if (reg_value < 0) ++ return reg_value; ++ ++ switch (reg_value & AIR_AUX_CTRL_STATUS_SPEED_MASK) { ++ case AIR_AUX_CTRL_STATUS_SPEED_2500: ++ phydev->speed = SPEED_2500; ++ break; ++ case AIR_AUX_CTRL_STATUS_SPEED_1000: ++ phydev->speed = SPEED_1000; ++ break; ++ case AIR_AUX_CTRL_STATUS_SPEED_100: ++ phydev->speed = SPEED_100; ++ break; ++ default: ++ printf("Auto-neg error, defaulting to 100M/FD\n"); ++ phydev->speed = SPEED_100; ++ break; ++ } ++ ++ return ret; ++} ++ ++static int en8811h_startup(struct phy_device *phydev) ++{ ++ int ret = 0; ++ ++ ret = genphy_update_link(phydev); ++ if (ret) ++ return ret; ++ ++ return en8811h_parse_status(phydev); ++} ++ ++static int en8811h_probe(struct phy_device *phydev) ++{ ++ struct en8811h_priv *priv; ++ ++ priv = malloc(sizeof(*priv)); ++ if (!priv) ++ return -ENOMEM; ++ memset(priv, 0, sizeof(*priv)); ++ ++ priv->led[0].rules = AIR_DEFAULT_TRIGGER_LED0; ++ priv->led[1].rules = AIR_DEFAULT_TRIGGER_LED1; ++ priv->led[2].rules = AIR_DEFAULT_TRIGGER_LED2; ++ ++ /* mcu has just restarted after firmware load */ ++ priv->mcu_needs_restart = false; ++ ++ phydev->priv = priv; ++ ++ return 0; ++} ++ ++U_BOOT_PHY_DRIVER(en8811h) = { ++ .name = "Airoha EN8811H", ++ .uid = EN8811H_PHY_ID, ++ .mask = 0x0ffffff0, ++ .config = &en8811h_config, ++ .probe = &en8811h_probe, ++ .startup = &en8811h_startup, ++ .shutdown = &genphy_shutdown, ++}; +-- +2.43.0 + diff --git a/patches/uboot/2025.01/0006-Add-bpi-r3-mini-device-tree.patch b/patches/uboot/2025.01/0006-Add-bpi-r3-mini-device-tree.patch new file mode 100644 index 000000000..1811ce3c6 --- /dev/null +++ b/patches/uboot/2025.01/0006-Add-bpi-r3-mini-device-tree.patch @@ -0,0 +1,275 @@ +From a987f92a768291669eec1a8c5d413190bd9241ec Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= +Date: Wed, 18 Feb 2026 17:00:42 +0100 +Subject: [PATCH 6/7] Add bpi-r3-mini device tree +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +Signed-off-by: Mattias Walström +--- + arch/arm/dts/Makefile | 1 + + arch/arm/dts/mt7986a-bpi-r3-mini.dts | 238 +++++++++++++++++++++++++++ + 2 files changed, 239 insertions(+) + create mode 100644 arch/arm/dts/mt7986a-bpi-r3-mini.dts + +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 6ad59aeed5f..3561e4c3651 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -1199,6 +1199,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ + mt7981-sd-rfb.dtb \ + mt7986a-bpi-r3-sd.dtb \ + mt7986a-bpi-r3-emmc.dtb \ ++ mt7986a-bpi-r3-mini.dtb \ + mt7986a-rfb.dtb \ + mt7986b-rfb.dtb \ + mt7986a-sd-rfb.dtb \ +diff --git a/arch/arm/dts/mt7986a-bpi-r3-mini.dts b/arch/arm/dts/mt7986a-bpi-r3-mini.dts +new file mode 100644 +index 00000000000..b8d0a01c9ed +--- /dev/null ++++ b/arch/arm/dts/mt7986a-bpi-r3-mini.dts +@@ -0,0 +1,238 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later ++ ++/dts-v1/; ++#include "mt7986.dtsi" ++#include ++#include ++ ++/ { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ model = "Bananapi BPi-R3 Mini"; ++ compatible = "mediatek,mt7986", "mediatek,mt7986-rfb"; ++ ++ chosen { ++ stdout-path = &uart0; ++ tick-timer = &timer0; ++ }; ++ ++ memory@40000000 { ++ device_type = "memory"; ++ reg = <0x40000000 0x80000000>; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ button-reset { ++ label = "reset"; ++ linux,code = ; ++ gpios = <&gpio 7 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ status_led: led-0 { ++ label = "green:status"; ++ gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ led-1 { ++ label = "blue:wlan2g"; ++ gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ led-2 { ++ label = "blue:wlan5g"; ++ gpios = <&gpio 2 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ reg_1p8v: regulator-1p8v { ++ compatible = "regulator-fixed"; ++ regulator-name = "fixed-1.8V"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++ ++ reg_3p3v: regulator-3p3v { ++ compatible = "regulator-fixed"; ++ regulator-name = "fixed-3.3V"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-boot-on; ++ regulator-always-on; ++ }; ++}; ++ ++ð { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mdio_pins>; ++ ++ mediatek,gmac-id = <0>; ++ phy-mode = "2500base-x"; ++ phy-handle = <&phy14>; ++ ++ phy14: eth-phy@e { ++ compatible = "ethernet-phy-id03a2.a411"; ++ reg = <14>; ++ ++ airoha,pnswap-rx; ++ ++ reset-gpios = <&gpio 49 GPIO_ACTIVE_LOW>; ++ reset-assert-us = <10000>; ++ reset-deassert-us = <20000>; ++ }; ++}; ++ ++&mmc0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&mmc0_pins_default>; ++ bus-width = <8>; ++ max-frequency = <200000000>; ++ cap-mmc-highspeed; ++ cap-mmc-hw-reset; ++ vmmc-supply = <®_3p3v>; ++ vqmmc-supply = <®_1p8v>; ++ non-removable; ++ status = "okay"; ++}; ++ ++&pinctrl { ++ mdio_pins: mdio-pins { ++ mux { ++ function = "eth"; ++ groups = "mdc_mdio"; ++ }; ++ ++ conf-en8811-pwr-a { ++ pins = "GPIO_11"; ++ drive-strength = ; ++ bias-pull-down = ; ++ output-low; ++ }; ++ ++ conf-en8811-pwr-b { ++ pins = "GPIO_12"; ++ drive-strength = ; ++ bias-pull-down = ; ++ output-low; ++ }; ++ }; ++ ++ mmc0_pins_default: mmc0default { ++ mux { ++ function = "flash"; ++ groups = "emmc_51"; ++ }; ++ ++ conf-cmd-dat { ++ pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2", ++ "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5", ++ "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD"; ++ input-enable; ++ drive-strength = ; ++ bias-pull-up = ; ++ }; ++ ++ conf-clk { ++ pins = "EMMC_CK"; ++ drive-strength = ; ++ bias-pull-down = ; ++ }; ++ ++ conf-dsl { ++ pins = "EMMC_DSL"; ++ bias-pull-down = ; ++ }; ++ ++ conf-rst { ++ pins = "EMMC_RSTB"; ++ drive-strength = ; ++ bias-pull-up = ; ++ }; ++ }; ++ ++ spi_flash_pins: spi0-pins-func-1 { ++ mux { ++ function = "flash"; ++ groups = "spi0", "spi0_wp_hold"; ++ }; ++ ++ conf-pu { ++ pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP"; ++ drive-strength = ; ++ bias-pull-up = ; ++ }; ++ ++ conf-pd { ++ pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO"; ++ drive-strength = ; ++ bias-pull-down = ; ++ }; ++ }; ++ ++ pwm_pins: pwm0-pins-func-1 { ++ mux { ++ function = "pwm"; ++ groups = "pwm0"; ++ }; ++ }; ++}; ++ ++&pwm { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pwm_pins>; ++ status = "okay"; ++}; ++ ++&spi0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi_flash_pins>; ++ status = "okay"; ++ must_tx; ++ enhance_timing; ++ dma_ext; ++ ipm_design; ++ support_quad; ++ tick_dly = <1>; ++ sample_sel = <0>; ++ ++ spi_nand@0 { ++ compatible = "spi-nand"; ++ reg = <0>; ++ spi-max-frequency = <20000000>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "bl2"; ++ reg = <0x0 0x200000>; ++ }; ++ ++ partition@200000 { ++ label = "ubi"; ++ reg = <0x200000 0x7e00000>; ++ }; ++ }; ++ }; ++ ++}; ++ ++&uart0 { ++ status = "okay"; ++}; ++ ++&watchdog { ++ status = "disabled"; ++}; +-- +2.43.0 + diff --git a/patches/uboot/2025.01/0007-bpi-r3-r4-Add-probe-for-specific-model.patch b/patches/uboot/2025.01/0007-bpi-r3-r4-Add-probe-for-specific-model.patch new file mode 100644 index 000000000..a3e1bbe7a --- /dev/null +++ b/patches/uboot/2025.01/0007-bpi-r3-r4-Add-probe-for-specific-model.patch @@ -0,0 +1,562 @@ +From 57b3cd8612a8da852f0796d97e6a7526cc4742cc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= +Date: Wed, 18 Feb 2026 17:02:23 +0100 +Subject: [PATCH 7/7] bpi-r3/r4: Add probe for specific model +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Organization: Wires + +Probe for bpi-r3 and bpi-r3-mini and select correct device tree, +prepare for bpi-r4 (not supported yet, but soon), for bpi-r3, +look if there are phys connected, if so it is a mini, else it is +regular bpi-r3. + +Signed-off-by: Mattias Walström +--- + arch/arm/mach-mediatek/Kconfig | 3 + + board/mediatek/mt7986/Kconfig | 10 ++ + board/mediatek/mt7986/Makefile | 1 + + board/mediatek/mt7986/bpir3.c | 229 +++++++++++++++++++++++++++ + board/mediatek/mt7988/Kconfig | 9 ++ + board/mediatek/mt7988/Makefile | 1 + + board/mediatek/mt7988/bpir4.c | 33 ++++ + configs/mt7986a_bpir3_emmc_defconfig | 2 + + configs/mt7986a_bpir3_mini_defconfig | 66 ++++++++ + configs/mt7986a_bpir3_sd_defconfig | 2 + + configs/mt7988a_bpir4_defconfig | 85 ++++++++++ + 11 files changed, 441 insertions(+) + create mode 100644 board/mediatek/mt7986/Kconfig + create mode 100644 board/mediatek/mt7986/bpir3.c + create mode 100644 board/mediatek/mt7988/Kconfig + create mode 100644 board/mediatek/mt7988/bpir4.c + create mode 100644 configs/mt7986a_bpir3_mini_defconfig + create mode 100644 configs/mt7988a_bpir4_defconfig + +diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig +index ff1fdee5c8d..def8a564d90 100644 +--- a/arch/arm/mach-mediatek/Kconfig ++++ b/arch/arm/mach-mediatek/Kconfig +@@ -153,4 +153,7 @@ config MTK_BROM_HEADER_INFO + default "media=snand;nandinfo=2k+64" if TARGET_MT7981 || TARGET_MT7986 || TARGET_MT7988 + default "lk=1" if TARGET_MT7623 + ++source "board/mediatek/mt7986/Kconfig" ++source "board/mediatek/mt7988/Kconfig" ++ + endif +diff --git a/board/mediatek/mt7986/Kconfig b/board/mediatek/mt7986/Kconfig +new file mode 100644 +index 00000000000..cea150b52d8 +--- /dev/null ++++ b/board/mediatek/mt7986/Kconfig +@@ -0,0 +1,10 @@ ++if TARGET_MT7986 ++ ++config BOARD_BPI_R3 ++ bool "BananaPi BPI-R3 / BPI-R3-mini board support" ++ select BOARD_LATE_INIT ++ help ++ Enable runtime variant detection for BananaPi BPI-R3 and BPI-R3-mini, ++ selecting the correct device tree from a FIT image. ++ ++endif +diff --git a/board/mediatek/mt7986/Makefile b/board/mediatek/mt7986/Makefile +index 7bb84fa2f4e..b006ee150bd 100644 +--- a/board/mediatek/mt7986/Makefile ++++ b/board/mediatek/mt7986/Makefile +@@ -1,3 +1,4 @@ + # SPDX-License-Identifier: GPL-2.0 + + obj-y += mt7986_rfb.o ++obj-$(CONFIG_BOARD_BPI_R3) += bpir3.o +diff --git a/board/mediatek/mt7986/bpir3.c b/board/mediatek/mt7986/bpir3.c +new file mode 100644 +index 00000000000..01eef55bb74 +--- /dev/null ++++ b/board/mediatek/mt7986/bpir3.c +@@ -0,0 +1,229 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * BPI-R3 / BPI-R3-mini board variant detection ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++DECLARE_GLOBAL_DATA_PTR; ++ ++enum bpir3_variant { ++ BPIR3, ++ BPIR3_MINI, ++}; ++ ++/* ++ * Detect BPI-R3 vs BPI-R3-mini by probing for the Airoha EN8811H PHY. ++ * ++ * BPI-R3-mini: EN8811H is directly on the MDIO bus at addr 14. ++ * GPIO49 (active-low) is its reset; PHYSID1 = 0x03a2. ++ * BPI-R3: MT7531AE switch via SGMII; nothing at MDIO addr 14 → 0xffff. ++ * ++ * NOTE: I2C 0x50 is NOT usable — BPI-R3 SFP cage EEPROMs occupy 0x50–0x5b. ++ */ ++ ++/* ++ * MT7986 GPIO — gpio_base = 0x1001f000 ++ * ++ * DIR register: base + 0x000 + (pin/32)*0x10, 1 bit/pin (1=output) ++ * DOUT register: base + 0x100 + (pin/32)*0x10, 1 bit/pin ++ * MODE register: base + 0x300 + (pin*4/32)*0x10, 4 bits/pin (0=GPIO, 1=eth…) ++ */ ++#define MT7986_GPIO_BASE 0x1001f000UL ++#define GPIO_DIR_REG(p) (MT7986_GPIO_BASE + 0x000 + ((p) / 32) * 0x10) ++#define GPIO_DOUT_REG(p) (MT7986_GPIO_BASE + 0x100 + ((p) / 32) * 0x10) ++#define GPIO_MODE_REG(p) (MT7986_GPIO_BASE + 0x300 + (((p) * 4) / 32) * 0x10) ++#define GPIO_MODE_SHIFT(p) (((p) * 4) % 32) ++ ++/* EN8811H PHY reset: GPIO49, active-low */ ++#define EN8811H_RST_GPIO 49 ++/* EN8811H power control lines: active-low enables on some BPI-R3-mini dts */ ++#define EN8811H_PWR_A_GPIO 11 ++#define EN8811H_PWR_B_GPIO 12 ++/* Alternative EN8811H power control lines used by other mini trees */ ++#define EN8811H_PWR2_A_GPIO 16 ++#define EN8811H_PWR2_B_GPIO 17 ++ ++/* MDC/MDIO pins: GPIO67 = MDC, GPIO68 = MDIO, both on function 1 ("eth") */ ++#define MDC_GPIO 67 ++#define MDIO_GPIO 68 ++ ++/* ++ * MT7986 Frame Engine: ethernet@15100000, GMAC at +0x10000 ++ * ++ * PPSC (+0x0000): MDC clock config — bits[29:24] = divider, bit[4] = turbo ++ * PIAC (+0x0004): PHY indirect access — write then poll PHY_ACS_ST clear ++ */ ++#define GMAC_BASE 0x15110000UL ++#define GMAC_PPSC (GMAC_BASE + 0x0000) ++#define GMAC_PIAC (GMAC_BASE + 0x0004) ++ ++#define PPSC_MDC_CFG_MASK GENMASK(29, 24) ++#define PPSC_MDC_CFG(d) (((d) & 0x3f) << 24) ++#define PPSC_MDC_TURBO BIT(4) ++/* divider = 10 → MDC ≈ 2.5 MHz from 25 MHz reference */ ++#define MDC_DIVIDER 10 ++ ++#define PIAC_ACS_ST BIT(31) ++#define PIAC_REG_S 25 ++#define PIAC_PHY_S 20 ++#define PIAC_CMD_S 18 ++#define PIAC_ST_S 16 ++#define PIAC_DATA_MASK 0xffffU ++#define PIAC_CMD_READ 2 ++#define PIAC_ST_C22 1 ++ ++/* EN8811H PHY ID register values */ ++#define EN8811H_PHYSID1 0x03a2 ++#define EN8811H_PHYSID2_MASK 0xfff0 ++#define EN8811H_PHYSID2 0xa410 ++#define MII_PHYSID1 0x02 /* IEEE MII register 2 */ ++#define MII_PHYSID2 0x03 /* IEEE MII register 3 */ ++ ++/* Set a GPIO pin's mode field (0 = GPIO, 1 = eth function, …) */ ++static void gpio_set_mode(unsigned int pin, unsigned int func) ++{ ++ clrsetbits_le32(GPIO_MODE_REG(pin), ++ 0xf << GPIO_MODE_SHIFT(pin), ++ (func & 0xf) << GPIO_MODE_SHIFT(pin)); ++} ++ ++/* Configure a GPIO pin as output and drive it high or low */ ++static void gpio_out(unsigned int pin, int val) ++{ ++ setbits_le32(GPIO_DIR_REG(pin), BIT(pin % 32)); ++ if (val) ++ setbits_le32(GPIO_DOUT_REG(pin), BIT(pin % 32)); ++ else ++ clrbits_le32(GPIO_DOUT_REG(pin), BIT(pin % 32)); ++} ++ ++/* ++ * Clause-22 MDIO read via the MT7986 GMAC PHY indirect access register. ++ * Returns the 16-bit register value, or -1 on timeout. ++ */ ++static int mdio_read_c22(unsigned int phy, unsigned int reg) ++{ ++ u32 val; ++ int i; ++ ++ val = (PIAC_ST_C22 << PIAC_ST_S) | ++ (PIAC_CMD_READ << PIAC_CMD_S) | ++ (phy << PIAC_PHY_S) | ++ (reg << PIAC_REG_S); ++ writel(val | PIAC_ACS_ST, GMAC_PIAC); ++ ++ for (i = 0; i < 5000; i++) { ++ val = readl(GMAC_PIAC); ++ if (!(val & PIAC_ACS_ST)) ++ return (int)(val & PIAC_DATA_MASK); ++ udelay(1); ++ } ++ ++ return -1; /* timeout */ ++} ++ ++static void enable_mini_power_lines(unsigned int gpio_a, unsigned int gpio_b) ++{ ++ gpio_set_mode(gpio_a, 0); /* mode 0 = GPIO */ ++ gpio_set_mode(gpio_b, 0); /* mode 0 = GPIO */ ++ gpio_out(gpio_a, 0); /* active-low enable */ ++ gpio_out(gpio_b, 0); /* active-low enable */ ++} ++ ++static void pulse_mini_phy_reset(void) ++{ ++ gpio_set_mode(EN8811H_RST_GPIO, 0); /* mode 0 = GPIO */ ++ gpio_out(EN8811H_RST_GPIO, 0); /* assert reset */ ++ mdelay(10); ++ gpio_out(EN8811H_RST_GPIO, 1); /* deassert reset */ ++ mdelay(20); ++} ++ ++static bool is_en8811_id(int id1, int id2) ++{ ++ return id1 == EN8811H_PHYSID1 && ++ (id2 & EN8811H_PHYSID2_MASK) == EN8811H_PHYSID2; ++} ++ ++static int probe_en8811_addr(unsigned int phy_addr) ++{ ++ int id1, id2; ++ ++ id1 = mdio_read_c22(phy_addr, MII_PHYSID1); ++ id2 = mdio_read_c22(phy_addr, MII_PHYSID2); ++ ++ if (id1 < 0 || id2 < 0) ++ return 0; ++ ++ return is_en8811_id(id1, id2); ++} ++ ++static enum bpir3_variant detect_bpir3_variant(void) ++{ ++ unsigned int pwr_a[] = { EN8811H_PWR_A_GPIO, EN8811H_PWR2_A_GPIO }; ++ unsigned int pwr_b[] = { EN8811H_PWR_B_GPIO, EN8811H_PWR2_B_GPIO }; ++ unsigned int i; ++ ++ /* Switch GPIO67 (MDC) and GPIO68 (MDIO) to eth function */ ++ gpio_set_mode(MDC_GPIO, 1); ++ gpio_set_mode(MDIO_GPIO, 1); ++ ++ /* Configure MDC clock: enable turbo + set safe divider (~2.5 MHz) */ ++ setbits_le32(GMAC_PPSC, PPSC_MDC_TURBO); ++ clrsetbits_le32(GMAC_PPSC, PPSC_MDC_CFG_MASK, PPSC_MDC_CFG(MDC_DIVIDER)); ++ ++ /* ++ * Enable EN8811H power rails and probe; some mini boards use ++ * GPIO11/12, others GPIO16/17. ++ */ ++ for (i = 0; i < ARRAY_SIZE(pwr_a); i++) { ++ enable_mini_power_lines(pwr_a[i], pwr_b[i]); ++ pulse_mini_phy_reset(); ++ ++ if (probe_en8811_addr(14) || probe_en8811_addr(15)) { ++ /* Assert reset; DM eth-phy will deassert with proper delays */ ++ gpio_out(EN8811H_RST_GPIO, 0); ++ return BPIR3_MINI; ++ } ++ } ++ ++ return BPIR3; ++} ++ ++int board_fit_config_name_match(const char *name) ++{ ++ static int variant = -1; ++ ++ if (variant < 0) ++ variant = detect_bpir3_variant(); ++ ++ switch (variant) { ++ case BPIR3_MINI: ++ return strcmp(name, "mt7986a-bpi-r3-mini") ? -1 : 0; ++ case BPIR3: ++ default: ++ /* ++ * Accept both sd and emmc variants of BPI-R3; ++ * storage type is determined by spl_boot_device(), not here. ++ */ ++ return (strcmp(name, "mt7986a-bpi-r3-sd") == 0 || ++ strcmp(name, "mt7986a-bpi-r3-emmc") == 0) ? 0 : -1; ++ } ++} ++ ++int board_late_init(void) ++{ ++ const char *model = fdt_getprop(gd->fdt_blob, 0, "model", NULL); ++ ++ if (model && strstr(model, "Mini")) ++ env_set("fdtfile", "mediatek/mt7986a-bananapi-bpi-r3-mini.dtb"); ++ ++ return 0; ++} +diff --git a/board/mediatek/mt7988/Kconfig b/board/mediatek/mt7988/Kconfig +new file mode 100644 +index 00000000000..24c70417ec5 +--- /dev/null ++++ b/board/mediatek/mt7988/Kconfig +@@ -0,0 +1,9 @@ ++if TARGET_MT7988 ++ ++config BOARD_BPI_R4 ++ bool "BananaPi BPI-R4 / BPI-R4-2g5 board support" ++ help ++ Enable runtime variant detection for BananaPi BPI-R4 and BPI-R4-2g5, ++ selecting the correct device tree from a FIT image. ++ ++endif +diff --git a/board/mediatek/mt7988/Makefile b/board/mediatek/mt7988/Makefile +index f1249ab3715..157ee371eae 100644 +--- a/board/mediatek/mt7988/Makefile ++++ b/board/mediatek/mt7988/Makefile +@@ -1,3 +1,4 @@ + # SPDX-License-Identifier: GPL-2.0 + + obj-y += mt7988_rfb.o ++obj-$(CONFIG_BOARD_BPI_R4) += bpir4.o +diff --git a/board/mediatek/mt7988/bpir4.c b/board/mediatek/mt7988/bpir4.c +new file mode 100644 +index 00000000000..46e22d38135 +--- /dev/null ++++ b/board/mediatek/mt7988/bpir4.c +@@ -0,0 +1,33 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * BPI-R4 / BPI-R4-2g5 board variant detection ++ */ ++ ++#include ++#include ++ ++enum bpir4_variant { ++ BPIR4, ++ BPIR4_2G5, ++}; ++ ++/* ++ * Detect which BPI-R4 variant this board is. ++ * TODO: implement real hardware detection ++ */ ++static enum bpir4_variant detect_bpir4_variant(void) ++{ ++ /* Stub: always report BPI-R4 */ ++ return BPIR4; ++} ++ ++int board_fit_config_name_match(const char *name) ++{ ++ switch (detect_bpir4_variant()) { ++ case BPIR4_2G5: ++ return strcmp(name, "mt7988a-bananapi-bpi-r4-2g5") ? -1 : 0; ++ case BPIR4: ++ default: ++ return strcmp(name, "mt7988a-bananapi-bpi-r4") ? -1 : 0; ++ } ++} +diff --git a/configs/mt7986a_bpir3_emmc_defconfig b/configs/mt7986a_bpir3_emmc_defconfig +index ef6a4822c18..193acb4a9b4 100644 +--- a/configs/mt7986a_bpir3_emmc_defconfig ++++ b/configs/mt7986a_bpir3_emmc_defconfig +@@ -9,6 +9,8 @@ CONFIG_ENV_SIZE=0x80000 + CONFIG_ENV_OFFSET=0x300000 + CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" + CONFIG_TARGET_MT7986=y ++CONFIG_BOARD_BPI_R3=y ++CONFIG_SPL_LOAD_FIT=y + CONFIG_SYS_LOAD_ADDR=0x46000000 + CONFIG_DEBUG_UART_BASE=0x11002000 + CONFIG_DEBUG_UART_CLOCK=40000000 +diff --git a/configs/mt7986a_bpir3_mini_defconfig b/configs/mt7986a_bpir3_mini_defconfig +new file mode 100644 +index 00000000000..39e44555c55 +--- /dev/null ++++ b/configs/mt7986a_bpir3_mini_defconfig +@@ -0,0 +1,66 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x80000 ++CONFIG_ENV_OFFSET=0x300000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-mini" ++CONFIG_TARGET_MT7986=y ++CONFIG_BOARD_BPI_R3=y ++CONFIG_SPL_LOAD_FIT=y ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_DEBUG_UART=y ++# CONFIG_EFI_LOADER is not set ++# CONFIG_AUTOBOOT is not set ++CONFIG_DEFAULT_FDT_FILE="mt7986a-bpi-r3-mini" ++CONFIG_SYS_CBSIZE=512 ++CONFIG_SYS_PBSIZE=1049 ++CONFIG_LOGLEVEL=7 ++CONFIG_LOG=y ++CONFIG_SYS_PROMPT="BPI-R3> " ++# CONFIG_BOOTM_NETBSD is not set ++# CONFIG_BOOTM_PLAN9 is not set ++# CONFIG_BOOTM_RTEMS is not set ++# CONFIG_BOOTM_VXWORKS is not set ++# CONFIG_CMD_ELF is not set ++# CONFIG_CMD_UNLZ4 is not set ++# CONFIG_CMD_UNZIP is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_GPT_RENAME=y ++CONFIG_CMD_LSBLK=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_READ=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_PARTITION_TYPE_GUID=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_MMC=y ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_CLK=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7986=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_FAT_WRITE=y ++CONFIG_HEXDUMP=y +diff --git a/configs/mt7986a_bpir3_sd_defconfig b/configs/mt7986a_bpir3_sd_defconfig +index 3d971f5c313..e498b58a4a5 100644 +--- a/configs/mt7986a_bpir3_sd_defconfig ++++ b/configs/mt7986a_bpir3_sd_defconfig +@@ -9,6 +9,8 @@ CONFIG_ENV_SIZE=0x80000 + CONFIG_ENV_OFFSET=0x300000 + CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-sd" + CONFIG_TARGET_MT7986=y ++CONFIG_BOARD_BPI_R3=y ++CONFIG_SPL_LOAD_FIT=y + CONFIG_SYS_LOAD_ADDR=0x46000000 + CONFIG_DEBUG_UART_BASE=0x11002000 + CONFIG_DEBUG_UART_CLOCK=40000000 +diff --git a/configs/mt7988a_bpir4_defconfig b/configs/mt7988a_bpir4_defconfig +new file mode 100644 +index 00000000000..e2e128ec29d +--- /dev/null ++++ b/configs/mt7988a_bpir4_defconfig +@@ -0,0 +1,85 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4" ++CONFIG_TARGET_MT7988=y ++CONFIG_BOARD_BPI_R4=y ++CONFIG_SPL_LOAD_FIT=y ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_DEBUG_UART_BASE=0x11000000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_DEBUG_UART=y ++# CONFIG_EFI_LOADER is not set ++# CONFIG_AUTOBOOT is not set ++CONFIG_DEFAULT_FDT_FILE="mt7988a-bananapi-bpi-r4" ++CONFIG_SYS_CBSIZE=512 ++CONFIG_SYS_PBSIZE=1049 ++CONFIG_LOGLEVEL=7 ++CONFIG_LOG=y ++CONFIG_SYS_PROMPT="BPI-R4> " ++# CONFIG_BOOTM_NETBSD is not set ++# CONFIG_BOOTM_PLAN9 is not set ++# CONFIG_BOOTM_RTEMS is not set ++# CONFIG_BOOTM_VXWORKS is not set ++# CONFIG_CMD_ELF is not set ++CONFIG_CMD_CLK=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_SMC=y ++CONFIG_DOS_PARTITION=y ++CONFIG_EFI_PARTITION=y ++CONFIG_PARTITION_TYPE_GUID=y ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_NETMASK=y ++CONFIG_NETMASK="255.255.255.0" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.2" ++CONFIG_PROT_TCP=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_CLK=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_SFDP_SUPPORT=y ++CONFIG_SPI_FLASH_EON=y ++CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_ISSI=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_SPI_FLASH_SPANSION=y ++CONFIG_SPI_FLASH_STMICRO=y ++CONFIG_SPI_FLASH_WINBOND=y ++CONFIG_SPI_FLASH_XMC=y ++CONFIG_SPI_FLASH_XTX=y ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7988=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SPIM=y ++CONFIG_LZO=y ++CONFIG_HEXDUMP=y +-- +2.43.0 + diff --git a/utils/mkimage.sh b/utils/mkimage.sh index 98eace9de..41698182b 100755 --- a/utils/mkimage.sh +++ b/utils/mkimage.sh @@ -259,6 +259,50 @@ download_bootloader() log "Bootloader ready in temporary directory" } +# Build EN8811H firmware partition image as an ext4 filesystem containing +# EthMD32.dm.bin and EthMD32.DSP.bin. Returns 0 when created, 1 when source +# files are missing. +prepare_en8811h_fw_image() +{ + src_dir="$1" + out_img="$2" + dm_fw="${src_dir}/EthMD32.dm.bin" + dsp_fw="${src_dir}/EthMD32.DSP.bin" + fw_staging="" + + [ -f "$dm_fw" ] && [ -f "$dsp_fw" ] || return 1 + + fw_staging=$(mktemp -d) + cp "$dm_fw" "$fw_staging/EthMD32.dm.bin" + cp "$dsp_fw" "$fw_staging/EthMD32.DSP.bin" + + rm -f "$out_img" + truncate -s 2M "$out_img" + + if command -v mke2fs >/dev/null 2>&1; then + mke2fs -q -t ext4 -L en8811h_fw -d "$fw_staging" "$out_img" + elif command -v mkfs.ext4 >/dev/null 2>&1; then + mkfs.ext4 -q -L en8811h_fw -d "$fw_staging" "$out_img" + else + rm -rf "$fw_staging" + die "mke2fs/mkfs.ext4 not found, cannot create en8811h-fw.bin" + fi + + rm -rf "$fw_staging" + return 0 +} + +maybe_prepare_en8811h_fw_image() +{ + out_img="${BINARIES_DIR}/en8811h-fw.bin" + + [ -f "$out_img" ] && return 0 + + prepare_en8811h_fw_image "${ROOT_DIR}/images/airoha" "$out_img" || \ + prepare_en8811h_fw_image "${ROOT_DIR}/airoha" "$out_img" || \ + prepare_en8811h_fw_image "${BINARIES_DIR}/airoha" "$out_img" || return 0 +} + # Discover boot files for Raspberry Pi boot partition # Scans rpi-firmware directory and builds file list for genimage discover_rpi_boot_files() @@ -519,6 +563,11 @@ if [ -n "$DOWNLOAD_BOOT" ]; then fi fi +if [ "$BOARD" = "bananapi-bpi-r3" ]; then + maybe_prepare_en8811h_fw_image + [ -f "${BINARIES_DIR}/en8811h-fw.bin" ] || die "Missing EN8811H firmware image: ${BINARIES_DIR}/en8811h-fw.bin" +fi + # Template expansion log "Generating genimage configuration for $BOARD..." From 8b95c10e39ee0a6b0576a5814d382de7978b3829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Fri, 13 Feb 2026 14:46:16 +0100 Subject: [PATCH 2/3] bananapi-bpi-r3: README: Add information about bpi-r3-mini The important part is that it needs a special flow to go from vendor firmware to Infix. --- board/aarch64/bananapi-bpi-r3/README.md | 122 +++++++++++------- .../bananapi-bpi-r3/r3mini_emmcboot.png | Bin 0 -> 113840 bytes .../bananapi-bpi-r3/r3mini_nandboot2.png | Bin 0 -> 112124 bytes 3 files changed, 78 insertions(+), 44 deletions(-) create mode 100644 board/aarch64/bananapi-bpi-r3/r3mini_emmcboot.png create mode 100644 board/aarch64/bananapi-bpi-r3/r3mini_nandboot2.png diff --git a/board/aarch64/bananapi-bpi-r3/README.md b/board/aarch64/bananapi-bpi-r3/README.md index 6d503b36e..fa1a95379 100644 --- a/board/aarch64/bananapi-bpi-r3/README.md +++ b/board/aarch64/bananapi-bpi-r3/README.md @@ -1,20 +1,29 @@ -# Banana Pi BPI-R3 +# Banana Pi BPI-R3 / BPI-R3 Mini The board ## Overview -The Banana Pi R3 is a high-performance networking board with full Infix -support for all enabled features including switched Ethernet ports, WiFi, -and SFP interfaces. +The Banana Pi BPI-R3 and BPI-R3 Mini are high-performance networking +boards with full Infix support for all enabled features including +Ethernet, WiFi, and SFP interfaces. + +Both boards share the same SoC and most peripherals. The key +differences are: + +| Feature | BPI-R3 | BPI-R3 Mini | +|-----------------|--------------------|-------------------------| +| Ethernet switch | Yes (4x LAN + WAN) | No (WAN/LAN ports only) | +| SD card slot | Yes | No | ### Hardware Features - MediaTek MT7986 ARM Cortex-A53 quad-core processor @ 2.0 GHz - 2 GB DDR4 RAM -- 8 GB eMMC storage + microSD card slot -- 5x Gigabit Ethernet ports (4x LAN, 1x WAN) -- 2x SFP cages for fiber connectivity (1G/2.5G) +- 8 GB eMMC storage +- microSD card slot (BPI-R3 only) +- 5x Gigabit Ethernet ports with switch core (BPI-R3 only) +- 2x SFP cages for fiber connectivity (1G/2.5G) (BPI-R3 only) - Dual-band WiFi (2.4 GHz + 5 GHz) - USB 3.0 port - Mini PCIe slot @@ -23,16 +32,16 @@ and SFP interfaces. Infix comes preconfigured with: -- **LAN ports** (lan1-lan4): Bridged for internal networking +- **LAN ports** (lan1-lan4): Bridged for internal networking (BPI-R3 only) - **WAN port**: DHCP client enabled for internet connectivity -- **SFP ports** (sfp1, sfp2): Available for configuration +- **SFP ports** (sfp1, sfp2): Available for configuration (BPI-R3 only) - **WiFi interfaces** (wifi0, wifi1): Available for configuration ## Getting Started -### Quick Start with SD Card +### BPI-R3: Quick Start with SD Card -The easiest way to get started is using an SD card: +The easiest way to get started with the BPI-R3 is using an SD card: > [!NOTE] > SD card boot works but we have observed stability issues. For production @@ -49,6 +58,12 @@ The easiest way to get started is using an SD card: - Connect to LAN port or console (115200 8N1) - Default login: `admin` / `admin` +### BPI-R3 Mini: Getting Started + +The BPI-R3 Mini does not have an SD card slot, so you must install +directly to eMMC. See [Installing to eMMC — BPI-R3 +Mini](#bpi-r3-mini) below. + ### Boot Switch Reference The BPI-R3 has a 4-position DIP switch that controls boot media: @@ -62,60 +77,44 @@ The BPI-R3 has a 4-position DIP switch that controls boot media: | 1010 | SPI NAND | Boot from SPI NAND (advanced users) | > [!NOTE] -> Switch position is read from left to right: "0" = OFF, "1" = ON. +> Switch position is read from left to right: "0" = OFF, "1" = ON. > When the DIP switch is in the "UP" position it is OFF(0). -## Advanced: Installing to eMMC +## Installing to eMMC For production deployments or better performance, you can install Infix -to the internal eMMC storage. This is more complex but provides faster -boot times and eliminates the external SD card. +to the internal eMMC storage. > [!IMPORTANT] -> While Infix boots on both SD card and eMMC, we have observed stability -> issues with SD cards on this platform. **eMMC is recommended** for -> reliable operation. - -### Why Use eMMC? - -**Advantages:** - -- More reliable than SD card (stability issues observed with SD cards) -- Faster boot and better performance -- No external SD card to manage -- More robust for industrial/embedded deployments - -**Disadvantages:** - -- More complex installation process -- Requires intermediate NAND boot step -- Harder to recover from errors +> While Infix boots on both SD card and eMMC on the BPI-R3, we have +> observed stability issues with SD cards on this platform. **eMMC is +> recommended** for reliable operation. ### Prerequisites - FTDI USB-to-serial cable (3.3V) for console access -- microSD card with Infix (for initial boot) - USB flash drive (FAT32 formatted) +- microSD card with Infix, for initial boot (BPI-R3 only) - Downloaded files (see below) ### Required Files Download and place these files on a FAT32-formatted USB drive: -1. **Intermediate NAND bootloader** (from Frank-W's U-Boot): - - [bpi-r3_spim-nand_bl2.img][5] (BL2 loader) - - [bpi-r3_spim-nand_fip.bin][6] (FIP image) -2. **Infix eMMC image:** +1. **Infix eMMC image:** - [infix-bpi-r3-emmc.img][3] (Complete system image) -3. **eMMC bootloader** (extracted from): +2. **eMMC bootloader** (extracted from): - [bpi-r3-emmc-boot-2025.01-latest.tar.gz][4] - Extract `bl2.img` from the tarball to your USB drive +3. **Intermediate NAND bootloader** (BPI-R3 only, from Frank-W's U-Boot): + - [bpi-r3_spim-nand_bl2.img][5] (BL2 loader) + - [bpi-r3_spim-nand_fip.bin][6] (FIP image) > [!WARNING] > The following process involves multiple boot mode changes. Take your -> time verify each step carefully. +> time and verify each step carefully. -### Installation Steps +### BPI-R3 #### Step 1: Boot from SD card @@ -177,13 +176,48 @@ mmc partconf 0 1 1 0 Your BPI-R3 should now boot Infix from internal eMMC storage! +### BPI-R3 Mini + +The BPI-R3 Mini does not have an SD card slot, so you have to go +through the factory-installed Linux (OpenWRT) to flash the Infix +bootloader and OS to eMMC. + +#### Step 1: Boot from NAND (factory default) + +BPI-R3 Mini NAND boot switch position + +1. Ensure boot switches are set to NAND mode (factory default) +2. Place `infix-bpi-r3-emmc.img` and `bl2.img` on a USB drive +3. Power on and boot into Linux +4. Mount the USB drive to `/mnt` + +#### Step 2: Flash Infix to eMMC + +From the Linux shell: + +``` +echo 0 > /proc/sys/kernel/printk +dd if=/mnt/infix-bpi-r3-emmc.img of=/dev/mmcblk0 +echo 0 > /sys/block/mmcblk0boot0/force_ro +dd if=/mnt/bl2.img of=/dev/mmcblk0boot0 +sync +``` + +#### Step 3: Boot from eMMC + +BPI-R3 Mini eMMC boot switch position + +1. Power off the board +2. Set boot switches to eMMC mode (see image above) +3. Power on + ## Troubleshooting ### Board won't boot - Verify boot switch positions (check twice!) - Ensure power supply provides adequate current (12V/2A recommended) -- Try booting from SD card with switches at **0000** +- Try booting from SD card with switches at **0000** (BPI-R3 only) ### Can't break into U-Boot @@ -195,9 +229,9 @@ Your BPI-R3 should now boot Infix from internal eMMC storage! - Boot from NAND (**1010**) and verify eMMC image was written - Check USB drive contents - ensure all files are present -- Re-run Step 5 (eMMC boot configuration) +- Re-run the eMMC boot configuration step -### Reverting to SD card +### Reverting to SD card (BPI-R3 only) Simply set boot switches back to **0000** and boot from SD card. The eMMC installation does not affect SD card functionality. diff --git a/board/aarch64/bananapi-bpi-r3/r3mini_emmcboot.png b/board/aarch64/bananapi-bpi-r3/r3mini_emmcboot.png new file mode 100644 index 0000000000000000000000000000000000000000..05a7a2c3f6457834b0311520dcf75c5ae4e617d5 GIT binary patch literal 113840 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 literal 0 HcmV?d00001 diff --git a/board/aarch64/bananapi-bpi-r3/r3mini_nandboot2.png b/board/aarch64/bananapi-bpi-r3/r3mini_nandboot2.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc5796a480c1727bd05bac18a517afb06df3e14 GIT binary patch literal 112124 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 z Date: Thu, 19 Feb 2026 14:06:07 +0100 Subject: [PATCH 3/3] doc: Update Changelog with BPI-r3-mini --- doc/ChangeLog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/ChangeLog.md b/doc/ChangeLog.md index e32f763fc..2d55e23a8 100644 --- a/doc/ChangeLog.md +++ b/doc/ChangeLog.md @@ -12,11 +12,16 @@ All notable changes to the project are documented in this file. - Upgrade Buildroot to 2025.02.11 (LTS) - Add support for Microchip SAMA7G54-EK Evaluation Kit, Arm Cortex-A7 - Add GPS/GNSS receiver support with NTP reference clock integration +- Add support for [Banana Pi R3 Mini][BPI-R3-MINI], a 2 port router with 2 WiFi chip, + uses the same bootloader as BPI-R3 (eMMC-version) ### Fixes N/A +[BPI-R3-MINI]: https://wiki.banana-pi.org/Banana_Pi_BPI-R3_Mini + + [v26.01.0][] - 2026-02-03 -------------------------