[Buildroot] [PATCH v2] board/cubietech/cubieboard4 : Add config file for cubieboard4.

Giulio Benetti giulio.benetti at benettiengineering.com
Wed Feb 7 11:06:52 UTC 2024


Hi Nigel,

On 07/02/24 04:03, Nigel Wang wrote:
> From: nigel_wang <asd617140123 at gmail.com>
> 
> add Cubieboard4 board support.
> 
> - SOC: Allwinner A80.
> - DRAM: 2GiB DDR3 @ 672MHZ.
> - NAND: 8GBeMMC
> - Power: DC 5V.
> - Wifi: 80211 b/g/n. (module is AP6330)
> Reference: https://hirokun.jp/AP6330.pdf
> - Ethernet: RTL8211E
> 
> The detail of board: https://linux-sunxi.org/Cubietech_Cubieboard4
> 
> Board support package includes the following components:
> - mainline Linux Kernel 6.6.8
> - mainline U-boot 2021.10.
> 
> Signed-off-by: Nigel Wang <asd617140123 at gmail.com>

Here you have to keep the previous tags when sending new version of patches:

Reviewed-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
[Build Tested]
Tested-by: Giulio Benetti <giulio.benetti at benettiengineering.com>

> ---
> v1 -> v2
> * Add BR2_cortex_a15_a7=y in buildroot defconfig.
> * Bump linux version to 6.6.8
> * Using sunxi_defconfig in kernel.
> * Using "make savedefconfig" to save defconfig.
> * Remove boot.cmd.

this patch had to be V3, but don't mind at this point.
I ask you when you send newer patches to set as superseded
the previous patch in patchwork:
https://patchwork.ozlabs.org/project/buildroot/list/

> ---
>   DEVELOPERS                                |  4 +++
>   board/cubietech/cubieboard4/extlinux.conf |  5 +++
>   board/cubietech/cubieboard4/genimage.cfg  | 38 ++++++++++++++++++++++
>   board/cubietech/cubieboard4/post-image.sh | 18 +++++++++++
>   configs/cubieboard4_defconfig             | 39 +++++++++++++++++++++++
>   5 files changed, 104 insertions(+)
>   create mode 100644 board/cubietech/cubieboard4/extlinux.conf
>   create mode 100644 board/cubietech/cubieboard4/genimage.cfg
>   create mode 100755 board/cubietech/cubieboard4/post-image.sh
>   create mode 100644 configs/cubieboard4_defconfig
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index a03018ab2b..bffb8f2069 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -3297,3 +3297,7 @@ F:	package/quazip/
>   F:	package/shapelib/
>   F:	package/simple-mail/
>   F:	package/tinc/
> +
> +N:	Nigel Wang <asd617140123 at gmail.com>
> +F:	board/cubietech/cubieboard4/
> +F:	configs/cubieboard4_defconfig
> diff --git a/board/cubietech/cubieboard4/extlinux.conf b/board/cubietech/cubieboard4/extlinux.conf
> new file mode 100644
> index 0000000000..5084e2237b
> --- /dev/null
> +++ b/board/cubietech/cubieboard4/extlinux.conf
> @@ -0,0 +1,5 @@
> +label linux
> +    kernel /boot/zImage
> +    devicetree /sun9i-a80-cubieboard4.dtb
> +    append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
> +
> diff --git a/board/cubietech/cubieboard4/genimage.cfg b/board/cubietech/cubieboard4/genimage.cfg
> new file mode 100644
> index 0000000000..f1dee13923
> --- /dev/null
> +++ b/board/cubietech/cubieboard4/genimage.cfg
> @@ -0,0 +1,38 @@
> +# Minimal SD card image for the Cubieboard2
> +# Based in the Orange Pi genimage.cfg
> +
> +image boot.vfat {
> +	vfat {
> +		files = {
> +			"zImage",
> +			"sun9i-a80-cubieboard4.dtb",
> +			"extlinux"
> +		}
> +	}
> +
> +	size = 8M
> +}
> +
> +image sdcard.img {
> +	hdimage {
> +	}
> +
> +	partition u-boot {
> +		in-partition-table = "no"
> +		image = "u-boot-sunxi-with-spl.bin"
> +		offset = 8K
> +		size = 1016K # 1MB - 8KB
> +	}
> +
> +	partition boot {
> +		partition-type = 0xC
> +		bootable = "true"
> +		image = "boot.vfat"
> +	}
> +
> +	partition rootfs {
> +		partition-type = 0x83
> +		image = "rootfs.ext4"
> +		size = 512M
> +	}
> +}
> diff --git a/board/cubietech/cubieboard4/post-image.sh b/board/cubietech/cubieboard4/post-image.sh
> new file mode 100755
> index 0000000000..e37b960a4d
> --- /dev/null
> +++ b/board/cubietech/cubieboard4/post-image.sh
> @@ -0,0 +1,18 @@
> +#!/bin/sh
> +
> +BOARD_DIR="$(dirname "$0")"
> +install -m 0644 -D $BOARD_DIR/extlinux.conf $BINARIES_DIR/extlinux/extlinux.conf
> +
> +GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
> +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
> +
> +rm -rf "${GENIMAGE_TMP}"
> +
> +genimage                           \
> +	--rootpath "${TARGET_DIR}"     \
> +	--tmppath "${GENIMAGE_TMP}"    \
> +	--inputpath "${BINARIES_DIR}"  \
> +	--outputpath "${BINARIES_DIR}" \
> +	--config "${GENIMAGE_CFG}"
> +
> +exit $?
> diff --git a/configs/cubieboard4_defconfig b/configs/cubieboard4_defconfig
> new file mode 100644
> index 0000000000..0592fe4a2d
> --- /dev/null
> +++ b/configs/cubieboard4_defconfig
> @@ -0,0 +1,39 @@
> +# Architecture
> +BR2_arm=y
> +BR2_cortex_a15_a7=y
> +BR2_ARM_FPU_NEON_VFPV4=y
> +
> +# System
> +BR2_TARGET_GENERIC_HOSTNAME="Cubieboard4"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard4!"
> +BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard4/post-image.sh"

Here the option below is missing and it's needed otherwise the newest
Linux version will be picked and build will fail.
Now we don't see the problem because the latest version is exactly 6.6,
so need this:

# Linux headers same as kernel, a 6.6 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y

> +# Kernel
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.8"
> +BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun9i-a80-cubieboard4"
> +
> +# Filesystem
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +
> +# Bootloader
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard4"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
> +BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS=y
> +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
> +BR2_TARGET_UBOOT_SPL=y
> +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
> +BR2_PACKAGE_HOST_DOSFSTOOLS=y
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_MTOOLS=y
> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y
> --
> 2.34.1
> 

This patch looks to me, except missing Linux header version.

I've added that option and re-built successfully so I confirm my:
Reviewed-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
[Build Tested]
Tested-by: Giulio Benetti <giulio.benetti at benettiengineering.com>

Maybe a Maintainer can edit while committing, of if you can please send
a V3 with that missing line.

Thank you!

Best regards
-- 
Giulio Benetti
CEO&CTO at Benetti Engineering sas



More information about the buildroot mailing list