diff options
Diffstat (limited to 'test/py/tests/test_zynqmp_rpu.py')
-rw-r--r-- | test/py/tests/test_zynqmp_rpu.py | 100 |
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() |