test_extension.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # SPDX-License-Identifier: GPL-2.0+
  2. # Copyright (c) 2020
  3. # Author: Kory Maincent <kory.maincent@bootlin.com>
  4. # Test U-Boot's "extension" commands.
  5. import os
  6. import pytest
  7. import u_boot_utils
  8. overlay_addr = 0x1000
  9. SANDBOX_DTB='arch/sandbox/dts/sandbox.dtb'
  10. OVERLAY_DIR='arch/sandbox/dts/'
  11. def load_dtb(u_boot_console):
  12. u_boot_console.log.action('Loading devicetree to RAM...')
  13. u_boot_console.run_command('host load hostfs - $fdt_addr_r %s' % (os.path.join(u_boot_console.config.build_dir, SANDBOX_DTB)))
  14. u_boot_console.run_command('fdt addr $fdt_addr_r')
  15. @pytest.mark.buildconfigspec('cmd_fdt')
  16. @pytest.mark.boardspec('sandbox')
  17. def test_extension(u_boot_console):
  18. """Test the 'extension' command."""
  19. load_dtb(u_boot_console)
  20. output = u_boot_console.run_command('extension list')
  21. assert('No extension' in output)
  22. output = u_boot_console.run_command('extension scan')
  23. assert output == 'Found 2 extension board(s).'
  24. output = u_boot_console.run_command('extension list')
  25. assert('overlay0.dtbo' in output)
  26. assert('overlay1.dtbo' in output)
  27. u_boot_console.run_command_list([
  28. 'setenv extension_overlay_addr %s' % (overlay_addr),
  29. 'setenv extension_overlay_cmd \'host load hostfs - ${extension_overlay_addr} %s${extension_overlay_name}\'' % (os.path.join(u_boot_console.config.build_dir, OVERLAY_DIR))])
  30. output = u_boot_console.run_command('extension apply 0')
  31. assert('bytes read' in output)
  32. output = u_boot_console.run_command('fdt print')
  33. assert('button3' in output)
  34. output = u_boot_console.run_command('extension apply all')
  35. assert('bytes read' in output)
  36. output = u_boot_console.run_command('fdt print')
  37. assert('button4' in output)