Sat Sep 1 10:38:19 2018 UTC ()
sysutils/u-boot-rockpro64: import u-boot-rockpro64-2017.09

U-Boot is a bootloader for embedded boards based on PowerPC, ARM, MIPS and
several other processors, which can be installed in a boot ROM and used to
initialize and test the hardware or to download and run application code.

This package provides U-Boot for the rk3389-based RockPRO64 from PINE64.


(tnn)
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/DESCR
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/MESSAGE
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/Makefile
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/PLIST
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/distinfo
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/patches/patch-arch_arm_cpu_armv8_Kconfig
diff -r0 -r1.1 pkgsrc/sysutils/u-boot-rockpro64/patches/patch-lib_bch.c

File Added: pkgsrc/sysutils/u-boot-rockpro64/DESCR
U-Boot is a bootloader for embedded boards based on PowerPC, ARM, MIPS and
several other processors, which can be installed in a boot ROM and used to
initialize and test the hardware or to download and run application code.

This package provides U-Boot for the rk3389-based RockPRO64 from PINE64.

File Added: pkgsrc/sysutils/u-boot-rockpro64/MESSAGE
===========================================================================
$NetBSD: MESSAGE,v 1.1 2018/09/01 10:38:19 tnn Exp $

Example commands to install U-Boot to an empty SD card:

# dd if=${LOCALBASE}/share/u-boot/rockpro64/sdloader.img seek=64 of=/dev/ld0d
# dd if=${LOCALBASE}/share/u-boot/rockpro64/u-boot.itb seek=512 of=/dev/ld0d

See also http://opensource.rock-chips.com/wiki_Boot_option

===========================================================================

File Added: pkgsrc/sysutils/u-boot-rockpro64/Makefile
# $NetBSD: Makefile,v 1.1 2018/09/01 10:38:19 tnn Exp $

UBOOT_TARGET=		rockpro64
UBOOT_CONFIG=		rockpro64-rk3399_defconfig
UBOOT_BIN=		sdloader.img u-boot.itb

# Switch to EL1 before booting kernel (required for 32-bit support)
PKG_DEFAULT_OPTIONS+=	el1

UBOOT_VERSION=	${GITHUB_TAG:C/-.*$//}
MASTER_SITES=	${MASTER_SITE_GITHUB:=ayufan-rock64/}
GITHUB_PROJECT=	linux-u-boot
GITHUB_TAG=	2017.09-rockchip-ayufan-1033-gdf02018479
DISTNAME=	${GITHUB_TAG}
DISTINFO_FILE=	${.CURDIR}/../../sysutils/u-boot-rockpro64/distinfo
PATCHDIR=	${.CURDIR}/../../sysutils/u-boot-rockpro64/patches
DISTFILES=	${DEFAULT_DISTFILES}
EXTRACT_SUFX=	.tar.gz

# Boot Loader stage 3-1 (BL31) EL3 Runtime Firmware
# XXX LICENSE?
BL31=		rk3399_bl31_v1.18.elf
DISTFILES+=	${BL31}
SITES.${BL31}=	${MASTER_SITE_GITHUB:=rockchip-linux/rkbin/raw/9e6625e7551ffa591f0ac4c271f12a7ab5cedcf4/bin/rk33/}

# DDR init binary
DDR_BIN=		rk3399_ddr_800MHz_v1.14.bin
SITES.${DDR_BIN}=	${MASTER_SITE_GITHUB:=rockchip-linux/rkbin/raw/dbc8710a93406669fb2df2d57dc086228bf1979f/bin/rk33/}
DISTFILES+=		${DDR_BIN}

# pkgsrc tries to run distfiles that end in .bin; handle manually
EXTRACT_ONLY=	${DISTFILES:N*.bin}

USE_TOOLS+=	gawk
MAKE_ENV+=	BL31=${WRKDIR}/${BL31}

post-extract:
	cp ${DISTDIR}/${DDR_BIN} ${WRKDIR}

post-build:
# build stage 3 package
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} u-boot.itb
# build stage 1 loader
	cd ${WRKSRC} && tools/mkimage -n rk3399 -T rksd -d ${WRKDIR}/${DDR_BIN} sdloader.img
# append stage2 loader
	cd ${WRKSRC} && cat spl/u-boot-spl.bin >> sdloader.img

.include "../../sysutils/u-boot/u-boot-arm64.mk"

File Added: pkgsrc/sysutils/u-boot-rockpro64/PLIST
@comment $NetBSD: PLIST,v 1.1 2018/09/01 10:38:19 tnn Exp $
share/u-boot/rockpro64/sdloader.img
share/u-boot/rockpro64/u-boot.itb

File Added: pkgsrc/sysutils/u-boot-rockpro64/Attic/distinfo
$NetBSD: distinfo,v 1.1 2018/09/01 10:38:19 tnn Exp $

SHA1 (2017.09-rockchip-ayufan-1033-gdf02018479.tar.gz) = 3632ed4d62f7ea93a8fe493ad54c4a3966eaa29a
RMD160 (2017.09-rockchip-ayufan-1033-gdf02018479.tar.gz) = 003f868c14c9612a2a9c4391c0b1fd66c086ff18
SHA512 (2017.09-rockchip-ayufan-1033-gdf02018479.tar.gz) = 0badfef6f1bdae898db0f0383af8578c17d83f2afe50ba487cdd49d6dbd8dfc531badc72d3802b3c2542a831198779e187fe3db71f17e9d5ebf10a8b8644428c
Size (2017.09-rockchip-ayufan-1033-gdf02018479.tar.gz) = 15119423 bytes
SHA1 (rk3399_bl31_v1.18.elf) = 598be4ce91f088fa11f37ba09b30db98f2e5dc43
RMD160 (rk3399_bl31_v1.18.elf) = 3505a2cc7685b8de0be1e88752e4ff42752f9bfc
SHA512 (rk3399_bl31_v1.18.elf) = a191b60146099f220154540802be3c42452e9b3e989123f492ef04c9742717f67a2018039cf8049c5af7214d12ff50ea992edcfcff3e09b0d48bcbc17fe0af6e
Size (rk3399_bl31_v1.18.elf) = 1297645 bytes
SHA1 (rk3399_ddr_800MHz_v1.14.bin) = db827e863f594d30d0908288eadefe87242b699f
RMD160 (rk3399_ddr_800MHz_v1.14.bin) = e8487d1a3193666aad4cd39cdabe19c60110a302
SHA512 (rk3399_ddr_800MHz_v1.14.bin) = 560b6b67da688ceb541f3674829275e52a1d2894ccd8ee7b7b15fde8e68b49c754344b79f46e48426df11f6ca1742af9d36c883d5d672256ade38086a5fb3177
Size (rk3399_ddr_800MHz_v1.14.bin) = 69876 bytes
SHA1 (patch-arch_arm_cpu_armv8_Kconfig) = 375c79ebe0d593865fbaa7924c8446ea6712fca4
SHA1 (patch-lib_bch.c) = 151e5f311742a7da919359950ccac2521bcfaaff

File Added: pkgsrc/sysutils/u-boot-rockpro64/patches/Attic/patch-arch_arm_cpu_armv8_Kconfig
$NetBSD: patch-arch_arm_cpu_armv8_Kconfig,v 1.1 2018/09/01 10:38:19 tnn Exp $

--- arch/arm/cpu/armv8/Kconfig.orig	2018-08-06 22:28:00.000000000 +0000
+++ arch/arm/cpu/armv8/Kconfig
@@ -130,6 +130,10 @@ config ARMV8_PSCI_CPUS_PER_CLUSTER
 	  A value 0 or no definition of it works for single cluster system.
 	  System with multi-cluster should difine their own exact value.
 
+config ARMV8_SWITCH_TO_EL1
+	bool "Switch to EL1 before booting kernel"
+	default n
+
 if SYS_HAS_ARMV8_SECURE_BASE
 
 config ARMV8_SECURE_BASE

File Added: pkgsrc/sysutils/u-boot-rockpro64/patches/Attic/patch-lib_bch.c
$NetBSD: patch-lib_bch.c,v 1.1 2018/09/01 10:38:19 tnn Exp $

u-boot: fix build on macos

--- lib/bch.c.orig	2018-08-06 22:28:00.000000000 +0000
+++ lib/bch.c
@@ -61,8 +61,10 @@
 #include <linux/bitops.h>
 #else
 #include <errno.h>
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__)
 #include <sys/endian.h>
+#elif defined(__APPLE__)
+#include <machine/endian.h>
 #else
 #include <endian.h>
 #endif
@@ -71,7 +73,11 @@
 #include <string.h>
 
 #undef cpu_to_be32
+#if defined(__APPLE__)
+#define cpu_to_be32 htonl
+#else
 #define cpu_to_be32 htobe32
+#endif
 #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
 #define kmalloc(size, flags)	malloc(size)
 #define kzalloc(size, flags)	calloc(1, size)
@@ -117,7 +123,7 @@ struct gf_poly_deg1 {
 };
 
 #ifdef USE_HOSTCC
-#if !defined(__DragonFly__) && !defined(__FreeBSD__)
+#if !defined(__DragonFly__) && !defined(__FreeBSD__) && !defined(__APPLE__)
 static int fls(int x)
 {
 	int r = 32;