blob: a9123ceb4674e08ea0bf54ac4bf09ee679d0e45f [file] [log] [blame]
Bill Hoffa5f93f1d2014-06-26 21:02:48 -05001################################################################################
2#
3# openpower_pnor
4#
5################################################################################
6
hostboote923c1b2017-09-06 13:39:23 -05007OPENPOWER_PNOR_VERSION ?= 3b22d6343a1984dd5ae9a555491771aecdaa2cc0
Nick Bofferdingb82aaef2014-11-07 14:29:18 -06008OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
Brian Silvercb565552014-12-11 12:51:36 -06009
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050010OPENPOWER_PNOR_LICENSE = Apache-2.0
Stewart Smithb16ba5b2017-01-10 12:55:55 +110011OPENPOWER_PNOR_LICENSE_FILES = LICENSE
Stewart Smithcd986e42017-05-15 12:14:59 +100012OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries machine-xml skiboot host-openpower-ffs occ capp-ucode
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050013
William A. Kennington III036c7d72017-03-17 12:58:56 -070014ifeq ($(BR2_PACKAGE_IMA_CATALOG),y)
15OPENPOWER_PNOR_DEPENDENCIES += ima-catalog
16endif
17
Stewart Smith898245e2016-03-30 15:26:23 +110018ifeq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),n)
Joel Stanley2aff5ba2015-02-01 14:49:18 +103019
20ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
Stewart Smith906bdba2015-08-26 16:05:20 +100021OPENPOWER_PNOR_DEPENDENCIES += linux-rebuild-with-initramfs
Joel Stanley2aff5ba2015-02-01 14:49:18 +103022else
23OPENPOWER_PNOR_DEPENDENCIES += linux
24endif
25
26endif
27
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050028ifeq ($(BR2_OPENPOWER_PNOR_XZ_ENABLED),y)
Jeremy Kerrc7800842016-07-22 14:01:17 +080029OPENPOWER_PNOR_DEPENDENCIES += host-xz
Nick Bofferding54deceb2017-06-28 23:07:35 -050030XZ_ARG=-xz_compression
31endif
32
33OPENPOWER_PNOR_DEPENDENCIES += host-sb-signing-utils
34
35ifeq ($(BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_DEV),y)
36KEY_TRANSITION_ARG=-key_transition imprint
37else ifeq ($(BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
38KEY_TRANSITION_ARG=-key_transition production
39endif
40
41ifneq ($(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE),"")
42SIGN_MODE_ARG=-sign_mode $(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE)
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050043endif
44
Matt Ploetzb4d85b12016-09-29 20:24:14 -050045ifeq ($(BR2_OPENPOWER_POWER9),y)
46 OPENPOWER_RELEASE=p9
47else
48 OPENPOWER_RELEASE=p8
49endif
50
Charles P. Hofer0ca27df2017-08-10 14:20:00 -050051ifeq ($(BR2_BUILD_PNOR_SQUASHFS),y)
52 OPENPOWER_PNOR_DEPENDENCIES += host-openpower-vpnor
53endif
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050054
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050055OPENPOWER_PNOR_INSTALL_IMAGES = YES
56OPENPOWER_PNOR_INSTALL_TARGET = NO
57
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050058HOSTBOOT_IMAGE_DIR=$(STAGING_DIR)/hostboot_build_images/
59HOSTBOOT_BINARY_DIR = $(STAGING_DIR)/hostboot_binaries/
Sachin Guptadf0b6a02017-03-16 08:59:51 -050060SBE_BINARY_DIR = $(STAGING_DIR)/sbe_binaries/
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050061OPENPOWER_PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch/
Stephen Cpreke7254c72015-02-19 14:33:38 -060062OPENPOWER_VERSION_DIR = $(STAGING_DIR)/openpower_version
Elizabeth Linerd1a29c12017-05-15 18:03:21 -050063OPENPOWER_MRW_SCRATCH_DIR = $(STAGING_DIR)/openpower_mrw_scratch
Stephen Cpreke7254c72015-02-19 14:33:38 -060064
65# Subpackages we want to include in the version info (do not include openpower-pnor)
Stewart Smithcd986e42017-05-15 12:14:59 +100066OPENPOWER_VERSIONED_SUBPACKAGES = skiboot hostboot linux petitboot machine-xml occ hostboot-binaries capp-ucode
Stephen Cpreke7254c72015-02-19 14:33:38 -060067OPENPOWER_PNOR = openpower-pnor
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050068
Sachin Guptadf0b6a02017-03-16 08:59:51 -050069ifeq ($(BR2_OPENPOWER_POWER9),y)
70 OPENPOWER_PNOR_DEPENDENCIES += sbe
71 OPENPOWER_VERSIONED_SUBPACKAGES += sbe
72endif
73
Bill Hoffa5f93f1d2014-06-26 21:02:48 -050074define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
75 mkdir -p $(OPENPOWER_PNOR_SCRATCH_DIR)
Brian Silver015b5912014-08-07 15:50:15 -050076
Brian Silver137a00a2014-11-11 12:09:53 -060077 $(TARGET_MAKE_ENV) $(@D)/update_image.pl \
Matt Ploetzb4d85b12016-09-29 20:24:14 -050078 -release $(OPENPOWER_RELEASE) \
Brian Silver015b5912014-08-07 15:50:15 -050079 -op_target_dir $(HOSTBOOT_IMAGE_DIR) \
Brian Silver131189b2014-11-10 08:11:22 -060080 -hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
81 -scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
82 -hb_binary_dir $(HOSTBOOT_BINARY_DIR) \
83 -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
Brian Silver137a00a2014-11-11 12:09:53 -060084 -targeting_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME) \
85 -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
Sachin Guptadf0b6a02017-03-16 08:59:51 -050086 -sbe_binary_dir $(SBE_BINARY_DIR) \
Brian Silvercb565552014-12-11 12:51:36 -060087 -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
Matt Ploetzaf3f64e2015-05-14 14:49:55 -050088 -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
Michael Neuling94f8ab12015-02-11 14:01:28 +110089 -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
Stephen Cpreke7254c72015-02-19 14:33:38 -060090 -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
Matt Ploetzdfd5a472017-01-19 13:13:55 -060091 -ima_catalog_binary_filename $(BINARIES_DIR)/$(BR2_IMA_CATALOG_FILENAME) \
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050092 -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) \
Elizabeth Linerd1a29c12017-05-15 18:03:21 -050093 -wof_binary_filename $(OPENPOWER_MRW_SCRATCH_DIR)/$(BR2_WOFDATA_FILENAME) \
Elizabeth Linerfa069312017-08-07 23:33:01 -050094 -memd_binary_filename $(OPENPOWER_MRW_SCRATCH_DIR)/$(BR2_MEMDDATA_FILENAME) \
Elizabeth Linerfbd6c452016-03-31 10:38:17 -050095 -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_NAME) \
Nick Bofferding54deceb2017-06-28 23:07:35 -050096 -payload_filename $(BR2_SKIBOOT_LID_XZ_NAME) \
97 -binary_dir $(BINARIES_DIR) \
98 -bootkernel_filename $(LINUX_IMAGE_NAME) \
99 -pnor_layout $(@D)/"$(OPENPOWER_RELEASE)"Layouts/$(BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME) \
100 $(XZ_ARG) $(KEY_TRANSITION_ARG) $(SIGN_MODE_ARG) \
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500101
102 mkdir -p $(STAGING_DIR)/pnor/
Brian Silver131189b2014-11-10 08:11:22 -0600103 $(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
Matt Ploetzb4d85b12016-09-29 20:24:14 -0500104 -release $(OPENPOWER_RELEASE) \
105 -xml_layout_file $(@D)/"$(OPENPOWER_RELEASE)"Layouts/$(BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME) \
Brian Silver131189b2014-11-10 08:11:22 -0600106 -pnor_filename $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) \
107 -hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
108 -scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
109 -outdir $(STAGING_DIR)/pnor/ \
Nick Bofferding54deceb2017-06-28 23:07:35 -0500110 -payload $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_SKIBOOT_LID_XZ_NAME) \
111 -bootkernel $(OPENPOWER_PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
Brian Silver131189b2014-11-10 08:11:22 -0600112 -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
113 -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
Matt Ploetzaf3f64e2015-05-14 14:49:55 -0500114 -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
Brian Silvercb565552014-12-11 12:51:36 -0600115 -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
Stephen Cpreke7254c72015-02-19 14:33:38 -0600116 -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
Elizabeth Linerd1a29c12017-05-15 18:03:21 -0500117 -wofdata_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_WOFDATA_BINARY_FILENAME) \
Elizabeth Linerfa069312017-08-07 23:33:01 -0500118 -memddata_binary_filename $(OPENPOWER_PNOR_SCRATCH_DIR)/$(BR2_MEMDDATA_BINARY_FILENAME) \
Elizabeth Liner0ce28ef2016-07-11 09:34:09 -0500119 -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500120
Brian Silver131189b2014-11-10 08:11:22 -0600121 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) $(BINARIES_DIR)
Brian Horton06c2a882015-04-09 13:32:55 -0500122
123 # if this config has an UPDATE_FILENAME defined, create a 32M (1/2 size)
124 # image that only updates the non-golden side
125 if [ "$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME)" != "" ]; then \
126 dd if=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) of=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) bs=32M count=1; \
127 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) $(BINARIES_DIR); \
128 fi
Charles P. Hofer0ca27df2017-08-10 14:20:00 -0500129
130 # If this is a VPNOR system, run the generate-squashfs command and
131 # create a tarball
132 if [ "$(BR2_BUILD_PNOR_SQUASHFS)" == "y" ]; then \
133 PATH=$(PATH):$(HOST_DIR)/usr/bin $(HOST_DIR)/usr/bin/generate-squashfs -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME); \
134 $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(BINARIES_DIR); \
135 fi
Bill Hoffa5f93f1d2014-06-26 21:02:48 -0500136endef
137
138$(eval $(generic-package))
Stephen Cpreke7254c72015-02-19 14:33:38 -0600139# Generate openPOWER pnor version string by combining subpackage version string files
140$(eval $(call OPENPOWER_VERSION,$(OPENPOWER_PNOR)))