Attachment '20210520-01-sysutils-u-boot-nanopc-t4-friendlyelec.diff'

Download

   1 diff --git a/sysutils/u-boot-nanopc-t4-friendlyelec/Makefile b/sysutils/u-boot-nanopc-t4-friendlyelec/Makefile
   2 new file mode 100644
   3 index 000000000000..b1a2d0b1cfe2
   4 --- /dev/null
   5 +++ b/sysutils/u-boot-nanopc-t4-friendlyelec/Makefile
   6 @@ -0,0 +1,270 @@
   7 +# $FreeBS$
   8 +#
   9 +# Someone with more ports clue can try to mangle this into the right
  10 +# u-boot-master settings.  Meanwhile I am using c&p.
  11 +#
  12 +
  13 +M_FILESDIR=	${.CURDIR}/../u-boot-master/files/
  14 +EXTRA_PATCHES?=	${M_FILESDIR}
  15 +
  16 +UBOOT_VERSION=	715e7a9		# 2017.09
  17 +MODEL=		nanopc-t4-friendlyelec
  18 +BOARD_CONFIG=	nanopc-t4-rk3399_defconfig
  19 +FAMILY=		rk3399
  20 +
  21 +
  22 +
  23 +PORTNAME=	uboot-rockchip
  24 +PORTVERSION=	${UBOOT_VERSION}
  25 +CATEGORIES=	sysutils
  26 +PKGNAMESUFFIX?=	-${MODEL}
  27 +
  28 +USE_GITHUB=     yes
  29 +GH_ACCOUNT=	friendlyarm
  30 +GH_PROJECT=	rkbin:rkbin
  31 +GH_TAGNAME=	friendlyelec:rkbin
  32 +
  33 +
  34 +MAINTAINER?=	devnull@FreeBSD.org
  35 +COMMENT=	Cross-build das u-boot for model ${MODEL}
  36 +
  37 +LICENSE=	GPLv2
  38 +
  39 +BUILD_DEPENDS+=	gsed:textproc/gsed \
  40 +		swig:devel/swig \
  41 +		dtc>=1.4.1:sysutils/dtc \
  42 +		mkimage:sysutils/u-boot-tools \
  43 +		${PYTHON_PKGNAMEPREFIX}setuptools-pkg>=0:devel/py-setuptools-pkg@${PY_FLAVOR}
  44 +BUILD_DEPENDS+=	${COMPILER}:devel/${COMPILER}
  45 +
  46 +USES=		bison gmake python:3.7+,build shebangfix tar:bz2
  47 +BINARY_ALIAS=	bison=${LOCALBASE}/bin/bison dtc=${LOCALBASE}/bin/dtc sed=gsed python3=${PYTHON_CMD}
  48 +
  49 +SHEBANG_FILES=	tools/binman/binman arch/arm/mach-rockchip/make_fit_atf.py
  50 +SSP_UNSAFE=	yes
  51 +UBOOT_DIR=	share/u-boot/${PORTNAME}${PKGNAMESUFFIX}
  52 +INST=		${PREFIX}/${UBOOT_DIR}
  53 +DESCR?=		${.CURDIR}/pkg-descr
  54 +
  55 +#MAKE_ARGS+=	V=1 CROSS_COMPILE=${CROSS_COMPILE} PYTHON=${PYTHON_CMD} ${ARCHFLAGS}
  56 +MAKE_ARGS+=	V=1
  57 +
  58 +NO_ARCH=	yes
  59 +
  60 +# Use upstreamed patches not yet mainlined
  61 +PATCH_DIST_STRIP=	-p1
  62 +PATCH_SITES+=	https://patchwork.ozlabs.org/patch/
  63 +
  64 +# Sanity checks
  65 +.if !defined(MODEL) && !defined(BOARD_CONFIG) && !defined(FAMILY)
  66 +MODEL=		NONE
  67 +IGNORE=		is a metaport; there is nothing to build
  68 +.else
  69 +.if !defined(MODEL)
  70 +IGNORE+=	MODEL is not defined
  71 +.endif
  72 +.if !defined(BOARD_CONFIG)
  73 +IGNORE+=	BOARD_CONFIG is not defined
  74 +.endif
  75 +.if !defined(FAMILY)
  76 +IGNORE+=	FAMILY is not defined
  77 +.endif
  78 +.endif
  79 +
  80 +# Overrides for OMAP family
  81 +UBOOT_PLIST_OMAP=u-boot.img MLO
  82 +UBOOT_METADATA_OMAP_FILES=	${UBOOT_PLIST_OMAP}
  83 +UBOOT_METADATA_OMAP_METHOD=	file
  84 +
  85 +# Overrides for ALLWINNER family
  86 +UBOOT_PLIST_ALLWINNER=u-boot-sunxi-with-spl.bin
  87 +UBOOT_METADATA_ALLWINNER_FILES=		${UBOOT_PLIST_ALLWINNER}
  88 +UBOOT_METADATA_ALLWINNER_METHOD=	raw
  89 +UBOOT_METADATA_ALLWINNER_RAW_OFFSET=	8
  90 +UBOOT_METADATA_ALLWINNER_RAW_BS=	1k
  91 +
  92 +# Overrides for ALLWINNER64 family
  93 +UBOOT_PLIST_ALLWINNER64=${UBOOT_PLIST_ALLWINNER}
  94 +UBOOT_ARCH_ALLWINNER64=aarch64
  95 +UBOOT_METADATA_ALLWINNER64_FILES=	${UBOOT_PLIST_ALLWINNER64}
  96 +UBOOT_METADATA_ALLWINNER64_METHOD=	raw
  97 +UBOOT_METADATA_ALLWINNER64_RAW_OFFSET=	1
  98 +UBOOT_METADATA_ALLWINNER64_RAW_BS=	128k
  99 +
 100 +# Overrides for Zynq 7000 family
 101 +UBOOT_PLIST_ZYNQ_7000=u-boot.img boot.bin uEnv.txt
 102 +UBOOT_MOVE_ZYNQ_7000=${WRKSRC}/spl/boot.bin ${.CURDIR}/files/uEnv.txt
 103 +
 104 +# Overrides for RPI family
 105 +UBOOT_PLIST_RPI=	u-boot.bin
 106 +UBOOT_METADATA_RPI_FILES=	${UBOOT_PLIST_RPI}
 107 +UBOOT_METADATA_RPI_METHOD=	file
 108 +
 109 +# Overrides for IMX6 family
 110 +UBOOT_METADATA_IMX6_FILES=	u-boot.imx
 111 +UBOOT_METADATA_IMX6_METHOD=	raw
 112 +UBOOT_METADATA_IMX6_RAW_OFFSET=	2
 113 +UBOOT_METADATA_IMX6_RAW_BS=	512
 114 +
 115 +# Override for RK3328 family
 116 +UBOOT_PLIST_RK3328=	idbloader.img u-boot.itb
 117 +UBOOT_ARCH_RK3328=	aarch64
 118 +
 119 +# Override for RK3399 family
 120 +.if defined(FAMILY) && ${FAMILY} == rk3399 && defined(MODEL) && ${MODEL} == nanopc-t4-friendlyelec
 121 +UBOOT_PLIST_RK3399=	idbloader.img uboot.img trust.img
 122 +.else
 123 +UBOOT_PLIST_RK3399=	idbloader.img u-boot.itb
 124 +.endif
 125 +UBOOT_ARCH_RK3399=	aarch64
 126 +
 127 +# Override for ARMADA38X family
 128 +UBOOT_PLIST_ARMADA38X=	u-boot-spl.kwb
 129 +UBOOT_METADATA_ARMADA38X_FILES=		${UBOOT_PLIST_ARMADA38X}
 130 +UBOOT_METADATA_ARMADA38X_METHOD=	raw
 131 +UBOOT_METADATA_ARMADA38X_RAW_OFFSET=	1
 132 +UBOOT_METADATA_ARMADA38X_RAW_BS=	512
 133 +
 134 +# Override for ARMADA8040 family
 135 +UBOOT_PLIST_ARMADA8040=	u-boot.bin
 136 +UBOOT_ARCH_ARMADA8040=	aarch64
 137 +
 138 +# Override for QEMU family
 139 +UBOOT_PLIST_QEMU=	u-boot.bin
 140 +
 141 +# Uboot variables
 142 +.if !defined(UBOOT_VERSION) && defined(UBOOT_VERSION_${FAMILY:tu})
 143 +UBOOT_VERSION=${UBOOT_VERSION_${FAMILY:tu}}
 144 +.endif
 145 +UBOOT_VERSION?=	2021.04
 146 +
 147 +# If a slave port defines a PORTREVISION use it
 148 +.if defined(U_BOOT_SLAVE_PORTREVISION_${UBOOT_VERSION})
 149 +PORTREVISION=	${U_BOOT_SLAVE_PORTREVISION_${UBOOT_VERSION}}
 150 +.endif
 151 +
 152 +.if !defined(UBOOT_PLIST) && defined(UBOOT_PLIST_${FAMILY:tu})
 153 +UBOOT_PLIST=${UBOOT_PLIST_${FAMILY:tu}}
 154 +.endif
 155 +UBOOT_PLIST?=u-boot.img
 156 +
 157 +.if !defined(UBOOT_ARCH) && defined(UBOOT_ARCH_${FAMILY:tu})
 158 +UBOOT_ARCH=${UBOOT_ARCH_${FAMILY:tu}}
 159 +.endif
 160 +UBOOT_ARCH?=	arm
 161 +
 162 +.if ${UBOOT_ARCH} == arm
 163 +CROSS_COMPILE=arm-none-eabi-
 164 +ARCHFLAGS=ARCH=${UBOOT_ARCH}
 165 +UBOOT_PLIST+=	boot.scr
 166 +.elif ${UBOOT_ARCH} == aarch64
 167 +CROSS_COMPILE=aarch64-none-elf-
 168 +ARCHFLAGS=ARCH=arm
 169 +.elif ${UBOOT_ARCH} == riscv64
 170 +CROSS_COMPILE=riscv64-none-elf-
 171 +ARCHFLAGS=ARCH=riscv
 172 +.else
 173 +# Best guess for other architectures
 174 +CROSS_COMPILE=${UBOOT_ARCH}-none-elf-
 175 +ARCHFLAGS=ARCH=${UBOOT_ARCH}
 176 +.endif
 177 +COMPILER?=${CROSS_COMPILE}gcc
 178 +
 179 +.if !defined(UBOOT_MOVE) && defined(UBOOT_MOVE_${FAMILY:tu})
 180 +UBOOT_MOVE=${UBOOT_MOVE_${FAMILY:tu}}
 181 +.endif
 182 +
 183 +# Per family dependancies
 184 +.if defined(FAMILY) && ${FAMILY} == allwinner64
 185 +.if defined(SUBFAMILY) && ${SUBFAMILY} == h6
 186 +BUILD_DEPENDS+=	${LOCALBASE}/share/atf-sun50i_h6/bl31.bin:sysutils/atf-sun50i_h6
 187 +MAKE_ENV+=	BL31=${LOCALBASE}/share/atf-sun50i_h6/bl31.bin
 188 +.else
 189 +BUILD_DEPENDS+=	${LOCALBASE}/share/atf-sun50i_a64/bl31.bin:sysutils/atf-sun50i_a64
 190 +MAKE_ENV+=	BL31=${LOCALBASE}/share/atf-sun50i_a64/bl31.bin
 191 +.endif
 192 +.endif
 193 +
 194 +.if defined(FAMILY) && ${FAMILY} == rk3328
 195 +BUILD_DEPENDS+=	${LOCALBASE}/share/atf-rk3328/bl31.elf:sysutils/atf-rk3328 \
 196 +		${PYTHON_PKGNAMEPREFIX}pyelftools>0:devel/py-pyelftools@${PY_FLAVOR}
 197 +MAKE_ENV+=	BL31=${LOCALBASE}/share/atf-rk3328/bl31.elf
 198 +.endif
 199 +
 200 +.if defined(FAMILY) && ${FAMILY} == rk3399 && defined(MODEL) && ${MODEL} == nanopc-t4-friendlyelec
 201 +BUILD_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}pyelftools>0:devel/py-pyelftools@${PY_FLAVOR}
 202 +.elif defined(FAMILY) && ${FAMILY} == rk3399
 203 +BUILD_DEPENDS+=	${LOCALBASE}/share/atf-rk3399/bl31.elf:sysutils/atf-rk3399 \
 204 +		${PYTHON_PKGNAMEPREFIX}pyelftools>0:devel/py-pyelftools@${PY_FLAVOR}
 205 +MAKE_ENV+=	BL31=${LOCALBASE}/share/atf-rk3399/bl31.elf
 206 +.endif
 207 +
 208 +# Each u-boot family has different files to include, bring them in.
 209 +.for i in ${UBOOT_PLIST}
 210 +PLIST_FILES+=	${UBOOT_DIR}/${i}
 211 +.endfor
 212 +PLIST_FILES+=	${UBOOT_DIR}/README
 213 +
 214 +.if defined(PLIST_EXTRAS)
 215 +.for i in ${PLIST_EXTRAS}
 216 +PLIST_FILES+=	${UBOOT_DIR}/${i}
 217 +.endfor
 218 +.endif
 219 +
 220 +.if !defined(NO_METADATA)
 221 +.if defined(UBOOT_METADATA_${FAMILY:tu}_METHOD)
 222 +METADATA_METHOD=${UBOOT_METADATA_${FAMILY:tu}_METHOD}
 223 +METADATA_FILES=${UBOOT_METADATA_${FAMILY:tu}_FILES}
 224 +PLIST_FILES+=	${UBOOT_DIR}/metadata
 225 +UBOOT_PLIST+=	metadata
 226 +.if ${METADATA_METHOD} == "raw"
 227 +METADATA_OFFSET=${UBOOT_METADATA_${FAMILY:tu}_RAW_OFFSET}
 228 +METADATA_BS=${UBOOT_METADATA_${FAMILY:tu}_RAW_BS}
 229 +.elif ${METADATA_METHOD} == "file"
 230 +.else
 231 +.error "Unsupported METADATA_METHOD"
 232 +.endif
 233 +.endif
 234 +.endif
 235 +
 236 +post-extract:
 237 +	mv -i ${WRKDIR}/rkbin-friendlyelec ${WRKDIR}/rkbin
 238 +
 239 +post-patch:
 240 +	@${REINPLACE_CMD} -e "s|make|${MAKE_CMD}|" ${WRKSRC}/scripts/kconfig/merge_config.sh
 241 +	${CP} ${M_FILESDIR}/boot.cmd ${WRKSRC}/
 242 +.if defined(METADATA_METHOD)
 243 +	@echo "METHOD=uboot-${METADATA_METHOD}" > ${WRKSRC}/metadata
 244 +	@echo "FILES=\"${METADATA_FILES}\"" >> ${WRKSRC}/metadata
 245 +.if ${METADATA_METHOD} == "raw"
 246 +	@echo "OFFSET=${METADATA_OFFSET}" >> ${WRKSRC}/metadata
 247 +	@echo "BS=${METADATA_BS}" >> ${WRKSRC}/metadata
 248 +.elif ${METADATA_METHOD} == "file"
 249 +.endif
 250 +.endif
 251 +
 252 +.if ${UBOOT_ARCH} == arm && !defined(CONFIG_FRAGMENT)
 253 +# For armv6/v7 we want CONFIG_API
 254 +# Use a KConfig fragment for that
 255 +FRAGMENT_NAME=		FreeBSD_Fragment
 256 +CONFIG_FRAGMENT=	${M_FILESDIR}/${FRAGMENT_NAME}
 257 +.endif
 258 +
 259 +#
 260 +# And this is where I am too lazy to replicate the make.sh
 261 +#
 262 +
 263 +do-configure:
 264 +	${DO_NADA}
 265 +
 266 +ALL_TARGET=	nanopi4
 267 +DO_MAKE_BUILD=	env -i PATH="${PATH}" ./make.sh
 268 +
 269 +do-install:
 270 +	${MKDIR} ${STAGEDIR}/${INST}
 271 +.for i in ${UBOOT_PLIST}
 272 +	${INSTALL_DATA} ${WRKSRC}/${i} ${STAGEDIR}/${INST}
 273 +.endfor
 274 +	${INSTALL_DATA} ${DESCR} ${STAGEDIR}/${INST}/README
 275 +
 276 +.include <bsd.port.mk>
 277 diff --git a/sysutils/u-boot-nanopc-t4-friendlyelec/distinfo b/sysutils/u-boot-nanopc-t4-friendlyelec/distinfo
 278 new file mode 100644
 279 index 000000000000..d3ef8c20030c
 280 --- /dev/null
 281 +++ b/sysutils/u-boot-nanopc-t4-friendlyelec/distinfo
 282 @@ -0,0 +1,5 @@
 283 +TIMESTAMP = 1621516662
 284 +SHA256 (friendlyarm-uboot-rockchip-715e7a9_GH0.tar.gz) = d73633f4de1e502b17766a9bb6f0abe8a8d2804047c28f0b7efe715556fa3498
 285 +SIZE (friendlyarm-uboot-rockchip-715e7a9_GH0.tar.gz) = 16481309
 286 +SHA256 (friendlyarm-rkbin-friendlyelec_GH0.tar.gz) = fcfb1246537529f139572659ebf473b246c50f11e78257878b752356866d130a
 287 +SIZE (friendlyarm-rkbin-friendlyelec_GH0.tar.gz) = 12581814
 288 diff --git a/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-build-t4.diff b/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-build-t4.diff
 289 new file mode 100644
 290 index 000000000000..12aa24ff21a7
 291 --- /dev/null
 292 +++ b/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-build-t4.diff
 293 @@ -0,0 +1,764 @@
 294 +diff -upr uboot-rockchip/Makefile uboot-rockchip.this-works-for-me/Makefile
 295 +--- Makefile.orig	2021-05-18 07:09:57.530309000 +0000
 296 ++++ Makefile	2021-05-16 20:26:02.365328000 +0000
 297 +@@ -251,7 +251,7 @@ export KCONFIG_CONFIG
 298 + 
 299 + # SHELL used by kbuild
 300 + CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
 301 +-	  else if [ -x /bin/bash ]; then echo /bin/bash; \
 302 ++	  else if [ -x /usr/local/bin/bash ]; then echo /usr/local/bin/bash; \
 303 + 	  else echo sh; fi ; fi)
 304 + 
 305 + HOSTCC       = cc
 306 +diff -upr uboot-rockchip/arch/arm/dts/Makefile uboot-rockchip.this-works-for-me/arch/arm/dts/Makefile
 307 +--- arch/arm/dts/Makefile.orig	2021-05-18 07:09:57.578863000 +0000
 308 ++++ arch/arm/dts/Makefile	2021-05-16 20:49:21.649428000 +0000
 309 +@@ -28,6 +28,14 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
 310 + 	exynos5422-odroidxu3.dtb
 311 + dtb-$(CONFIG_EXYNOS7420) += exynos7420-espresso7420.dtb
 312 + dtb-$(CONFIG_ARCH_ROCKCHIP) += \
 313 ++	rk3399-evb.dtb \
 314 ++	rk3399-firefly.dtb \
 315 ++	rk3399-puma-ddr1333.dtb \
 316 ++	rk3399-puma-ddr1600.dtb \
 317 ++	rk3399-puma-ddr1866.dtb \
 318 ++	rk3399-nanopi4.dtb
 319 ++
 320 ++disabled-FOO= \
 321 + 	rk3036-sdk.dtb \
 322 + 	rk3066a-mk808.dtb \
 323 + 	rk3126-evb.dtb \
 324 +@@ -52,12 +60,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
 325 + 	rk3368-sheep.dtb \
 326 + 	rk3368-geekbox.dtb \
 327 + 	rk3368-px5-evb.dtb \
 328 +-	rk3399-evb.dtb \
 329 +-	rk3399-firefly.dtb \
 330 +-	rk3399-puma-ddr1333.dtb \
 331 +-	rk3399-puma-ddr1600.dtb \
 332 +-	rk3399-puma-ddr1866.dtb \
 333 +-	rk3399-nanopi4.dtb \
 334 + 	rv1108-evb.dtb
 335 + dtb-$(CONFIG_ARCH_MESON) += \
 336 + 	meson-gxbb-odroidc2.dtb
 337 +diff -upr uboot-rockchip/arch/arm/mach-rockchip/boot_rkimg.c uboot-rockchip.this-works-for-me/arch/arm/mach-rockchip/boot_rkimg.c
 338 +--- arch/arm/mach-rockchip/boot_rkimg.c.orig	2021-05-18 07:09:57.870669000 +0000
 339 ++++ arch/arm/mach-rockchip/boot_rkimg.c	2021-05-18 06:47:19.528484000 +0000
 340 +@@ -446,8 +446,6 @@ static int rockchip_read_distro_dtb(void *fdt_addr)
 341 + 	char devnum_part[12];
 342 + 	char fdt_hex_str[19];
 343 + 	char *fs_argv[5];
 344 +-	int size;
 345 +-	int ret;
 346 + 
 347 + 	if (!rockchip_get_bootdev() || !fdt_addr)
 348 + 		return -ENODEV;
 349 +@@ -516,7 +514,7 @@ int rockchip_read_dtb_file(void *fdt_addr)
 350 + 	}
 351 + #endif
 352 + 	if (ret) {
 353 +-		printf("Failed to load DTB\n");
 354 ++		printf("Failed to load DTB: %d\n", ret);
 355 + 		return ret;
 356 + 	}
 357 + 
 358 +diff -upr uboot-rockchip/arch/arm/mach-rockchip/fit.c uboot-rockchip.this-works-for-me/arch/arm/mach-rockchip/fit.c
 359 +--- arch/arm/mach-rockchip/fit.c.orig	2021-05-18 07:09:57.872486000 +0000
 360 ++++ arch/arm/mach-rockchip/fit.c	2021-05-17 17:02:18.256666000 +0000
 361 +@@ -437,7 +437,7 @@ int rockchip_read_fit_dtb(void *fdt_addr, char **hash,
 362 + 
 363 + 	ret = part_get_info_by_name(dev_desc, part_name, &part);
 364 + 	if (ret < 0) {
 365 +-		FIT_I("No %s partition\n", part_name);
 366 ++		FIT_I("No %s partition: %d\n", part_name, ret);
 367 + 		return ret;
 368 + 	}
 369 + 
 370 +diff -upr uboot-rockchip/board/rockchip/nanopi4/board.c uboot-rockchip.this-works-for-me/board/rockchip/nanopi4/board.c
 371 +--- board/rockchip/nanopi4/board.c.orig	2021-05-18 07:09:58.412022000 +0000
 372 ++++ board/rockchip/nanopi4/board.c	2021-05-17 15:02:44.338282000 +0000
 373 +@@ -344,7 +344,12 @@ void set_dtb_name(void)
 374 + #endif
 375 + 
 376 + 	snprintf(info, ARRAY_SIZE(info),
 377 ++#if 0
 378 + 			"rk3399-nanopi4-rev%02x.dtb", get_board_rev());
 379 ++#else
 380 ++			"rk3399-nanopc-t4.dtb");
 381 ++	env_set("fdtfile", info);
 382 ++#endif
 383 + 	env_set("dtb_name", info);
 384 + }
 385 + 
 386 +diff -upr uboot-rockchip/configs/nanopi4_defconfig uboot-rockchip.this-works-for-me/configs/nanopi4_defconfig
 387 +--- configs/nanopi4_defconfig.orig	2021-05-18 07:09:58.670987000 +0000
 388 ++++ configs/nanopi4_defconfig	2021-05-18 06:51:25.139867000 +0000
 389 +@@ -1,5 +1,8 @@
 390 + CONFIG_ARM=y
 391 + CONFIG_ARCH_ROCKCHIP=y
 392 ++CONFIG_SMBIOS_MANUFACTURER="FriendlyElec"
 393 ++CONFIG_SMBIOS_PRODUCT_NAME="NanoPC-T4"
 394 ++CONFIG_SYS_CONFIG_NAME="nanopc-t4"
 395 + CONFIG_SPL_LIBCOMMON_SUPPORT=y
 396 + CONFIG_SPL_LIBGENERIC_SUPPORT=y
 397 + CONFIG_SYS_MALLOC_F_LEN=0x4000
 398 +@@ -11,11 +14,18 @@ CONFIG_DEFAULT_DEVICE_TREE="rk3399-nanopi4"
 399 + CONFIG_DEBUG_UART=y
 400 + CONFIG_FIT=y
 401 + CONFIG_SPL_LOAD_FIT=y
 402 +-CONFIG_BOOTDELAY=1
 403 +-CONFIG_SYS_CONSOLE_INFO_QUIET=y
 404 ++CONFIG_DISPLAY_BOARDINFO=y
 405 ++CONFIG_REVISION_TAG=y
 406 ++CONFIG_BOOTDELAY=3
 407 ++#CONFIG_ROCKCHIP_FIT_IMAGE=y
 408 ++#CONFIG_ROCKCHIP_UIMAGE=y
 409 ++CONFIG_ROCKCHIP_EARLY_DISTRO_DTB=y
 410 ++CONFIG_ROCKCHIP_EARLY_DISTRO_DTB_PATH="/dtb/rockchip/rk3399-nanopc-t4.dtb"
 411 ++#CONFIG_ROCKCHIP_RESOURCE_IMAGE=y
 412 ++#CONFIG_SYS_CONSOLE_INFO_QUIET=y
 413 + # CONFIG_DISPLAY_CPUINFO is not set
 414 +-CONFIG_ANDROID_BOOTLOADER=y
 415 +-CONFIG_ANDROID_AVB=y
 416 ++CONFIG_ANDROID_BOOTLOADER=n
 417 ++CONFIG_ANDROID_AVB=n
 418 + # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
 419 + # CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
 420 + CONFIG_SPL_STACK_R=y
 421 +@@ -25,13 +35,14 @@ CONFIG_SPL_CRYPTO_SUPPORT=y
 422 + CONFIG_SPL_HASH_SUPPORT=y
 423 + CONFIG_SPL_ATF=y
 424 + CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
 425 +-CONFIG_FASTBOOT_BUF_ADDR=0x00800800
 426 +-CONFIG_FASTBOOT_BUF_SIZE=0x04000000
 427 +-CONFIG_FASTBOOT_FLASH=y
 428 +-CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 429 ++CONFIG_ANDROID_BOOT_IMAGE=n
 430 ++#CONFIG_FASTBOOT_BUF_ADDR=0x00800800
 431 ++#CONFIG_FASTBOOT_BUF_SIZE=0x04000000
 432 ++#CONFIG_FASTBOOT_FLASH=y
 433 ++#CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 434 + CONFIG_CMD_BOOTZ=y
 435 + # CONFIG_CMD_BOOTEFI_HELLO_COMPILE is not set
 436 +-CONFIG_CMD_DTIMG=y
 437 ++#CONFIG_CMD_DTIMG=y
 438 + # CONFIG_CMD_ELF is not set
 439 + # CONFIG_CMD_IMI is not set
 440 + # CONFIG_CMD_IMLS is not set
 441 +@@ -43,7 +54,7 @@ CONFIG_CMD_DTIMG=y
 442 + CONFIG_CMD_GPT=y
 443 + # CONFIG_CMD_LOADB is not set
 444 + # CONFIG_CMD_LOADS is not set
 445 +-CONFIG_CMD_BOOT_ANDROID=y
 446 ++CONFIG_CMD_BOOT_ANDROID=n
 447 + CONFIG_CMD_BOOT_ROCKCHIP=y
 448 + CONFIG_CMD_MMC=y
 449 + CONFIG_CMD_USB=y
 450 +@@ -51,6 +62,13 @@ CONFIG_CMD_USB_MASS_STORAGE=y
 451 + # CONFIG_CMD_ITEST is not set
 452 + # CONFIG_CMD_SETEXPR is not set
 453 + # CONFIG_CMD_MISC is not set
 454 ++CONFIG_CMD_SAVEENV=y
 455 ++CONFIG_ENV_IS_NOWHERE=n
 456 ++CONFIG_ENV_IS_IN_FAT=y
 457 ++#CONFIG_ENV_IS_IN_MMC=y
 458 ++CONFIG_ENV_FAT_INTERFACE="mmc"
 459 ++CONFIG_ENV_FAT_DEVICE_AND_PART="1:1"
 460 ++CONFIG_ENV_FAT_FILE="uboot.env"
 461 + # CONFIG_SPL_DOS_PARTITION is not set
 462 + # CONFIG_ISO_PARTITION is not set
 463 + CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
 464 +@@ -58,6 +76,7 @@ CONFIG_RKPARM_PARTITION=y
 465 + CONFIG_SPL_OF_CONTROL=y
 466 + CONFIG_OF_LIVE=y
 467 + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
 468 ++CONFIG_NET_RANDOM_ETHADDR=y
 469 + # CONFIG_NET_TFTP_VARS is not set
 470 + CONFIG_REGMAP=y
 471 + CONFIG_SPL_REGMAP=y
 472 +@@ -133,11 +152,11 @@ CONFIG_USE_TINY_PRINTF=y
 473 + CONFIG_LIB_RAND=y
 474 + CONFIG_SPL_TINY_MEMSET=y
 475 + CONFIG_ERRNO_STR=y
 476 +-CONFIG_AVB_LIBAVB=y
 477 +-CONFIG_AVB_LIBAVB_AB=y
 478 +-CONFIG_AVB_LIBAVB_ATX=y
 479 +-CONFIG_AVB_LIBAVB_USER=y
 480 +-CONFIG_RK_AVB_LIBAVB_USER=y
 481 ++#CONFIG_AVB_LIBAVB=y
 482 ++#CONFIG_AVB_LIBAVB_AB=y
 483 ++#CONFIG_AVB_LIBAVB_ATX=y
 484 ++#CONFIG_AVB_LIBAVB_USER=y
 485 ++#CONFIG_RK_AVB_LIBAVB_USER=y
 486 + CONFIG_OPTEE_CLIENT=y
 487 + CONFIG_OPTEE_V1=y
 488 + CONFIG_OPTEE_ALWAYS_USE_SECURITY_PARTITION=y
 489 +diff -upr uboot-rockchip/include/config_distro_bootcmd.h uboot-rockchip.this-works-for-me/include/config_distro_bootcmd.h
 490 +--- include/config_distro_bootcmd.h.orig	2021-05-18 07:09:59.247560000 +0000
 491 ++++ include/config_distro_bootcmd.h	2021-05-17 13:02:07.234804000 +0000
 492 +@@ -124,7 +124,7 @@
 493 + 		"load ${devtype} ${devnum}:${distro_bootpart} "           \
 494 + 			"${fdt_addr_r} ${prefix}${efi_fdtfile}\0"         \
 495 + 	\
 496 +-	"efi_dtb_prefixes=/ /dtb/ /dtb/current/\0"                        \
 497 ++	"efi_dtb_prefixes=/ /dtb/ /dtb/current/ /dtb/rockchip/\0"         \
 498 + 	"scan_dev_for_efi="                                               \
 499 + 		"setenv efi_fdtfile ${fdtfile}; "                         \
 500 + 		BOOTENV_EFI_SET_FDTFILE_FALLBACK                          \
 501 +diff -upr uboot-rockchip/include/configs/nanopi4.h uboot-rockchip.this-works-for-me/include/configs/nanopi4.h
 502 +--- include/configs/nanopi4.h.orig	2021-05-18 07:09:59.309355000 +0000
 503 ++++ include/configs/nanopi4.h	2021-05-17 15:46:05.780420000 +0000
 504 +@@ -34,7 +34,7 @@
 505 + 
 506 + /* Monitor Command Prompt */
 507 + #undef CONFIG_SYS_PROMPT
 508 +-#define CONFIG_SYS_PROMPT		"nanopi4# "
 509 ++#define CONFIG_SYS_PROMPT		"U-Boot# "
 510 + 
 511 + /*---------------------------------------------------------------
 512 +  * ENV settings
 513 +diff -upr uboot-rockchip/include/configs/rk3399_common.h uboot-rockchip.this-works-for-me/include/configs/rk3399_common.h
 514 +--- include/configs/rk3399_common.h.orig	2021-05-18 07:09:59.322891000 +0000
 515 ++++ include/configs/rk3399_common.h	2021-05-17 16:34:08.190665000 +0000
 516 +@@ -61,8 +61,12 @@
 517 + 	"kernel_addr_r=0x00280000\0" \
 518 + 	"ramdisk_addr_r=0x0a200000\0"
 519 + 
 520 ++#define	ENV_ETHACT_SETTINGS \
 521 ++	"ethact=ethernet@fe300000\0"
 522 ++
 523 + #include <config_distro_bootcmd.h>
 524 + #define CONFIG_EXTRA_ENV_SETTINGS \
 525 ++	ENV_ETHACT_SETTINGS \
 526 + 	ENV_MEM_LAYOUT_SETTINGS \
 527 + 	"partitions=" PARTS_DEFAULT \
 528 + 	ROCKCHIP_DEVICE_SETTINGS \
 529 +diff -upr uboot-rockchip/make.sh uboot-rockchip.this-works-for-me/make.sh
 530 +--- make.sh.orig	2021-05-18 07:09:59.513696000 +0000
 531 ++++ make.sh	2021-05-17 17:28:54.866848000 +0000
 532 +@@ -1,4 +1,4 @@
 533 +-#!/bin/bash
 534 ++#!/usr/local/bin/bash
 535 + #
 536 + # Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
 537 + #
 538 +@@ -6,7 +6,9 @@
 539 + #
 540 + 
 541 + set -e
 542 +-JOB=`sed -n "N;/processor/p" /proc/cpuinfo|wc -l`
 543 ++#set -x
 544 ++#JOB=`sed -n "N;/processor/p" /proc/cpuinfo|wc -l`
 545 ++JOB=`sysctl -n hw.ncpu`
 546 + SUPPORT_LIST=`ls configs/*[r,p][x,v,k][0-9][0-9]*_defconfig`
 547 + 
 548 + # @LOADER: map to $RKCHIP_LOADER for loader ini
 549 +@@ -64,17 +66,25 @@ CHIP_TPL_MAGIC_TABLE=(
 550 + RKBIN_TOOLS=../rkbin/tools
 551 + 
 552 + # User's GCC toolchain and relative path
 553 +-ADDR2LINE_ARM32=arm-linux-gnueabihf-addr2line
 554 +-ADDR2LINE_ARM64=aarch64-linux-gnu-addr2line
 555 +-OBJ_ARM32=arm-linux-gnueabihf-objdump
 556 +-OBJ_ARM64=aarch64-linux-gnu-objdump
 557 +-GCC_ARM32=arm-linux-gnueabihf-
 558 +-GCC_ARM64=aarch64-linux-gnu-
 559 +-TOOLCHAIN_ARM32=../prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin
 560 +-TOOLCHAIN_ARM64=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
 561 ++#ADDR2LINE_ARM32=arm-linux-gnueabihf-addr2line
 562 ++#ADDR2LINE_ARM64=aarch64-linux-gnu-addr2line
 563 ++ADDR2LINE_ARM32=arm-none-eabi-addr2line
 564 ++ADDR2LINE_ARM64=aarch64-none-elf-addr2line
 565 ++#OBJ_ARM32=arm-linux-gnueabihf-objdump
 566 ++#OBJ_ARM64=aarch64-linux-gnu-objdump
 567 ++OBJ_ARM32=arm-none-eabi-objdump
 568 ++OBJ_ARM64=aarch64-none-elf-objdump
 569 ++#GCC_ARM32=arm-linux-gnueabihf-
 570 ++#GCC_ARM64=aarch64-linux-gnu-
 571 ++GCC_ARM32=arm-none-eabi-
 572 ++GCC_ARM64=aarch64-none-elf-
 573 ++#TOOLCHAIN_ARM32=../prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin
 574 ++#TOOLCHAIN_ARM64=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
 575 ++TOOLCHAIN_ARM32=/usr/local/bin
 576 ++TOOLCHAIN_ARM64=/usr/local/bin
 577 + 
 578 + ########################################### User not touch #############################################
 579 +-RKTOOLS=./tools
 580 ++RKTOOLS=`pwd`/tools
 581 + 
 582 + # Declare global INI file searching index name for every chip, update in select_chip_info()
 583 + RKCHIP="-"
 584 +@@ -217,7 +227,7 @@ function process_args()
 585 + 					shift ${NUM}
 586 + 					continue
 587 + 				# FUNC address
 588 +-				elif [ -z $(echo $1 | sed 's/[0-9,a-f,A-F,x,X,-]//g') ]; then
 589 ++				elif [ -z $(echo $1 | gsed 's/[0-9,a-f,A-F,x,X,-]//g') ]; then
 590 + 					ARG_FUNCADDR=$1
 591 + 				# xxx_defconfig
 592 + 				else
 593 +@@ -227,8 +237,8 @@ function process_args()
 594 + 						echo "ERROR: No configs/${ARG_BOARD}_defconfig"
 595 + 						exit 1
 596 + 					else
 597 +-						echo "make for ${ARG_BOARD}_defconfig by -j${JOB}"
 598 +-						make ${ARG_BOARD}_defconfig
 599 ++						echo "gmake for ${ARG_BOARD}_defconfig by -j${JOB}"
 600 ++						gmake ${ARG_BOARD}_defconfig
 601 + 					fi
 602 + 				fi
 603 + 				shift 1
 604 +@@ -355,7 +365,7 @@ function sub_commands()
 605 + 			;;
 606 + 
 607 + 		env)
 608 +-			make CROSS_COMPILE=${TOOLCHAIN_GCC} envtools
 609 ++			gmake CROSS_COMPILE=${TOOLCHAIN_GCC} envtools
 610 + 			exit 0
 611 + 			;;
 612 + 
 613 +@@ -368,13 +378,13 @@ function sub_commands()
 614 + 			FUNCADDR=${ARG_FUNCADDR}
 615 + 			RELOC_OFF=${FUNCADDR#*-}
 616 + 			FUNCADDR=${FUNCADDR%-*}
 617 +-			if [ -z $(echo ${FUNCADDR} | sed 's/[0-9,a-f,A-F,x,X,-]//g') ] && [ ${FUNCADDR} ]; then
 618 ++			if [ -z $(echo ${FUNCADDR} | gsed 's/[0-9,a-f,A-F,x,X,-]//g') ] && [ ${FUNCADDR} ]; then
 619 + 				# With prefix: '0x' or '0X'
 620 +-				if [ `echo ${FUNCADDR} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ]; then
 621 ++				if [ `echo ${FUNCADDR} | gsed -n "/0[x,X]/p" | wc -l` -ne 0 ]; then
 622 + 					FUNCADDR=`echo ${FUNCADDR} | awk '{ print strtonum($0) }'`
 623 + 					FUNCADDR=`echo "obase=16;${FUNCADDR}"|bc |tr '[A-Z]' '[a-z]'`
 624 + 				fi
 625 +-				if [ `echo ${RELOC_OFF} | sed -n "/0[x,X]/p" | wc -l` -ne 0 ] && [ ${RELOC_OFF} ]; then
 626 ++				if [ `echo ${RELOC_OFF} | gsed -n "/0[x,X]/p" | wc -l` -ne 0 ] && [ ${RELOC_OFF} ]; then
 627 + 					RELOC_OFF=`echo ${RELOC_OFF} | awk '{ print strtonum($0) }'`
 628 + 					RELOC_OFF=`echo "obase=16;${RELOC_OFF}"|bc |tr '[A-Z]' '[a-z]'`
 629 + 				fi
 630 +@@ -389,7 +399,7 @@ function sub_commands()
 631 + 				fi
 632 + 
 633 + 				echo
 634 +-				sed -n "/${FUNCADDR}/p" ${sym}
 635 ++				gsed -n "/${FUNCADDR}/p" ${sym}
 636 + 				${TOOLCHAIN_ADDR2LINE} -e ${elf} ${FUNCADDR}
 637 + 				exit 0
 638 + 			fi
 639 +@@ -539,13 +549,13 @@ function pack_uboot_image()
 640 + 	fi
 641 + 
 642 + 	# Pack
 643 +-	uboot_load_addr=`sed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" include/autoconf.mk|tr -d '\r'`
 644 ++	uboot_load_addr=`gsed -n "/CONFIG_SYS_TEXT_BASE=/s/CONFIG_SYS_TEXT_BASE=//p" include/autoconf.mk|tr -d '\r'`
 645 + 	if [ -z ${uboot_load_addr} ]; then
 646 + 		echo "ERROR: No CONFIG_SYS_TEXT_BASE for u-boot";
 647 + 		exit 1
 648 + 	fi
 649 + 	${RKTOOLS}/loaderimage --pack --uboot u-boot.bin uboot.img ${uboot_load_addr} ${PLATFORM_UBOOT_SIZE}
 650 +-	rm u-boot.img u-boot-dtb.img -rf
 651 ++	rm -f u-boot.img u-boot-dtb.img
 652 + 	echo "pack uboot okay! Input: u-boot.bin"
 653 + }
 654 + 
 655 +@@ -558,13 +568,13 @@ function pack_uboot_itb_image()
 656 + 	fi
 657 + 
 658 + 	if [ "${ARM64_TRUSTZONE}" == "y" ]; then
 659 +-		bl31=`sed -n '/_bl31_/s/PATH=//p' ${ini} |tr -d '\r'`
 660 ++		bl31=`gsed -n '/_bl31_/s/PATH=//p' ${ini} |tr -d '\r'`
 661 + 		cp ${RKBIN}/${bl31} bl31.elf
 662 +-		make CROSS_COMPILE=${TOOLCHAIN_GCC} u-boot.itb
 663 ++		gmake CROSS_COMPILE=${TOOLCHAIN_GCC} u-boot.itb
 664 + 		echo "pack u-boot.itb okay! Input: ${ini}"
 665 + 	else
 666 +-		tos_image=`sed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
 667 +-		tosta_image=`sed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
 668 ++		tos_image=`gsed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
 669 ++		tosta_image=`gsed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
 670 + 		if [ ${tosta_image} ]; then
 671 + 			cp ${RKBIN}/${tosta_image} tee.bin
 672 + 		elif [ ${tos_image} ]; then
 673 +@@ -574,7 +584,7 @@ function pack_uboot_itb_image()
 674 + 			exit 1
 675 + 		fi
 676 + 
 677 +-		tee_offset=`sed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
 678 ++		tee_offset=`gsed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
 679 + 		if [ "${tee_offset}" == "" ]; then
 680 + 			tee_offset=0x8400000
 681 + 		fi
 682 +@@ -586,12 +596,13 @@ function pack_uboot_itb_image()
 683 + 			cp ${RKBIN}/${mcu_image} mcu.bin
 684 + 		fi
 685 + 
 686 +-		SPL_FIT_SOURCE=`sed -n "/CONFIG_SPL_FIT_SOURCE=/s/CONFIG_SPL_FIT_SOURCE=//p" .config | tr -d '""'`
 687 ++		SPL_FIT_SOURCE=`gsed -n "/CONFIG_SPL_FIT_SOURCE=/s/CONFIG_SPL_FIT_SOURCE=//p" .config | tr -d '""'`
 688 + 		if [ ! -z ${SPL_FIT_SOURCE} ]; then
 689 + 			cp ${SPL_FIT_SOURCE} u-boot.its
 690 + 		else
 691 +-			SPL_FIT_GENERATOR=`sed -n "/CONFIG_SPL_FIT_GENERATOR=/s/CONFIG_SPL_FIT_GENERATOR=//p" .config | tr -d '""'`
 692 +-			${SPL_FIT_GENERATOR} ${tee_offset} ${mcu_offset} > u-boot.its
 693 ++			SPL_FIT_GENERATOR=`gsed -n "/CONFIG_SPL_FIT_GENERATOR=/s/CONFIG_SPL_FIT_GENERATOR=//p" .config | tr -d '""'`
 694 ++			#${SPL_FIT_GENERATOR} ${tee_offset} ${mcu_offset} > u-boot.its
 695 ++			${SPL_FIT_GENERATOR} ${tee_offset} ${mcu_offset} arch/arm/dts/rk3399-nanopi4.dtb > u-boot.its
 696 + 		fi
 697 + 		./tools/mkimage -f u-boot.its -E u-boot.itb
 698 + 		echo "pack u-boot.itb okay! Input: ${ini}"
 699 +@@ -620,39 +631,39 @@ function pack_spl_loader_image()
 700 + 	done
 701 + 
 702 + 	if [ -z ${header} ]; then
 703 +-		header=`sed -n '/NAME=/s/NAME=//p' ${ini}`
 704 ++		header=`gsed -n '/NAME=/s/NAME=//p' ${ini}`
 705 + 	fi
 706 + 
 707 + 	# Prepare files
 708 +-	rm ${tmpdir} -rf && mkdir ${tmpdir} -p
 709 ++	rm -rf ${tmpdir} && mkdir ${tmpdir} -p
 710 + 	cp spl/u-boot-spl.bin ${tmpdir}/ && cp ${ini} ${tmpini}
 711 + 
 712 + 	if [ "${mode}" == "tpl-spl" ]; then	# pack tpl+spl
 713 + 		label="TPL+SPL"
 714 + 		cp tpl/u-boot-tpl.bin ${tmpdir}/
 715 + 		dd if=${tmpdir}/u-boot-tpl.bin of=${tmpdir}/tpl.bin bs=1 skip=4
 716 +-		sed -i "1s/^/${header:0:4}/" ${tmpdir}/tpl.bin
 717 +-		sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${tmpini}
 718 +-		sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${tmpini}
 719 +-		sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${tmpini}
 720 ++		gsed -i "1s/^/${header:0:4}/" ${tmpdir}/tpl.bin
 721 ++		gsed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${tmpini}
 722 ++		gsed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${tmpini}
 723 ++		gsed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${tmpini}
 724 + 	elif [ "${mode}" == "tpl" ]; then	# pack tpl
 725 + 		label="TPL"
 726 + 		cp tpl/u-boot-tpl.bin ${tmpdir}/
 727 + 		dd if=${tmpdir}/u-boot-tpl.bin of=${tmpdir}/tpl.bin bs=1 skip=4
 728 +-		sed -i "1s/^/${header:0:4}/" ${tmpdir}/tpl.bin
 729 +-		sed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${tmpini}
 730 +-		sed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${tmpini}
 731 ++		gsed -i "1s/^/${header:0:4}/" ${tmpdir}/tpl.bin
 732 ++		gsed -i "s/FlashData=.*$/FlashData=.\/tmp\/tpl.bin/" ${tmpini}
 733 ++		gsed -i "0,/Path1=.*/s/Path1=.*$/Path1=.\/tmp\/tpl.bin/" ${tmpini}
 734 + 	else
 735 + 		label="SPL"
 736 +-		sed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${tmpini}
 737 ++		gsed -i "s/FlashBoot=.*$/FlashBoot=.\/tmp\/u-boot-spl.bin/" ${tmpini}
 738 + 	fi
 739 + 
 740 + 	# Pack
 741 + 	cd ${RKBIN}
 742 + 	${RKTOOLS}/boot_merger ${tmpini}
 743 + 
 744 +-	rm ${tmpdir} -rf && cd -
 745 +-	rm *_loader_*.bin -rf && mv ${RKBIN}/*_loader_*.bin ./
 746 ++	rm -rf ${tmpdir} && cd -
 747 ++	rm -rf *_loader_*.bin && mv ${RKBIN}/*_loader_*.bin ./
 748 + 	filename=`basename *_loader_*.bin`
 749 + 	if [[ ${filename} != *spl* ]]; then
 750 + 		rename 's/loader_/spl_loader_/' *_loader_*.bin
 751 +@@ -668,10 +679,10 @@ function pack_loader_image()
 752 + 		return
 753 + 	fi
 754 + 
 755 +-	rm *_loader_*.bin -rf
 756 ++	rm -rf *_loader_*.bin
 757 + 	numline=`cat ${ini} | wc -l`
 758 + 	if [ ${numline} -eq 1 ]; then
 759 +-		image=`sed -n "/PATH=/p" ${ini} | tr -d '\r' | cut -d '=' -f 2`
 760 ++		image=`gsed -n "/PATH=/p" ${ini} | tr -d '\r' | cut -d '=' -f 2`
 761 + 		cp ${RKBIN}/${image} ./
 762 + 	else
 763 + 		cd ${RKBIN}
 764 +@@ -686,19 +697,19 @@ function pack_loader_image()
 765 + function pack_arm32_trust_image()
 766 + {
 767 + 	ini=$1
 768 +-	tos_image=`sed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
 769 +-	tosta_image=`sed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
 770 +-	tee_output=`sed -n "/OUTPUT=/s/OUTPUT=//p" ${ini} |tr -d '\r'`
 771 ++	tos_image=`gsed -n "/TOS=/s/TOS=//p" ${ini} |tr -d '\r'`
 772 ++	tosta_image=`gsed -n "/TOSTA=/s/TOSTA=//p" ${ini} |tr -d '\r'`
 773 ++	tee_output=`gsed -n "/OUTPUT=/s/OUTPUT=//p" ${ini} |tr -d '\r'`
 774 + 	if [ "${tee_output}" == "" ]; then
 775 + 		tee_output="./trust.img"
 776 + 	fi
 777 +-	tee_offset=`sed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
 778 ++	tee_offset=`gsed -n "/ADDR=/s/ADDR=//p" ${ini} |tr -d '\r'`
 779 + 	if [ "${tee_offset}" == "" ]; then
 780 + 		tee_offset=0x8400000
 781 + 	fi
 782 + 
 783 + 	# OP-TEE is 132M(0x8400000) offset from DRAM base.
 784 +-	dram_base=`sed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" include/autoconf.mk|tr -d '\r'`
 785 ++	dram_base=`gsed -n "/CONFIG_SYS_SDRAM_BASE=/s/CONFIG_SYS_SDRAM_BASE=//p" include/autoconf.mk|tr -d '\r'`
 786 + 	tee_load_addr=$((dram_base+tee_offset))
 787 + 	tee_load_addr=$(echo "obase=16;${tee_load_addr}"|bc) # Convert Dec to Hex
 788 + 
 789 +@@ -728,7 +739,7 @@ function pack_trust_image()
 790 + 		return
 791 + 	fi
 792 + 
 793 +-	rm trust*.img -rf
 794 ++	rm -rf trust*.img
 795 + 	ini=${INI_TRUST}
 796 + 	if [ ! -f ${INI_TRUST} ]; then
 797 + 		echo "pack trust failed! Can't find: ${INI_TRUST}"
 798 +@@ -737,7 +748,7 @@ function pack_trust_image()
 799 + 
 800 + 	numline=`cat ${ini} | wc -l`
 801 + 	if [ ${numline} -eq 1 ]; then
 802 +-		image=`sed -n "/PATH=/p" ${ini} | tr -d '\r' | cut -d '=' -f 2`
 803 ++		image=`gsed -n "/PATH=/p" ${ini} | tr -d '\r' | cut -d '=' -f 2`
 804 + 		cp ${RKBIN}/${image} ./trust.img
 805 + 		echo "pack trust okay! Input: ${ini}"
 806 + 		return;
 807 +@@ -753,14 +764,14 @@ function pack_trust_image()
 808 + function pack_fit_image()
 809 + {
 810 + 	if [ "${ARG_NO_UBOOT}" == "y" ]; then
 811 +-		rm u-boot-nodtb.bin u-boot.dtb -rf
 812 ++		rm -f u-boot-nodtb.bin u-boot.dtb
 813 + 		touch u-boot-nodtb.bin u-boot.dtb
 814 + 	fi
 815 + 
 816 + 	if grep -q '^CONFIG_FIT_SIGNATURE=y' .config ; then
 817 + 		./scripts/fit-mkimg.sh --uboot-itb --boot-itb ${ARG_LIST_FIT}
 818 + 	else
 819 +-		rm uboot.img trust*.img -rf
 820 ++		rm -f uboot.img trust*.img
 821 + 		./scripts/fit-mkimg.sh --uboot-itb --no-vboot --no-rebuild ${ARG_LIST_FIT}
 822 + 		echo "pack uboot.img okay! Input: ${INI_TRUST}"
 823 + 	fi
 824 +@@ -781,7 +792,7 @@ function pack_images()
 825 + 
 826 + function clean_files()
 827 + {
 828 +-	rm spl/u-boot-spl.dtb tpl/u-boot-tpl.dtb u-boot.dtb -rf
 829 ++	rm -f spl/u-boot-spl.dtb tpl/u-boot-tpl.dtb u-boot.dtb
 830 + }
 831 + 
 832 + function finish()
 833 +@@ -790,7 +801,7 @@ function finish()
 834 + 	if [ "${ARG_BOARD}" == "" ]; then
 835 + 		echo "Platform ${RKCHIP_LABEL} is build OK, with exist .config"
 836 + 	else
 837 +-		echo "Platform ${RKCHIP_LABEL} is build OK, with new .config(make ${ARG_BOARD}_defconfig)"
 838 ++		echo "Platform ${RKCHIP_LABEL} is build OK, with new .config(gmake ${ARG_BOARD}_defconfig)"
 839 + 	fi
 840 + }
 841 + 
 842 +@@ -803,7 +814,11 @@ select_ini_file
 843 + handle_args_late
 844 + sub_commands
 845 + clean_files
 846 +-make CROSS_COMPILE=${TOOLCHAIN_GCC} all --jobs=${JOB}
 847 ++gmake CROSS_COMPILE=${TOOLCHAIN_GCC} all --jobs=${JOB}
 848 + pack_images
 849 + finish
 850 ++
 851 ++./tools/mkimage -n rk3399 -T rksd -d /root/rkbin/bin/rk33/rk3399_ddr_800MHz_v1.24.bin  idbloader.img
 852 ++cat /root/rkbin/bin/rk33/rk3399_miniloader_v1.26.bin >> idbloader.img
 853 ++
 854 + 
 855 +diff -upr uboot-rockchip/net/eth-uclass.c uboot-rockchip.this-works-for-me/net/eth-uclass.c
 856 +--- net/eth-uclass.c.orig	2021-05-18 07:09:59.515757000 +0000
 857 ++++ net/eth-uclass.c	2021-05-17 16:36:08.649866000 +0000
 858 +@@ -263,7 +263,7 @@ int eth_init(void)
 859 + 	if (!current) {
 860 + 		current = eth_get_dev();
 861 + 		if (!current) {
 862 +-			printf("No ethernet found.\n");
 863 ++			printf("No ethernet found..\n");
 864 + 			return -ENODEV;
 865 + 		}
 866 + 	}
 867 +@@ -399,7 +399,7 @@ int eth_initialize(void)
 868 + 	 */
 869 + 	uclass_first_device(UCLASS_ETH, &dev);
 870 + 	if (!dev) {
 871 +-		printf("No ethernet found.\n");
 872 ++		printf("%s: No ethernet found.\n", __func__);
 873 + 		bootstage_error(BOOTSTAGE_ID_NET_ETH_START);
 874 + 	} else {
 875 + 		char *ethprime = env_get("ethprime");
 876 +diff -upr uboot-rockchip/scripts/build-whitelist.sh uboot-rockchip.this-works-for-me/scripts/build-whitelist.sh
 877 +--- scripts/build-whitelist.sh.orig	2021-05-18 07:09:59.528188000 +0000
 878 ++++ scripts/build-whitelist.sh	2021-05-16 21:00:52.555902000 +0000
 879 +@@ -24,21 +24,21 @@ export LC_ALL=C LC_COLLATE=C
 880 + # Kconfig and defconfig files.
 881 + #
 882 + (
 883 +-git grep CONFIG_SYS_EXTRA_OPTIONS |sed -n \
 884 ++git grep CONFIG_SYS_EXTRA_OPTIONS |gsed -n \
 885 + 	's/.*CONFIG_SYS_EXTRA_OPTIONS="\(.*\)"/\1/ p' \
 886 + 	| tr , '\n' \
 887 +-	| sed 's/ *\([A-Za-z0-9_]*\).*/CONFIG_\1/'
 888 ++	| gsed 's/ *\([A-Za-z0-9_]*\).*/CONFIG_\1/'
 889 + 
 890 + git grep CONFIG_ | \
 891 + 	egrep -vi "(Kconfig:|defconfig:|README|\.py|\.pl:)" \
 892 + 	| tr ' \t' '\n\n' \
 893 +-	| sed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p'
 894 ++	| gsed -n 's/^\(CONFIG_[A-Za-z0-9_]*\).*/\1/p'
 895 + ) \
 896 + 	|sort |uniq >scripts/config_whitelist.txt.tmp1;
 897 + 
 898 + # Finally, we need a list of the valid Kconfig options to exclude these from
 899 + # the whitelist.
 900 +-cat `find . -name "Kconfig*"` |sed -n \
 901 ++cat `find . -name "Kconfig*"` |gsed -n \
 902 + 	-e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 903 + 	-e 's/^\s*menuconfig *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 904 + 	|sort |uniq >scripts/config_whitelist.txt.tmp2
 905 +diff -upr uboot-rockchip/scripts/check-config.sh uboot-rockchip.this-works-for-me/scripts/check-config.sh
 906 +--- scripts/check-config.sh.orig	2021-05-18 07:09:59.528293000 +0000
 907 ++++ scripts/check-config.sh	2021-05-16 21:00:32.905820000 +0000
 908 +@@ -27,12 +27,12 @@ new_adhoc="${path}.adhoc"
 909 + export LC_ALL=C
 910 + export LC_COLLATE=C
 911 + 
 912 +-cat ${path} |sed -n 's/^#define \(CONFIG_[A-Za-z0-9_]*\).*/\1/p' |sort |uniq \
 913 ++cat ${path} |gsed -n 's/^#define \(CONFIG_[A-Za-z0-9_]*\).*/\1/p' |sort |uniq \
 914 + 	>${configs}
 915 + 
 916 + comm -23 ${configs} ${whitelist} > ${suspects}
 917 + 
 918 +-cat `find ${srctree} -name "Kconfig*"` |sed -n \
 919 ++cat `find ${srctree} -name "Kconfig*"` |gsed -n \
 920 + 	-e 's/^\s*config *\([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 921 + 	-e 's/^\s*menuconfig \([A-Za-z0-9_]*\).*$/CONFIG_\1/p' \
 922 + 	|sort |uniq > ${ok}
 923 +diff -upr uboot-rockchip/scripts/fit-mkimg.sh uboot-rockchip.this-works-for-me/scripts/fit-mkimg.sh
 924 +--- scripts/fit-mkimg.sh.orig	2021-05-18 07:09:59.544406000 +0000
 925 ++++ scripts/fit-mkimg.sh	2021-05-16 20:14:38.167821000 +0000
 926 +@@ -1,4 +1,4 @@
 927 +-#!/bin/bash
 928 ++#!/usr/local/bin/bash
 929 + #
 930 + # Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
 931 + #
 932 +diff -upr uboot-rockchip/scripts/fit-resign.sh uboot-rockchip.this-works-for-me/scripts/fit-resign.sh
 933 +--- scripts/fit-resign.sh.orig	2021-05-18 07:09:59.544512000 +0000
 934 ++++ scripts/fit-resign.sh	2021-05-16 20:14:43.645367000 +0000
 935 +@@ -1,4 +1,4 @@
 936 +-#!/bin/bash
 937 ++#!/usr/local/bin/bash
 938 + #
 939 + # Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
 940 + #
 941 +diff -upr uboot-rockchip/scripts/fit-unpack.sh uboot-rockchip.this-works-for-me/scripts/fit-unpack.sh
 942 +--- scripts/fit-unpack.sh.orig	2021-05-18 07:09:59.544614000 +0000
 943 ++++ scripts/fit-unpack.sh	2021-05-16 20:14:49.519291000 +0000
 944 +@@ -1,4 +1,4 @@
 945 +-#!/bin/bash
 946 ++#!/usr/local/bin/bash
 947 + #
 948 + # Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd
 949 + #
 950 +diff -upr uboot-rockchip/scripts/rkpatch.sh uboot-rockchip.this-works-for-me/scripts/rkpatch.sh
 951 +--- scripts/rkpatch.sh.orig	2021-05-18 07:09:59.557044000 +0000
 952 ++++ scripts/rkpatch.sh	2021-05-16 21:00:15.428525000 +0000
 953 +@@ -33,74 +33,74 @@ case $1 in
 954 + 	&& echo "    CONFIG_ROCKCHIP_CRASH_DUMP"
 955 + 	;;
 956 + 1)
 957 +-	sed -i 's/\<debug\>/printf/g' lib/initcall.c
 958 +-	sed -i 's/ifdef DEBUG/if 1/g' lib/initcall.c
 959 ++	gsed -i 's/\<debug\>/printf/g' lib/initcall.c
 960 ++	gsed -i 's/ifdef DEBUG/if 1/g' lib/initcall.c
 961 + 	echo "DEBUG [1]: lib/initcall.c debug() -> printf()"
 962 + 	;;
 963 + 2)
 964 +-	sed -i 's/\<debug\>/printf/g' ./common/board_f.c
 965 +-	sed -i 's/\<debug\>/printf/g' ./common/board_r.c
 966 ++	gsed -i 's/\<debug\>/printf/g' ./common/board_f.c
 967 ++	gsed -i 's/\<debug\>/printf/g' ./common/board_r.c
 968 + 	echo "DEBUG [2]: common/board_r.c and common/board_f.c debug() -> printf()"
 969 + 	;;
 970 + 3)
 971 +-	sed -i '$i \#define DEBUG\' include/configs/rockchip-common.h
 972 ++	gsed -i '$i \#define DEBUG\' include/configs/rockchip-common.h
 973 + 	echo "DEBUG [3]: global #define DEBUG"
 974 + 	;;
 975 + 4)
 976 +-	sed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
 977 ++	gsed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
 978 + 	echo "DEBUG [4]: CONFIG_ROCKCHIP_DEBUGGER is enabled"
 979 + 	;;
 980 + 5)
 981 +-	sed -i 's/\# CONFIG_ROCKCHIP_CRC is not set/CONFIG_ROCKCHIP_CRC=y/g' .config
 982 ++	gsed -i 's/\# CONFIG_ROCKCHIP_CRC is not set/CONFIG_ROCKCHIP_CRC=y/g' .config
 983 + 	echo "DEBUG [5]: CONFIG_ROCKCHIP_CRC is enabled"
 984 + 	;;
 985 + 6)
 986 +-	sed -i 's/\# CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is not set/CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y/g' .config
 987 ++	gsed -i 's/\# CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is not set/CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y/g' .config
 988 + 	echo "DEBUG [6]: CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is enabled"
 989 + 	;;
 990 + 7)
 991 +-	sed -i 's/\# CONFIG_ROCKCHIP_CRASH_DUMP is not set/CONFIG_ROCKCHIP_CRASH_DUMP=y/g' .config
 992 ++	gsed -i 's/\# CONFIG_ROCKCHIP_CRASH_DUMP is not set/CONFIG_ROCKCHIP_CRASH_DUMP=y/g' .config
 993 + 	echo "DEBUG [7]: CONFIG_ROCKCHIP_CRASH_DUMP is enabled"
 994 + 	;;
 995 + 8)
 996 +-	sed -i 's/^CONFIG_BOOTDELAY=0/CONFIG_BOOTDELAY=5/g' .config
 997 ++	gsed -i 's/^CONFIG_BOOTDELAY=0/CONFIG_BOOTDELAY=5/g' .config
 998 + 	echo "DEBUG [8]: CONFIG_BOOTDELAY is 5s"
 999 + 	;;
1000 + 9)
1001 +-	sed -i '/save_boot_params_ret:/a\ldr r0, =CONFIG_DEBUG_UART_BASE\nmov r1, #100\nloop:\nmov r2, #0x55\nstr r2, [r0]\nsub r1, r1, #1\ncmp r1, #0\nbne loop\ndsb' \
1002 ++	gsed -i '/save_boot_params_ret:/a\ldr r0, =CONFIG_DEBUG_UART_BASE\nmov r1, #100\nloop:\nmov r2, #0x55\nstr r2, [r0]\nsub r1, r1, #1\ncmp r1, #0\nbne loop\ndsb' \
1003 + 	./arch/arm/cpu/armv7/start.S
1004 + 	echo "DEBUG [9]: armv7 start.S entry warning 'UUUU...'"
1005 + 	;;
1006 + 10)
1007 +-	sed -i '/save_boot_params_ret:/a\ldr x0, =CONFIG_DEBUG_UART_BASE\nmov x1, #100\nloop:\nmov x2, #0x55\nstr x2, [x0]\nsub x1, x1, #1\ncmp x1, #0\nb.ne loop\ndsb sy' \
1008 ++	gsed -i '/save_boot_params_ret:/a\ldr x0, =CONFIG_DEBUG_UART_BASE\nmov x1, #100\nloop:\nmov x2, #0x55\nstr x2, [x0]\nsub x1, x1, #1\ncmp x1, #0\nb.ne loop\ndsb sy' \
1009 + 	./arch/arm/cpu/armv8/start.S
1010 + 	echo "DEBUG [10]: armv8 start.S entry warning 'UUUU...'"
1011 + 	;;
1012 + 11)
1013 +-	sed -i 's/\<debug\>/printf/g' common/fdt_support.c
1014 +-	sed -i 's/\<debug\>/printf/g' common/image-fdt.c
1015 +-	sed -i 's/\<debug\>/printf/g' common/image.c
1016 +-	sed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
1017 +-	sed -i 's/\<debug\>/printf/g' common/bootm.c
1018 +-	sed -i 's/\<debug\>/printf/g' common/image.c
1019 +-	sed -i 's/\<debug\>/printf/g' common/image-android.c
1020 +-	sed -i 's/\<debug\>/printf/g' common/android_bootloader.c
1021 ++	gsed -i 's/\<debug\>/printf/g' common/fdt_support.c
1022 ++	gsed -i 's/\<debug\>/printf/g' common/image-fdt.c
1023 ++	gsed -i 's/\<debug\>/printf/g' common/image.c
1024 ++	gsed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
1025 ++	gsed -i 's/\<debug\>/printf/g' common/bootm.c
1026 ++	gsed -i 's/\<debug\>/printf/g' common/image.c
1027 ++	gsed -i 's/\<debug\>/printf/g' common/image-android.c
1028 ++	gsed -i 's/\<debug\>/printf/g' common/android_bootloader.c
1029 + 	echo "DEBUG [11]: firmware bootflow debug() -> printf()"
1030 + 	;;
1031 + 12)
1032 +-	sed -i '$a\CONFIG_BOOTSTAGE=y\' .config
1033 +-	sed -i '$a\CONFIG_BOOTSTAGE_REPORT=y\' .config
1034 +-	sed -i '$a\CONFIG_CMD_BOOTSTAGE=y\' .config
1035 ++	gsed -i '$a\CONFIG_BOOTSTAGE=y\' .config
1036 ++	gsed -i '$a\CONFIG_BOOTSTAGE_REPORT=y\' .config
1037 ++	gsed -i '$a\CONFIG_CMD_BOOTSTAGE=y\' .config
1038 + 	echo "DEBUG [12]: bootstage timing report"
1039 + 	;;
1040 + 13)
1041 +-	sed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
1042 +-	sed -i '/br x4/i\b .' arch/arm/cpu/armv8/transition.S
1043 +-	sed -i 's/announce_and_cleanup(fake);/if (0)announce_and_cleanup(fake);/g' arch/arm/lib/bootm.c
1044 +-	sed -i '/announce_and_cleanup(fake)/a\enable_interrupts()\;' arch/arm/lib/bootm.c
1045 +-	sed -i '/kernel_entry(0, machid, r2)/i\printf("#### Jump to kernel!!")\;' arch/arm/lib/bootm.c
1046 +-	sed -i '/kernel_entry(0, machid, r2)/i\__asm("b .")\;' arch/arm/lib/bootm.c
1047 +-	sed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
1048 ++	gsed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
1049 ++	gsed -i '/br x4/i\b .' arch/arm/cpu/armv8/transition.S
1050 ++	gsed -i 's/announce_and_cleanup(fake);/if (0)announce_and_cleanup(fake);/g' arch/arm/lib/bootm.c
1051 ++	gsed -i '/announce_and_cleanup(fake)/a\enable_interrupts()\;' arch/arm/lib/bootm.c
1052 ++	gsed -i '/kernel_entry(0, machid, r2)/i\printf("#### Jump to kernel!!")\;' arch/arm/lib/bootm.c
1053 ++	gsed -i '/kernel_entry(0, machid, r2)/i\__asm("b .")\;' arch/arm/lib/bootm.c
1054 ++	gsed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
1055 + 	echo "DEBUG [13]: starting kernel halt dump"
1056 + 	;;
1057 + *)
1058 diff --git a/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-dtc.diff b/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-dtc.diff
1059 new file mode 100644
1060 index 000000000000..3d7600ae3cf7
1061 --- /dev/null
1062 +++ b/sysutils/u-boot-nanopc-t4-friendlyelec/files/patch-dtc.diff
1063 @@ -0,0 +1,16 @@
1064 +--- scripts/dtc/dtc-parser.tab.c_shipped.orig	2021-05-18 07:17:41.463147000 +0000
1065 ++++ scripts/dtc/dtc-parser.tab.c_shipped	2021-05-18 07:18:40.730220000 +0000
1066 +@@ -1202,11 +1202,13 @@ int yychar;
1067 + /* The semantic value of the lookahead symbol.  */
1068 + YYSTYPE yylval;
1069 + /* Location data for the lookahead symbol.  */
1070 ++#if 0
1071 + YYLTYPE yylloc
1072 + # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1073 +   = { 1, 1, 1, 1 }
1074 + # endif
1075 + ;
1076 ++#endif
1077 + /* Number of syntax errors so far.  */
1078 + int yynerrs;
1079 + 
1080 diff --git a/sysutils/u-boot-nanopc-t4-friendlyelec/pkg-descr b/sysutils/u-boot-nanopc-t4-friendlyelec/pkg-descr
1081 new file mode 100644
1082 index 000000000000..5eec6e4d9b6e
1083 --- /dev/null
1084 +++ b/sysutils/u-boot-nanopc-t4-friendlyelec/pkg-descr
1085 @@ -0,0 +1,7 @@
1086 +U-Boot loader and related files for the NanoPC-T4 (friendlyarm repo):
1087 +
1088 +dd if=/usr/local/share/u-boot/u-boot-nanopc-t4/idbloader.img of=/path/to/sdcarddevice seek=64 bs=512 conv=sync
1089 +dd if=/usr/local/share/u-boot/u-boot-nanopc-t4/trust.img of=/path/to/sdcarddevice seek=24576 bs=512 conv=sync
1090 +dd if=/usr/local/share/u-boot/u-boot-nanopc-t4/uboot.img of=/path/to/sdcarddevice seek=16384 bs=512 conv=sync
1091 +
1092 +WWW: https://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4#Compile_U-boot_v2017.09_for_FriendlyCore-focal
1093 

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2021-05-20T15:29:40+0000, 40.6 KB) [[attachment:20210520-01-sysutils-u-boot-nanopc-t4-friendlyelec.diff]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.