opensbi.mk 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # SPDX-License-Identifier: GPL-2.0
  2. OPENSBI_NAME=opensbi
  3. #OPENSBI_BUILD_DEPENDENT_PACKAGES=
  4. OPENSBI_REPO_DIR=$(CONFIG_OPENSBI_REPO_PATH)
  5. ifeq ($(CONFIG_OPENSBI_BUILD_IN_TMPFS),y)
  6. OPENSBI_BUILD_IN_TMPFS=/tempfs
  7. endif
  8. OPENSBI_SRC_DIR=$(SDK_BUILD_DIR)$(OPENSBI_BUILD_IN_TMPFS)/firmware/$(OPENSBI_NAME)
  9. OPENSBI_INSTALL_DIR=$(SDK_OUTPUT_DIR)/firmware/$(OPENSBI_NAME)
  10. opensbi_update:
  11. @$(call fetch_remote, $(OPENSBI_REPO_DIR), $(CONFIG_OPENSBI_GIT_REMOTE))
  12. #==============================================================================
  13. # Build the U-Boot for some board.
  14. #==============================================================================
  15. _BOARD_OPENSBI_SRC_DIR=$(join $(OPENSBI_SRC_DIR), $(CONFIG_BOARD_SUBFIX))
  16. _BOARD_OPENSBI_INSTALL_DIR=$(join $(OPENSBI_INSTALL_DIR), $(CONFIG_BOARD_SUBFIX))/$(SDK_TIMESTAMP_TEMPLATE_1)
  17. #_BOARD_OPENSBI_BIN_PATH=$(_BOARD_OPENSBI_INSTALL_DIR)/u-boot.bin
  18. #_BOARD_OPENSBI_DTB_PATH=$(_BOARD_OPENSBI_INSTALL_DIR)/u-boot.dtb
  19. # FW_PAYLOAD_PATH=$(CONFIG_OPENSBI_PREBUILD_UBOOT_BIN) \
  20. # FW_FDT_PATH=$(CONFIG_OPENSBI_PREBUILD_DTB)
  21. #_board_opensbi_update:
  22. # @$(call fetch_remote, $(OPENSBI_REPO_DIR), $(CONFIG_OPENSBI_GIT_REMOTE))
  23. ifneq ($(CONFIG_OPENSBI_BUILD_ARGS),"")
  24. _BOARD_OPENSBI_BUILD_ARGS=$(shell echo $(CONFIG_OPENSBI_BUILD_ARGS))
  25. endif
  26. ifneq ($(CONFIG_OPENSBI_PREBUILD_UBOOT_BIN),"")
  27. _BOARD_OPENSBI_BUILD_ARGS += FW_PAYLOAD_PATH=$(shell echo $(CONFIG_OPENSBI_PREBUILD_UBOOT_BIN))
  28. endif
  29. ifneq ($(CONFIG_OPENSBI_PREBUILD_DTB),"")
  30. _BOARD_OPENSBI_BUILD_ARGS += FW_FDT_PATH=$(shell echo $(CONFIG_OPENSBI_PREBUILD_DTB))
  31. else
  32. ifeq ($(CONFIG_OPENSBI_PLATFORM_GENERIC),y)
  33. $(warning Missing dtb file for building generic platform)
  34. endif
  35. endif
  36. _board_opensbi_checkout_with_check:
  37. OVERWRITED_CHK=Y;\
  38. $(call checkout_src_full, $(OPENSBI_REPO_DIR),\
  39. $(CONFIG_OPENSBI_GIT_REMOTE) \
  40. $(CONFIG_OPENSBI_GIT_RBRANCH), \
  41. $(CONFIG_OPENSBI_GIT_LBRANCH), \
  42. $(_BOARD_OPENSBI_SRC_DIR),)
  43. _board_opensbi_checkout:
  44. $(call checkout_src_full, $(OPENSBI_REPO_DIR),\
  45. $(CONFIG_OPENSBI_GIT_REMOTE) \
  46. $(CONFIG_OPENSBI_GIT_RBRANCH), \
  47. $(CONFIG_OPENSBI_GIT_LBRANCH), \
  48. $(_BOARD_OPENSBI_SRC_DIR),)
  49. _board_opensbi_devel:
  50. $(call devel_init, $(_BOARD_OPENSBI_SRC_DIR))
  51. _board_opensbi_build_silent:
  52. SILENT_BUILD=Y; \
  53. $(call build_target_log, $(_BOARD_OPENSBI_SRC_DIR), \
  54. $(CROSS_COMPILE_RV64_ENV) \
  55. PLATFORM=$(shell echo $(CONFIG_OPENSBI_BUILD_PLATFORM)) \
  56. $(_BOARD_OPENSBI_BUILD_ARGS), )
  57. _board_opensbi_build:
  58. $(call build_target_log, $(_BOARD_OPENSBI_SRC_DIR), \
  59. $(CROSS_COMPILE_RV64_ENV) \
  60. PLATFORM=$(shell echo $(CONFIG_OPENSBI_BUILD_PLATFORM)) \
  61. $(_BOARD_OPENSBI_BUILD_ARGS), )
  62. _board_opensbi_install:
  63. $(call install_bin, \
  64. $(_BOARD_OPENSBI_SRC_DIR)/build/platform/$(CONFIG_OPENSBI_BUILD_PLATFORM)/firmware/fw_*.bin, \
  65. $(_BOARD_OPENSBI_INSTALL_DIR))
  66. _board_opensbi_all: _board_opensbi_checkout _board_opensbi_build _board_opensbi_install