1*** Settings *** 2Documentation Module to test npcm750 JTAG Master. 3 4Resource ../lib/openbmc_ffdc.robot 5Resource ../lib/connection_client.robot 6 7Suite Setup Suite Setup Execution 8 9*** Variables *** 10${wrong_cpld} 0 11${program_cpld} 0 12 13*** Test Cases *** 14 15Test Read CPLD ID 16 [Documentation] Test Read CPLD ID. 17 [Tags] Test_Read_CPLD_ID 18 19 ${cmd}= Catenate loadsvf -d ${jtag_dev} -s /var/${readid_svf} 20 ${output} ${stderr} ${rc}= BMC Execute Command ${cmd} 21 Set Global Variable ${wrong_cpld} 1 22 Should Not Contain ${stderr} tdo check error 23 Set Global Variable ${wrong_cpld} 0 24 25 26Test Program CPLD 27 [Documentation] Test Program CPLD. 28 [Tags] Test_Program_CPLD 29 30 Pass Execution If ${wrong_cpld}==1 Wrong CPLD chip 31 Pass Execution If ${program_cpld}==0 skip programming cpld 32 33 Program CPLD ${cpld_firmware2} ${firmware_version2} 34 Program CPLD ${cpld_firmware1} ${firmware_version1} 35 36*** Keywords *** 37 38Get File From SFTP Server 39 [Documentation] SCP Get File. 40 [Arguments] ${filename} 41 42 # Description of argument(s): 43 # filename The file to be downloaded. 44 45 Shell Cmd 46 ... scp ${SFTP_USER}@${SFTP_SERVER}:${SFTP_PATH}/${filename} ${filename} 47 48 49Put File To BMC 50 [Documentation] SCP Put File. 51 [Arguments] ${filename} 52 53 # Description of argument(s): 54 # filename The file to be uploaded. 55 56 scp.Put File ${filename} /var/${filename} 57 58Suite Setup Execution 59 [Documentation] Suite Setup Exection. 60 61 ${status}= Run Keyword And Return Status Variable Should Exist 62 ... ${TEST_PROGRAM_CPLD} 63 ${value}= Set Variable if ${status} == ${TRUE} ${TEST_PROGRAM_CPLD} 0 64 Set Global Variable ${program_cpld} ${value} 65 66 ${code_base_dir_path}= Get Code Base Dir Path 67 ${olympus_json}= Evaluate 68 ... json.load(open('${code_base_dir_path}data/oem/nuvoton/olympus.json')) modules=json 69 70 ${cpld_firmware1}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["fw1"]} 71 ${cpld_firmware2}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["fw2"]} 72 ${firmware_version1}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["fw1ver"]} 73 ${firmware_version2}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["fw2ver"]} 74 ${readusercode_svf}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["readusercode"]} 75 ${readid_svf}= Set Variable ${olympus_json["npcm7xx"]["cpld"]["readid"]} 76 ${jtag_dev}= Set Variable ${olympus_json["npcm7xx"]["jtag_dev"]} 77 ${power_cycle_cmd}= Set Variable ${olympus_json["npcm7xx"]["power_cycle_cmd"]} 78 79 Set Suite Variable ${cpld_firmware1} 80 Set Suite Variable ${cpld_firmware2} 81 Set Suite Variable ${firmware_version1} 82 Set Suite Variable ${firmware_version2} 83 Set Suite Variable ${readusercode_svf} 84 Set Suite Variable ${readid_svf} 85 Set Suite Variable ${jtag_dev} 86 Set Suite Variable ${power_cycle_cmd} 87 88 Get File From SFTP Server ${readid_svf} 89 Run KeyWord If ${program_cpld} == 1 Get File From SFTP Server ${readusercode_svf} 90 Run KeyWord If ${program_cpld} == 1 Get File From SFTP Server ${cpld_firmware1} 91 Run KeyWord If ${program_cpld} == 1 Get File From SFTP Server ${cpld_firmware2} 92 93 scp.Open connection ${OPENBMC_HOST} username=${OPENBMC_USERNAME} 94 ... password=${OPENBMC_PASSWORD} 95 Put File To BMC ${readid_svf} 96 Run KeyWord If ${program_cpld} == 1 Put File To BMC ${readusercode_svf} 97 Run KeyWord If ${program_cpld} == 1 Put File To BMC ${cpld_firmware1} 98 Run KeyWord If ${program_cpld} == 1 Put File To BMC ${cpld_firmware2} 99 Sleep 5s 100 scp.Close Connection 101 102Program CPLD 103 [Documentation] Program CPLD. 104 [Arguments] ${svf_file} ${version} 105 106 # Description of argument(s): 107 # svf_file The firmware file. 108 # version The firmware version. 109 110 ${cmd}= Catenate loadsvf -d ${jtag_dev} -s /var/${svf_file} 111 ${output} ${stderr} ${rc}= BMC Execute Command ${cmd} 112 Should Not Contain ${stderr} tdo check error 113 114 # control hot swap controller to power cycle whole system 115 BMC Execute Command ${power_cycle_cmd} ignore_err=1 fork=1 116 117 Sleep 10s 118 Run Keyword Wait For Host To Ping ${OPENBMC_HOST} 5 mins 119 ${cmd}= Catenate loadsvf -d ${jtag_dev} -s /var/${readusercode_svf} 120 ${output} ${stderr} ${rc}= BMC Execute Command ${cmd} 121 Should Contain ${output} ${version} 122