new file mode 100644
@@ -0,0 +1,4 @@
+label friendlyarm-nanopi-buildroot
+ kernel /boot/Image
+ devicetree /boot/sun50i-h5-nanopi-neo2.dtb
+ append console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p1 rootwait
new file mode 100644
@@ -0,0 +1,16 @@
+image sdcard.img {
+ hdimage {
+ }
+
+ partition u-boot-tpl-spl-dtb {
+ in-partition-table = "no"
+ image = "u-boot-sunxi-with-spl.bin"
+ offset = 8K
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext4"
+ offset = 1M
+ }
+}
new file mode 100755
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+BOARD_DIR="$(dirname "$0")"
+
+install -m 0644 -D "${BOARD_DIR}/extlinux.conf" "${TARGET_DIR}/boot/extlinux/extlinux.conf"
new file mode 100644
@@ -0,0 +1,34 @@
+Intro
+=====
+
+This default configuration will allow you to start experimenting with the
+buildroot environment for the NanoPi NEO2. With the current configuration
+it will bring-up the board, and allow access through the serial console.
+
+Wiki link:
+https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO2
+
+This configuration uses U-Boot mainline and kernel mainline.
+
+How to build
+============
+
+ $ make friendlyarm_nanopi_neo2_defconfig
+ $ make
+
+Note: you will need access to the internet to download the required
+sources.
+
+How to write the SD card
+========================
+
+Once the build process is finished you will have an image called "sdcard.img"
+in the output/images/ directory.
+
+Copy the bootable "sdcard.img" onto an SD card with "dd":
+
+ $ sudo dd if=output/images/sdcard.img of=/dev/sdX
+ $ sync
+
+Insert the micro SDcard in your NanoPi NEO2 and power it up. The console
+is on the serial line, 115200 8N1.
new file mode 100644
@@ -0,0 +1,57 @@
+# Architecture
+BR2_aarch64=y
+BR2_cortex_a53=y
+BR2_ARM_FPU_VFPV4=y
+
+# Linux headers same as kernel, a 6.6 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
+
+# System
+BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM NanoPi NEO2"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+
+# Image
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo2/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo2/genimage.cfg"
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.18"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo2"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+
+# Filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+
+# Firmware
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.7"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50i_a64"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=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="2024.01"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_neo2"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
+BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="SCP=/dev/null"
+
+# Required tools to create the SD image
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
Add support for the FriendlyARM NanoPi NEO2 with mainline components: - ATF v2.7 - U-Boot 2024.01 - Linux 6.6.18 BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV allows the ethernet driver to be automatically loaded on boot. Otherwise, it will report the 'device not found' error while run the 'ifconfig eth0' command. Board's wiki page: - https://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO2 Signed-off-by: Scott Fan <fancp2007@gmail.com> --- Changes v1 -> v2: - Fix issues from 'utils/docker-run make check-package' - Add atf custom version in the defconfig - No need for sudo to run sync Changes v2 -> v3: - Update patch file, add the upstream tag Changes v3 -> v4: - Use a single integrated image file (u-boot-sunxi-with-spl.bin) - Remove patch file for uboot, switch to binman - Merge boot partition into rootfs partition - Bump kernel version to 6.1.61 Changes v4 -> v5: - Bump kernel version to 6.1.65 Changes v5 -> v6: - Bump kernel version to 6.6.17 - Bump uboot version to 2024.01 - Add option BR2_TARGET_UBOOT_NEEDS_OPENSSL=y Changes v6 -> v7: - Bump kernel version to 6.6.18 - Add option BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y - Resort sections in the defconfig Changes v7 -> v8: - Update commit log to add ATF version - Update commit log to add explanation for the MDEV config --- board/friendlyarm/nanopi-neo2/extlinux.conf | 4 ++ board/friendlyarm/nanopi-neo2/genimage.cfg | 16 ++++++ board/friendlyarm/nanopi-neo2/post-build.sh | 5 ++ board/friendlyarm/nanopi-neo2/readme.txt | 34 ++++++++++++ configs/friendlyarm_nanopi_neo2_defconfig | 57 +++++++++++++++++++++ 5 files changed, 116 insertions(+) create mode 100644 board/friendlyarm/nanopi-neo2/extlinux.conf create mode 100644 board/friendlyarm/nanopi-neo2/genimage.cfg create mode 100755 board/friendlyarm/nanopi-neo2/post-build.sh create mode 100644 board/friendlyarm/nanopi-neo2/readme.txt create mode 100644 configs/friendlyarm_nanopi_neo2_defconfig