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.You are not allowed to attach a file to this page.