blob: 90d42015f0530753cc8090f0c5442ef75b3bd239 [file] [log] [blame]
Bill Hoffa5f93f1d2014-06-26 21:02:48 -05001################################################################################
2#
3# openpower_pnor
4#
5################################################################################
6
hostbootb7974162019-11-19 22:23:30 -06007OPENPOWER_PNOR_VERSION ?= 242df4e8cfa74220b9bf3db318e32ebae1bcd9cc
Nick Bofferdingf390b6f2019-10-08 11:55:42 -05008
9# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
10# after that, when code is propagated to a public repo
11#OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
Nick Bofferding6c26bb72019-10-09 16:40:52 -050012OPENPOWER_PNOR_SITE = git@github.ibm.com:open-power/pnor.git
Nick Bofferdingf390b6f2019-10-08 11:55:42 -050013OPENPOWER_PNOR_SITE_METHOD=git
Brian Silvercb565552014-12-11 12:51:36 -060014
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050015OPENPOWER_PNOR_LICENSE = Apache-2.0
Stewart Smithb16ba5b2017-01-10 12:55:55 +110016OPENPOWER_PNOR_LICENSE_FILES = LICENSE
Lei YU98c3c062019-03-06 16:09:02 +080017OPENPOWER_PNOR_DEPENDENCIES = hostboot-binaries machine-xml skiboot host-openpower-ffs capp-ucode host-openpower-pnor-util
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050018
Richard J. Knight3f0e29c2017-10-13 10:39:01 -050019ifeq ($(BR2_OPENPOWER_POWER9),y)
Nick Bofferdingf390b6f2019-10-08 11:55:42 -050020 OPENPOWER_PNOR_DEPENDENCIES += hcode
Richard J. Knight3f0e29c2017-10-13 10:39:01 -050021endif
22
William A. Kennington III036c7d72017-03-17 12:58:56 -070023ifeq ($(BR2_PACKAGE_IMA_CATALOG),y)
24OPENPOWER_PNOR_DEPENDENCIES += ima-catalog
25endif
26
Stewart Smith898245e2016-03-30 15:26:23 +110027ifeq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),n)
Joel Stanley2aff5ba2015-02-01 14:49:18 +103028
29ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
Stewart Smith906bdba2015-08-26 16:05:20 +100030OPENPOWER_PNOR_DEPENDENCIES += linux-rebuild-with-initramfs
Joel Stanley2aff5ba2015-02-01 14:49:18 +103031else
32OPENPOWER_PNOR_DEPENDENCIES += linux
33endif
34
35endif
36
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050037ifeq ($(BR2_OPENPOWER_PNOR_XZ_ENABLED),y)
Jeremy Kerrc7800842016-07-22 14:01:17 +080038OPENPOWER_PNOR_DEPENDENCIES += host-xz
Nick Bofferding54deceb2017-06-28 23:07:35 -050039XZ_ARG=-xz_compression
40endif
41
42OPENPOWER_PNOR_DEPENDENCIES += host-sb-signing-utils
43
44ifeq ($(BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_DEV),y)
45KEY_TRANSITION_ARG=-key_transition imprint
46else ifeq ($(BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
47KEY_TRANSITION_ARG=-key_transition production
48endif
49
50ifneq ($(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE),"")
51SIGN_MODE_ARG=-sign_mode $(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE)
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050052endif
53
Nick Bofferdingf390b6f2019-10-08 11:55:42 -050054ifeq ($(BR2_OPENPOWER_POWER10),y)
55 OPENPOWER_RELEASE=p10
56else ifeq ($(BR2_OPENPOWER_POWER9),y)
Matt Ploetzb4d85b12016-09-29 20:24:14 -050057 OPENPOWER_RELEASE=p9
58else
59 OPENPOWER_RELEASE=p8
60endif
61
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050062OPENPOWER_PNOR_INSTALL_IMAGES = YES
63OPENPOWER_PNOR_INSTALL_TARGET = NO
64
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050065HOSTBOOT_IMAGE_DIR=$(STAGING_DIR)/hostboot_build_images/
Richard J. Knight3f0e29c2017-10-13 10:39:01 -050066HOSTBOOT_BINARY_DIR = $(STAGING_DIR)/hostboot_binaries
67
68HCODE_STAGING_DIR = $(STAGING_DIR)/hcode
69
Sachin Guptadf0b6a02017-03-16 08:59:51 -050070SBE_BINARY_DIR = $(STAGING_DIR)/sbe_binaries/
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050071OPENPOWER_PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch/
Stephen Cpreke7254c72015-02-19 14:33:38 -060072OPENPOWER_VERSION_DIR = $(STAGING_DIR)/openpower_version
Elizabeth Linerd1a29c12017-05-15 18:03:21 -050073OPENPOWER_MRW_SCRATCH_DIR = $(STAGING_DIR)/openpower_mrw_scratch
Ilya Smirnov2e3ba642017-09-15 12:18:35 -050074OUTPUT_BUILD_DIR = $(STAGING_DIR)/../../../build/
75OUTPUT_IMAGES_DIR = $(STAGING_DIR)/../../../images/
Joel Stanley7bfd1202019-03-05 16:11:44 +103076HOSTBOOT_BUILD_IMAGES_DIR = $(STAGING_DIR)/hostboot_build_images/
Bill Hoffa97762032019-12-03 11:37:41 -060077FSP_TRACE_IMAGES_DIR = $(STAGING_DIR)/fsp-trace/
Ilya Smirnov2e3ba642017-09-15 12:18:35 -050078
79FILES_TO_TAR = $(HOSTBOOT_BUILD_IMAGES_DIR)/* \
Christian Geddesed2b9852019-08-20 13:26:50 -050080 $(OUTPUT_BUILD_DIR)/skiboot-$(BR2_SKIBOOT_VERSION)/skiboot.elf \
81 $(OUTPUT_BUILD_DIR)/skiboot-$(BR2_SKIBOOT_VERSION)/skiboot.map \
82 $(OUTPUT_BUILD_DIR)/linux-$(BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE)/.config \
83 $(OUTPUT_BUILD_DIR)/linux-$(BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE)/vmlinux \
84 $(OUTPUT_BUILD_DIR)/linux-$(BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE)/System.map \
Bill Hoffa97762032019-12-03 11:37:41 -060085 $(FSP_TRACE_IMAGES_DIR)/fsp-trace \
Ilya Smirnov2e3ba642017-09-15 12:18:35 -050086 $(OUTPUT_IMAGES_DIR)/zImage.epapr
87
Stephen Cpreke7254c72015-02-19 14:33:38 -060088
89# Subpackages we want to include in the version info (do not include openpower-pnor)
Stewart Smith03671c02017-02-17 14:57:57 +110090OPENPOWER_VERSIONED_SUBPACKAGES = skiboot
Nick Bofferdingf390b6f2019-10-08 11:55:42 -050091
Stewart Smith03671c02017-02-17 14:57:57 +110092ifeq ($(BR2_PACKAGE_HOSTBOOT_P8),y)
Nick Bofferdingf390b6f2019-10-08 11:55:42 -050093 OPENPOWER_VERSIONED_SUBPACKAGES += hostboot-p8 occ-p8
94else ifeq ($(BR2_PACKAGE_HOSTBOOT_P10),y)
95 OPENPOWER_VERSIONED_SUBPACKAGES += hostboot-p10 occ-p10 sbe-p10 hcode-p10
96 OPENPOWER_PNOR_DEPENDENCIES += hostboot-p10 occ-p10 sbe-p10 hcode-p10
97else ifeq ($(BR2_PACKAGE_HOSTBOOT),y)
98 OPENPOWER_VERSIONED_SUBPACKAGES += hostboot occ
Stewart Smith03671c02017-02-17 14:57:57 +110099endif
Nick Bofferdingf390b6f2019-10-08 11:55:42 -0500100
Stewart Smith03671c02017-02-17 14:57:57 +1100101OPENPOWER_VERSIONED_SUBPACKAGES += linux petitboot machine-xml hostboot-binaries capp-ucode
Stephen Cpreke7254c72015-02-19 14:33:38 -0600102OPENPOWER_PNOR = openpower-pnor
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500103
Sachin Guptadf0b6a02017-03-16 08:59:51 -0500104ifeq ($(BR2_OPENPOWER_POWER9),y)
Stewart Smith736a08b2018-04-19 19:00:26 -0500105 OPENPOWER_PNOR_DEPENDENCIES += sbe hcode
106 OPENPOWER_VERSIONED_SUBPACKAGES += sbe hcode
Sachin Guptadf0b6a02017-03-16 08:59:51 -0500107endif
108
Nick Bofferdingf390b6f2019-10-08 11:55:42 -0500109ifeq ($(BR2_PACKAGE_OCC_P10),y)
110 OCC_BIN_FILENAME=$(BR2_OCC_P10_BIN_FILENAME)
111else ifeq ($(BR2_PACKAGE_OCC_P8),y)
Stewart Smith03671c02017-02-17 14:57:57 +1100112 OCC_BIN_FILENAME=$(BR2_OCC_P8_BIN_FILENAME)
113else
114 OCC_BIN_FILENAME=$(BR2_OCC_BIN_FILENAME)
115endif
116
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500117define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
118 mkdir -p $(OPENPOWER_PNOR_SCRATCH_DIR)
Brian Silver015b5912014-08-07 15:50:15 -0500119
Brian Silver137a00a2014-11-11 12:09:53 -0600120 $(TARGET_MAKE_ENV) $(@D)/update_image.pl \
Matt Ploetzb4d85b12016-09-29 20:24:14 -0500121 -release $(OPENPOWER_RELEASE) \
Brian Silver015b5912014-08-07 15:50:15 -0500122 -op_target_dir $(HOSTBOOT_IMAGE_DIR) \
Brian Silver131189b2014-11-10 08:11:22 -0600123 -hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
124 -scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
125 -hb_binary_dir $(HOSTBOOT_BINARY_DIR) \
Richard J. Knight3f0e29c2017-10-13 10:39:01 -0500126 -hcode_dir $(HCODE_STAGING_DIR) \
Brian Silver131189b2014-11-10 08:11:22 -0600127 -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
Brian Silver137a00a2014-11-11 12:09:53 -0600128 -targeting_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME) \
Mike Baiocchi027044e2018-11-13 10:15:11 -0600129 -targeting_RO_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME).protected \
130 -targeting_RO_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME).protected \
131 -targeting_RW_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME).unprotected \
132 -targeting_RW_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME).unprotected \
Brian Silver137a00a2014-11-11 12:09:53 -0600133 -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
Sachin Guptadf0b6a02017-03-16 08:59:51 -0500134 -sbe_binary_dir $(SBE_BINARY_DIR) \
Brian Silvercb565552014-12-11 12:51:36 -0600135 -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
Matt Ploetzaf3f64e2015-05-14 14:49:55 -0500136 -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
Stewart Smith03671c02017-02-17 14:57:57 +1100137 -occ_binary_filename $(OCC_STAGING_DIR)/$(OCC_BIN_FILENAME) \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600138 -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
Matt Ploetzdfd5a472017-01-19 13:13:55 -0600139 -ima_catalog_binary_filename $(BINARIES_DIR)/$(BR2_IMA_CATALOG_FILENAME) \
Elizabeth Linerfbd6c452016-03-31 10:38:17 -0500140 -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) \
Elizabeth Linerd1a29c12017-05-15 18:03:21 -0500141 -wof_binary_filename $(OPENPOWER_MRW_SCRATCH_DIR)/$(BR2_WOFDATA_FILENAME) \
Elizabeth Linerfa069312017-08-07 23:33:01 -0500142 -memd_binary_filename $(OPENPOWER_MRW_SCRATCH_DIR)/$(BR2_MEMDDATA_FILENAME) \
Elizabeth Linerfbd6c452016-03-31 10:38:17 -0500143 -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_NAME) \
Nick Bofferding54deceb2017-06-28 23:07:35 -0500144 -payload_filename $(BR2_SKIBOOT_LID_XZ_NAME) \
145 -binary_dir $(BINARIES_DIR) \
146 -bootkernel_filename $(LINUX_IMAGE_NAME) \
Bill Hoffa128bda42019-07-10 16:34:55 -0500147 -ocmbfw_version $(BR2_OCMB_EXPLORER_FW_VERSION) \
148 -ocmbfw_url $(BR2_OCMB_EXPLORER_FW_URL) \
149 -ocmbfw_original_filename $(BINARIES_DIR)/$(BR2_OCMBFW_FILENAME) \
Bill Hoffaa48d7fa2019-06-10 08:59:10 -0500150 -ocmbfw_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_PROCESSED_FILENAME) \
Nick Bofferding54deceb2017-06-28 23:07:35 -0500151 -pnor_layout $(@D)/"$(OPENPOWER_RELEASE)"Layouts/$(BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME) \
152 $(XZ_ARG) $(KEY_TRANSITION_ARG) $(SIGN_MODE_ARG) \
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500153
154 mkdir -p $(STAGING_DIR)/pnor/
Brian Silver131189b2014-11-10 08:11:22 -0600155 $(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
Matt Ploetzb4d85b12016-09-29 20:24:14 -0500156 -release $(OPENPOWER_RELEASE) \
157 -xml_layout_file $(@D)/"$(OPENPOWER_RELEASE)"Layouts/$(BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME) \
Brian Silver131189b2014-11-10 08:11:22 -0600158 -pnor_filename $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) \
159 -hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
160 -scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
161 -outdir $(STAGING_DIR)/pnor/ \
Nick Bofferding54deceb2017-06-28 23:07:35 -0500162 -payload $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_SKIBOOT_LID_XZ_NAME) \
163 -bootkernel $(OPENPOWER_PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
Brian Silver131189b2014-11-10 08:11:22 -0600164 -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
165 -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
Matt Ploetzaf3f64e2015-05-14 14:49:55 -0500166 -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
Stewart Smith03671c02017-02-17 14:57:57 +1100167 -occ_binary_filename $(OCC_STAGING_DIR)/$(OCC_BIN_FILENAME) \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600168 -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
Mike Baiocchi027044e2018-11-13 10:15:11 -0600169 -targeting_RO_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME).protected \
170 -targeting_RW_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME).unprotected \
Elizabeth Linerd1a29c12017-05-15 18:03:21 -0500171 -wofdata_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_WOFDATA_BINARY_FILENAME) \
Elizabeth Linerfa069312017-08-07 23:33:01 -0500172 -memddata_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_MEMDDATA_BINARY_FILENAME) \
Bill Hoffaa48d7fa2019-06-10 08:59:10 -0500173 -ocmbfw_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_PROCESSED_FILENAME) \
Nick Bofferdingc92d4512018-10-10 11:46:46 -0500174 -openpower_version_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/openpower_pnor_version.bin
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500175
Brian Silver131189b2014-11-10 08:11:22 -0600176 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) $(BINARIES_DIR)
Brian Horton06c2a882015-04-09 13:32:55 -0500177
178 # if this config has an UPDATE_FILENAME defined, create a 32M (1/2 size)
179 # image that only updates the non-golden side
180 if [ "$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME)" != "" ]; then \
181 dd if=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) of=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) bs=32M count=1; \
182 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) $(BINARIES_DIR); \
183 fi
Charles P. Hofer0ca27df2017-08-10 14:20:00 -0500184
Lei YU98c3c062019-03-06 16:09:02 +0800185 # If this is a VPNOR system, run the generate-tar command and
Charles P. Hofer0ca27df2017-08-10 14:20:00 -0500186 # create a tarball
187 if [ "$(BR2_BUILD_PNOR_SQUASHFS)" == "y" ]; then \
Lei YU98c3c062019-03-06 16:09:02 +0800188 PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i squashfs -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
Charles P. Hofer0ca27df2017-08-10 14:20:00 -0500189 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(BINARIES_DIR); \
Adriana Kobylak01977e32019-11-21 11:17:59 -0600190 cd $(STAGING_DIR)/pnor/; PATH=$(HOST_DIR)/usr/sbin:$(PATH) $(HOST_DIR)/usr/bin/generate-ubi $(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar; \
191 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).ubi.mtd $(BINARIES_DIR); \
Lei YU98c3c062019-03-06 16:09:02 +0800192 else \
193 PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i static -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).static.tar.gz $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
194 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).static.tar.gz $(BINARIES_DIR); \
Charles P. Hofer0ca27df2017-08-10 14:20:00 -0500195 fi
Ilya Smirnov2e3ba642017-09-15 12:18:35 -0500196
Bill Hoffa70375bd2018-08-31 15:53:59 -0500197 #Create Debug Tarball
198 mkdir -p $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
199 cp -r $(FILES_TO_TAR) $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
200 tar -zcvf $(OUTPUT_IMAGES_DIR)/host_fw_debug.tar -C $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/ .
Ilya Smirnov2e3ba642017-09-15 12:18:35 -0500201
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500202endef
203
204$(eval $(generic-package))
Stephen Cpreke7254c72015-02-19 14:33:38 -0600205# Generate openPOWER pnor version string by combining subpackage version string files
206$(eval $(call OPENPOWER_VERSION,$(OPENPOWER_PNOR)))