]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
6 months agoMerge patch series "Introduce K3 remoteproc driver for M4 subsystem"
Tom Rini [Fri, 14 Feb 2025 19:17:47 +0000 (13:17 -0600)] 
Merge patch series "Introduce K3 remoteproc driver for M4 subsystem"

Judith Mendez <jm@ti.com> says:

Some K3 devices like am62x and am64x have a M4 processor in the MCU
voltage domain. This patch series introduces remoteproc M4 driver which
will be used to load firmware into and start the M4 remote core.

This series also adds support for R5F cores on am64x SoCs in patch 2 and
sets up environment to load FW in remote cores in patch 3,4,5.

This patch series also enables remoteproc drivers by default as per what
remoteproc sybsystem is supported per SoC, thus all remoteproc options
are now deleted in configs/* since they are no longer required.

This patch series was tested on am64x EVM, am62x SK, am62ax SK,
am62px SK boards.

Any additional tested by's are welcome since I was not able to
test any additional boards.

Tested by running the following commands in u-boot prompt:

=> setenv dorprocboot 1
=> run boot_rprocs

Link: https://lore.kernel.org/r/20250210202944.1071931-1-jm@ti.com
6 months agoconfigs: am6*/j7*: Remove remoteproc configs
Judith Mendez [Mon, 10 Feb 2025 20:29:44 +0000 (14:29 -0600)] 
configs: am6*/j7*: Remove remoteproc configs

Now that remoteproc configs are enabled by default in Kconfig
files, remove these configs which are no longer needed to be
defined here in configs/.

Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoarm: mach-k3: Enable remoteproc drivers by default for K3 ARCH
Judith Mendez [Mon, 10 Feb 2025 20:29:43 +0000 (14:29 -0600)] 
arm: mach-k3: Enable remoteproc drivers by default for K3 ARCH

Add remoteproc config options to enable remoteproc drivers by
default as per what remotproc subsystem is supported on each
SoC.

Signed-off-by: Judith Mendez <jm@ti.com>
6 months agocmd: Enable CMD remoteproc by default for K3 ARCH
Judith Mendez [Mon, 10 Feb 2025 20:29:42 +0000 (14:29 -0600)] 
cmd: Enable CMD remoteproc by default for K3 ARCH

Enable CMD_REMOTEPROC by default if building for K3 ARCH so
that it does not have to be defined in each board defconfig
file.

Signed-off-by: Judith Mendez <jm@ti.com>
6 months agospl: Enable SPL remoteproc by default for K3 ARCH
Judith Mendez [Mon, 10 Feb 2025 20:29:41 +0000 (14:29 -0600)] 
spl: Enable SPL remoteproc by default for K3 ARCH

If building for v7R and K3 architecture, enable SPL
remoteproc so that it does not have to be defined in each
board defconfig file.

Signed-off-by: Judith Mendez <jm@ti.com>
6 months agoremoteproc: Enable ARM64 remoteproc driver by default for K3 ARCH
Judith Mendez [Mon, 10 Feb 2025 20:29:40 +0000 (14:29 -0600)] 
remoteproc: Enable ARM64 remoteproc driver by default for K3 ARCH

If SYS_K3_SPL_ATF is enabled, for K3 ARCH enable the
remoteproc ARM64 driver by default so that it does not
have to be defined in each board defconfig file.

Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoboard: ti: am62px: Add remoteproc specific env support
Hari Nagalla [Mon, 10 Feb 2025 20:29:39 +0000 (14:29 -0600)] 
board: ti: am62px: Add remoteproc specific env support

Add remoteproc specific env support for am62px device. If the
remoteproc CMD is defined, include the K3 remoteproc environment.
Also define rproc_fw_binaries which holds a list of remoteproc FW
binaries for u-boot loading of remote cores.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoboard: ti: am62x: Add remoteproc specific env support
Hari Nagalla [Mon, 10 Feb 2025 20:29:38 +0000 (14:29 -0600)] 
board: ti: am62x: Add remoteproc specific env support

Add remoteproc specific env support for am62x device. If the
remoteproc CMD is defined, include the K3 remoteproc environment.
Also define rproc_fw_binaries which holds a list of remoteproc FW
binaries for u-boot loading of remote cores.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoboard: ti: am64x: Add remoteproc specific env support
Hari Nagalla [Mon, 10 Feb 2025 20:29:37 +0000 (14:29 -0600)] 
board: ti: am64x: Add remoteproc specific env support

Add remoteproc specific env support for am64x device. If the
remoteproc CMD is defined, include the K3 remoteproc environment.
Also define rproc_fw_binaries which holds a list of remoteproc FW
binaries for u-boot loading of remote cores.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoremoteproc: k3-r5: Add support for R5F cores on AM64x SoCs
Hari Nagalla [Mon, 10 Feb 2025 20:29:36 +0000 (14:29 -0600)] 
remoteproc: k3-r5: Add support for R5F cores on AM64x SoCs

AM64x SoCs have two R5F clusters in the main power domain.
Extend support for R5F remote proc driver on AM64x with compatible
strings.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoremoteproc: k3-m4: Introduce K3 remote proc driver for M4 subsystem
Hari Nagalla [Mon, 10 Feb 2025 20:29:35 +0000 (14:29 -0600)] 
remoteproc: k3-m4: Introduce K3 remote proc driver for M4 subsystem

Some K3 devices like AM64, AM62 devices have a M4 processor in MCU
voltage domain.

Add a remote proc driver to support this subsystem to be able to load
and boot the M4 core.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
[Ryan: Fix implicitly include warning]
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
[Judith: Cleanup driver, fix warnings, remove lreset logic]
Signed-off-by: Judith Mendez <jm@ti.com>
Tested-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Andrew Davis <afd@ti.com>
6 months agoKconfig: Move CONFIG_BOOTCOUNT_ALTBOOTCMD to Kconfig
Tomas Peterka [Fri, 31 Jan 2025 10:08:44 +0000 (11:08 +0100)] 
Kconfig: Move CONFIG_BOOTCOUNT_ALTBOOTCMD to Kconfig

Add CONFIG_BOOTCOUNT_ALTBOOTCMD so the developer is able to add
custom altbootcmd via Kconfig when they enable BOOTCOUNT. With this now
in Kconfig, we need to move it from environment files / config.h files
and in to the defconfig file.

This was done by generating u-boot-initial-env for all platforms before
the Kconfig change, to extract altbootcmd values and then again after to
compare the result.

[trini: Perform migration to defconfigs, reword commit message]
Signed-off-by: Tom Rini <trini@konsulko.com>
6 months agoMerge branch 'misc' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Tom Rini [Thu, 13 Feb 2025 18:37:26 +0000 (12:37 -0600)] 
Merge branch 'misc' of https://source.denx.de/u-boot/custodians/u-boot-tegra

Improvements for PMIC GPIO children, tegra20 pinmux driver fix, tegra
dts updates, various small adjustments and tweaks.

6 months agoMerge patch series "test: Complete the suite migration"
Tom Rini [Thu, 13 Feb 2025 15:52:16 +0000 (09:52 -0600)] 
Merge patch series "test: Complete the suite migration"

Simon Glass <sjg@chromium.org> says:

This series completes the removal of test commands for suites. With this
it is possible to declare a suite (including init and uninit functions)
without needing to write a command.

It also adds timing for test suites, so we can keep track of how long
things take.

Link: https://lore.kernel.org/all/20250207183121.117663-1-sjg@chromium.org/
6 months agombedtls/external: remove broken git submodule
ZHANG Yuntian [Tue, 11 Feb 2025 07:30:27 +0000 (15:30 +0800)] 
mbedtls/external: remove broken git submodule

When we squash imported mbedtls, the git submodule "framework" was
preserved in the commit. However, U-Boot itself does not use git
submodule, and provides no .gitmodules file to specify the submodule
repository.

This is normally not an issue when cloning U-Boot repository. However,
when U-Boot is imported as a submodule, this will break git option
`--recurse-submodules` as it fails to resolve "framework".

As we do not use the submodule, remove it to unbreak existing workflows.

Fixes: 12f1212e95fe ("Merge commit '0344c602eadc0802776b65ff90f0a02c856cf53c' as 'lib/mbedtls/external/mbedtls'")
Signed-off-by: ZHANG Yuntian <yt@radxa.com>
6 months agoboard: transformer-t30: fix model detection
Svyatoslav Ryhel [Sat, 28 Dec 2024 13:21:03 +0000 (15:21 +0200)] 
board: transformer-t30: fix model detection

PCBID1 seems to be high not only on TF600T, but on TF700T as well,
that caused boot failure for TF700T. Switching PCBID1 to PCBID7
should fix this issue.

Co-developed-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agodoc: board: tegra: update device information
Svyatoslav Ryhel [Tue, 3 Dec 2024 10:50:45 +0000 (12:50 +0200)] 
doc: board: tegra: update device information

Adjust and update existing manuals to reflect the most recent
updates.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoARM: tegra124: dts: mark HOST1X and DC with pre-relocation flag
Svyatoslav Ryhel [Wed, 20 Nov 2024 07:26:38 +0000 (09:26 +0200)] 
ARM: tegra124: dts: mark HOST1X and DC with pre-relocation flag

Same as on previous SoC generations this is required for proper
video output work.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoMerge branch 'u-boot-net-20250212' of https://source.denx.de/u-boot/custodians/u...
Tom Rini [Wed, 12 Feb 2025 14:41:36 +0000 (08:41 -0600)] 
Merge branch 'u-boot-net-20250212' of https://source.denx.de/u-boot/custodians/u-boot-net

CI: https://source.denx.de/u-boot/custodians/u-boot-net/-/pipelines/24577

net-lwip:
* Fix incorrect selection of ethernet device on boards having more than
  one
* Fix TFTP option processing
* Make the WGET_HTTPS Kconfig symbol depend on DM_RNG

lib:
* Add strnstr()

6 months agonet: Kconfig: depend on DM_RNG for WGET_HTTPS
Jerome Forissier [Tue, 4 Feb 2025 16:00:49 +0000 (17:00 +0100)] 
net: Kconfig: depend on DM_RNG for WGET_HTTPS

net/lwip/wget.c/mbedtls_hardware_poll() is calling dm_rng_read() but
dependency is not recorded anywhere that's why depend on DM_RNG
when WGET_HTTPS is used.

Suggested-by: Michal Simek <michal.simek@amd.com>
Co-developed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
6 months agonet: use strnstr() for lwip_strnstr()
Heinrich Schuchardt [Mon, 3 Feb 2025 09:12:02 +0000 (10:12 +0100)] 
net: use strnstr() for lwip_strnstr()

Using strstr() instead of strnstr() creates a security concern.

Fixes: 1c41a7afaa15 ("net: lwip: build lwIP")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 months agotest: unit tests for strstr() and strnstr()
Heinrich Schuchardt [Mon, 3 Feb 2025 09:12:01 +0000 (10:12 +0100)] 
test: unit tests for strstr() and strnstr()

Add unit tests for the library functions.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
[jf: drop unwanted change to lib/string.c]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 months agolib: implement strnstr()
Heinrich Schuchardt [Mon, 3 Feb 2025 09:12:00 +0000 (10:12 +0100)] 
lib: implement strnstr()

Implement library function strnstr().
Implement strstr() using strnstr().
Sort the includes.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
[jf: replace <stdint.h> by <limits.h>, folded from next patch]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 months agonet: lwip: tftp: fix find_option()
Heinrich Schuchardt [Mon, 3 Feb 2025 09:11:59 +0000 (10:11 +0100)] 
net: lwip: tftp: fix find_option()

Find_option() is used to retrieve the block size value in an option
acknowledgment in response to a request containing a block size option
according to RFC2348.

The format of an OACK response is described in RFC2347 as

+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
|  opc  |  opt1  | 0 | value1 | 0 |  optN  | 0 | valueN | 0 |
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+

The current implementation of find_option() only works if

* blksize is the first option
* lwip_strnstr() ignores the length parameter,
  i.e. is implemented via strstr()

The OACK messages starts with  0x00 0x06. If 'blksize' is the first option,
strstr() reports a match when the first parameter points to 0x06. Adding
the string length of 'blksize' plus 2 to the location of the 0x06 byte
points to the value.

Find_option() would report a match for option 'blksize' if the response
contained an option called 'foo_blksize_bar'. In this case find_option()
would return 'bar' as the value string.

If 'blksize' were the second option, find_option() would return a pointer
to the second character of the value string.

Furthermore find_option() does not detect if the value string is NUL
terminated. This may lead to a buffer overrun.

Provide an implementation that correctly steps from option to option.

Fixes: 27d7ccda94fa ("net: lwip: tftp: add support of blksize option to client")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (qemu_arm64_lwip)
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 months agonet: lwip: move eth_init() out of new_netif()
Jerome Forissier [Thu, 30 Jan 2025 08:22:20 +0000 (09:22 +0100)] 
net: lwip: move eth_init() out of new_netif()

Move the initialization of the ethernet devices out of the new_netif()
function. Indeed, new_netif() accepts a struct device argument, which
is expected to be valid and active. The activation and selection of
this device are achieved by eth_init() (on first time the network
stack is used) and eth_set_current(). This is what takes care of the
ethrotate and ethact environment variables. Therefore, move these calls
to a new function: net_lwip_set_current(), and use it whenever a
net-lwip command is run.

This patch hopefully fixes the incorrect net-lwip behavior observed on
boards with multiple ethernet interfaces [1].

Tested on an i.MX8MPlus EVK equipped wih two ethernet ports. The dhcp
command succeeds whether the cable is plugged into the first or second
port.

[1] https://lists.denx.de/pipermail/u-boot/2025-January/576326.html

Reported-by: E Shattow <e@freeshell.de>
Tested-by: E Shattow <e@freeshell.de>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 months agomtd: nand: raw: atmel: Fix pulse read timing for certain NAND flashes
Alexander Dahl [Mon, 15 Apr 2024 07:57:55 +0000 (09:57 +0200)] 
mtd: nand: raw: atmel: Fix pulse read timing for certain NAND flashes

From reading the S34ML02G1 and the SAM9X60 datasheets again, it seems
like we have to wait tREA after rising RE# before sampling the data.
Thus pulse time must be at least tREA.

Without this fix we got PMECC errors when reading, after switching to
ONFI timing mode 3 on SAM9X60 SoC with S34ML02G1 raw NAND flash chip.

The approach to set timings used before worked on sam9g20 and sama5d2
with the same flash (S34ML02G1), probably because those have a slower
mck clock rate and thus the resolution of the timings setup is not as
tight as with sam9x60.

The approach to fix the issue was carried over from at91bootstrap, and
has been successfully tested in at91bootstrap, U-Boot and Linux.

Link: https://github.com/linux4sam/at91bootstrap/issues/174
Cc: Li Bin <bin.li@microchip.com>
Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agoARM: tegra124: dts: add missing DSI nodes
Svyatoslav Ryhel [Mon, 18 Nov 2024 06:32:13 +0000 (08:32 +0200)] 
ARM: tegra124: dts: add missing DSI nodes

Bind missing DSI and MIPI calibration devices.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoARM: tegra30: dts: complete DSI nodes
Svyatoslav Ryhel [Sun, 24 Nov 2024 12:27:17 +0000 (14:27 +0200)] 
ARM: tegra30: dts: complete DSI nodes

Sync DSI nodes with Linux tree.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoARM: tegra210: clock: implement PLLD2 support
Svyatoslav Ryhel [Fri, 29 Nov 2024 06:14:21 +0000 (08:14 +0200)] 
ARM: tegra210: clock: implement PLLD2 support

PLLD2 is a simple clock (controlled by 2 registers) and appears starting
from T30. Primary use of PLLD2 is as main HDMI clock parent.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoARM: tegra124: clock: implement PLLD2 support
Svyatoslav Ryhel [Fri, 15 Nov 2024 19:13:15 +0000 (21:13 +0200)] 
ARM: tegra124: clock: implement PLLD2 support

PLLD2 is a simple clock (controlled by 2 registers) and appears starting
from T30. Primary use of PLLD2 is as main HDMI clock parent.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agoboard: asus: convert SPL to XPL
Svyatoslav Ryhel [Fri, 29 Nov 2024 17:30:54 +0000 (19:30 +0200)] 
board: asus: convert SPL to XPL

Not sure why these files were omitted, but SPL should
be converted to XPL.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agopinctrl: tegra20: adjust pin type detection
Svyatoslav Ryhel [Fri, 6 Dec 2024 15:50:58 +0000 (17:50 +0200)] 
pinctrl: tegra20: adjust pin type detection

Pin detection on t20 depends on node name. With recent changes
in node naming, let's remove '_' to be safe about both '_' or
'-' use.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
6 months agopmic: palmas: bind sysreset to parent node
Svyatoslav Ryhel [Mon, 9 Dec 2024 10:58:19 +0000 (12:58 +0200)] 
pmic: palmas: bind sysreset to parent node

Bind SYSRESET child to parent node since it does not have
its own node in the device tree.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agopmic: max77663: bind children to parent node
Svyatoslav Ryhel [Mon, 9 Dec 2024 10:51:33 +0000 (12:51 +0200)] 
pmic: max77663: bind children to parent node

Bind GPIO and SYSRESET children to parent node since they
do not have their own nodes in the device tree.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoRevert "drivers: gpio-uclass: support PMIC GPIO children"
Svyatoslav Ryhel [Mon, 9 Dec 2024 10:45:18 +0000 (12:45 +0200)] 
Revert "drivers: gpio-uclass: support PMIC GPIO children"

Requesting of PMIC's GPIO child should be done by binding
GPIO driver to PMIC's node is GPIO driver does not have
its own node.

This reverts commit c03cd98d1a163666b4addcdd9a34fc0c77dfd0a5.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
6 months agoARM: dts: at91: Align pinctrl node with Linux Devicetree
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:43 +0000 (12:21 +0530)] 
ARM: dts: at91: Align pinctrl node with Linux Devicetree

The GPIO banks are added as sub nodes or child nodes under the
pinctrl node (as per Linux ABI) and the reg property which points
to an array of controllers physical base address is removed
to align with the Linux devicetree.

Signed-off-by: Charan Pedumuru <charan.pedumuru@microchip.com>
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 months agopinctrl: at91: Add support to align with Linux Devicetree
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:42 +0000 (12:21 +0530)] 
pinctrl: at91: Add support to align with Linux Devicetree

U-Boot pinctrl driver expects a reg property explicitly unlike linux.
To align the DT of U-boot with the Linux, reg property is also arrvied
from child GPIO bank nodes when configured under the pinctrl node.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 months agopinctrl: at91: Bind GPIO driver to the pinctrl DT node
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:41 +0000 (12:21 +0530)] 
pinctrl: at91: Bind GPIO driver to the pinctrl DT node

In Linux DT,the pinctrl node acts as parent nodes with all other
gpio banks as child nodes and a single driver in Linux handles both
pinctrl settings and gpio requests.Current U-Boot DT maintains both
pinctrl and gpio nodes as separate nodes and offers two different class
of U-Boot drivers: UCLASS_PINCTRL which handles pin functions and
UCLASS_GPIO which handles gpio requests. In order to align the DT
of U-Boot with the DT of Linux, a hook is been added in the pinctrl
driver to bind the gpio driver with the pinctrl driver so that
when adding gpio nodes as subnodes to pinctrl node (as per the Linux ABI),
the corresponding APIs will be redirected and handled by valid
drivers attached to the pinctrl driver.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
6 months agoARM: dts: at91: sam9x60: Add missing pinctrl node properties
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:40 +0000 (12:21 +0530)] 
ARM: dts: at91: sam9x60: Add missing pinctrl node properties

Add the missing properties for the pinctrl node and for its
corresponding GPIO bank nodes to align with the Linux DT.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 months agoARM: dts: at91: sam9x60: Move pinmux node to board DTS
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:39 +0000 (12:21 +0530)] 
ARM: dts: at91: sam9x60: Move pinmux node to board DTS

Move pinmux nodes defined under the pinctrl node from sam9x60 SoC
DT to its board specific DTS files.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 months agoARM: dts: at91: sam9x60: Define pinctrl node with its label
Balamanikandan Gunasundar [Mon, 10 Feb 2025 06:51:38 +0000 (12:21 +0530)] 
ARM: dts: at91: sam9x60: Define pinctrl node with its label

Define the pinctrl nodes with its label to align with the Linux DT.
Without this change the pinmux nodes are grouped under an additional
'pinctrl' child node which is not identified by the pinctrl driver
when the GPIO banks are made as child nodes of pinctrl node.

Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com>
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 months agoARM: dts: at91: sam9x60: Add AIC node
Manikandan Muralidharan [Mon, 10 Feb 2025 06:51:37 +0000 (12:21 +0530)] 
ARM: dts: at91: sam9x60: Add AIC node

Add Advanced Interrupt Controller node and define it as interrupt
parent in sam9x60 SoC DT.

Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
6 months agospi: atmel-quadspi: Improve probe debugging
Alexander Dahl [Thu, 23 Jan 2025 12:12:15 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Improve probe debugging

Report spi clk speed and make use of `log_ret()`.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Add support for classic SPI mode
Alexander Dahl [Thu, 23 Jan 2025 12:12:14 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Add support for classic SPI mode

The qspi controller on sama5d2 and sam9x60 supports "classic" SPI mode
without spi-mem enhancements and accelerations, very similar to the old
SPI controller on sam9g20 or the modern flexcom controllers of the same
SoC family.

Register interface differs somewhat, especially because only one
hardware controlled CS line is supported.  Some fields are missing, some
are in different registers, but in principal it works similar.  So code
is very much inspired by the old atmel-spi driver.

Tested on sam9x60 with a non-mainline driver to configure an FPGA.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Allow setting SMM to classic SPI mode
Alexander Dahl [Thu, 23 Jan 2025 12:12:13 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Allow setting SMM to classic SPI mode

Switching between Serial Memory Mode (SMM) and (classic) SPI mode is a
preparation for implementing .xfer() in the future.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Remove default mode setting at probe time
Alexander Dahl [Thu, 23 Jan 2025 12:12:12 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Remove default mode setting at probe time

The Serial Memory Mode (SMM) is enabled with atmel_qspi_set_cfg() on
each invocation of atmel_qspi_exec_op().  Setting SMM through
atmel_qspi_init() at probe time is redundant.

Removing the SMM setting at probe time should therefore 1) be safe to do
and 2) allows for setting it to a different value in a future
implementation of .xfer() which needs to disable SMM.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Avoid overwriting MR register settings
Alexander Dahl [Thu, 23 Jan 2025 12:12:11 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Avoid overwriting MR register settings

Port these commits:

v6.11-rc5-90-g329ca3eed4a9a ("spi: atmel-quadspi: Avoid overwriting delay register settings")
v6.12-rc1-1-g162d9b5d2308c ("spi: atmel-quadspi: Fix wrong register value written to MR").
v6.13-rc2-27-gf663898d047a7 ("spi: atmel-quadspi: Factor out switching to Serial Memory Mode to function")

Cc: Csókás Bence <csokas.bence@prolan.hu>
Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Port collected fixes from Linux v5.10 and v5.15
Alexander Dahl [Thu, 23 Jan 2025 12:12:10 +0000 (13:12 +0100)] 
spi: atmel-quadspi: Port collected fixes from Linux v5.10 and v5.15

Port changes from a 4 piece patch series from Linux kernel v5.10, merged
with v5.10-rc1-83-gc732b7567d869 ("Merge series "spi: atmel-quadspi: Fix
AHB memory accesses" from Tudor Ambarus â€¦").

Port the single fix v5.15-rc1-14-g09134c5322df9 ("spi: Fixed division by
zero warning").

Reduces differences between linux and u-boot driver.

Cc: Tudor Ambarus <tudor.ambarus@microchip.com>
Cc: Yoshitaka Ikeda <ikeda@nskint.co.jp>
Signed-off-by: Alexander Dahl <ada@thorsis.com>
6 months agospi: atmel-quadspi: Depend on SPI_MEM
Alexander Dahl [Thu, 23 Jan 2025 07:37:13 +0000 (08:37 +0100)] 
spi: atmel-quadspi: Depend on SPI_MEM

Most other spi-mem drivers also depend on SPI_MEM.  Fixes this build
error:

    arm-v5te-linux-gnueabi-ld.bfd: drivers/spi/atmel-quadspi.o: in function `atmel_qspi_supports_op':
    /mnt/data/adahl/src/u-boot/drivers/spi/atmel-quadspi.c:460: undefined reference to `spi_mem_default_supports_op'
    make[1]: *** [/mnt/data/adahl/src/u-boot/Makefile:1821: u-boot] Error 1

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 months agospi: ca_sflash: Remove redundant dependency
Alexander Dahl [Thu, 23 Jan 2025 07:37:12 +0000 (08:37 +0100)] 
spi: ca_sflash: Remove redundant dependency

This is inside of an 'if DM_SPI' block, and thus always true.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 months agotest: Update documentation
Simon Glass [Fri, 7 Feb 2025 18:31:00 +0000 (11:31 -0700)] 
test: Update documentation

Update documentation for how to write tests and the 'ut' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Do flag-processing in the correct place
Simon Glass [Fri, 7 Feb 2025 18:30:59 +0000 (11:30 -0700)] 
test: Do flag-processing in the correct place

At present the 'ut' command handles its flags in a strange way, in that
they must come after the subcommand.

So, we must use 'ut bloblist -r2' to run the bloblist tests twice. This
is an artefact of the way tests were run, through subcommands.

It is now possible to correct this, by doing flag-processing before
running the suite.

Update the code to handle this, so that 'ut -r2 bloblist' works. Update
the 'test_suite' test to check the new arguments.

Add a sanity-check for -I while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Move code out of cmd_ut_category()
Simon Glass [Fri, 7 Feb 2025 18:30:58 +0000 (11:30 -0700)] 
test: Move code out of cmd_ut_category()

Move the logic from this function into run_suite(), on the way to having
flag parsing in the top-level 'ut' command instead of its children.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Allow running a selection of suites
Simon Glass [Fri, 7 Feb 2025 18:30:57 +0000 (11:30 -0700)] 
test: Allow running a selection of suites

Enhance the ut command to accept a comma-separated list of test suites
to run. Report the summary information for these at the end.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop suites.h
Simon Glass [Fri, 7 Feb 2025 18:30:56 +0000 (11:30 -0700)] 
test: Drop suites.h

This file is empty now. Remove it and its uses.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Make cmd_ut_category() static
Simon Glass [Fri, 7 Feb 2025 18:30:55 +0000 (11:30 -0700)] 
test: Make cmd_ut_category() static

This function is not used outside the cmd_ut file anymore, so make it
static.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop support for test commands
Simon Glass [Fri, 7 Feb 2025 18:30:54 +0000 (11:30 -0700)] 
test: Drop support for test commands

Now that everything is using the new test-suite features, drop support
for running commands.

Fix a missing closing-bracket while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Rename optee test-file
Simon Glass [Fri, 7 Feb 2025 18:30:53 +0000 (11:30 -0700)] 
test: Rename optee test-file

This has nothing to do with commands anymore, so rename the file.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop the function for running optee tests
Simon Glass [Fri, 7 Feb 2025 18:30:52 +0000 (11:30 -0700)] 
test: Drop the function for running optee tests

Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Split optee tests into three functions
Simon Glass [Fri, 7 Feb 2025 18:30:51 +0000 (11:30 -0700)] 
test: Split optee tests into three functions

These tests run three different checks on the nodes, but the logic is
currently all in one tests.

Split the code out into three different tests, which do different setup
and then run the same checks.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Update optee to do init and uninit from tests
Simon Glass [Fri, 7 Feb 2025 18:30:50 +0000 (11:30 -0700)] 
test: Update optee to do init and uninit from tests

Rather than having an init function and then running the tests, create a
test-init function to do it. This will allow us to get rid of the
command function.

Fix the comment abotu 'environment' while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop the function for running bootstd tests
Simon Glass [Fri, 7 Feb 2025 18:30:49 +0000 (11:30 -0700)] 
test: Drop the function for running bootstd tests

Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Update bootstd to do init from tests
Simon Glass [Fri, 7 Feb 2025 18:30:48 +0000 (11:30 -0700)] 
test: Update bootstd to do init from tests

Rather than having an init function and then running the tests, create a
test-init function to do it. This will allow us to get rid of the
command function.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop the function for running fdt_overlay tests
Simon Glass [Fri, 7 Feb 2025 18:30:47 +0000 (11:30 -0700)] 
test: Drop the function for running fdt_overlay tests

Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Update fdt_overlay to do init from tests
Simon Glass [Fri, 7 Feb 2025 18:30:46 +0000 (11:30 -0700)] 
test: Update fdt_overlay to do init from tests

Rather than having an init function and then running the tests, create a
test-init function to do it. This will allow us to get rid of the
command function.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Update fdt_overlay test to use fdtdec functions
Simon Glass [Fri, 7 Feb 2025 18:30:45 +0000 (11:30 -0700)] 
test: Update fdt_overlay test to use fdtdec functions

Use the helpers provided for this purpose, rather than different ones in
this particular test.

Leave fdt_getprop_str() alone as it seems to have more value.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Move fdt_overlay init into a function
Simon Glass [Fri, 7 Feb 2025 18:30:44 +0000 (11:30 -0700)] 
test: Move fdt_overlay init into a function

Move the init code into a separate function since it is quite large.
Adjust it to use unit-test functions which have become available since
the test was written.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Make all tests depend on UNIT_TEST
Simon Glass [Fri, 7 Feb 2025 18:30:43 +0000 (11:30 -0700)] 
test: Make all tests depend on UNIT_TEST

Rather than having this condition defined separately for each suite,
bracket all options with 'if UNIT_TEST'.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Move fdt-overlay-test rule into test/
Simon Glass [Fri, 7 Feb 2025 18:30:42 +0000 (11:30 -0700)] 
test: Move fdt-overlay-test rule into test/

The Makefile rules for tests should be within test/Makefile so move the
'fdt-overlay' rule over.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Move optee-test rule into test/
Simon Glass [Fri, 7 Feb 2025 18:30:41 +0000 (11:30 -0700)] 
test: Move optee-test rule into test/

The Makefile rules for tests should be within test/Makefile so move the
'optee' rule over.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Move env-test rule into test/
Simon Glass [Fri, 7 Feb 2025 18:30:40 +0000 (11:30 -0700)] 
test: Move env-test rule into test/

The Makefile rules for tests should be within test/Makefile so move the
'env' rule over.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Tweak FDT-overlay tests
Simon Glass [Fri, 7 Feb 2025 18:30:39 +0000 (11:30 -0700)] 
test: Tweak FDT-overlay tests

Use fdt_overlay consistently in the identifiers and file/dir names.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Support an init/uninit functions for test suites
Simon Glass [Fri, 7 Feb 2025 18:30:38 +0000 (11:30 -0700)] 
test: Support an init/uninit functions for test suites

Some suites need things to be set up before they can run. Add a way to
declare an init function using the UNIT_TEST_INIT() macro. The init
function is just like any other test, but is always placed first so that
it runs before all the other test functions in the suite.

Add an uninit function as well, to clean up after the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Leave out the prefix when printing test names
Simon Glass [Fri, 7 Feb 2025 18:30:37 +0000 (11:30 -0700)] 
test: Leave out the prefix when printing test names

When tests are all in the same suite it is annoying to have to read all
the common text after each name. Skip this to help the user.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Show the average time per test
Simon Glass [Fri, 7 Feb 2025 18:30:36 +0000 (11:30 -0700)] 
test: Show the average time per test

Show the average duration of a test, so we can keep track of how it is
trending. Report the suite with the longest average test to encourage
people to improve it.

Add a function to update the stats based on the results from a single
suite and another to show the summary information.

Make this optional, since sandbox's SPL tests do not have a timer driver
and people may want to print results without times.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Keep track of suite duration
Simon Glass [Fri, 7 Feb 2025 18:30:35 +0000 (11:30 -0700)] 
test: Keep track of suite duration

Show the time taken by each test suite with 'ut all' and the total time
for all suites.

Take care to remove any sandbox time-offset from the values.

Fix the comment-format on timer_test_add_offset() while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Add up the number of tests manually
Simon Glass [Fri, 7 Feb 2025 18:30:34 +0000 (11:30 -0700)] 
test: Add up the number of tests manually

All tests should belong to a suite, but if there is a suite we don't
know about (e.g. not added to cmd_ut.c) then the totals will not add up.
Add a check for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Fix a stray asterisk in ut_run_list()
Simon Glass [Fri, 7 Feb 2025 18:30:33 +0000 (11:30 -0700)] 
test: Fix a stray asterisk in ut_run_list()

Drop the unwanted asterisk in the comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agotest: Drop sandbox_set_enable_memio() from mux-cmd test
Simon Glass [Fri, 7 Feb 2025 18:30:32 +0000 (11:30 -0700)] 
test: Drop sandbox_set_enable_memio() from mux-cmd test

This test does not appear to use sandbox's memory-mapped I/O so there is
no need to enable it.

Even if there were a need, it should be disabled at the end of the test,
so as not to affect other tests.

Drop these lines from the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 months agoMerge patch series "Enable bloblist support on Vexpress64"
Tom Rini [Wed, 12 Feb 2025 00:09:05 +0000 (18:09 -0600)] 
Merge patch series "Enable bloblist support on Vexpress64"

Harrison Mutai <harrison.mutai@arm.com> says:

This series of patches enhances the vexpress64 platform by enabling bloblist
support. It also introduces support for CONFIG_BLOBLIST_PASSAGE. This is
necessary to boot vexpress64 and other boards without manually specifying a
fixed address and size for the bloblist.

After this change, all the bloblist init modes are supported (i.e., fixed,
alloc, passage) and Vexpress64 boots with CONFIG_BLOBLIST_PASSAGE.

Link: https://lore.kernel.org/r/20250204175844.19890-1-harrison.mutai@arm.com
6 months agoboard: vexpress64: enable bloblist for SPL handoff
Harrison Mutai [Tue, 4 Feb 2025 17:58:42 +0000 (17:58 +0000)] 
board: vexpress64: enable bloblist for SPL handoff

Enable bloblist on vexpress64 platforms to facilitate information
passing from TF-A using the firmware handoff framework.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
6 months agobloblist: add support for CONFIG_BLOBLIST_PASSAGE
Harrison Mutai [Tue, 4 Feb 2025 17:58:41 +0000 (17:58 +0000)] 
bloblist: add support for CONFIG_BLOBLIST_PASSAGE

When the configuration option CONFIG_BLOBLIST_PASSAGE is selected, the
bloblist present in the incoming standard passage is utilised in-place.
There is no need to specify the size of the bloblist as the system
automatically detects it using the header information.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
6 months agoboard: vexpress64: default to hardware device tree
Harrison Mutai [Tue, 4 Feb 2025 17:58:40 +0000 (17:58 +0000)] 
board: vexpress64: default to hardware device tree

When booting into the Linux kernel with semi-hosting, use the device
tree provided by hardware unless one is provided in the current
directory.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
6 months agobloblist: fix typo in code comments
Harrison Mutai [Tue, 4 Feb 2025 17:58:39 +0000 (17:58 +0000)] 
bloblist: fix typo in code comments

Fix the two typos in the spelling of same and set in common/Kconfig and
include/bloblist.h.

Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
6 months agoconfigs: Resync with savedefconfig
Tom Rini [Tue, 11 Feb 2025 15:11:21 +0000 (09:11 -0600)] 
configs: Resync with savedefconfig

Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
6 months agoMerge tag 'u-boot-dfu-20250211' of https://source.denx.de/u-boot/custodians/u-boot-dfu
Tom Rini [Tue, 11 Feb 2025 14:56:54 +0000 (08:56 -0600)] 
Merge tag 'u-boot-dfu-20250211' of https://source.denx.de/u-boot/custodians/u-boot-dfu

u-boot-dfu-20250211:

CI:
- https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/24556

Android:
- Handle boot images with missing DTB

Usb gadget:
- Fix nullptr in g_dnl when serial# is unset
- Add missing schedule() in f_mass_storage gadget
- Add support for STih407 in dwc3-generic
- Fix usb clocks on STih407
- Migrate STih407 to DM_USB_GADGET

6 months agocommon: Add NULL checks for xrealloc in make_string cli_hush.c
Anton Moryakov [Thu, 6 Feb 2025 22:01:23 +0000 (01:01 +0300)] 
common: Add NULL checks for xrealloc in make_string cli_hush.c

- Check return value of xrealloc for NULL.
- Free allocated memory and return NULL if xrealloc fails.
- Prevent NULL pointer dereference in strlen and strcat.

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
6 months agocommon: Add NULL checks for malloc_cache_aligned in autoboot.c
Anton Moryakov [Thu, 6 Feb 2025 21:55:21 +0000 (00:55 +0300)] 
common: Add NULL checks for malloc_cache_aligned in autoboot.c

- Check return value of malloc_cache_aligned for presskey and sha.
- Return -ENOMEM if memory allocation fails.
- Free allocated memory in error paths."

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
6 months agotools: proftool: Fix potential memory leaks
Maks Mishin [Wed, 5 Feb 2025 16:26:07 +0000 (19:26 +0300)] 
tools: proftool: Fix potential memory leaks

Dynamic memory, referenced by 'line', is allocated by calling
function 'calloc' and lost when the function terminates with code -1.

Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
6 months agotools: ublimage: Fix memory leak in parse_cfg_file()
Maks Mishin [Sun, 2 Feb 2025 17:05:42 +0000 (20:05 +0300)] 
tools: ublimage: Fix memory leak in parse_cfg_file()

Dynamic memory, referenced by 'line', is allocated at ublimage.c:159
by calling function 'getline' and lost at ublimage.c:184.

Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
6 months agotools: fix NULL_AFTER_DEREF in image-host.c
Anton Moryakov [Thu, 30 Jan 2025 13:42:43 +0000 (16:42 +0300)] 
tools: fix NULL_AFTER_DEREF in image-host.c

Report of the static analyzer:
1. NULL_AFTER_DEREF Pointer 'str', which is dereferenced at
   image-host.c:688 by calling function 'strdup', is compared to a NULL
   value at image-host.c:691.
2. NULL_AFTER_DEREF Pointer 'list', which is dereferenced at
   image-host.c:689, is compared to a NULL value at image-host.c:691.

Corrections explained:
1. Checking for NULL before using pointers: The if (!list || !str) check
   is now performed before calling strdup and realloc, which prevents
   null pointer dereferences.
2. Checking the result of strdup: strdup can return NULL if memory
   allocation fails. This also needs to be checked.
3. Checking the result of realloc: If realloc returns NULL, then memory
   has not been allocated and dup must be freed to avoid memory leaks.

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
6 months agoconfigs: stih410-b2260: Enable CMD_USB_MASS_STORAGE flag
Patrice Chotard [Thu, 30 Jan 2025 16:35:47 +0000 (17:35 +0100)] 
configs: stih410-b2260: Enable CMD_USB_MASS_STORAGE flag

Enable CMD_USB_MASS_STORAGE flag.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-10-patrice.chotard@foss.st.com
[mkorpershoek: fixed up commit footer]
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agoboard: stih410-b2260: Remove board_usb_init/cleanup()
Patrice Chotard [Thu, 30 Jan 2025 16:35:46 +0000 (17:35 +0100)] 
board: stih410-b2260: Remove board_usb_init/cleanup()

Since DM_USB_GADGET is enable for this board, board_usb_init()
and board_usb_cleanup() can be removed.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-9-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agoconfigs: stih410-b2260: Enable DM_USB_GADGET flag
Patrice Chotard [Thu, 30 Jan 2025 16:35:45 +0000 (17:35 +0100)] 
configs: stih410-b2260: Enable DM_USB_GADGET flag

Enable DM_USB_GADGET flag.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-8-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agoconfigs: stih410-b2260: Enable USB_DWC3_GENERIC and USB_DWC3_STI flags
Patrice Chotard [Thu, 30 Jan 2025 16:35:44 +0000 (17:35 +0100)] 
configs: stih410-b2260: Enable USB_DWC3_GENERIC and USB_DWC3_STI flags

Enable USB_DWC3_GENERIC and USB_DWC3_STI flags.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20250130163547.512990-7-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agousb: dwc3-generic: Add STih407 support
Patrice Chotard [Thu, 30 Jan 2025 16:35:43 +0000 (17:35 +0100)] 
usb: dwc3-generic: Add STih407 support

Add STi glue logic to manage the DWC3 HC on STiH407
SoC family. It configures the internal glue logic and
syscfg registers.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250130163547.512990-6-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agousb: dwc3-generic: Reorder include
Patrice Chotard [Thu, 30 Jan 2025 16:35:42 +0000 (17:35 +0100)] 
usb: dwc3-generic: Reorder include

Reorder include following rules available here :
https://docs.u-boot.org/en/latest/develop/codingstyle.html#include-files

Remove useless include files.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-5-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agousb: dwc3: Remove dwc3 glue driver support for STi
Patrice Chotard [Thu, 30 Jan 2025 16:35:41 +0000 (17:35 +0100)] 
usb: dwc3: Remove dwc3 glue driver support for STi

STi will migrate to dwc3-generic driver, dwc3-sti-glue driver
can be removed.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250130163547.512990-4-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agoconfigs: stih410-b2260: Enable DM_REGULATOR flag
Patrice Chotard [Thu, 30 Jan 2025 16:35:40 +0000 (17:35 +0100)] 
configs: stih410-b2260: Enable DM_REGULATOR flag

Since commit 6aa8bde8786d ("usb: host: ehci-generic: Remove DM_REGULATOR
flag") device_get_supply_regulator() returns -ENOSYS which is not handle
by ehci_enable_vbus_supply() and thus, ehci_usb_probe() return an error.

By enabling DM_REGULATOR flag, device_get_supply_regulator() return -ENOENT
which is handle and ehci_usb_probe() return 0.

This fixed the following issue:
stih410-b2260 =>usb start
starting USB...
Bus dwc3@9900000: Register 2000240 NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb@9a03c00: USB OHCI 1.0
Bus usb@9a03e00: probe failed, error -38
Bus usb@9a83c00: USB OHCI 1.0
Bus usb@9a83e00: probe failed, error -38
scanning bus dwc3@9900000 for devices... 1 USB Device(s) found
scanning bus usb@9a03c00 for devices... data abort
pc : [<7df929b4>]          lr : [<7df92918>]
reloc pc : [<7d6409b4>]    lr : [<7d640918>]
sp : 7c73b848  ip : 9cf13c5c     fp : 7c879d08
r10: 7c85d040  r9 : 7c74ded0     r8 : 09a03c00
r7 : 00000002  r6 : 7c85d080     r5 : 7c86a040  r4 : 00000000
r3 : 00000000  r2 : 00000000     r1 : 7c85d080  r0 : 7c85d040
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Code: 05853ae4 0affffe2 e59a2010 e59a300c (e5832010)
Resetting CPU ...

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-3-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
6 months agoARM: dts: sti: Add fixed clock for ehci and ohci nodes in stih410-b2260.dtsi
Patrice Chotard [Thu, 30 Jan 2025 16:35:39 +0000 (17:35 +0100)] 
ARM: dts: sti: Add fixed clock for ehci and ohci nodes in stih410-b2260.dtsi

On STi platforms, all clocks are enabled by BOOTROM, so CONFIG_CLK is
not set as no clock driver for STI exists.

As ehci-generic and ohci-generic drivers are used on platforms where
CONFIG_CLK is set, clk_get_bulk() returns-ENOSYS in case of
stih410-b2260.
To avoid this error, add fixed clocks for ehci and ohci nodes for
stih410-b2260 to fix the following errors:

Bus usb@9a03c00: ohci_generic usb@9a03c00: Failed to get clocks (ret=-19)
Port not available.
Bus usb@9a03e00: ehci_generic usb@9a03e00: Failed to get clocks (ret=-19)
Port not available.
Bus usb@9a83c00: ohci_generic usb@9a83c00: Failed to get clocks (ret=-19)
Port not available.
Bus usb@9a83e00: ehci_generic usb@9a83e00: Failed to get clocks (ret=-19)
Port not available.
scanning bus dwc3@9900000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20250130163547.512990-2-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>