Merge pull request #30 from mabaiocchi/master
Phase 2.5 deliverables and enabling Live MRW processing
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index cad44ef..b16df59 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -3,6 +3,7 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_CONFIG_NAME="habanero"
+BR2_OPENPOWER_XML_PACKAGE="habanero-xml"
BR2_HOSTBOOT_CONFIG_FILE="habanero.config"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
@@ -10,8 +11,9 @@
BR2_OCC_BIN_FILENAME="occ.bin"
-BR2_OPENPOWER_TARGETING_SYSTEM_XML_FILENAME="HABANERO_hb.system.xml"
-BR2_OPENPOWER_TARGETING_MRW_XML_FILENAME="HABANERO_hb.mrw.xml"
+BR2_HABANERO_SYSTEM_XML_FILENAME="HABANERO_hb.system.xml"
+BR2_HABANERO_MRW_XML_FILENAME="HABANERO_hb.mrw.xml"
+
BR2_OPENPOWER_TARGETING_BIN_FILENAME="HABANERO_HB.targeting.bin"
BR2_OPENPOWER_TARGETING_ECC_FILENAME="HABANERO_HB.targeting.bin.ecc"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 86da41c..6de6c4c 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -3,6 +3,7 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_CONFIG_NAME="palmetto"
+BR2_OPENPOWER_XML_PACKAGE="palmetto-xml"
BR2_HOSTBOOT_CONFIG_FILE="palmetto.config"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
@@ -10,8 +11,8 @@
BR2_OCC_BIN_FILENAME="occ.bin"
-BR2_OPENPOWER_TARGETING_SYSTEM_XML_FILENAME="PALMETTO_hb.system.xml"
-BR2_OPENPOWER_TARGETING_MRW_XML_FILENAME="PALMETTO_hb.mrw.xml"
+BR2_PALMETTO_SYSTEM_XML_FILENAME="PALMETTO_hb.system.xml"
+BR2_PALMETTO_MRW_XML_FILENAME="PALMETTO_hb.mrw.xml"
BR2_OPENPOWER_TARGETING_BIN_FILENAME="PALMETTO_HB.targeting.bin"
BR2_OPENPOWER_TARGETING_ECC_FILENAME="PALMETTO_HB.targeting.bin.ecc"
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index ca858d6..3271f80 100644
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -1,7 +1,8 @@
source "$BR2_EXTERNAL/package/openpower-ffs/Config.in"
source "$BR2_EXTERNAL/package/hostboot/Config.in"
source "$BR2_EXTERNAL/package/hostboot-binaries/Config.in"
-source "$BR2_EXTERNAL/package/openpower-targeting/Config.in"
+source "$BR2_EXTERNAL/package/palmetto-xml/Config.in"
+source "$BR2_EXTERNAL/package/habanero-xml/Config.in"
source "$BR2_EXTERNAL/package/openpower-pnor/Config.in"
source "$BR2_EXTERNAL/package/p8-pore-binutils/Config.in"
source "$BR2_EXTERNAL/package/occ/Config.in"
diff --git a/openpower/package/common-p8-xml/Config.in b/openpower/package/common-p8-xml/Config.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/openpower/package/common-p8-xml/Config.in
diff --git a/openpower/package/common-p8-xml/common-p8-xml.mk b/openpower/package/common-p8-xml/common-p8-xml.mk
new file mode 100644
index 0000000..282adb3
--- /dev/null
+++ b/openpower/package/common-p8-xml/common-p8-xml.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# common-p8-xml
+#
+################################################################################
+
+COMMON_P8_XML_VERSION ?= e02b6f6ddd5f225ddb70c286a10685df5b9267db
+COMMON_P8_XML_SITE ?= $(call github,open-power,common-p8-xml,$(COMMON_P8_XML_VERSION))
+
+COMMON_P8_XML_LICENSE = Apache-2.0
+COMMON_P8_XML_DEPENDENCIES =
+
+COMMON_P8_XML_INSTALL_IMAGES = YES
+COMMON_P8_XML_INSTALL_TARGET = NO
+
+XML_INSTALL_DIRECTORY=$(STAGING_DIR)/openpower_mrw_scratch/
+
+define COMMON_P8_XML_INSTALL_IMAGES_CMDS
+ bash -c 'mkdir -p $(XML_INSTALL_DIRECTORY) && cp -r $(@D)/* $(XML_INSTALL_DIRECTORY)'
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/habanero-xml/Config.in b/openpower/package/habanero-xml/Config.in
new file mode 100755
index 0000000..c6d945e
--- /dev/null
+++ b/openpower/package/habanero-xml/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_HABANERO_XML
+ bool "habanero_xml"
+ default y if (BR2_OPENPOWER_CONFIG_NAME = "habanero")
+ help
+ Utilites for building xml and the targeting binary image
+
+config BR2_HABANERO_SYSTEM_XML_FILENAME
+ string "Habanero targeting system xml filename"
+ default ""
+ help
+ Defines the name of the system XML filename to be used when creating targeting binary image
+
+config BR2_HABANERO_MRW_XML_FILENAME
+ string "Habanero targeting mrw xml filename"
+ default ""
+ help
+ Defines the name of the mrw XML filename to be used when creating targeting binary image
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
new file mode 100644
index 0000000..74a526f
--- /dev/null
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -0,0 +1,62 @@
+################################################################################
+#
+# habanero_xml
+#
+################################################################################
+
+HABANERO_XML_VERSION ?= 6d06d60723c16c813c769e144352589a59a85014
+HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
+
+HABANERO_XML_LICENSE = Apache-2.0
+HABANERO_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+
+HABANERO_XML_INSTALL_IMAGES = YES
+HABANERO_XML_INSTALL_TARGET = NO
+
+MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+MRW_INSTALL_DIRECTORY=$(STAGING_DIR)/preprocessed_mrw
+MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+HABANERO_XML_ENV_VARS= \
+ SCHEMA_FILE=$(MRW_SCRATCH)/schema/mrw.xsd \
+ PARSER_PATH=$(STAGING_DIR)/usr/bin \
+ XSL_PATH=$(MRW_SCRATCH)/xslt \
+ OUTPUT_PATH=$(MRW_INSTALL_DIRECTORY)
+
+define HABANERO_XML_BUILD_CMDS
+ # copy the habanero xml where the common lives
+ bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
+ mkdir -p $(MRW_INSTALL_DIRECTORY)
+
+ # run the mrw parsers
+ $(HABANERO_XML_ENV_VARS) bash -c 'cd $(MRW_SCRATCH) && $(MAKE) habanero'
+
+ # generate the system mrm xml
+ $(MRW_HB_TOOLS)/genHwsvMrwXml.pl \
+ --system=$(BR2_OPENPOWER_CONFIG_NAME) \
+ --mrwdir=$(MRW_INSTALL_DIRECTORY) \
+ --build=hb > $(MRW_INSTALL_DIRECTORY)/$(BR2_HABANERO_MRW_XML_FILENAME)
+endef
+
+define HABANERO_XML_INSTALL_IMAGES_CMDS
+
+ # merge in any system specific attributes, hostboot attributes
+ $(MRW_HB_TOOLS)/mergexml.sh $(@D)/$(BR2_HABANERO_SYSTEM_XML_FILENAME) \
+ $(MRW_HB_TOOLS)/attribute_types.xml \
+ $(MRW_HB_TOOLS)/attribute_types_hb.xml \
+ $(MRW_HB_TOOLS)/target_types_merged.xml \
+ $(MRW_HB_TOOLS)/target_types_hb.xml \
+ $(MRW_INSTALL_DIRECTORY)/$(BR2_HABANERO_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
+
+ # creating the targeting binary
+ $(MRW_HB_TOOLS)/xmltohb.pl \
+ --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
+ --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
+ --src-output-dir=none \
+ --img-output-dir=$(MRW_HB_TOOLS)/ \
+ --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums
+
+ mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/hostboot/hostboot-0003-Pull-in-latest-mss_freq.C.patch b/openpower/package/hostboot/hostboot-0003-Pull-in-latest-mss_freq.C.patch
deleted file mode 100644
index dc04c09..0000000
--- a/openpower/package/hostboot/hostboot-0003-Pull-in-latest-mss_freq.C.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From aa4faae02d767eb3fdb14c309f676d55b5e131e2 Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Thu, 11 Dec 2014 11:02:53 -0600
-Subject: [PATCH] Pull in latest mss_freq.C
-
-Change-Id: I24534fcb48cf6a567edc39486afb784a5cd6845b
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14869
-Tested-by: Jenkins Server
-Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
----
- src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C | 81 +++++++++++++++-----------
- 1 file changed, 48 insertions(+), 33 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C b/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
-index 4fd69e9..560a57a 100644
---- a/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
-+++ b/src/usr/hwpf/hwp/mc_config/mss_freq/mss_freq.C
-@@ -22,14 +22,10 @@
- /* permissions and limitations under the License. */
- /* */
- /* IBM_PROLOG_END_TAG */
--// $Id: mss_freq.C,v 1.28 2014/04/30 19:32:56 jdsloat Exp $
-+// $Id: mss_freq.C,v 1.29 2014/12/10 23:05:37 jdsloat Exp $
- /* File mss_freq.C created by JEFF SABROWSKI on Fri 21 Oct 2011. */
-
- //------------------------------------------------------------------------------
--// *! (C) Copyright International Business Machines Corp. 2007
--// *! All Rights Reserved -- Property of IBM
--// *! *** ***
--//------------------------------------------------------------------------------
- // *! TITLE : mss_freq.C
- // *! DESCRIPTION : Tools for centaur procedures
- // *! OWNER NAME : Jacob Sloat (jdsloat@us.ibm.com)
-@@ -70,6 +66,9 @@
- // 1.26 | jdsloat | 03/12/14 | Fixed an assignment within a boolean expression.
- // 1.27 | jdsloat | 03/12/14 | Fixed inf loop bug associated with edit 1.26
- // 1.28 | jdsloat | 04/30/14 | Fixed a divide by 0 error opened up by RAS review Edits -- Error HW callouts v1.25
-+// 1.29 | jdsloat | 12/10/14 | Fixed 1333 speed limitation for config/ Habenero
-+
-+// Add continues to logerrors to lines 650, 560. IN order to avoid possible future problems.
- //
- // This procedure takes CENTAUR as argument. for each DIMM (under each MBA)
- // DIMM SPD attributes are read to determine optimal DRAM frequency
-@@ -110,6 +109,7 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- // Define attribute array size
- const uint8_t PORT_SIZE = 2;
- const uint8_t DIMM_SIZE = 2;
-+ const uint8_t MBA_SIZE = 2;
-
- fapi::ReturnCode l_rc;
- std::vector<fapi::Target> l_mbaChiplets;
-@@ -138,7 +138,8 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- uint32_t l_cl_mult_tck = 0;
- uint8_t cur_mba_port = 0;
- uint8_t cur_mba_dimm = 0;
-- uint8_t cur_dimm_spd_valid_u8array[PORT_SIZE][DIMM_SIZE] = {{0}};
-+ uint8_t cur_mba = 0;
-+ uint8_t cur_dimm_spd_valid_u8array[MBA_SIZE][PORT_SIZE][DIMM_SIZE] = {{{0}}};
- uint8_t plug_config = 0;
- uint8_t module_type = 0;
- uint8_t module_type_deconfig = 0;
-@@ -146,7 +147,8 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- uint8_t module_type_group_2 = 0;
- uint8_t module_type_group_1_total = 0;
- uint8_t module_type_group_2_total = 0;
-- uint8_t num_ranks = 0;
-+ uint8_t num_ranks[MBA_SIZE][PORT_SIZE][DIMM_SIZE] = {{{0}}};
-+ //uint8_t num_ranks = 0;
- uint8_t num_ranks_total = 0;
- uint32_t l_freq_override = 0;
- uint8_t l_override_path = 0;
-@@ -300,7 +302,7 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- l_rc = FAPI_ATTR_GET(ATTR_SPD_TAAMIN, &l_dimm_targets[j], l_spd_min_taa_MTB);
- if (l_rc)
- {
-- FAPI_ERR("Unable to read SPD Minimum TAA (Min CAS Latency Time).");
-+ FAPI_ERR("Unable to read SPD Minimum TA std::vector<fapi::Target> l_target_dimm_array;A (Min CAS Latency Time).");
- break;
- }
- l_rc = FAPI_ATTR_GET(ATTR_SPD_CAS_LATENCIES_SUPPORTED, &l_dimm_targets[j], l_spd_cas_lat_supported);
-@@ -322,14 +324,22 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- FAPI_ERR("Unable to read the DIMM Info in order to determine configuration.");
- break;
- }
-+ l_rc = FAPI_ATTR_GET(ATTR_CHIP_UNIT_POS, &l_mbaChiplets[i], cur_mba);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("Unable to read the DIMM Info in order to determine configuration.");
-+ break;
-+ }
-+
- l_rc = FAPI_ATTR_GET(ATTR_SPD_MODULE_TYPE, &l_dimm_targets[j], module_type);
- if (l_rc)
- {
- FAPI_ERR("Unable to read the SPD module type.");
- break;
- }
-+
- // from dimm_spd_attributes.xml, R1 = 0x00, R2 = 0x01, R3 = 0x02, R4 = 0x03
-- l_rc = FAPI_ATTR_GET(ATTR_SPD_NUM_RANKS, &l_dimm_targets[j], num_ranks);
-+ l_rc = FAPI_ATTR_GET(ATTR_SPD_NUM_RANKS, &l_dimm_targets[j], num_ranks[cur_mba][cur_mba_port][cur_mba_dimm]);
- if (l_rc)
- {
- FAPI_ERR("Unable to read the SPD number of ranks");
-@@ -348,7 +358,7 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- break;
- }
-
-- cur_dimm_spd_valid_u8array[cur_mba_port][cur_mba_dimm] = MSS_FREQ_VALID;
-+ cur_dimm_spd_valid_u8array[cur_mba][cur_mba_port][cur_mba_dimm] = MSS_FREQ_VALID;
-
- if ((l_spd_min_tck_MTB == 0)||(l_spd_min_taa_MTB == 0))
- {
-@@ -522,8 +532,6 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- l_spd_cas_lat_supported_all = l_spd_cas_lat_supported_all & l_spd_cas_lat_supported;
-
-
-- num_ranks_total = num_ranks_total + num_ranks + 1;
--
- if ( (module_type_group_1 == module_type) || (module_type_group_1 == 0) )
- {
- module_type_group_1 = module_type;
-@@ -600,13 +608,25 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- FAPI_INF( "Minimum TAA(ps) amongst DIMMs: %d Minimum TCK(ps) amongst DIMMs: %d", l_spd_min_taa_max, l_spd_min_tck_max);
-
- //Determining the cnfg for imposing any cnfg speed limitations
-- if ((cur_dimm_spd_valid_u8array[0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[0][1] == MSS_FREQ_VALID))
-+ if (((cur_dimm_spd_valid_u8array[0][0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[0][0][1] == MSS_FREQ_EMPTY)) || ((cur_dimm_spd_valid_u8array[0][0][1] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[0][0][0] == MSS_FREQ_EMPTY)))
- {
-- plug_config = MSS_FREQ_DUAL_DROP;
-+ plug_config = MSS_FREQ_SINGLE_DROP;
-+ num_ranks_total = num_ranks[0][0][0] + 1;
- }
-- else if ((cur_dimm_spd_valid_u8array[0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[0][1] == MSS_FREQ_EMPTY))
-+ else if (((cur_dimm_spd_valid_u8array[1][0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[1][0][1] == MSS_FREQ_EMPTY)) || ((cur_dimm_spd_valid_u8array[1][0][1] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[1][0][0] == MSS_FREQ_EMPTY)))
- {
- plug_config = MSS_FREQ_SINGLE_DROP;
-+ num_ranks_total = num_ranks[1][0][0] + 1;
-+ }
-+ else if ((cur_dimm_spd_valid_u8array[0][0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[0][0][1] == MSS_FREQ_VALID))
-+ {
-+ plug_config = MSS_FREQ_DUAL_DROP;
-+ num_ranks_total = (num_ranks[0][0][0] + 1) + (num_ranks[0][0][1] + 1);
-+ }
-+ else if ((cur_dimm_spd_valid_u8array[1][0][0] == MSS_FREQ_VALID) && (cur_dimm_spd_valid_u8array[1][0][1] == MSS_FREQ_VALID))
-+ {
-+ plug_config = MSS_FREQ_DUAL_DROP;
-+ num_ranks_total = (num_ranks[1][0][0] + 1) + (num_ranks[1][0][1] + 1);
- }
- else
- {
-@@ -614,45 +634,39 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- }
-
-
-- FAPI_INF( "PLUG CONFIG(from SPD): %d, Type of Dimm(from SPD): 0x%02X, Num Ranks(from SPD): %d", plug_config, module_type, num_ranks);
-+ FAPI_INF( "PLUG CONFIG(from SPD): %d, Type of Dimm(from SPD): 0x%02X, Num Ranks(from SPD): %d", plug_config, module_type, num_ranks_total);
-
- // Impose configuration limitations
-- // Single Drop RDIMMs Cnfgs cannot run faster than 1333 unless it only has 1 rank
-- if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_RDIMM)&&(plug_config == MSS_FREQ_SINGLE_DROP)&&(num_ranks_total > 1)&&(l_dimm_freq_min > 1333))
-+ // Single Drop RDIMMs Cnfgs cannot run faster than 1333
-+ if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_RDIMM)&&(plug_config == MSS_FREQ_SINGLE_DROP)&&(l_dimm_freq_min > 1333))
- {
- l_dimm_freq_min = 1333;
- l_spd_min_tck_max = 1500;
- FAPI_INF( "Single Drop RDIMM with more than 1 Rank Cnfg limitation. New Freq: %d", l_dimm_freq_min);
- }
-- // Double Drop RDIMMs Cnfgs cannot run faster than 1333 with 4 ranks total
-- else if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_RDIMM)&&(plug_config == MSS_FREQ_DUAL_DROP)&&(num_ranks_total == 4)&&(l_dimm_freq_min > 1333))
-+ // Double Drop RDIMMs Cnfgs cannot run faster than 1333 with less than 8 ranks total per port
-+ else if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_RDIMM)&&(plug_config == MSS_FREQ_DUAL_DROP)&&(num_ranks_total < 8)&&(l_dimm_freq_min > 1333))
- {
- l_dimm_freq_min = 1333;
- l_spd_min_tck_max = 1500;
- FAPI_INF( "Dual Drop RDIMM with more than 4 Rank Cnfg limitation. New Freq: %d", l_dimm_freq_min);
- }
-- // Double Drop RDIMMs Cnfgs cannot run faster than 1066 with 8 ranks total
-+ // Double Drop RDIMMs Cnfgs cannot run faster than 1066 with 8 ranks total per port
- else if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_RDIMM)&&(plug_config == MSS_FREQ_DUAL_DROP)&&(num_ranks_total == 8)&&(l_dimm_freq_min > 1066))
- {
- l_dimm_freq_min = 1066;
- l_spd_min_tck_max = 1875;
- FAPI_INF( "Dual Drop RDIMM with more than 8 Rank Cnfg limitation. New Freq: %d", l_dimm_freq_min);
- }
-- // Single Drop LRDIMMs Cnfgs cannot run faster than 1333 with greater than 2 ranks
-- else if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_LRDIMM)&&(plug_config == MSS_FREQ_SINGLE_DROP)&&(num_ranks_total > 2)&&(l_dimm_freq_min > 1333))
-+ // DDR4 min speed 1600 and Cen no longer supports 1866.
-+ else if (l_spd_dram_dev_type == fapi::ENUM_ATTR_SPD_DRAM_DEVICE_TYPE_DDR4)
- {
-- l_dimm_freq_min = 1333;
-- l_spd_min_tck_max = 1500;
-- FAPI_INF( "Single Drop LRDIMM with more than 2 Rank Cnfg limitation. New Freq: %d", l_dimm_freq_min);
-- }
-- // Dual Drop LRDIMMs Cnfgs cannot run faster than 1333
-- else if ((module_type_group_1 == ENUM_ATTR_SPD_MODULE_TYPE_LRDIMM)&&(plug_config == MSS_FREQ_DUAL_DROP)&&(l_dimm_freq_min > 1333))
-- {
-- l_dimm_freq_min = 1333;
-- l_spd_min_tck_max = 1500;
-- FAPI_INF( "Dual Drop LRDIMM Cnfg limitation. New Freq: %d", l_dimm_freq_min);
-+ l_dimm_freq_min = 1600;
-+ l_spd_min_tck_max = 1250;
-+ FAPI_INF( "DDR4/Centaur limitation. Centaur no longer handles 1866 and 1600 is min speed of DDR4. New Freq: %d", l_dimm_freq_min);
- }
-
-+
- if ( l_spd_min_tck_max == 0)
- {
- // Loop through the 2 MBA's
-@@ -1002,3 +1016,4 @@ fapi::ReturnCode mss_freq(const fapi::Target &i_target_memb)
- return l_rc;
- }
-
-+
---
-2.1.1
-
diff --git a/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch b/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch
new file mode 100755
index 0000000..cb3385d
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch
@@ -0,0 +1,26 @@
+From 0c0bb4c8d003ccb8bede57d3576f23d4a6aec3b9 Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Sat, 13 Dec 2014 00:53:50 -0600
+Subject: [PATCH] Temporary Patch to fix PCIE issues for Open Power systems
+
+Change-Id: I447f172431562818290932a2d733add687dd0f3d
+---
+ src/usr/targeting/common/genHwsvMrwXml.pl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
+index eac3860..3e55aca 100755
+--- a/src/usr/targeting/common/genHwsvMrwXml.pl
++++ b/src/usr/targeting/common/genHwsvMrwXml.pl
+@@ -2742,7 +2742,7 @@ sub generate_proc
+ $pcie_list{$ipath}{0}{0}{'lane-mask'},
+ $pcie_list{$ipath}{0}{1}{'lane-mask'},
+ $pcie_list{$ipath}{1}{0}{'lane-mask'},
+- $pcie_list{$ipath}{1}{1}{'lane-mask'}
++ 0x0FF
+ </default>
+ </attribute>
+ <attribute>
+--
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 5bc18cb..ef13e4e 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,8 +4,9 @@
#
################################################################################
-HOSTBOOT_VERSION ?= 6c5f08212c150d69a931fa4fa1354b6a3aac61e8
+HOSTBOOT_VERSION ?= 903b403d839afcf45c6cbdccc1210bed3be1a42c
HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
+
HOSTBOOT_LICENSE = Apache-2.0
HOSTBOOT_DEPENDENCIES = host-binutils
diff --git a/openpower/package/openpower-mrw/Config.in b/openpower/package/openpower-mrw/Config.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/openpower/package/openpower-mrw/Config.in
diff --git a/openpower/package/openpower-mrw/openpower-mrw.mk b/openpower/package/openpower-mrw/openpower-mrw.mk
new file mode 100644
index 0000000..ccd059f
--- /dev/null
+++ b/openpower/package/openpower-mrw/openpower-mrw.mk
@@ -0,0 +1,26 @@
+################################################################################
+#
+# openpower-mrw
+#
+################################################################################
+
+OPENPOWER_MRW_VERSION = 0729a4a68c0e731a8d3720f1a5aee190d165400b
+OPENPOWER_MRW_SITE = $(call github,open-power,openpower-mrw,$(OPENPOWER_MRW_VERSION))
+
+OPENPOWER_MRW_LICENSE = Apache-2.0
+OPENPOWER_MRW_DEPENDENCIES =
+
+OPENPOWER_MRW_INSTALL_IMAGES = YES
+OPENPOWER_MRW_INSTALL_TARGET = NO
+
+OPENPOWER_MRW_ENV_VARS=INSTALL_DIRECTORY=$(STAGING_DIR)/usr/bin/
+
+define OPENPOWER_MRW_BUILD_CMDS
+ $(OPENPOWER_MRW_ENV_VARS) bash -c 'cd $(@D) && $(MAKE)'
+endef
+
+define OPENPOWER_MRW_INSTALL_IMAGES_CMDS
+ $(OPENPOWER_MRW_ENV_VARS) bash -c 'cd $(@D) && $(MAKE) install'
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 5078824..8815490 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -14,6 +14,11 @@
help
String used to define configuration name
+config BR2_OPENPOWER_XML_PACKAGE
+ string "Name of xml/targeting package"
+ help
+ String defines the xml/targeting package used
+
config BR2_OPENPOWER_PNOR_FILENAME
string "Name of pnor file to be created"
help
@@ -40,3 +45,8 @@
string "Name of openpower binary targeting file"
help
String used to define name of openpower targeting binary file
+
+config BR2_OPENPOWER_TARGETING_ECC_FILENAME
+ string "Name of openpower binary targeting file"
+ help
+ String used to define name of openpower targeting binary file, ecc protected
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index db427fc..c49c36c 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -4,25 +4,28 @@
#
################################################################################
+# remove the quotes from the XML/Targeting package as
+# make doesn't care for quotes in the dependencies.
+XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE))
OPENPOWER_PNOR_VERSION ?= e0e46ec7327edd6b24947706f074cd04d239cc86
OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
OPENPOWER_PNOR_LICENSE = Apache-2.0
-OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries openpower-targeting skiboot host-openpower-ffs occ
+OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries $(XML_PACKAGE) skiboot host-openpower-ffs occ
OPENPOWER_PNOR_INSTALL_IMAGES = YES
OPENPOWER_PNOR_INSTALL_TARGET = NO
-OPENPOWER_TARGETING_DIR=$(STAGING_DIR)/openpower_targeting/
HOSTBOOT_IMAGE_DIR=$(STAGING_DIR)/hostboot_build_images/
HOSTBOOT_BINARY_DIR = $(STAGING_DIR)/hostboot_binaries/
OPENPOWER_PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch/
define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
mkdir -p $(OPENPOWER_PNOR_SCRATCH_DIR)
+
$(TARGET_MAKE_ENV) $(@D)/update_image.pl \
- -op_target_dir $(STAGING_DIR)/openpower_targeting/ \
+ -op_target_dir $(HOSTBOOT_IMAGE_DIR) \
-hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
-scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
-hb_binary_dir $(HOSTBOOT_BINARY_DIR) \
diff --git a/openpower/package/openpower-targeting/Config.in b/openpower/package/openpower-targeting/Config.in
deleted file mode 100755
index af70355..0000000
--- a/openpower/package/openpower-targeting/Config.in
+++ /dev/null
@@ -1,29 +0,0 @@
-config BR2_PACKAGE_OPENPOWER_TARGETING
- bool "openpower_targeting"
- default y if (BR2_OPENPOWER_PLATFORM && BR2_powerpc_power8)
- help
- Utilites for building a targeting binary image
-
-config BR2_OPENPOWER_TARGETING_BIN_FILENAME
- string "openpower targeting binary file name"
- default ""
- help
- Defines targeting binary file name created
-
-config BR2_OPENPOWER_TARGETING_ECC_FILENAME
- string "openpower targeting binary file name - ecc injected"
- default ""
- help
- Defines targeting binary ecc file name created
-
-config BR2_OPENPOWER_TARGETING_SYSTEM_XML_FILENAME
- string "openpower targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_OPENPOWER_TARGETING_MRW_XML_FILENAME
- string "openpower targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
diff --git a/openpower/package/openpower-targeting/openpower-targeting.mk b/openpower/package/openpower-targeting/openpower-targeting.mk
deleted file mode 100644
index 42aadc5..0000000
--- a/openpower/package/openpower-targeting/openpower-targeting.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-################################################################################
-#
-# openpower_targeting
-#
-################################################################################
-
-OPENPOWER_TARGETING_VERSION ?= 9ce8c2454580037cf2f5572379536408152d19f0
-OPENPOWER_TARGETING_SITE ?= $(call github,open-power,hostboot-targeting,$(OPENPOWER_TARGETING_VERSION))
-
-OPENPOWER_TARGETING_LICENSE = Apache-2.0
-OPENPOWER_TARGETING_DEPENDENCIES = hostboot-install-images
-
-OPENPOWER_TARGETING_INSTALL_IMAGES = YES
-OPENPOWER_TARGETING_INSTALL_TARGET = NO
-
-define OPENPOWER_TARGETING_INSTALL_IMAGES_CMDS
- mkdir -p $(STAGING_DIR)/openpower_targeting/;
-
- $(STAGING_DIR)/hostboot_build_images/mergexml.sh \
- $(@D)/$(BR2_OPENPOWER_TARGETING_SYSTEM_XML_FILENAME) \
- $(STAGING_DIR)/hostboot_build_images/attribute_types.xml \
- $(STAGING_DIR)/hostboot_build_images/attribute_types_hb.xml \
- $(STAGING_DIR)/hostboot_build_images/target_types_merged.xml \
- $(STAGING_DIR)/hostboot_build_images/target_types_hb.xml \
- $(@D)/$(BR2_OPENPOWER_TARGETING_MRW_XML_FILENAME) > $(STAGING_DIR)/openpower_targeting/temporary_hb.hb.xml;
-
- $(STAGING_DIR)/hostboot_build_images/xmltohb.pl \
- --hb-xml-file=$(STAGING_DIR)/openpower_targeting/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(STAGING_DIR)/hostboot_build_images/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(STAGING_DIR)/openpower_targeting/ \
- --vmm-consts-file=$(STAGING_DIR)/hostboot_build_images/vmmconst.h \
- --noshort-enums
-
- mv $(STAGING_DIR)/openpower_targeting/targeting.bin $(STAGING_DIR)/openpower_targeting/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/palmetto-xml/Config.in b/openpower/package/palmetto-xml/Config.in
new file mode 100755
index 0000000..6c5fd3c
--- /dev/null
+++ b/openpower/package/palmetto-xml/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_PALMETTO_XML
+ bool "palmetto_xml"
+ default y if (BR2_OPENPOWER_CONFIG_NAME = "palmetto")
+ help
+ Utilites for building xml and the targeting binary image
+
+config BR2_PALMETTO_SYSTEM_XML_FILENAME
+ string "Palmetto targeting system xml filename"
+ default ""
+ help
+ Defines the name of the system XML filename to be used when creating targeting binary image
+
+config BR2_PALMETTO_MRW_XML_FILENAME
+ string "Palmetto targeting mrw xml filename"
+ default ""
+ help
+ Defines the name of the mrw XML filename to be used when creating targeting binary image
diff --git a/openpower/package/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
new file mode 100644
index 0000000..4493066
--- /dev/null
+++ b/openpower/package/palmetto-xml/palmetto-xml.mk
@@ -0,0 +1,63 @@
+################################################################################
+#
+# palmetto_xml
+#
+################################################################################
+
+PALMETTO_XML_VERSION = f346cbc0e7837ff560ed5fd3197e5c887ac3f564
+PALMETTO_XML_SITE = $(call github,open-power,palmetto-xml,$(PALMETTO_XML_VERSION))
+
+PALMETTO_XML_LICENSE = Apache-2.0
+PALMETTO_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+
+PALMETTO_XML_INSTALL_IMAGES = YES
+PALMETTO_XML_INSTALL_TARGET = NO
+
+MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+MRW_INSTALL_DIRECTORY=$(STAGING_DIR)/preprocessed_mrw
+MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+PALMETTO_XML_ENV_VARS= \
+ SCHEMA_FILE=$(MRW_SCRATCH)/schema/mrw.xsd \
+ PARSER_PATH=$(STAGING_DIR)/usr/bin \
+ XSL_PATH=$(MRW_SCRATCH)/xslt \
+ OUTPUT_PATH=$(MRW_INSTALL_DIRECTORY)
+
+define PALMETTO_XML_BUILD_CMDS
+ # copy the palmetto xml where the common lives
+ bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
+ mkdir -p $(MRW_INSTALL_DIRECTORY)
+
+ # run the mrw parsers
+ $(PALMETTO_XML_ENV_VARS) bash -c 'cd $(MRW_SCRATCH) && $(MAKE) palmetto'
+
+ # generate the system mrm xml
+ $(MRW_HB_TOOLS)/genHwsvMrwXml.pl \
+ --system=$(BR2_OPENPOWER_CONFIG_NAME) \
+ --mrwdir=$(MRW_INSTALL_DIRECTORY) \
+ --build=hb > $(MRW_INSTALL_DIRECTORY)/$(BR2_PALMETTO_MRW_XML_FILENAME)
+
+endef
+
+define PALMETTO_XML_INSTALL_IMAGES_CMDS
+
+ # merge in any system specific attributes, hostboot attributes
+ $(MRW_HB_TOOLS)/mergexml.sh $(@D)/$(BR2_PALMETTO_SYSTEM_XML_FILENAME) \
+ $(MRW_HB_TOOLS)/attribute_types.xml \
+ $(MRW_HB_TOOLS)/attribute_types_hb.xml \
+ $(MRW_HB_TOOLS)/target_types_merged.xml \
+ $(MRW_HB_TOOLS)/target_types_hb.xml \
+ $(MRW_INSTALL_DIRECTORY)/$(BR2_PALMETTO_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
+
+ # creating the targeting binary
+ $(MRW_HB_TOOLS)/xmltohb.pl \
+ --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
+ --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
+ --src-output-dir=none \
+ --img-output-dir=$(MRW_HB_TOOLS)/ \
+ --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums
+
+ mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
+endef
+
+$(eval $(generic-package))