summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2024-11-09efi: Move default filename to a functionSimon Glass
Use a function to obtain the device EFI filename, so that we can control how sandbox behaves. Signed-off-by: Simon Glass <[email protected]>
2024-11-04Merge patch series "Fixes to allow 'ut bootm' to pass when run interactively"Tom Rini
Andrew Goodbody <[email protected]> says: Starting a sandbox session and running 'ut bootm' on the command line instead of using pytest with --verbose will result in some test failures. This series makes the tests more deterministic so that they will better control their environment and hence will work as expected whether or not they are invoked with '--verbose'. The series starts with a small fix to the parameters of bootm_process_cmdline that one commit incorrectly added using a bool when it had been updated to take flags by the preceeding commit. Link: https://lore.kernel.org/r/[email protected]
2024-11-04test: bootm: Ensure GD_FLG_SILENT is resetAndrew Goodbody
Some bootm tests expect that GD_FLG_SILENT is reset in order to work as expected. This is the state if the test is run with 'pytest --verbose' but not if run from, say, the sandbox command line. So reset the flag for those tests that rely on it being reset. This has to be done in each test as the test infrastructure will set it again before every test when not invoked with 'pytest --verbose'. Signed-off-by: Andrew Goodbody <[email protected]>
2024-11-04test: bootm: bootm_process_cmdline_env takes flagsAndrew Goodbody
The function bootm_process_cmdline_env takes flags as its third parameter, not a bool. Correct the usage by replacing 'true' with BOOTM_CL_ALL so that the intent is clear. A similar change was made throughtout this file in the previous commit to the one mentioned below as being fixed. Fixes: 4448fe8e4e7c ("bootm: Allow updating the bootargs in a buffer") Signed-off-by: Andrew Goodbody <[email protected]>
2024-11-04usb: Fix test dependency on ext4write commandAndrew Goodbody
The tests test_usb_ext4load_ext4write, test_usb_ext2load and test_usb_load depend on the command ext4write being present not just the feature of being able to write to an ext4 file system. So update their dependencies to include the ext4write command itself. This will prevent spurious test failures when running the USB tests against USB storage with an ext2/ext4 partition but no ext4write command available. Fixes: 1c5b6edad381 ("test/py: usb: Add tests for USB device") Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Love Kumar <[email protected]>
2024-11-04usb: Fix test failure with multiple partitionsAndrew Goodbody
When test_usb_load finds multiple partitions of the same type then it will cause a test failure. The call to write the test file will write a different test file to each partition but only return the name and size of the last one written. So the test then fails to load the test file from the first partition as it uses the name of a file on a different partition. Refactor the code so that only one test file is written at a time and is written to only the partition being tested at that time. This allows the correct file name to always be available to the code that runs the load command. This reduces the number of files written and also the number of calls to crc32 needed. Fixes: 1c5b6edad381 ("test/py: usb: Add tests for USB device") Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Love Kumar <[email protected]>
2024-11-03bloblist: test: Mark tests with UTF_BLOBLISTSimon Glass
Mark bloblist tests with this flag so that other tests which use bloblist remain unaffected. Signed-off-by: Simon Glass <[email protected]>
2024-11-03test: Allow saving and restoring the bloblistSimon Glass
Tests which create a new bloblist overwrite the existing one in sandbox. Provide a flag for tests to declare this behaviour. Save and restore the bloblist pointer so that other tests remain unaffected. Note that when sandbox is running normally, the bloblist has been relocated to high in memory. The existing bloblist tests create a new bloblist low in memory, so they do not conflict. Correct a build error on coreboot by using accessors for gd->bloblist: Signed-off-by: Simon Glass <[email protected]>
2024-11-03x86: coreboot: Allow building an expo for editing CMOS configSimon Glass
Coreboot provides the CMOS layout in the tables it passes to U-Boot. Use that to build an editor for the CMOS settings. Signed-off-by: Simon Glass <[email protected]>
2024-11-03x86: coreboot: Add a command to check and update CMOS RAMSimon Glass
Coreboot tables provide information about the CMOS-RAM checksum. Add a command which can check and update this. With this it is possible to adjust CMOS-RAM settings and tidy up the checksum afterwards. Signed-off-by: Simon Glass <[email protected]>
2024-11-03x86: coreboot: Show the option tableSimon Glass
Update the cbsysinfo command to show the contents of the CMOS option table. While we are here, add some example output for this command, along with mention of what the unimplemented tags are. Signed-off-by: Simon Glass <[email protected]>
2024-11-03x86: coreboot: Add a test for cbsysinfo commandSimon Glass
Add a simple test for this command, checking that coreboot has the required features. Signed-off-by: Simon Glass <[email protected]>
2024-11-03test: boot: Update bootflow_iter() for console checkingSimon Glass
This test checks console output so should have the UTF_CONSOLE flag. Add it. Signed-off-by: Simon Glass <[email protected]>
2024-11-03test: Drop the duplicate line in setup_bootmenu_image()Simon Glass
The mkimage call is done twice. Remove the duplicate. Signed-off-by: Simon Glass <[email protected]>
2024-11-03test: Expand implementation of ut_list_has_dm_tests()Simon Glass
This function assumes that all tests in a suite are being run. This means that it can sometimes call dm_test_restore() when it should not. The impact of this is that it is not possible, for example, to run 'ut bootstd bootflow_cros' and then check the state of bootstd afterwards, since all devices are removed and recreated. Update the function to take account of any selected test, to avoid this problem. Add a comment for test_insert while we are here. Signed-off-by: Simon Glass <[email protected]>
2024-11-03test: boot: Use a consistent name for the script bootmethSimon Glass
In the bootflow tests the script bootmeth is bound with the name bootmeth_script whereas the others have a name without the bootmeth_ prefix. Adjust it to be the same. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-11-03dm: core: Add a function to see if a device existsSimon Glass
All the uclass functions for finding a device end up creating a uclass if it doesn't exist. Add a function which instead returns NULL in this case. This is useful when in the 'unbind' path, since we don't want to undo any unbinding which has already happened. Signed-off-by: Simon Glass <[email protected]>
2024-11-03alist: Add a way to efficiently filter an alistSimon Glass
Unlike linked lists, it is inefficient to remove items from an alist, particularly if it is large. If most items need to be removed, then the time-complexity approaches O(n2). Provide a way to do this efficiently, by working through the alist once and copying elements down. Signed-off-by: Simon Glass <[email protected]>
2024-11-03alist: Add a function to empty the listSimon Glass
Sometimes it is useful to empty the list without de-allocating any of the memory used, e.g. when the list will be re-populated immediately afterwards. Add a new function for this. Signed-off-by: Simon Glass <[email protected]>
2024-11-03alist: Add for-loop helpersSimon Glass
Add some macros which permit easy iteration through an alist, similar to those provided by the 'list' implementation. Signed-off-by: Simon Glass <[email protected]>
2024-11-03alist: Add a way to get the next elementSimon Glass
Add a new function which returns the next element after the one provided, if it exists in the list. Signed-off-by: Simon Glass <[email protected]>
2024-11-02test: boot: Use a consistent name for the script bootmethSimon Glass
In the bootflow tests the script bootmeth is bound with the name bootmeth_script whereas the others have a name without the bootmeth_ prefix. Adjust it to be the same. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-11-02dm: core: Add a function to see if a device existsSimon Glass
All the uclass functions for finding a device end up creating a uclass if it doesn't exist. Add a function which instead returns NULL in this case. This is useful when in the 'unbind' path, since we don't want to undo any unbinding which has already happened. Signed-off-by: Simon Glass <[email protected]>
2024-11-02alist: Add a way to efficiently filter an alistSimon Glass
Unlike linked lists, it is inefficient to remove items from an alist, particularly if it is large. If most items need to be removed, then the time-complexity approaches O(n2). Provide a way to do this efficiently, by working through the alist once and copying elements down. Signed-off-by: Simon Glass <[email protected]>
2024-11-02alist: Add a function to empty the listSimon Glass
Sometimes it is useful to empty the list without de-allocating any of the memory used, e.g. when the list will be re-populated immediately afterwards. Add a new function for this. Signed-off-by: Simon Glass <[email protected]>
2024-11-02alist: Add for-loop helpersSimon Glass
Add some macros which permit easy iteration through an alist, similar to those provided by the 'list' implementation. Signed-off-by: Simon Glass <[email protected]>
2024-11-02alist: Add a way to get the next elementSimon Glass
Add a new function which returns the next element after the one provided, if it exists in the list. Signed-off-by: Simon Glass <[email protected]>
2024-11-01Merge patch series "fs: ext4: implement opendir, readdir, closedir"Tom Rini
Heinrich Schuchardt <[email protected]> says: With this series opendir, readdir, closedir are implemented for ext4. These functions are needed for the UEFI sub-system to interact with the ext4 file system. To reduce code growth the functions are reused to implement the ls command for ext4. A memory leak in ext4fs_exists is resolved. ext4fs_iterate_dir is simplified by removing a redundant pointer copy. Link: https://lore.kernel.org/r/[email protected]
2024-11-01fs: ext4: use fs_ls_genericHeinrich Schuchardt
Now that opendir, readir, closedir are implemented for ext4 we can use fs_ls_generic() for implementing the ls command. Adjust the unit tests: * fs_ls_generic() produces more spaces between file size and name. * The ext4 specific message "** Can not find directory. **\n" is not written anymore. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-11-01test/cmd/mem_copy.c: Use CONFIG_SYS_LOAD_ADDR for baseTom Rini
When reading/writing to memory we cannot assume that a base address of 0x0 is correct and functional. So use CONFIG_SYS_LOAD_ADDR as the base from which we add a bit more padding and being our tests. Signed-off-by: Tom Rini <[email protected]>
2024-11-01test/py: spi: prevent overwriting relocation memoryPadmarao Begari
Update spi negative test case to prevent SF command from overwriting relocation memory area. Signed-off-by: Padmarao Begari <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Love Kumar <[email protected]>
2024-11-01scsi: fix disk capacity too small by one sectorJulius Lehmann
SCSI READ CAPACITY reports the address of the last block and the block size. The total number of blocks is thus last block address plus one. This also fixes the corresponding test case.
2024-10-30cmd/eficonfig: capitalize 'enter description'Heinrich Schuchardt
To conform with other messages capitalize the first letter: %s/enter description/Enter description/g Adjust the unit tests accordingly. Signed-off-by: Heinrich Schuchardt <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2024-10-29test/hush: Add CONFIG_CONSOLE_RECORD where requiredTom Rini
The "dollar" tests require CONFIG_CONSOLE_RECORD to be enabled so guard with that. Reviewed-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-10-29test/cmd: Make some "ut dm" tests only available on sandboxTom Rini
Currently, the "dm" suite in unit tests (ut) is only available on sandbox. Make sure that all cmd tests that are part of this suite are only available on sandbox and not attempted to be run on hardware (where it will fail to be able to be started). Reviewed-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-10-29lmb: Fix lmb_add_region_flags() return codes and testingIlias Apalodimas
The function description says this should return 0 or -1 on failures. When regions coalesce though this returns the number of coalescedregions which is confusing and requires special handling of the return code. On top of that no one is using the number of coalesced regions. So let's just return 0 on success and adjust our selftests accordingly Signed-off-by: Ilias Apalodimas <[email protected]> Reviewed-by: Caleb Connolly <[email protected]>
2024-10-27test: efi_loader: Fix dependency for http testAndrew Goodbody
The config setting CMD_BOOTEFI_HELLO_COMPILE was removed in favour of BOOTEFI_HELLO_COMPILE but the dependency for test_efi_helloworld_net_http was not updated and so is now incorrect preventing the test from ever running. Fix it. Fixes: 6fe80876dcc7 ("efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE") Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-10-27Merge patch series "Implement ACPI on aarch64"Tom Rini
Patrick Rudolph <[email protected]> says: Based on the existing work done by Simon Glass this series adds support for booting aarch64 devices using ACPI only. As first target QEMU SBSA support is added, which relies on ACPI only to boot an OS. As secondary target the Raspberry Pi4 was used, which is broadly available and allows easy testing of the proposed solution. The series is split into ACPI cleanups and code movements, adding Arm specific ACPI tables and finally SoC and mainboard related changes to boot a Linux on the QEMU SBSA and RPi4. Currently only the mandatory ACPI tables are supported, allowing to boot into Linux without errors. The QEMU SBSA support is feature complete and provides the same functionality as the EDK2 implementation. The changes were tested on real hardware as well on QEMU v9.0: qemu-system-aarch64 -machine sbsa-ref -nographic -cpu cortex-a57 \ -pflash secure-world.rom \ -pflash unsecure-world.rom qemu-system-aarch64 -machine raspi4b -kernel u-boot.bin -cpu cortex-a72 \ -smp 4 -m 2G -drive file=raspbian.img,format=raw,index=0 \ -dtb bcm2711-rpi-4-b.dtb -nographic Tested against FWTS V24.03.00. Known issues: - The QEMU rpi4 support is currently limited as it doesn't emulate PCI, USB or ethernet devices! - The SMP bringup doesn't work on RPi4, but works in QEMU (Possibly cache related). - PCI on RPI4 isn't working on real hardware since the pcie_brcmstb Linux kernel module doesn't support ACPI yet. Link: https://lore.kernel.org/r/[email protected]
2024-10-27drivers: misc: irq-uclass: Update irq_get_by_indexPatrick Rudolph
Support reading the "interrupts" property from the devicetree in case the "interrupts-extended" property isn't found. As the "interrupts" property is commonly used, this allows to parse all existing FDT and makes irq_get_by_index() more useful. The "interrupts" property doesn't contain a phandle as "interrupts-extended" does, so implement a new method to locate the interrupt-parent called irq_get_interrupt_parent(). TEST: Read the interrupts from the GIC node for ACPI MADT generation. Signed-off-by: Patrick Rudolph <[email protected]> Reviewed-by: Moritz Fischer <[email protected]>
2024-10-27acpi: Allocate and write ACPI tablesPatrick Rudolph
Allocate memory for ACPI tables in generic acpi code. When ACPI wasn't installed in other places, install the ACPI table using BLOBLISTs. This allows non x86 platforms to boot using ACPI only in case the EFI loader is being used, since EFI is necessary to advertise the location of the ACPI tables in memory. TEST: Booted QEMU SBSA (no QFW) using EFI and ACPI only. Signed-off-by: Patrick Rudolph <[email protected]> Reviewed-by: Simon Glass <[email protected]> Cc: Simon Glass <[email protected]> Cc: Tom Rini <[email protected]>
2024-10-27acpi: Add fill_madt to acpi_opsPatrick Rudolph
Add a new method to acpi_ops to let drivers fill out ACPI MADT. The code is unused for now until drivers implement the new ops. TEST: Booted on QEMU sbsa using driver model generated MADT. Signed-off-by: Patrick Rudolph <[email protected]> Reviewed-by: Simon Glass <[email protected]> Cc: Simon Glass <[email protected]>
2024-10-25Merge patch series "Allow showing the memory map"Tom Rini
Simon Glass <[email protected]> says: This little series adds a new 'memmap' command, intended to show the layout of memory within U-Boot and how much memory is available for loading images. Link: https://lore.kernel.org/r/[email protected]
2024-10-25meminfo: Show the lmb recordsSimon Glass
Add the lmb records onto the end of the memory map. Signed-off-by: Simon Glass <[email protected]>
2024-10-25cmd: Update the meminfo command to show the memory mapSimon Glass
U-Boot has a fairly rigid memory map which is normally not visible unless debugging is enabled in board_f.c Update the 'meminfo' command to show it. This command does not cover arch-specific pieces but gives a good overview of where things are. Signed-off-by: Simon Glass <[email protected]>
2024-10-25Merge tag 'u-boot-dfu-20241025' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/22962 Dfu: - Rely on device tree for spi speed/mode on spi flash Android Image: - Fix booting on platforms having > 4GiB of memory - Decompress boot image to kernel_addr_r when compression is enabled - Honor CONFIG_SYS_LOAD_ADDR when mkbootimg uses default address Bcb: - Rework bcb command to use U_BOOT_LONGHELP - Move ab_select cmd to bcb cmd - Implement ab_dump command in bcb - bcb: Write '_<slot>' instead of '<slot>' to misc partition
2024-10-24boot: Introduce BOOTSTD_MENU to control bootflow menu buildMarek Vasut
The bootflow_menu.c code depends on e.g. scene_txt_set_font(), which is only built when CONFIG_EXPO is enabled. Introduce new Kconfig symbol BOOTSTD_MENU which depends on EXPO to prevent triggering errors like these in case e.g. CONFIG_VIDEO=n : " boot/bootflow_menu.c:158:(.text+0x8851): undefined reference to `scene_txt_set_font' " Make the symbol depend on BOOTSTD_FULL as well to get rid of the Makefile dependency workaround. Since BOOTSTD_FULL is not available in SPL, do not define SPL variant of BOOTSTD_MENU. Fix up bootflow test accordingly. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-10-24cmd: bcb: introduce 'ab_dump' command to print BCB block contentDmitry Rokosov
It's really helpful to have the ability to dump BCB block for debugging A/B logic on the board supported this partition schema. Command 'bcb ab_dump' prints all fields of bootloader_control struct including slot_metadata for all presented slots. Output example: ===== > board# bcb ab_dump ubi 0#misc > Read 512 bytes from volume misc to 000000000bf07580 > Read 512 bytes from volume misc to 000000000bf42f40 > Bootloader Control: [misc] > Active Slot: _a > Magic Number: 0x42414342 > Version: 1 > Number of Slots: 2 > Recovery Tries Remaining: 0 > CRC: 0x2c8b50bc (Valid) > > Slot[0] Metadata: > - Priority: 15 > - Tries Remaining: 0 > - Successful Boot: 1 > - Verity Corrupted: 0 > > Slot[1] Metadata: > - Priority: 14 > - Tries Remaining: 7 > - Successful Boot: 0 > - Verity Corrupted: 0 ==== The ab_dump command allows you to display ABC data directly on the U-Boot console. During an A/B test execution, this test verifies the accuracy of each field within the ABC data. Signed-off-by: Dmitry Rokosov <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3_android Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-10-24treewide: bcb: move ab_select command to bcb subcommandsDmitry Rokosov
To enhance code organization, it is beneficial to consolidate all A/B BCB management routines into a single super-command. The 'bcb' command is an excellent candidate for this purpose. This patch integrates the separate 'ab_select' command into the 'bcb' group as the 'ab_select' subcommand, maintaining the same parameter list for consistency. Signed-off-by: Dmitry Rokosov <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3_android Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-10-23test: dm: wdt: replace cyclic_run() by schedule()Rasmus Villemoes
This is the last place outside of cyclic.c that references cyclic_run() directly. Replace by schedule(), so that cyclic_run() can be made private. This also better matches what I believe commit 29caf9305b6f ("cyclic: Use schedule() instead of WATCHDOG_RESET()") intended to do. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2024-10-23watchdog: gpio_wdt: add support for stoppable devicesRasmus Villemoes
Back when I added this driver in commit 2ac8490412c9, I wrote The corresponding linux driver apparently has support for some watchdog circuits which can be disabled by tri-stating the gpio, but I have never actually encountered such a chip in the wild; That has changed now; I have a board with just such a watchdog on my desk currently. Add support for that. - For a hw_algo="toggle" device, the gpio is requested as output if the always-running flag is set, otherwise as input. - The ->start() method is updated to change the direction to output when required (i.e. it is not always-running). - The ->stop() method is implemented, but of course reports failure if always-running. As I still haven't met any hw_algo="level" devices, I'm not entirely sure how they fit in, but I'm borrowing logic from the corresponding linux driver: - In ->probe(), such devices always request the gpio as GPIOD_IS_OUT. - In ->stop(), the linux driver has an "eternal ping" comment and sets the gpio to (logic) high. Stefan: Added necessary changes in test/dm/wdt.c to fix CI build breakage, as suggested by Rasmus. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Stefan Roese <[email protected]>