Commit Graph

103159 Commits

Author SHA1 Message Date
Tom Rini
bc1819331e Merge patch series "clk: Return value calculated by ERR_PTR"
Andrew Goodbody <andrew.goodbody@linaro.org> says:

Smatch reported an error where a value calculated by ERR_PTR was not
used. Fixing this to return the generated value led to a test failure
which meant updating the sandbox clock code so that it would still cause
the tests to pass with the above correction.
Debugging this problem led to a SIGSEGV which is addressed in 1/3.
Possible memory leaks noticed are addressed in 3/3.

Link: https://lore.kernel.org/r/20251121-clk_uclass_fix-v2-0-74f4ea10e194@linaro.org
2025-12-05 17:03:36 -06:00
Andrew Goodbody
3328594551 clk: Prevent memory leak on error
In clk_set_default_rates() memory is allocated to store the clock rates
that are read. Direct returns fail to free this memory leading to a
memory leak so instead use 'goto fail;' which will then perform the free
before exiting the function.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-12-05 17:03:31 -06:00
Andrew Goodbody
fe780310cf clk: Return value calculated by ERR_PTR
In clk_set_default_get_by_id ret is passed to ERR_PTR but nothing is
done with the value that this calculates which is obviously not the
intention of the code. This is confirmed by the code around where this
function is called.
Instead return the value from ERR_PTR.

Then fixup the sandbox code so that the test dm_test_clk does not fail
as it relied on the broken behaviour.

Finally disable part of the test that does not work correctly with
CLK_AUTO_ID

This issue found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-12-05 17:03:31 -06:00
Andrew Goodbody
1c0a46e291 clk: Prevent SIGSEGV on debug
If LOG_DEBUG is defined and a NULL clk is passed to clk_enable or
clk_disable then an attempt is made to dereference NULL in the debug
statement. Guard against this.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-12-05 17:03:31 -06:00
Cibil Pankiras
1165e8efcb reboot-mode: Correct macro name from U_BOOT_DEVICE to U_BOOT_DRVINFO
The macro U_BOOT_DEVICE has been renamed to U_BOOT_DRVINFO.
This patch updates the reference in reboot-mode-gpio.h.

Signed-off-by: Cibil Pankiras <cibil.pankiras@egym.com>
2025-12-05 16:24:56 -06:00
Marek Vasut
717f8ded39 boot: Check noffset before use
If noffset is negative, do not pass it to fit_get_name() and then further to
libfdt, this will crash sandbox with SIGSEGV because libfdt can not handle
negative node offsets without full tree check, which U-Boot inhibits to keep
size lower.

Instead, always check noffset before use, and if the return value indicates
failure, exit right away.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-12-05 16:24:56 -06:00
Anshul Dalal
d3ddbc1cf8 configs: am64x, am65x: add CONFIG_DA8XX_GPIO
The DA8xx GPIO driver was not being built as part of the A53 U-Boot
image on AM64x and AM65x. This meant only i2c GPIO expanders were
accessible to the users from the U-Boot prompt.

This patch fixes it by setting CONFIG_DA8XX_GPIO.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
2025-12-05 16:24:56 -06:00
Marian Cingel
1e8eff6d7a board: ti: CAT24C256WI-GT3 require min. 5ms delay (tWR) between write/read
Otherwise the custom-cape eeprom (at address 57) reports NACK which
results into "i2c_write: error waiting for data ACK (status=0x116)" and
terminates further scanning.

Signed-off-by: Marian Cingel <cingel.marian@gmail.com>
2025-12-05 16:24:01 -06:00
Sam Protsenko
af38567cad autoboot: Fix inconsistent countdown output
Commit 5f70be08b0 ("Fix autoboot countdown printing wrong") introduces
inconsistency in how the countdown is displayed. For example, in case
when BOOTDELAY=5, the next output is observed during the boot:

    Hit any key to stop autoboot:  5
    Hit any key to stop autoboot: 4
    Hit any key to stop autoboot: 3

That happens due to different printf format (%2d vs %1d). Moreover, the
mentioned commit fails to handle the case when the user is holding some
key before the countdown is shown. E.g. if BOOTDELAY=101, the next
malformed output is being produced:

    Hit any key to stop autoboot: 1 0

That's because the fast path code wasn't modified accordingly, and still
tries to erase the number using '\b\b\b' format.

Fix both issues by introducing a dedicated routine for printing the
whole countdown line.

Fixes: 5f70be08b0 ("Fix autoboot countdown printing wrong")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: David Zang <davidzangcs@gmail.com>
2025-12-05 16:23:54 -06:00
Francois Berder
43ca62bf19 examples: Fix checking id parameter in thread_start
lthreads is of size MAX_THREADS, hence id must be lower than
MAX_THREADS to avoid any potential buffer overflow in
thread_start function.

Signed-off-by: Francois Berder <fberder@outlook.fr>
2025-12-05 16:23:54 -06:00
Francois Berder
1c1be32c31 fs/erofs: Fix realloc error handling
If realloc failed, raw was not freed and thus memory
was leaked.

Signed-off-by: Francois Berder <fberder@outlook.fr>
2025-12-05 16:23:54 -06:00
Francois Berder
00e1fed93c firmware: ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource
- Fix temp memory leak
- Free memory during error handling

Signed-off-by: Francois Berder <fberder@outlook.fr>
2025-12-05 16:23:49 -06:00
Tom Rini
9d69a2d8a0 clk: ti: Tighten some TI clock driver dependencies
Attempting to build with "allyesconfig" means that we try and build all
available options for the sandbox platforms. Doing so exposes that the
drivers under drivers/clk/ti/ can only be compiled or linked on
ARCH_OMAP2PLUS platforms as some drivers require platform specific
headers while other drivers depend on these first drivers to link.
Express those requirements in Kconfig as well.

Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-05 15:04:52 -06:00
Tom Rini
272e356b17 mtd: Tighten some driver dependencies
The ALTERA_QSPI driver conflicts with the regular FLASH_CFI_DRIVER as
both implement the same high level functionality and so use the same
global namespace. In a similar fashion, all NAND drivers are mutually
exclusive due to namespace collisions. For the remaining drivers which
did not already have some architecture specific dependency, add them.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-12-05 15:04:49 -06:00
Tom Rini
384d3785df Merge patch series "led: remove unused legacy LED code"
Quentin Schulz <quentin.schulz@cherry.de> says:

Only the Siemens corvus board seems to be using these two status LEDs
from the legacy LED API.

Since we're trying to get rid of the last users of the legacy LED API,
let's migrate Corvus to the modern LED API instead, which uses DM. For
Corvus's case, it also uses DM_GPIO (already enabled in defconfig).

Since there was no use for the green status_led (not compiled in), it
simply is removed without migrating it to the modern API. If need be, we
can always add a new gpio-led in the FDT.

Note that I do not own a Siemens Corvus board so it's a bit of a shot in
the dark whether it'll work on the first try, only build tested.

The red LED should be on whenever reaching U-Boot proper CLI, if not we
have an issue.

The LED should be controllable with the led command from U-Boot proper
CLI.

Link: https://lore.kernel.org/r/20251119-corvus-led-red-green-v1-0-ce86b8d59dfc@cherry.de
2025-12-05 13:38:32 -06:00
Quentin Schulz
c4594242aa led: remove support for red LED in legacy API
To the exception of red_led_on in the arm-specific assembly code, all
code interacting with the red status LED was guarded by the
CONFIG_LED_STATUS_RED symbol, which is enabled in none of the upstream
defconfigs.

Since the last board which overrode the weak red_led_on function got
migrated to the new LED mechanism, there's also no user of the
arm-specific assembly code anymore, therefore it can be removed along
the other unreachable code sections.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
2025-12-05 13:38:09 -06:00
Quentin Schulz
b06e52f2ea corvus: migrate red LED to the modern API
red_led_on is either called from the legacy LED shell command (which is
disabled for corvus) or from arm-specific assembly code right before
jumping into board_init_r() in U-Boot proper.

Let's migrate to use the more modern LED subsystem by migrating to DM.

The default-state is set to on to mimic red_led_on() from the
arm-specific assembly code as a missing default-state FDT property
currently means the LED is not probed except if explicitly done via the
led shell command. Note though that this is running much later in the
boot process, once DM is started.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
2025-12-05 13:38:09 -06:00
Quentin Schulz
16415e9563 led: remove support for green status led in legacy API
The last user of it was removed in a previous commit so let's remove its
support entirely.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
2025-12-05 13:38:09 -06:00
Quentin Schulz
bb35d28701 corvus: remove green led support
green_led_on and green_led_off are only called by the legacy LED command
(CONFIG_LED_STATUS_CMD) when CONFIG_LED_STATUS_GREEN is enabled, both of
which aren't enabled for corvus, so let's simply remove it as it's dead
code.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heiko Schocher <hs@nabladev.com>
2025-12-05 13:38:09 -06:00
Tom Rini
1a5e3be3ac Merge patch series "led: remove unused legacy LED code"
Quentin Schulz <quentin.schulz@cherry.de> says:

This is a follow-up to:
- https://lore.kernel.org/u-boot/20251112-led-old-dt-v1-0-2892d49517db@cherry.de/
- https://lore.kernel.org/u-boot/20251114162417.4054006-1-patrice.chotard@foss.st.com/

to continue the effort of getting rid of the legacy LED API. This series
depends on the series listed above.

Link: https://lore.kernel.org/r/20251119-legacy-led-unused-code-v1-0-bc0ae1235baa@cherry.de
2025-12-05 10:35:49 -06:00
Quentin Schulz
43093811a4 powerpc: remove unused legacy LED API
No PPC upstream defconfig actually enables CONFIG_LED_STATUS and we're
trying to get rid of the legacy LED API, so let's remove one of its last
users.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 10:34:52 -06:00
Quentin Schulz
715107089f net: remove unreachable legacy LED code
The code is guarded by a condition none of the defconfigs meet (that is
CONFIG_SYS_FAULT_ECHO_LINK_DOWN and CONFIG_LED_STATUS_RED both enabled),
so we can remove the unreachable code sections.

When doing that, there's no caller for miiphy_link anymore, so it can be
removed.

This in turns makes CONFIG_SYS_FAULT_ECHO_LINK_DOWN and
CONFIG_SYS_FAULT_MII_ADDR unused so they are removed as well.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-12-05 10:34:52 -06:00
Quentin Schulz
914acbdba3 arm: omap3: remove leftover from CM_T35 support removal
Commit 76386d6195 ("arm: Remove cm_t35 board") removed support for the
board that was built when TARGET_CM_T35 is selected, but removal of the
symbol was forgotten, so let's fix this oversight.

While at it, update the README for omap3 to remove the last mention of
cm_t35.

Fixes: 76386d6195 ("arm: Remove cm_t35 board")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-12-05 10:34:52 -06:00
Quentin Schulz
c31f51d502 led: remove coloured_LED_init, yellow and blue status LEDs in legacy API
The last user of coloured_LED_init has been recently removed, so we can
remove all places it's called and defined as it does nothing now.

Nobody makes use of the yellow and blue status LEDs from the legacy API,
so let's remove all references to it.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 10:34:52 -06:00
Quentin Schulz
abc34fa944 led: remove code guarded by always false conditions
The last CONFIG_MVS in code was removed almost 12 years ago in commit
3b98b57fa7 ("include: delete unused header files").

STATUS_LED_PAR was last seen 8 years ago when removed in commit
5b8e76c35e ("powerpc, 8xx: remove support for 8xx").

If CONFIG_LED_STATUS_BOARD_SPECIFIC is not defined, the build will fail
so we won't even reach this part of the code.

Let's simplify the if block to actually possible configurations.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-12-05 10:34:52 -06:00
Tom Rini
b3835a812f Merge patch series "test: let UNIT_TEST imply CONSOLE_RECORD"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

Many C unit tests are not executed if CONFIG_CONSOLE_RECORD is not set.
Hence Tom suggested to let UNIT_TEST imply CONSOLE_RECORD.

The first patch makes the skipped C unit tests visible.

The rest of the series deals with hidden bugs in our tests.

The 'fdt get value' command returned incorrect values on low-endian
systems. So this needed fixing too.

Link: https://lore.kernel.org/r/20251123225711.227016-1-heinrich.schuchardt@canonical.com
2025-12-05 08:55:19 -06:00
Heinrich Schuchardt
e3d4ab5286 test: let UNIT_TEST imply CONSOLE_RECORD
The cmd and the log test suites rely on CONFIG_CONSOLE_RECORD.
The log test suite is always built if CONFIG_UNIT_TEST=y.

The print_do_hex_dump test relies on CONFIG_HEXDUMP. Imply it too.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
21fbda84b3 cmd: fix 'fdt get value'
The 32bit cells of a device-tree property are big-endian. When printing
them via 0x08x we must first convert to the host endianness.

Remove the restriction to 20 bytes length. This would not allow to read an
SHA256 value.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
c2ee1e3c4a test: cmd/bdinfo: consider PPC architecture specific info
On the power architecture the bdinfo command prints architecture specific
information. The test needs to accept these output lines.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
3338e2e463 test: relax cread_test time constraint
The ppce500 is not as fine grained as expected.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
6b0997c98c test: fix cmt/msr test
The original value of the first variable msr (0x200) is not controlled by
U-Boot. Don't make any assumption.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
4421749146 test: consider endianness in print_display_buffer
Hexdumps for types other then byte look different in dependence of the
endianness.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
ad7f706ec7 malta: increase SYS_MALLOC_F_LEN and SYS_MALLOC_LEN
If CONFIG_CONSOLE_RECORD_INIT_F=y we need additional memory according to
CONFIG_CONSOLE_RECORD_OUT_SIZE_F. Similarly CONFIG_SYS_MALLOC_LEN must be
increased by CONSOLE_RECORD_OUT_SIZE.

Go with the default values for CONFIG_CONSOLE_RECORD_INIT_F and
CONFIG_SYS_MALLOC_LEN.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
7dbcc4d806 test: fix bdinfo_test_all boot_params expectation
The value of boot_params is device specific and non-zero on many boards.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
0978f3287c test: correct comments in test/cmd/font.c
The test relates to the 'font' and not to the 'fdt' command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
061cdb247c test: the cmd/font test requires the sandbox
The font test makes assumptions about video devices and selected fonts that
may not hold true on other configurations like qemu-x86_64_defconfig.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
24bf56f36d ppce500: increase SYS_MALLOC_F_LEN to 0x800
If CONFIG_CONSOLE_RECORD_INIT_F=y we need additional memory according to
CONFIG_CONSOLE_RECORD_OUT_SIZE_F.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
85713aee96 test: do not assume memory size 256 MiB in cmd_test_meminfo
256 GiB is the default memory size of the sandbox. But in our CI other
boards like qemu-x86_64_defconfig run with a different memory size.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
1acf7ebf50 test: cmd_exit_test depends on CONFIG_HUSH_PARSER
The exit command is not available if CONFIG_HUSH_PARSER=n

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
728c717268 test: bdinfo: correct expected X86 arch info
Skipping to the line starting with tsc reaches the tsc_base output not the
final tsc output.

Expect all the X86 specific lines in the bdinfo output.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
a63bd541d6 test: print_do_hex_dump test depends on HEXDUMP
Skip the test if CONFIG_HEXDUMP=n

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
3f8cefc0d4 test: don't test for CONFIG_UNIT_TEST twice
Makefile already checks CONFIG_UNIT_TEST.
There is point in checking it in test/Makefile again.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
ae7bcf6067 test: print_display_buffer must consider 64bit support
Function print_buffer() does not support printing u64 on 32bit systems.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
3144be7f40 test: cmd/bdinfo: consider ARM architecture specific info
On ARM the bdinfo command prints architecture specific information.
The test needs to accept these output lines.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-12-05 08:54:44 -06:00
Heinrich Schuchardt
c448c933b9 test: Let pytest indicate skipped C unit tests
We invoke the ut command in test_ut.py. Currently we only check for
failures. Instead we should also indicate if sub-tests were skipped.

With this change we will get output like the following for skipped tests:

test/py/tests/test_ut.py ..sssss......ss..............s.sssss.s.s...
================================ short test summary info ================================
SKIPPED [1] test/py/tests/test_ut.py:597: Test addrmap addrmap_test_basic has 1 skipped sub-test(s).
SKIPPED [1] test/py/tests/test_ut.py:597: Test bdinfo bdinfo_test_eth has 4 skipped sub-test(s).

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-12-05 08:54:44 -06:00
Tom Rini
ff258d03b9 Merge tag 'u-boot-stm32-20251205' of https://source.denx.de/u-boot/custodians/u-boot-stm into next
CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/28641

_ update LED management for STMicroelectronics boards
_ Add 1 GiB DRAM support for STM32MP13x DHCOR SoM
_ Fix 512 MiB DRAM support for STM32MP13x DHCOR SoM
_ Fix handling OPTEE in middle of the DRAM
_ Add missing debug UART build for STM32MP1 DHSOM
2025-12-05 08:33:49 -06:00
Patrice Chotard
b6e61ec062 ARM: dts: stm32: Drop "u-boot-led" from stm32mp257f-ev1-u-boot
Remove obsolete property "u-boot, u-boot-led" from
stm32mp257f-ev1-u-boot.dtsi.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 11:39:42 +01:00
Patrice Chotard
22176383a7 ARM: dts: stm32: Drop "u-boot-led" from stm32mp235f-dk-u-boot
Remove obsolete property "u-boot, u-boot-led" from
stm32mp235f-dk-u-boot.dtsi.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 11:39:42 +01:00
Patrice Chotard
05060d0356 ARM: dts: stm32: Drop "u-boot-led" and "error-led" from stm32mp157c-ed1-u-boot
Remove obsolete properties "u-boot, u-boot-led" and "u-boot,error-led"
from stm32mp157cf-ed1-u-boot.dtsi.

Remove led-red and led-blue nodes which are available in kernel DT.
See kernel series: https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=1022570

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 11:39:42 +01:00
Patrice Chotard
4111ad8fc0 ARM: dts: stm32: Drop "u-boot-led" and "error-led" from stm32mp157c-ed1-scmi-u-boot
Remove obsolete properties "u-boot, u-boot-led" and "u-boot,error-led"
from stm32mp157c-ed1-scmi-u-boot.dtsi.

Remove led-red and led-blue nodes which are available in kernel DT.
See kernel series: https://patchwork.kernel.org/project/linux-arm-kernel/list/?series=1022570

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-12-05 11:39:42 +01:00