diff --git a/buildroot b/buildroot index 9ac423f6f0..80a2f83e60 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 9ac423f6f0d99b33e7bb7ad703cf83e80716da8a +Subproject commit 80a2f83e60f3fd21a38e2bc9aac149f2c3a9ffdd diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig index d72cb81b53..cd32a2c674 100644 --- a/openpower/configs/firestone_defconfig +++ b/openpower/configs/firestone_defconfig @@ -8,6 +8,7 @@ BR2_HOSTBOOT_CONFIG_FILE="firestone.config" BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc" BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc" +BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc" BR2_OCC_BIN_FILENAME="occ.bin" @@ -37,7 +38,7 @@ BR2_ROOTFS_OVERLAY="overlay" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig" BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig index 64b827af73..edcad58fab 100644 --- a/openpower/configs/habanero_defconfig +++ b/openpower/configs/habanero_defconfig @@ -8,6 +8,7 @@ BR2_HOSTBOOT_CONFIG_FILE="habanero.config" BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc" BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc" +BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc" BR2_OCC_BIN_FILENAME="occ.bin" @@ -37,7 +38,7 @@ BR2_ROOTFS_OVERLAY="overlay" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig" BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y diff --git a/openpower/configs/hostboot/firestone.config b/openpower/configs/hostboot/firestone.config index 4b96cd973d..f5c2d324d3 100755 --- a/openpower/configs/hostboot/firestone.config +++ b/openpower/configs/hostboot/firestone.config @@ -18,6 +18,10 @@ set CVPD_READ_FROM_HW set CVPD_WRITE_TO_HW set CVPD_READ_FROM_PNOR set CVPD_WRITE_TO_PNOR +set PVPD_READ_FROM_HW +set PVPD_WRITE_TO_HW +set PVPD_READ_FROM_PNOR +set PVPD_WRITE_TO_PNOR set SKIP_RESTRICT_EX_UNITS unset CDIMM_FORMAT_FOR_CVPD @@ -32,7 +36,7 @@ unset PCIE_HOTPLUG_CONTROLLER # turn on console output set CONSOLE -set CONSOLE_AST2400 +set BMC_AST2400 # Enable Kingston dimm voltage workaround set KINGSTON_1_35_VOLT diff --git a/openpower/configs/hostboot/habanero.config b/openpower/configs/hostboot/habanero.config index 90e5735298..10eea96eea 100755 --- a/openpower/configs/hostboot/habanero.config +++ b/openpower/configs/hostboot/habanero.config @@ -18,6 +18,10 @@ set CVPD_READ_FROM_HW set CVPD_WRITE_TO_HW set CVPD_READ_FROM_PNOR set CVPD_WRITE_TO_PNOR +set PVPD_READ_FROM_HW +set PVPD_WRITE_TO_HW +set PVPD_READ_FROM_PNOR +set PVPD_WRITE_TO_PNOR set SKIP_RESTRICT_EX_UNITS unset CDIMM_FORMAT_FOR_CVPD @@ -34,7 +38,7 @@ unset PCIE_HOTPLUG_CONTROLLER # turn on console output set CONSOLE -set CONSOLE_AST2400 +set BMC_AST2400 # Enable Kingston dimm voltage workaround set KINGSTON_1_35_VOLT diff --git a/openpower/configs/hostboot/palmetto.config b/openpower/configs/hostboot/palmetto.config index 12ebc2cebb..00b211d6ed 100755 --- a/openpower/configs/hostboot/palmetto.config +++ b/openpower/configs/hostboot/palmetto.config @@ -18,6 +18,10 @@ set CVPD_READ_FROM_HW set CVPD_WRITE_TO_HW set CVPD_READ_FROM_PNOR set CVPD_WRITE_TO_PNOR +set PVPD_READ_FROM_HW +set PVPD_WRITE_TO_HW +set PVPD_READ_FROM_PNOR +set PVPD_WRITE_TO_PNOR set SKIP_RESTRICT_EX_UNITS unset CDIMM_FORMAT_FOR_CVPD @@ -34,7 +38,7 @@ unset PCIE_HOTPLUG_CONTROLLER # turn on console output set CONSOLE -set CONSOLE_AST2400 +set BMC_AST2400 set PNOR_IS_32MB diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig index 5a4bf38c9d..b589463d64 100644 --- a/openpower/configs/palmetto_defconfig +++ b/openpower/configs/palmetto_defconfig @@ -8,6 +8,7 @@ BR2_HOSTBOOT_CONFIG_FILE="palmetto.config" BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc" BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc" +BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc" BR2_OCC_BIN_FILENAME="occ.bin" @@ -36,7 +37,7 @@ BR2_ROOTFS_OVERLAY="overlay" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig" BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk index 03523c3453..d9a23df2f3 100644 --- a/openpower/package/hostboot-binaries/hostboot_binaries.mk +++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk @@ -4,7 +4,7 @@ # ################################################################################ -HOSTBOOT_BINARIES_VERSION ?= d41753f2b5e2510d6bc6ce58adf8e55207b8d317 +HOSTBOOT_BINARIES_VERSION ?= 22470e51b6342f9c307e28b3ea7cdb194ff954d4 HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION)) HOSTBOOT_BINARIES_LICENSE = Apache-2.0 @@ -13,7 +13,7 @@ HOSTBOOT_BINARIES_INSTALL_TARGET = NO define HOSTBOOT_BINARIES_INSTALL_IMAGES_CMDS $(INSTALL) -D $(@D)/cvpd.bin $(STAGING_DIR)/hostboot_binaries/cvpd.bin - $(INSTALL) -D $(@D)/p8.ref_image.hdr.bin.ecc $(STAGING_DIR)/hostboot_binaries/p8.ref_image.hdr.bin.ecc + $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_WINK_FILENAME) $(STAGING_DIR)/hostboot_binaries/ $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) $(STAGING_DIR)/hostboot_binaries/ $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_SBE_FILENAME) $(STAGING_DIR)/hostboot_binaries/ endef diff --git a/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch b/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch index 74cb584d4b..5c916d2bb1 100644 --- a/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch +++ b/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch @@ -18,7 +18,7 @@ index 385a05c..a269168 100644 { const uint64_t DELAY_NS = 100; - const uint64_t DELAY_LOOPS = 10000; -+ const uint64_t DELAY_LOOPS = 1000000; ++ const uint64_t DELAY_LOOPS = 100000000; uint8_t data = 0; uint64_t loops = 0; diff --git a/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch new file mode 100644 index 0000000000..3777b1197b --- /dev/null +++ b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch @@ -0,0 +1,63 @@ +From a4f739abb72b8ac5748138183b274cca5eef50ff Mon Sep 17 00:00:00 2001 +From: Matt Ploetz +Date: Tue, 12 May 2015 15:32:20 -0500 +Subject: [PATCH] PCIe lane swap fix in processMRW.pl + +Change-Id: Iee7127fef7f4a911a77e0c24c896d840b1b45ff4 +--- + src/usr/targeting/common/processMrw.pl | 25 +++++++++++-------------- + 1 file changed, 11 insertions(+), 14 deletions(-) + +diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl +index 5d44e74..bbdb936 100644 +--- a/src/usr/targeting/common/processMrw.pl ++++ b/src/usr/targeting/common/processMrw.pl +@@ -805,8 +805,8 @@ sub processPcie + $iop_swap{0}{1}{'11'}=$t[7]; + + $iop_swap{1}{0}{'00'}=$t[8]; +- $iop_swap{1}{0}{'01'}=$t[9]; +- $iop_swap{1}{0}{'10'}=$t[10]; ++ $iop_swap{1}{0}{'10'}=$t[9]; ++ $iop_swap{1}{0}{'01'}=$t[10]; + $iop_swap{1}{0}{'11'}=$t[11]; + $iop_swap{1}{1}{'00'}=$t[12]; + $iop_swap{1}{1}{'10'}=$t[13]; +@@ -906,25 +906,22 @@ sub processPcie + die "PCIE config for $iop,$iop_lane_swap[$iop],$lane_rev not found\n"; + } + } +- my $lane_swap_attr0 = sprintf("%s,%s",$iop_lane_swap[0], +- $iop_lane_swap[1]); +- my $lane_swap_attr1 = sprintf("%s,0,%s,0",$iop_lane_swap[0], +- $iop_lane_swap[1]); ++ ++ my $lane_rev_attr0 = sprintf("%s,%s", ++ oct($iop_swap_lu[0]),oct($iop_swap_lu[1])); ++ my $lane_rev_attr1 = sprintf("%s,0,%s,0", ++ oct($iop_swap_lu[0]),oct($iop_swap_lu[1])); + + $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP", +- $lane_swap_attr0); ++ $lane_rev_attr0); + $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_NON_BIFURCATED", +- $lane_swap_attr1); ++ $lane_rev_attr1); + $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_BIFURCATED", + "0,0,0,0"); +- +- my $lane_rev_attr = sprintf("%s,0,%s,0", +- oct($iop_swap_lu[0]),oct($iop_swap_lu[1])); +- + $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL", +- $lane_rev_attr); ++ "0,0,0,0"); + $targetObj->setAttribute($parentTarget, +- "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED",$lane_rev_attr); ++ "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED","0,0,0,0"); + $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL_BIFURCATED", + "0,0,0,0"); + +-- +1.8.2.2 + diff --git a/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch b/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch new file mode 100644 index 0000000000..eb8d12aae5 --- /dev/null +++ b/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch @@ -0,0 +1,141 @@ +From d2bdfed735f6c5e69b606f0251aba131fec4275d Mon Sep 17 00:00:00 2001 +From: Brian Stegmiller +Date: Thu, 14 May 2015 13:47:36 -0500 +Subject: [PATCH] ATTN: IPOLL interrupt workaround + +Circumvents issue where interrupts happen before OPAL is ready +to handle them + +Change-Id: I3d378cd03dac51aaa5b2f77e8940eb63f170016b +Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/17795 +Reviewed-by: A. Patrick Williams III +Tested-by: Jenkins Server +--- + src/usr/diag/attn/common/attnsvc_common.C | 83 +++++++++++++++++++++++++++++-- + 1 file changed, 79 insertions(+), 4 deletions(-) + +diff --git a/src/usr/diag/attn/common/attnsvc_common.C b/src/usr/diag/attn/common/attnsvc_common.C +index c56b8a8..5067438 100644 +--- a/src/usr/diag/attn/common/attnsvc_common.C ++++ b/src/usr/diag/attn/common/attnsvc_common.C +@@ -43,6 +43,13 @@ using namespace ERRORLOG; + + namespace ATTN + { ++const uint64_t MCIFIRACT0 = 0x02011846; ++const uint64_t MCIFIRACT1 = 0x02011847; ++ ++const uint64_t MCIFIRMASK = 0x02011843; ++const uint64_t MCIFIRMASK_AND = 0x02011844; ++const uint64_t MCIFIRMASK_OR = 0x02011845; ++ + + void getPbGp2Mask(uint64_t i_pos, void * i_data) + { +@@ -104,11 +111,11 @@ errlHndl_t ServiceCommon::configureInterrupts( + ConfigureMode i_mode) + { + errlHndl_t err = NULL; +- +- TargetHandleList procs; ++ TargetHandleList procs; + getTargetService().getAllChips(procs, TYPE_PROC); + TargetHandleList::iterator it = procs.begin(); + ++ + while(it != procs.end()) + { + uint64_t mask = 0; +@@ -172,12 +179,10 @@ errlHndl_t ServiceCommon::configureInterrupts( + + #ifndef __HOSTBOOT_RUNTIME + // enable attentions in ipoll mask +- + mask = HostMask::nonHost(); + mask |= HostMask::host(); + + // this doesn't have an and/or reg for some reason... +- + err = modifyScom(*it, + IPOLL::address, + i_mode == UP ? ~mask : mask, +@@ -187,6 +192,76 @@ errlHndl_t ServiceCommon::configureInterrupts( + { + break; + } ++ ++ #else // HOSTBOOT_RUNTIME ++ ++ if (i_mode == UP) ++ { ++ HwasState l_functional; ++ uint64_t l_mciAct0 = 0; ++ uint64_t l_mciAct1 = 0; ++ uint64_t l_mciBitMask = 0; ++ TargetHandleList l_mcsList; ++ // Get list of MCS units associated with this proc ++ getTargetService().getMcsList( *it, l_mcsList ); ++ ++ // We need to set/clear mask bits in the MCIFIRs that ++ // are associated with host attentions. This should ++ // cause interrupts to re-occur if they had happened ++ // prior to starting the opal-prd application. ++ TargetHandleList::iterator l_mcsIt = l_mcsList.begin(); ++ ++ while(l_mcsIt != l_mcsList.end()) ++ { ++ // Make sure functional prior to using ++ if (!((*l_mcsIt)->tryGetAttr(l_functional))) ++ { ++ // Can't tell if functional so skip this MCS ++ break; ++ } ++ ++ if ( !(l_functional.functional) ) ++ { ++ // Not functional MCS so skip it ++ break; ++ } ++ ++ // Read ACTION registers to see if HOST ATTN ++ err = getScom(*l_mcsIt, MCIFIRACT0, l_mciAct0); ++ ++ if (NULL == err) ++ { ++ err = getScom(*l_mcsIt, MCIFIRACT1, l_mciAct1); ++ } ++ ++ if (NULL == err) ++ { ++ // Create bit mask we will use to write to MCIFIR ++ // (ACT0=1, ACT1=0) indicate bits we want ++ l_mciBitMask = l_mciAct0 & ~l_mciAct1; ++ // Set mask bits ++ err = putScom(*l_mcsIt, MCIFIRMASK_OR, l_mciBitMask); ++ } ++ ++ if (NULL == err) ++ { ++ // Clear mask bits ++ err = putScom(*l_mcsIt, MCIFIRMASK_AND, ~l_mciBitMask); ++ } ++ ++ // Commit any failure we had and move to next MCS unit ++ if (NULL != err) ++ { ++ errlCommit(err, ATTN_COMP_ID); ++ } ++ ++ l_mcsIt++; ++ ++ } // end while on MCS units ++ ++ l_mcsList.clear(); ++ } // end if UP MODE -- enabling ++ + #endif //__HOSTBOOT_RUNTIME + + ++it; +-- +1.8.2.2 + diff --git a/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch b/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch new file mode 100644 index 0000000000..ef2a89670b --- /dev/null +++ b/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch @@ -0,0 +1,764 @@ +From c53b40e0dcc250d75a159389e099dd40b64e5468 Mon Sep 17 00:00:00 2001 +From: Dan Crowell +Date: Wed, 27 May 2015 16:39:23 -0500 +Subject: [PATCH] Remove gard actions for memory plugging errors + +Modified errors related to unsupported or invalid dimm +configurations to no longer gard any hardware. + +Change-Id: I67459425e973ad1c6f4cf95ccd164b73bdd46a80 +--- + .../mss_eff_config/memory_mss_eff_config.xml | 208 +++++---------------- + .../memory_mss_eff_config_termination.xml | 69 +------ + 2 files changed, 50 insertions(+), 227 deletions(-) + +diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml +index ed1de55..c6a2d37 100644 +--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml ++++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml +@@ -5,7 +5,7 @@ + + + +- ++ + + + +@@ -22,7 +22,7 @@ + + + +- ++ + + + +@@ -47,9 +47,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -71,9 +68,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -98,9 +92,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -125,9 +116,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -169,10 +157,10 @@ + Plug rule violation, one position is empty but other are present + + TARGET_MBA +- CUR_DIMM_SPD_VALID_U8ARRAY_0_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_0_1 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_1 + + MEMORY_PLUGGING_ERROR + HIGH +@@ -186,10 +174,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -198,10 +182,10 @@ + Plug rule violation, sides do not match + + TARGET_MBA +- CUR_DIMM_SPD_VALID_U8ARRAY_0_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_0_1 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -216,10 +200,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -229,10 +209,10 @@ + Plug rule violation, top and bottom do not match + + TARGET_MBA +- CUR_DIMM_SPD_VALID_U8ARRAY_0_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_0_1 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_0 +- CUR_DIMM_SPD_VALID_U8ARRAY_1_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_0_1 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_0 ++ CUR_DIMM_SPD_VALID_U8ARRAY_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -247,10 +227,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -259,10 +235,10 @@ + Incompatable DRAM generation + + TARGET_MBA +- DRAM_DEVICE_TYPE_0_0 +- DRAM_DEVICE_TYPE_0_1 +- DRAM_DEVICE_TYPE_1_0 +- DRAM_DEVICE_TYPE_1_1 ++ DRAM_DEVICE_TYPE_0_0 ++ DRAM_DEVICE_TYPE_0_1 ++ DRAM_DEVICE_TYPE_1_0 ++ DRAM_DEVICE_TYPE_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -277,10 +253,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -289,10 +261,10 @@ + Incompatable DIMM type + + TARGET_MBA +- MODULE_TYPE_0_0 +- MODULE_TYPE_0_1 +- MODULE_TYPE_1_0 +- MODULE_TYPE_1_1 ++ MODULE_TYPE_0_0 ++ MODULE_TYPE_0_1 ++ MODULE_TYPE_1_0 ++ MODULE_TYPE_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -307,10 +279,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -319,10 +287,10 @@ + Incompatable DIMM ranks + + TARGET_MBA +- NUM_RANKS_0_0 +- NUM_RANKS_0_1 +- NUM_RANKS_1_0 +- NUM_RANKS_1_1 ++ NUM_RANKS_0_0 ++ NUM_RANKS_0_1 ++ NUM_RANKS_1_0 ++ NUM_RANKS_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -337,10 +305,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -349,10 +313,10 @@ + Incompatable DIMM banks + + TARGET_MBA +- SDRAM_BANKS_0_0 +- SDRAM_BANKS_0_1 +- SDRAM_BANKS_1_0 +- SDRAM_BANKS_1_1 ++ SDRAM_BANKS_0_0 ++ SDRAM_BANKS_0_1 ++ SDRAM_BANKS_1_0 ++ SDRAM_BANKS_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -367,10 +331,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -379,10 +339,10 @@ + Incompatable DIMM rows + + TARGET_MBA +- SDRAM_ROWS_0_0 +- SDRAM_ROWS_0_1 +- SDRAM_ROWS_1_0 +- SDRAM_ROWS_1_1 ++ SDRAM_ROWS_0_0 ++ SDRAM_ROWS_0_1 ++ SDRAM_ROWS_1_0 ++ SDRAM_ROWS_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -397,10 +357,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -409,10 +365,10 @@ + Incompatable DIMM columns + + TARGET_MBA +- SDRAM_COLS_0_0 +- SDRAM_COLS_0_1 +- SDRAM_COLS_1_0 +- SDRAM_COLS_1_1 ++ SDRAM_COLS_0_0 ++ SDRAM_COLS_0_1 ++ SDRAM_COLS_1_0 ++ SDRAM_COLS_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -427,10 +383,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -439,10 +391,10 @@ + Incompatable DRAM primary bus width + + TARGET_MBA +- BUS_WIDTH_0_0 +- BUS_WIDTH_0_1 +- BUS_WIDTH_1_0 +- BUS_WIDTH_1_1 ++ BUS_WIDTH_0_0 ++ BUS_WIDTH_0_1 ++ BUS_WIDTH_1_0 ++ BUS_WIDTH_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -457,10 +409,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -483,10 +431,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -496,10 +440,10 @@ + Incompatable DRAM width + + TARGET_MBA +- DRAM_WIDTH_0_0 +- DRAM_WIDTH_0_1 +- DRAM_WIDTH_1_0 +- DRAM_WIDTH_1_1 ++ DRAM_WIDTH_0_0 ++ DRAM_WIDTH_0_1 ++ DRAM_WIDTH_1_0 ++ DRAM_WIDTH_1_1 + + + MEMORY_PLUGGING_ERROR +@@ -514,10 +458,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -540,10 +480,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -566,10 +502,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -591,10 +523,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -616,10 +544,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -641,10 +565,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -666,10 +586,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -691,10 +607,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -716,10 +628,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -741,10 +649,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -766,10 +670,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -791,10 +691,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -816,10 +712,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -841,10 +733,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +@@ -866,10 +754,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- HIGH +- + + + +diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml +index 9f3c89c..f04b0a6 100644 +--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml ++++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml +@@ -5,7 +5,9 @@ + + + +- ++ ++ ++ + + + +@@ -20,7 +22,7 @@ + + + +- ++ + + + +@@ -195,9 +197,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -220,9 +219,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -245,9 +241,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -271,9 +264,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -297,9 +287,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -323,9 +310,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -349,9 +333,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -374,9 +355,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -400,9 +378,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -425,9 +400,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -450,9 +422,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -476,9 +445,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -497,9 +463,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -523,9 +486,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -650,9 +610,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -675,9 +632,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -699,9 +653,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -724,9 +675,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -750,9 +698,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -820,9 +765,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +@@ -845,9 +787,6 @@ + TARGET_MBA + + +- +- TARGET_MBA +- + + + +-- +2.3.0 + diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk index 83aae71cf0..3b7bc6fbf9 100644 --- a/openpower/package/hostboot/hostboot.mk +++ b/openpower/package/hostboot/hostboot.mk @@ -4,7 +4,7 @@ # ################################################################################ -HOSTBOOT_VERSION ?= 70b5e31d74487d51e69a0e0a390adea6b4f32dc5 +HOSTBOOT_VERSION ?= c646754e720b5cd21534425ca90bb414a4a3ff12 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION)) HOSTBOOT_LICENSE = Apache-2.0 diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk index 1a0b6368d0..85a893aef8 100644 --- a/openpower/package/occ/occ.mk +++ b/openpower/package/occ/occ.mk @@ -4,7 +4,7 @@ # ################################################################################ -OCC_VERSION ?= 19678d6a7dd078e3206bac6f1d5e3cf03008542b +OCC_VERSION ?= db9b6efae0555cbc4df2200e0e8a18e4a4c4477c OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION)) OCC_LICENSE = Apache-2.0 OCC_DEPENDENCIES = host-binutils host-p8-pore-binutils diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in index 6a23e519d9..2234d4e9d9 100644 --- a/openpower/package/openpower-pnor/Config.in +++ b/openpower/package/openpower-pnor/Config.in @@ -46,6 +46,11 @@ config BR2_HOSTBOOT_BINARY_SBEC_FILENAME help String used to define name of sbec hostboot binary file +config BR2_HOSTBOOT_BINARY_WINK_FILENAME + string "Name of winkle hostboot binary" + help + String used to define name of winkle hostboot binary file + config BR2_OPENPOWER_TARGETING_BIN_FILENAME string "Name of openpower binary targeting file" help diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk index fb7e2306fd..658a949dda 100644 --- a/openpower/package/openpower-pnor/openpower-pnor.mk +++ b/openpower/package/openpower-pnor/openpower-pnor.mk @@ -8,7 +8,7 @@ # make doesn't care for quotes in the dependencies. XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE)) -OPENPOWER_PNOR_VERSION ?= 3748ff041448a3909d5ffc5e62befcfcb597c0c1 +OPENPOWER_PNOR_VERSION ?= ed1682e10526ebd85825427fbf397361bb0e34aa OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION)) OPENPOWER_PNOR_LICENSE = Apache-2.0 @@ -48,6 +48,7 @@ define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS -targeting_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME) \ -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \ -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \ + -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \ -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \ -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \ -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) @@ -63,6 +64,7 @@ define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS -bootkernel $(BINARIES_DIR)/$(LINUX_IMAGE_NAME) \ -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \ -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \ + -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \ -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \ -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \ -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) diff --git a/openpower/package/pkg-versions.mk b/openpower/package/pkg-versions.mk index e3acbda5d5..e2e3af0c7e 100644 --- a/openpower/package/pkg-versions.mk +++ b/openpower/package/pkg-versions.mk @@ -70,16 +70,16 @@ whoami | xargs echo -n >> $$($(2)_VERSION_FILE); \ echo -n "-" >> $$($(2)_VERSION_FILE); \ \ cd "$$($(2)_SITE)"; (git describe --tags || git log -n1 --pretty=format:'%h' || echo "unknown") \ - | sed 's/\(.*\)-g\([0-9a-f]\{7\}\).*/\2/' | xargs echo -n \ + | sed 's/\(.*\)-g\([0-9a-f]\{7\}\).*/\2/;s/$(1)-//;' | xargs echo -n \ >> $$($(2)_VERSION_FILE); \ \ -cd "$$($(2)_SITE)"; git describe --all --dirty | grep -e "-dirty" | sed 's/.*\(-dirty\)/\1/' | \ +cd "$$($(2)_SITE)"; git describe --all --dirty | grep -e "-dirty" | sed 's/.*\(-dirty\)/\1/;' | \ xargs echo -n >> $$($(2)_VERSION_FILE); \ else \ \ [ `echo -n $$($(2)_VERSION) | wc -c` == "40" ] && (echo -n $$($(2)_VERSION) | \ - sed "s/^\([0-9a-f]\{7\}\).*/\1/" >> $$($(2)_VERSION_FILE)) \ - || echo -n $$($(2)_VERSION) >> $$($(2)_VERSION_FILE); \ + sed "s/^\([0-9a-f]\{7\}\).*/\1/;s/$(1)-//;" >> $$($(2)_VERSION_FILE)) \ + || echo -n $$($(2)_VERSION) | sed -e 's/$(1)-//' >> $$($(2)_VERSION_FILE); \ \ cd "$$(BR2_EXTERNAL)"; git describe --all --dirty | \ if grep -e "-dirty"; then \ diff --git a/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch b/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch deleted file mode 100644 index 68a4cbda72..0000000000 --- a/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/hw/prd.c b/hw/prd.c -index e65ae57..4862213 100644 ---- a/hw/prd.c -+++ b/hw/prd.c -@@ -226,12 +226,13 @@ static int ipoll_record_and_mask_pending(uint32_t proc) - - lock(&ipoll_lock); - rc = xscom_read(proc, PRD_IPOLL_REG_STATUS, &status); -+ status &= PRD_IPOLL_MASK; - if (!rc) - __ipoll_update_mask(proc, true, status); - unlock(&ipoll_lock); - - if (!rc) -- ipoll_status[proc] |= (status & PRD_IPOLL_MASK); -+ ipoll_status[proc] |= status; - - return rc; - } -@@ -284,7 +285,8 @@ static int prd_msg_handle_init(struct opal_prd_msg *msg) - - lock(&ipoll_lock); - for_each_chip(chip) { -- __ipoll_update_mask(chip->id, false, msg->init.ipoll); -+ __ipoll_update_mask(chip->id, false, -+ msg->init.ipoll & PRD_IPOLL_MASK); - } - unlock(&ipoll_lock); - -@@ -309,7 +311,7 @@ static int prd_msg_handle_fini(void) - - lock(&ipoll_lock); - for_each_chip(chip) { -- __ipoll_update_mask(chip->id, true, -1ul); -+ __ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK); - } - unlock(&ipoll_lock); - -@@ -345,7 +347,7 @@ void prd_init(void) - /* mask everything */ - lock(&ipoll_lock); - for_each_chip(chip) { -- __ipoll_update_mask(chip->id, true, -1ul); -+ __ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK); - } - unlock(&ipoll_lock); - diff --git a/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch b/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch deleted file mode 100644 index e71e17e1d1..0000000000 --- a/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/hw/xscom.c b/hw/xscom.c -index 6bd71a3..a3533be 100644 ---- a/hw/xscom.c -+++ b/hw/xscom.c -@@ -342,7 +342,6 @@ static uint32_t xscom_decode_chiplet(uint32_t partid, uint64_t *pcb_addr) - */ - int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val) - { -- bool need_unlock; - uint32_t gcid; - int rc; - -@@ -360,12 +359,8 @@ int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val) - return OPAL_PARAMETER; - } - -- /* -- * HW822317 requires locking. We use a recursive lock as error -- * conditions might cause printf's which might then try to take -- * the lock again -- */ -- need_unlock = lock_recursive(&xscom_lock); -+ /* HW822317 requires us to do global locking */ -+ lock(&xscom_lock); - - /* Direct vs indirect access */ - if (pcb_addr & XSCOM_ADDR_IND_FLAG) -@@ -374,8 +369,7 @@ int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val) - rc = __xscom_read(gcid, pcb_addr & 0x7fffffff, val); - - /* Unlock it */ -- if (need_unlock) -- unlock(&xscom_lock); -+ unlock(&xscom_lock); - return rc; - } - -@@ -383,7 +377,6 @@ opal_call(OPAL_XSCOM_READ, xscom_read, 3); - - int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val) - { -- bool need_unlock; - uint32_t gcid; - int rc; - -@@ -401,12 +394,8 @@ int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val) - return OPAL_PARAMETER; - } - -- /* -- * HW822317 requires locking. We use a recursive lock as error -- * conditions might cause printf's which might then try to take -- * the lock again -- */ -- need_unlock = lock_recursive(&xscom_lock); -+ /* HW822317 requires us to do global locking */ -+ lock(&xscom_lock); - - /* Direct vs indirect access */ - if (pcb_addr & XSCOM_ADDR_IND_FLAG) -@@ -415,8 +404,7 @@ int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val) - rc = __xscom_write(gcid, pcb_addr & 0x7fffffff, val); - - /* Unlock it */ -- if (need_unlock) -- unlock(&xscom_lock); -+ unlock(&xscom_lock); - return rc; - } - opal_call(OPAL_XSCOM_WRITE, xscom_write, 3); diff --git a/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch b/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch deleted file mode 100644 index f19f6aa9c9..0000000000 --- a/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch +++ /dev/null @@ -1,117 +0,0 @@ -diff --git a/hw/bt.c b/hw/bt.c -index 7bf1b2f..8bb44cd 100644 ---- a/hw/bt.c -+++ b/hw/bt.c -@@ -350,7 +350,8 @@ static void print_debug_queue_info(void) {} - - static void bt_send_and_unlock(void) - { -- if (bt.state == BT_STATE_IDLE && !list_empty(&bt.msgq)) -+ if (lpc_ok() && -+ bt.state == BT_STATE_IDLE && !list_empty(&bt.msgq)) - bt_send_msg(); - - unlock(&bt.lock); -@@ -361,6 +362,10 @@ static void bt_poll(struct timer *t __unused, void *data __unused) - { - uint8_t bt_ctrl; - -+ /* Don't do anything if the LPC bus is offline */ -+ if (!lpc_ok()) -+ return; -+ - /* If we can't get the lock assume someone else will notice - * the new message and process it. */ - lock(&bt.lock); -@@ -440,7 +445,9 @@ static int bt_add_ipmi_msg(struct ipmi_msg *ipmi_msg) - - void bt_irq(void) - { -- uint8_t ireg = bt_inb(BT_INTMASK); -+ uint8_t ireg; -+ -+ ireg = bt_inb(BT_INTMASK); - - bt.irq_ok = true; - if (ireg & BT_INTMASK_B2H_IRQ) { -diff --git a/hw/lpc-uart.c b/hw/lpc-uart.c -index 2e6114a..7c3190e 100644 ---- a/hw/lpc-uart.c -+++ b/hw/lpc-uart.c -@@ -135,6 +135,10 @@ static size_t uart_con_write(const char *buf, size_t len) - { - size_t written = 0; - -+ /* If LPC bus is bad, we just swallow data */ -+ if (!lpc_ok()) -+ return written; -+ - lock(&uart_lock); - while(written < len) { - if (tx_room == 0) { -diff --git a/hw/lpc.c b/hw/lpc.c -index 0db674f..b287020 100644 ---- a/hw/lpc.c -+++ b/hw/lpc.c -@@ -500,3 +500,15 @@ void lpc_used_by_console(void) - unlock(&chip->lpc_lock); - } - } -+ -+bool lpc_ok(void) -+{ -+ struct proc_chip *chip; -+ -+ if (lpc_default_chip_id < 0) -+ return false; -+ if (!xscom_ok()) -+ return false; -+ chip = get_chip(lpc_default_chip_id); -+ return !lock_held_by_me(&chip->lpc_lock); -+} -diff --git a/hw/xscom.c b/hw/xscom.c -index a3533be..07b9b94 100644 ---- a/hw/xscom.c -+++ b/hw/xscom.c -@@ -531,3 +531,8 @@ void xscom_used_by_console(void) - lock(&xscom_lock); - unlock(&xscom_lock); - } -+ -+bool xscom_ok(void) -+{ -+ return !lock_held_by_me(&xscom_lock); -+} -diff --git a/include/lpc.h b/include/lpc.h -index 5611c54..a0990fd 100644 ---- a/include/lpc.h -+++ b/include/lpc.h -@@ -27,6 +27,12 @@ extern void lpc_init(void); - /* Check for a default bus */ - extern bool lpc_present(void); - -+/* Return of LPC is currently usable. This can be false if the caller -+ * currently holds a lock that would make it unsafe, or the LPC bus -+ * is known to be in some error condition (TBI). -+ */ -+extern bool lpc_ok(void); -+ - /* Handle the interrupt from LPC source */ - extern void __attrconst lpc_interrupt(uint32_t chip_id); - -diff --git a/include/xscom.h b/include/xscom.h -index b1ecaf5..a841261 100644 ---- a/include/xscom.h -+++ b/include/xscom.h -@@ -173,6 +173,11 @@ extern void xscom_init(void); - /* Mark XSCOM lock as being in console path */ - extern void xscom_used_by_console(void); - -+/* Returns true if XSCOM can be used. Typically this returns false if -+ * the current CPU holds the XSCOM lock (to avoid re-entrancy from error path). -+ */ -+extern bool xscom_ok(void); -+ - extern int64_t xscom_read_cfam_chipid(uint32_t partid, uint32_t *chip_id); - - #endif /* __XSCOM_H */ diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk index 3b4ad1ae8d..7034ad7fa8 100644 --- a/openpower/package/skiboot/skiboot.mk +++ b/openpower/package/skiboot/skiboot.mk @@ -4,7 +4,7 @@ # ################################################################################ -SKIBOOT_VERSION = skiboot-5.0-rc3 +SKIBOOT_VERSION = skiboot-5.0.2 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION)) SKIBOOT_INSTALL_IMAGES = YES SKIBOOT_INSTALL_TARGET = NO