summaryrefslogtreecommitdiffstats
path: root/src/build/citest
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@us.ibm.com>2013-02-18 16:39:45 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-14 19:34:18 -0500
commitd82bc1a19f90818ec436932d8d56d8e43f58fd8b (patch)
tree09407cbe90617085b459ffe809059757d9439a77 /src/build/citest
parentcdb8cf581d746c7e05495236ece738612bc48c91 (diff)
downloadtalos-hostboot-d82bc1a19f90818ec436932d8d56d8e43f58fd8b.tar.gz
talos-hostboot-d82bc1a19f90818ec436932d8d56d8e43f58fd8b.zip
PRD: Implement COMMAND_STOPPED for MDIA
Change-Id: Ia7836ece908e6078e10ef0dad7675e1f270e80d8 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3239 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3563
Diffstat (limited to 'src/build/citest')
-rw-r--r--src/build/citest/etc/patches/mdia-actions.patch204
-rw-r--r--src/build/citest/etc/patches/patchlist.txt5
-rwxr-xr-xsrc/build/citest/etc/workarounds.postsimsetup6
3 files changed, 214 insertions, 1 deletions
diff --git a/src/build/citest/etc/patches/mdia-actions.patch b/src/build/citest/etc/patches/mdia-actions.patch
new file mode 100644
index 000000000..b8e510850
--- /dev/null
+++ b/src/build/citest/etc/patches/mdia-actions.patch
@@ -0,0 +1,204 @@
+--- a/simu/data/cec-chip/centaur.chip
++++ b/simu/data/cec-chip/centaur.chip
+@@ -11,6 +11,7 @@
+ # uy01 859534 yadlapat 10/31/12 Correct p1 include file
+ # 858520 cphan 11/02/12 Add VPO_ACTIONS
+ # uy01 859534 yadlapat 11/02/12 Correct p1 include file
++# 871945 bradleyb 03/01/13 add prd/mdia logic regs
+
+
+ VERSION 1 # .chip file format ID
+@@ -73,4 +74,17 @@ END
+ INTERNALREGS # List all scom registers
+ 0xFF00000F, 64 # Simics workaround
+ END
++
++INTERNALREGS # prd / mdia testing
++ 0xFF010000, 64 # mba0 maint cmd counter
++ 0xFF010001, 64 # mba0 maint cmd error inject
++ 0xFF010002, 64 # mba0 maint cmd to inject
++ # ...
++ 0xFF018000, 64 # mba1 maint cmd counter
++ 0xFF018001, 64 # mba1 maint cmd error inject
++ 0xFF018002, 64 # mba1 maint cmd to inject
++ # ...
++ #0xFF01FFFF, 64
++END
++
+ DONE
+--- a/simu/data/cec-chip/centaur.act
++++ b/simu/data/cec-chip/centaur.act
+@@ -36,6 +36,7 @@
+ # SW176884 bradleyb 12/15/12 re-enable command complete
+ # SW180168 vanlee 01/02/13 Centaur Mem PLL lock action
+ # SW182865 thi 01/18/13 Action file for Centaur SBE
++# SW189255 bradleyb 03/01/13 Add test logic to maint cmds
+ #********************************************************************
+ #
+
+@@ -215,83 +216,115 @@ CAUSE_EFFECT {
+ }
+
+ #******************************************
+-# BEGIN - Maintenance Command Complete
++# BEGIN - Maintenance Commands
+ #******************************************
+
+-#Set command in progress
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete MBA0]
+- WATCH=[REG(0x0301060B)] #MBMCC=0301060B
+- CAUSE: TARGET=[REG(0x0301060B)] OP=[BIT,ON] BIT=[0] # Command Started
+- EFFECT: TARGET=[REG(0x0301060B)] OP=[BIT,OFF] BIT=[0] # Clear Command Valid
+- EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,ON] BIT=[0] # Set Command in progress
++ LABEL=[Abort Maint Cmd - MBA0]
++ WATCH=[REG(0x0301060B)] #mbmcc
++ CAUSE: TARGET=[REG(0x0301060B)] OP=[BIT,ON] BIT=[1] #stop_cmd
++ EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++ EFFECT: TARGET=[REG(0x0301060B)] OP=[BIT,OFF] BIT=[1] #reset stop_cmd
+ }
+
+-# Set Cmd not in progress
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Stopped MBA0]
+- WATCH=[REG(0x0301060B)] #MBMCC=0301060B
+- CAUSE: TARGET=[REG(0x0301060B)] OP=[BIT,ON] BIT=[1] # Initiate stopping cmd
+- EFFECT: TARGET=[REG(0x0301060B)] OP=[BIT,OFF] BIT=[1] # Clear request to stop cmd
+- EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] # Set cmd not in progress
++ LABEL=[Start Maint Cmd - MBA0]
++ WATCH=[REG(0x0301060B)] #mbmcc
++ CAUSE: TARGET=[REG(0x0301060B)] OP=[BIT,ON] BIT=[0] #start_cmd
++ EFFECT: TARGET=[REG(0x0301060B)] OP=[BIT,OFF] BIT=[0] #reset start_cmd
++ #testing counter
++ EFFECT: TARGET=[LOGIC(0xFF010000)] OP=[INCREMENT,MASK] INCVAL=[1] MASK=[LITERAL(64,FFFFFFFF 00000000)]
++ EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,ON] BIT=[0] #cmd_ip
+ }
+
+-# Set maint cmd complete on reaching end address
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete on end addr MBA0]
+- WATCH=[REG(0x0301060C)] #MBMSR=0301060C
+- CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,ON] BIT=[0] # Command Complete
+- CAUSE: TARGET=[REG(0x0301060F)] OP=[BIT,ON] BIT=[10] # Stop on end address
+- EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] # Clear when maint cmd complete
++ # Set logical Centaur register 0xff010001 (first word) to the nth
++ # command that should not reach mbmea. For example:
++ # p8Centaur03.membuf_chip.regwrite "LOGIC" 0xff010001 "00000002" 32
++ LABEL=[Maint Cmd Error Inject - MBA0]
++ WATCH=[REG(0x0301060C)] #mbmsr
++ CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,ON] BIT=[0] #cmd_ip
++ #error inject
++ CAUSE: TARGET=[LOGIC(0xFF010000)] OP=[EQUALTO,BUF,ON] DATA=[LOGIC(0xFF010001)]
++ EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
+ }
+
+-# trigger special attention on maint cmd complete
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete Special Attention MBA0]
+- WATCH=[REG(0x0301060C)] #MBMSR=0301060C
+- CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] # Maint Cmd Complete
+- CAUSE: TARGET=[REG(0x0301060F)] OP=[BIT,ON] BIT=[11] # Enable Special attn
+- EFFECT: TARGET=[REG(0x03010611)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
++ # Set logical Centaur register 0xff010002 to the nth
++ # command that should never finish
++ LABEL=[Maint Cmd Done - MBA0]
++ WATCH=[REG(0x0301060C)] #mbmsr
++ CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,ON] BIT=[0] #cmd_ip
++ #no error inject
++ CAUSE: TARGET=[LOGIC(0xFF010000)] OP=[EQUALTO,BUF,OFF] DATA=[LOGIC(0xFF010001)]
++ CAUSE: TARGET=[LOGIC(0xFF010000)] OP=[EQUALTO,BUF,OFF] DATA=[LOGIC(0xFF010002)]
++ EFFECT: TARGET=[REG(0x0301060D)] OP=[EQUALTO,BUF] DATA=[REG(0x0301060E)] #mbmaca
++ EFFECT: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
+ }
+
+-#Set command in progress
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete MBA1]
+- WATCH=[REG(0x03010E0B)] #MBMCC=03010E0B
+- CAUSE: TARGET=[REG(0x03010E0B)] OP=[BIT,ON] BIT=[0] # Command Started
+- EFFECT: TARGET=[REG(0x03010E0B)] OP=[BIT,OFF] BIT=[0] # Clear Command Valid
+- EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,ON] BIT=[0] # Set Command in progress
++ LABEL=[Maint Cmd Complete Special Attention - MBA0]
++ WATCH=[REG(0x0301060C)] #mbmsr
++ CAUSE: TARGET=[REG(0x0301060C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++ CAUSE: TARGET=[REG(0x0301060F)] OP=[BIT,ON] BIT=[11] #enabled
++ EFFECT: TARGET=[REG(0x03010611)] OP=[BIT,ON] BIT=[0] #set special attn bit
++ EFFECT: TARGET=[REG(0x03010611)] OP=[BIT,ON] BIT=[8] #set wat_debug_attn
+ }
+
+-# Set Cmd not in progress
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Stopped MBA1]
+- WATCH=[REG(0x03010E0B)] #MBMCC=03010E0B
+- CAUSE: TARGET=[REG(0x03010E0B)] OP=[BIT,ON] BIT=[1] # Initiate stopping cmd
+- EFFECT: TARGET=[REG(0x03010E0B)] OP=[BIT,OFF] BIT=[1] # Clear request to stop cmd
+- EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] # Set cmd not in progress
++ LABEL=[Abort Maint Cmd - MBA1]
++ WATCH=[REG(0x03010E0B)] #mbmcc
++ CAUSE: TARGET=[REG(0x03010E0B)] OP=[BIT,ON] BIT=[1] #stop_cmd
++ EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++ EFFECT: TARGET=[REG(0x03010E0B)] OP=[BIT,OFF] BIT=[1] #reset stop_cmd
+ }
+
+-# Set maint cmd complete on reaching end address
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete on end addr MBA1]
+- WATCH=[REG(0x03010E0C)] #MBMSR=03010E0C
+- CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,ON] BIT=[0] # Command Complete
+- CAUSE: TARGET=[REG(0x03010E0F)] OP=[BIT,ON] BIT=[10] # Stop on end address
+- EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] # Clear when maint cmd complete
++ LABEL=[Start Maint Cmd - MBA1]
++ WATCH=[REG(0x03010E0B)] #mbmcc
++ CAUSE: TARGET=[REG(0x03010E0B)] OP=[BIT,ON] BIT=[0] #start_cmd
++ EFFECT: TARGET=[REG(0x03010E0B)] OP=[BIT,OFF] BIT=[0] #reset start_cmd
++ #testing counter
++ EFFECT: TARGET=[LOGIC(0xFF018000)] OP=[INCREMENT,MASK] INCVAL=[1] MASK=[LITERAL(64,FFFFFFFF 00000000)]
++ EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,ON] BIT=[0] #cmd_ip
+ }
+
+-# trigger special attention on maint cmd complete
+ CAUSE_EFFECT {
+- LABEL=[Maint Cmd Complete Special Attention MBA1]
+- WATCH=[REG(0x03010E0C)] #MBMSR=03010E0C
+- CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] # Maint Cmd Complete
+- CAUSE: TARGET=[REG(0x03010E0F)] OP=[BIT,ON] BIT=[11] # Enable Special attn
+- EFFECT: TARGET=[REG(0x03010E11)] OP=[BIT,ON] BIT=[0] # Set Special attn bit
++ # Set logical Centaur register 0xff018001 (first word) to the nth
++ # command that should not reach mbmea. For example:
++ # p8Centaur03.membuf_chip.regwrite "LOGIC" 0xff018001 "00000002" 32
++ LABEL=[Maint Cmd Error Inject - MBA1]
++ WATCH=[REG(0x03010E0C)] #mbmsr
++ CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,ON] BIT=[0] #cmd_ip
++ #error inject
++ CAUSE: TARGET=[LOGIC(0xFF018000)] OP=[EQUALTO,BUF,ON] DATA=[LOGIC(0xFF018001)]
++ EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++}
++
++CAUSE_EFFECT {
++ # Set logical Centaur register 0xff018002 to the nth
++ # command that should never finish
++ LABEL=[Maint Cmd Done - MBA1]
++ WATCH=[REG(0x03010E0C)] #mbmsr
++ CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,ON] BIT=[0] #cmd_ip
++ #no error inject
++ CAUSE: TARGET=[LOGIC(0xFF018000)] OP=[EQUALTO,BUF,OFF] DATA=[LOGIC(0xFF018001)]
++ CAUSE: TARGET=[LOGIC(0xFF018000)] OP=[EQUALTO,BUF,OFF] DATA=[LOGIC(0xFF018002)]
++ EFFECT: TARGET=[REG(0x03010E0D)] OP=[EQUALTO,BUF] DATA=[REG(0x03010E0E)] #mbmaca
++ EFFECT: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++}
++
++CAUSE_EFFECT {
++ LABEL=[Maint Cmd Complete Special Attention - MBA1]
++ WATCH=[REG(0x03010E0C)] #mbmsr
++ CAUSE: TARGET=[REG(0x03010E0C)] OP=[BIT,OFF] BIT=[0] #cmd_nip
++ CAUSE: TARGET=[REG(0x03010E0F)] OP=[BIT,ON] BIT=[11] #enabled
++ EFFECT: TARGET=[REG(0x03010E11)] OP=[BIT,ON] BIT=[0] #set special attn bit
++ EFFECT: TARGET=[REG(0x03010E11)] OP=[BIT,ON] BIT=[8] #set wat_debug_attn
+ }
+
+ #***************************************
+-# END - Maintenance Command Complete
++# END - Maintenance Commands
+ #***************************************
+
+ #***************************************
diff --git a/src/build/citest/etc/patches/patchlist.txt b/src/build/citest/etc/patches/patchlist.txt
index e0cbde4d1..05edc5256 100644
--- a/src/build/citest/etc/patches/patchlist.txt
+++ b/src/build/citest/etc/patches/patchlist.txt
@@ -5,3 +5,8 @@ Brief description of the problem or reason for patch
-Files: list of files
-Coreq: list of associated changes, e.g. workarounds.presimsetup
+Improve maint cmd actions.
+-RTC: 66137
+-CMVC: 871945
+-Files: mdia-actions.patch
+-Coreq: None
diff --git a/src/build/citest/etc/workarounds.postsimsetup b/src/build/citest/etc/workarounds.postsimsetup
index beb1983d2..d76d9abd3 100755
--- a/src/build/citest/etc/workarounds.postsimsetup
+++ b/src/build/citest/etc/workarounds.postsimsetup
@@ -25,4 +25,8 @@
## Workarounds that are run after start_simics is executed for the first time
## to setup the sandbox
##
-
+mkdir -p $sb/simu/data/cec-chip
+echo "+++ Updating actions for mdia"
+cp $BACKING_BUILD/src/simu/data/cec-chip/centaur.act $sb/simu/data/cec-chip
+cp $BACKING_BUILD/src/simu/data/cec-chip/centaur.chip $sb/simu/data/cec-chip
+patch -p1 -d $sb < $HOSTBOOTROOT/src/build/citest/etc/patches/mdia-actions.patch
OpenPOWER on IntegriCloud