Commit Graph
100383 Commits
Author SHA1 Message Date
Hrushikesh SalunkeandTom Rini 7d70986071 configs: am64x_evm_a53_defconfig: Enable configs for PCI Endpoint mode
TI's AM64x SoC has a single instance of PCIe Controller namely PCIe0
which is a Cadence PCIe Controller. To support PCI Endpoint
functionality with the PCIe0 instance of PCIe, enable the corresponding
configs.

Signed-off-by: Hrushikesh Salunke <h-salunke@ti.com>
2025-06-26 17:16:40 -06:00
Hrushikesh SalunkeandTom Rini a4a0edc604 pci_endpoint: Add TI K3 Cadence PCIe Endpoint Controller driver
Add support for Endpoint mode of operation in the Cadence PCIe
Controller present on TI's K3 SoCs. This driver is an adaptation of the
Linux kernel v6.15 driver (drivers/pci/controller/cadence/pci-j721e.c).

Signed-off-by: Hrushikesh Salunke <h-salunke@ti.com>
2025-06-26 17:16:40 -06:00
Lukasz MajewskiandFabio Estevam 9d7f90782d ARM: imx: mxs: Add support for imx287 based BTT devices
The btt[c3] devices are based on imx287 SoC.

U-Boot SPL 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)
Trying to boot from MMC1

U-Boot 2025.04-01081-g07e086681d26 (Apr 16 2025 - 12:24:36 +0200)

CPU:   Freescale i.MX28 rev1.2 at 454 MHz
BOOT:  SSP SPI #3, master, 3V3 NOR
Model: BTT3
Board: LWE BTT SoM HW rev 0
DRAM:  256 MiB
Core:  86 devices, 15 uclasses, devicetree: separate
MMC:   MXS MMC: 0
Loading Environment from SPIFlash... SF: Detected is25lp128 with page
                    size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In:    serial@80074000
Out:   serial@80074000
Err:   serial@80074000
Net:   eth0: ethernet@800f0000
Hit any key to stop autoboot:  0

Signed-off-by: Lukasz Majewski <lukma@denx.de>
2025-06-16 14:40:27 -03:00
Tom Rini 9de873b4c3 Merge patch series "linux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15 + winbond"
Christian Marangi <ansuelsmth@gmail.com> says:

This small series sync linux/bitfield.h from Linux 6.15 and fix all
the compilation error due to a change in the header include.

The sync is needed to make it easier to support the winbond changes.

The changes are CI test with [1]

[1] https://github.com/u-boot/u-boot/pull/777

Link: https://lore.kernel.org/r/20250607211133.2005-1-ansuelsmth@gmail.com
2025-06-14 09:13:39 -06:00
Christian MarangiandTom Rini fe37fb8214 mtd: spinand: winbond: add Winbond W25N04KV flash support
Add Winbond W25N04KV flash support that use a different value to detect
ECC bitflip.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-06-14 09:11:10 -06:00
Christian MarangiandTom Rini 01cc7046ad linux/bitfield.h: sync <linux/bitfield.h> from Linux 6.15
Sync bitfield.h header with Linux 6.15 version. Mainly is to permit the
introduction of FIELD_PREP_CONST. The bug.h header changed to
build_bug.h doesn't cause any regression as we also ship split header
similar to how it's done with in Linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-06-14 09:11:10 -06:00
Christian MarangiandTom Rini 5c734237ac arm: apple: rtkit: add missing header linux/bug.h and linux/bitops.h
The GENMASK/GENMASK_ULL macro requires inclusion of linux/bitops.h
header. It does currently work as bitfield.h includes it indirectly
but this will change when bitfield.h will be synced with new Linux
version.

Also raw printf require linux/bug.h header (also currently included
indirectly by bitfield.h)

Explicitly include the headers to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-06-14 09:11:10 -06:00
Christian MarangiandTom Rini 1f1aafe0b5 iommu: qcom-smmu: add missing linux/bug.h header for WARN_ON
The WARN macro requires inclusion of linux/bug.h header. It does
currently work as bitfield.h includes it indirectly but this will
change when bitfield.h will be synced with new Linux version.

Explicitly include the header to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-06-14 09:11:10 -06:00
Christian MarangiandTom Rini 7d0f273379 clk: imx: add missing linux/bug.h header for WARN
The WARN macro requires inclusion of linux/bug.h header. It does
currently work as bitfield.h includes it indirectly but this will
change when bitfield.h will be synced with new Linux version.

Explicitly include the header to fix future compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2025-06-14 09:11:10 -06:00
Tom Rini 03817a2a80 Merge patch series "Hex value prefix case cleanup"
E Shattow <e@freeshell.de> says:

Make consistent use of lowercase hexadecimal prefix '0x' throughout U-Boot.

There are a few remaining uses of uppercase 'X' to denote hexadecimal prefix
or placeholder in documentation and error messages.

External devicetree-rebasing dts/upstream and the generated code of
xilinx/zynq are ignored for the series.

Link: https://lore.kernel.org/r/20250606224558.1117422-1-e@freeshell.de
2025-06-14 09:10:48 -06:00
E ShattowandTom Rini 0230ad1c30 include: use lowercase hex prefix style
Use consistent lowercase hex prefix style in include/*

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:40 -06:00
E ShattowandTom Rini 58bcf9ab19 arch: use lowercase hex prefix style
Use consistent lowercase hex prefix style in arch/*

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:40 -06:00
E ShattowandTom Rini d1aacc9c78 lib: use lowercase hex prefix style
Use consistent lowercase hex prefix style in lib/*

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:40 -06:00
E ShattowandTom Rini c5824a1b3d tools: use lowercase hex prefix style
Use consistent lowercase hex prefix style in tools/*

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:40 -06:00
E ShattowandTom Rini 449a556652 drivers: use lowercase hex prefix style
Use consistent lowercase hex prefix style in drivers/*

Does not change hex prefix case in allcaps uppercase style error messages

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:39 -06:00
E ShattowandTom Rini ba7634c6b6 board: use lowercase hex prefix style
Use consistent lowercase hex prefix style in board/*

Does not change auto-generated files in xilinx/zynq/*/ps7_init_gpl.c

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:39 -06:00
E ShattowandTom Rini 9f208a3e70 configs: use lowercase hex prefix style
Use consistent lowercase hex prefix style in configs/*

Signed-off-by: E Shattow <e@freeshell.de>
2025-06-14 09:09:39 -06:00
Tom Rini 2556caa89c Merge patch series "drop volatile from global data"
Rasmus Villemoes <ravi@prevas.dk> says:

There's really no reason for the gd pointer to have the volatile
qualifier.

In fact, I claim that it's completely unnecessary and just pessimizes
code generation and forces ugly casts in lots of places. For example,
see the casts in drivers/core/tag.c where elements are added to
gd->dm_taglist, or a helper such as cyclic_get_list() that should not
be needed.

Also, it is what ends up standing in the way of an otherwise
innocent code cleanup of list.h:
https://lore.kernel.org/u-boot/20250522165656.GB2179216@bill-the-cat/

Note that riscv, x86 as well as arm64 with LTO enabled has not had
this volatile qualifier, so it's unlikely there's any generic code
that depends on it.

Link: https://lore.kernel.org/r/20250604195612.2312979-1-ravi@prevas.dk
2025-06-13 16:57:34 -06:00
Rasmus VillemoesandTom Rini ae86cd8c59 riscv: remove volatile from set_gd prototype
It's slightly ironic that riscv at very first had the gd pointer
volatile qualified [6020faf62c ("riscv: nx25: include: Add header
files to support RISC-V")], removed that back in 2018
[40717eb849 ("riscv: checkpatch: Fix use of volatile")], and then in
2020 this helper was added [6b9966e1aa ("riscv: define function
set_gd()")] which needlessly had volatile in the prototype.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini ce55643546 arm: remove volatile from set_gd prototype
The global gd pointer is no longer volatile-qualified. Callers of this
helper function have been updated to no longer use volatile-qualifed
temporary variables, so update the prototype accordingly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini abe705be47 lib/trace: drop volatile qualifier from "save gd" variables
The global gd pointer is no longer volatile-qualified, so drop that
qualifier from these bookkeeping variables.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini 83b040983c efi: drop volatile qualifier from "save gd" variables
The global gd pointer is no longer volatile-qualified, so drop that
qualifier from these bookkeeping variables.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini 01869368c0 arm: imx: remove unnecessary volatile qualifiers from "save gd" variables
Now that the global gd pointer is no longer volatile-qualified,
there's no reason for the temporary variables used for
saving/restoring it to have that qualifier.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Tested-by: Anshul Dalal <anshuld@ti.com>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini 30b97f58f2 arc: drop volatile qualifier from gd pointer
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini a6f3d70a6b m68k: drop pointless #if 0 block
The way DECLARE_GLOBAL_DATA_PTR is used, the stuff under #if 0 can
never compile as you cannot have a non-constant initializer at global
scope (and one would get linker errors as well because the 'gd' symbol
would be defined in multiple TUs).

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Acked-by: Angelo Dureghello <angelo@kernel-space.org>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini e66d7fc089 m68k: drop volatile qualifier from gd pointer
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:15 -06:00
Rasmus VillemoesandTom Rini fe0fa2bb66 microblaze: drop volatile qualifier from gd pointer
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:14 -06:00
Rasmus VillemoesandTom Rini 344c7e091c mips: drop volatile qualifier from gd pointer
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:14 -06:00
Rasmus VillemoesandTom Rini aa53d9bb7d powerpc: drop volatile qualifier from gd pointer
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-06-13 16:57:14 -06:00
Rasmus VillemoesandTom Rini 45fa0014ba arm: drop volatile qualifier from gd pointer
There's a bunch of other places where this qualifier should be
dropped, e.g. in the set_gd() prototype and for various variables used
for stashing the value in the mach-imx/ directory and elsewhere. But
that will be done in follow-up patches.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Tested-by: Anshul Dalal <anshuld@ti.com>
2025-06-13 16:57:14 -06:00
Simon GlassandTom Rini f73450918d spl: Rename jump_to_image_no_args()
This function is currently a misnomer at times as we have cases where it
passes arguments to the image. In preparation for making that be a more
common case rename this function to jump_to_image(...). In order to do
this, rename jump_to_image in board_init_r(...) to jumper so that we do
not have a conflict.

Signed-off-by: Simon Glass <sjg@chromium.org>
[trini: Reword the commit message, adding missing cases of
        jump_to_image_no_args()]
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-06-13 13:22:53 -06:00
Simon GlassandTom Rini a6e4fdfd77 x86: Move Intel GNVS file into the common include directory
Move this so we can include it from sandbox, needed since it is in a
bloblist and must have a check.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-06-13 13:10:33 -06:00
Tom Rini 7660feeedc Merge patch series "ti: Add support for eCAP PWM and LCD pin mux"
Sukrut Bellary <sbellary@baylibre.com> says:

This patch series adds the support for

1. In am33xx SoC[1], enhanced capture (eCAP) supports auxiliary PWM (APWM).
This series adds the PWM driver support for the APWM feature for eCAP on
AM33xx. AM335X_ECAP0_IN_PWM0_OUT is used to enable the backlight.

2. Fix build warning in ti-ehrpwm driver in dev_deb().

3. Enable eCAP0 PWM and LCD pin muxing to support splash screen on
AM335x EVM[2].

[1] AM335x TRM - https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf
[2] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

per discussion on the earlier patch series,
https://lore.kernel.org/all/20250319202516.3300444-1-sbellary@baylibre.com/
dropping the device tree changes in this series due to OF_UPSTREAM
conflict.
As we are dropping the DT patch, started with the new series instead of
V2.

This series doesn't contain defconfig changes since we don't want to
enable LCD, splash screen and PWM support by default.
Enabling splash screen and PWM support in defconfig causes u-boot crash
on AM335x based beaglebone black. This will be handled in a separate
patch.

Link: https://lore.kernel.org/r/20250530212232.1686613-1-sbellary@baylibre.com
2025-06-12 16:27:02 -06:00
Sukrut BellaryandTom Rini 04df37a095 board: ti: am335x: Enable eCAP0 PWM and LCD pin muxing
On AM335x EVM[1],
1. pin AM335X_ECAP0_IN_PWM0_OUT is used to enable the
backlight. ECAP0 can be configured in single channel PWM mode.
If CONFIG_PWM_TI_ECAP is enabled, perform eCAP0 pin muxing.

2. Pins LCD_DATA0 - LCD_DATA15, gpmc_ad8 - gpmc_ad15 and
lcd_vsync, lcd_sync, lcd_ac_bias_en, lcd_pclk are used for driving LCD.
If CONFIG_AM335X_LCD is enabled, perform the LCD pin muxing.

This is required to enable splash screen support on AM335x EVM.
[1] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
2025-06-12 16:26:56 -06:00
Sukrut BellaryandTom Rini d0bcbf782f pwm: ti: am33xx: Fix build warnings in dev_dbg()
If CONFIG_PWM_TI_EHRPWM is enabled, it throws the build warning in
dev_dbg() due to incorrect format specifier as,

"warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but
argument 4 has type ‘fdt_addr_t’ {aka ‘unsigned int’}".

Fix this with the correct format specifier.

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
2025-06-12 16:26:56 -06:00
Sukrut BellaryandTom Rini 1bf82082b9 pwm: ti: am33xx: Enable Auxiliary PWM using eCAP
In am33xx SoC[1], enhanced capture (eCAP) supports auxiliary PWM (APWM).
This series adds the PWM driver support for the APWM feature for eCAP on
AM33xx.

eCAP HW also supports the capture mode. Currently, this driver only
supports APWM.

This is based on the Linux kernel driver -> drivers/pwm/pwm-tiecap.c
Version: v6.12

Tested on AM335x EVM[2].

[1] AM335x TRM - https://www.ti.com/lit/ug/spruh73q/spruh73q.pdf
[2] AM335x EVM - https://www.ti.com/tool/TMDXEVM3358

Signed-off-by: Sukrut Bellary <sbellary@baylibre.com>
2025-06-12 16:26:56 -06:00
Yao ZiandTom Rini 548d997229 ram: Move Kconfig options into their own menu entry
RAM drivers using Device Model currently lack of their own Kconfig menu
entry, which makes Kconfig put all options of the class in the top-level
menu of device drivers. These options are also incorrectly grouped with
pinctrl options in the generated .config, which is hard to read. Let's
create a menu entry for these drivers.

Fixes: 6c51df6859 ("dm: Add support for RAM drivers")
Signed-off-by: Yao Zi <ziyao@disroot.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-06-12 16:14:33 -06:00
Aristo ChenandTom Rini 0805e46486 bootstage: Fix typo
Fix typo from heder to header

Signed-off-by: Aristo Chen <aristo.chen@canonical.com>
2025-06-12 16:14:33 -06:00
Richard WeinbergerandTom Rini 9fe2e4b464 fdt: Make sure there is no stale initrd left
Although if we don't setup an initrd, there could be a stale initrd
setting from the previous boot firmware in the live device tree. So,
make sure there is no setting left if we don't want an initrd.

This can happen when booting on a Raspberry Pi. The boot firmware can
happily load an initrd before us and configuring the addresses in the
live device tree we get handed over.

Especially the setting `auto_initramfs` in config.txt is dangerous.
When enabled (default), the firmware tries to be smart and looks for
initramfs files.

Signed-off-by: Richard Weinberger <richard@nod.at>
2025-06-12 16:13:51 -06:00
Tony DinhandTom Rini 53cc4332b3 ext4fs: Fix: Read outside partition error (take 2)
Use lbaint_t for blknr to avoid overflow in ext4fs_read_file().

Background:

blknr (block number) used in ext4fs_read_file() could be increased to a
very large value and causes a wrap around at 32 bit signed integer max,
thus becomes negative. This results in an out-of-normal range for sector
number (during the assignment delayed_start = blknr) where delayed_start
sector is typed uint64 lbaint_t. This causes the "Read outside partition"
error.

Looks like we also have this overflown problem in ext4_write.c that needs
to be addressed.

This patch was tested on the Synology DS116 (Armada 385) board, and a
4TB Seagate HDD.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
2025-06-12 13:22:26 -06:00
Bryan BrattlofandTom Rini 52c0290526 binman: add atf-bl1 to etypes
Some SoCs require a Trusted Firmware-A (TF-A) AP Trusted ROM (BL1) to
initialize the SoC before U-Boot can run properly. Add an atf-bl1 etype
so we can properly package BL1 into a final binary

Signed-off-by: Bryan Brattlof <bb@ti.com>
Acked-by: Simon Glass <sjg@chromium.org>
2025-06-12 13:22:23 -06:00
Emanuele GhidoliandTom Rini 79ae5510a2 arm: mach-k3: j784s4: Call do_board_detect() before DDR probing
Call do_board_detect() hook before the K3 DDRSS driver gets probed.
It will allow boards to adjust DDR timings in do_board_detect().

Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
2025-06-12 13:19:59 -06:00
Tom Rini d142036b4c Merge patch series "Update the kbuild system to 5.1"
Ilias Apalodimas <ilias.apalodimas@linaro.org> says:

Another series backporting and merging patches from Linux 5.1 kbuild.
There is still a gap that I plan to update after this series gets
merged [0]

[0] https://source.denx.de/u-boot/custodians/u-boot-tpm/-/commit/5da099cef04fb5c02dcafab8d1bab8ddc2855765

Link: https://lore.kernel.org/r/20250611202449.2317279-1-ilias.apalodimas@linaro.org
2025-06-11 16:22:53 -06:00
Ilias ApalodimasandTom Rini 070b81458a kbuild: fix single target build for external module
Backported from kernel
commit e07db28eea38 ("kbuild: fix single target build for external module")

It's worth noting that crmodverdir is empty for U-Boot.
Just backport it to make diffing easier

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini 45acf56e59 kbuild: make 'archprepare' depend on 'scripts'
Backported from kernel
commit 059bc9fc375e ("kbuild: make 'archprepare' depend on 'scripts'")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini 4a247d1376 kbuild: mark prepare0 as PHONY to fix external module build
Backported from kernel
commit e00d88804814 ("kbuild: mark prepare0 as PHONY to fix external module build")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini 27529f1cb0 kbuild: skip parsing pre sub-make code for recursion
Backported from kernel
commit 221cc2d27ddc ("kbuild: skip parsing pre sub-make code for recursion")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini d1b6489ef1 kbuild: do not overwrite .gitignore in output directory
Backported from kernel
commit 156e7cbb3ef5 ("kbuild: do not overwrite .gitignore in output directory")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini 057a53b570 gcc-9: silence 'address-of-packed-member' warning
Backported from kernel
commit 6f303d60534c ("gcc-9: silence 'address-of-packed-member' warning")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00
Ilias ApalodimasandTom Rini 931f04a85a kbuild: remove meaningless prepare2 target
Backported from kernel
commit 4f1c1008e786 ("kbuild: remove meaningless prepare2 target")

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-06-11 16:21:36 -06:00