aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan HERPAI <wigyori@uid0.hu>2020-01-26 23:45:48 +0100
committerZoltan HERPAI <wigyori@uid0.hu>2023-06-14 09:22:08 +0200
commit08247ffedadcb3198b7fa460f9445d049c936402 (patch)
tree7e26bada563a38af096d77ed90e3a8eee4070aaf
parent341e312ada4dda207a9f2c8402e73cc13b195983 (diff)
downloadupstream-08247ffedadcb3198b7fa460f9445d049c936402.tar.gz
upstream-08247ffedadcb3198b7fa460f9445d049c936402.tar.bz2
upstream-08247ffedadcb3198b7fa460f9445d049c936402.zip
opensbi: add package for RISC-V
OpenSBI is a form of a first-stage bootloader, which initializes certain parts of an SoC and then passes on control to the second stage bootloader i.e. an u-boot image. We're introducing the package with release v1.2, which provides SBI v0.3 and the SBI SRST extensions which helps to gracefully reboot/shutdown various HiFive-U SoCs. Tested on SiFive Unleashed and Unmatched boards. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu> (cherry picked from commit 944b13b3ee1d89e11a0121fbeeaa465ab1e25c3c)
-rw-r--r--package/boot/opensbi/Makefile63
1 files changed, 63 insertions, 0 deletions
diff --git a/package/boot/opensbi/Makefile b/package/boot/opensbi/Makefile
new file mode 100644
index 0000000000..01348e50aa
--- /dev/null
+++ b/package/boot/opensbi/Makefile
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2022 OpenWrt.org
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=opensbi
+PKG_RELEASE:=1.2
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL=https://github.com/riscv/opensbi
+PKG_SOURCE_DATE:=2022-12-24
+PKG_SOURCE_VERSION:=6b5188ca14e59ce7bf71afe4e7d3d557c3d31bf8
+PKG_MIRROR_HASH:=edcdd99da6c62975171981c0aa2b73a27091067da11ccd49816b5ad27d000858
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_TARGETS:=bin
+PKG_FLAGS:=nonshared
+PKG_LICENSE:=BSD-2-Clause
+PKG_LICENSE_FILES:=COPYING.BSD
+PKG_BUILD_PARALLEL:=1
+
+PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/opensbi
+ SECTION:=boot
+ CATEGORY:=Boot Loaders
+ DEPENDS:=@TARGET_sifiveu
+ URL:=https://github.com/riscv/opensbi/blob/master/README.md
+ VARIANT:=$(subst _,/,$(subst opensbi_,,$(1)))
+ TITLE:=OpenSBI generic
+ OPENSBI_IMAGE:=
+ PLAT:=
+endef
+
+define Package/opensbi_generic
+ $(Package/opensbi)
+ TITLE:=OpenSBI generic
+ OPENSBI_IMAGE:=fw_dynamic.bin
+ PLAT:=generic
+endef
+
+export GCC_HONOUR_COPTS=s
+
+MAKE_VARS = \
+ CROSS_COMPILE="$(TARGET_CROSS)"
+
+define Build/Compile
+ $(eval $(Package/opensbi_$(BUILD_VARIANT))) \
+ +$(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
+ PLATFORM=$(PLAT)
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+ $(CP) $(PKG_BUILD_DIR)/build/platform/$(PLAT)/firmware/fw_dynamic.bin $(STAGING_DIR_IMAGE)/fw_dynamic-${BUILD_VARIANT}.bin
+endef
+
+$(eval $(call BuildPackage,opensbi_generic))