aboutsummaryrefslogtreecommitdiff
path: root/sysutils/opensbi
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2019-10-29 01:10:32 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2019-10-29 01:10:32 +0000
commit8c1a17b1e00d3ac939400d2ef19037343f6e7e89 (patch)
treef12e923dcdbbedc56bceeba7e891fbd8be9cd57f /sysutils/opensbi
parentfeabe28c10ee904ac5564e8b7dcaec68af5a7231 (diff)
downloadports-8c1a17b1e00d3ac939400d2ef19037343f6e7e89.tar.gz
ports-8c1a17b1e00d3ac939400d2ef19037343f6e7e89.zip
Notes
Diffstat (limited to 'sysutils/opensbi')
-rw-r--r--sysutils/opensbi/Makefile56
-rw-r--r--sysutils/opensbi/distinfo3
-rw-r--r--sysutils/opensbi/files/patch-Makefile11
-rw-r--r--sysutils/opensbi/pkg-descr18
-rw-r--r--sysutils/opensbi/pkg-plist56
5 files changed, 144 insertions, 0 deletions
diff --git a/sysutils/opensbi/Makefile b/sysutils/opensbi/Makefile
new file mode 100644
index 000000000000..d39ad349517e
--- /dev/null
+++ b/sysutils/opensbi/Makefile
@@ -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>
diff --git a/sysutils/opensbi/distinfo b/sysutils/opensbi/distinfo
new file mode 100644
index 000000000000..42307a16b470
--- /dev/null
+++ b/sysutils/opensbi/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1571500133
+SHA256 (riscv-opensbi-v0.5_GH0.tar.gz) = bc82f1e63663cafb7976b324d8a01263510cfd816063dc89e0ccffb9763fb1dd
+SIZE (riscv-opensbi-v0.5_GH0.tar.gz) = 138745
diff --git a/sysutils/opensbi/files/patch-Makefile b/sysutils/opensbi/files/patch-Makefile
new file mode 100644
index 000000000000..711663f04731
--- /dev/null
+++ b/sysutils/opensbi/files/patch-Makefile
@@ -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)
+
diff --git a/sysutils/opensbi/pkg-descr b/sysutils/opensbi/pkg-descr
new file mode 100644
index 000000000000..73884ed1acfe
--- /dev/null
+++ b/sysutils/opensbi/pkg-descr
@@ -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
diff --git a/sysutils/opensbi/pkg-plist b/sysutils/opensbi/pkg-plist
new file mode 100644
index 000000000000..17715cc2ba53
--- /dev/null
+++ b/sysutils/opensbi/pkg-plist
@@ -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