opensbi: add package for RISC-V
authorZoltan HERPAI <wigyori@uid0.hu>
Sun, 26 Jan 2020 22:45:48 +0000 (23:45 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Thu, 21 Apr 2022 07:21:07 +0000 (09:21 +0200)
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.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
package/boot/opensbi/Makefile [new file with mode: 0644]

diff --git a/package/boot/opensbi/Makefile b/package/boot/opensbi/Makefile
new file mode 100644 (file)
index 0000000..1193b4d
--- /dev/null
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Copyright (C) 2021 OpenWrt.org
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=opensbi
+PKG_RELEASE:=0.9
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL=https://github.com/riscv/opensbi
+PKG_SOURCE_DATE:=2021-01-18
+PKG_SOURCE_VERSION:=234ed8e427f4d92903123199f6590d144e0d9351
+PKG_MIRROR_HASH:=2efd6c28caffa57884bdd98260aa870a03dc1877514fa9f82a4527b9ebc7681d
+
+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_hifiveu
+    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
+
+define Package/opensbi_sifive-fu540
+  $(Package/opensbi)
+  TITLE:=OpenSBI for SiFive Unleashed (FU540)
+  OPENSBI_IMAGE:=fw_dynamic.bin
+  PLAT:=sifive/fu540
+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))
+$(eval $(call BuildPackage,opensbi_sifive-fu540))