summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-05fpga: Avoid ignored-qualifiers warningAlexander Dahl
Fixes annoying warnings of the following type when built with W=1 (for each file including fpga.h): CC drivers/fpga/fpga.o In file included from /mnt/data/adahl/src/u-boot/include/xilinx.h:7, from /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:10: /mnt/data/adahl/src/u-boot/include/fpga.h:61:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 61 | const fpga_desc *const fpga_get_desc(int devnum); | ^~~~~ /mnt/data/adahl/src/u-boot/include/fpga.h:81:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 81 | const fpga_desc *const fpga_validate(int devnum, const void *buf, | ^~~~~ /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:36:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 36 | const fpga_desc *const fpga_get_desc(int devnum) | ^~~~~ /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:53:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 53 | const fpga_desc *const fpga_validate(int devnum, const void *buf, | ^~~~~ Do some type and cast cleanup on that fpga_desc type while at it. Link: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers Signed-off-by: Alexander Dahl <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05arm64: zynqmp: Describe ethernet controllers via aliases on SOMMichal Simek
Add ethernet aliases to CC (Carrier card) description to create a connection which is used by fdt_fixup_ethernet() for updating local-mac-address in DT. On Kria SOM MAC address is read from i2c eeprom at start and based on it environment variables are created. Without creating aliases U-Boot is not able to inject local-mac-address DT property and OS won't get the same MAC address unless another i2c read is happening in OS. Also aliases are using string not phandle that's why full path has to be provided but that shouldn't be a big issue because location of ethernet controller is fixed. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/6d360e71a0530d201578e27a6997dbd472772e39.1737466907.git.michal.simek@amd.com
2025-02-05arm64: zynqmp: enable u-boot itb generation via binman if SPL is enabledPrasad Kummari
Output images are generated via Binman only if SPL is enabled, as there is no consumer for them otherwise. An #ifdef check ensures that when SPL is enabled, Binman generates the U-Boot ITB. If SPL is disabled, ITB generation is skipped since the ITB format is supported only by SPL. Without SPL, generating such an image is unnecessary, as it would not be used The second reason is that when a DTB is passed, the current logic cannot handle it without an additional step in U-Boot to parse an appended FIT image and enable board-specific code to select the correct DTB config. The MULTI_DTB_FIT configuration should be used if support for multiple DTBs is required, but SPL is not being used. Signed-off-by: Prasad Kummari <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/7cba738ae36dacf7d1b0cfbaf13e0c9b3a0df225.1737462296.git.michal.simek@amd.com
2025-02-05xilinx: Remove SYS_MALLOC_F_LEN setup via board KconfigMichal Simek
The commit e05689242238 ("Kconfig: Change SYS_MALLOC_F_LEN default to 0x2000") already setup default values from board Kconfigs that's why no reason to duplicate it again. Fixes: e05689242238 ("Kconfig: Change SYS_MALLOC_F_LEN default to 0x2000") Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/c3edd75b7a19d5cc205c9d5c37c2d86189ca3de6.1737380025.git.michal.simek@amd.com
2025-02-05configs: zynqmp: Add usb_pgood_delay for SOM boardsPrasad Kummari
Add usb_pgood_delay to ensure proper detection of USB devices. Increase the USB power good delay on the SOM boards, as this is required for certain USB sticks otherwise, they may not be detected. Signed-off-by: Prasad Kummari <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05spi: cadence_qspi: Add missing prototype for cadence_qspi_flash_resetVenkatesh Yadav Abbarapu
Add missing prototype to fix the sparse warning, warning: no previous prototype for 'cadence_qspi_flash_reset' [-Wmissing-prototypes]. Fixes: 6d234a79e9 ("cadence_qspi: Refactor the flash reset functionality") Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05spi: cadence_qspi: Fix OSPI DDR mode alignment issuePadmarao Begari
If the least significant bit of the address is set to one when using the DDR protocol for data transfer then the results are indeterminate for few flash devices. To fix this the least significant bit of the address is set to zero. Signed-off-by: Padmarao Begari <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05arm64: versal2: Enable the OPTEE commandVenkatesh Yadav Abbarapu
Enable the command OPTEE which runs the basic 'hello world ta'. Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05xilinx: Enable support for Infineon Octal flashesVenkatesh Yadav Abbarapu
Added support for Infineon Octal flash components on the Versal and Versal Net platforms. Signed-off-by: Tejas Bhumkar <[email protected]> Signed-off-by: Venkatesh Yadav Abbarapu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2025-02-05board: samsung: e850-96: Provide bootstd default envSam Protsenko
Add default environment variables needed for Standard Boot enablement as described in [1]. Also rework the eMMC partition table for Linux boot so it only has two partitions: 1. EFI System Partition (EFI vars, GRUB efi app, firmware files) 2. rootfs partition (Debian rootfs, /boot, extlinux.conf, boot.scr) Both partitions are made bootable so that 'bootflow' command can detect all loader files (rootfs might contain extlinux.conf and boot.scr). 'ldfw' partition is removed too, as ldfw.bin can be loaded from ESP now (from /EFI/firmware/ldfw.bin). Android partitons will be added later, once Android boot is actually enabled for E850-96. Notes: - $kernel_comp_addr_r uses the same address (0x88000000) as LDFW buffer (in board/samsung/e850-96/fw.c), but that's fine, as LDFW will be copied to another RAM location (Secure World) by SMC command, so it's only used temporarily on startup - addition assignment (+=) operation is used for $partitions to avoid spaces added by newlines, so that $partitions can be used in the shell with no quotes Now it's possible to successfully automatically boot Debian rootfs: => env default -f -a => env save => gpt write mmc 0 $partitions => reset [1] doc/develop/bootstd/overview.rst Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05board: samsung: e850-96: Report LDFW loading failuresSam Protsenko
LDFW firmware loading can fail, e.g. in case if user forgot to upload the binary to the appropriate location (/EFI/firmware/ldfw.bin on ESP partition). Report such errors explicitly, so that the user can notice it early and take necessary actions. But don't return error code from board_init() in this case, as LDFW firmware is not mandatory for board operation and is only required for some features like TRNG. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05board: samsung: e850-96: Load LDFW from EFI partitionSam Protsenko
In case when EFI System Partition is present it can be used to store firmware binaries, instead of keeping those on separate dedicated partitions. That simplifies the partition table and makes it more standard. Rework the firmware loader code to look for LDFW binary at /EFI/firmware/ldfw.bin on ESP first, and if either the partition or the file doesn't exist -- fallback to reading it from 'ldfw' partition. This way backward compatibility can be kept, and Android partition tables without ESP partition can be handled too. Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05configs: e850-96: Enable Standard BootSam Protsenko
Enable Standard Boot on E850-96 as documented in [1]. Along with corresponding changes in the default environment and properly prepared eMMC partitions (ESP and rootfs), it makes it possible to boot Debian rootfs automatically. All boot methods were tested: efi_mgr, efi, syslinux and script. The preferred boot method is efi_mgr, which relies on the configured EFI variables (stored in /ubootefi.var file on ESP partition), which boots either GRUB from /EFI/debian/grubaa64.efi, or systemd-boot from /EFI/BOOT/BOOTAA64.EFI. Currently used boot sequence: U-Boot -> bootcmd -> 'bootflow scan -lb' -> efi_mgr -> GRUB -> Debian [1] doc/develop/bootstd/overview.rst Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05configs: e850-96: Enable more EFI featuresSam Protsenko
The basic EFI support is already enabled by EFI_LOADER. Follow SystemReady IR recommendations [1,2] for U-Boot and enable support for more EFI features. That includes: - CONFIG_CMD_BOOTEFI_SELFTEST: support for "bootefi selftest" command - CONFIG_CMD_NVEDIT_EFI: support for "env -e" to explore EFI vars - CONFIG_CMD_EFIDEBUG: support for "efidebug" command Also enable RTC support: - CONFIG_EFI_SET_TIME - CONFIG_CMD_RTC - CONFIG_DM_RTC - CONFIG_RTC_EMULATION [1] https://developer.arm.com/documentation/DUI1101/1-1/Configure-U-Boot-for-SystemReady [2] https://developer.arm.com/documentation/DUI1101/1-1/Test-SystemReady-IR Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05configs: e850-96: Enable U-Boot environment on eMMCSam Protsenko
Store U-Boot environment in BOOT2 HW area of eMMC (/dev/mmcblk0boot1), as it's currently unused. BOOT1 area will be probably used for storing low-level bootloaders further, so let's not touch it. Both primary and redundant environments work fine: => env default -f -a ## Resetting to default environment => env save Saving Environment to MMC... Writing to redundant MMC(0)... OK Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-05configs: e850-96: Enable options for updated envSam Protsenko
The E850-96 default environment is going to be updated soon, requiring next config options to be enabled: - CONFIG_DEFAULT_FDT_FILE: $fdtfile will use this value - CONFIG_PARTITION_TYPE_GUID: $partitions will rely on "type" feature Signed-off-by: Sam Protsenko <[email protected]> Signed-off-by: Minkyu Kang <[email protected]>
2025-02-04net: miiphybb: Update debug() printMarek Vasut
Update the debug() print, use __func__ to always print matching function name, and also print bus name in case there are multiple busses. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Paul Barker <[email protected]>
2025-02-04net: miiphybb: Convert ifdef DEBUG to debug()Marek Vasut
Replace ifdeffery with plain debug() function call. No functional change. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Paul Barker <[email protected]>
2025-02-04arm64: renesas: Add R-Car S4 Starter Kit supportMarek Vasut
Add support for the R-Car S4 Starter Kit with R8A779F4 SoC support. This implementation natively uses OF_UPSTREAM to pull in most recent DT. The defconfig is derived from S4 Spider, with reduced UART baud rate to 921600 Bdps. The DT alias to rswitch is removed as the alias should point to rswitch ports, not to rswitch itself, see [1]. [1] https://lore.kernel.org/linux-arm-kernel/[email protected]/ Signed-off-by: Marek Vasut <[email protected]>
2025-02-04remoteproc: renesas: Synchronize caches across coresMarek Vasut
Explicitly flush icache on the CR52 core before jumping to the next stage software to make sure it does not contain any invalid content. Explicitly flash and invalidate dcache on the CA76 core both over the trampoline buffer and over the CR52 firmware, and then trigger full system synchronization, to make sure the data surely land in DRAM, from where the CR52 can surely pick them up. Signed-off-by: Marek Vasut <[email protected]>
2025-02-04Gitlab: Add results.xml to the list of artifacts as well.Tom Rini
Whereas with Azure the JUnit results file is available for download, Gitlab doesn't default to including it as an artifact to download and only makes it available via its own JUnit parser. Fix this by listing it as an artifact to save as well. Signed-off-by: Tom Rini <[email protected]>
2025-02-04GitLab: Run sandbox on fast amd64 and fast arm64 hostsTom Rini
Now that we can run sandbox on arm64 hosts, have these jobs run on both the fast arm64 and amd64 hosts to catch any issues. Signed-off-by: Tom Rini <[email protected]>
2025-02-04examples: fix building on arm32Liya Huang
Refer to the commit a3c101a61348 ("examples: fix building on arm64") fix for arm32. crt0.S does not even build with: operating system and architecture: 5.15.0-130-generic x86_64 installed version of gcc and binutils: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.3) GNU ld (GNU Binutils for Ubuntu) 2.34 used defconfig: stm32h750-art-pi_defconfig used commands for building: export CROSS_COMPILE=arm-none-eabi- ARCH=arm make stm32h750-art-pi_defconfig make menuconfig # to add make examples/api/crt0.S: Assembler messages: examples/api/crt0.S:32: Error: lo register required -- `ldr ip,=search_hint' examples/api/crt0.S:33: Error: lo register required -- `str sp,[ip]' examples/api/crt0.S:39: Error: lo register required -- `ldr ip,=syscall_ptr' examples/api/crt0.S:40: Error: lo register required -- `ldr pc,[ip]' make[2]: *** [scripts/Makefile.build:292:examples/api/crt0.o] Error 1 Use valid register names and instructions. Signed-off-by: Liya Huang <[email protected]>
2025-02-04API: system info adds FLASH and clk fetchesLiya Huang
Refer to api/api platform-powerpc.c implementation Signed-off-by: Liya Huang <[email protected]>
2025-02-04examples: eliminate CONFIG_STANDALONE_LOAD_ADDRHeinrich Schuchardt
CONFIG_STANDALONE_LOAD_ADDR has been used for examples/standalone but not for examples/api. The suitability of an address to load an ELF binary and run it does not only depend on the architecture but also on the memory layout of the board which is not reflected in the default value of CONFIG_STANDALONE_LOAD_ADDR. Commit 32b7e39db4d3 ("Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig") set the default on RISC-V to 0x0 though most boards used 0x80200000 before the patch. On most boards we can assume 8 MiB of memory available above $loadaddr. So we can safely use $loadaddr + 4 MiB as load address for the standalone example and eliminate CONFIG_STANDALONE_LOAD_ADDR altogether. Fixes: 32b7e39db4d3 ("Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig") Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-04examples/api: improve determination of LOAD_ADDRHeinrich Schuchardt
The current load address for the 'demo' binary does not work for qemu_arm_defconfig. The suitability of an address to load an ELF binary and run it does not only depend on the architecture but also on the memory layout of the board. On most boards we can assume that 8 MiB of memory is available above $loadaddr. So $loadaddr + 0x400000 should work there. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-04image: apply FDTOs on FDT image node without a load propertyQuentin Schulz
A FIT image which is NOT using -E when created by mkimage - that is with image data within the FIT - will fail to apply FDTO if the base FDT image node does not specify a load property (which points to an address in DRAM). This is because we check that the FDT address we want to apply overlay to (i.e. modify and likely increase in size) is not inside the FIT and give up otherwise. This is assumed necessary because we may then overwrite other data when applying in-place. However, we can do better than giving up: relocating the FDT in another place in DRAM where it's safe to increase its size and apply FDTOs. While at it, do not discriminate anymore on whether the data is within the FIT data address space - that is FIT images created with mkimage -E - as that still may be susceptible to unintended data overwrites as mkimage -E simply concatenates all blobs after the FIT. If the FDT blob isn't the last, it'll result in overwriting later blobs when resizing. The side effect is that the load property in the FIT is only temporarily used to load the FDT but then relocated right before we start applying overlays. Suggested-by: Marek Vasut <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Quentin Schulz <[email protected]>
2025-02-04Merge patch series "mediatek: final preparation for OF_UPSTREAM support"Tom Rini
Christian Marangi <[email protected]> says: This is the last batch of part to push actual support of OF_UPSTREAM for the mediatek SoC. The plan is to make the current downstream DTS on part with upstream implementation so we can permit a gradual transition to it while we don't cause any regression to any user. This is to have the same node downstream and upstream. Mediatek is working hard upstream to also push all the remaining nodes. All patch are the final changes after the pinctrl patch merged previously. All patch pass CI tests Link: https://github.com/u-boot/u-boot/pull/731 Link: https://lore.kernel.org/r/[email protected]
2025-02-04arm: dts: mediatek: add PCIe node for MT7981Christian Marangi
Add PCIe node for MT7981 with all the required properties to make PCIe work. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04arm: dts: mediatek: add USB nodes for MT7981John Crispin
Add USB PHY nodes for MT7981. These are needed for USB support and also for PCIe support as the u3 PHY can also be used for PHY. Signed-off-by: John Crispin <[email protected]> Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04mediatek: mt7981: move gpio-controller up and rename pinctrl to pioChristian Marangi
Move gpio-controller up to pinctrl node and rename label to "pio" to match the label used in upstream kernel linux. Update any DTS that reference the pinctrl to follow the new naming and structure. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04mediatek: mt7988: move gpio-controller up and rename pinctrl to pioChristian Marangi
Move gpio-controller up to pinctrl node and rename label to "pio" to match the label used in upstream kernel linux. Update any DTS that reference the pinctrl to follow the new naming and structure. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04pinctrl: mediatek: mt7988: rename reg-names to upstream linux formatChristian Marangi
Rename reg-names to upstream linux format. Upstream linux drop the "_base". To make use of upstream DTSI, align to the upstream naming. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04mediatek: mt7986: move gpio-controller up and rename pinctrl to pioChristian Marangi
Move gpio-controller up to pinctrl node and rename label to "pio" to match the label used in upstream kernel linux. Update any DTS that reference the pinctrl to follow the new naming and structure. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04pinctrl: mediatek: mt7986: rename reg-names to upstream linux formatChristian Marangi
Rename reg-names to upstream linux format. Upstream linux drop the "_base". To make use of upstream DTSI, align to the upstream naming. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-04pinctrl: mediatek: mt7981: rename reg-names to upstream linux formatChristian Marangi
Rename reg-names to upstream linux format. Upstream linux drop the "_base". To make use of upstream DTSI, align to the upstream naming. Signed-off-by: Christian Marangi <[email protected]> Reviewed-by: Weijie Gao <[email protected]> Tested-by: Weijie Gao <[email protected]>
2025-02-03Merge patch series "vbe: Series part G"Tom Rini
Simon Glass <[email protected]> says: This includes the VBE ABrec (A/B/recovery) implementation as well as a number of patches needed to make it work: - marking some code as used by SPL_RELOC - selection of images from a FIT based on the boot phase - removal of unwanted hash code which increases code-size too much - a few Kconfig-related additions for VPL Note: The goal for the next series (part H) is to enable VBE on rk3399-generic, i.e. able to boot on multiple rk3399-based boards with only the TPL phase being different for each board. Link: https://lore.kernel.org/r/[email protected]/
2025-02-03vbe: Add an implementation of VBE-ABrecSimon Glass
So far only VBE-simple is implemented in U-Boot. This supports a single image which can be updated in situ. It is often necessary to support two images (A and B) so that the board is not bricked if the update is interrupted or is bad. In some cases, a non-updatable recovery image is desirable, so that the board can be returned to a known-good state in the event of a serious failure. Introduce ABrec which provides these features. It supports three independent images and the logic to select the desired one on boot. While we are here, fix a debug message to indicate the function it called. Provide a maintainers entry for VBE. Note that fwupdated only supports VBE-simple so far, but supports for ABrec will appear in time. Signed-off-by: Simon Glass <[email protected]>
2025-02-03vbe: Allow VBE to disable adding loadables to the FDTSimon Glass
When VBE operates within VPL it does not want the FDT to be changed. Provide a way to disable this feature. Move the FIT_IMAGE_TINY condition out of spl_fit_record_loadable() so that both conditions are together. This makes the code easier to understand. Replace the existing fit_loaded member, which is no-longer used. Signed-off-by: Simon Glass <[email protected]>
2025-02-03vbe: Tidy up a few commentsSimon Glass
Join the comment block for the fit_image_load() call back to where it should be. Also fix a debug statement. Signed-off-by: Simon Glass <[email protected]>
2025-02-03vbe: Provide VPL binman-symbols for the next phaseSimon Glass
Add support for moving from TPL->VPL->SPL so that the VPL build can fit properly into the boot flow. Use #ifdefs to avoid creating unwanted symbols which Binman would then try (and perhaps fail) to provide. Add debugging to indicate the next phase. Signed-off-by: Simon Glass <[email protected]>
2025-02-03vbe: Support providing a linker scriptSimon Glass
Allow a linker script to be provided for VPL as it is for other U-Boot phases. Signed-off-by: Simon Glass <[email protected]>
2025-02-03lib: Mark gunzip as relocation codeSimon Glass
Mark the gunzip code as needed by relocation. This is used to decompress the next-phase image. Signed-off-by: Simon Glass <[email protected]>
2025-02-03lib: Mark memcpy() and memmove() as relocation codeSimon Glass
Mark these functions as needed by relocation. These functions are used to copy data while relocating the next-phase image. Drop the 'safe' versions from SPL as they are not needed. Change the static array to a local one, to avoid link errors when trying to access the data. Signed-off-by: Simon Glass <[email protected]>
2025-02-03lib: Mark lz4 as relocation codeSimon Glass
Mark the lz4 decompression code as needed by relocation. This is used to decompress the next-phase image. Drop the 'safe' versions from SPL as they are not needed. Change the static array to a local one, to avoid a crash errors when trying to access the data from relocated code. Make this conditional to avoid a code-size increase when SPL_RELOC is not used/ Signed-off-by: Simon Glass <[email protected]>
2025-02-03lib: Mark crc8 as relocation codeSimon Glass
Mark the crc8 code as needed by relocation. This is used as a simple check against corruption of the code when copying. Signed-off-by: Simon Glass <[email protected]>
2025-02-03spl: Provide a way to mark code needed for relocationSimon Glass
Add a linker symbol which can be used to mark relocation code, so it can be collected by the linker and copied into a suitable place and executed when needed. Signed-off-by: Simon Glass <[email protected]>
2025-02-03spl: Allow spl_load() to be controlled in any xPL phaseSimon Glass
Some phases may wish to use full FIT-loading and others not, so allow this to be controlled. Add some debugging while we are here. Signed-off-by: Simon Glass <[email protected]>
2025-02-03vbe: Support selecting images based on phase in FITSimon Glass
With SPL we want to specify the phase of the image to be loaded. Add support for this. This is the implementation of a FIT feature added to the spec a few years ago and entails a small code-size increase, about 70 bytes on Thumb2. Signed-off-by: Simon Glass <[email protected]> Link: https://docs.u-boot.org/en/latest/usage/fit/index.html
2025-02-03spl: Support selecting images based on phase in simple FITSimon Glass
At present the simple FIT-loader always loads images, ignoring whether they are intended for the next phase or not. VBE packages up several images in the same FIT, some destined for VPL and some for SPL. Add logic to check the phase before loading the image. Return -EPERM in that case and handle it gracefully. Fix a unnecessary re-computation of read_offset while here. Signed-off-by: Simon Glass <[email protected]>