summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-12-04eeprom: at24: add ST M24256E Additional Write lockable page supportMarek Vasut
The ST M24256E behaves as a regular M24C256, except for the E variant which uses up another I2C address for Additional Write lockable page. This page is 64 Bytes long and can contain additional data. Add entry for it, so users can describe that page in DT. Note that users still have to describe the main M24C256 area separately as that is on separate I2C address from this page. Unlike M24C32-D and M24C64-D, this part is specifically ST and does not have any comparable M24* counterparts from other vendors, hence the st, vendor prefix. Furthermore, the part name is M24256E without C between the 24 and 256, this is not a typo. Finally, there is M24C256-D part, which does contain 32 Bytes long Additional Write lockable page, which is a different part and not supported by this patch. Datasheet: https://www.st.com/resource/en/datasheet/m24256e-f.pdf From Linux kernel commit: 339cb28b9ee6 ("eeprom: at24: add ST M24256E Additional Write lockable page support") Signed-off-by: Marek Vasut <[email protected]>
2024-12-04arm: sunxi: Use "imply" for USB without further guardsTom Rini
Given that ARCH_SUNXI already implies that USB_GADGET should be enable, we should also imply USB being enabled. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-04efi_loader: Fix Kconfig logic around OF_LIBFDTTom Rini
Given that OF_LIBFDT is library functionality, the feature of EFI_LOADER needs to select OF_LIBFDT rather than depend on it being already enabled. Acked-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-04aspeed: Fix Kconfig logic on "DM_RESET" and ASPEED_AST2500Tom Rini
It is not the case that we can only pick ASPEED_AST2500 if DM_RESET is enabled, but rather choosing ASPEED_AST2500 means we must select DM_RESET. Signed-off-by: Tom Rini <[email protected]>
2024-12-04Merge tag 'efi-next-2024-12-04' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi into next CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/23707 With this pull request support for the EFI_HTTP_PROTOCOL and EFI_IP4_CONFIG2 protocols are added. This allows EFI applications to load files via HTTP. UEFI: add efi_dp_from_ipv4 function add efi_net_set_addr, efi_net_get_addr functions add support for HTTP device path set EFI bootdevice device path to HTTP when loaded from wget add support to send http requests and parse http headers provide EFI_IP4_CONFIG2_PROTOCOL provide EFI_HTTP_PROTOCOL support IPv4() in device path to text protocol provide unit tests for the HTTP and IPv4 Config2 protocols Network: zero terminate string with headers in wget_fill_info() zero terminate string with headers in wget_lwip_fill_info() pass port and server_name via wget_ctx in lwIP network stack let wget_with_dns work with dns disabled Others: Add HTTP and IPV4 Config II protocols to UUID library functions.
2024-12-04efi_selftest: add test for IPv4 Config2 protocolAdriano Cordova
Add a test for the EFI_IP4_CONFIG2_PROTOCOL. The test sets the ip policy to static, adds an ip address, and then reads the current ip address and checks for it to be the same as the one that was set. Signed-off-by: Adriano Cordova <[email protected]>
2024-12-04efi_selftest: add test for HTTP protocolAdriano Cordova
Add a test for the EFI_HTTP_PROTOCOL and EFI_SEVICE_BINDING_PROTOCOL. Signed-off-by: Adriano Cordova <[email protected]>
2024-12-04lib: uuid: display HTTP and IPV4 Config II protocolsHeinrich Schuchardt
Add long texts for * EFI HTTP Protocol * EFI HTTP Service Binding Protocol * EFI IPv4 Configuration II Protocol to the uuid library. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-12-04efi_loader: efi_net: add EFI_HTTP_PROTOCOLAdriano Cordova
Add an EFI HTTP driver. This commit implements the EFI_HTTP_PROTOCOL and the EFI_HTTP_SERVICE_BINDING_PROTOCOL. The latter is attached to the handle of th efi network device. This is the same handle where snp, pxe, and ipconfig are attached to. Signed-off-by: Adriano Cordova <[email protected]>
2024-12-04efi_loader: efi_net: add EFI_IP4_CONFIG2_PROTOCOLAdriano Cordova
Add an implementation of the EFI_IP4_CONFIG2_PROTOCOL. The protocol is attached to the handle of the efi network device. This is the same handle where snp and pxe are attached to. Signed-off-by: Adriano Cordova <[email protected]>
2024-12-04efi_loader: net: add support to send http requests and parse http headersAdriano Cordova
Add network-stack agnostic way to send an http request and parse http headers from efi drivers. This uses wget as a backend and communicates with it via efi_wget_info. The function efi_net_do_request allocates a buffer on behalf of an efi application using efi_alloc and passes it to wget to receive the data. If the method is GET and the buffer is too small, it re-allocates the buffer based on the last received Content-Length header and tries again. If the method is HEAD it just issues one request. So issuing a HEAD request (to update Content-Length) and then a GET request is preferred but not required. The function efi_net_parse_headers parses a raw buffer containing an http header into an array of EFI specific 'http_header' structs. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-12-04efi_loader: net: set EFI bootdevice device path to HTTP when loaded from wgetAdriano Cordova
Set the device path of the efi boot device to an HTTP device path (as formed by efi_dp_from_http) when the next boot stage is loaded using wget (i.e., when wget is used with wget_info.set_bootdev=1). When loaded from HTTP, the device path should account for it so that the next boot stage is aware (e.g. grub only loads its http stack if it itself was loaded from http, and it checks this from its device path). Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-12-04efi_loader: device_path: add support for HTTP device pathAdriano Cordova
Add efi_dp_from_http to form a device path from HTTP. The device path is the concatenation of the device path returned by efi_dp_from_ipv4 together with an URI node and an END node. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-12-04efi_loader: efi_net: add efi_net_set_addr, efi_net_get_addrAdriano Cordova
Add the functions efi_net_set_addr and efi_net_get_addr to set and get the ip address from efi code in a network agnostic way. This could also go in net_common, or be compiled conditionally for each network stack. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-12-04efi_api: add definitions for HTTP and IP4_CONFIG2 protocolsAdriano Cordova
Add EFI definitions for EFI_IP4_CONFIG2_PROTOCOL, EFI_HTTP_SERVICE_BINDING_PROTOCOL, and EFI_HTTP_PROTOCOL. According to UEFI spec 2.10. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2024-12-04efi_loader: add IPv4() to device path to text protocolHeinrich Schuchardt
Implement Ipv4() node support in the device path to text protocol. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-12-04efi_loader: device_path: add efi_dp_from_ipv4Adriano Cordova
Add efi_dp_from_ipv4 to form a device path from an ipv4 address. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-12-04efi_loader: device_path: add definition of DEVICE_PATH_SUB_TYPE_MSG_IPV4Adriano Cordova
Add definition for DEVICE_PATH_SUB_TYPE_MSG_IPV4 device path subtype. Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-12-04net: wget: let wget_with_dns work with dns disabledAdriano Cordova
This was marked as TODO in the code: - Enable use of wget_with_dns even if CMD_DNS is disabled if the given uri has the ip address for the http server. - Move the check for CMD_DNS inside wget_with_dns. - Rename wget_with_dns to wget_do_request Signed-off-by: Adriano Cordova <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Jerome Forissier <[email protected]>
2024-12-04net-lwip: zero terminate string with headers in wget_lwip_fill_info()Adriano Cordova
This patch comes as a companion to the same patch but for the legacy net stack. Commit 1327c2a8d6 ("net/lwip: wget: integrate struct wget_info into wget code") introduced function wget_fill_info() which retrieves the headers from the HTTP server response. As we want to parse the string in later patches we need to ensure that it is NUL terminated. We must further check that wget_info->headers in not NULL. Otherwise a crash occurs. Signed-off-by: Adriano Cordova <[email protected]>
2024-12-04net: zero terminate string with headers in wget_fill_info()Heinrich Schuchardt
Commit 2dd076a9c1b4 ("net: wget: integrate struct wget_info into legacy wget code") introduced function wget_fill_info() which retrieves the headers from the HTTP server response. As we want to parse the string in later patches we need to ensure that it is NUL terminated. We must further check that wget_info->headers in not NULL. Otherwise a crash occurs. Fixes: 2dd076a9c1b4 ("net: wget: integrate struct wget_info into legacy wget code") Signed-off-by: Adriano Cordova <[email protected]> Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-12-04lwip: wget: pass port and server_name via wget_ctxAdriano Cordova
Commit 5907c81 ("net: lwip: Enable https:// support for wget") was not correctly rebased on top of the changes introduced by Commit 6cc4d04 ("net/lwip: wget: put server_name and port into wget_ctx") in next. This commit re-applies a couple of lines from 6cc4d04. Fixes: Commit 5907c81 ("net: lwip: Enable https:// support for wget") Signed-off-by: Adriano Cordova <[email protected]>
2024-12-03Merge tag 'xilinx-for-v2025.04-rc1' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze into next AMD/Xilinx changes for v2025.04-rc1 binman: - Separate binman description from main DT zynqmp: - Enable binman for ZynqMP platforms - DT sync with Linux v6.12 - Update usb5744 hub for SOMs common: - Drop SPL_FIT_GENERATOR support versal2 - Enable OPTEE layers ospi: - Refactor the flash reset functionality pytest: - Fix tcminit mode handling
2024-12-03Merge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-samsungTom Rini
2024-12-03Merge patch series "CI: Set up for an arm64 runner"Tom Rini
Tom Rini <[email protected]> says: Hey all, This is picking up Simon's v5 of the above-named series and making a few more changes so that the follow-up series I have leads to arm64 being supported for almost all jobs. To quote Simon's cover letter: All gitlab runners are currently amd64 machines. This series attempts to create a docker image which can also support arm64 so that sandbox tests can be run on it. The TARGET_... environment variables for grub could perhaps be adjusted, using the new variables, but I have not done that for now. Adding to what Simon said, we now build grub for all architectures as the reason to install it was to be able to use the binaries in QEMU. That won't provide us with amd64 binaries on arm64 hosts so we can't use that shortcut anymore. Link: https://lore.kernel.org/r/[email protected]
2024-12-03configs: e850-96: Disable PSCI resetSam Protsenko
PSCI reset is not implemented in Exynos850 EL3 firmware. Disable it to fix the reset in cases where it can be used, e.g. when running EFI selftest. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2024-12-02CI: Add platform variableSimon Glass
Add a list of possible platforms that can be used by gitlab runners. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-12-02docker: Install toolchains on arm64 hostSimon Glass
Refactor the code to support downloading toolchains for arm64 as well as x86_64 There doesn't seem to be an xtensa toolchain for arm64 at the same location, so download that only on x86 Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-12-02docker: Fix LegacyKeyValueFormat warning with PYTHONPATHSimon Glass
Fix a warning due to the syntax used for PYTHONPATH: LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 304) Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-12-02docker: Adjust installed packages slightlySimon Glass
We no longer need to install libc6-i386 so we can drop that. Switch to installing linux-image-generic as that will be available on all hosts, to provide the /boot/vmlinu* file that's requires for various tools. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-12-02docker: Support building for multiple architecturesSimon Glass
Add instructions on how to build the file for multiple architectures. Add a message indicating what is happening. Update the documentation as well. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2024-12-02docker: Use cache mounts for aptTom Rini
Instead of deleting /var/lib/apt/lists after each relevant RUN line, use a cache mount as is the current best practices. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-02docker: Build grub for all architecturesTom Rini
For consistency now, and future ease of testing with non-amd64 hosts, build grub for all architectures rather than relying on host binaries for i386/x86_64. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-02docker: Update to grub-2.12Tom Rini
The current release of grub is 2.12 and it will be good to pick this up now so that we can update other parts of our stack. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-02docker: Use "make -j$(nproc)" when invoking makeTom Rini
We had a few places that were not using "make -j$(nproc)" but instead just plain "make" and so slowing down the overall build. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-02docker: Add kernel.org x86_64 toolchainTom Rini
Add in the x86_64 toolchain, but do not enforce using it for sandbox. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-12-02test: Adjust print_ut test to use unsigned charSimon Glass
Since char is unsigned on arm64, this test currently fails. It seems better to use unsigned anyway, since 0xff is written into the string at the start. Update the terminator-assert to use a character instead of a byte. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Changes in v6: - Re-introduce Changes in v2: - Use '\0' instead of 0 test/print_ut.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
2024-12-02sandbox: efi_loader: Correct use of addresses as pointersSimon Glass
The cache-flush function is incorrect which causes a crash in the remoteproc tests with arm64. Fix both problems by using map_sysmem() to convert an address to a pointer and map_to_sysmem() to convert a pointer to an address. Also update the image-loader's cache-flushing logic. Signed-off-by: Simon Glass <[email protected]> Fixes: 3286d223fd7 ("sandbox: implement invalidate_icache_all()") Acked-by: Heinrich Schuchardt <[email protected]> Changes in v6: - Re-introduce Changes in v2: - Drop message about EFI_LOADER arch/sandbox/cpu/cache.c | 8 +++++++- drivers/remoteproc/rproc-elf-loader.c | 18 +++++++++++------- lib/efi_loader/efi_image_loader.c | 3 ++- 3 files changed, 20 insertions(+), 9 deletions(-) Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-12-02common: relocate fdt_blob in global_data for FDTSRC_EMBED caseEvgeny Bachinin
Patch resolves two kind of bugs, one of which is vulnerability related to KASLR. === Issue briefly === Working with FDT (via non-relocated gd::fdt_blob) from inside bootm command may lead to the reading the garbage instead of FDT nodes. And this can result in various side-effects depending on DTS nodes, being parsed during bootm. But below is my specific story how I faced with this issue due to MESON_RNG probing failure. === Bugs description === 1) Bug is revealed on: * configuration below * U-boot 2024.10 - f919c3a889f ("Prepare v2024.10") It seems, the following patch is a trigger: ea955eea4f ("fdt: automatically add /chosen/kaslr-seed if DM_RNG is enabled") Generally, CONFIG_OF_EMBED=y & CONFIG_RNG_MESON=y are the most valuable ones for reproducing the issue. ``` CONFIG_ARCH_FIXUP_FDT_MEMORY=y CONFIG_CMD_FDT=y CONFIG_DEFAULT_FDT_FILE="" CONFIG_FDT_64BIT=y CONFIG_OF_BOARD_SETUP=y CONFIG_OF_CONTROL=y CONFIG_OF_EMBED=y CONFIG_OF_LIBFDT_ASSUME_MASK=0x0 CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_OF_LIBFDT=y CONFIG_OF_LIST="meson-axg-our-device-name" CONFIG_OF_REAL=y CONFIG_OF_TRANSLATE=y CONFIG_SUPPORT_OF_CONTROL=y CONFIG_SYS_FDT_PAD=0x3000 CONFIG_TOOLS_OF_LIBFDT=y CONFIG_DM_RNG=y CONFIG_RNG_MESON=y ``` 2) Due to CONFIG_OF_EMBED, the DTS is embedded into U-boot ELF and accessible via __dtb_dt_begin symbol. On early boot stage (board_f.c) the fdtdec_setup() is called only once before U-boot's relocation into top of RAM. fdtdec_setup() initializes gd::fdt_blob for FDTSRC_EMBED case: ``` gd->fdt_blob = dtb_dt_embedded(); gd->fdt_src = FDTSRC_EMBED; ``` 3) Then reloc_fdt() is called in board_f.c But due to CONFIG_OF_EMBED=y the reloc_fdt() does not update gd::fdt_blob value (strictly speaking, it is impossible for CONFIG_OF_EMBED=y, because U-boot ELF has not been relocated yet at this moment). As a result after relocation we get fdt_blob, pointing to DTS address before relocation: ``` # bdinfo <...> relocaddr = 0x000000000fedf000 reloc off = 0x000000000eedf000 <...> fdt_blob = 0x010ce6c0 << points to __dtb_dt_begin before relocation new_fdt = 0x0000000000000000 << empty erroneously fdt_size = 0x0000000000000000 << zero erroneously ``` 4) During bootm command (according to our ITS-config file) the Linux is loaded into 0x01080000 (which is very close to fdt_blob addr 0x010ce6c0). ``` ## Loading kernel from FIT Image at 04000000 ... Trying 'kernel' kernel subimage <...> Load Address: 0x01080000 ``` So Linux image overwrites the gd::fdt_blob memory location in RAM (0x010ce6c0). 5) Issue: Hence any manipulation with DTS (say, via FDT API) inside implementation of bootm command leads to accessing the fdt_blob area with garbage, that can lead to two situations: 5.1) Abort. Call to fdt_off_dt_struct() from fdt_next_tag() :: fdt_offset_ptr():: fdt_offset_ptr_() returns with garbage, that leads to tagp value being out of RAM top addr (256 Mb in our board), causing the abort: ``` Boot cmd: bootm 0x4000000#boot_evt1 bootm_run_states() <...> image_setup_libfdt() fdt_chosen() fdt_kaslrseed() uclass_get_device() uclass_get_device_tail() device_probe() device_of_to_plat() meson_rng_of_to_plat() clk_get_by_name_optional() clk_get_by_name() clk_get_by_name_nodev() ofnode_stringlist_search() fdt_stringlist_search() fdt_getprop() fdt_get_property_namelen_() fdt_first_property_offset() fdt_check_node_offset_() fdt_next_tag(): ``` tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); ``` fdt_next_tag() tagp:0x22890766 fdt_next_tag() ram_top:0x10000000 (tagp OUT of RAM) "Synchronous Abort" handler, esr 0x96000010, far 0x22890766 elr: 000000000108be24 lr : 000000000108be24 (reloc) elr: 000000000ff6fe24 lr : 000000000ff6fe24 x0 : 0000000000000041 x1 : 0000000000000000 x2 : 000000000ff3b57c x3 : 0000000000000012 x4 : 000000000ded2ad5 x5 : 0000000000000020 x6 : 00000000ffffffe8 x7 : 000000000ded2f40 x8 : 00000000ffffffd8 x9 : 000000000000000d x10: 0000000000000006 x11: 000000000001869f x12: 000000000fffffff x13: 000000000fffffff x14: 0000000000000000 x15: 000000000ded2abb x16: 000000000ff3b080 x17: 0000000000000001 x18: 000000000ded3dc0 x19: 0000000022890766 x20: 00000000010cb0f0 x21: 00000000000015e4 x22: 000000000ff8f4d8 x23: 000000000000000b x24: 000000000ded2fbc x25: 000000000ffe2000 x22: 000000000ff8f4d8 x23: 000000000000000b x24: 000000000ded2fbc x25: 000000000ffe2000 x26: 000000000ffe2000 x27: 000000000000000b x28: 000000000ff9cf2d x29: 000000000ded2f40 Code: aa1603e1 91197484 52801742 94004de8 (b9400276) ``` 5.2) Vulnerability situation "KASLR is disabled". Almost the same as in (5.1), but 2 situations happen (depending on the value of garbage): * call to fdt_offset_ptr_() :: fdt_off_dt_struct(fdt) returns not so big garbage, leading to tagp, being inside RAM. * or calculations of absoffset inside fdt_offset_ptr() leads to failure of the one of if() conditions with NULL as retval. Result is fdt_next_tag() interprets the tagp as FDT_END. And we are returning from our callstack via functions' error paths, leading to "No RNG device" and "KASLR disabled due to lack of seed": ``` fdt_kaslrseed() uclass_get_device() <...> device_probe() device_of_to_plat() meson_rng_of_to_plat() clk_get_by_name() clk_get_by_name_nodev() <...> fdt_stringlist_search() fdt_getprop() fdt_get_property_namelen_() fdt_first_property_offset() fdt_check_node_offset_() fdt_next_tag(): ``` tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE); ``` fdt_next_tag() tagp:0000000001890677 fdt_next_tag() ram_top:0x10000000 (tagp is inside RAM) uclass_get_device_tail():486 device_probe() ret:-22 No RNG device Starting kernel ... [ 0.000000] Linux version 6.9.12 [ 0.000000] KASLR disabled due to lack of seed ``` Signed-off-by: Evgeny Bachinin <[email protected]>
2024-12-02Revert "global_data: Drop spl_handoff"Simon Glass
This breaks chromebook_coral which says: Video: No video mode configured in FSP! This reverts commit 2e9313179a846b581c0fc3f6a49e19f3d343efa8. Signed-off-by: Simon Glass <[email protected]>
2024-12-02binman: Avoid skipping binman_init()Simon Glass
A recent lwip change stopped binman's init from working, so it is not possible to read nodes from the image description anymore. Correct this by dropping the offending line. Signed-off-by: Simon Glass <[email protected]> Fixes: 4d4d7838127 net: lwip: add TFTP support and tftpboot command
2024-11-30powerpc/t2080qds: remove spurious x permission from README fileRasmus Villemoes
It doesn't make sense for a README file to be executable. Remove that bit. Signed-off-by: Rasmus Villemoes <[email protected]>
2024-11-30arm: dts: socfpga: remove spurious execute permission from dt filesRasmus Villemoes
It doesn't make sense for these files to have the x bit set. It was, probably accidentally, added in: Fixes: 2c494e62c31a (arm: dts: Stratix10: Add QSPI node) Signed-off-by: Rasmus Villemoes <[email protected]>
2024-11-30Makefile: avoid non-standard sed expressionsMark Kettenis
The '?' that is used in the sed expression that determines MK_ARCH is part of the extended regular expression syntax, but the default behaviour of sed as specified by POSIX is to use only basic regular expression syntax. Use the equivalent '\{0,1\}' instead as suggested by the OpenBSD re_format(7) man page. Fixes: 04b1d84221d5 ("Makefile: fix empty MK_ARCH when using ccache") Signed-off-by: Mark Kettenis <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Tested-by: Quentin Schulz <[email protected]>
2024-11-30net: lwip: wget: fix legacy syntaxJerome Forissier
Commit 356011f7ac25 ("lwip: fix code style issues") has inadvertently broken the support for the legacy syntax: => wget 192.168.0.16:test.bin invalid uri, no file path Invalid URL. Use http(s):// The reason is two calls to strncpy() were replaced by strlcpy() without paying attention to the fact that they are not equivalent in the present case. Since we are using a character counter (n) and since we do not depend on having a properly null-terminated string at each step in the parsing, strlcpy() is not justified and strncpy() is the right tool for the job. So use it again. Reported-by: Tom Rini <[email protected]> Signed-off-by: Jerome Forissier <[email protected]>
2024-11-30Revert "efi_memory: do not add U-Boot memory to the memory map"Ilias Apalodimas
This reverts commit ("commit a68c9ac5d8af ("efi_memory: do not add U-Boot memory to the memory map"). This code was removed when the EFI subsystem started using LMB calls for the reservations. In hindsight it unearthed two problems. The e820 code is adding u-boot memory as EfiReservedMemory while it should look at what LMB added and decide instead of blindly overwriting it. The reason this worked is that we marked that code properly late, when the EFI came up. But now with the LMB changes, the EFI map gets added first and the e820 code overwrites it. The second problem is that we never mark SetVirtualAddressMap as runtime code, which we should according to the spec. Until we fix this the current hack can't go away, at least for architectures that *need* to call SVAM. More specifically x86 currently requires SVAM and sets the NX bit for pages not marked as *_CODE. So unless we do that late, it will crash trying to execute from non-executable memory. It's also worth noting that x86 calls SVAM late in the boot, so this will work until someone decides to overwrite/use BootServicesCode from the OS. Notably arm64 disables it explicitly if the VA space is > 48bits, so doesn't suffer from any of these problems. This doesn't really deserve a fixes tag, since it brings back a hack to remedy a situation that was wrong long before that commit, but in case anyone hits the same bug ... Simon sent the original revert in the link, but we need a proper justification for it. Link: https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Ilias Apalodimas <[email protected]> Acked-by: Sughosh Ganu <[email protected]> Reported-by: Simon Glass <[email protected]>
2024-11-30Merge tag 'u-boot-imx-master-20241130' 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/23643 - Make DRAM coding GPIOs available before relocation on Data Modul i.MX8M Mini/Plus eDM SBC because the DRAM configuration GPIO straps must be accessible in SPL and before relocation because the GPIOs are sampled both in U-Boot SPL as well as early on in U-Boot proper. - Pick safe DRAM size on failure on Data Modul i.MX8M Mini/Plus eDM SBC instead of failing with hang() or panic(). - Replace YModem with SDP on Data Modul i.MX8M Mini eDM SBC SPL since SDP is much more flexible. - Deduplicate Data Modul i.MX8M eDM SBC defconfigs. - Perform plain boot in altbootcmd on Data Modul i.MX8M Mini/Plus eDM SBC.
2024-11-29test: add command to 'Boot fail' messageHeinrich Schuchardt
When a timeout occurs while executing a command a 'Boot fail' message is written and testing is stopped. The user is left in the dark about the failure cause. ! _pytest.outcomes.Exit: Boot fail: Marking connection bad - no other tests will run ! Add the executed command to the message. Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-11-29test: add command to 'Lab failure' timeout messageHeinrich Schuchardt
When a timeout occurs while executing a command a 'Lab failure' message is written and testing is stopped. The user is left in the dark about the failure cause. ! _pytest.outcomes.Exit: Lab failure: Marking connection bad - no other tests will run ! Add the word 'Timeout' and the executed command to the message. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-11-29cmd: add a fetch utilityCaleb Connolly
Add a small utility for displaying some information about U-Boot and the hardware it's running on in a similar fashion to the popular neofetch tool for Linux [1]. While the output is meant to be useful, it should also be pleasing to look at and perhaps entertaining. The ufetch command aims to bring this to U-Boot, featuring a colorful ASCII art version of the U-Boot logo. [1]: https://en.wikipedia.org/wiki/Neofetch Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3 Tested-by: Neil Armstrong <[email protected]> # on SM8560-QRD Acked-by: Heinrich Schuchardt <[email protected]> Tested-by: Tony Dinh <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>