28336 Commits

Author SHA1 Message Date
Chunguang Li
0cbf30fbbf ls1028ardb: add env variables to assist boot
Add image, extra_bootargs, othbootargs and console_dbg to assist boot.

Signed-off-by: Chunguang Li <chunguang.li_2@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-04-09 12:17:28 -06:00
Marek Vasut
a383c96892 dm: Respect dma-ranges size
Rework dev_phys_to_bus() and dev_bus_to_phys() to respect the size
of the area specified in dma-ranges DT property. The area outside
of ranges is remapped 1:1, while the area in the ranges is remapped
according to the description in the dma-ranges property.

Adjust the test to test the area within the remapped range, not area
outside the remapped range, which was incorrect.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com>
2026-04-07 15:27:22 -06:00
Rasmus Villemoes
e2138cf1e6 linker_lists.h: drop never used ll_start, ll_end macros
These macros have AFAICT never been used at all. It's also far from
clear what purpose it could serve - for one thing, what _type would
one pass, other than void perhaps? The example using "struct
my_sub_cmd" seems misplaced, as how could one know that the first
linker list consists of those, and moreover, how would one know how
many there are?

The linker list concept is fragile enough on its own, there is no need
to have unused functionality lying around that may or may not bitrot
and certainly will confuse readers of linker_lists.h.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
2026-04-03 13:56:32 -06:00
Max Merchel
46de872995 configs: tqma6: change to include tqma6.h in baseboard headers
The SoM (TQMa6) can be used on various baseboards. No modifications to
the SoM files should be required to use the SoM on different baseboards.
Therefore, include the SoM headers in the baseboard.

Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2026-04-02 09:05:46 -03:00
Max Merchel
8ff44f6f61 board: tqma6: change to use shareable tq environment
Create tqma6 environment file and remove CFG_FEC_MXC_PHYADDR as it comes
from device tree.

Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2026-04-02 09:05:46 -03:00
Max Merchel
b08dc109da configs: tqma6.h: remove unused define for PFUZE100_I2C
Remove the definition of CFG_POWER_PFUZE100_I2C_ADDR and
TQMA6_PFUZE100_I2C_BUS as it is not used.

Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2026-04-02 09:05:46 -03:00
Max Merchel
6c591676a9 configs: tqma6.h: remove unused define for PHYS_SDRAM_SIZE
Remove the definition of PHYS_SDRAM_SIZE as it is not used.

Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2026-04-02 09:05:46 -03:00
Markus Niebel
de27ed88b3 env: tq: add shareable environment settings
Prepare moving boiler plate code out of board confguration header and
prepare to share a lot of things between boards.

Signed-off-by: Markus Niebel <Markus.Niebel@ew.tq-group.com>
Signed-off-by: Max Merchel <Max.Merchel@ew.tq-group.com>
2026-04-02 09:05:46 -03:00
Primoz Fiser
77801f4b64 board: phytec: phycore-imx91-93: Add phyCORE-i.MX91 support
As the PHYTEC phyCORE-i.MX91 [1] is just another variant of the existing
PHYTEC phyCORE-i.MX93 SoM but with i.MX91 SoC populated instead, add it
to the existing board-code "phycore_imx93", and rename that board to
"phycore_imx91_93" to reflect the dual SoCs support. While at it, also
rename and change common files accordingly. This way i.MX91 and i.MX93
SoC variants of the phyCORE SoM share most of the code and documentation
without duplication, while maintaining own device-tree and defconfigs
for each CPU variant.

Supported features:
 - 1GB LPDDR4 RAM
 - Debug UART
 - EEPROM
 - eMMC
 - Ethernet
 - SD-card
 - USB

Product page SoM:
[1] https://www.phytec.eu/en/produkte/system-on-modules/phycore-imx-91-93/

Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
2026-04-02 09:05:23 -03:00
Daniel Palmer
29cb951e8c fs: fat: Refactor dirty flag handling
Refactor the dirty flag handling a little bit so an inline
function is called instead of directly stuffing a value into
the variable.

This allows variable that holds the flag to be completely removed
if its not used i.e. CONFIG_FAT_WIRTE=n

Signed-off-by: Daniel Palmer <daniel@thingy.jp>
2026-03-27 13:14:18 -06:00
Tom Rini
6334f29678 AMD/Xilinx/FPGA changes for v2026.07-rc1 v2
Kconfig:
 - Correct XILINX_TIMER entry
 - Rework TARGET_MICROBLAZE_GENERIC
 - Fix CPU_MICROBLAZE PVR logic
 - Remove non existing SPL_BINMAN_FDT
 
 i2c:
 - Wire pca9848 support
 
 spi/cadence-qspi:
 - Disable DAC mode
 - Do reset pulse
 
 net/gem:
 - Disable broadcast packets
 - Clear TXSR transfer complete
 - Add support for dma-coherent
 
 versal2:
 - Enable GIC600 support
 - Fix UFS distro boot wiring
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSXAixArPbWpRanWW+rB/7wTvUR9QUCacaLXAAKCRCrB/7wTvUR
 9U0jAP9Csxop1hjS6LfylONeIuN0bKEJYfYSl8p0FuD2Q/D7gQD/eWiyQgnovxhR
 jyhPBlJwc7uJ2DWDxqXRwMhebsp48gM=
 =p5OH
 -----END PGP SIGNATURE-----

Merge tag 'xilinx-for-v2026.07-rc1-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next

AMD/Xilinx/FPGA changes for v2026.07-rc1 v2

Kconfig:
- Correct XILINX_TIMER entry
- Rework TARGET_MICROBLAZE_GENERIC
- Fix CPU_MICROBLAZE PVR logic
- Remove non existing SPL_BINMAN_FDT

i2c:
- Wire pca9848 support

spi/cadence-qspi:
- Disable DAC mode
- Do reset pulse

net/gem:
- Disable broadcast packets
- Clear TXSR transfer complete
- Add support for dma-coherent

versal2:
- Enable GIC600 support
- Fix UFS distro boot wiring
2026-03-27 12:11:33 -06:00
Tom Rini
80a4c49a4a Merge patch series "Introduce SQUASHFS support in SPL"
Richard Genoud <richard.genoud@bootlin.com> says:

SquashFS has support in U-Boot, but not in SPL.

This series adds the possibility for the SPL to load files from SquashFS
partitions.
This is useful, for instance, when there's a SquashFS rootfs containing
U-Boot binary.

NB: falcon mode is not supported yet.

Link: https://lore.kernel.org/r/20260313104229.1555236-1-richard.genoud@bootlin.com
2026-03-26 11:04:41 -06:00
Richard Genoud
6494e823b4 spl: add squashfs support
Implement spl_load_image_sqfs() in spl code.

This will be used in MMC to read a file from a squashfs partition.

Also, loosen squashfs read checks on file size by not failing when a
bigger size than the actual file size is requested. (Just read the file)
This is needed for FIT loading, because the length is ALIGNed.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
2026-03-26 11:04:28 -06:00
Richard Genoud
5e23f7f9f3 fs/squashfs: squashfs.h: include file should be self dependent
Otherwise, we get a lot of errors when including this file.

Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
2026-03-26 11:04:28 -06:00
Tom Rini
fce0358351 Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra into next 2026-03-25 11:09:34 -06:00
Tom Rini
5600255dfc Merge tag 'fsl-qoriq-next-2026-03-23' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq into next
CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/29614

- Kconfig update for SCMI_FIRMWARE
- Add SCMI pinctrl driver
2026-03-23 09:16:21 -06:00
Tom Rini
056d77e93d Merge tag 'mmc-next-2026-03-23' of https://source.denx.de/u-boot/custodians/u-boot-mmc into next
CI: https://source.denx.de/u-boot/custodians/u-boot-mmc/-/pipelines/29613

- Add missing quote in error message in regulator
- Support for emmc 5.1b specification
2026-03-23 09:15:33 -06:00
Anshul Dalal
e853610b56 include: env: ti: move board specific scripts out of ti_common
bootcmd_ti_mmc had cpsw0_qsgmii_phyinit related scripts even though this
was only relevant for the j721e/j7200 SoCs. This patch instead factors
out those scripts into a generic 'board_init' which is called as part of
bootcmd_ti_mmc.

This allows boards to more easily add custom behaviour to the ti_mmc
bootflow instead of having to modify the ti_common.env file.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
2026-03-23 09:15:10 -06:00
Padmarao Begari
07de5c1e01 arm64: versal2: Fix UFS boot command sequence
The BOOTENV_DEV_UFS macro is incomplete - it only initializes UFS
and scans SCSI devices but does not actually boot anything. This
causes the boot sequence to stop after scsi scan without loading
a kernel.

Update BOOTENV_DEV_UFS to set the devnum environment variable to
the UFS instance number, initialize the device using $devnum, and
delegate the boot process to the shared scsi_boot script. Remove
the explicit scsi scan, as it is already handled by scsi_boot.

This matches the pattern used by other boot device macros and
ensures that UFS devices can successfully boot using the distro
boot framework.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/5447ce1d5c4a21b0b62ce76ad642296110364041.1772801284.git.michal.simek@amd.com
2026-03-23 14:58:47 +01:00
Han Xu
67fc505228 mmc: Add support for eMMC 5.1B specification
Add support for eMMC specification version 5.1B by defining
MMC_VERSION_5_1B and including it in the version array.

eMMC 5.1B (JESD84-B51B) is a minor revision of the 5.1 specification
that primarily addresses MDT (Manufacturing Date) adjustment for dates
beyond 2025. This aligns with the Linux kernel commit 9996707822f82
("mmc: core: Adjust MDT beyond 2025").

Since the manufacturing date field is not currently used in U-Boot,
this change has no functional impact beyond proper device recognition.
It allows the driver to correctly identify and initialize eMMC devices
that report version 5.1B in their Extended CSD register.

Signed-off-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-03-23 11:27:52 +08:00
Dan Carpenter
0cb160f1b6 scmi: pinctrl: add pinctrl driver for SCMI
This driver adds the base support of pinctrl over SCMI.  The driver
does two main things.  First, it allows you to configure the initial
pin states.  Secondly, it's used a base to build a GPIO driver on
top of it.

To configure the states then add a pinmux config to the scmi_pinctrl
section:

        scmi_pinctrl: protocol@19 {
                reg = <0x19>;
                pinmux1: pinmux_test {
                        pinmux = <0 1 0xFFFFFFFF 18 1
                                  0 2 0xFFFFFFFF 18 1
                                  0 3 0xFFFFFFFF 18 1>;
                        function = "f_gpio1";
                        groups = "grp_1", "grp_3";
                };
        };

Under linux the pinctrl subsystem will parse the function and group
properties and use that to handle muxing.  However, under u-boot the
pin muxing is done using the "pinmux" property, which feeds raw SCMI
pinctrl PINCTRL_SETTINGS_CONFIGURE commands to the server.  The
numbers are: selector, identifier, function_id, config_type, and
config_value.  In the example above, it sets pins 1, 2, and 3 to 1.
The linux-kernel ignores this pinmux property.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-03-23 10:58:20 +08:00
Dan Carpenter
33dbe00fbb scmi: update comments for scmi_pinctrl_config_set_in()
Delete some extra space characters to make checkpatch.pl happy:

WARNING: please, no space before tabs

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-03-23 10:58:20 +08:00
Dan Carpenter
264cbb1871 scmi: pinctrl: add pinctrl message IDs
Add all the pinctrl message IDs.  I renamed SCMI_MSG_PINCTRL_CONFIG_SET
to SCMI_PINCTRL_SETTINGS_CONFIGURE so the naming matches the spec better.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-03-23 10:58:20 +08:00
Svyatoslav Ryhel
0a1f0404a6 power: regulator: cpcap: remove bit_offset_from_cpcap_lowest_voltage
The bit_offset_from_cpcap_lowest_voltage value was inherited from the
downstream kernel as a quirk. With the correct voltage table, it is no
longer needed. An additional benefit is that SW1, SW2, and SW4 now share
the same voltage table.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2026-03-22 14:58:57 +02:00
Tom Rini
eb00c71050 Merge patch series "bootm: Clean up arch-specific, pre-OS clean-up"
Simon Glass <sjg@chromium.org> says:

Each arch does something slightly different before booting the OS. Some
archs even do different things depending on the CPU type.

It is quite hard to know what actually happens in the final milliseconds
before the OS boot.

This series attempts to start cleaning up U-Boot in this area.

The basic intent is to create a new bootm_final() function which can be
called by all archs. It provides some flags for a couple of necessary
variations but otherwise it is generic.

All architectures are converted over to use this new function.

board_quiesce_devices() is moved into bootm_final() so that all archs
benefit from it.

This series fixes a bug in device_remove() is fixed where removing a
parent with specialised flags (e.g. DM_REMOVE_ACTIVE_ALL) could leave
children activated, since they do not match the flags. This fixes is
needed to avoid bootm_final() causing test failures on sandbox.

Future work could take this a little further:
- Convert EFI loader to use the same function
- Improve comments for cleanup_before_linux() across architectures
- Support fake-run tracing on all archs

Link: https://lore.kernel.org/r/20260306023638.2678886-1-sjg@chromium.org
2026-03-18 18:36:50 -06:00
Simon Glass
1ec3ee670d bootm: Create bootm_final() for pre-boot cleanup
There are various functions which announce that booting is imminent and
do related preparation. Most of these are arch-specific.

In practice, most archs do a similar thing. It would be better to
have a common function, with perhaps some events for things that are
really arch- and board-specific.

Create a new bootm_final() function with the common pre-boot steps:
printing the "Starting kernel" message, recording bootstage data,
optionally writing bootstage to the FDT and printing a report, and
removing active devices.

Be careful to avoid using BIT() macros which are not available with host
tools.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2026-03-18 13:17:34 -06:00
Simon Glass
5cc969caf0 bootstage: Add some missing dummy functions
Neither bootstage_fdt_add_report() nor bootstage_report() has a dummy
double for when bootstage is disabled. Add them.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2026-03-18 13:17:34 -06:00
Tom Rini
28608c8087 Merge patch series "led: remove legacy API"
Quentin Schulz <quentin.schulz@cherry.de> says:

This migrates the last user of the legacy LED API, IMX233-OLinuXino and
net/bootp.c, to the modern LED framework.

I do have concern about being able to use BOOTP in SPL? In which case, I
should probably add an additional check on CONFIG_IS_ENABLED(LED) in
addition to IS_ENABLED(CONFIG_LED_BOOT)?

I haven't tested this as I do not own an IMX233-OLinuXino, so please
give this a try if you own this device.

Then, since there's no user left of this legacy API, it is entirely
removed.

Link: https://lore.kernel.org/r/20251120-legacy-led-removal-v1-0-369d44338358@cherry.de
2026-03-18 13:13:57 -06:00
Quentin Schulz
fcbf81694c led: remove legacy API
No user of the legacy LED API anymore (except Sunxi with the PinePhone
but that is now a Sunxi-specific implementation), so let's remove
anything related.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2026-03-18 13:07:36 -06:00
Tom Rini
24db98cdf9 Merge tag 'u-boot-imx-next-20260318' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29557

- Add support for i.MX952.
- Add support for XPI1 on imx943_evk.
2026-03-18 08:45:37 -06:00
Tom Rini
eb53af2b4a * A fix for mt8188 clock oscillator rates.
* New driver for mt8189 clocks.
 * The rest is a first wave of a larger effort to refactor and clean up the
   mediatek clocks to replace various hacks that built up over time with
   something that is easier to understand and maintain.
 -----BEGIN PGP SIGNATURE-----
 
 iQFKBAABCgA0FiEE7BjZnmIOg9ac2GiYwswgAf8Bj8AFAmm52/gWHGRsZWNobmVy
 QGJheWxpYnJlLmNvbQAKCRDCzCAB/wGPwFr0B/4si1fIH8R+bsEYLKe7S0+gYYog
 hCoh5iDqX3/m5o9NjdejGy8/k0yMj0IxMJ3n/w7SdptRiDWKMiT++Sf2gy4kjdHc
 7SrHekBoBBILzkcKgzlXCjAIXlwQfj3eYmSOgaJPG3HPfrl8mdi45x8tYmtvOHlg
 DRd4/+PYJh4hPtT8gtWeeR6HYZ00dBh4W+7BJx3XRqKSv9T5YiY5T959Ue2NDDfz
 vd4oFB0eE2Lepz+tBd059t+aHOUhUxSJjtXN/rD3/ZZHzquiDO0mExEDFRXrrW7U
 v0YzWSGDElt2rk9996L1qTkI8yBnzByjVMe3wrJXDno/fOXMcPtAH41nsvuk
 =6gCS
 -----END PGP SIGNATURE-----

Merge tag 'mediatek-for-next-2026-03-17' of https://source.denx.de/u-boot/custodians/u-boot-mediatek into next

- A fix for mt8188 clock oscillator rates.
- New driver for mt8189 clocks.
- The rest is a first wave of a larger effort to refactor and clean up the
  mediatek clocks to replace various hacks that built up over time with
  something that is easier to understand and maintain.
2026-03-18 08:37:41 -06:00
Irving-CH Lin
290d17490e dt-bindings: clock: Add MediaTek MT8189 clock
Add IDs for the clocks of MediaTek MT8189 SoC.

Signed-off-by: Irving-CH Lin <irving-ch.lin@mediatek.com>
Reviewed-by: Julien Stephan <jstephan@baylibre.com>
Link: https://patch.msgid.link/20260303-mtk-mt8189-clocks-v4-6-ee85f8dd2f0d@baylibre.com
Signed-off-by: David Lechner <dlechner@baylibre.com>
2026-03-17 16:34:55 -05:00
Jamie Gibbons
b51e59c8b3 riscv: Add support for BeagleV-Fire
Bring U-Boot support for the BeagleV-Fire by adding a device tree and
supporting board files etc.

Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2026-03-17 11:39:18 +08:00
Peng Fan
d55cc91ab4 board: nxp: imx952_evk: Add i.MX952 15x15 lpddr4x board support
Add support for i.MX952 15x15 lpddr4x board support.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
2026-03-16 18:44:00 -03:00
Ye Li
e1cc7117b6 imx9: scmi: Get DDR size through SM SCMI API
System Manager(SM) has implemented the MISC protocol to retrieve DDR
information. Using this API, U-Boot can obtain the DDR size dynamically
instead of relying on static configuration macros.

This change addresses the DDR ECC enabled case, where 1/8 of the total
DDR size is reserved for ECC data. The scmi_misc_ddrinfo() returns the
DDR size with EEC overhead already deducted.

Implementation details:
- Query the DDR size via scmi_misc_ddrinfo()
- Replace direct REG_DDR_CS[0,1]_BNDS register reads with SCMI call
- Switch from PHYS_SDRAM[x]_SIZE macros to runtime detection
- For backward compatibility with older SM firmware, fall back to
  static PHYS_SDRAM[x]_SIZE configuration if the SCMI call fails

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2026-03-16 18:44:00 -03:00
Tom Rini
fa3a11fcf0 Pull request efi-2026-03-14
UEFI:
 
 * Require at least 128 KiB of stack space to use EFI sub-system.
 * Avoid buffer overrun in efi_var_restore().
 * Avoid superfluous variable store writes on unchanged data
 * Implement SPI Flash store for EFI variables.
 * Add an efidebug ecpt sub-command to display the ECPT table
   and a unit test for the command.
 
 Others:
 
 * Add missing include string.h to make exception command build again.
 * lib: uuid: add EBBR 2.1 conformance profile GUID
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmm1KT0ACgkQxIHbvCwF
 GsT+6w/+MA7GsPpoX/9wsJA+8z1RZr1oVFelKsEh6/zTn4P+sidDlebhk+oLeevd
 zFFuOJ+G6Uu7XfUWRQ5elMZ7jE+7Mr04uM7wtIbEXz0p20FtTTLfnYijXnCzGtQQ
 FBDK8vpuKq3sm1C3k0rakhUmS2HzbWQ5Uprk2Z9YKk+NbDzqT/34OibHmbII/x8s
 Vaat8bsE4Vwe6x1ztOOhOMFwU+9Bshycy+5jtYtOcqDg2uH463XUtsGfDXbQRcau
 vEtITT9P0hxNE6fVHDPpqdFX25Bkl6EvbAIDPLTSu+aYOq2/tsIT6Ek/+mQpkm53
 zIJjNM4jCYsHlFiBpAKLJMo/CFw3FSHx1X1ddh/zd3StP7n9v+ZaMQu+UY8TTb9t
 e2GrfzycmhJQpwUCkTTAs3wseqw1ulg1OTcQhnLUmLgyAoKWhpaziwXicZrje17i
 ouPFb9UIaISs0zPTYHraXRy0BqV/yM7R7zIwWi+S2XhWHzy0LWsnCsmJQu3w1nm3
 rL2L3CujCPsAaOvLCAC5x2JsdxrTJgmVgK6L10K6TgYoJrcf+dQbiif0ViNn/XR7
 hzXGCoj443fkS+VvPQC1UdWXx7zZDtHOv1Do5qWS3Uai27DQ1/WOgW2yTONLSoTx
 yAv/nsH9Vlqu+D7Zyy+u4q6fbZ57j719WaSTxkZpZZHi0UVljyw=
 =Ws6v
 -----END PGP SIGNATURE-----

Merge tag 'efi-2026-03-14' of https://source.denx.de/u-boot/custodians/u-boot-efi into next

Pull request efi-2026-03-14

CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/29512

UEFI:

* Require at least 128 KiB of stack space to use EFI sub-system.
* Avoid buffer overrun in efi_var_restore().
* Avoid superfluous variable store writes on unchanged data
* Implement SPI Flash store for EFI variables.
* Add an efidebug ecpt sub-command to display the ECPT table
  and a unit test for the command.

Others:

* Add missing include string.h to make exception command build again.
* lib: uuid: add EBBR 2.1 conformance profile GUID
2026-03-16 08:23:18 -06:00
Tom Rini
071e914b4a u-boot-dfu-20260316
DFU:
 * Make DFU_WRITE_ALT symbol available outside of DFU
 * Fix PCI subclass_code warning in spl_dfu
 
 Usb Gadget:
 * Mark udc_disconnect() as static
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEELulCp7Yfar5TE60AGQ0dtGZOGTUFAmm30KoACgkQGQ0dtGZO
 GTWrJQf/WhaPujo6FMhEMNhJuaZ6ASYwvxAE4L0MJ+cUv4TeF9N3hq22LJllnqIV
 yIOQUtxcQaTpw/aBR4KFDAuDu91CsdVnWtkC8FgBup104LvDkoSsTHgBtpFE4Bdj
 h+kYd5t4Se22M/c4sOPBqJNyLwIB1EZBq/JqfVuJ0rBp3GW9tdnSnJM6bDk7zsr9
 lBd6ZFUh/vMy3HmITxKz0/JRDpAcxlkUzZg/EVzVWe1MNxaDifJ7Sg4WecX6dfWQ
 qPewn4L398IUvr6RFs1XcjORbuaHOYIFP5jN0MhXvmm0QTelwIX+OzX5RHxWhhhA
 lQpcP2kyOxKGLdenLd/jbStBq1SwvQ==
 =BDza
 -----END PGP SIGNATURE-----

Merge tag 'u-boot-dfu-20260316' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next

u-boot-dfu-20260316

DFU:
* Make DFU_WRITE_ALT symbol available outside of DFU
* Fix PCI subclass_code warning in spl_dfu

Usb Gadget:
* Mark udc_disconnect() as static
2026-03-16 08:22:58 -06:00
Heinrich Schuchardt
8f83a45966 cmd/exception: missing include string.h
When building qemu_arm64_defconfig with CMD_EXCEPTION a build error occurs:

    In file included from cmd/arm/exception64.c:87:
    include/exception.h: In function ‘exception_complete’:
    include/exception.h:41:23: error: implicit declaration of
    function ‘strlen’ [-Wimplicit-function-declaration]
       41 |                 len = strlen(argv[1]);
          |                       ^~~~~~

Add the missing include.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2026-03-14 08:36:53 +01:00
Michal Simek
94c5c0835b efi_loader: avoid superfluous variable store writes on unchanged data
Every SetVariable() call triggers efi_var_mem_ins() followed by
efi_var_to_storage(), even when the variable value is not actually
changing. This is unfriendly to flash-backed stores that suffer
wear from unnecessary erase/write cycles.

Add a change-detection path to efi_var_mem_ins(): when size2 == 0
(i.e. not an append) and the caller passes a non-NULL changep flag,
look up the existing variable and compare attributes, length, time
and data byte-by-byte. If everything matches, set *changep = false
and return EFI_SUCCESS without touching the variable buffer.

Both efi_set_variable_int() and efi_set_variable_runtime() now
check the flag and skip efi_var_mem_del() / efi_var_to_storage()
when nothing changed.

Introduce efi_memcmp_runtime() - a runtime-safe byte-by-byte memory
comparison helper, following the same pattern as the existing
efi_memcpy_runtime(). The standard memcmp() is not available after
ExitBootServices() and calling it from Linux will crash.

Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2026-03-14 08:14:20 +01:00
Vincent Stehlé
1ab6d0d6bd efi_loader: export efi_ecpt_guid
Export the ECPT GUID, to prepare accessing it from more than one location.

The C file containing the GUID is compiled only when CONFIG_EFI_ECPT is
set; gate the export accordingly.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2026-03-14 08:10:26 +01:00
Andreas Schwab
4dcff3b572 sifive: switch to OF_UPSTREAM
Tested on HiFive Unleashed and HiFive Unmatched, both SPIFlash and MMC boot.

Signed-off-by: Andreas Schwab <schwab@suse.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2026-03-13 02:56:52 +08:00
Tom Rini
d93a63acfe Merge tag 'u-boot-rockchip-20260309' of https://source.denx.de/u-boot/custodians/u-boot-rockchip into next
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/29452

- New SoC support: RK3506, RK3582;
- New Board support: RK3528 FriendlyElec NanoPi Zero2;
- Other fixes
2026-03-10 10:07:04 -06:00
Jonas Karlman
52877548d3 arch: arm: rockchip: Add initial support for RK3506
Rockchip RK3506 is a ARM-based SoC with tri-core Cortex-A7.

Add initial arch support for the RK3506 SoC.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Acked-by: Mattijs Korpershoek <mkorpershoek@kernel.org> # drivers/usb/gadget
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2026-03-10 10:07:03 -06:00
Tom Rini
1e240f7206 Prepare v2026.04-rc4
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTzzqh0PWDgGS+bTHor4qD1Cr/kCgUCaa8k+wAKCRAr4qD1Cr/k
 Cu3PAP9NGUYzCBO5BOYYJ8nQNIyr2S/mKB25HQ54n+MiILxbTwD+MpTLhNw7Yz3M
 A9aXrmEMzMYeKPFfeP/Zjh4+7VDC7AI=
 =sEOP
 -----END PGP SIGNATURE-----

Merge tag 'v2026.04-rc4' into next

Prepare v2026.04-rc4
2026-03-09 15:26:34 -06:00
Tom Rini
b26cc03b7c Merge patch series "MAINTAINERS: Update ADI ADSP platform maintainers"
Philip Molloy <philip@philipmolloy.com> says:

This series updates the maintainers for the ADI ADSP platform. It
follows Greg's series adding support for ADI ADSP SoCs.

Timesys spent years developing and maintaining Linux support for ADI
ADSP SoCs. The maintenance contract has ended and ADI has brought that
effort in-house. Additionally, Timesys was acquired by another company.

Thanks to everyone at Timesys for all of their hard work over the years!

Link: https://lore.kernel.org/r/20260226111136.354009-1-philip@philipmolloy.com
2026-03-04 14:25:30 -06:00
Philip Molloy
15e2bacc30 treewide: Remove Timesys from ADI ADSP maintenance
After years of developing the ADI ADSP platform, Timesys was purchased
by another company and is no longer contracted to maintain the platform.

Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Reviewed-by: Greg Malysa <malysagreg@gmail.com>
2026-03-04 14:25:27 -06:00
Tom Rini
7b60cd933b usb: gadget: Mark udc_disconnect as static
With the last external callers of udc_disconnect long removed, mark this
function as static now and remove it from headers.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Link: https://patch.msgid.link/20260224154504.85301-1-trini@konsulko.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2026-03-03 09:09:43 +01:00
Julien Stephan
47905f2846 drivers: ufs: remove unused ufs_post_bind() declaration
Commit 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind")
inlined ufs_scsi_bind() into ufs_post_bind() as trivial
device_bind_driver() call.

ufs_scsi_bind() is no longer referenced anywhere in the codebase, so
drop its declaration from include/ufs.h.

Drivers used to include <ufs.h> to include prototype of ufs_scsi_bind()
function, so we can now safely remove such includes.

Fixes: 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind")
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20260203-cleanup-ufs-header-v1-1-4c10424485f0@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-03-02 15:20:02 +01:00
Adrian Freihofer
cc832b6764 siemens: capricorn: protect environment
With ENV_WRITEABLE_LIST only specific environment variables lisetd in
CFG_ENV_FLAGS_LIST_STATIC are read from the u-boot environment storage.
All other environment variables are set to default values and are not
written back to the storage.

The u-boot environment usually stays for the lifetime of the product.
There is no A/B copy mechanism as for the firmware itself. That means
that incompatible changes to environment variables in future u-boot
versions may lead to serious issues if the old environment is used with
a new u-boot version or vice versa.

Having this protection in place ensures that only a limited set of
environment variables are persisted across u-boot versions. All the
macros not listed in CFG_ENV_FLAGS_LIST_STATIC are now part of the
u-boot binary which is redundant and immutable. This guarantees that
the u-boot version and the default values of these environment variables
are always in sync and cannot be changed at runtime.

ustate and rastate are not relevant for u-boot itself. ustate is used
by swupdate which persists the transaction state in the environment.
rastate is a similar variable used by another user space application.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Heiko Schocher <hs@nabladev.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Heiko Schocher <hs@nabladev.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2026-02-28 15:31:50 -03:00
Heiko Schocher
49aa5b8362 imx: scu_api: implement sc_misc_get_boot_type
add function sc_misc_get_boot_type() which returns the
boot type.

Signed-off-by: Heiko Schocher <hs@nabladev.com>
Signed-off-by: Walter Schweizer <walter.schweizer@siemens.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2026-02-28 15:31:49 -03:00