summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-23part: Add a function to find the first bootable partitionSimon Glass
If a disk has a bootable partition we are expected to use it to locate the boot files. Add a function to find it. To test this, update mmc1 to have two paritions, fixing up other tests accordingly. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Add a hunter for ethernetSimon Glass
Sometimes ethernet devices are attached to PCI. Since it is quick to scan, add this into the ethernet hunter. Run dhcp to establish the network connection. Drop this from the bootdev since that is not needed now. Update a log message for clarity. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23net: Add a function to run dhcpSimon Glass
At present this must be done by executing the command. Also it involves fiddling with the environment to determine the correct autoload behaviour. Ideally it should be possible to run network operations without even having the command line present (CONFIG_CMDLINE). For now, add a function to handle DHCP, so it can be called from a bootdev more easily. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2023-01-23bootstd: Add an MMC hunterSimon Glass
Add a hunter for MMC. This doesn't do anything at present, since MMC is currently set up when U-Boot starts. If MMC moves to lazy init then we can add a hunter function. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Add a USB hunterSimon Glass
Add a hunter for USB which enumerates the bus to find new bootdevs. Update the tests and speed up bootdev_test_prio() while we are here, by dropping the USB delays. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23test: Add a generic function to skip delaysSimon Glass
At present this feature is sandbox-specific. For running tests on boards, we need a nop version. Add one. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: usb: Mark the device name as alloced when bindingSimon Glass
Since usb_find_and_bind_driver() allocates the device name it should tell driver about that, to avoid memory leaks. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Support running bootdev huntersSimon Glass
Add a way to run a bootdev hunter to find bootdevs of a certain type. Add this to the 'bootdev hunt' command. Test for this are added in a later patch, since a useful test needs some hunters to work with. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Add the concept of a bootdev hunterSimon Glass
Some bootdevs must be enumerated before they appear. For example, USB bootdevs are not visible until USB is enumerated. With standard boot this needs to happen automatically, since we only want to enumerate a bus if it is needed. Add a way to define bootdev 'hunters' which can be used to hunt for bootdevs of a given type. Track which ones have been used and add a command to list them. Include a clang work-around which seems to be needed. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23efi: Improve logging in efi_diskSimon Glass
When this fails it can be time-consuming to debug. Add some debugging to help with this. Also try to return error codes instead of just using -1. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23event: Correct duplicate log message in event_notify()Simon Glass
Use a different one for each call. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23lib: Support printing an error stringSimon Glass
It is often useful to show an error code to give the user a clue as to what went wrong. When error strings are compiled into U-Boot it is possible to show a message as well. But at present it is not very convenient, since code must check if the error strings are present, then obtain the error string and use it in a printf() string. Add a %dE option which shows an error code along with an error string, if available. This makes it easy to show one or both. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23sandbox: Enable the Ethernet bootdevSimon Glass
This bootdev is disabled at present since it messes with the tests. Now that there is a way to disable networking at runtime, enable the driver. This allows running tests with it if necessary. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23sandbox: Allow ethernet bootdevs to be disabled for testsSimon Glass
Most tests don't want these and can create a lot of noise. Add a way to disable them. Use that in tests, with a flag provided to enable them for tests that need this feature. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23sandbox: Allow ethernet to be disabled at runtimeSimon Glass
For bootstd tests it is seldom useful to have ethernet enabled. Add a way to disable it, so that ethernet operations like tftpboot do nothing. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Add a default method to get bootflowsSimon Glass
The code in these functions turns out to often be the same. Add a default get_bootflow() function and allow the drivers to select it by setting the method to NULL. This saves a little code space. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: mmc: Use bootdev_setup_sibling_blk()Simon Glass
At present MMC uses the bootdev_setup_for_dev() function to set up the bootdev. This is because MMC only has one block-device child, so does not need to worry about naming of the bootdev. However this inconsistency with other bootdevs that use block devices is a bit annoying. The only real reason for it is to have a name like 'mmc0.bootdev' instead of 'mmc0.blk.bootdev'. Update bootdev_setup_sibling_blk() to drop '.blk' from the name where it appears, thus removing the only reason to use the bootdev_setup_for_dev(). Switch MMC over to the subling function. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23ide: Drop non-DM code for BLKSimon Glass
We require CONFIG_BLK to be enabled now, so this code is unused. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: test: Correct ordering of DM setupSimon Glass
We must call dm_scan_other() after devices from the device tree have been created, since that function behaves differently if there is no bootstd device. Adjust the logic to achieve this. Also fix the bootflow_system() test which was relying on this broken behaviour. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: part: Update test to use mmc2Simon Glass
At present this test sets up a partition table on mmc1. But this is used by the bootstd tests, so it is not possible to run those after this test has run, without restarting the Python test harness. This is inconvenient when running tests repeatedly with 'ut dm'. Move the test to use mmc2, which is not used by anything. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23vbe: sandbox: Drop VBE node in chosenSimon Glass
This is not needed anymore since VBE creates the node when it sets up the OS requests. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23vbe: Avoid a build failure when bloblist is not enabledSimon Glass
This needs to be able to work (at least partially) without the bloblist active. Add a condition for this. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23sandbox: mmc: Start off with a zeroed fileSimon Glass
When running multiple tests the mmc emulator calls malloc() to obtain the memory for its disk image. Since the memory is not cleared, it is possible that it happens to contain a partition table. The dm_test_part() test (for one) relies on mmc0 being empty on startup. Zero the memory to ensure that it is. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23test: Drop duplicate restore of DM stateSimon Glass
This code is present twice. Fix it so that it is only executed once. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23test: Fix the help for the ut commandSimon Glass
The font help has an incorrect newline. Fix it. Signed-off-by: Simon Glass <sjg@chromium.org> Fixes: cdd964e3801 ("test: Tidy up help for ut command")
2023-01-23bootstd: Simplify locating existing bootdevsSimon Glass
There is no point in trying to match the alias order for bootdevs, since build_order() either sorts them by priority, uses the boot_targets environment variable or the bootdev-order property. Just use the iterator instead, to simplify the code. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23bootstd: Remove special-case code for boot_targetsSimon Glass
Rather than implement this as its own case in build_order(), process the boot_targets environment variable in the bootstd_get_bootdev_order() function. This allows build_order() to be simplified. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23lib: Add a function to split a string into substringsSimon Glass
Some environment variables provide a space-separated list of strings. It is easier to process these when they are broken out into an array of strings. Add a utility function to handle this. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: test: Correct assertion in dm_test_part()Simon Glass
This obscures the line number. Update the test to avoid make sure that the line which failed is displayed, so it is possible to diagnose the failure. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: core: Support sorting devices with dm treeSimon Glass
Add a -s flag to sort the top-level devices in order of uclass ID. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-23dm: core: Correct ordering of uclasses IDsSimon Glass
A few of these are out of order. Fix them. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-01-20Merge tag 'efi-2023-04-rc1-2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2023-04-rc1-2 Documentation * man-pages for source, blkcache, bdinfo * fix references to distro documentation UEFI: * allow clear screen by scrolling * ensure that file ubootefi.var is created * fix CapsuleMax variable reporting Others: * reduce verbosity of fat_read_file()
2023-01-20Merge branch '2023-01-20-finish-CONFIG-migration-work'Tom Rini
- Merge in the final batch of CONFIG to Kconfig/CFG migration work. This includes a fix for a number of ns16550 or similar UARTs due to a migration bug. We also pull in a revert for enabling CONFIG_VIDEO on tools-only_defconfig.
2023-01-20Revert "config: tools only: add VIDEO to build bmp_logo"Fabio Estevam
This reverts commit 1cfba53ca46cade2dbf4e067afc8c19e72909a4b. Since commit 1cfba53ca46c ("config: tools only: add VIDEO to build bmp_logo") the build of tools-only_defconfig fails: | /bin/sh: line 1: tools/bmp_logo: No such file or directory This has been noticed in OpenEmbedded and Debian [1]. Revert it for now. [1] https://lists.denx.de/pipermail/u-boot/2023-January/504758.html Signed-off-by: Fabio Estevam <festevam@denx.de>
2023-01-20CI: Make check for new defined CONFIG symbols even more robustTom Rini
Now that all remaining in-tree cases where we define or undef a CONFIG symbol have been migrated to Kconfig or renamed to CFG we can make the CI check more robust. We will exclude the doc, tools and arch/arm/dts directories from this check as they are special cases. Further, we can exclude the scripts/kconfig/lkc.h and include/linux/kconfig.h files as the CONFIG values they define are special tooling cases and not real symbols. In the case of docs, the only places that currently fail this test are old documentation that should be rewritten so that we can remove this special case. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-01-20global: Finish CONFIG -> CFG migrationTom Rini
At this point, the remaining places where we have a symbol that is defined as CONFIG_... are in fairly odd locations. While as much dead code has been removed as possible, some of these locations are simply less obvious at first. In other cases, this code is used, but was defined in such a way as to have been missed by earlier checks. Perform a rename of all such remaining symbols to be CFG_... rather than CONFIG_... Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-01-20watchdog: Clean up defaults for imx_watchdog / ulp_wdogTom Rini
In imx_watchdog, clean up the comment to just note the range now, as we do not need to set the default here as Kconfig does this for us. For ulp_wdog, set the default value via Kconfig instead. Cc: Stefan Roese <sr@denx.de> Cc: Stefano Babic <sbabic@denx.de> Cc: Peng Fan <peng.fan@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-01-20usbtty: Remove default CONFIG_USBD_* valuesTom Rini
For this legacy driver, the only user sets these values in Kconfig, so we can remove them from the header. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20nxp: Finish migration of SYS_FSL_SRDS_[12] to KconfigTom Rini
As this is used on both ARM and PowerPC platforms, this needs to be listed in arch/Kconfig.nxp and match how they're currently used by select'ing them under the required PowerPC ARCH_xxx options. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20nxp: Finish migration of SYS_FSL_IFC_BANK_COUNT to KconfigTom Rini
As this is used on both ARM and PowerPC platforms, this needs to be asked in arch/Kconfig.nxp. Set the PowerPC defaults based on arch/powerpc/include/asm/config_mpc85xx.h and remove the default set in drivers/mtd/nand/raw/fsl_ifc_nand.c Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20net: phy: mv88e61xx: Finish migration of MV88E61XX_FIXED_PORTSTom Rini
Set the default for MV88E61XX_FIXED_PORTS to 0x0 in Kconfig, and move the comment from code to the help to explain what this does. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
2023-01-20fsl-layerscape: Rework usage of CONFIG_CLUSTER_CLK_FREQTom Rini
In the case where CONFIG_CLUSTER_CLK_FREQ is not defined, simply set cluster_clk to get_board_sys_clk(). Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20usb: musb: Rename CONFIG_USB_MUSB_TIMEOUT to MUSB_TIMEOUTTom Rini
This variable has never been configured to another value at present, and was not converted to Kconfig. Opt instead to rename this to MUSB_TIMEOUT. Cc: Marek Vasut <marex@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marek Vasut <marex@denx.de>
2023-01-20fpga: Migrate CONFIG_MAX_FPGA_DEVICES to KconfigTom Rini
This is always defined to 5, so use that as the default. Cc: Michal Simek <michal.simek@amd.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Michal Simek <michal.simek@amd.com>
2023-01-20common/update: Finish Kconfig migrationTom Rini
We can enforce the dependencies of this module via Kconfig now, so do so rather than with #error statements. Further, we can ensure that all required values are set to their defaults in Kconfig, and in fact already do so, so remove the tests here. The exception is CONFIG_UPDATE_LOAD_ADDR which needed to be migrated to Kconfig in the first place. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20spl: sata: Rework the loading case it not use IS_ENABLED(...)Tom Rini
In this case, using IS_ENABLED(...) to attempt to load the image results in harder to read and less useful code, along with having to define a CONFIG value that would be unused. To maintain the current albeit slightly odd behavior, maintain that if we have both SPL_FS_FAT and SPL_SATA_RAW_U_BOOT_USE_SECTOR enabled, we use SPL_FS_FAT for the load. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20autoboot: Rework CONFIG_AUTOBOOT_STOP_STR_* usageTom Rini
In order to not define a CONFIG value when the CONFIG_AUTOBOOT_STOP_STR_* functionality is not enabled, rework the assignment of empty and unused (as the code will be discarded under if 0, in the end) values to be AUTOBOOT_STOP_STR_* instead of CONFIG_AUTOBOOT_STOP_STR_*. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20arm: lib1funcs.S: Update compatibility with Linux comment slightlyTom Rini
At this point, the Linux code for "lib1funcs" has changed rather dramatically. While a resync would be beneficial, it's outside the scope of what we need here. Simply remove the define for CONFIG_AEABI and tests for it. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20dm: ns16550: Restore how we define UART_REGTom Rini
Prior to commit 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to Kconfig") we had defined CONFIG_SYS_NS16550_REG_SIZE to -1 with DM_SERIAL such that we would then have a size 0 character array. This resulted in functionally no padding. The confusion on my part came from dealing with the constraints around platforms that do not use DM_SERIAL in SPL/TPL. After Andre Przywara reported that sunxi was broken, I've re-read the code and comments again and thought on this harder. What we want I believe is what this patch does now. If DM_SERIAL is defined for this stage, regardless of CONFIG_SYS_NS16550_REG_SIZE then we will dynamically handle reg shifts and 'struct ns16550' needs no padding (which is functionally what unsigned char foo[0] provides). This is the same case as NS16550_DYNAMIC and DEBUG_UART. Expand the existing comment here slightly. Otherwise, we will have CONFIG_SYS_NS16550_REG_SIZE set to a non-zero value, and handle padding within the struct. Cc: Simon Glass <sjg@chromium.org> Cc: Sergei Antonov <saproj@gmail.com> Cc: Quentin Schulz <quentin.schulz@theobroma-systems.com> Cc: Andre Przywara <andre.przywara@arm.com> Fixes: 9591b63531fa ("Convert CONFIG_SYS_NS16550_MEM32 et al to Kconfig") Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Tested-by: Andre Przywara <andre.przywara@arm.com> Tested-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
2023-01-20arm: Rework usage of CONFIG_ARMV[78]_SECURE_BASE in linker scriptsTom Rini
In order to avoid defining CONFIG_ARMV[78_]SECURE_BASE as empty in the linker scripts, if not already defined, add and use __ARMV[78_]SECURE_BASE for when the base is not defined and we want the linker scripts to continue. Signed-off-by: Tom Rini <trini@konsulko.com>