Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Oct 2019 01:10:32 +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: r515947 - in head/sysutils/opensbi: . files
Message-ID:  <201910290110.x9T1AWnA031989@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mhorne (src committer)
Date: Tue Oct 29 01:10:32 2019
New Revision: 515947
URL: https://svnweb.freebsd.org/changeset/ports/515947

Log:
  New port: sysutils/opensbi: OpenSBI, a RISC-V bootloader and firmware
  
  OpenSBI is a RISC-V bootloader and set of firmware libraries that
  implement the RISC-V Supervisor Binary Interface (SBI) required for
  supervisor targets, such as the FreeBSD kernel.
  
  This port installs the OpenSBI libraries that can be used for
  development of custom firmwares, as well as the firmware files for the
  QEMU virt and SiFive U540 platforms.
  
  Reviewed by:	lwhsu, philip (earlier version)
  Approved by:	lwhsu
  Differential Revision:	https://reviews.freebsd.org/D22164

Added:
  head/sysutils/opensbi/
  head/sysutils/opensbi/Makefile   (contents, props changed)
  head/sysutils/opensbi/distinfo   (contents, props changed)
  head/sysutils/opensbi/files/
  head/sysutils/opensbi/files/patch-Makefile   (contents, props changed)
  head/sysutils/opensbi/pkg-descr   (contents, props changed)
  head/sysutils/opensbi/pkg-plist   (contents, props changed)

Added: head/sysutils/opensbi/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/Makefile	Tue Oct 29 01:10:32 2019	(r515947)
@@ -0,0 +1,56 @@
+# $FreeBSD$
+
+PORTNAME=	opensbi
+DISTVERSIONPREFIX=v
+DISTVERSION=	0.5
+CATEGORIES=	sysutils
+
+MAINTAINER=	mhorne@FreeBSD.org
+COMMENT=	RISC-V SBI bootloader and firmware
+
+LICENSE=	BSD2CLAUSE
+
+USES=		gmake
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	riscv
+
+RISCV_PREFIX=	riscv64-unknown-${OPSYS:tl}${OSREL}-
+BUILD_DEPENDS=	${RISCV_PREFIX}gcc:devel/riscv64-xtoolchain-gcc
+
+MAKE_ARGS=	CROSS_COMPILE=${RISCV_PREFIX} I=${STAGEDIR}${PREFIX}
+
+OPTIONS_GROUP=		PLATFORMS
+OPTIONS_GROUP_PLATFORMS=QEMU_VIRT SIFIVE_FU540
+OPTIONS_SUB=		yes
+OPTIONS_DEFAULT=	QEMU_VIRT SIFIVE_FU540
+
+QEMU_VIRT_DESC=		Support for QEMU Virt platform
+QEMU_VIRT_PLATFORM=	qemu/virt
+
+SIFIVE_FU540_DESC=	Support for SiFive U540 platform
+SIFIVE_FU540_PLATFORM=	sifive/fu540
+
+INSTALL_TARGET=		install
+
+.for platform in ${OPTIONS_GROUP_PLATFORMS}
+
+post-build-${platform}-on:
+	${MAKE_CMD} -C ${WRKSRC} ${MAKE_ARGS} PLATFORM=${${platform}_PLATFORM}
+
+do-install-${platform}-on:
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	${MAKE_CMD} -C ${WRKSRC} PLATFORM=${${platform}_PLATFORM} \
+		I=${STAGEDIR}${DATADIR} install_firmwares
+	${MAKE_CMD} -C ${WRKSRC} PLATFORM=${${platform}_PLATFORM} \
+		I=${STAGEDIR}${DATADIR} install_libplatsbi
+
+post-install-${platform}-on:
+.for i in dynamic jump payload
+	${STRIP_CMD} ${STAGEDIR}${DATADIR}/platform/${${platform}_PLATFORM}/firmware/fw_${i}.elf
+.endfor
+	${STRIP_CMD} ${STAGEDIR}${DATADIR}/platform/${${platform}_PLATFORM}/firmware/payloads/test.elf
+
+.endfor # OPTIONS_GROUP_PLATFORMS
+
+.include <bsd.port.mk>

Added: head/sysutils/opensbi/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/distinfo	Tue Oct 29 01:10:32 2019	(r515947)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1571500133
+SHA256 (riscv-opensbi-v0.5_GH0.tar.gz) = bc82f1e63663cafb7976b324d8a01263510cfd816063dc89e0ccffb9763fb1dd
+SIZE (riscv-opensbi-v0.5_GH0.tar.gz) = 138745

Added: head/sysutils/opensbi/files/patch-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/files/patch-Makefile	Tue Oct 29 01:10:32 2019	(r515947)
@@ -0,0 +1,11 @@
+--- Makefile.orig	2019-10-09 02:45:51 UTC
++++ Makefile
+@@ -180,7 +180,7 @@ ASFLAGS		+=	$(firmware-asflags-y)
+ 
+ ARFLAGS		=	rcs
+ 
+-ELFFLAGS	+=	-Wl,--build-id=none -N -static-libgcc -lgcc
++ELFFLAGS	+=	-Wl,--build-id=none -N -static-libgcc
+ ELFFLAGS	+=	$(platform-ldflags-y)
+ ELFFLAGS	+=	$(firmware-ldflags-y)
+ 

Added: head/sysutils/opensbi/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/pkg-descr	Tue Oct 29 01:10:32 2019	(r515947)
@@ -0,0 +1,18 @@
+The RISC-V Supervisor Binary Interface (SBI) is the recommended interface
+between:
+
+1. A platform-specific firmware running in M-mode and a bootloader, a
+   hypervisor or a general-purpose OS executing in S-mode or HS-mode.
+2. A hypervisor running in HS-mode and a bootloader or a general-purpose OS
+   executing in VS-mode.
+
+The RISC-V SBI specification is maintained as an independent project by the
+RISC-V Foundation at https://github.com/riscv/riscv-sbi-doc.
+
+The goal of the OpenSBI project is to provide an open-source reference
+implementation of the RISC-V SBI specifications for platform-specific firmwares
+executing in M-mode (case 1 mentioned above). An OpenSBI implementation can be
+easily extended by RISC-V platform and system-on-chip vendors to fit a
+particular hardware configuration.
+
+WWW: https://github.com/riscv/opensbi

Added: head/sysutils/opensbi/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/opensbi/pkg-plist	Tue Oct 29 01:10:32 2019	(r515947)
@@ -0,0 +1,56 @@
+include/sbi/fw_dynamic.h
+include/sbi/riscv_asm.h
+include/sbi/riscv_atomic.h
+include/sbi/riscv_barrier.h
+include/sbi/riscv_encoding.h
+include/sbi/riscv_fp.h
+include/sbi/riscv_io.h
+include/sbi/riscv_locks.h
+include/sbi/riscv_unpriv.h
+include/sbi/sbi_bitops.h
+include/sbi/sbi_bits.h
+include/sbi/sbi_console.h
+include/sbi/sbi_const.h
+include/sbi/sbi_ecall.h
+include/sbi/sbi_ecall_interface.h
+include/sbi/sbi_emulate_csr.h
+include/sbi/sbi_error.h
+include/sbi/sbi_fifo.h
+include/sbi/sbi_hart.h
+include/sbi/sbi_illegal_insn.h
+include/sbi/sbi_init.h
+include/sbi/sbi_ipi.h
+include/sbi/sbi_misaligned_ldst.h
+include/sbi/sbi_platform.h
+include/sbi/sbi_scratch.h
+include/sbi/sbi_string.h
+include/sbi/sbi_system.h
+include/sbi/sbi_timer.h
+include/sbi/sbi_tlb.h
+include/sbi/sbi_trap.h
+include/sbi/sbi_types.h
+include/sbi/sbi_version.h
+include/sbi_utils/irqchip/plic.h
+include/sbi_utils/serial/sifive-uart.h
+include/sbi_utils/serial/uart8250.h
+include/sbi_utils/sys/clint.h
+lib/libsbi.a
+lib/libsbiutils.a
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_dynamic.bin
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_dynamic.elf
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_jump.bin
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_jump.elf
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_payload.bin
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/fw_payload.elf
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/payloads/test.bin
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/firmware/payloads/test.elf
+%%QEMU_VIRT%%%%DATADIR%%/platform/qemu/virt/lib/libplatsbi.a
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_dynamic.bin
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_dynamic.elf
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_jump.bin
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_jump.elf
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_payload.bin
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/fw_payload.elf
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/payloads/test.bin
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/firmware/payloads/test.elf
+%%SIFIVE_FU540%%%%DATADIR%%/platform/sifive/fu540/lib/libplatsbi.a



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