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