summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/common/processMrw.pl
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2018-01-22 14:55:12 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-24 20:49:48 -0500
commitbb004ba55073aaa8bc216730b29d51925efeb099 (patch)
treece9cfa050ef81c23e06ab9ef19c60e47b90f7d0d /src/usr/targeting/common/processMrw.pl
parent43011596290021b04ab058d116730cbac2cbe1ac (diff)
downloadtalos-hostboot-bb004ba55073aaa8bc216730b29d51925efeb099.tar.gz
talos-hostboot-bb004ba55073aaa8bc216730b29d51925efeb099.zip
processMrw: hard-code all base bar addresses as to not rely on mrw
All information required to calculate the BARs (base address, group offset, chip offset) is already known and constant across all P9 systems. Therefore, moving this information from MRW to just the processMrw script. Additionally, removed leftover P8 BAR attributes. Change-Id: I7375bd1b892aa5942f03cfdc5cc931c300600785 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52396 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting/common/processMrw.pl')
-rwxr-xr-xsrc/usr/targeting/common/processMrw.pl86
1 files changed, 20 insertions, 66 deletions
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index b8ece529c..b2cb59e55 100755
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -1057,73 +1057,27 @@ sub setupBars
my $proc = $targetObj->getAttribute($target, "FABRIC_CHIP_ID");
$targetObj->{TOPOLOGY}->{$group}->{$proc}++;
- my @bars=( "FSP_BASE_ADDR",
- "VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR",
- "VAS_USER_WINDOW_CONTEXT_ADDR",
- "NVIDIA_NPU_PRIVILEGED_ADDR",
- "NVIDIA_NPU_USER_REG_ADDR",
- "NVIDIA_PHY0_REG_ADDR",
- "NVIDIA_PHY1_REG_ADDR",
- "NX_RNG_ADDR");
-
- # Attribute only valid in naples-based systems
- if (!$targetObj->isBadAttribute($target,"NPU_MMIO_BAR_BASE_ADDR") ) {
- push(@bars,"NPU_MMIO_BAR_BASE_ADDR");
- }
-
- #@fixme-RTC:174616-Remove deprecated support
- if (!$targetObj->isBadAttribute($target,"LPC_BUS_ADDR") ) {
- push(@bars,"LPC_BUS_ADDR");
- }
- if (!$targetObj->isBadAttribute($target,"XSCOM_BASE_ADDRESS") ) {
- push(@bars,"XSCOM_BASE_ADDRESS");
- }
- if (!$targetObj->isBadAttribute($target,"PSI_BRIDGE_BASE_ADDR") ) {
- push(@bars,"PSI_BRIDGE_BASE_ADDR");
- }
- if (!$targetObj->isBadAttribute($target,"INTP_BASE_ADDR") ) {
- push(@bars,"INTP_BASE_ADDR");
- }
- if (!$targetObj->isBadAttribute($target,"PSI_HB_ESB_ADDR") ) {
- push(@bars,"PSI_HB_ESB_ADDR");
- }
- if (!$targetObj->isBadAttribute($target,"XIVE_CONTROLLER_BAR_ADDR") ) {
- push(@bars,"XIVE_CONTROLLER_BAR_ADDR");
- }
-
- foreach my $bar (@bars)
+ #P9 has a defined memory map for all configurations,
+ #these are the base addresses for group0-chip0.
+ #Each chip in the group has its own 4TB space,
+ #which each group being 32TB of space.
+ my %bars=( "FSP_BASE_ADDR" => 0x0006030100000000,
+ "LPC_BUS_ADDR" => 0x0006030000000000,
+ "XSCOM_BASE_ADDRESS" => 0x000603FC00000000,
+ "PSI_BRIDGE_BASE_ADDR" => 0x0006030203000000,
+ "INTP_BASE_ADDR" => 0x0003FFFF80300000,
+ "PSI_HB_ESB_ADDR" => 0x00060302031C0000,
+ "XIVE_CONTROLLER_BAR_ADDR" => 0x0006030203100000);
+
+ my $groupOffset = 0x200000000000;
+ my $procOffset = 0x40000000000;
+
+ foreach my $bar (keys %bars)
{
- my ($num,$base,$group_offset,$proc_offset,$offset) = split(/,/,
- $targetObj->getAttribute($target,$bar));
- my $i_base = Math::BigInt->new($base);
- my $i_node_offset = Math::BigInt->new($group_offset);
- my $i_proc_offset = Math::BigInt->new($proc_offset);
- my $i_offset = Math::BigInt->new($offset);
-
- my $value="";
- if ($num==0)
- {
- my $b=sprintf("0x%016s",substr((
- $i_base+$i_node_offset*$group+
- $i_proc_offset*$proc)->as_hex(),2));
- $value=$b;
- }
- else
- {
- for (my $i=0;$i<$num;$i++)
- {
- #Note: Hex convert method avoids overflow on 32bit machine
- my $b=sprintf("0x%016s",substr((
- $i_base+$i_node_offset*$group+
- $i_proc_offset*$proc+$i_offset*$i)->as_hex(),2));
- my $sep=",";
- if ($i==$num-1)
- {
- $sep="";
- }
- $value=$value.$b.$sep;
- }
- }
+ my $i_base = Math::BigInt->new($bars{$bar});
+ my $value=sprintf("0x%016s",substr((
+ $i_base+$groupOffset*$group+
+ $procOffset*$proc)->as_hex(),2));
$targetObj->setAttribute($target,$bar,$value);
}
}
OpenPOWER on IntegriCloud