disk/part_efi.c has no big-endian coverage in CI, which is how its
little-endian assumptions went unnoticed. The GPT tests in
test/py/tests/test_gpt.py are restricted to sandbox because they rely on
'host bind', and test/dm/part.c is sandbox-only because UT_DM depends on
SANDBOX.

The two tests in test/lib/part_efi.c need neither. One works on a
synthetic descriptor and the other on a memory-backed blkmap device, and
test/lib/ is built for every board that enables CONFIG_UNIT_TEST. malta64
already sets that and already runs the full pytest suite in CI as the
qemu_malta64 job, so enabling EFI_PARTITION and BLKMAP is enough to have
both tests built and executed on a big-endian target. The subtests are
collected from u-boot.sym automatically, so CI needs no change.

Pick malta64 rather than malta because the width matters. hdr_start and
pte_start in gpt_fill_pte() are size_t, so on a 32-bit big-endian target
an unconverted __le64 truncates to zero and the partition overlap check
still happens to reject an overlap. On MIPS64 the same value stays large,
the check accepts a partition that overlaps the entry array, and the test
notices.

Signed-off-by: Alexey Charkov <[email protected]>
---
 configs/malta64_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/configs/malta64_defconfig b/configs/malta64_defconfig
index e927be3b38ec..9a5bbe15da92 100644
--- a/configs/malta64_defconfig
+++ b/configs/malta64_defconfig
@@ -26,7 +26,9 @@ CONFIG_CMD_PCI=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 # CONFIG_ISO_PARTITION is not set
+CONFIG_EFI_PARTITION=y
 CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_BLKMAP=y
 CONFIG_SYS_IDE_MAXBUS=1
 CONFIG_SYS_ATA_DATA_OFFSET=0
 CONFIG_SYS_ATA_REG_OFFSET=0

-- 
2.55.0

Reply via email to