| # SPDX-License-Identifier: GPL-2.0 |
| # (C) Copyright 2023, Advanced Micro Devices, Inc. |
| |
| """ |
| Note: This test doesn't rely on boardenv_* configuration value but they can |
| change test behavior. |
| |
| For example: |
| |
| # Setup env__reset_test_skip to True if reset test is not possible or desired |
| # and should be skipped. |
| env__reset_test_skip = True |
| |
| # Setup env__reset_test to set the bootmode if 'modeboot' u-boot environment |
| # variable is not set. Test will be skipped if bootmode is not set in both |
| # places i.e, boardenv and modeboot u-boot environment variable |
| env__reset_test = { |
| 'bootmode': 'qspiboot', |
| } |
| |
| # This test will be also skipped if the bootmode is detected to JTAG. |
| """ |
| |
| import pytest |
| import test_000_version |
| |
| def setup_reset_env(u_boot_console): |
| if u_boot_console.config.env.get('env__reset_test_skip', False): |
| pytest.skip('reset test is not enabled') |
| |
| output = u_boot_console.run_command('echo $modeboot') |
| if output: |
| bootmode = output |
| else: |
| f = u_boot_console.config.env.get('env__reset_test', None) |
| if not f: |
| pytest.skip('bootmode cannot be determined') |
| bootmode = f.get('bootmode', 'jtagboot') |
| |
| if 'jtag' in bootmode: |
| pytest.skip('skipping reset test due to jtag bootmode') |
| |
| @pytest.mark.buildconfigspec('hush_parser') |
| def test_reset(u_boot_console): |
| """Test the reset command in non-JTAG bootmode. |
| It does COLD reset, which resets CPU, DDR and peripherals |
| """ |
| setup_reset_env(u_boot_console) |
| u_boot_console.run_command('reset', wait_for_reboot=True) |
| |
| # Checks the u-boot command prompt's functionality after reset |
| test_000_version.test_version(u_boot_console) |
| |
| @pytest.mark.buildconfigspec('hush_parser') |
| def test_reset_w(u_boot_console): |
| """Test the reset -w command in non-JTAG bootmode. |
| It does WARM reset, which resets CPU but keep DDR/peripherals active. |
| """ |
| setup_reset_env(u_boot_console) |
| u_boot_console.run_command('reset -w', wait_for_reboot=True) |
| |
| # Checks the u-boot command prompt's functionality after reset |
| test_000_version.test_version(u_boot_console) |