diff options
Diffstat (limited to 'src/test/testcases/testAduMem_withEccItag.py')
-rw-r--r-- | src/test/testcases/testAduMem_withEccItag.py | 51 |
1 files changed, 31 insertions, 20 deletions
diff --git a/src/test/testcases/testAduMem_withEccItag.py b/src/test/testcases/testAduMem_withEccItag.py index 453a82a4..5a04f484 100644 --- a/src/test/testcases/testAduMem_withEccItag.py +++ b/src/test/testcases/testAduMem_withEccItag.py @@ -5,7 +5,7 @@ # # OpenPOWER sbe Project # -# Contributors Listed Below - COPYRIGHT 2016 +# Contributors Listed Below - COPYRIGHT 2016,2017 # [+] International Business Machines Corp. # # @@ -25,34 +25,45 @@ import sys sys.path.append("targets/p9_nimbus/sbeTest" ) import testUtil +import testMemUtil as testMemProcUtil err = False -GETMEMADU_TESTDATA_ECC_ITAG = [0,0,0,0x6, - 0,0,0xA4,0x01, - 0,0,0x0,0xBD, #CoreChipletId/EccByte/Flags -> CacheInhibit/FastMode/Tag/Ecc/AutoIncr/Adu/Proc - 0,0,0,0, # Addr Upper 32 bit - 0x08,0x00,0x00,0x00, # Addr Lower 32 bit - 0x00,0x00,0x00,0x40] # length of data - -GETMEMADU_EXPDATA_ECC_ITAG = [0x00,0x00,0x00,0x50, # length of data - 0xc0,0xde,0xa4,0x01, - 0x0,0x0,0x0,0x0, - 0x00,0x0,0x0,0x03]; - # MAIN Test Run Starts Here... #------------------------------------------------- def main( ): testUtil.runCycles( 10000000 ) - # GetMemAdu with Ecc with Itag test - testUtil.writeUsFifo( GETMEMADU_TESTDATA_ECC_ITAG ) - testUtil.writeEot( ) + #PutMemAdu with ECC + data = os.urandom(80) + data = [ord(c) for c in data] + testMemProcUtil.putmem(0x08000000, data, 0xBD, 0xEF) + data = testMemProcUtil.addItagEcc(data,True, True, 0xEF) - testUtil.readDsEntry ( 20 ) - testUtil.readDsFifo( GETMEMADU_EXPDATA_ECC_ITAG ) - testUtil.runCycles( 10000000 ) - testUtil.readEot( ) + # GetMemAdu test with ECC and Itag + readData = testMemProcUtil.getmem(0x08000000, 80, 0xBD) + if(data == readData): + print ("Success - Write-Read ADU with ECC,Itag") + else: + print data + print readData + raise Exception('data mistmach') + # Partial Write test + readData = testMemProcUtil.getmem(0x08000000, 40, 0xBD) + data = os.urandom(8) + data = [ord(c) for c in data] + testMemProcUtil.putmem(0x08000008, data, 0xBD, 0xEF) + data = testMemProcUtil.addItagEcc(data,True, True, 0xEF) + readBackData = testMemProcUtil.getmem(0x08000000, 40, 0xBD) + sandwichData = readData[:10]+data+readData[len(data)+10:] + if(sandwichData == readBackData): + print ("Success - Write_Part-Read ADU with ECC,Itag") + else: + print readData + print data + print readBackData + print sandwichData + raise Exception('data mistmach') #------------------------------------------------- # Calling all test code #------------------------------------------------- |