diff options
author | Tom Rini <trini@konsulko.com> | 2016-01-21 11:49:49 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-01-21 11:49:49 -0500 |
commit | 6905f4d3c7be46fed4859f51f0a8f9a1107c22e7 (patch) | |
tree | dd2fb0d12e56b3d69560b26a11ee0f0130ea0a5a /test/py/u_boot_console_exec_attach.py | |
parent | 45fe3809b9923b92f221d70eb45ae071059fd5e0 (diff) | |
parent | 747440d0fa95f2205a8fcef49b6c7845700b6246 (diff) | |
download | u-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.zip u-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.tar.gz u-boot-imx-6905f4d3c7be46fed4859f51f0a8f9a1107c22e7.tar.bz2 |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'test/py/u_boot_console_exec_attach.py')
-rw-r--r-- | test/py/u_boot_console_exec_attach.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/test/py/u_boot_console_exec_attach.py b/test/py/u_boot_console_exec_attach.py new file mode 100644 index 0000000..0ca9e7c --- /dev/null +++ b/test/py/u_boot_console_exec_attach.py @@ -0,0 +1,65 @@ +# Copyright (c) 2015 Stephen Warren +# Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0 + +# Logic to interact with U-Boot running on real hardware, typically via a +# physical serial port. + +import sys +from u_boot_spawn import Spawn +from u_boot_console_base import ConsoleBase + +class ConsoleExecAttach(ConsoleBase): + '''Represents a physical connection to a U-Boot console, typically via a + serial port. This implementation executes a sub-process to attach to the + console, expecting that the stdin/out of the sub-process will be forwarded + to/from the physical hardware. This approach isolates the test infra- + structure from the user-/installation-specific details of how to + communicate with, and the identity of, serial ports etc.''' + + def __init__(self, log, config): + '''Initialize a U-Boot console connection. + + Args: + log: A multiplexed_log.Logfile instance. + config: A "configuration" object as defined in conftest.py. + + Returns: + Nothing. + ''' + + # The max_fifo_fill value might need tweaking per-board/-SoC? + # 1 would be safe anywhere, but is very slow (a pexpect issue?). + # 16 is a common FIFO size. + # HW flow control would mean this could be infinite. + super(ConsoleExecAttach, self).__init__(log, config, max_fifo_fill=16) + + self.log.action('Flashing U-Boot') + cmd = ['u-boot-test-flash', config.board_type, config.board_identity] + runner = self.log.get_runner(cmd[0], sys.stdout) + runner.run(cmd) + runner.close() + + def get_spawn(self): + '''Connect to a fresh U-Boot instance. + + The target board is reset, so that U-Boot begins running from scratch. + + Args: + None. + + Returns: + A u_boot_spawn.Spawn object that is attached to U-Boot. + ''' + + args = [self.config.board_type, self.config.board_identity] + s = Spawn(['u-boot-test-console'] + args) + + self.log.action('Resetting board') + cmd = ['u-boot-test-reset'] + args + runner = self.log.get_runner(cmd[0], sys.stdout) + runner.run(cmd) + runner.close() + + return s |