From: Klemens Nanni Subject: u-boot/rk3588: enable IPv6 To: ports Date: Sun, 30 Nov 2025 21:46:19 +0000 U-boot has had support for years, but it is enabled by default only for some boards/targets. After I flashed my NanoPi R6S's eMMC (no SD-card) as per INSTALL.arm64: => setenv serverip6 fe80::1 => tftpboot BOOTAA64.EFI -ipv6 ROUTER SOLICITATION 1 Set gatewayip6: fe80:0000:0000:0000:fce1:baff:fed0:2e5c, prefix_length: 64 Using ethernet@fe1c0000 device TFTP from server fe80:0000:0000:0000:0000:0000:0000:0001; our IP address is fe80:0000:0000:0000:5c27:b1ff:fe14:a9c9 Filename 'BOOTAA64.EFI'. Load address: 0xc00800 Loading: ################ 1.7 MiB/s done Bytes transferred = 229585 (380d1 hex) => bootefi $loadaddr Booting /BOOTAA64.EFI disks: sd0 >> OpenBSD/arm64 BOOTAA64 1.22 boot> iPXE also boots this way, but then hangs, at least on the serial: Booting /ipxe.efi iPXE initialising devices... iPXE 1.21.1+ (ge9a2) -- Open Source Network Boot Firmware -- https://ipxe.org Features: DNS HTTP iSCSI TFTP VLAN SRP AoE EFI Menu Press Ctrl-B for the iPXE command line... I'll investigate that next, but IPv6 itself works fine incl. the ping6 and pxe commands. I don't use DHCPv6 and omitting it causes interactive prompts, hence why it's disabled. Image size growth seems negligible: $ du -k u-* 9408 u-boot-rockchip.bin 9424 u-boot-rockchip.bin.new Feedback? OK? Index: Makefile =================================================================== RCS file: /cvs/ports/sysutils/u-boot/rk3588/Makefile,v diff -u -p -r1.10 Makefile --- Makefile 9 Aug 2025 09:53:19 -0000 1.10 +++ Makefile 30 Nov 2025 20:23:33 -0000 @@ -1,4 +1,5 @@ VERSION= 2025.07 +REVISION= 0 SOC= rk3588 @@ -27,6 +28,11 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAKE_ENV+= BL31=${FULLDISTDIR}/${RK3588_BL31} +ENABLE_OPTS= IPV6 \ + IPV6_ROUTER_DISCOVERY \ + CMD_PING6 +DISABLE_OPTS= CMD_DHCP6 + pre-build: cc -o ${WRKSRC}/rkbinpatch ${FILESDIR}/rkbinpatch.c cd ${WRKSRC} && \ @@ -41,7 +47,9 @@ do-build: O="build/${BOARD}" \ -f ${MAKE_FILE} "${BOARD}"_defconfig cd ${WRKSRC}/build/${BOARD} && \ - ../../scripts/config --set-val BAUDRATE 115200 + ../../scripts/config --set-val BAUDRATE 115200 \ + ${ENABLE_OPTS:=-e %} \ + ${DISABLE_OPTS:=-d %} cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} ROCKCHIP_TPL=${RK3588_TPL} ${MAKE_PROGRAM} \ ${MAKE_FLAGS} O="build/${BOARD}" \