# Rockchip RK3588S octa core 8GB RAM SoC eMMC USB3 USB2 1x GbE 1x M2-E 1x M2-M BOARD_NAME="NanoPi M6" BOARD_VENDOR="friendlyelec" BOARDFAMILY="rockchip-rk3588" BOARD_MAINTAINER="efectn" BOOTCONFIG="nanopi-m6-rk3588s_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate BOOT_SOC="rk3588" KERNEL_TARGET="current,edge,vendor" KERNEL_TEST_TARGET="vendor,current" FULL_DESKTOP="yes" BOOT_LOGO="desktop" IMAGE_PARTITION_TABLE="gpt" BOOT_FDT_FILE="rockchip/rk3588s-nanopi-m6.dtb" BOOT_SCENARIO="spl-blobs" BOOT_SUPPORT_SPI="yes" BOOT_SPI_RKSPI_LOADER="yes" DEFAULT_OVERLAYS="nanopi-m6-display-dsi1-yx35" # Enable YX35 LCD function post_family_tweaks__nanopim6_naming_udev_audios() { display_alert "$BOARD" "Renaming NanoPi M6 HDMI audio" "info" mkdir -p $SDCARD/etc/udev/rules.d/ cat <<- EOF > $SDCARD/etc/udev/rules.d/90-naming-audios.rules SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio" EOF } function post_family_tweaks__nanopim6_naming_udev_network_interfaces() { display_alert "$BOARD" "Renaming NanoPi M6 network interface to LAN" "info" mkdir -p $SDCARD/etc/udev/rules.d/ cat <<- EOF > "${SDCARD}/etc/udev/rules.d/70-persistent-net.rules" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="fe1c0000.ethernet", NAME:="lan" EOF } function pre_config_uboot_target__nanopi_m6_patch_uboot_bootconfig_hack_for_spi() { display_alert "u-boot for ${BOARD}" "u-boot: hack bootconfig for spi image" "info" if [[ $target_make == *"nanopi-m6-spi-rk3588s_defconfig"* ]]; then BOOTCONFIG="nanopi-m6-spi-rk3588s_defconfig" target_make=${target_make/nanopi-m6-spi-rk3588s_defconfig/} else BOOTCONFIG="nanopi-m6-rk3588s_defconfig" target_make=${target_make/nanopi-m6-rk3588s_defconfig/} fi } function post_config_uboot_target__nanopi_m6_keep_spi_bootconfig() { display_alert "u-boot for ${BOARD}" "u-boot: hack bootconfig for spi image" "info" if [[ $BOOTCONFIG == "nanopi-m6-spi-rk3588s_defconfig" ]]; then cp .config ${uboottempdir}/.config.spi fi } function pre_package_uboot_image__nanopi_m6_copy_spiconfig_to_package() { if [[ -f "${uboottempdir}/.config.spi" ]]; then run_host_command_logged cp ${uboottempdir}/.config.spi "$uboottempdir/usr/lib/u-boot/nanopi-m6-spi-rk3588s_defconfig" run_host_command_logged rm ${uboottempdir}/.config.spi fi } function post_family_config__nanopi_m6_use_mainline_uboot() { display_alert "$BOARD" "Mainline U-Boot overrides for $BOARD - $BRANCH" "info" declare -g BOOTCONFIG="nanopi-m6-rk3588s_defconfig" declare -g BOOTCONFIG_SPI="nanopi-m6-spi-rk3588s_defconfig" declare -g BOOTDELAY=1 declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" declare -g BOOTBRANCH="tag:v2025.10" declare -g BOOTPATCHDIR="v2025.10" declare -g BOOTDIR="u-boot-${BOARD}" declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG_SPI;;u-boot-rockchip-spi.bin BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG;;u-boot-rockchip.bin" unset uboot_custom_postprocess # disable stuff from rockchip64_common; we're using binman here which does all the work already } function pre_config_uboot_target__nanopi_m6_patch_rockchip_common_boot_order() { declare -a rockchip_uboot_targets=("mmc0" "nvme" "mmc1" "scsi" "usb" "pxe" "dhcp" "spi") # for future make-this-generic delight display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info" sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h regular_git diff -u include/configs/rockchip-common.h || true }