diff options
-rw-r--r-- | src/build/citest/etc/simbuild | 1 | ||||
-rwxr-xr-x | src/build/debug/Hostboot/HwpfAttrOverride.pm | 1 | ||||
-rw-r--r-- | src/build/debug/simics-debug-framework.py | 85 | ||||
-rwxr-xr-x | src/build/mkrules/dist.targets.mk | 1 | ||||
-rwxr-xr-x | src/build/simics/hb-pnor-vpd-preload.pl | 24 | ||||
-rwxr-xr-x | src/build/simics/hb-pnor-vpd-preload.py | 14 | ||||
-rwxr-xr-x | src/build/simics/standalone.simics | 78 | ||||
-rwxr-xr-x | src/build/simics/startup.simics | 57 | ||||
-rwxr-xr-x | src/build/tools/hb | 27 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/simics_AXONE.system.xml | 12 | ||||
-rw-r--r-- | src/usr/vpd/makefile | 3 |
11 files changed, 187 insertions, 116 deletions
diff --git a/src/build/citest/etc/simbuild b/src/build/citest/etc/simbuild new file mode 100644 index 000000000..ef37ea8d1 --- /dev/null +++ b/src/build/citest/etc/simbuild @@ -0,0 +1 @@ +/gsa/ausgsa/projects/s/simics_published_builds//p10/a9436c91b1bea3089be80317b2c5f6569b8fbd6a/simics.tar.gz
\ No newline at end of file diff --git a/src/build/debug/Hostboot/HwpfAttrOverride.pm b/src/build/debug/Hostboot/HwpfAttrOverride.pm index d655d5d28..bd9e28ea0 100755 --- a/src/build/debug/Hostboot/HwpfAttrOverride.pm +++ b/src/build/debug/Hostboot/HwpfAttrOverride.pm @@ -70,6 +70,7 @@ use constant TARGET_TYPE_PHB => 0x00800000; use constant TARGET_TYPE_L4 => 0x00000200; use constant TARGET_TYPE_MC => 0x01000000; use constant TARGET_TYPE_MCC => 0x08000000; +use constant TARGET_TYPE_OMIC => 0x04000000; use constant TARGET_TYPE_OMI => 0x02000000; use constant TARGET_TYPE_OMIC => 0x04000000; use constant TARGET_TYPE_OCMB => 0x10000000; diff --git a/src/build/debug/simics-debug-framework.py b/src/build/debug/simics-debug-framework.py index 1b78f2820..c429828a9 100644 --- a/src/build/debug/simics-debug-framework.py +++ b/src/build/debug/simics-debug-framework.py @@ -90,35 +90,35 @@ class DebugFrameworkIPCMessage: # types into the appropriate simics interface. # class DebugFrameworkProcess: - process = "" # subprocess object. - tool = "" # string - tool module name. - toolOptions = "" # string - tool options - outputToString = None # mode - String output instead of STDOUT. - imgPath = None # Image dir path override. - result = "" # Result string for Usage-mode. - outputFile = None # Output file for results in addition to STDOUT + process = ""; # subprocess object. + tool = ""; # string - tool module name. + toolOptions = ""; # string - tool options + outputToString = None; # mode - String output instead of STDOUT. + imgPath = None; # Image dir path override. + result = ""; # Result string for Usage-mode. + outputFile = None; # Output file for results in addition to STDOUT def __init__(self, tool = "Printk", toolOptions = "", outputToString = None, usage = None, imgPath = None, outputFile = None): # Assign instance 'imgPath' variable. - self.imgPath = imgPath if imgPath else (os.environ['HB_TOOLPATH']+"/") + self.imgPath = imgPath if imgPath else (os.environ['HB_TOOLPATH']+"/"); # Determine sub-process arguments. - process_args = [self.imgPath+"simics-debug-framework.pl"] + process_args = [self.imgPath+"simics-debug-framework.pl"]; if (usage): # Pass --usage if Usage mode selected. - process_args = process_args + [ "--usage" ] - outputToString = True + process_args = process_args + [ "--usage" ]; + outputToString = True; # Spawn sub-process self.process = subprocess.Popen(process_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE) # Update instance variables. - self.tool = tool - self.toolOptions = toolOptions - self.outputToString = outputToString - self.outputFile = open(outputFile, 'w') if outputFile else None + self.tool = tool; + self.toolOptions = toolOptions; + self.outputToString = outputToString; + self.outputFile = open(outputFile, 'w') if outputFile else None; # Read a message from the process pipe. def recvMsg(self): @@ -169,9 +169,9 @@ class DebugFrameworkProcess: addr = int(match.group(1)) size = int(match.group(2)) - data = map(ord, match.group(3).decode("hex")) + data = map(ord, match.group(3).decode("hex")); - conf.system_cmp0.phys_mem.memory[[addr, addr+size-1]] = data + conf.system_cmp0.phys_mem.memory[[addr, addr+size-1]] = data; # Read data from PNOR. # This message has data of the format "0dADDRESS,0dSIZE". @@ -304,22 +304,22 @@ def register_hb_debug_framework_tools(): files = os.listdir(os.environ['HB_TOOLPATH']+"/Hostboot") # Filter out any prefixed with '_' (utility module) or a '.' (hidden file). - pattern = re.compile("[^\._]") + pattern = re.compile("[^\._]"); files = [f for f in files if pattern.match(f)] # Filter out modules written for vbu only - pattern = re.compile("AutoIpl|ContTrace") + pattern = re.compile("AutoIpl|ContTrace"); files = [f for f in files if not pattern.match(f)] # Remove the .pm extension from the tool modules. - files = [re.sub("\.pm","",f) for f in files] + files = [re.sub("\.pm","",f) for f in files]; # Create an entry for each module. for tool in files: # Get usage information for each module, fix text to HTML-like. usage = run_hb_debug_framework(tool, usage = 1) - usage = re.sub("<","<", usage) - usage = re.sub(">",">", usage) + usage = re.sub("<","<", usage); + usage = re.sub(">",">", usage); usage = re.sub("\t"," ",usage) usage = "<pre>"+usage+"</pre>" @@ -372,11 +372,6 @@ def getHRMOR(): result = SIM_get_object(simenv.hb_cpu).hrmor return result -# Fetch the current HRMOR value for inputted cpu obj -def getHrmorCpu(cpu): - # Use the cpu object to get the hrmor value - iface = SIM_get_interface(cpu, "int_register") - return iface.read(iface.get_number("hrmor")) # Read simics memory and return a list of strings such as ['0x0','0x2b','0x8'] # representing the data read from simics. The list returned may be handed @@ -409,20 +404,20 @@ def writeLong(address,datvalue): def writeSimicsMemory(address,data): address = address + getHRMOR() size = len(data) - conf.system_cmp0.phys_mem.memory[[address, address+size-1]] = data + conf.system_cmp0.phys_mem.memory[[address, address+size-1]] = data; # Convert an integer to a byte list <size> bytes long. def intToList(n,size): lst = [] for i in range(size): - b = n & 0xFF + b = n & 0xFF; lst.insert(0,b) n = n >> 8 return lst # Convert a byte list to an integer. def listToInt(l): - i = 0 + i = 0; for c in l: i = (i << 8) | c return i @@ -503,19 +498,14 @@ def magic_instruction_callback(user_arg, cpu, arg): # Disable our handler if someone tells us to if( os.environ.has_key('HB_DISABLE_MAGIC') and (os.environ['HB_DISABLE_MAGIC'] == '1') ): - #print 'Skipping HB magic (disabled)', arg - return - - #Only respond to haps for cpu model types we care about (mambo) - if 'mambo_core' not in cpu.classname: - #print 'Skipping HB magic (Not a Mambo core)', arg + print 'Skipping HB magic (disabled)', arg return # Disable our handler if we aren't inside HB part of IPL # If HB is running then HRMOR==128MB (ignoring high bits) # 0x40000000=1GB, 0x8000000=128MB - if( (getHrmorCpu(cpu) % 0x40000000) != 0x8000000 ): - #print 'Skipping HB magic (outside of HB)', arg + if( (cpu.hrmor % 0x40000000) != 0x8000000 ): + print 'Skipping HB magic (outside of HB)', arg return if arg == 7006: # MAGIC_SHUTDOWN @@ -545,7 +535,7 @@ def magic_instruction_callback(user_arg, cpu, arg): #print 'loading payload from', flash_file, 'to 0x%x' % load_addr #cmd = 'shell "fcp --force -o0 -R %s:PAYLOAD simicsPayload.ecc; ecc --remove --p8 simicsPayload.ecc simicsPayload"; load-file simicsPayload 0x%x' % (flash_file, load_addr) #SIM_run_alone( run_command, cmd ) - print "MAGIC_LOAD_PAYLOAD not implemented\n" + print "MAGIC_LOAD_PAYLOAD not implemented\n"; if arg == 7018: # MAGIC_BREAK_ON_ERROR # Stop the simulation if an env var is set @@ -633,8 +623,8 @@ def magic_instruction_callback(user_arg, cpu, arg): setLvlCommand = "%s"%(comp_str)+".log-level %d"%(log_level) SIM_run_alone(run_command, setLvlCommand ) else : - couldNotFindCommand = "shell \" Unable to find valid object on this system type, neither %s nor %s were found \""%(D1Proc0String, P9Proc0String) - SIM_run_alone(run_command, couldNotFindCommand ) + print "Unable to find valid object on this system type, neither %s nor %s were found"%(D1Proc0String, P9Proc0String) + if arg == 7023: # MAGIC_TOGGLE_OUTPUT if( not os.environ.has_key('ENABLE_HB_SIMICS_LOGS') ): #print("Skipping Hostboot Simics Logging because ENABLE_HB_SIMICS_LOGS is not set") @@ -654,6 +644,7 @@ def magic_instruction_callback(user_arg, cpu, arg): SIM_run_alone(run_command, stopCommand ) if arg == 7055: # MAGIC_CONTINUOUS_TRACE + hb_tracBinaryBuffer = cpu.r4 hb_tracBinaryBufferSz = cpu.r5 per_node = 0x200000000000 #32TB @@ -712,7 +703,8 @@ def magic_instruction_callback(user_arg, cpu, arg): # Figure out if we are running out of the cache or mainstore # Add the HRMOR if we're running from memory - if 'cache' not in mem_object: + if 'cache' not in mem_object and 'l3' not in mem_object: + #print "Did not find cache" hb_tracBinaryBuffer = (hb_tracBinaryBuffer + hb_hrmor - (per_node*node_num)) @@ -737,10 +729,13 @@ def magic_instruction_callback(user_arg, cpu, arg): os.environ['HB_TOOLPATH'],\ tracmerg[node_num]) - cmd3 = "(get-master-proc %d).proc_fsi2host_mbox->regs[95][1] = 0"%(node_num) - + cmd3 = "" + if (simenv.hb_mode == 0): #new mode (Axone + beyond) + cmd3 = "(get-master-proc).reset-fsimbox-reg index=0x104" + else: + #old mode (Cumulus + prior) + cmd3 = "(get-master-proc %d).proc_fsi2host_mbox->regs[95][1] = 0"%(node_num) saveCommand = "%s; %s; %s"%(cmd1,cmd2,cmd3) - #print "Command=%s" % (saveCommand) if (simenv.fileSystemOk == 1): SIM_run_alone(run_command, saveCommand ) diff --git a/src/build/mkrules/dist.targets.mk b/src/build/mkrules/dist.targets.mk index 050bc0d94..45ad3d874 100755 --- a/src/build/mkrules/dist.targets.mk +++ b/src/build/mkrules/dist.targets.mk @@ -278,6 +278,7 @@ simics.tar_CONTENTS = \ img/procmvpd_ven.dat \ img/procmvpd_p9n.dat \ img/procmvpd_p9c.dat \ + img/procmvpd_p9a.dat \ img/cvpd.dat \ img/dvpd.dat \ img/cvpd_cdimm.dat \ diff --git a/src/build/simics/hb-pnor-vpd-preload.pl b/src/build/simics/hb-pnor-vpd-preload.pl index 87314744e..ea19ba461 100755 --- a/src/build/simics/hb-pnor-vpd-preload.pl +++ b/src/build/simics/hb-pnor-vpd-preload.pl @@ -59,6 +59,7 @@ my $mvpdFile = "procmvpd.dat"; my $mvpdFile_ven = "procmvpd_ven.dat"; my $mvpdFile_p9n = "procmvpd_p9n.dat"; my $mvpdFile_p9c = "procmvpd_p9c.dat"; +my $mvpdFile_p9a = "procmvpd_p9a.dat"; my $cvpdFile = "cvpd.dat"; my $cvpdCdimmFile = "cvpd_cdimm.dat"; my $dvpdFile = "dvpd.dat"; @@ -324,6 +325,10 @@ sub createMVPDData { $sourceFile = "$dataPath/$mvpdFile_p9c"; } + elsif( $procChipType eq "p9a") + { + $sourceFile = "$dataPath/$mvpdFile_p9a"; + } else { $sourceFile = "$dataPath/$mvpdFile"; @@ -384,6 +389,10 @@ sub createCVPDData { $numProcs = 4; } + elsif( $procChipType eq "p9a") + { + $numProcs = 2; + } #Centaurs are populated based on populated Processors and special #MCS plugging rules. We can look at $procConfig and $maxProcs @@ -607,8 +616,17 @@ sub getMemoryConfig } elsif( $procChipType eq "p9n") { - #There are no centaurs within a NIMBUS machine, but need to set - #up the mcs array. + #There are no centaurs within a NIMBUS machine, but need to set + #up the mcs array. + if( $mcs < $numMcsPerProc) + { + $mcsArray[$mcs] = 1; + } + } + elsif( $procChipType eq "p9a") + { + #There are no centaurs within an AXONE machine, but need to set + #up the mcs array. if( $mcs < $numMcsPerProc) { $mcsArray[$mcs] = 1; @@ -622,6 +640,4 @@ sub getMemoryConfig } debugMsg( "mcsArray=@mcsArray" ); - - } diff --git a/src/build/simics/hb-pnor-vpd-preload.py b/src/build/simics/hb-pnor-vpd-preload.py index 9dff2c3ae..429ec1a7b 100755 --- a/src/build/simics/hb-pnor-vpd-preload.py +++ b/src/build/simics/hb-pnor-vpd-preload.py @@ -31,8 +31,18 @@ import shlex #------------------------------------------------------------------------------ toolLoc = os.environ.get("HB_TOOLPATH"); thisSys = os.environ.get("HB_MACHINE").upper(); -numProcs = os.environ.get( "NUM_PROCS"); -dimmsPerProc = os.environ.get( "DIMMS_PER_PROC"); +numProcs = "0" +if os.environ.has_key("NUM_PROCS"): + numProcs = os.environ.get("NUM_PROCS"); +elif simenv.num_procs > 0: + numProcs = str(simenv.num_procs) + +dimmsPerProc = "0" +if os.environ.has_key("DIMMS_PER_PROC"): + dimmsPerProc = os.environ.get("DIMMS_PER_PROC"); +elif simenv.num_dimms > 0: + dimmsPerProc = str(simenv.num_dimms) + numCentaurPerProcParm = ""; numCentaurPerProc = "0"; dimmType = "ISDIMM"; diff --git a/src/build/simics/standalone.simics b/src/build/simics/standalone.simics index 76027b8b1..e9b177fae 100755 --- a/src/build/simics/standalone.simics +++ b/src/build/simics/standalone.simics @@ -2,7 +2,7 @@ # $hb_masterproc : name of master proc chip object # $hb_pnor : name of pnor object associated with master proc -($hb_masterproc).proc_fsi2host_mbox->responder_enable=1 +#($hb_masterproc).proc_fsi2host_mbox->responder_enable=1 # Default value is to preload VPD into PNOR image if not defined hb_skip_vpd_preload {$hb_skip_vpd_preload = 0} @@ -11,47 +11,57 @@ if not defined hb_skip_vpd_preload {$hb_skip_vpd_preload = 0} if ($hb_skip_vpd_preload == 0) { # Pass processor chip type. All proc chip types should be the same. + if (get-object-list proc_hb_standalone) { + $procChipType=(get-object-list proc_hb_standalone)[0]->chip_type + python "os.environ['HB_PROC_CHIP_TYPE'] = \""+$procChipType+"\"" + } if (get-object-list p9_proc) { $procChipType=(get-object-list p9_proc)[0]->chip_type python "os.environ['HB_PROC_CHIP_TYPE'] = \""+$procChipType+"\"" } - try { - echo "Preload VPD into PNOR" - run-python-file (lookup-file hbfw/hb-pnor-vpd-preload.py) + try { + run-python-file (lookup-file hbfw/hb-pnor-vpd-preload.py) # Must match pnor layout used (see eyecatch in layout) echo "PNOR layout offset for VPD:" # PNOR eyecatch MVPD echo " - MVPD at 0x79000" - ($hb_pnor).sfc_master_mem.load-file ./sysmvpd.dat.ecc 0x79000 + ($hb_pnor).load-file ./sysmvpd.dat.ecc 0x79000 # PNOR eyecatch DJVPD echo " - DJVPD at 0x31000" - ($hb_pnor).sfc_master_mem.load-file ./sysspd.dat.ecc 0x31000 + ($hb_pnor).load-file ./sysspd.dat.ecc 0x31000 # PNOR eyecatch CVPD echo " - CVPD at 0x109000" - ($hb_pnor).sfc_master_mem.load-file ./sysmemvpd.dat.ecc 0x109000 + ($hb_pnor).load-file ./sysmemvpd.dat.ecc 0x109000 } except { echo "ERROR: Failed to preload VPD into PNOR." } } -# Loop through every processor chip -foreach $cc in (get-object-list p9_proc) { - echo $cc - - #Trigger a power on to cec-chip - #echo "-Trigger power on" - @mp="%s.proc_chip"%simenv.cc - @SIM_get_interface(SIM_get_object(mp),"signal").signal_raise() +# Turn on all processor cec-chips +if ($hb_mode == 1) { + # Nimbus/Cumulus + foreach $cc in (get-object-list p9_proc) { + echo $cc + #Trigger a power on to cec-chip + echo "-Trigger power on" + @mp="%s.proc_chip"%simenv.cc + @SIM_get_interface(SIM_get_object(mp),"signal").signal_raise() + } +} else { + # Axone and Beyond: + foreach $proc in (get-component-list -all proc_pib){ + foreach $cc in (get-object-list component=$proc type=cec-chip -recursive) { + @SIM_get_interface(SIM_get_object(simenv.cc), "signal").signal_raise() + } + } } -#Power on cec-chip on centaurs if present +#Power on cec-chip on memory controllers if present foreach $cp in (get-object-list p9_centaur_cfam -recursive){ echo $cp @cc="%s.membuf_chip"%simenv.cp @ignore=SIM_get_interface(SIM_get_object(cc),"signal").signal_raise() } -system_cmp0.cpu0_0_00_0.enable - ################################### #Enable the IPMI Responder ################################### @@ -60,15 +70,23 @@ try { run-python-file (lookup-file hbfw/ipmi_bt_responder.py) } except { echo "ERROR: Failed to load IPMIresponder." } -################################### -#Enable SBE -################################### -echo "Enable the SBE" -# Set mailbox scratch registers so that the SBE starts in plck mode -# Set Boot Freq valid bit (bit 3) and valid data bit (bit 7) -($hb_masterproc).proc_chip.invoke parallel_store SCOM 0x5003F "31000000_00000000" 64 -($hb_masterproc).proc_chip.invoke parallel_store SCOM 0x5003A "00000000_00000000" 64 -# Set the Nest PLL Bucket ID to 5 in the 4th byte of Mbox Scratch Reg 4 -($hb_masterproc).proc_chip.invoke parallel_store SCOM 0x5003B "00000005_00000000" 64 -($hb_masterproc).proc_chip.invoke parallel_store FSIMBOX 0x01 "80000000" 32 -($hb_masterproc).proc_chip.invoke parallel_store FSIMBOX 0x08 "00080000" 32 +#Cumulus/Nimbus +if ($hb_mode == 1) { + # Setup fabric ID for master proc + ($hb_masterproc_cecchip).invoke parallel_store SCOM 0x1000008 "00000000_00000000" 64 #group=0, chip=0 + + ################################### + #Enable SBE + ################################### + echo "Enable the SBE" + # Set mailbox scratch registers so that the SBE starts in plck mode + # Set Boot Freq valid bit (bit 3) and valid data bit (bit 7) + ($hb_masterproc_cecchip).invoke parallel_store SCOM 0x5003F "31000000_00000000" 64 + ($hb_masterproc_cecchip).invoke parallel_store SCOM 0x5003A "00000000_00000000" 64 + + # Set the Nest PLL Bucket ID to 5 in the 4th byte of Mbox Scratch Reg 4 + ($hb_masterproc_cecchip).invoke parallel_store SCOM 0x5003B "00000005_00000000" 64 + ($hb_masterproc_cecchip).invoke parallel_store FSIMBOX 0x01 "80000000" 32 + ($hb_masterproc_cecchip).invoke parallel_store FSIMBOX 0x08 "00080000" 32 +} + diff --git a/src/build/simics/startup.simics b/src/build/simics/startup.simics index 389cf7db9..f7ed4765d 100755 --- a/src/build/simics/startup.simics +++ b/src/build/simics/startup.simics @@ -1,42 +1,47 @@ + # Initialize HB search paths. +$sandbox_base = (shell "printenv SANDBOXBASE") +$script_dir = $sandbox_base + "/obj/ppc/simu/scripts" +add-directory $script_dir $hb_startup_path = (lookup-file hbfw/startup.simics) $hb_script_location = (python "''.join(map('/'.__add__,\""+$hb_startup_path+"\"[1:].split('/')[0:-1]))") python "os.environ['HB_TOOLPATH'] = \""+$hb_script_location+"\"" -$model = (shell "printenv CEC_MODEL") $machine_name = (shell "printenv MACHINE") -$hb_machine = "unknown" -if ($model == "p9_nimbus") {$hb_machine = "nimbus"} -if ($model == "p9zz_1s2u") {$hb_machine = "zztop"} -if ($model == "p9_cumulus") { - if ($machine_name == "CUMULUS_CDIMM") { $hb_machine = "cumulus_cdimm" } - if ($machine_name != "CUMULUS_CDIMM") { $hb_machine = "cumulus" } -} -if ($model == "p9_axone") {$hb_machine = "axone"} +$hb_machine = $machine_name python "os.environ['HB_MACHINE'] = \""+$hb_machine+"\"" echo "HB_MACHINE is: "+$hb_machine - # Setup some common vars to use across machine types -$hb_masterproc = "" -@simenv.hb_masterproc = quiet_run_command("get-master-proc")[0] +$hb_masterproc = (get-master-proc) echo "Master Proc is: "+$hb_masterproc - +$hb_masterproc_cecchip = (get-master-cec-chip) +echo "Master Proc Cec-Chip is: "+$hb_masterproc_cecchip +#New Simics flow can simply get the string from get-master-pnor command $hb_pnor = "" - -@simenv.hb_pnor = quiet_run_command("get-master-pnor")[0] -try { - @SIM_get_object(simenv.hb_pnor[0]) -} except { - # Default to Nimbus name - foreach $pnor in (get-object-list -all BmcCmp) { - $hb_pnor = ($pnor) +$hb_pnor = (get-master-pnor) + +if ($hb_pnor == NIL) { + try { + @simenv.hb_pnor = quiet_run_command("get-master-pnor")[0] + @SIM_get_object(simenv.hb_pnor[0]) + } except { + # Default to Nimbus name + foreach $pnor in (get-object-list -all BmcCmp) { + $hb_pnor = ($pnor) + } + $hb_pnor = $hb_pnor+".sfc_master_mem" } } - echo "Master PNOR is: "+$hb_pnor +$hb_mode = 1 #Old Mode -- No simics internals changed +$runsim_lookup = (lookup-file -query "%simics%/runsim") +if ($runsim_lookup) { + $hb_mode = 0 #New Mode -- Some simics internal changes +} + # Choose a default core to start with $hb_cpu = "system_cmp0.cpu0_0_00_0" echo "Defaulting to CPU "+$hb_cpu+" for Hostboot tools" @@ -51,8 +56,10 @@ foreach $cc in (get-object-list p9_proc) { # Load HB debug tools. try { run-python-file (lookup-file hbfw/simics-debug-framework.py) +} except { echo "ERROR: Failed to load Simics debug framework (simics-debug-framework.py)" } +try { run-python-file (lookup-file hbfw/hb-simdebug.py) -} except { echo "ERROR: Failed to load Hostboot debug tools." } +} except { echo "ERROR: Failed to load Hostboot debug tools (hb-simdebug.py)" } # Determine security state $hw_security=(shell "echo $SECURITY_HW_POLICY") @@ -84,6 +91,10 @@ foreach $procX in (get-object-list p9_proc) { (($procX)->secure_jumper=$jumperApplied) } +if ($hb_mode == 0) { + run-command-file (lookup-file hbfw/standalone.simics) +} + ########################### WORKAROUNDS #################################### # Setup the mailbox. # for mbox on core 0 use: diff --git a/src/build/tools/hb b/src/build/tools/hb index 22e5ca7ed..214202278 100755 --- a/src/build/tools/hb +++ b/src/build/tools/hb @@ -6,7 +6,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2011,2017 +# Contributors Listed Below - COPYRIGHT 2011,2018 # [+] International Business Machines Corp. # # @@ -355,9 +355,18 @@ hb_simsetup() hb_fipssetup DRIVER=`cat ${PROJECT_ROOT}/src/build/citest/etc/bbuild` + SIMICS_LEVEL=`cat ${PROJECT_ROOT}/src/build/citest/etc/simbuild` needs_machine_variable - execute_in_sandbox "start_simics -no_start -machine ${MACHINE}" "ppc" + if [ "${MACHINE}" == "AXONE" ]; then + echo "mkdir -p ${SANDBOXBASE}/simics" + execute_in_sandbox "mkdir -p ${SANDBOXBASE}/simics" "ppc" + echo "tar ${SIMICS_LEVEL} -C ${SANDBOXBASE}/simics/" + execute_in_sandbox "tar -xf ${SIMICS_LEVEL} -C ${SANDBOXBASE}/simics/" "ppc" + execute_in_sandbox "cd ${SANDBOXBASE}/simics/ && ./INSTALL.sh" "ppc" + else + execute_in_sandbox "start_simics -no_start -machine ${MACHINE}" "ppc" + fi echo "Running workarounds (postsimsetup)." cp ${PROJECT_ROOT}/src/build/citest/etc/workarounds.postsimsetup ${SANDBOXBASE}/src @@ -367,7 +376,6 @@ hb_simsetup() # Put a starter copy of errl to simics directory; refresh w/ "hb errlparser" cd ${SANDBOXBASE}/simics ln -sf ${DRIVER}/obj/x86.nfp/errl/nfp/tool/errl - } hb_startsimics() @@ -411,8 +419,17 @@ hb_startsimics() echo "File DNE ${PROJECT_ROOT}/obj/genfiles/config.h" exit -1 fi - execute_in_sandbox \ - "start_simics -machine ${MACHINE} ${SIMICSOPTIONS} $*" "ppc" + + if [ "${MACHINE}" == "AXONE" ]; then + #export MYDIR=$bb/obj/ppc/hbfw/simics/startup.simics + #then /runsim -m axone -o hb_script_to_run=$MYDIR + export MY_DIR="${SANDBOXBASE}/obj/ppc/simu/scripts/hbfw" + echo "cd ${SANDBOXBASE}/simics/ && ./runsim -m ${MACHINE} -o hb_script_to_run=${MY_DIR}/startup.simics pnor_img=${MY_DIR}/../../../hbfw/img/axone.pnor" + execute_in_sandbox "cd ${SANDBOXBASE}/simics/ && ./runsim -m ${MACHINE} -o hb_script_to_run=${MY_DIR}/startup.simics pnor_img=${MY_DIR}/../../../hbfw/img/axone.pnor" "ppc" + else + execute_in_sandbox \ + "start_simics -machine ${MACHINE} ${SIMICSOPTIONS} $*" "ppc" + fi } hb_rsync_call() diff --git a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml index 19386b554..501eaba60 100644 --- a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml @@ -322,12 +322,12 @@ <attribute> <id>SP_FUNCTIONS</id> <default> - <field><id>baseServices</id><value>1</value></field> - <field><id>fsiMasterInit</id><value>1</value></field> - <field><id>fsiSlaveInit</id><value>1</value></field> - <field><id>hardwareChangeDetection</id><value>1</value></field> + <field><id>baseServices</id><value>0</value></field> + <field><id>fsiMasterInit</id><value>0</value></field> + <field><id>fsiSlaveInit</id><value>0</value></field> + <field><id>hardwareChangeDetection</id><value>0</value></field> <field><id>mailboxEnabled</id><value>0</value></field> - <field><id>powerLineDisturbance</id><value>1</value></field> + <field><id>powerLineDisturbance</id><value>0</value></field> <field><id>reserved</id><value>0</value></field> </default> </attribute> @@ -4020,7 +4020,7 @@ </attribute> <attribute> <id>FAPI_POS</id> - <default>0</default> + <default>1</default> </attribute> <attribute> <id>HUID</id> diff --git a/src/usr/vpd/makefile b/src/usr/vpd/makefile index d5637f4dc..f038bb5a2 100644 --- a/src/usr/vpd/makefile +++ b/src/usr/vpd/makefile @@ -43,9 +43,10 @@ BINARY_FILES += $(IMGDIR)/procmvpd_ven.dat:dd8507bec946283260f82af212ed32feaeb33 BINARY_FILES += $(IMGDIR)/vpo_sysmvpd.dat:f83bbcdd56defb5d155399774c4d721de25a8e96 BINARY_FILES += $(IMGDIR)/vpo_djvpd.dat:eb4dce98f19ebfe77243be1c56d3d0eaa1889d90 -# P9 Module VPD +# P9 (and P9 Prime) Module VPD BINARY_FILES += $(IMGDIR)/procmvpd_p9n.dat:a351f3cd5ba8a81a50c3e5a0dea5fea03e55769d BINARY_FILES += $(IMGDIR)/procmvpd_p9c.dat:939f91a9359b917c525dd7cd4ea80a03b1c08714 +BINARY_FILES += $(IMGDIR)/procmvpd_p9a.dat:939f91a9359b917c525dd7cd4ea80a03b1c08714 # CDIMM Format - download 4k cvpd file BINARY_FILES += $(IMGDIR)/cvpd_cdimm.dat:b12431fbc14304edd31e74405cdcb27560a8e00b |