Check that the standard passage works on ARM, by setting it up in SPL
and making sure that it comes through correctly in U-Boot proper.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v3:
- Add conditions to avoid enaling the test on qemu_arm_sbsa
- Add support for a 64-bit test also

Changes in v2:
- Add a devicetree for qemu-arm so that qemu_arm_spl can work

 configs/qemu_arm64_spl_defconfig |  5 +++++
 configs/qemu_arm_spl_defconfig   |  6 ++++++
 test/py/tests/test_passage.py    | 13 +++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 test/py/tests/test_passage.py

diff --git a/configs/qemu_arm64_spl_defconfig b/configs/qemu_arm64_spl_defconfig
index a9ed47c8d3b..60651f80938 100644
--- a/configs/qemu_arm64_spl_defconfig
+++ b/configs/qemu_arm64_spl_defconfig
@@ -33,6 +33,10 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_PCI_INIT_R=y
 CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_PASSAGE=y
+CONFIG_BLOBLIST_SIZE=0x4000
+CONFIG_SPL_BLOBLIST_ALLOC=y
+CONFIG_PASSAGE_IN=y
 CONFIG_SPL_FRAMEWORK_BOARD_INIT_F=y
 CONFIG_SPL_NO_BSS_LIMIT=y
 # CONFIG_SPL_SEPARATE_BSS is not set
@@ -47,6 +51,7 @@ CONFIG_CMD_EFIDEBUG=y
 CONFIG_CMD_TPM=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_PASSAGE=y
 CONFIG_OF_BOARD=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_SPL_DM=y
diff --git a/configs/qemu_arm_spl_defconfig b/configs/qemu_arm_spl_defconfig
index 9c4408dc73c..cf8ac703577 100644
--- a/configs/qemu_arm_spl_defconfig
+++ b/configs/qemu_arm_spl_defconfig
@@ -13,6 +13,7 @@ CONFIG_ENV_SECT_SIZE=0x40000
 CONFIG_DEFAULT_DEVICE_TREE="qemu-arm"
 CONFIG_TARGET_QEMU_ARM_32BIT_SPL=y
 CONFIG_SPL_SERIAL=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x9000
 CONFIG_SYS_BOOTM_LEN=0x4000000
 CONFIG_SYS_LOAD_ADDR=0x40200000
 CONFIG_DEBUG_UART_BASE=0x9000000
@@ -34,6 +35,10 @@ CONFIG_USE_PREBOOT=y
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_PCI_INIT_R=y
 CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_PASSAGE=y
+CONFIG_BLOBLIST_SIZE=0x4000
+CONFIG_SPL_BLOBLIST_ALLOC=y
+CONFIG_PASSAGE_IN=y
 CONFIG_SPL_FRAMEWORK_BOARD_INIT_F=y
 CONFIG_SPL_NO_BSS_LIMIT=y
 CONFIG_CMD_BOOTEFI_SELFTEST=y
@@ -44,6 +49,7 @@ CONFIG_CMD_PCI=y
 CONFIG_CMD_TPM=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_PASSAGE=y
 CONFIG_OF_BOARD=y
 CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_SPL_DM=y
diff --git a/test/py/tests/test_passage.py b/test/py/tests/test_passage.py
new file mode 100644
index 00000000000..4d95287fe55
--- /dev/null
+++ b/test/py/tests/test_passage.py
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright 2021 Google LLC
+
+import pytest
+
+@pytest.mark.buildconfigspec('qemu_manual_dtb')
+@pytest.mark.buildconfigspec('arm')
+@pytest.mark.buildconfigspec('of_passage')
+def test_passage(ubman):
+    """Test that the standard passage on ARM from SPL to U-Boot works."""
+
+    response = ubman.run_command('bdinfo')
+    assert 'devicetree  = passage' in response
-- 
2.43.0

Reply via email to