summaryrefslogtreecommitdiff
path: root/test/py/tests/test_zynqmp_rpu.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/py/tests/test_zynqmp_rpu.py')
-rw-r--r--test/py/tests/test_zynqmp_rpu.py100
1 files changed, 50 insertions, 50 deletions
diff --git a/test/py/tests/test_zynqmp_rpu.py b/test/py/tests/test_zynqmp_rpu.py
index 22f687dd6d3..cda8c9203b7 100644
--- a/test/py/tests/test_zynqmp_rpu.py
+++ b/test/py/tests/test_zynqmp_rpu.py
@@ -33,8 +33,8 @@ env__zynqmp_rpu_apps = {
"""
# Get rpu apps params from env
-def get_rpu_apps_env(u_boot_console):
- rpu_apps = u_boot_console.config.env.get('env__zynqmp_rpu_apps', False)
+def get_rpu_apps_env(ubman):
+ rpu_apps = ubman.config.env.get('env__zynqmp_rpu_apps', False)
if not rpu_apps:
pytest.skip('ZynqMP RPU application info not defined!')
@@ -65,29 +65,29 @@ def get_rpu_apps_env(u_boot_console):
return apps, procs, cpu_nums, addrs, outputs, tftp_addrs
# Check return code
-def ret_code(u_boot_console):
- return u_boot_console.run_command('echo $?')
+def ret_code(ubman):
+ return ubman.run_command('echo $?')
# Initialize tcm
-def tcminit(u_boot_console, rpu_mode):
- output = u_boot_console.run_command(f'zynqmp tcminit {rpu_mode}')
+def tcminit(ubman, rpu_mode):
+ output = ubman.run_command(f'zynqmp tcminit {rpu_mode}')
assert 'Initializing TCM overwrites TCM content' in output
- return ret_code(u_boot_console)
+ return ret_code(ubman)
# Load application in DDR
-def load_app_ddr(u_boot_console, tftp_addr, app):
- output = u_boot_console.run_command('tftpboot %x %s' % (tftp_addr, app))
+def load_app_ddr(ubman, tftp_addr, app):
+ output = ubman.run_command('tftpboot %x %s' % (tftp_addr, app))
assert 'TIMEOUT' not in output
assert 'Bytes transferred = ' in output
# Load elf
- u_boot_console.run_command('bootelf -p %x' % tftp_addr)
- assert ret_code(u_boot_console).endswith('0')
+ ubman.run_command('bootelf -p %x' % tftp_addr)
+ assert ret_code(ubman).endswith('0')
# Disable cpus
-def disable_cpus(u_boot_console, cpu_nums):
+def disable_cpus(ubman, cpu_nums):
for num in cpu_nums:
- u_boot_console.run_command(f'cpu {num} disable')
+ ubman.run_command(f'cpu {num} disable')
# Get random RPU mode between string and integer
def get_rpu_mode(rpu_mode):
@@ -97,47 +97,47 @@ def get_rpu_mode(rpu_mode):
return random.choice(['split', 1])
# Load apps on RPU cores
-def rpu_apps_load(u_boot_console, rpu_mode):
+def rpu_apps_load(ubman, rpu_mode):
apps, procs, cpu_nums, addrs, outputs, tftp_addrs = get_rpu_apps_env(
- u_boot_console)
- test_net.test_net_dhcp(u_boot_console)
+ ubman)
+ test_net.test_net_dhcp(ubman)
if not test_net.net_set_up:
- test_net.test_net_setup_static(u_boot_console)
+ test_net.test_net_setup_static(ubman)
try:
- assert tcminit(u_boot_console, get_rpu_mode(rpu_mode)).endswith('0')
+ assert tcminit(ubman, get_rpu_mode(rpu_mode)).endswith('0')
for i in range(len(apps)):
if rpu_mode == 'lockstep' and procs[i] != 'rpu0':
continue
- load_app_ddr(u_boot_console, tftp_addrs[i], apps[i])
+ load_app_ddr(ubman, tftp_addrs[i], apps[i])
rel_addr = hex(int(addrs[i] + 0x3C))
# Release cpu at app load address
cpu_num = cpu_nums[i]
cmd = f'cpu {cpu_num} release {rel_addr} {rpu_mode}'
- output = u_boot_console.run_command(cmd)
+ output = ubman.run_command(cmd)
exp_op = f'Using TCM jump trampoline for address {rel_addr}'
assert exp_op in output
assert f'R5 {rpu_mode} mode' in output
- u_boot_console.wait_for(outputs[i])
- assert ret_code(u_boot_console).endswith('0')
+ ubman.wait_for(outputs[i])
+ assert ret_code(ubman).endswith('0')
finally:
- disable_cpus(u_boot_console, cpu_nums)
+ disable_cpus(ubman, cpu_nums)
@pytest.mark.buildconfigspec('cmd_zynqmp')
-def test_zynqmp_rpu_app_load_split(u_boot_console):
- rpu_apps_load(u_boot_console, 'split')
+def test_zynqmp_rpu_app_load_split(ubman):
+ rpu_apps_load(ubman, 'split')
@pytest.mark.buildconfigspec('cmd_zynqmp')
-def test_zynqmp_rpu_app_load_lockstep(u_boot_console):
- rpu_apps_load(u_boot_console, 'lockstep')
+def test_zynqmp_rpu_app_load_lockstep(ubman):
+ rpu_apps_load(ubman, 'lockstep')
@pytest.mark.buildconfigspec('cmd_zynqmp')
-def test_zynqmp_rpu_app_load_negative(u_boot_console):
+def test_zynqmp_rpu_app_load_negative(ubman):
apps, procs, cpu_nums, addrs, outputs, tftp_addrs = get_rpu_apps_env(
- u_boot_console)
+ ubman)
# Invalid commands
rand_str = ''.join(random.choices(string.ascii_lowercase, k=4))
@@ -145,26 +145,26 @@ def test_zynqmp_rpu_app_load_negative(u_boot_console):
inv_modes = ['mode', rand_str, rand_num, 'splittt', 'locksteppp', '00', 11]
for mode in inv_modes:
- u_boot_console.run_command(f'zynqmp tcminit {mode}')
- assert ret_code(u_boot_console).endswith('1')
+ ubman.run_command(f'zynqmp tcminit {mode}')
+ assert ret_code(ubman).endswith('1')
- test_net.test_net_dhcp(u_boot_console)
+ test_net.test_net_dhcp(ubman)
if not test_net.net_set_up:
- test_net.test_net_setup_static(u_boot_console)
+ test_net.test_net_setup_static(ubman)
try:
rpu_mode = 'split'
- assert tcminit(u_boot_console, get_rpu_mode(rpu_mode)).endswith('0')
+ assert tcminit(ubman, get_rpu_mode(rpu_mode)).endswith('0')
inv_modes += [0, 1]
for i in range(len(apps)):
- load_app_ddr(u_boot_console, tftp_addrs[i], apps[i])
+ load_app_ddr(ubman, tftp_addrs[i], apps[i])
# Run in split mode at different load address
rel_addr = hex(int(addrs[i]) + random.randint(200, 1000))
cpu_num = cpu_nums[i]
cmd = f'cpu {cpu_num} release {rel_addr} {rpu_mode}'
- output = u_boot_console.run_command(cmd)
+ output = ubman.run_command(cmd)
exp_op = f'Using TCM jump trampoline for address {rel_addr}'
assert exp_op in output
assert f'R5 {rpu_mode} mode' in output
@@ -173,50 +173,50 @@ def test_zynqmp_rpu_app_load_negative(u_boot_console):
# Invalid rpu mode
for mode in inv_modes:
cmd = f'cpu {cpu_num} release {rel_addr} {mode}'
- output = u_boot_console.run_command(cmd)
+ output = ubman.run_command(cmd)
assert exp_op in output
assert f'Unsupported mode' in output
- assert not ret_code(u_boot_console).endswith('0')
+ assert not ret_code(ubman).endswith('0')
# Switch to lockstep mode, without disabling CPUs
rpu_mode = 'lockstep'
- output = u_boot_console.run_command(
+ output = ubman.run_command(
f'zynqmp tcminit {get_rpu_mode(rpu_mode)}'
)
assert 'ERROR: ' in output
# Disable cpus
- disable_cpus(u_boot_console, cpu_nums)
+ disable_cpus(ubman, cpu_nums)
# Switch to lockstep mode, after disabling CPUs
- output = u_boot_console.run_command(
+ output = ubman.run_command(
f'zynqmp tcminit {get_rpu_mode(rpu_mode)}'
)
assert 'Initializing TCM overwrites TCM content' in output
- assert ret_code(u_boot_console).endswith('0')
+ assert ret_code(ubman).endswith('0')
# Run lockstep mode for RPU1/RPU0
for i in range(len(apps)):
- load_app_ddr(u_boot_console, tftp_addrs[i], apps[i])
+ load_app_ddr(ubman, tftp_addrs[i], apps[i])
rel_addr = hex(int(addrs[i] + 0x3C))
cpu_num = cpu_nums[i]
cmd = f'cpu {cpu_num} release {rel_addr} {rpu_mode}'
- output = u_boot_console.run_command(cmd)
+ output = ubman.run_command(cmd)
exp_op = f'Using TCM jump trampoline for address {rel_addr}'
assert exp_op in output
if procs[i] == 'rpu1':
assert 'Lockstep mode should run on ZYNQMP_CORE_RPU0' in output
- assert not ret_code(u_boot_console).endswith('0')
+ assert not ret_code(ubman).endswith('0')
elif procs[i] == 'rpu0':
assert f'R5 {rpu_mode} mode' in output
- u_boot_console.wait_for(outputs[i])
- assert ret_code(u_boot_console).endswith('0')
+ ubman.wait_for(outputs[i])
+ assert ret_code(ubman).endswith('0')
else:
assert False, 'ERROR: Invalid processor!'
finally:
- disable_cpus(u_boot_console, cpu_nums)
+ disable_cpus(ubman, cpu_nums)
# This forces the console object to be shutdown, so any subsequent test
# will reset the board back into U-Boot.
- u_boot_console.drain_console()
- u_boot_console.cleanup_spawn()
+ ubman.drain_console()
+ ubman.cleanup_spawn()