summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-11-16bios_emulator: for non-x86, print warnings if PM_{inp, outp}* access is ↵Yuri Zaporozhets
attempted Currently the PM_{inp,outp}* macros are completely broken on non-x86 architectures, because they will essentially access random memory locations if called (and produce a lot of rightful compilation warnings too). For now, replace those macros with warnings (until the code is fixed), so the user at least knows that the emulator attempted to access some x86 I/O port. Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-16global: Remove bi_sramstart/bi_sramsizeTom Rini
These fields are currently set on exactly two platforms today, and used by only one of them. Update pic32mzdask to use CFG_SYS_SRAM* in the one location it needs it and otherwise drop this field from the bd_info struct. Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-16dm: button: support remapping phone keysCaleb Connolly
We don't have audio support in U-Boot, but we do have boot menus. Add an option to re-map the volume and power buttons to up/down/enter so that in situations where these are the only available buttons (such as on mobile phones) it's still possible to navigate menus built in U-Boot or an external EFI app like GRUB or systemd-boot. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org> Reviewed-by: Dragan Simic <dsimic@manjaro.org>
2024-11-16net/lwip: wget: integrate struct wget_info into wget codeAdriano Cordova
Each wget request now fills the struct wget_info. Also, the efi bootdevice is now set conditionally to the set_bootdevice variable in wget_info and a buffer size check is performed if check_buffer_size is set. Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16net/lwip: wget: put server_name and port into wget_ctxAdriano Cordova
Currently server_name and port are local variables in wget_loop. This commit puts them inside ctx, so that they are accessible from the http callbacks. Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16net: wget: make wget_with_dns return value compatible with its lwip versionAdriano Cordova
There are two wget_with_dns functions, one in the legacy network stack and one in lwip, but the return values are not compatible. This commit modifies the legacy version of wget_with_dns so that the return values are compatible: 0 on success, otherwise a negative error. This way wget_with_dns can be called in a network stack agnostic way. Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16net: wget: integrate struct wget_info into legacy wget codeAdriano Cordova
Each wget request now fills the struct wget_info. The efi bootdevice is now set conditionally to the set_bootdevice variable in wget_info, and the same holds for lmb memory check. Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16net: wget: Add interface to issue wget_requests using wget_http_infoAdriano Cordova
Declare and define a global default struct wget_http_info and an interface to issue wget requests providing a custom struct wget_http_info. This code is common to legacy wget and lwip wget. The idea is that the command wget should use the default wget_http_info and other internal u-boot code can call wget_request with their own wget_http_info struct. Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16net: wget: add definition of struct wget_http_infoAdriano Cordova
The struct wget_http_info exposes the HTTP information of the last HTTP request issued by wget, and it controls whether the efi bootdevice is set, and whether the buffer size needs to be checked (lwip stack only). This information is otherwise discarded. The wget_http_info struct can be used by HTTP drivers to have more control over HTTP requests. Signed-off-by: Adriano Cordova <adrianox@gmail.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-16net: Kconfig: add CONFIG_WGET symbolAdriano Cordova
Let net/wget.c and net/lwip/wget.c depend on CONFIG_WGET, and cmd/wget.c depend on CONFIG_CMD_WGET. This way, the wget code can be used regardless of whether the wget command is available. Signed-off-by: Adriano Cordova <adrianox@gmail.com> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-16Merge tag 'tpm-master-16112024' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-tpm CI: https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/23393 - Two changes from Heinrich: - One is adding some missing TPM files for proper maintenance. - The second addresses Coverity-ID: 356664 replacing a mempcy() which has undefined behavior with memmove()
2024-11-16MAINTAINERS: add lib/tpm* to TPM DRIVERSHeinrich Schuchardt
All TPM code should be maintained. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-16tpm: use memmove() for overlapping buffersHeinrich Schuchardt
The behavior of memcpy() for overlapping buffers is undefined. Fixes: 4c57ec76b725 ("tpm: Implement state command for Cr50") Addresses-Coverity-ID: 356664 Overlapping buffer in memory copy Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-15Merge patch series "teach 'env default' to optionally keep runtime variables"Tom Rini
Rasmus Villemoes <ravi@prevas.dk> says: Doing bringup of a board, part of my bootstrap logic is in U-Boot. So when tweaking that logic, I was bitten by a previous completed bootstrap having left a copy of the environment on the device, which was imported and thus overrided the new logic. So I thought, "ok, I'll just make sure to put 'env default -a' as the first part of the bootstrap logic so I'm not bitten again". Alas, my logic also relies on certain variables that are set by C code (e.g. for detecting board variant), and doing 'env default -a' also eliminates those. Looking around, the hashtab code already supports a flag that does exactly what I need, and exposing that is (morally) a one-liner. Link: https://lore.kernel.org/r/20241030213404.2894247-1-ravi@prevas.dk
2024-11-15test: env: add some test cases for new "env default -k" flagRasmus Villemoes
Check that the new -k flag works as expected. This also adds a test of the -a flag, which was previously missing, and as the comment says, perhaps for a good reason. At least now we have a test for it in combination with -k (and -f, because the ethaddr variables otherwise cause complaining). Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15test: env: check that non-mentioned variables to "env default" are preservedRasmus Villemoes
Instead of testing the same expected behaviour for both non_default_varX, test that when var1 is not in the default env but is mentioned in the "env default" cmdline, it is removed, while var2 is untouched. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15cmd/nvedit.c: teach 'env default' to optionally keep runtime variablesRasmus Villemoes
It can be useful to set all variables defined in the default environment to the value they have there, but without removing variables that are only defined at runtime. This can sort-of be done today, by using the "env default var1 var2 ..." variant, but that requires listing all variables defined in the default environment. It's much more convenient to be able to say env default -k -a The -k flag is also meaningful in the other case: If var1 is not defined in the default environment, but var2 is, env default var1 var2 would emit a warning about var1 not being in the default env and thus being deleted. With -k, there's no warning, and var1 is kept as-is. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15km: disable CMD_JFFS2 for all PPC boardsHolger Brunck
We don't use this feature, we can remove it therefore in the defconfigs. Signed-off-by: Holger Brunck <holger.brunck@hitachienergy.com>
2024-11-15fs: btrfs: hide duplicate 'Cannot lookup file' error on 'load'Dominique Martinet
Running commands such as 'load mmc 2:1 $addr $path' when path does not exists will print an error twice if the file does not exist, e.g.: ``` Cannot lookup file boot/boot.scr Failed to load 'boot/boot.scr' ``` (where the first line is printed by btrfs and the second by common fs code) Historically other filesystems such as ext4 or fat have not been printing a message here, so do the same here to avoid duplicate. The other error messages in this function are also somewhat redundant, but bring useful diagnostics if they happen somewhere, so have been left as printf. Note that if a user wants no message to be printed for optional file loads, they have to check for file existence first with other commands such as 'size'. Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com> Reviewed-by: Qu Wenruo <wqu@suse.com>
2024-11-15test/py: spi: Rephrase the warning/error messagesLove Kumar
Rephrasing the error and warning messages to be more meaningful and clear. Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-11-15Merge tag 'u-boot-imx-master-20241115' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23373 - Fix a missing break for CMD_DCD_SKIP reported by Coverty on imx8image. - Fix i.MX thermal threshold regression.
2024-11-15imx: Fix critical thermal thresholdFrancesco Dolcini
Fix the critical thermal threshold for i.MX processors, this was changed while moving the code from imx8m/imx9 directories into a shared place. There is no need to keep the critical threshold 5 degrees less than the SoC maximum temperature threshold, what is actually going to happen in practice is that we are going to power-off the board when the SoC is still within its working temperature range. In addition to that this is a change in the actual behavior, that is introducing a regression to users, and it was hidden within a software refactoring. Fixes: d0fe80890ab1 ("imx: Generalize fixup_thermal_trips") Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-11-15tools: imx8image: Add missing break for CMD_DCD_SKIPFabio Estevam
The CMD_DCD_SKIP case misses a break statement. Add it. Fixes: 254c00803b63 ("tools: imx8image: add possibility to skip dcd") Addresses-Coverity-ID: 514648: Control flow issues (MISSING_BREAK) Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Heiko Schocher <hs@denx.de>
2024-11-15drivers: bootcount: Add ZynqMP specific bootcount supportVasileios Amoiridis
Add native support of the bootcount mechanism in the ZynqMP by utilising internal PMU registers. The Persistent Global Storage Registers of the Platform Management Unit can keep their value during reboot cycles unless there is a POR reset, making them appropriate for the bootcount mechanism. Signed-off-by: Vasileios Amoiridis <vasileios.amoiridis@cern.ch> Reviewed-by: Heiko Schocher <hs@denx.de> Link: https://lore.kernel.org/r/20241105132744.1572759-2-vassilisamir@gmail.com Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15boot/image-board.c: boot_get_fpga(): pass compatible flag to fpga_load()Peter Korsgaard
For E.G. signed FPGA bitstreams, similar to how it is done for the FPGA loading from SPL since commit 71f1a5392aad ("spl: fit: pass real compatible flags to fpga_load()"). Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Link: https://lore.kernel.org/r/20241105162136.839633-1-peter@korsgaard.com Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15arm64: versal: Enable capsule update (SD)Michal Simek
Enable capsule update in SD boot mode. For getting it work there is a need to generate or setup dfu_alt_info and enable sysreset with DFU_MMC. Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/cede513de764b99560dc3737457dbc8a5cc71d21.1729857366.git.michal.simek@amd.com
2024-11-15arm64: versal: Do not define do_reset() if sysreset is enabledMichal Simek
If sysreset is enabled reset_cpu is defined in sysreset uclass that's why it can't be in platform/board code. The same change was done by commit f1bc214b0024 ("arm64: zynqmp: Do not define do_reset() if sysreset is enabled"). Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/8c1a5d6148c5e6c46790b725e8148a4e12d393ba.1729857366.git.michal.simek@amd.com
2024-11-15arm64: zynqmp: Fix r5 mode for cpu release commandPadmarao Begari
The cpu release command for r5 mode (lockstep/split) argument accepts only string. But the zynqmp tcminit command accepts string or number for r5 mode (lockstep/split or 0/1) argument. To fix the r5 mode argument, the common argument (lockstep/split or 0/1) is used across different u-boot commands. Use the strcmp() instead of strncmp() to make uniform the r5 mode (lockstep/split or 0/1) for the zynqmp tcminit and cpu release command. Signed-off-by: Padmarao Begari <padmarao.begari@amd.com> Link: https://lore.kernel.org/r/20241104122750.96251-1-padmarao.begari@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15arm64: xilinx: Rename SPI_ADVANCE to SPI_STACKED_PARALLELMichal Simek
Align defconfigs with the latest Kconfig layout. Fixes: f896aa656774 ("mtd: spi-nor: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL") Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/fe05a0e542d6117c10956e4a104123e46f956793.1730450241.git.michal.simek@amd.com
2024-11-15xilinx: use get_mem_top() to compute ram_topSughosh Ganu
Use the get_mem_top function to compute the value of ram_top. This was earlier done through LMB API's, which are no longer available till after relocation. Use get_mem_top() instead to compute the ram_top value. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Michal Simek <michal.simek@amd.com> Tested-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20241025172724.195093-3-sughosh.ganu@linaro.org Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15common: memtop: add logic to detect ram_topSughosh Ganu
Add generic logic to determine the ram_top value for boards. Earlier, this was achieved in an indirect manner through a set of LMB API's. That has since changed so that the LMB code is available only after relocation. Replace those LMB calls with a single call to get_mem_top() to determine the value of ram_top. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20241025172724.195093-2-sughosh.ganu@linaro.org Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-14.gitignore: add test overlay .S and u_boot_logo filesChristian Marangi
Add test overlay .S and u_boot_logo file to gitignore as these files are generated and should not be committed but ignored. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-11-14lmb.c: add missing comma in lmb_dump_region()Heinrich Schuchardt
In the message string " %s[%d]\t[0x%llx-0x%llx], 0x%08llx bytes flags: " a comma is missing before flags. To avoid increasing the code size replace '0x%' by '%#'. Printing the size with leading zeros but not the addresses does not really make sense. Remove the leading zeros from the size output. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> [trini: Fix test/cmd/bdinfo.c for these changes] Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-14test: use %zd for size_t in mbr_test_run()Heinrich Schuchardt
For printing size_t we must use %zd and not %ld to avoid a -Wformat error on 32-bit systems. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14test: print_printf() must check availability of %lsHeinrich Schuchardt
Availability of %ls in printf() depends on having CONFIG_EFI_LOADER or CONFIG_EFI_APP. Respect this when testing. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-14test: cmd/mbr: pass correct buffer size to init_write_buffersHeinrich Schuchardt
We want to completely initialize the mbr and embr buffers. This requires passing the buffer size and not the size of a pointer to the buffer. Addresses-Coverity-ID: 510454 Wrong sizeof argument Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14upl: fix parsing of DT propertyHeinrich Schuchardt
When calling decode_addr_size() we must pass the size of the device-tree property and not sizeof(void *). Fixes: 90469da3da0d ("upl: Add support for reading a upl handoff") Addresses-Coverity-ID: 510459 Wrong sizeof argument Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14cmd: upl: initialize unit test stateHeinrich Schuchardt
do_upl_write() calls upl_get_test_data() which may increment the fail count in the unit test state. We should initialize it. Addresses-Coverity-ID: 510465 Uninitialized scalar variable Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-14xyz-modem: Add missing fallthrough annotationHeinrich Schuchardt
Falltroughs in switch statements should be explicit. Addresses-Coverity-ID: 131162 Missing break in switch Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14lmb: do not panic in lmb_print_region_flagsHeinrich Schuchardt
Commit c3cf0dc64f1c ("lmb: add a check to prevent memory overrun") addressed a possible buffer overrun using assert_noisy(). Resetting via panic() in lmb_print_region() while allowing invalid lmb flags elsewhere is not reasonable. Instead of panicking print a message indicating the problem. fls() returns an int. Using a u64 for bitpos does not match. Use int instead. fls() takes an int as argument. Using 1ull << bitpos generates a u64. Use 1u << bitpos instead. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-11-14lib: rsa: Set conventional salt length RSA-PSS parameterLoic Poulain
RFC 3447 says that Typical salt length are either 0 or the length of the output of the digest algorithm, RFC 4055 also recommends hash value length as the salt length. Moreover, By convention, most of the signing infrastructures/libraries use the length of the digest algorithm (such as google cloud kms: https://cloud.google.com/kms/docs/algorithms). If the salt-length parameter is not set, openssl default to the maximum allowed value, which is a openssl 'specificity', so this works well for local signing, but restricts compatibility with other engines (e.g pkcs11/libkmsp11): ``` returning 0x71 from C_SignInit due to status INVALID_ARGUMENT: at rsassa_pss.cc:53: expected salt length for key XX is 32, but 478 was supplied in the parameters Could not obtain signature: error:41000070:PKCS#11 module::Mechanism invalid ``` To improve compatibility, we set the default RSA-PSS salt-length value to the conventional one. A further improvement could consist in making it configurable as signature FIT node attribute. rfc3447: https://datatracker.ietf.org/doc/html/rfc3447 rfc4055: https://datatracker.ietf.org/doc/html/rfc4055 Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2024-11-14lwip: fix code style issuesJerome Forissier
Fix various code style issues in the lwIP code. Reported-by: Tom Rini <trini@konsulko.com> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-14Makefile: fix empty MK_ARCH when using ccacheQuentin Schulz
One can use ccache by prefixing the typical CROSS_COMPILE value with "ccache " (e.g. "ccache aarch64-gnu-linux-" for Aarch64). This however makes the MK_ARCH empty because sed won't find a match anymore since it expects the CROSS_COMPILE value to start with the actual toolchain (with an unlimited number of white spaces before). This is failing builds since commit 7506c1566998 ("sandbox: Report host default-filename in native mode"). Add "ccache" prefix to ignore but participate in the matching regex used by sed to identify the target architecture. Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-14Merge patch series "examples: fix building on arm64"Tom Rini
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says: Commit f9886bc60f42 ("Added arm64 assembly for examples/api crt0") added the arm64 architecture but the code does not even build. With the changes the 'demo' program runs on qemu_arm64_defconfig using setenv autostart no dhcp demo setenv autostart yes bootelf $loadaddr Link: https://lore.kernel.org/r/20241103053551.52715-1-heinrich.schuchardt@canonical.com
2024-11-14examples: make glue and demo code compatible with 64-bitHeinrich Schuchardt
Commit f9886bc60f42 ("Added arm64 assembly for examples/api crt0") added a 64-bit target for the examples but did not adjust the demo code to be 64-bit compatible. Change variable size for pointers. Use %p to print pointers. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14examples: adjust LOAD_ADDR on arm64Heinrich Schuchardt
Change the load address on arm64 such that it is compatible with the memory available on qemu_arm64_defconfig. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14examples: fix building on arm64Heinrich Schuchardt
Commit f9886bc60f42 ("Added arm64 assembly for examples/api crt0") tried to add arm64 support to the examples but crt0.S does not even build for qemu_arm64_defconfig with CONFIG_API=y, CONFIG_EXAMPLES=y: examples/api/crt0.S: Assembler messages: examples/api/crt0.S:32: Error: expected a register at operand 1 -- `ldr ip,=search_hint' examples/api/crt0.S:33: Error: unexpected register type at operand 1 -- `str sp,[ip]' make[2]: *** [scripts/Makefile.build:292: examples/api/crt0.o] Error 1 Do not define _start twice. Use valid register names. Move syscall_ptr and search_hint to the data section to avoid an invalid relocation. Fixes: f9886bc60f42 ("Added arm64 assembly for examples/api crt0") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14Merge patch series "cmd: hash: correct parameter count check"Tom Rini
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says: Since commit 348ea878508d ("cmd: hash: fix param count check") the hash command cannot be used without the optional variable name parameter if CONFIG_HASH_VERIFY=y. 'hash sha1 $loadaddr $filesize' returns CMD_RET_USAGE. The minimum number of arguments is four no matter if verification is enabled or not. Fix the parameter check. Provide a unit test. Link: https://lore.kernel.org/r/20241102100836.103005-1-heinrich.schuchardt@canonical.com
2024-11-14Merge patch series "Apply SoM overlays on phyCORE-AM6xx SoMs"Tom Rini
Wadim Egorov <w.egorov@phytec.de> says: Our SoMs are available in multiple configurations, managed via device tree overlays. To determine the specific variant in use, we read the EEPROM and apply the appropriate overlays during boot to the device tree used by the OS. Apply overlays for phyCORE-AM62x and phyCORE-AM64x SoMs. Future K3 SoMs will be able to reuse this logic and overlays. Link: https://lore.kernel.org/r/20241030164815.1763506-1-w.egorov@phytec.de
2024-11-14test: unit test for hash commandHeinrich Schuchardt
Provide a unit test testing the hash command. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>