From bb004ba55073aaa8bc216730b29d51925efeb099 Mon Sep 17 00:00:00 2001 From: Prachi Gupta Date: Mon, 22 Jan 2018 14:55:12 -0600 Subject: 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 Reviewed-by: William G. Hoffa Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- src/usr/targeting/common/genHwsvMrwXml.pl | 47 +----------- src/usr/targeting/common/processMrw.pl | 86 +++++----------------- .../targeting/common/xmltohb/attribute_types.xml | 83 +-------------------- .../common/xmltohb/simics_CUMULUS.system.xml | 83 +-------------------- .../common/xmltohb/simics_NIMBUS.system.xml | 23 +----- src/usr/targeting/common/xmltohb/target_types.xml | 21 ------ .../targeting/common/xmltohb/vbu_NIMBUS.system.xml | 23 +----- 7 files changed, 25 insertions(+), 341 deletions(-) (limited to 'src/usr/targeting/common') diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl index 543cd81f0..da10c4010 100755 --- a/src/usr/targeting/common/genHwsvMrwXml.pl +++ b/src/usr/targeting/common/genHwsvMrwXml.pl @@ -6,7 +6,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2013,2017 +# Contributors Listed Below - COPYRIGHT 2013,2018 # [+] International Business Machines Corp. # # @@ -3898,51 +3898,6 @@ sub generate_proc printf( " FSP_BASE_ADDR\n" ); printf( " 0x%016X\n", $fspBase ); printf( " \n" ); - - - #VAS Hypervisor Window Contexts address - printf( " VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006013000000000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - #VAS User Window Contexts address - printf( " VAS_USER_WINDOW_CONTEXT_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006013100000000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - #Nvidia Link - NPU Priviledged address - printf( " NVIDIA_NPU_PRIVILEGED_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006030200000000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - #Nvidia Link - NPU User Regs address - printf( " NVIDIA_NPU_USER_REG_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006030201000000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - #Nvidia Link - Phy 0 Regs address - printf( " NVIDIA_PHY0_REG_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006030201200000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - #Nvidia Link - Phy 1 Regs address - printf( " NVIDIA_PHY1_REG_ADDR\n" ); - printf( " 0x%016X\n", - 0x0006030201400000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - - - #NX - RNG space address - printf( " NX_RNG_ADDR\n" ); - printf( " 0x%016X\n", - 0x00060302031D0000 + $nodeSize*$lognode + $chipSize*$logid ); - printf( " \n" ); - print " \n\n"; # end PHYP Memory Map 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); } } diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml index d84652cfc..9ee78379e 100755 --- a/src/usr/targeting/common/xmltohb/attribute_types.xml +++ b/src/usr/targeting/common/xmltohb/attribute_types.xml @@ -1627,6 +1627,7 @@ 0x0003FFE000000000 + @@ -3829,30 +3830,6 @@ - - VAS - Hypervisor Window Contexts address - MMIO consumed by PHYP - - VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR - non-volatile - - - - - - - - VAS - User Window Context address - MMIO consumed by PHYP - - VAS_USER_WINDOW_CONTEXT_ADDR - non-volatile - - - - - - LPC Bus address - MMIO consumed by PHYP LPC_BUS_ADDR @@ -3864,54 +3841,6 @@ - - Nvidia Link - NPU Privileged Regs address - MMIO consumed by PHYP - - NVIDIA_NPU_PRIVILEGED_ADDR - non-volatile - - - - - - - - Nvidia Link - NPU User Regs address - MMIO consumed by PHYP - - NVIDIA_NPU_USER_REG_ADDR - non-volatile - - - - - - - - Nvidia Link - Phy 0 Regs address - MMIO consumed by PHYP - - NVIDIA_PHY0_REG_ADDR - non-volatile - - - - - - - - Nvidia Link - Phy 1 Regs address - MMIO consumed by PHYP - - NVIDIA_PHY1_REG_ADDR - non-volatile - - - - - - XIVE - Controller Bar address MMIO consumed by PHYP @@ -3950,16 +3879,6 @@ - - NX - RNG space - MMIO consumed by PHYP - NX_RNG_ADDR - non-volatile - - - - - - If not loading PHYP or OPAL, then use this to diff --git a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml index 723c249f4..b3e52ad3d 100644 --- a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml @@ -5,7 +5,7 @@ - + @@ -936,75 +936,18 @@ L3_CACHE_SIZE 10240 - - MRU_ID 0x00010000 - - - - - - - - - - NVIDIA_NPU_PRIVILEGED_ADDR - 0x0006030200000000 - - - NVIDIA_NPU_USER_REG_ADDR - 0x0006030201000000 - - - NVIDIA_PHY0_REG_ADDR - 0x0006030201200000 - - - NVIDIA_PHY1_REG_ADDR - 0x0006030201400000 - - - NX_RNG_ADDR - 0x00060302031d0000 - - ORDINAL_ID 0 - - - - - - PHYS_PATH physical:sys-0/node-0/proc-0 - - - - - - - - - - - - - - - - - - - - POSITION 0 @@ -1018,7 +961,6 @@ supportsXscom1 - PROC_EFF_FABRIC_CHIP_ID 0 @@ -1027,25 +969,10 @@ PROC_EFF_FABRIC_GROUP_ID 0 - - - - PROC_MASTER_TYPE ACTING_MASTER - - - - - - - - - - - PROC_R_DISTLOSS_VCS_UOHM 0x640 @@ -1127,14 +1054,6 @@ TYPE PROC - - VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR - 0x0006013000000000 - - - VAS_USER_WINDOW_CONTEXT_ADDR - 0x0006013100000000 - diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml index 2b20ab82a..b38ffa5bb 100644 --- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml @@ -5,7 +5,7 @@ - + @@ -5524,24 +5524,6 @@ INTP_BASE_ADDR 0x0003FFFF80100000 - VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR - 0x0006053000000000 - - VAS_USER_WINDOW_CONTEXT_ADDR - 0x0006053100000000 - - NVIDIA_NPU_PRIVILEGED_ADDR - 0x0006070200000000 - - NVIDIA_NPU_USER_REG_ADDR - 0x0006070201000000 - - NVIDIA_PHY0_REG_ADDR - 0x0006070201200000 - - NVIDIA_PHY1_REG_ADDR - 0x0006070201400000 - XIVE_CONTROLLER_BAR_ADDR 0x0006070201100000 @@ -5551,9 +5533,6 @@ - NX_RNG_ADDR - 0x00060702031D0000 - diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml index 9c8a243c4..15800bfa3 100644 --- a/src/usr/targeting/common/xmltohb/target_types.xml +++ b/src/usr/targeting/common/xmltohb/target_types.xml @@ -1078,24 +1078,6 @@ IMT_BAR_SIZE - - 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 - XIVE_CONTROLLER_BAR_ADDR @@ -1105,9 +1087,6 @@ XIVE_THREAD_MGMT1_BAR_ADDR - - NX_RNG_ADDR - XSCOM_BASE_ADDRESS diff --git a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml index 7d276479a..c46e00cf8 100644 --- a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml +++ b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml @@ -5,7 +5,7 @@ - + @@ -5442,24 +5442,6 @@ INTP_BASE_ADDR 0x0003FFFF80100000 - VAS_HYPERVISOR_WINDOW_CONTEXT_ADDR - 0x0006053000000000 - - VAS_USER_WINDOW_CONTEXT_ADDR - 0x0006053100000000 - - NVIDIA_NPU_PRIVILEGED_ADDR - 0x0006070200000000 - - NVIDIA_NPU_USER_REG_ADDR - 0x0006070201000000 - - NVIDIA_PHY0_REG_ADDR - 0x0006070201200000 - - NVIDIA_PHY1_REG_ADDR - 0x0006070201400000 - XIVE_CONTROLLER_BAR_ADDR 0x0006070201100000 @@ -5469,9 +5451,6 @@ - NX_RNG_ADDR - 0x00060702031D0000 - XSCOM_BASE_ADDRESS 0x000607FC00000000 -- cgit v1.2.1