Skip to content

Commit d77e5ee

Browse files
committed
Add new board banana pi r3
Including bootloader and SDcard image
1 parent 8146e05 commit d77e5ee

File tree

19 files changed

+631
-0
lines changed

19 files changed

+631
-0
lines changed

configs/aarch64_defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ BR2_PACKAGE_MARVELL_CN9130_CRB=y
138138
BR2_PACKAGE_MARVELL_ESPRESSOBIN=y
139139
BR2_PACKAGE_STYX_DCP_SC_28P=y
140140
BR2_PACKAGE_RASPBERRY_PI_4=y
141+
BR2_PACKAGE_BANANA_PI_R3=y
141142
BR2_PACKAGE_FEATURE_WIFI_DONGLE_REALTEK=y
142143
BR2_PACKAGE_CONFD=y
143144
BR2_PACKAGE_CONFD_TEST_MODE=y

configs/mt7986_sd_boot_defconfig

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
BR2_aarch64=y
2+
BR2_TOOLCHAIN_EXTERNAL=y
3+
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
4+
BR2_DL_DIR="$(BR2_EXTERNAL_INFIX_PATH)/dl"
5+
BR2_CCACHE=y
6+
BR2_CCACHE_DIR="$(BR2_EXTERNAL_INFIX_PATH)/.ccache"
7+
BR2_ENABLE_DEBUG=y
8+
BR2_PACKAGE_OVERRIDE_FILE="$(BR2_EXTERNAL_INFIX_PATH)/local.mk"
9+
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_INFIX_PATH)/patches"
10+
BR2_SSP_NONE=y
11+
BR2_INIT_NONE=y
12+
BR2_SYSTEM_BIN_SH_NONE=y
13+
# BR2_PACKAGE_BUSYBOX is not set
14+
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
15+
# BR2_TARGET_ROOTFS_TAR is not set
16+
BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
17+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
18+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/mtk-openwrt/arm-trusted-firmware-mtk.git"
19+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="78a0dfd927bb00ce973a1f8eb4079df0f755887a"
20+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="mt7986"
21+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y
22+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y
23+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="BOOT_DEVICE=sdmmc DRAM_USE_DDR4=1 USE_MKIMAGE=1 MKIMAGE=$(HOST_DIR)/bin/mkimage"
24+
BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.img *.bin"
25+
BR2_TARGET_UBOOT=y
26+
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
27+
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
28+
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2025.01"
29+
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mt7986a_bpir3_sd"
30+
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="${BR2_EXTERNAL_INFIX_PATH}/board/common/uboot/extras.config ${BR2_EXTERNAL_INFIX_PATH}/src/board/banana-pi-r3/uboot/extras.config ${BR2_EXTERNAL_INFIX_PATH}/src/board/banana-pi-r3/uboot/sd-extras.config"
31+
BR2_TARGET_UBOOT_NEEDS_DTC=y
32+
BR2_TARGET_UBOOT_FORMAT_DTB=y
33+
BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="${BR2_EXTERNAL_INFIX_PATH}/src/board/banana-pi-r3/uboot/*.dtsi"
34+
BR2_PACKAGE_HOST_GENIMAGE=y
35+
BR2_PACKAGE_HOST_RAUC=y
36+
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
37+
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
38+
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
39+
TRUSTED_KEYS=y
40+
TRUSTED_KEYS_DEVELOPMENT=y
41+
DISK_IMAGE_BOOT_BIN=y
42+
DISK_IMAGE_BOOT_DATA="${BINARIES_DIR}/flash-image.bin"
43+
DISK_IMAGE_BOOT_OFFSET=0x00200000

package/board/Config.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ source "$BR2_EXTERNAL_INFIX_PATH/package/board/marvell-espressobin/Config.in"
77
source "$BR2_EXTERNAL_INFIX_PATH/package/board/microchip-sparx5-pcb135/Config.in"
88
source "$BR2_EXTERNAL_INFIX_PATH/package/board/styx-dcp-sc-28p/Config.in"
99
source "$BR2_EXTERNAL_INFIX_PATH/package/board/raspberry-pi-4/Config.in"
10+
source "$BR2_EXTERNAL_INFIX_PATH/package/board/banana-pi-r3/Config.in"
11+
1012

1113
endmenu
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
config BR2_PACKAGE_BANANA_PI_R3
2+
bool "Banana Pi R3"
3+
depends on BR2_aarch64
4+
select BR2_PACKAGE_FEATURE_WIFI
5+
select BR2_PACKAGE_LINUX_FIRMWARE
6+
select BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK
7+
select BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7986
8+
#select BR2_PACKAGE_BANANA_PI_R3_SDCARD
9+
select SDCARD_AUX
10+
# select BR2_TARGET_ARM_TRUSTED_FIRMWARE
11+
# select BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT # Does not work, needs a hook in the .mk file
12+
# select BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP
13+
# select BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33
14+
# select BR2_TARGET_UBOOT
15+
# select BR2_TARGET_UBOOT_FORMAT_CUSTOM
16+
# select BR2_TARGET_UBOOT_NEEDS_DTC
17+
# select BR2_TARGET_UBOOT_NEEDS_UBOOT_TOOLS
18+
# select BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
19+
help
20+
Build Banana PI R3 support
21+
22+
# Don't redefine - just set conditional defaults
23+
# config BR2_TARGET_UBOOT_BOARD_DEFCONFIG
24+
# default "mt7986a_bpir3_sd"
25+
26+
# config BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES
27+
# default "${BR2_EXTERNAL_INFIX_PATH}/board/common/uboot/extras.config ${BR2_EXTERNAL_INFIX_PATH}/src/board/banana-pi-r3/uboot/extras.config"
28+
29+
# config BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME
30+
# default "arch/arm/dts/infix-key.dtbo arch/arm/dts/rpi-env.dtbo"
31+
32+
# config BR2_TARGET_UBOOT_CUSTOM_DTS_PATH
33+
# default "${BR2_EXTERNAL_INFIX_PATH}/src/board/banana-pi-r3/uboot/rpi-env.dtso"
34+
35+
# config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL
36+
# default "https://github.com/mtk-openwrt/arm-trusted-firmware.git"
37+
38+
# config BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION
39+
# default "78a0dfd927bb00ce973a1f8eb4079df0f755887a"
40+
41+
# config BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM
42+
# default "mt7986"
43+
44+
# config BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES
45+
# default "BOOT_DEVICE=sdmmc USE_COHERENT_MEM=1"
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
GENIMAGE_CFG="$(BUILD_DIR)/genimage.cfg"
2+
GENIMAGE_TMP="$(BUILD_DIR)/genimage.tmp"
3+
BOARD_DIR="$(BR2_EXTERNAL_INFIX_PATH)/src/board/banana-pi-r3"
4+
BOOTLOADER_NAME=fip.bin
5+
BOOTLOADER2_NAME=bl2.img
6+
7+
BOOTLOADER_PATH=/home/lazzer/Documents/github.com/kernelkit/infix3/output-bootloader/images
8+
9+
define BANANA_PI_R3_LINUX_CONFIG_FIXUPS
10+
$(call KCONFIG_ENABLE_OPT,CONFIG_ARCH_MEDIATEK)
11+
$(call KCONFIG_ENABLE_OPT,CONFIG_MACH_MT7986)
12+
$(call KCONFIG_ENABLE_OPT,CONFIG_PINCTRL_MT7986)
13+
$(call KCONFIG_ENABLE_OPT,CONFIG_SERIAL_8250_MT6577)
14+
$(call KCONFIG_SET_OPT,CONFIG_I2C_GPIO,y)
15+
$(call KCONFIG_SET_OPT,CONFIG_MTK_THERMAL,m)
16+
$(call KCONFIG_ENABLE_OPT,CONFIG_MTK_UART)
17+
$(call KCONFIG_ENABLE_OPT,CONFIG_MTK_WATCHDOG)
18+
$(call KCONFIG_ENABLE_OPT,CONFIG_MEDIATEK_GE_PHY)
19+
$(call KCONFIG_ENABLE_OPT,CONFIG_REALTEK_PHY)
20+
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_VENDOR_MEDIATEK)
21+
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_MEDIATEK_SOC)
22+
$(call KCONFIG_SET_OPT,CONFIG_NET_DSA_MT7530,m)
23+
$(call KCONFIG_SET_OPT,CONFIG_MT7915E,m)
24+
$(call KCONFIG_SET_OPT,CONFIG_PCIE_MEDIATEK_GEN3,m)
25+
$(call KCONFIG_ENABLE_OPT,CONFIG_MTK_SCPSYS)
26+
$(call KCONFIG_ENABLE_OPT,CONFIG_MMC_MTK)
27+
$(call KCONFIG_ENABLE_OPT,CONFIG_MTK_HSDMA)
28+
$(call KCONFIG_SET_OPT,CONFIG_MT7915E,m)
29+
$(call KCONFIG_ENABLE_OPT,CONFIG_MT798X_WMAC)
30+
$(call KCONFIG_SET_OPT,CONFIG_MTK_SOC_THERMAL,m)
31+
$(call KCONFIG_SET_OPT,CONFIG_I2C_MT65XX,m)
32+
$(call KCONFIG_SET_OPT,CONFIG_USB_XHCI_MTK,m)
33+
$(call KCONFIG_SET_OPT,CONFIG_PHY_MTK_TPHY,m)
34+
$(call KCONFIG_SET_OPT,CONFIG_PHY_MTK_XSPHY,m)
35+
$(call KCONFIG_SET_OPT,CONFIG_REGULATOR_GPIO,m)
36+
$(call KCONFIG_SET_OPT,CONFIG_REGULATOR_MT6380,m)
37+
$(call KCONFIG_SET_OPT,CONFIG_PWM_MEDIATEK,m)
38+
$(call KCONFIG_SET_OPT,CONFIG_SENSORS_PWM_FAN,m)
39+
$(call KCONFIG_SET_OPT,CONFIG_NVMEM_MTK_EFUSE,m)
40+
$(call KCONFIG_SET_OPT,CONFIG_CRYPTO_DEV_SAFEXCEL,m)
41+
endef
42+
43+
ifeq ($(BR2_PACKAGE_BANANA_PI_R3),y)
44+
define GENERATE_SD_CARD
45+
VERSION="-$(INFIX_RELEASE)"
46+
cp "$(BOOTLOADER_PATH)/$(BOOTLOADER_NAME)" "$(BINARIES_DIR)"
47+
cp "$(BOOTLOADER_PATH)/$(BOOTLOADER2_NAME)" "$(BINARIES_DIR)"
48+
sed "s|#VERSION#|$(RELEASE)|" "$(BOARD_DIR)/genimage.cfg.in" | \
49+
sed "s|#INFIX_ID#|$(INFIX_ID)|" > "$(GENIMAGE_CFG)"
50+
# Create temporary root path
51+
ROOTPATH_TMP=$(mktemp -d)
52+
trap 'rm -rf \"$ROOTPATH_TMP\"' EXIT
53+
54+
# Clean previous genimage temp directory
55+
rm -rf "${GENIMAGE_TMP}"
56+
57+
# Generate the SD card image
58+
$(HOST_DIR)/bin/genimage \
59+
--rootpath "${ROOTPATH_TMP}" \
60+
--tmppath "$(GENIMAGE_TMP)" \
61+
--inputpath "$(BINARIES_DIR)" \
62+
--outputpath "$(BINARIES_DIR)" \
63+
--config "${GENIMAGE_CFG}"
64+
endef
65+
endif
66+
.PHONY: generate-sdcard-image
67+
all: generate-sdcard-image
68+
generate-sdcard-image: target-post-image
69+
$(call GENERATE_SD_CARD)
70+
71+
72+
$(eval $(ix-board))
73+
$(eval $(generic-package))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# Locally calculated
22
sha256 06d32acf42808b682859008292f0591d2d872f19aa1a8021bfcd1c1c626285e6 arm-trusted-firmware-v2.9.tar.gz
3+
sha256 42faea115c2f249ca47a8dd3b035591ff55482f267b64b84867521c8b021253d arm-trusted-firmware-78a0dfd927bb00ce973a1f8eb4079df0f755887a-git4.tar.gz
4+
sha256 fb138bd3a4ad0bc0860896ebb8acd7f239c81e05cd4eb1aa1c59c440bfe66f24 arm-trusted-firmware-master-git4.tar.gz
5+

src/board/banana-pi-r3/LICENSE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright (c) 2025 The KernelKit Authors
2+
3+
Permission to use, copy, modify, and/or distribute this software for any
4+
purpose with or without fee is hereby granted, provided that the above
5+
copyright notice and this permission notice appear in all copies.
6+
7+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dtb-y += mediatek/mt7986a-bananapi-bpi-r3-sd.dtb
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#include "mt7986a-bananapi-bpi-r3.dtsi"
2+
#include "mt7986a-bananapi-bpi-r3-sd.dtsi"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
/*
3+
* Copyright (C) 2021 MediaTek Inc.
4+
* Author: Sam.Shih <[email protected]>
5+
*/
6+
7+
/*
8+
This is copied from linux where it is an overlay, unfortunatly it is not
9+
possible to use dtbo in sysboot unless present in syslinux.conf
10+
*/
11+
&{/soc/mmc@11230000} {
12+
bus-width = <4>;
13+
max-frequency = <52000000>;
14+
cap-sd-highspeed;
15+
status = "okay";
16+
};

0 commit comments

Comments
 (0)