+# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2015 Stephen Warren
# Copyright (c) 2015-2016, NVIDIA CORPORATION. All rights reserved.
-#
-# SPDX-License-Identifier: GPL-2.0
# Logic to interact with the sandbox port of U-Boot, running as a sub-process.
"""
super(ConsoleSandbox, self).__init__(log, config, max_fifo_fill=1024)
+ self.sandbox_flags = []
def get_spawn(self):
"""Connect to a fresh U-Boot instance.
A u_boot_spawn.Spawn object that is attached to U-Boot.
"""
- return Spawn([self.config.build_dir + '/u-boot'])
+ bcfg = self.config.buildconfig
+ config_spl = bcfg.get('config_spl', 'n') == 'y'
+ fname = '/spl/u-boot-spl' if config_spl else '/u-boot'
+ print(fname)
+ cmd = []
+ if self.config.gdbserver:
+ cmd += ['gdbserver', self.config.gdbserver]
+ cmd += [
+ self.config.build_dir + fname,
+ '-v',
+ '-d',
+ self.config.dtb
+ ]
+ cmd += self.sandbox_flags
+ return Spawn(cmd, cwd=self.config.source_dir)
+
+ def restart_uboot_with_flags(self, flags):
+ """Run U-Boot with the given command-line flags
+
+ Args:
+ flags: List of flags to pass, each a string
+
+ Returns:
+ A u_boot_spawn.Spawn object that is attached to U-Boot.
+ """
+
+ try:
+ self.sandbox_flags = flags
+ return self.restart_uboot()
+ finally:
+ self.sandbox_flags = []
def kill(self, sig):
"""Send a specific Unix signal to the sandbox process.
p = self.p
self.p = None
- for i in xrange(100):
+ for i in range(100):
ret = not p.isalive()
if ret:
break