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
