Skip to content

Commit b35c02a

Browse files
committed
mediatek: add support for BananaPi BPI-R4 MT7988 board
1 parent e157234 commit b35c02a

5 files changed

Lines changed: 100 additions & 2 deletions

File tree

target/linux/mediatek/filogic/base-files/etc/board.d/01_leds

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ case $board in
99
abt,asr3000)
1010
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1"
1111
;;
12+
bananapi,bpi-r4)
13+
ucidef_set_led_netdev "wan" "wan" "mt7530-0:00:green:lan" "wan" "link tx rx"
14+
ucidef_set_led_netdev "lan1" "lan1" "mt7530-0:01:green:lan" "lan1" "link tx rx"
15+
ucidef_set_led_netdev "lan2" "lan2" "mt7530-0:02:green:lan" "lan2" "link tx rx"
16+
ucidef_set_led_netdev "lan3" "lan3" "mt7530-0:03:green:lan" "lan3" "link tx rx"
17+
;;
1218
hf,m7986r1*)
1319
ucidef_set_led_netdev "led-1" "LAN1" "led-1" "lan1"
1420
ucidef_set_led_netdev "led-2" "LAN2" "led-2" "lan2"

target/linux/mediatek/filogic/base-files/etc/board.d/02_network

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ mediatek_setup_interfaces()
2424
bananapi,bpi-r3)
2525
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
2626
;;
27+
bananapi,bpi-r4)
28+
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 eth1" "wan eth2"
29+
;;
2730
cetron,ct3003*|\
2831
fzs,5gcpe-p3|\
2932
jcg,q30-pro|\

target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
REQUIRE_IMAGE_METADATA=1
2+
RAMFS_COPY_BIN='fitblk'
23

34
asus_initial_setup()
45
{
@@ -11,6 +12,21 @@ asus_initial_setup()
1112
ubimkvol /dev/ubi0 -N jffs2 -s 0x3e000
1213
}
1314

15+
platform_get_bootdev() {
16+
local rootdisk="$(cat /sys/firmware/devicetree/base/chosen/rootdisk)"
17+
local handle bootdev
18+
for handle in /sys/class/block/*/of_node/phandle /sys/class/block/*/device/of_node/phandle; do
19+
[ ! -e "$handle" ] && continue
20+
if [ "$rootdisk" = "$(cat $handle)" ]; then
21+
bootdev="${handle%/of_node/phandle}"
22+
bootdev="${bootdev%/device}"
23+
bootdev="${bootdev#/sys/class/block/}"
24+
echo "$bootdev"
25+
break
26+
fi
27+
done
28+
}
29+
1430
platform_do_upgrade() {
1531
local board=$(board_name)
1632

@@ -40,6 +56,21 @@ platform_do_upgrade() {
4056
;;
4157
esac
4258
;;
59+
bananapi,bpi-r4)
60+
[ -e /dev/fit0 ] && fitblk /dev/fit0
61+
[ -e /dev/fitrw ] && fitblk /dev/fitrw
62+
bootdev="$(platform_get_bootdev)"
63+
case "$bootdev" in
64+
mmcblk*)
65+
EMMC_KERN_DEV="/dev/$bootdev"
66+
emmc_do_upgrade "$1"
67+
;;
68+
ubiblock*)
69+
CI_KERNPART="fit"
70+
nand_do_upgrade "$1"
71+
;;
72+
esac
73+
;;
4374
cmcc,rax3000m-emmc|\
4475
glinet,gl-mt2500|\
4576
glinet,gl-mt6000|\
@@ -63,7 +94,8 @@ platform_check_image() {
6394
[ "$#" -gt 1 ] && return 1
6495

6596
case "$board" in
66-
bananapi,bpi-r3)
97+
bananapi,bpi-r3|\
98+
bananapi,bpi-r4)
6799
[ "$magic" != "d00dfeed" ] && {
68100
echo "Invalid image type."
69101
return 1
@@ -88,6 +120,13 @@ platform_copy_config() {
88120
;;
89121
esac
90122
;;
123+
bananapi,bpi-r4)
124+
case "$(platform_get_bootdev)" in
125+
mmcblk*)
126+
emmc_copy_config
127+
;;
128+
esac
129+
;;
91130
cmcc,rax3000m-emmc|\
92131
glinet,gl-mt2500|\
93132
glinet,gl-mt6000|\

target/linux/mediatek/filogic/config-6.6

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
4848
CONFIG_BLK_DEV_LOOP=y
4949
CONFIG_BLK_DEV_SD=y
5050
CONFIG_BLK_MQ_PCI=y
51+
CONFIG_BLK_NVMEM=y
5152
CONFIG_BLK_PM=y
5253
CONFIG_BLOCK_NOTIFIERS=y
5354
CONFIG_BSD_PROCESS_ACCT=y

target/linux/mediatek/image/filogic.mk

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ define Build/mt7988-bl31-uboot
3030
cat $(STAGING_DIR_IMAGE)/mt7988_$1-u-boot.fip >> $@
3131
endef
3232

33-
define Build/mt7986-gpt
33+
define Build/mt798x-gpt
3434
cp $@ $@.tmp 2>/dev/null || true
3535
ptgen -g -o $@.tmp -a 1 -l 1024 \
3636
$(if $(findstring sdmmc,$1), \
@@ -147,6 +147,55 @@ define Device/bananapi_bpi-r3
147147
endef
148148
TARGET_DEVICES += bananapi_bpi-r3
149149

150+
define Device/bananapi_bpi-r4-common
151+
DEVICE_VENDOR := Bananapi
152+
DEVICE_DTS_DIR := $(DTS_DIR)/
153+
DEVICE_DTS_LOADADDR := 0x45f00000
154+
DEVICE_DTS_OVERLAY:= mt7988a-bananapi-bpi-r4-emmc mt7988a-bananapi-bpi-r4-rtc mt7988a-bananapi-bpi-r4-sd mt7988a-bananapi-bpi-r4-wifi-mt7996a
155+
DEVICE_DTC_FLAGS := --pad 4096
156+
DEVICE_PACKAGES := kmod-hwmon-pwmfan kmod-i2c-mux-pca954x kmod-eeprom-at24 kmod-mt7996-firmware \
157+
kmod-rtc-pcf8563 kmod-sfp kmod-usb3 e2fsprogs f2fsck mkf2fs
158+
IMAGES := sysupgrade.itb
159+
KERNEL_LOADADDR := 0x46000000
160+
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
161+
ARTIFACTS := \
162+
emmc-preloader.bin emmc-bl31-uboot.fip \
163+
sdcard.img.gz \
164+
snand-preloader.bin snand-bl31-uboot.fip
165+
ARTIFACT/emmc-preloader.bin := mt7988-bl2 emmc-comb
166+
ARTIFACT/emmc-bl31-uboot.fip := mt7988-bl31-uboot $$(DEVICE_NAME)-emmc
167+
ARTIFACT/snand-preloader.bin := mt7988-bl2 spim-nand-ubi-comb
168+
ARTIFACT/snand-bl31-uboot.fip := mt7988-bl31-uboot $$(DEVICE_NAME)-snand
169+
ARTIFACT/sdcard.img.gz := mt798x-gpt sdmmc |\
170+
pad-to 17k | mt7988-bl2 sdmmc-comb |\
171+
pad-to 6656k | mt7988-bl31-uboot $$(DEVICE_NAME)-sdmmc |\
172+
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),\
173+
pad-to 12M | append-image-stage initramfs-recovery.itb | check-size 44m |\
174+
) \
175+
pad-to 44M | mt7988-bl2 spim-nand-ubi-comb |\
176+
pad-to 45M | mt7988-bl31-uboot $$(DEVICE_NAME)-snand |\
177+
pad-to 51M | mt7988-bl2 emmc-comb |\
178+
pad-to 52M | mt7988-bl31-uboot $$(DEVICE_NAME)-emmc |\
179+
pad-to 56M | mt798x-gpt emmc |\
180+
$(if $(CONFIG_TARGET_ROOTFS_SQUASHFS),\
181+
pad-to 64M | append-image squashfs-sysupgrade.itb | check-size |\
182+
) \
183+
gzip
184+
IMAGE_SIZE := $$(shell expr 64 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
185+
KERNEL := kernel-bin | gzip
186+
KERNEL_INITRAMFS := kernel-bin | lzma | \
187+
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
188+
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-with-rootfs | pad-rootfs | append-metadata
189+
endef
190+
191+
define Device/bananapi_bpi-r4
192+
DEVICE_MODEL := BPi-R4
193+
DEVICE_DTS := mt7988a-bananapi-bpi-r4
194+
DEVICE_DTS_CONFIG := config-mt7988a-bananapi-bpi-r4
195+
$(call Device/bananapi_bpi-r4-common)
196+
endef
197+
TARGET_DEVICES += bananapi_bpi-r4
198+
150199
define Device/cetron_ct3003
151200
DEVICE_VENDOR := Cetron
152201
DEVICE_MODEL := CT3003

0 commit comments

Comments
 (0)