Skip to content

Commit

Permalink
Update memory address of ADU testcase
Browse files Browse the repository at this point in the history
Change-Id: Ibe9a7bde7e0471309792ac19b3e3aa0dd15e418f
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/61053
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
(cherry picked from commit 8487bc87a8908420b689b2f13688000240689154)
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/61646
  • Loading branch information
Shakeebbk authored and sgupta2m committed Jun 29, 2018
1 parent a682d4b commit 8c276e4
Showing 1 changed file with 64 additions and 62 deletions.
126 changes: 64 additions & 62 deletions src/test/testcases/testUnsecureMemRegions.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
import testMemUtil as testMemProcUtil
err = False

MEM_WINDOWS_BASE_ADDRESS = 0x08000000 + 0x2000

# MAIN Test Run Starts Here...
#-------------------------------------------------
def main():
Expand All @@ -41,52 +43,52 @@ def main():

# Test case 1: open RO mem region - success
testcase = 1
testMemProcUtil.setUnsecureMemRegion(0x07000000, 1024, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 1024, 0x0111, 0)
# Test case 2: open RW mem region - success
# This region is kept open for mem testcases - will be closed by
# testUnsecureMemRegionsClose.py
testcase = 2
testMemProcUtil.setUnsecureMemRegion(0x08000000, 0x2000, 0x0112, 0)
# Test case 3: close RO mem region - success
testcase = 3
testMemProcUtil.setUnsecureMemRegion(0x07000000, 1024, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 1024, 0x0120, 0)

# Test case 4: open 9th window - failure
testcase = 4
# 2
testMemProcUtil.setUnsecureMemRegion(0x07000000, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 0x10, 0x0111, 0)
# 3
testMemProcUtil.setUnsecureMemRegion(0x07000010, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x10, 0x10, 0x0111, 0)
# 4
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0111, 0)
# 5
testMemProcUtil.setUnsecureMemRegion(0x07000030, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x30, 0x10, 0x0111, 0)
# 6
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x10, 0x0111, 0)
# 7
testMemProcUtil.setUnsecureMemRegion(0x07000050, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x50, 0x10, 0x0111, 0)
# 8
testMemProcUtil.setUnsecureMemRegion(0x07000060, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x10, 0x0111, 0)
# 9 - failed - response expected -
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MAXIMUM_MEM_REGION_EXCEEDED = 0x16
testMemProcUtil.setUnsecureMemRegion(0x07000070, 0x10, 0x0111, 0x00030016)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x70, 0x10, 0x0111, 0x00030016)
# Test case 5: open existing window - failure
testcase = 5
# response expected
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MEM_REGION_AMEND_ATTEMPTED = 0x17
testMemProcUtil.setUnsecureMemRegion(0x07000060, 0x10, 0x0111, 0x00030017)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x10, 0x0111, 0x00030017)
# Test case 6: close non-existing window - failure
testcase = 6
# response expected
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MEM_REGION_NOT_FOUND = 0x15
testMemProcUtil.setUnsecureMemRegion(0x07000070, 0x10, 0x0120, 0x00030015)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x70, 0x10, 0x0120, 0x00030015)
# Test case 7: remove a window in between - adding it again should pass
testcase = 7
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0111, 0)
# Test case 8: remove all and open again to validate removal
testcase = 8
# 1
Expand All @@ -96,134 +98,134 @@ def main():
# failed - response expected -
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MEM_REGION_AMEND_ATTEMPTED = 0x17
testMemProcUtil.setUnsecureMemRegion(0x06FFFFF0, 0x20, 0x0111, 0x00030017)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS-0x10, 0x20, 0x0111, 0x00030017)
# 2
testMemProcUtil.setUnsecureMemRegion(0x07000000, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 0x10, 0x0120, 0)
# 3
testMemProcUtil.setUnsecureMemRegion(0x07000010, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x10, 0x10, 0x0120, 0)
# 4
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0120, 0)
# 5
testMemProcUtil.setUnsecureMemRegion(0x07000030, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x30, 0x10, 0x0120, 0)
# 6
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x10, 0x0120, 0)
# 7
testMemProcUtil.setUnsecureMemRegion(0x07000050, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x50, 0x10, 0x0120, 0)
# 8
testMemProcUtil.setUnsecureMemRegion(0x07000060, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x10, 0x0120, 0)
# 1
testMemProcUtil.setUnsecureMemRegion(0x08000000, 0x2000, 0x0112, 0)
# 2
testMemProcUtil.setUnsecureMemRegion(0x07000000, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 0x10, 0x0111, 0)
testcase = "8: new window subsuming exsiting windows"
# failed - response expected -
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MEM_REGION_AMEND_ATTEMPTED = 0x17
testMemProcUtil.setUnsecureMemRegion(0x06FFFFF0, 0x30, 0x0111, 0x00030017)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS-0x10, 0x30, 0x0111, 0x00030017)
testcase = "8"
# 3
testMemProcUtil.setUnsecureMemRegion(0x07000010, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x10, 0x10, 0x0111, 0)
# 4
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0111, 0)
# 5
testMemProcUtil.setUnsecureMemRegion(0x07000030, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x30, 0x10, 0x0111, 0)
# 6
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x10, 0x0111, 0)
# 7
testMemProcUtil.setUnsecureMemRegion(0x07000050, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x50, 0x10, 0x0111, 0)
# 8
testMemProcUtil.setUnsecureMemRegion(0x07000060, 0x10, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x10, 0x0111, 0)
# 9 - failed - response expected -
# SBE_PRI_USER_ERROR = 0x03
# SBE_SEC_MAXIMUM_MEM_REGION_EXCEEDED = 0x16
testMemProcUtil.setUnsecureMemRegion(0x07000070, 0x10, 0x0111, 0x00030016)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x70, 0x10, 0x0111, 0x00030016)

# Cleanup - close all the windows open except the one for mem testcases
# 2
testMemProcUtil.setUnsecureMemRegion(0x07000000, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS, 0x10, 0x0120, 0)
# 3
testMemProcUtil.setUnsecureMemRegion(0x07000010, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x10, 0x10, 0x0120, 0)
# 4
testMemProcUtil.setUnsecureMemRegion(0x07000020, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x20, 0x10, 0x0120, 0)
# 5
testMemProcUtil.setUnsecureMemRegion(0x07000030, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x30, 0x10, 0x0120, 0)
# 6
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x10, 0x0120, 0)
# 7
testMemProcUtil.setUnsecureMemRegion(0x07000050, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x50, 0x10, 0x0120, 0)
# 8
testMemProcUtil.setUnsecureMemRegion(0x07000060, 0x10, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x10, 0x0120, 0)

# Test case 9: access memory in unopened window - ADU
testcase = 9
testMemProcUtil.getmem_failure(0x07000060, 0x40, 0xA5, 0x00050014)
testMemProcUtil.getmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x40, 0xA5, 0x00050014)
# Test case 10: access memory in unopened window - PBA
testcase = 10
testMemProcUtil.getmem_failure(0x07000080, 0x80, 0x02, 0x00050014)
testMemProcUtil.getmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x80, 0x80, 0x02, 0x00050014)

# Test case 11: access memory spanning across two windows
testcase = 11
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x40, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x40, 0x0111, 0)
testUtil.runCycles(100000)
testMemProcUtil.setUnsecureMemRegion(0x07000080, 0x40, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 0x40, 0x0111, 0)
testUtil.runCycles(100000)
testMemProcUtil.setUnsecureMemRegion(0x070000C0, 0x40, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0xC0, 0x40, 0x0111, 0)
testUtil.runCycles(1000000)
# start and end on edges
testMemProcUtil.getmem(0x07000040, 0x80, 0xA5)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x80, 0xA5)
testUtil.runCycles(100000)
# start in between and end on edge
testMemProcUtil.getmem(0x07000060, 0x60, 0xA5)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x60, 0xA5)
testUtil.runCycles(100000)
# start on edge and end in between
testMemProcUtil.getmem(0x07000040, 0x60, 0xA5)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x60, 0xA5)
testUtil.runCycles(100000)
# start on edge and end in between - 3rd window
testMemProcUtil.getmem(0x07000040, 0xA0, 0xA5)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x40, 0xA0, 0xA5)
testUtil.runCycles(100000)

testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x40, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x40, 0x0120, 0)
testUtil.runCycles(100000)
testMemProcUtil.setUnsecureMemRegion(0x07000080, 0x40, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 0x40, 0x0120, 0)
testUtil.runCycles(100000)
testMemProcUtil.setUnsecureMemRegion(0x070000C0, 0x40, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0xC0, 0x40, 0x0120, 0)
testUtil.runCycles(100000)

# Test case 12: read access in read-write window - ADU
testcase = 12
testMemProcUtil.setUnsecureMemRegion(0x07000080, 128, 0x0112, 0)
testMemProcUtil.getmem(0x07000080, 128, 0xA5)
testMemProcUtil.setUnsecureMemRegion(0x07000080, 128, 0x0120, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 128, 0x0112, 0)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x80, 128, 0xA5)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 128, 0x0120, 0)
# Test case 13: read access in read-write window - PBA
testcase = 13
testMemProcUtil.getmem(0x08000080, 128, 0x02)

# Test case 14: write access in read-only window - ADU
testcase = 14
testMemProcUtil.setUnsecureMemRegion(0x07000080, 128, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 128, 0x0111, 0)
data = os.urandom(8)
data = [ord(c) for c in data]
testMemProcUtil.putmem_failure(0x07000080, data, 0xA5, 0x00050014)
testMemProcUtil.putmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x80, data, 0xA5, 0x00050014)
# Test case 15: write access in read-only window - PBA
testcase = 15
data = os.urandom(128)
data = [ord(c) for c in data]
testMemProcUtil.putmem_failure(0x07000080, data, 0x02, 0x00050014)
testMemProcUtil.setUnsecureMemRegion(0x07000080, 128, 0x0120, 0)
testMemProcUtil.putmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x80, data, 0x02, 0x00050014)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x80, 128, 0x0120, 0)
# Test case 16: access memory for which a partial window is open
testcase = 16
testUtil.runCycles(1000000)
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x30, 0x0111, 0)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x30, 0x0111, 0)
# start in between and end outside
testUtil.runCycles(1000000)
testMemProcUtil.getmem_failure(0x07000060, 0x40, 0xA5, 0x00050014)
testMemProcUtil.getmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x60, 0x40, 0xA5, 0x00050014)
# start on edge and end outside
testUtil.runCycles(1000000)
testMemProcUtil.getmem_failure(0x07000040, 0x40, 0xA5, 0x00050014)
testMemProcUtil.getmem_failure(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x40, 0xA5, 0x00050014)
# start and end within
testUtil.runCycles(1000000)
testMemProcUtil.getmem(0x07000050, 0x10, 0xA5)
testMemProcUtil.setUnsecureMemRegion(0x07000040, 0x30, 0x0120, 0)
testMemProcUtil.getmem(MEM_WINDOWS_BASE_ADDRESS+0x50, 0x10, 0xA5)
testMemProcUtil.setUnsecureMemRegion(MEM_WINDOWS_BASE_ADDRESS+0x40, 0x30, 0x0120, 0)
except:
print "FAILED Test Case:"+str(testcase)
raise Exception('Failure')
Expand Down

0 comments on commit 8c276e4

Please sign in to comment.