
Hi Ilias,
On Mon, 12 Aug 2024 at 07:28, Ilias Apalodimas ilias.apalodimas@linaro.org wrote:
Hi Simon
On Sun, 11 Aug 2024 at 17:52, Simon Glass sjg@chromium.org wrote:
The test coverage for the EFI bootmeth is incomplete since it does not actually boot the application.
This series creates a simple test for this purpose. It includes a surprising number patches to make this work:
- sandbox memory-mapping conflict with PCI
- the fix for that causes the mbr test to crash as it sets up pointers instead of addresses for its 'mmc' commands
- the mmc and read commands which cast addresses to pointers
- ANSI output from the EFI loader confusing the unit-testing checker
- bug in bootdev_next_prio() which causes an infinite loop in EFI test
- Hang in sandbox virtio due to EFI probing all block devices
- a tricky bug to do with USB keyboard and stdio
- a few other minor things
This series is unreviewable and I doubt I am the only one who thinks so. There are 40 patches of completely unrelated stuff. Please split them up properly.
How about just reviewing the EFI patches? There are only about 14 of those.
Regards, Simon
Thanks /Ilias
Changes in v3:
- Include the usb.h header file in all cases
- Correct the commit subject and message
- Add a Fixes tag
- use SZ_512 instead of 0x200
- Drop the extra- rules since scripts/Makefile.lib takes care of it
- Add new patch to drop crt0/relocal extra- rules
- Update commit message to describe how the problem will be addressed
- Fix 'virtual' typo
- Put back the Linaro copyright accidentally removed
- Add a Fixes tag
- Mention the issue created for this problem
Changes in v2:
- Fix 'use' typo
- Reword commit message
- Use 'Firmware vendor' instead of just 'Vendor'
- Add many new patches to resolve all the outstanding test issues
Simon Glass (40): nvmxip: Drop the message on probe nvmxip: Avoid probing on boot bootstd: Add UT_TESTF_CONSOLE_REC to bootflow tests test/py: Fix some pylint warnings in test_ut.py scripts: Update pylint.base bootstd: Create a function to reset USB usb: Drop old non-DM code log: Add a new log category for the console usb: Add DEV_FLAGS_DM to stdio for USB keyboard dm: usb: Deal with USB keyboard persisting across tests test: mbr: Adjust test to use lower-case hex test: mbr: Adjust test to drop 0x sandbox: Change the range used for memory-mapping tags sandbox: Update cpu to use logging sandbox: Unmap old tags sandbox: Add some debugging to pci_io sandbox: Implement reference counting for address mapping mmc: Use map_sysmem() with buffers in the mmc command read: Tidy up use of map_sysmem() in the read command cmd: Fix memory-mapping in cmp command test: mbr: Unmap the buffers after use test: mbr: Use a constant for the block size test: mbr: Use RAM for the buffers test: mbr: Drop a duplicate test efi: Use puts() in cout so that console recording works efi_loader: Put back copyright message efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE efi: arm: x86: riscv: Drop crt0/relocal extra- rules efi_loader: Shorten the app rules efi_loader: Shorten the app rules further efi: Show the vendor in helloworld Revert "bootdev: avoid infinite probe loop" bootstd: Make bootdev_next_prio() continue after failure efi: Use the same filename for all sandbox builds bootstd: Add debugging for efi bootmeth efi: Disable ANSI output for tests efi: Add a test app efi: Avoid using sandbox virtio devices test: Set up an image suitable for EFI testing efi: Add a test for the efi bootmeth
arch/arm/lib/Makefile | 8 - arch/riscv/lib/Makefile | 4 - arch/sandbox/cpu/cpu.c | 38 ++- arch/sandbox/cpu/state.c | 9 +- arch/sandbox/dts/test.dts | 2 +- arch/sandbox/include/asm/state.h | 3 + arch/sandbox/lib/pci_io.c | 9 +- arch/x86/lib/Makefile | 16 - boot/bootdev-uclass.c | 23 +- boot/bootmeth_efi.c | 11 +- cmd/Kconfig | 14 +- cmd/mem.c | 26 +- cmd/mmc.c | 15 +- cmd/read.c | 10 +- cmd/usb.c | 20 -- common/console.c | 36 +++ common/log.c | 1 + common/usb_kbd.c | 74 +---- configs/octeontx2_95xx_defconfig | 2 +- configs/octeontx2_96xx_defconfig | 2 +- configs/octeontx_81xx_defconfig | 2 +- configs/octeontx_83xx_defconfig | 2 +- doc/arch/sandbox/sandbox.rst | 21 +- doc/develop/uefi/uefi.rst | 2 +- drivers/mtd/nvmxip/nvmxip-uclass.c | 10 +- drivers/usb/Kconfig | 3 +- include/console.h | 8 + include/efi_default_filename.h | 24 +- include/efi_loader.h | 21 +- include/log.h | 2 + include/usb.h | 20 +- lib/efi_loader/Kconfig | 22 ++ lib/efi_loader/Makefile | 47 +-- lib/efi_loader/efi_console.c | 28 +- lib/efi_loader/efi_disk.c | 14 +- lib/efi_loader/helloworld.c | 6 + lib/efi_loader/testapp.c | 68 ++++ scripts/pylint.base | 462 ++++++++++++++++------------ test/boot/bootdev.c | 37 ++- test/boot/bootflow.c | 119 +++++-- test/boot/bootstd_common.c | 6 + test/boot/bootstd_common.h | 8 + test/cmd/mbr.c | 173 ++++++----- test/py/tests/bootstd/flash1.img.xz | Bin 0 -> 5016 bytes test/py/tests/test_efi_fit.py | 2 +- test/py/tests/test_efi_loader.py | 2 +- test/py/tests/test_ut.py | 146 +++++---- test/test-main.c | 38 +++ 48 files changed, 962 insertions(+), 654 deletions(-) create mode 100644 lib/efi_loader/testapp.c create mode 100644 test/py/tests/bootstd/flash1.img.xz
-- 2.34.1