# IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/test/testcases/testPSUGetCapabilities.py $ # # OpenPOWER sbe Project # # Contributors Listed Below - COPYRIGHT 2017,2018 # [+] International Business Machines Corp. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. See the License for the specific language governing # permissions and limitations under the License. # # IBM_PROLOG_END_TAG import sys import os import struct sys.path.append("targets/p9_nimbus/sbeTest" ) import testPSUUtil import testRegistry as reg import testUtil import testMemUtil def getsingleword(dataInInt): hex_string = '0'*(8-len(str(hex(dataInInt))[2:])) + str(hex(dataInInt))[2:] return list(struct.unpack('SBE data set execution - Less length setup regObj.ExecuteTestOp( testPSUUtil.simSbeObj, sbe_test_data ) print "\n Poll on Host side for INTR ...\n" #Poll on HOST DoorBell Register for interrupt regObj.pollingOn( testPSUUtil.simSbeObj, host_polling_data, 5 ) #SBE->HOST data set execution regObj.ExecuteTestOp( testPSUUtil.simSbeObj, host_test_data ) #------------------------- # Main Function #------------------------- def main(): # Run Simics initially testUtil.runCycles( 100000000 ) print "\n Execute SBE Test - negative testcase - less size\n" getCapabilities(0x08000000, 30, 0x00020019) print "\n Execute SBE Test - negative testcase - not multiple of PBA\n" getCapabilities(0x08000000, 129, 0x00020019) print "\n Execute SBE Test - positive testcase \n" getCapabilities(0x08000000, 128, 0) testUtil.runCycles( 100000000 ); # read capabilities memory readData = testMemUtil.getmem(0x08000000, 128, 0x02) # ignore first 20 bytes which is a dynamic data readData = readData[28:] # get only valid data readData = readData[:len(capMsg)] if(capMsg == readData): print ("Success - PSU get capabilities") else: print capMsg print readData raise Exception('data mistmach') if __name__ == "__main__": main() if err: print ( "\nTest Suite completed with error(s)" ) #sys.exit(1) else: print ( "\nTest Suite completed with no errors" ) #sys.exit(0);