Enable P10 HCODE and HOSTBOOT_BINARIES compilation
- Implement makefiles for hostboot_binaries and hcode
to build the p10 content
- Add an override ENV Var to use a binary version of hcode
instead of compiling the source code
- Binary used for override is release: hw112519a.opmst10
diff --git a/openpower/package/hcode-p10/hcode-p10.mk b/openpower/package/hcode-p10/hcode-p10.mk
index db59ad0..10f2b59 100644
--- a/openpower/package/hcode-p10/hcode-p10.mk
+++ b/openpower/package/hcode-p10/hcode-p10.mk
@@ -5,11 +5,11 @@
################################################################################
HCODE_P10_VERSION = $(call qstrip,$(BR2_HCODE_P10_VERSION))
-HCODE_P10_SITE = $(call github,open-power,hcode,$(HCODE_P10_VERSION))
+#HCODE_P10_SITE ?= $(call github,open-power,hcode,$(HCODE_P10_VERSION))
# TODO: Need to comment out above line and enable next two lines
# once buildable P10 HCODE is available in GHE
-#HCODE_P10_SITE = git@github.ibm.com:open-power/hcode.git
-#HCODE_P10_SITE_METHOD=git
+HCODE_P10_SITE ?= git@github.ibm.com:open-power/hcode.git
+HCODE_P10_SITE_METHOD ?= git
HCODE_P10_LICENSE = Apache-2.0
HCODE_P10_INSTALL_IMAGES = YES
@@ -17,20 +17,28 @@
HCODE_P10_DEPENDENCIES = host-binutils host-ppe42-gcc hostboot-binaries
-HW_IMAGE_BIN_PATH=output/images/hw_image
-
-# TODO: Customize next four lines for P10
-HW_IMAGE_BIN=p9n.hw_image.bin
-HCODE_IMAGE_BIN = p9n.ref_image.bin
-HW_AXONE_IMAGE_BIN=p9a.hw_image.bin
-HCODE_AXONE_IMAGE_BIN = p9a.ref_image.bin
+HW_IMAGE_BIN_PATH = output/images/hw_image
+HW_IMAGE_BIN_NAME = p10.hw_image.bin
+HCODE_IMAGE_BIN_NAME = p10.ref_image.bin
CROSS_COMPILER_PATH=$(PPE42_GCC_BIN)
PPE_TOOL_PATH ?= $(CROSS_COMPILER_PATH)
PPE_PREFIX ?= $(PPE_TOOL_PATH)/bin/powerpc-eabi-
+###################################
+# P10 Workaround
+ifeq ($(BR2_HOSTBOOT_BINARIES_USE_HCODE_BIN),y)
+
+define HCODE_P10_INSTALL_IMAGES_CMDS
+ mkdir -p $(STAGING_DIR)/hcode
+ $(INSTALL) -D $(STAGING_DIR)/hostboot_binaries/$(HCODE_IMAGE_BIN_NAME) $(STAGING_DIR)/hcode/$(HCODE_IMAGE_BIN_NAME)
+endef
+
+else
+
+#TODO In the future use OPENPOWER_BUILD=1 to avoid all IBM-internal make functionality (afs, etc)
HCODE_P10_ENV_VARS= CONFIG_FILE=$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/hcode/$(BR2_HCODE_CONFIG_FILE) \
- LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib OPENPOWER_BUILD=1\
+ LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib \
CROSS_COMPILER_PATH=$(PPE42_GCC_BIN) PPE_TOOL_PATH=$(CROSS_COMPILER_PATH) \
PPE_PREFIX=$(CROSS_COMPILER_PATH)/bin/powerpc-eabi- \
RINGFILEPATH=$(STAGING_DIR)/hostboot_binaries __EKB_PREFIX=$(CXXPATH) \
@@ -39,12 +47,12 @@
define HCODE_P10_INSTALL_IMAGES_CMDS
mkdir -p $(STAGING_DIR)/hcode
- $(INSTALL) $(@D)/$(HW_IMAGE_BIN_PATH)/$(HW_IMAGE_BIN) $(STAGING_DIR)/hcode/$(HCODE_IMAGE_BIN)
- $(INSTALL) $(@D)/$(HW_IMAGE_BIN_PATH)/$(HW_AXONE_IMAGE_BIN) $(STAGING_DIR)/hcode/$(HCODE_AXONE_IMAGE_BIN)
+ $(INSTALL) $(@D)/$(HW_IMAGE_BIN_PATH)/$(HW_IMAGE_BIN_NAME) $(STAGING_DIR)/hcode/$(HCODE_IMAGE_BIN_NAME)
endef
define HCODE_P10_BUILD_CMDS
- $(HCODE_ENV_VARS) bash -c 'cd $(@D) && source ./env.bash && $(MAKE) '
+ $(HCODE_P10_ENV_VARS) bash -c 'cd $(@D) && source ./env.bash && $(MAKE) '
endef
+endif
$(eval $(generic-package))