mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 21:24:21 +08:00
test/py: move find_ram_base() into u_boot_utils
find_ram_base() is a shared utility function, not a core part of the U-Boot console interaction. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f5d196d03e
commit
0526610334
@ -4,13 +4,14 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
import pytest
|
||||
import u_boot_utils
|
||||
|
||||
@pytest.mark.buildconfigspec('cmd_memory')
|
||||
def test_md(u_boot_console):
|
||||
'''Test that md reads memory as expected, and that memory can be modified
|
||||
using the mw command.'''
|
||||
|
||||
ram_base = u_boot_console.find_ram_base()
|
||||
ram_base = u_boot_utils.find_ram_base(u_boot_console)
|
||||
addr = '%08x' % ram_base
|
||||
val = 'a5f09876'
|
||||
expected_response = addr + ': ' + val
|
||||
@ -26,7 +27,7 @@ def test_md_repeat(u_boot_console):
|
||||
'''Test command repeat (via executing an empty command) operates correctly
|
||||
for "md"; the command must repeat and dump an incrementing address.'''
|
||||
|
||||
ram_base = u_boot_console.find_ram_base()
|
||||
ram_base = u_boot_utils.find_ram_base(u_boot_console)
|
||||
addr_base = '%08x' % ram_base
|
||||
words = 0x10
|
||||
addr_repeat = '%08x' % (ram_base + (words * 4))
|
||||
|
@ -86,7 +86,6 @@ class ConsoleBase(object):
|
||||
|
||||
self.at_prompt = False
|
||||
self.at_prompt_logevt = None
|
||||
self.ram_base = None
|
||||
|
||||
def close(self):
|
||||
'''Terminate the connection to the U-Boot console.
|
||||
@ -378,39 +377,3 @@ class ConsoleBase(object):
|
||||
'''
|
||||
|
||||
return ConsoleDisableCheck(self, check_type)
|
||||
|
||||
def find_ram_base(self):
|
||||
'''Find the running U-Boot's RAM location.
|
||||
|
||||
Probe the running U-Boot to determine the address of the first bank
|
||||
of RAM. This is useful for tests that test reading/writing RAM, or
|
||||
load/save files that aren't associated with some standard address
|
||||
typically represented in an environment variable such as
|
||||
${kernel_addr_r}. The value is cached so that it only needs to be
|
||||
actively read once.
|
||||
|
||||
Args:
|
||||
None.
|
||||
|
||||
Returns:
|
||||
The address of U-Boot's first RAM bank, as an integer.
|
||||
'''
|
||||
|
||||
if self.config.buildconfig.get('config_cmd_bdi', 'n') != 'y':
|
||||
pytest.skip('bdinfo command not supported')
|
||||
if self.ram_base == -1:
|
||||
pytest.skip('Previously failed to find RAM bank start')
|
||||
if self.ram_base is not None:
|
||||
return self.ram_base
|
||||
|
||||
with self.log.section('find_ram_base'):
|
||||
response = self.run_command('bdinfo')
|
||||
for l in response.split('\n'):
|
||||
if '-> start' in l:
|
||||
self.ram_base = int(l.split('=')[1].strip(), 16)
|
||||
break
|
||||
if self.ram_base is None:
|
||||
self.ram_base = -1
|
||||
raise Exception('Failed to find RAM bank start in `bdinfo`')
|
||||
|
||||
return self.ram_base
|
||||
|
@ -169,3 +169,41 @@ def run_and_log(u_boot_console, cmd, ignore_errors=False):
|
||||
runner = u_boot_console.log.get_runner(cmd[0], sys.stdout)
|
||||
runner.run(cmd, ignore_errors=ignore_errors)
|
||||
runner.close()
|
||||
|
||||
ram_base = None
|
||||
def find_ram_base(u_boot_console):
|
||||
'''Find the running U-Boot's RAM location.
|
||||
|
||||
Probe the running U-Boot to determine the address of the first bank
|
||||
of RAM. This is useful for tests that test reading/writing RAM, or
|
||||
load/save files that aren't associated with some standard address
|
||||
typically represented in an environment variable such as
|
||||
${kernel_addr_r}. The value is cached so that it only needs to be
|
||||
actively read once.
|
||||
|
||||
Args:
|
||||
u_boot_console: A console connection to U-Boot.
|
||||
|
||||
Returns:
|
||||
The address of U-Boot's first RAM bank, as an integer.
|
||||
'''
|
||||
|
||||
global ram_base
|
||||
if u_boot_console.config.buildconfig.get('config_cmd_bdi', 'n') != 'y':
|
||||
pytest.skip('bdinfo command not supported')
|
||||
if ram_base == -1:
|
||||
pytest.skip('Previously failed to find RAM bank start')
|
||||
if ram_base is not None:
|
||||
return ram_base
|
||||
|
||||
with u_boot_console.log.section('find_ram_base'):
|
||||
response = u_boot_console.run_command('bdinfo')
|
||||
for l in response.split('\n'):
|
||||
if '-> start' in l:
|
||||
ram_base = int(l.split('=')[1].strip(), 16)
|
||||
break
|
||||
if ram_base is None:
|
||||
ram_base = -1
|
||||
raise Exception('Failed to find RAM bank start in `bdinfo`')
|
||||
|
||||
return ram_base
|
||||
|
Loading…
Reference in New Issue
Block a user