summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/nest
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/nest')
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C128
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H49
-rwxr-xr-xsrc/import/chips/p9/procedures/hwp/nest/p9_sbe_fabricinit.C77
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_sbe_load_bootloader.C15
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_sbe_mcs_setup.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C13
6 files changed, 261 insertions, 23 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C b/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
index 55767769..aa69a0b8 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
@@ -145,7 +145,7 @@ fapi_try_exit:
// NOTE: see comments above function prototype in header
-fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
+fapi2::ReturnCode p9_fbc_utils_get_chip_base_address_no_aliases(
const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
const p9_fbc_utils_addr_mode_t i_addr_mode,
uint64_t& o_base_address_nm0,
@@ -198,7 +198,6 @@ fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
}
// else, leave chip ID=0 for the purposes of establishing drawer base address
-
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_MEM_MIRROR_PLACEMENT_POLICY, FAPI_SYSTEM, l_mirror_policy),
"Error from FAPI_ATTR_GET (ATTR_MEM_MIRROR_PLACEMENT_POLICY)");
@@ -245,3 +244,128 @@ fapi_try_exit:
FAPI_DBG("End");
return fapi2::current_err;
}
+
+
+// NOTE: see comments above function prototype in header
+fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
+ const p9_fbc_utils_addr_mode_t i_addr_mode,
+ std::vector<uint64_t>& o_base_address_nm0,
+ std::vector<uint64_t>& o_base_address_nm1,
+ std::vector<uint64_t>& o_base_address_m,
+ uint64_t& o_base_address_mmio)
+{
+ uint64_t l_base_address_nm0 = 0;
+ uint64_t l_base_address_nm1 = 0;
+ uint64_t l_base_address_m = 0;
+ uint8_t l_addr_extension_group_id;
+ uint8_t l_addr_extension_chip_id;
+ fapi2::buffer<uint64_t> l_addr_extension_enable = 0;
+ uint8_t l_regions_per_msel = 1;
+ std::vector<uint8_t> l_alias_bit_positions;
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM;
+
+ fapi2::ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE_Type l_extended_addressing_mode;
+ fapi2::ATTR_CHIP_EC_FEATURE_HW423589_OPTION2_Type l_hw423589_option2;
+
+ FAPI_TRY(p9_fbc_utils_get_chip_base_address_no_aliases(i_target,
+ i_addr_mode,
+ l_base_address_nm0,
+ l_base_address_nm1,
+ l_base_address_m,
+ o_base_address_mmio),
+ "Error from p9_fbc_utils_get_chip_base_address_no_aliases");
+
+ // read attributes defining address extension enable configuration
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE, i_target, l_extended_addressing_mode),
+ "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE)");
+
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW423589_OPTION2, i_target, l_hw423589_option2),
+ "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_HW423589_OPTION2)");
+
+ if (l_extended_addressing_mode)
+ {
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID,
+ FAPI_SYSTEM,
+ l_addr_extension_group_id),
+ "Error from FAPI_ATTR_GET (ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID)");
+
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID,
+ FAPI_SYSTEM,
+ l_addr_extension_chip_id),
+ "Error from FAPI_ATTR_GET (ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID");
+
+ // align to RA
+ l_addr_extension_enable.insertFromRight < FABRIC_ADDR_LS_GROUP_ID_START_BIT,
+ FABRIC_ADDR_LS_GROUP_ID_END_BIT - FABRIC_ADDR_LS_GROUP_ID_START_BIT + 1 >
+ (l_addr_extension_group_id);
+ l_addr_extension_enable.insertFromRight < FABRIC_ADDR_LS_CHIP_ID_START_BIT,
+ FABRIC_ADDR_LS_CHIP_ID_END_BIT - FABRIC_ADDR_LS_CHIP_ID_START_BIT + 1 >
+ (l_addr_extension_chip_id);
+ }
+
+ // walk across bits set in enable bit field, count number of bits set
+ // to determine permutations
+ FAPI_DBG("Address extension enable mask: 0x%016lX", l_addr_extension_enable());
+
+ if (l_addr_extension_enable != 0)
+ {
+ for (uint8_t ii = FABRIC_ADDR_LS_GROUP_ID_START_BIT;
+ ii <= FABRIC_ADDR_LS_CHIP_ID_END_BIT;
+ ii++)
+ {
+ if (l_addr_extension_enable.getBit(ii))
+ {
+ l_regions_per_msel *= 2;
+ l_alias_bit_positions.push_back(ii);
+ }
+ }
+ }
+
+ FAPI_DBG("Valid regions per msel: %d", l_regions_per_msel);
+
+ for (uint8_t l_region = 0;
+ l_region < l_regions_per_msel;
+ l_region++)
+ {
+ fapi2::buffer<uint64_t> l_alias_mask = 0;
+ FAPI_DBG("Generating region: %d", l_region);
+
+ if (l_region)
+ {
+ uint8_t l_value = l_region;
+
+ for (int jj = l_alias_bit_positions.size() - 1;
+ jj >= 0;
+ jj--)
+ {
+ l_alias_mask.writeBit(l_value & 1,
+ l_alias_bit_positions[jj]);
+ l_value = l_value >> 1;
+ }
+ }
+
+ FAPI_DBG("Mask: 0x%016lX", l_alias_mask());
+
+ // hide region reserved for GPU LPC
+ if (!l_hw423589_option2 || (l_region != 1))
+ {
+ o_base_address_nm0.push_back(l_base_address_nm0 |
+ l_alias_mask());
+ o_base_address_m.push_back(l_base_address_m |
+ l_alias_mask());
+ }
+
+ // second non-mirrored msel region unusable with HW423589_OPTION2
+ // (no MCD resources available to map)
+ if (!l_hw423589_option2)
+ {
+ o_base_address_nm1.push_back(l_base_address_nm1 |
+ l_alias_mask());
+ }
+ }
+
+fapi_try_exit:
+ FAPI_DBG("End");
+ return fapi2::current_err;
+}
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H b/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
index 4b3a90a4..a160ad18 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
@@ -69,6 +69,13 @@ const uint64_t P9_FBC_UTILS_LAST_ADDR_IN_CACHELINE = 0x78ULL;
// cacheline size = 128B
const uint64_t FABRIC_CACHELINE_SIZE = 0x80;
+// chip address extension mask, for HW423589_OPTION2
+// repurposes chip ID(0:2) as address bits
+const uint8_t CHIP_ADDRESS_EXTENSION_GROUP_ID_MASK_HW423589_OPTION2 = 0x0;
+const uint8_t CHIP_ADDRESS_EXTENSION_CHIP_ID_MASK_HW423589_OPTION2 = 0x7;
+
+const uint64_t MAX_INTERLEAVE_GROUP_SIZE = 0x40000000000ULL; // 4_TB
+const uint64_t MAX_INTERLEAVE_GROUP_SIZE_HW423589_OPTION2 = 0x8000000000ULL; // 512_GB
//------------------------------------------------------------------------------
// Function prototypes
@@ -99,17 +106,22 @@ fapi2::ReturnCode p9_fbc_utils_override_fbc_stop(
const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);
///
-/// @brief Return base address origin (non-mirrored/mirrored/MMIO) for this chip
+/// @brief Return set of base addresses (non-mirrored/mirrored/MMIO) for this chip,
+/// accounting for fixed msel assignments, but not aliasing
+/// enabled by chip address extension facility
///
/// @param[in] i_target Reference to processor chip target
/// @param[in] i_addr_mode Specifies mode for chip base/origin address calculations
-/// @param[out] o_base_address_nm0 Non-mirrored base address (range 0) for this chip
-/// @param[out] o_base_address_nm1 Non-mirrored base address (range 1) for this chip
-/// @param[out] o_base_address_m Mirrored base address for this chip
-/// @param[out] o_base_address_mmio MMIO base address for this chip
+/// @param[out] o_base_address_nm0 Non-mirrored base address for
+/// this chip (covering msel=0b00)
+/// @param[out] o_base_address_nm1 Non-mirrored base address for
+/// this chip (covering msel=0b01)
+/// @param[out] o_base_address_m Mirrored base address for
+/// this chip (covering msel=0b10)
+/// @param[out] o_base_address_mmio MMIO base address for this chip (msel=0b11)
/// @return fapi::ReturnCode, FAPI2_RC_SUCCESS if success, else error code.
///
-fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
+fapi2::ReturnCode p9_fbc_utils_get_chip_base_address_no_aliases(
const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
const p9_fbc_utils_addr_mode_t i_addr_mode,
uint64_t& o_base_address_nm0,
@@ -117,4 +129,29 @@ fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
uint64_t& o_base_address_m,
uint64_t& o_base_address_mmio);
+///
+/// @brief Return set of base addresses (non-mirrored/mirrored/MMIO) for this chip,
+/// accounting for fixed msel assignments as well as variable aliasing
+/// enabled by chip address extension facility
+///
+/// @param[in] i_target Reference to processor chip target
+/// @param[in] i_addr_mode Specifies mode for chip base/origin address calculations
+/// @param[out] o_base_address_nm0 List of non-mirrored base addresses for
+/// this chip (covering msel=0b00), ordered from smallest->largest
+/// @param[out] o_base_address_nm1 List of non-mirrored base addresses for
+/// this chip (covering msel=0b01), ordered from smallest->largest
+/// @param[out] o_base_address_m List of mirrored base addresses for
+/// this chip (covering msel=0b10), ordered from
+/// smallest->largest
+/// @param[out] o_base_address_mmio MMIO base address for this chip (msel=0b11)
+/// @return fapi::ReturnCode, FAPI2_RC_SUCCESS if success, else error code.
+///
+fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
+ const p9_fbc_utils_addr_mode_t i_addr_mode,
+ std::vector<uint64_t>& o_base_address_nm0,
+ std::vector<uint64_t>& o_base_address_nm1,
+ std::vector<uint64_t>& o_base_address_m,
+ uint64_t& o_base_address_mmio);
+
#endif // _P9_FBC_UTILS_H_
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_fabricinit.C b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_fabricinit.C
index 3235616f..7f488ef5 100755
--- a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_fabricinit.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_fabricinit.C
@@ -44,6 +44,8 @@
#include <p9_fbc_utils.H>
#include <p9_misc_scom_addresses.H>
#include <p9_misc_scom_addresses_fld.H>
+#include <p9n2_misc_scom_addresses.H>
+#include <p9n2_misc_scom_addresses_fld.H>
//------------------------------------------------------------------------------
// Constant definitions
@@ -75,14 +77,19 @@ p9_sbe_fabricinit(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
fapi2::buffer<uint64_t> l_cmd_data;
fapi2::buffer<uint64_t> l_status_data_act;
fapi2::buffer<uint64_t> l_status_data_exp;
+ fapi2::buffer<uint64_t> l_mode_data;
fapi2::buffer<uint64_t> l_hp_mode_data;
+ fapi2::buffer<uint64_t> l_nmmu_cqmode_data;
bool l_fbc_is_initialized, l_fbc_is_running;
fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_pump_mode;
fapi2::ATTR_PROC_FABRIC_GROUP_ID_Type l_fbc_group_id_abs;
fapi2::ATTR_PROC_EFF_FABRIC_GROUP_ID_Type l_fbc_group_id_eff;
fapi2::ATTR_PROC_FABRIC_CHIP_ID_Type l_fbc_chip_id_abs;
fapi2::ATTR_PROC_EFF_FABRIC_CHIP_ID_Type l_fbc_chip_id_eff;
+ fapi2::ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE_Type l_extended_addressing_mode;
uint8_t l_fbc_xlate_addr_to_id = 0;
+ uint8_t l_addr_extension_group_id = 0;
+ uint8_t l_addr_extension_chip_id = 0;
// before fabric is initialized, configure resources which live in hotplug registers
// but which themselves are not hotpluggable
@@ -96,14 +103,60 @@ p9_sbe_fabricinit(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
"Error from FAPI_ATTR_GET (ATTR_PROC_FABRIC_CHIP_ID)");
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_EFF_FABRIC_CHIP_ID, i_target, l_fbc_chip_id_eff),
"Error from FAPI_ATTR_GET (ATTR_PROC_EFF_FABRIC_CHIP_ID)");
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE, i_target, l_extended_addressing_mode),
+ "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE)");
+
+ // sample center mode and hotplug mode registers
+ FAPI_TRY(fapi2::getScom(i_target, PU_PB_CENT_SM0_PB_CENT_MODE, l_mode_data),
+ "Error from getScom (PU_PB_CENT_SM0_PB_CENT_MODE)");
FAPI_TRY(fapi2::getScom(i_target, PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR, l_hp_mode_data),
"Error from getScom (PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR)");
+ // update mode register content
+ if (l_extended_addressing_mode)
+ {
+ fapi2::ATTR_CHIP_EC_FEATURE_HW423589_OPTION2_Type l_hw423589_option2;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW423589_OPTION2, i_target, l_hw423589_option2),
+ "Error from FAPI_ATTR_GET (ATTR_CHIP_EC_FEATURE_HW423589_OPTION2)");
+
+ if (l_hw423589_option2)
+ {
+ l_addr_extension_group_id = CHIP_ADDRESS_EXTENSION_GROUP_ID_MASK_HW423589_OPTION2;
+ l_addr_extension_chip_id = CHIP_ADDRESS_EXTENSION_CHIP_ID_MASK_HW423589_OPTION2;
+ }
+
+ // enable extended addressing mode, seed attributes from defaults
+ // and use attribute values to configure fabric -- should allow for testing
+ // alternate configurations via Cronus with const attribute overrides
+ FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID,
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(),
+ l_addr_extension_group_id),
+ "Error from FAPI_ATTR_SET (ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID)");
+ FAPI_TRY(FAPI_ATTR_SET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID,
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(),
+ l_addr_extension_chip_id),
+ "Error from FAPI_ATTR_SET (ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID)");
+
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID,
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(),
+ l_addr_extension_group_id),
+ "Error from FAPI_ATTR_GET (ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID)");
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID,
+ fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(),
+ l_addr_extension_chip_id),
+ "Error from FAPI_ATTR_GET (ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID)");
+
+ l_mode_data.insertFromRight<P9N2_PU_PB_CENT_SM0_PB_CENT_MODE_CFG_CHIP_ADDR_EXTENSION_MASK,
+ P9N2_PU_PB_CENT_SM0_PB_CENT_MODE_CFG_CHIP_ADDR_EXTENSION_MASK_LEN>
+ ((l_addr_extension_group_id << 3) | l_addr_extension_chip_id);
+ }
+
// determine HW XOR mask based on fabric ID attributes
l_fbc_xlate_addr_to_id = ((l_fbc_group_id_abs << 3) | l_fbc_chip_id_abs);
l_fbc_xlate_addr_to_id ^= ((l_fbc_group_id_eff << 3) | l_fbc_chip_id_eff);
+ // update hotplug mode register content
l_hp_mode_data.insertFromRight<PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR_CFG_XLATE_ADDR_TO_ID, // XOR mask
PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR_CFG_XLATE_ADDR_TO_ID_LEN>(l_fbc_xlate_addr_to_id);
@@ -120,7 +173,17 @@ p9_sbe_fabricinit(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
l_hp_mode_data.setBit<PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR_CFG_PUMP>();
}
- // write back to all hotplug registers (EAST/CENTER/WEST, NEXT & CURR)
+ // write back to all mode registers (EAST/CENTER/WEST)
+ FAPI_TRY(fapi2::putScom(i_target, PU_PB_CENT_SM0_PB_CENT_MODE, l_mode_data),
+ "Error from putScom (PU_PB_CENT_SM0_PB_CENT_MODE)");
+
+ FAPI_TRY(fapi2::putScom(i_target, PU_PB_EAST_MODE, l_mode_data),
+ "Error from putScom (PU_PB_EAST_MODE)");
+
+ FAPI_TRY(fapi2::putScom(i_target, PU_PB_WEST_SM0_PB_WEST_MODE, l_mode_data),
+ "Error from putScom (PU_PB_WEST_SM0_PB_WEST_MODE)");
+
+ // write back to all hotplug mode registers (EAST/CENTER/WEST, NEXT & CURR)
FAPI_TRY(fapi2::putScom(i_target, PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR, l_hp_mode_data),
"Error from putScom (PU_PB_CENT_SM0_PB_CENT_HP_MODE_CURR)");
FAPI_TRY(fapi2::putScom(i_target, PU_PB_CENT_SM0_PB_CENT_HP_MODE_NEXT, l_hp_mode_data),
@@ -136,6 +199,18 @@ p9_sbe_fabricinit(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
FAPI_TRY(fapi2::putScom(i_target, PU_PB_WEST_SM0_PB_WEST_HP_MODE_NEXT, l_hp_mode_data),
"Error from putScom (PU_PB_WEST_SM0_PB_WEST_HP_MODE_NEXT)");
+ // set NMMU extended addressing configuration prior to fabric init
+ if (l_extended_addressing_mode)
+ {
+ FAPI_TRY(fapi2::getScom(i_target, P9N2_PU_NMMU_MMCQ_PB_MODE_REG, l_nmmu_cqmode_data),
+ "Error from getScom (P9N2_PU_NMMU_MMCQ_PB_MODE_REG)");
+ l_nmmu_cqmode_data.insertFromRight<P9N2_PU_NMMU_MMCQ_PB_MODE_REG_ADDR_EXT_MASK,
+ P9N2_PU_NMMU_MMCQ_PB_MODE_REG_ADDR_EXT_MASK_LEN>
+ ((l_addr_extension_group_id << 3) | l_addr_extension_chip_id);
+ FAPI_TRY(fapi2::putScom(i_target, P9N2_PU_NMMU_MMCQ_PB_MODE_REG, l_nmmu_cqmode_data),
+ "Error from getScom (P9N2_PU_NMMU_MMCQ_PB_MODE_REG)");
+ }
+
// check state of fabric pervasive stop control signal
// if set, this would prohibit all fabric commands from being broadcast
FAPI_DBG("Checking status of FBC stop ...");
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_load_bootloader.C b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_load_bootloader.C
index 8bffe723..fed5330f 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_load_bootloader.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_load_bootloader.C
@@ -310,12 +310,13 @@ calc_image_footprint(
// target base address = (drawer non-mirrored base address) +
// (hostboot HRMOR offset) +
// (bootloader offset)
- FAPI_TRY(p9_fbc_utils_get_chip_base_address(i_master_chip_target,
- ABS_FBC_GRP_ID_ONLY,
- l_drawer_base_address_nm0,
- l_drawer_base_address_nm1,
- l_drawer_base_address_m,
- l_drawer_base_address_mmio),
+ FAPI_TRY(p9_fbc_utils_get_chip_base_address_no_aliases(
+ i_master_chip_target,
+ ABS_FBC_GRP_ID_ONLY,
+ l_drawer_base_address_nm0,
+ l_drawer_base_address_nm1,
+ l_drawer_base_address_m,
+ l_drawer_base_address_mmio),
"Error from p9_fbc_utils_get_chip_base_address (drawer)");
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_HOSTBOOT_HRMOR_OFFSET,
@@ -404,7 +405,7 @@ get_bootloader_config_data(
FAPI_DBG("Start");
// read platform initialized attributes to determine struct content
- FAPI_TRY(p9_fbc_utils_get_chip_base_address(i_master_chip_target,
+ FAPI_TRY(p9_fbc_utils_get_chip_base_address_no_aliases(i_master_chip_target,
EFF_FBC_GRP_CHIP_IDS,
l_chip_base_address_nm0,
l_chip_base_address_nm1,
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_mcs_setup.C b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_mcs_setup.C
index d65b37c3..3bd71971 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_mcs_setup.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_mcs_setup.C
@@ -226,7 +226,7 @@ p9_sbe_mcs_setup(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
// determine base address
// = (drawer non-mirrored base address) + (hostboot HRMOR offset)
// min MCS base size is 4GB, local HB will always be below
- FAPI_TRY(p9_fbc_utils_get_chip_base_address(i_target,
+ FAPI_TRY(p9_fbc_utils_get_chip_base_address_no_aliases(i_target,
ABS_FBC_GRP_ID_ONLY,
l_chip_base_address_nm0,
l_chip_base_address_nm1,
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C
index e8fc9904..49a12b75 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_sbe_scominit.C
@@ -153,12 +153,13 @@ p9_sbe_scominit(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
}
// determine base address of chip nm/m/mmmio regions in real address space
- FAPI_TRY(p9_fbc_utils_get_chip_base_address(i_target,
- EFF_FBC_GRP_CHIP_IDS,
- l_base_addr_nm0,
- l_base_addr_nm1,
- l_base_addr_m,
- l_base_addr_mmio),
+ FAPI_TRY(p9_fbc_utils_get_chip_base_address_no_aliases(
+ i_target,
+ EFF_FBC_GRP_CHIP_IDS,
+ l_base_addr_nm0,
+ l_base_addr_nm1,
+ l_base_addr_m,
+ l_base_addr_mmio),
"Error from p9_fbc_utils_get_chip_base_address");
// set XSCOM BAR
OpenPOWER on IntegriCloud