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
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.
===========================================================================
$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
===========================================================================
# $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"
@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
$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
$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
$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;