Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Feb 2021 15:27:39 +0000 (UTC)
From:      Mitchell Horne <mhorne@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r564036 - in head/sysutils: opensbi opensbi/files u-boot-sifive-fu540
Message-ID:  <202102041527.114FRdcr034548@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mhorne (src committer)
Date: Thu Feb  4 15:27:38 2021
New Revision: 564036
URL: https://svnweb.freebsd.org/changeset/ports/564036

Log:
  sysutils/opensbi: update to v0.9
  
  This change adds a patch to disable the PMP for the sifive/fu540 target,
  which is a workaround to a PMP errata in the chip. The OpenSBI update
  itself is quite minor.
  
  Bump the dependent port, sysutils/u-boot-sifive-fu540.
  
  Reviewed by:	lwhsu, kp
  Approved by:	lwhsu (ports)
  Tested by:	Klaus Küchemann (maciphone2@googlemail.com)
  Differential Revision:	https://reviews.freebsd.org/D28471

Added:
  head/sysutils/opensbi/files/patch-lib_sbi_sbi__hart.c   (contents, props changed)
  head/sysutils/opensbi/files/patch-platform_generic_platform.c   (contents, props changed)
  head/sysutils/opensbi/files/patch-platform_sifive_fu540_platform.c   (contents, props changed)
Deleted:
  head/sysutils/opensbi/files/patch-Makefile
Modified:
  head/sysutils/opensbi/Makefile
  head/sysutils/opensbi/distinfo
  head/sysutils/opensbi/pkg-plist
  head/sysutils/u-boot-sifive-fu540/Makefile

Modified: head/sysutils/opensbi/Makefile
==============================================================================
--- head/sysutils/opensbi/Makefile	Thu Feb  4 15:13:23 2021	(r564035)
+++ head/sysutils/opensbi/Makefile	Thu Feb  4 15:27:38 2021	(r564036)
@@ -2,7 +2,7 @@
 
 PORTNAME=	opensbi
 DISTVERSIONPREFIX=v
-DISTVERSION=	0.8
+DISTVERSION=	0.9
 CATEGORIES=	sysutils
 
 MAINTAINER=	mhorne@FreeBSD.org

Modified: head/sysutils/opensbi/distinfo
==============================================================================
--- head/sysutils/opensbi/distinfo	Thu Feb  4 15:13:23 2021	(r564035)
+++ head/sysutils/opensbi/distinfo	Thu Feb  4 15:27:38 2021	(r564036)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1592679770
-SHA256 (riscv-opensbi-v0.8_GH0.tar.gz) = 17e048ac765e92e15f7436b604452614cf88dc2bcbbaab18cdc024f3fdd4c575
-SIZE (riscv-opensbi-v0.8_GH0.tar.gz) = 172450
+TIMESTAMP = 1610993580
+SHA256 (riscv-opensbi-v0.9_GH0.tar.gz) = 60f995cb3cd03e3cf5e649194d3395d0fe67499fd960a36cf7058a4efde686f0
+SIZE (riscv-opensbi-v0.9_GH0.tar.gz) = 189688

Added: head/sysutils/opensbi/files/patch-lib_sbi_sbi__hart.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/files/patch-lib_sbi_sbi__hart.c	Thu Feb  4 15:27:38 2021	(r564036)
@@ -0,0 +1,19 @@
+--- lib/sbi/sbi_hart.c.orig	2021-01-30 20:30:32 UTC
++++ lib/sbi/sbi_hart.c
+@@ -188,6 +188,16 @@ int sbi_hart_pmp_configure(struct sbi_scratch *scratch
+ 	if (!pmp_count)
+ 		return 0;
+ 
++	/*
++	 * Disable the PMP for the sifive/fu540 platform, required to work
++	 * around a hardware errata.
++	 */
++	extern int need_pmp_war;
++	if (need_pmp_war) {
++		pmp_set(0, PMP_R | PMP_W | PMP_X, -1, __riscv_xlen);
++		return 0;
++	}
++
+ 	pmp_gran_log2 = log2roundup(sbi_hart_pmp_granularity(scratch));
+ 	pmp_bits = sbi_hart_pmp_addrbits(scratch) - 1;
+ 	pmp_addr_max = (1UL << pmp_bits) | ((1UL << pmp_bits) - 1);

Added: head/sysutils/opensbi/files/patch-platform_generic_platform.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/files/patch-platform_generic_platform.c	Thu Feb  4 15:27:38 2021	(r564036)
@@ -0,0 +1,11 @@
+--- platform/generic/platform.c.orig	2021-01-30 20:29:48 UTC
++++ platform/generic/platform.c
+@@ -22,6 +22,8 @@
+ #include <sbi_utils/ipi/fdt_ipi.h>
+ #include <sbi_utils/reset/fdt_reset.h>
+ 
++int need_pmp_war = FALSE;
++
+ extern const struct platform_override sifive_fu540;
+ 
+ static const struct platform_override *special_platforms[] = {

Added: head/sysutils/opensbi/files/patch-platform_sifive_fu540_platform.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/files/patch-platform_sifive_fu540_platform.c	Thu Feb  4 15:27:38 2021	(r564036)
@@ -0,0 +1,10 @@
+--- platform/sifive/fu540/platform.c.orig	2021-01-30 20:28:07 UTC
++++ platform/sifive/fu540/platform.c
+@@ -20,6 +20,7 @@
+ #include <sbi_utils/sys/clint.h>
+ 
+ /* clang-format off */
++int need_pmp_war = TRUE;
+ 
+ #define FU540_HART_COUNT			5
+ 

Modified: head/sysutils/opensbi/pkg-plist
==============================================================================
--- head/sysutils/opensbi/pkg-plist	Thu Feb  4 15:13:23 2021	(r564035)
+++ head/sysutils/opensbi/pkg-plist	Thu Feb  4 15:27:38 2021	(r564036)
@@ -11,6 +11,7 @@ include/sbi/sbi_bitops.h
 include/sbi/sbi_console.h
 include/sbi/sbi_const.h
 include/sbi/sbi_csr_detect.h
+include/sbi/sbi_domain.h
 include/sbi/sbi_ecall.h
 include/sbi/sbi_ecall_interface.h
 include/sbi/sbi_emulate_csr.h
@@ -36,6 +37,7 @@ include/sbi/sbi_trap.h
 include/sbi/sbi_types.h
 include/sbi/sbi_unpriv.h
 include/sbi/sbi_version.h
+include/sbi_utils/fdt/fdt_domain.h
 include/sbi_utils/fdt/fdt_fixup.h
 include/sbi_utils/fdt/fdt_helper.h
 include/sbi_utils/ipi/fdt_ipi.h

Modified: head/sysutils/u-boot-sifive-fu540/Makefile
==============================================================================
--- head/sysutils/u-boot-sifive-fu540/Makefile	Thu Feb  4 15:13:23 2021	(r564035)
+++ head/sysutils/u-boot-sifive-fu540/Makefile	Thu Feb  4 15:27:38 2021	(r564036)
@@ -2,6 +2,8 @@
 
 MASTERDIR=	${.CURDIR}/../u-boot-master
 
+U_BOOT_SLAVE_PORTREVISION_2020.10=	1
+
 MODEL=		sifive-fu540
 BOARD_CONFIG=	sifive_fu540_defconfig
 FAMILY=		sifive



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102041527.114FRdcr034548>