summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C82
1 files changed, 74 insertions, 8 deletions
diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
index 5f0f338b9..81d19258b 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
@@ -129,13 +129,46 @@ void* call_proc_a_x_pci_dmi_pll_initf( void *io_pArgs )
"Running proc_a_x_pci_dmi_pll_initf HWP on "
"target HUID %.8X", TARGETING::get_huid(l_proc_target));
+ bool l_startXbusPll = false;
+ bool l_startAbusPll = false;
+ bool l_startPCIEPll = false;
+ bool l_startDMIPll = false;
+
+ TARGETING::TargetHandleList l_xbus;
+ getChildChiplets( l_xbus, l_proc_target, TYPE_XBUS );
+ if (l_xbus.size() > 0)
+ {
+ l_startXbusPll = true;
+ }
+
+ TARGETING::TargetHandleList l_abus;
+ getChildChiplets( l_abus, l_proc_target, TYPE_ABUS );
+ if (l_abus.size() > 0)
+ {
+ l_startAbusPll = true;
+ }
+
+ TARGETING::TargetHandleList l_pci;
+ getChildChiplets( l_pci, l_proc_target, TYPE_PCI );
+ if (l_pci.size() > 0)
+ {
+ l_startPCIEPll = true;
+ }
+
+ TARGETING::TargetHandleList l_mcs;
+ getChildChiplets( l_mcs, l_proc_target, TYPE_MCS );
+ if (l_mcs.size() > 0)
+ {
+ l_startDMIPll = true;
+ }
+
// call proc_a_x_pci_dmi_pll_initf
FAPI_INVOKE_HWP(l_err, proc_a_x_pci_dmi_pll_initf,
l_fapi_proc_target,
- true, // xbus
- true, // abus
- true, // pcie
- true); // dmi
+ l_startXbusPll, // xbus
+ l_startAbusPll, // abus
+ l_startPCIEPll, // pcie
+ l_startDMIPll); // dmi
if (l_err)
{
@@ -206,13 +239,46 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
"Running proc_a_x_pci_dmi_pll_setup HWP on "
"target HUID %.8X", TARGETING::get_huid(l_proc_target));
+ bool l_startXbusPll = false;
+ bool l_startAbusPll = false;
+ bool l_startPCIEPll = false;
+ bool l_startDMIPll = false;
+
+ TARGETING::TargetHandleList l_xbus;
+ getChildChiplets( l_xbus, l_proc_target, TYPE_XBUS );
+ if (l_xbus.size() > 0)
+ {
+ l_startXbusPll = true;
+ }
+
+ TARGETING::TargetHandleList l_abus;
+ getChildChiplets( l_abus, l_proc_target, TYPE_ABUS );
+ if (l_abus.size() > 0)
+ {
+ l_startAbusPll = true;
+ }
+
+ TARGETING::TargetHandleList l_pci;
+ getChildChiplets( l_pci, l_proc_target, TYPE_PCI );
+ if (l_pci.size() > 0)
+ {
+ l_startPCIEPll = true;
+ }
+
+ TARGETING::TargetHandleList l_mcs;
+ getChildChiplets( l_mcs, l_proc_target, TYPE_MCS );
+ if (l_mcs.size() > 0)
+ {
+ l_startDMIPll = true;
+ }
+
// call proc_a_x_pci_dmi_pll_setup
FAPI_INVOKE_HWP(l_err, proc_a_x_pci_dmi_pll_setup,
l_fapi_proc_target,
- true, // xbus
- true, // abus
- true, // pcie
- true); // dmi
+ l_startXbusPll, // xbus
+ l_startAbusPll, // abus
+ l_startPCIEPll, // pcie
+ l_startDMIPll); // dmi
if (l_err)
{
OpenPOWER on IntegriCloud