pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils/u-boot-rockpro64 u-boot-rockpro64: implement ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/97864f91af01
branches:  trunk
changeset: 401372:97864f91af01
user:      tnn <tnn%pkgsrc.org@localhost>
date:      Sun Sep 15 20:13:31 2019 +0000

description:
u-boot-rockpro64: implement workaround for A72 errata #859971

This disables i-cache prefetch, which can otherwise cause deadlocks on the
processor revision that ROCKPro64 uses.
Done via binary patch of the Rockchip TF-A EL3 firmware.

Bump PKGREVISION.

diffstat:

 sysutils/u-boot-rockpro64/Makefile |  14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diffs (34 lines):

diff -r aac311f847e9 -r 97864f91af01 sysutils/u-boot-rockpro64/Makefile
--- a/sysutils/u-boot-rockpro64/Makefile        Sun Sep 15 19:29:23 2019 +0000
+++ b/sysutils/u-boot-rockpro64/Makefile        Sun Sep 15 20:13:31 2019 +0000
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.6 2019/09/15 15:50:22 tnn Exp $
+# $NetBSD: Makefile,v 1.7 2019/09/15 20:13:31 tnn Exp $
 
-PKGREVISION=           5
+PKGREVISION=           6
 UBOOT_TARGET=          rockpro64
 UBOOT_CONFIG=          rockpro64-rk3399_defconfig
 UBOOT_BIN=             idbloader.img rksd_loader.img rkspi_loader.img u-boot.itb
@@ -12,7 +12,7 @@
 
 # Boot Loader stage 3-1 (BL31) EL3 Runtime Firmware
 # XXX LICENSE?
-BL31=          rk3399_bl31_v1.29.elf
+BL31=          rk3399_bl31_v1.29.elf   # if you bump this, adjust pre-build target!
 DISTFILES+=    ${BL31}
 SITES.${BL31}= ${MASTER_SITE_GITHUB:=rockchip-linux/rkbin/raw/0b8a4e66958b5d3d87fc61fc4bd8e069c79e931a/bin/rk33/}
 
@@ -21,4 +21,12 @@
 SITES.${DDR_BIN}=      ${MASTER_SITE_GITHUB:=rockchip-linux/rkbin/raw/016471bcfb1a0b1e1269895cb7b6f534813edfdc/bin/rk33/}
 DISTFILES+=            ${DDR_BIN}
 
+pre-build:
+# patch the first instruction of cortex_a72_reset_func, replacing:
+# mrs     x0, s3_1_c15_c2_0
+# with:
+# orr     x0, xzr, #0x100000000
+# This enables workaround for A72 errata #859971.
+       ${AWK} 'BEGIN {printf("%c%c%c%c",224,3,96,178);exit;}' | dd conv=notrunc bs=1 seek=145568 of=${WRKDIR}/${BL31}
+
 .include "../../sysutils/u-boot/u-boot-arm64.mk"



Home | Main Index | Thread Index | Old Index