Index: sysutils/u-boot-master/Makefile =================================================================== --- sysutils/u-boot-master/Makefile +++ sysutils/u-boot-master/Makefile @@ -5,29 +5,25 @@ PORTNAME= u-boot PORTVERSION= ${UBOOT_VERSION} -PORTREVISION= 1 -DISTVERSIONPREFIX= ports-v CATEGORIES= sysutils PKGNAMESUFFIX?= -${MODEL} +MASTER_SITES= ftp://ftp.denx.de/pub/u-boot/ -MAINTAINER= imp@FreeBSD.org +MAINTAINER= uboot@FreeBSD.org COMMENT= Cross-build das u-boot for model ${MODEL} LICENSE= GPLv2 BUILD_DEPENDS+= gsed:textproc/gsed \ swig3.0:devel/swig30 \ - dtc>=1.4.1:sysutils/dtc + dtc>=1.4.1:sysutils/dtc \ + mkimage:sysutils/u-boot-tools BUILD_DEPENDS+= ${COMPILER}:devel/${COMPILER} -USES= gmake python:2.7,build shebangfix -BINARY_ALIAS= swig=swig3.0 sed=gsed +USES= tar:bz2 gmake python:2.7,build shebangfix +BINARY_ALIAS= swig=swig3.0 sed=gsed dtc=${LOCALBASE}/bin/dtc -USE_GITHUB= yes -GH_ACCOUNT= freebsd -GH_PROJECT= u-boot - -SHEBANG_FILES= lib/libfdt/pylibfdt/setup.py +SHEBANG_FILES= tools/binman/binman.py SSP_UNSAFE= yes UBOOT_DIR= share/u-boot/${PORTNAME}${PKGNAMESUFFIX} INST= ${PREFIX}/${UBOOT_DIR} @@ -74,7 +70,7 @@ .if !defined(UBOOT_VERSION) && defined(UBOOT_VERSION_${FAMILY:tu}) UBOOT_VERSION=${UBOOT_VERSION_${FAMILY:tu}} .endif -UBOOT_VERSION?= 2017.09.00 +UBOOT_VERSION?= 2018.01 .if !defined(UBOOT_PLIST) && defined(UBOOT_PLIST_${FAMILY:tu}) UBOOT_PLIST=${UBOOT_PLIST_${FAMILY:tu}} @@ -89,6 +85,7 @@ .if ${UBOOT_ARCH} == arm CROSS_COMPILE=arm-none-eabi- ARCHFLAGS=ARCH=${UBOOT_ARCH} +UBOOT_PLIST+= boot.scr .elif ${UBOOT_ARCH} == aarch64 CROSS_COMPILE=aarch64-none-elf- ARCHFLAGS=ARCH=arm @@ -115,8 +112,16 @@ .endfor PLIST_FILES+= ${UBOOT_DIR}/README +post-patch: + @${REINPLACE_CMD} -e "s|make|${MAKE_CMD}|" ${WRKSRC}/scripts/kconfig/merge_config.sh + +.if ${UBOOT_ARCH} == arm +do-configure: + (cd ${WRKSRC}; ${SETENV} ${CONFIGURE_ENV} scripts/kconfig/merge_config.sh configs/${BOARD_CONFIG} configs/FreeBSD_Fragment) +.else ${UBOOT_ARCH} == arm64 do-configure: (cd ${WRKSRC}; ${SETENV} ${CONFIGURE_ENV} ${MAKE_CMD} ${BOARD_CONFIG}) +.endif # U-Boot for Allwinner 64bits SoCs is splited in two parts # Generate a single binary to ease deployement on sdcard @@ -125,6 +130,11 @@ ${CAT} ${WRKSRC}/spl/sunxi-spl.bin ${WRKSRC}/u-boot.itb > ${WRKSRC}/u-boot-sunxi-with-spl.bin .endif +.if ${UBOOT_ARCH} == arm +post-build: + mkimage -C none -A arm -T script -d ${WRKSRC}/boot.cmd ${WRKSRC}/boot.scr +.endif + # If we need to put anything into WRKSRC, do so now so we can build the PLIST # in do-install .if defined(UBOOT_MOVE) Index: sysutils/u-boot-master/distinfo =================================================================== --- sysutils/u-boot-master/distinfo +++ sysutils/u-boot-master/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1508182195 -SHA256 (freebsd-u-boot-ports-v2017.09.00_GH0.tar.gz) = 5e408dee8be45e11293771a7d8a91250dad20711088195f5d6da99d42f5d4f7e -SIZE (freebsd-u-boot-ports-v2017.09.00_GH0.tar.gz) = 14429809 +TIMESTAMP = 1515874341 +SHA256 (u-boot-2018.01.tar.bz2) = 938f597394b33e82e5af8c98bd5ea1a238f61892aabef36384adbf7ca5b52dda +SIZE (u-boot-2018.01.tar.bz2) = 12023681 Index: sysutils/u-boot-master/files/patch-api_api.c =================================================================== --- /dev/null +++ sysutils/u-boot-master/files/patch-api_api.c @@ -0,0 +1,14 @@ +--- api/api.c.orig 2018-01-09 01:25:29 UTC ++++ api/api.c +@@ -290,6 +290,11 @@ static int API_dev_close(va_list ap) + if (!err) + di->state = DEV_STA_CLOSED; + ++ if (dcache_status()) ++ flush_dcache_all(); ++ if (icache_status()) ++ invalidate_icache_all(); ++ + return err; + } + Index: sysutils/u-boot-master/files/patch-boot.cmd =================================================================== --- /dev/null +++ sysutils/u-boot-master/files/patch-boot.cmd @@ -0,0 +1,5 @@ +--- boot.cmd.orig 2018-01-17 20:10:14 UTC ++++ boot.cmd +@@ -0,0 +1,2 @@ ++fatload ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ubldr.bin ++go ${kernel_addr_r} Index: sysutils/u-boot-master/files/patch-cmd_boot.c =================================================================== --- /dev/null +++ sysutils/u-boot-master/files/patch-cmd_boot.c @@ -0,0 +1,13 @@ +--- cmd/boot.c.orig 2018-01-09 01:25:29 UTC ++++ cmd/boot.c +@@ -19,6 +19,10 @@ __attribute__((weak)) + unsigned long do_go_exec(ulong (*entry)(int, char * const []), int argc, + char * const argv[]) + { ++ if (dcache_status()) ++ flush_dcache_all(); ++ if (icache_status()) ++ invalidate_icache_all(); + return entry (argc, argv); + } + Index: sysutils/u-boot-master/files/patch-cmd_elf.c =================================================================== --- /dev/null +++ sysutils/u-boot-master/files/patch-cmd_elf.c @@ -0,0 +1,14 @@ +--- cmd/elf.c.orig 2018-01-09 01:25:29 UTC ++++ cmd/elf.c +@@ -109,6 +109,11 @@ static unsigned long do_bootelf_exec(ulong (*entry)(in + { + unsigned long ret; + ++ if (dcache_status()) ++ flush_dcache_all(); ++ if (icache_status()) ++ invalidate_icache_all(); ++ + /* + * pass address parameter as argv[0] (aka command name), + * and all remaining args Index: sysutils/u-boot-master/files/patch-configs_FreeBSD__Fragment =================================================================== --- /dev/null +++ sysutils/u-boot-master/files/patch-configs_FreeBSD__Fragment @@ -0,0 +1,4 @@ +--- configs/FreeBSD_Fragment.orig 2018-01-17 20:10:14 UTC ++++ configs/FreeBSD_Fragment +@@ -0,0 +1 @@ ++CONFIG_API=y