Skip to contentSkip to conversation

Added support for LeMaker BananaPi M2 Plus board.

PATCH New Mike Harmony 2 participants 2 messages Aug 23, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Added support for LeMaker BananaPi M2 Plus board.

---
 DEVELOPERS                          |  4 ++++
 board/lemaker/m2-plus/boot.cmd      |  7 +++++++
 board/lemaker/m2-plus/genimage.cfg  | 33 +++++++++++++++++++++++++++++++++
 board/lemaker/m2-plus/post-build.sh | 12 ++++++++++++
 configs/bananapi_m2_plus_defconfig  | 33 +++++++++++++++++++++++++++++++++
 5 files changed, 89 insertions(+)
 create mode 100644 board/lemaker/m2-plus/boot.cmd
 create mode 100644 board/lemaker/m2-plus/genimage.cfg
 create mode 100755 board/lemaker/m2-plus/post-build.sh
 create mode 100644 configs/bananapi_m2_plus_defconfig
DEVELOPERS +4 -0
index f3944e2..465293e 100644
@@ -1234,6 +1234,10 @@ N:	Micha? ?yszczek <[email protected]>
 F:	board/altera/socrates_cyclone5/
 F:	configs/socrates_cyclone5_defconfig
 
+N:	Mike Harmony <[email protected]>
+F:	board/lemaker/m2-plus/
+F:	configs/bananapi_m2_plus_defconfig
+
 N:	Mikhail Boiko <[email protected]>
 F:	package/libfribidi/
 
board/lemaker/m2-plus/boot.cmd new file +7 -0
new file mode 100644
index 0000000..d22464a
@@ -0,0 +1,7 @@
+setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
+
+mmc dev 0
+fatload mmc 0 $kernel_addr_r zImage
+fatload mmc 0 $fdt_addr_r sun8i-h3-bananapi-m2-plus.dtb
+
+bootz $kernel_addr_r - $fdt_addr_r
board/lemaker/m2-plus/genimage.cfg new file +33 -0
new file mode 100644
index 0000000..cde0669
@@ -0,0 +1,33 @@
+image boot.vfat {
+	vfat {
+		files = {
+			"zImage",
+			"sun8i-h3-bananapi-m2-plus.dtb",
+			"boot.scr"
+		}
+	}
+	size = 64M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition u-boot {
+		in-partition-table = "no"
+		image = "u-boot-sunxi-with-spl.bin"
+		offset = 8192
+		size = 1040384 # 1MB - 8192
+	}
+
+	partition boot {
+		partition-type = 0xC
+		bootable = "true"
+		image = "boot.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+	}
+}
board/lemaker/m2-plus/post-build.sh new file +12 -0
new file mode 100755
index 0000000..fb4b6e9
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Remove all but the brcmfmac43362 firmware files
+find $TARGET_DIR/lib/firmware/brcm -type f -not -name "brcmfmac43362*" -delete
+
+BOARD_DIR="$(dirname $0)"
+MKIMAGE=$HOST_DIR/usr/bin/mkimage
+BOOT_CMD=$BOARD_DIR/boot.cmd
+BOOT_CMD_H=$BINARIES_DIR/boot.scr
+
+# U-Boot script
+$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H
configs/bananapi_m2_plus_defconfig new file +33 -0
new file mode 100644
index 0000000..c2bae51
@@ -0,0 +1,33 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_KERNEL_HEADERS_4_12=y
+BR2_BINUTILS_VERSION_2_27_X=y
+BR2_GCC_VERSION_5_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M2 Plus"
+BR2_SYSTEM_DHCP="eth0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/lemaker/m2-plus/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/lemaker/m2-plus/genimage.cfg board/bananapi/m2-plus/boot.cmd"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://git.kernel.org/torvalds/t/linux-4.13-rc5.tar.gz"
+BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-bananapi-m2-plus"
+BR2_PACKAGE_IPERF3=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_RESBLKS=0
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.07-rc1"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Sinovoip_BPI_M2_Plus"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_PACKAGE_HOST_GENEXT2FS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
+BR2_TARGET_ROOTFS_EXT2_BLOCKS=61440
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 Added support for LeMaker BananaPi M2 Plus board.

Hello,

Quoted 1 line · Mike Harmony

Thanks for this new iteration! A few comments below, it's almost ready to go.

board/lemaker/m2-plus/post-build.sh line 4

Quoted 10 lines
board/lemaker/m2-plus/post-build.sh new file +4 -0
new file mode 100755
index 0000000..fb4b6e9
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Remove all but the brcmfmac43362 firmware files
+find $TARGET_DIR/lib/firmware/brcm -type f -not -name "brcmfmac43362*" -delete

Your defconfig does not enable any firmware related package, so this seems useless.

board/lemaker/m2-plus/post-build.sh line 12

Quoted 7 lines
board/lemaker/m2-plus/post-build.sh new file +7 -0
+BOARD_DIR="$(dirname $0)"
+MKIMAGE=$HOST_DIR/usr/bin/mkimage
+BOOT_CMD=$BOARD_DIR/boot.cmd
+BOOT_CMD_H=$BINARIES_DIR/boot.scr
+
+# U-Boot script
+$MKIMAGE -C none -A arm -T script -d $BOOT_CMD $BOOT_CMD_H

You can remove this, and use BR2_TARGET_UBOOT_BOOT_SCRIPT instead.

configs/bananapi_m2_plus_defconfig line 6

Quoted 12 lines
configs/bananapi_m2_plus_defconfig new file +6 -0
new file mode 100644
index 0000000..c2bae51
@@ -0,0 +1,33 @@
+BR2_arm=y
+BR2_cortex_a7=y
+BR2_KERNEL_HEADERS_4_12=y
+BR2_BINUTILS_VERSION_2_27_X=y
+BR2_GCC_VERSION_5_X=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y

Please remove those four lines, and keep the default toolchain configuration. However, make sure to use:

BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_12=y

configs/bananapi_m2_plus_defconfig line 18

Quoted 12 lines
configs/bananapi_m2_plus_defconfig new file +12 -0
+BR2_TARGET_GENERIC_ISSUE="Welcome to Bananapi M2 Plus"
+BR2_SYSTEM_DHCP="eth0"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/lemaker/m2-plus/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/lemaker/m2-plus/genimage.cfg board/bananapi/m2-plus/boot.cmd"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://git.kernel.org/torvalds/t/linux-4.13-rc5.tar.gz"
+BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-bananapi-m2-plus"
+BR2_PACKAGE_IPERF3=y

Please remove this package, we want minimal configurations.

configs/bananapi_m2_plus_defconfig line 21

Quoted 3 lines
configs/bananapi_m2_plus_defconfig new file +3 -0
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_RESBLKS=0

Please drop this option, it is not needed.

configs/bananapi_m2_plus_defconfig line 25

Quoted 4 lines
configs/bananapi_m2_plus_defconfig new file +4 -0
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.07-rc1"

The final 2017.07 has been published in July, could you use that instead of this release candidate ?

configs/bananapi_m2_plus_defconfig line 33

Quoted 8 lines
configs/bananapi_m2_plus_defconfig new file +8 -0
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Sinovoip_BPI_M2_Plus"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_PACKAGE_HOST_GENEXT2FS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
+BR2_TARGET_ROOTFS_EXT2_BLOCKS=61440

This last option no longer exists in Buildroot, so please drop it. The replacement is BR2_TARGET_ROOTFS_EXT2_SIZE, but the default value of 60MB should be sufficient.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com