pandora-u-boot.git
4 weeks agocyclic: make cyclic_register safe to call on already-registered info
Rasmus Villemoes [Wed, 7 May 2025 10:58:20 +0000 (12:58 +0200)]
cyclic: make cyclic_register safe to call on already-registered info

Now that cyclic_unregister() is safe to call on a not-registered
cyclic_info, we can make cyclic_register() behave like the mod_timer()
and hrtimer_start() APIs in linux, in that they don't distinguish
between whether the timer was already enabled or not; from the point
of the call it is, with whatever timeout/period is set in that most
recent call.

This avoids users of the cyclic API from separately keeping track of
whether their callback is already registered or not, and even if they
know it is, can be used for changing the period (and/or the callback
function) without first doing unregister().

See also this recent'ish message from kernel maintainer Thomas
Gleixner on that API design for timer frameworks:

  https://lore.kernel.org/lkml/87ikn6sibi.ffs@tglx/

  First of all the question is whether add() and mod() are really
  valuable distinctions. I'm not convinced at all. Back then, when we
  introduced hrtimers, we came to the conclusion that hrtimer_start()
  is sufficient.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
4 weeks agocyclic: make cyclic_unregister() idempotent
Rasmus Villemoes [Wed, 7 May 2025 10:58:19 +0000 (12:58 +0200)]
cyclic: make cyclic_unregister() idempotent

Make cyclic_unregister() safe to call with an already unregistered, or
possibly never registered, struct cyclic_info. This is similar to how
the various timer APIs in the linux kernel work (they all allow
calling delete/cancel/... on an inactive timer object).

This means callers don't have to separately keep track of whether
their cyclic callback is registered or not, and avoids them trying to
peek into the struct cyclic_info for that information - which leads to
somewhat ugly code as it would have to be guarded by ifdef
CONFIG_CYCLIC.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
4 weeks agoMerge tag 'u-boot-imx-master-20250512' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Mon, 12 May 2025 22:05:22 +0000 (16:05 -0600)]
Merge tag 'u-boot-imx-master-20250512' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/26116

- Add imxrt1170 support to the fspi SPI driver.
- Enable PCI early on imx95_evk.
- Fix fsl_enetc imdio register calculation.

4 weeks agoimx95_evk: enable PCI early
Tim Harvey [Fri, 9 May 2025 02:58:56 +0000 (23:58 -0300)]
imx95_evk: enable PCI early

Enable PCI early as the NETC device is an PCI ECAM device.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Alice Guo <alice.guo@nxp.com>
4 weeks agonet: fsl_enetc: fix imdio register calculation
Thomas Schaefer [Mon, 28 Apr 2025 09:59:46 +0000 (11:59 +0200)]
net: fsl_enetc: fix imdio register calculation

With commit cc4e8af2c552, fsl_enetc register accessors have been split to
handle different register offsets on different SoCs. However, for
internal MDIO register calculation, only ENETC_PM_IMDIO_BASE was fixed
without adding the SoC specific MAC register offset.

As a result, the network support for the Kontron SMARC-sAL28 and
probably other boards based on the LS1028A CPU is broken.

Add the SoC specific MAC register offset to calculation of imdio.priv to
fix this.

Fixes: cc4e8af2c552 ("net: fsl_enetc: Split register accessors")
Signed-off-by: Thomas Schaefer <thomas.schaefer@kontron.com>
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # LS1028A
Tested-by: Tim Harvey <tharvey@gateworks.com> # imx95_19x19_evk
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Alice Guo <alice.guo@nxp.com>
4 weeks agoconfigs: imxrt1170-evk_defconfig: include FlexSPI driver and flash chip support
Jonathan Currier [Wed, 7 May 2025 08:36:24 +0000 (03:36 -0500)]
configs: imxrt1170-evk_defconfig: include FlexSPI driver and flash chip support

Signed-off-by: Jonathan Currier <dullfire@yahoo.com>
4 weeks agospi: fspi: dev_dbg() call assumes fdt_addr_t always a long long
Jonathan Currier [Wed, 7 May 2025 08:36:23 +0000 (03:36 -0500)]
spi: fspi: dev_dbg() call assumes fdt_addr_t always a long long

On 32-bit systems, e.g. i.mxrt-1170 fdt_addr_t may only be 32-bit.
Cast to a "long long" for garbage avoidance.

Signed-off-by: Jonathan Currier <dullfire@yahoo.com>
4 weeks agoARM: dts: imx: Add flexspi (fspi) to imxrt1170 and it's evk.
Jonathan Currier [Wed, 7 May 2025 08:36:22 +0000 (03:36 -0500)]
ARM: dts: imx: Add flexspi (fspi) to imxrt1170 and it's evk.

Signed-off-by: Jonathan Currier <dullfire@yahoo.com>
4 weeks agospi: fspi: Add imxrt1170 device data
Jonathan Currier [Wed, 7 May 2025 08:36:21 +0000 (03:36 -0500)]
spi: fspi: Add imxrt1170 device data

Add the device specific driver data, and the clock configuration.

Signed-off-by: Jonathan Currier <dullfire@yahoo.com>
4 weeks agospi: fspi: involve lut_num for struct nxp_fspi_devtype_data
Jonathan Currier [Wed, 7 May 2025 08:36:20 +0000 (03:36 -0500)]
spi: fspi: involve lut_num for struct nxp_fspi_devtype_data

The flexspi on different SoCs may have different number of LUTs.
So involve lut_num in nxp_fspi_devtype_data to make distinguish.
This patch prepare for the adding of imx8ulp.

Fixes: ef89fd56bdfc ("arm64: dts: imx8ulp: add flexspi node")
Cc: stable@kernel.org
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20240905094338.1986871-3-haibo.chen@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(Picked from linux 190b7e2efb1ed8435fc7431d9c7a2447d05d5066)

Signed-off-by: Jonathan Currier <dullfire@yahoo.com>
4 weeks agoPrepare v2025.07-rc2 v2025.07-rc2
Tom Rini [Mon, 12 May 2025 20:33:38 +0000 (14:33 -0600)]
Prepare v2025.07-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 12 May 2025 14:52:37 +0000 (08:52 -0600)]
configs: Resync with savedefconfig

Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agoclk: Fix clk_set_parent() regression
Jonas Karlman [Sat, 10 May 2025 15:32:01 +0000 (15:32 +0000)]
clk: Fix clk_set_parent() regression

The commit ac30d90f3367 ("clk: Ensure the parent clocks are enabled
while reparenting") add a call to clk_enable() for the parent clock.

For clock drivers that do not implement the enable() ops, like most
Rockchip clock drivers, this now cause the set_parent() ops to never
be called when CLK_CCF=n (default for Rockchip).

clk_enable() typically return -ENOSYS when the enable() ops is not
implemented by the clock driver, with CLK_CCF=y clk_enable() instead
return 0 when the enable() ops is unimplemented.

Change to ignore -ENOSYS from the newly introduced clk_enable() call to
fix this regression and restore the old behavior of set_parent() ops
being called regardless of if enable() ops is implemented or not.

Fixes: ac30d90f3367 ("clk: Ensure the parent clocks are enabled while reparenting")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: Dang Huynh <danct12@riseup.net>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
5 weeks agoMerge tag 'efi-2025-07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 11 May 2025 14:36:37 +0000 (08:36 -0600)]
Merge tag 'efi-2025-07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull-request efi-2025-07-rc3

CI:

* https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/26146

Documentation:

* Improve the pytest documentation
* u-boot-test-reset: mention power cycling
* describe u-boot-test-release
* correct link to QEMU
* describe that RISC-V supports semihosting

UEFI:

* link libggc via PLATFORM_LIBGCC to EFI binaries
* allow suppressing ANSI output in dtbdump.efi
* test/py/test_efi_fit: test fdt and initrd

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEK7wKXt3/btL6/yA+hO4vgnE3U0sFAmggj+IACgkQhO4vgnE3
# U0sjTBAAkWySSBNFoj12AyjO2h4kJecxiJJxyoMYTcsr3xdgV0WTPQFaWcSBqTsL
# NgKq5KFNe+ywUdDIqU1VLOTcQf298hofRrcp5Gfhv+syZaRCorCSoSJI6ZveZ5Bi
# 9N2pPvhEVrlFBF2XannJ5ilYtLAbiqIvVFmdLmFwRPbODv/gfEkSudSy0Za7t1tM
# c7RoRegpXziY4Y1XPfr3MpXgKpUQkOPnvXKUwtHhL055X/1Ggg87dzPg1fiU+DiQ
# AGAgvGD/KF/ym4aWQ3jWyji8Kxc5BLsurv083it7JAmL82wqNbU9j5cx3mS/f2Le
# uL7YWv1GANbq+MoBC5O3nkB+yUtHSLylFC3KKFiehmKhc/JO+Uj3cJY/Q/25+lxs
# aahG3C/5xgBTgM6YEqJfSqKYQVFsC2V/a7gWAFlX7OidYXm6oDBu4TeAHmAtBgcj
# pz0AVCYMWyhKE+zb+4U2mlKEQ8bJpFdC2Q+pTMciGAM3YyztotJ1yoM4IndDrh4q
# ScrIpXHSqWLlZfev+NnJDw1UKLWEJIMeXh0uzfpaT5M0cLEDeHTOSX9Fp3ZPj9Af
# +T3nNWSXWlOW0wc6C5igj4p0UiGSbHMMPOa54f/D0gdl/UkPZ1YPBYVBa/eX1yBy
# NlaJziLCmLqyWpYIVhaigKDtGWfgjoHGaABfyuSIj/HxmIHhD5w=
# =NbGi
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 11 May 2025 05:54:10 AM CST
# gpg:                using RSA key 2BBC0A5EDDFF6ED2FAFF203E84EE2F827137534B
# gpg: Can't check signature: No public key

5 weeks agotest/py/test_efi_fit: test fdt and initrd
Adriano Cordova [Thu, 8 May 2025 18:30:34 +0000 (14:30 -0400)]
test/py/test_efi_fit: test fdt and initrd

Add tests to check initrd and dtb loading

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
5 weeks agoefi_loader: fix dtbdump output color and format
Adriano Cordova [Thu, 8 May 2025 18:30:33 +0000 (14:30 -0400)]
efi_loader: fix dtbdump output color and format

Imitate in dtbdump what initrddump does for color,
newlines and input handling. The output parsing in
the CI is strict and with the current output the CI
is not recongnizing the prompt '=>'.

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoscripts/Makefile.lib: add PLATFORM_LIBGCC to efi linking
Adriano Cordova [Thu, 8 May 2025 18:30:32 +0000 (14:30 -0400)]
scripts/Makefile.lib: add PLATFORM_LIBGCC to efi linking

Link .efi applications using libgcc

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
5 weeks agodoc: RISC-V supports semihosting
Heinrich Schuchardt [Fri, 9 May 2025 06:42:07 +0000 (08:42 +0200)]
doc: RISC-V supports semihosting

Mention that RISC-V supports semihosting.
Update the link to ARM's semihosting documentation

Update SPDX identifier to current format.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: correct link to QEMU
Heinrich Schuchardt [Fri, 9 May 2025 06:39:04 +0000 (08:39 +0200)]
doc: correct link to QEMU

%s/hhttps:/https:/

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: pytest: Document the test_button test
Tom Rini [Thu, 8 May 2025 21:34:45 +0000 (15:34 -0600)]
doc: pytest: Document the test_button test

Add this test to the documentation. No changes to the test itself were
required.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_bootmenu test
Tom Rini [Thu, 8 May 2025 21:34:44 +0000 (15:34 -0600)]
doc: pytest: Document the test_bootmenu test

Add this test to the documentation. There was already a function comment
that included the argument, so convert it to the right style to be
rendered correctly in output.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_bind test
Tom Rini [Thu, 8 May 2025 21:34:43 +0000 (15:34 -0600)]
doc: pytest: Document the test_bind test

Add this test to the documentation. None of the functions had comments,
so attempt to explain what each does.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_efi_loader test
Tom Rini [Wed, 7 May 2025 23:23:02 +0000 (17:23 -0600)]
doc: pytest: Document the test_efi_loader test

Add this test to the documentation. We need to add a code-block
annotation to the example and indent it correctly. We also need to
document the do_test_efi_helloworld_net function and that in turn means
changing the documentation to test_efi_helloworld_net_http and
test_efi_helloworld_net_tftp to reflect what is and isn't done in those
functions themselves now.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_bootstage test
Tom Rini [Wed, 7 May 2025 23:23:01 +0000 (17:23 -0600)]
doc: pytest: Document the test_bootstage test

Add this test to the documentation. We need to move the import to follow
the main comment so that it renders correctly, and add a code-block
annotation to the example and indent it correctly. Next, neither of the
functions had comments themselves, so document them now.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_net test
Tom Rini [Wed, 7 May 2025 23:23:00 +0000 (17:23 -0600)]
doc: pytest: Document the test_net test

Add this test to the documentation. While the diff appears large at
first, the only changes within the test are to move the imports to
follow the pydoc comment and then to code-block and indent the example
configuration.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agotest: test_net_boot: Add more comments
Tom Rini [Wed, 7 May 2025 22:08:20 +0000 (16:08 -0600)]
test: test_net_boot: Add more comments

Some of the functions were missing pydoc comments. Add them so they will
be included in the documentation.

Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Document the test_net_boot test
Tom Rini [Wed, 7 May 2025 22:08:19 +0000 (16:08 -0600)]
doc: pytest: Document the test_net_boot test

Add the test_net_boot.py test to the generated documentation. While most
of this was already commented correctly for inclusion the biggest
problem was examples of code without a code-block notation. This in turn
broke parsing. Add the missing notations. We also must have the comment
prior to any import lines or it will not be seen as a comment on the
overall file and thus not included.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: pytest: Framework for documenting tests and document test_000_version
Tom Rini [Wed, 7 May 2025 22:08:18 +0000 (16:08 -0600)]
doc: pytest: Framework for documenting tests and document test_000_version

In order to easily document pytests, we need to include the autodoc
extension. We also need to make sure that for building the docs, CI
includes pytest and that we have PYTHONPATH configured such that it will
find all of the tests and related files. Finally, we need to have our
comments in the test file by in proper pydoc format in order to be
included in the output.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agodoc: Start improving our pytest documentation
Tom Rini [Wed, 7 May 2025 22:08:17 +0000 (16:08 -0600)]
doc: Start improving our pytest documentation

Begin the work of documenting all of our pytests. To do this, we should
have a directory under develop for it as there will be a large number of
new files. As the current document is referenced externally in a number
of locations, add the sphinx_reredirects module so that we can redirect
from the old location to the new.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agocmd: nvedit: fix efi env -e -i command help
Vincent Stehlé [Tue, 6 May 2025 12:36:22 +0000 (14:36 +0200)]
cmd: nvedit: fix efi env -e -i command help

The help string for the `setenv -e' command shows a comma being used as
the separator between address and size for the -i option, which deals
with UEFI Variables contents passed as a buffer in memory.
This is no longer the case since commit 2b3fbcb59f41 ("efi_loader: use
':' as separator for setenv -i") and commit 8f0ac536d493 ("efi: change
'env -e -i' usage syntax"), which changed the separator from a comma to
a colon.
Therefore fix this last bit of the help string accordingly.

While at it, fix the comment of function do_env_set_efi(), which also
mentions a comma as separator.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Maxim Uvarov <maxim.uvarov@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: describe u-boot-test-release
Heinrich Schuchardt [Sat, 3 May 2025 10:14:24 +0000 (12:14 +0200)]
doc: describe u-boot-test-release

The scripts u-boot-test-release is called at the end of testing.
Describe it.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: u-boot-test-reset: mention power cycling
Heinrich Schuchardt [Sat, 3 May 2025 10:12:37 +0000 (12:12 +0200)]
doc: u-boot-test-reset: mention power cycling

Using power cycling is a valid option to implement u-boot-test-reset.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoboard: ti: sec-cfg.yaml: Fix OTP write_host_id order
Andrew Davis [Mon, 5 May 2025 17:46:01 +0000 (12:46 -0500)]
board: ti: sec-cfg.yaml: Fix OTP write_host_id order

The write_host_id is the last element here and order does matter. This
may have gone unnoticed before as by default all elements are 0, but
if this is updated to a different host, it will not work. Update
the order so write_host_id is the last element in all current secure
board configs.

Reported-by: Prashant Shivhare <p-shivhare@ti.com>
Signed-off-by: Andrew Davis <afd@ti.com>
5 weeks agoDockerfile: use lz4 instead of lz4-tools
Heinrich Schuchardt [Mon, 5 May 2025 14:43:14 +0000 (16:43 +0200)]
Dockerfile: use lz4 instead of lz4-tools

Since Ubuntu Jammy lz4-tools is only a virtual package which pulls in
lz4 as dependency.

Update documentation too.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 weeks agoboard: ti: common: Kconfig: add CMD_CACHE
Anshul Dalal [Fri, 2 May 2025 05:05:16 +0000 (10:35 +0530)]
board: ti: common: Kconfig: add CMD_CACHE

Add CMD_CACHE to list of configs implied by TI_COMMON_CMD_OPTIONS.
This allows the usage of cache commands from U-Boot prompt.

Signed-off-by: Anshul Dalal <anshuld@ti.com>
Reviewed-by: Daniel Schultz <d.schultz@phytec.de>
5 weeks agoconfigs: j722s_evm_r5_defconfig: Enable PMIC config
Udit Kumar [Thu, 1 May 2025 17:53:08 +0000 (23:23 +0530)]
configs: j722s_evm_r5_defconfig: Enable PMIC config

In kernel device tre commit 714d54917147: ("arm64: dts: ti: k3-j722s-evm:
Enable PMIC") adds pmic support.

Above commit of kernel get synched in u-boot by sha ab06a533f08e:("Squashed
'dts/upstream/' changes from 8531b4b4988c..955176a4ff59").

Now, PMIC DT is available in u-boot for J722S EVM,
So enable PMIC in defconfig as well.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
5 weeks agodisable mail for swarren
Stephen Warren [Fri, 14 Mar 2025 18:10:31 +0000 (12:10 -0600)]
disable mail for swarren

I haven't been involved in U-Boot development for quite a while, so
CCing me on patches isn't currently useful. Add a .mailmap entry that I
believe will turn off patch CCs. This can always be removed if I become
active again! Remove myself from a few MAINTAINERS failed and the git
mailrc file too.

5 weeks agonet: dwc: xgmac: Allow DMA buffers above 4GB
Nikunj Kela [Sat, 22 Feb 2025 06:07:34 +0000 (22:07 -0800)]
net: dwc: xgmac: Allow DMA buffers above 4GB

Currently, Synopsis xgmac driver only works if DMA region is under 4GB.
This change enables the DMA buffers allocations above 4GB memory
regions.

Signed-off-by: Nikunj Kela <nikunj.kela@sima.ai>
5 weeks agox86: Correct usage of FSP_VERSION2
Tom Rini [Sat, 15 Mar 2025 01:28:45 +0000 (19:28 -0600)]
x86: Correct usage of FSP_VERSION2

As the code is today, we get a warning about "select" statements on
"choice" options not doing anything. In this case, we move to having a
"default FSP_VERSION2 if INTEL_APOLLOLAKE" in order to get the desired
outcome.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agox86: spl: Add support for NVMe boot device
Naresh Solanki [Wed, 12 Mar 2025 09:01:15 +0000 (14:31 +0530)]
x86: spl: Add support for NVMe boot device

This change adds `BOOT_DEVICE_NVME` to the `enum` list in
`arch/x86/include/asm/spl.h`,
enabling NVMe as a recognized boot device for SPL (Secondary Program
Loader).

Tested x86 hardware with coreboot + U-Boot payload.
Verified successful boot to NVMe drive.

Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agogpio: x86: Correct usage of IS_ENABLED() macro in intel_pinctrl_defs.h
Tom Rini [Wed, 26 Feb 2025 20:31:32 +0000 (14:31 -0600)]
gpio: x86: Correct usage of IS_ENABLED() macro in intel_pinctrl_defs.h

This file was using IS_ENABLED() to test for CONFIG flags but omitted
the CONFIG_ prefix and so did not work as expected.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agox86: Correct usage of IS_ENABLED() macro in arch/x86/lib/spl.c
Tom Rini [Wed, 26 Feb 2025 20:31:26 +0000 (14:31 -0600)]
x86: Correct usage of IS_ENABLED() macro in arch/x86/lib/spl.c

This file was using IS_ENABLED() to test for CONFIG flags but omitted
the CONFIG_ prefix and so did not work as expected.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agox86: apl: Correct usage of IS_ENABLED() macro in acpi-pmc-uclass.c
Tom Rini [Wed, 26 Feb 2025 20:31:15 +0000 (14:31 -0600)]
x86: apl: Correct usage of IS_ENABLED() macro in acpi-pmc-uclass.c

This file was using IS_ENABLED() to test for CONFIG flags but omitted
the CONFIG_ prefix and so did not work as expected.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agox86: cpu: Describe board final hooks in the header
Andy Shevchenko [Fri, 18 Oct 2024 15:55:57 +0000 (18:55 +0300)]
x86: cpu: Describe board final hooks in the header

The new two declarations board_final_init() and board_final_cleanup()
need a description. Add it here.

Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 weeks agoMerge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Tom Rini [Thu, 8 May 2025 15:22:25 +0000 (09:22 -0600)]
Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra

5 weeks agoMerge tag 'u-boot-rockchip-20250508' of https://source.denx.de/u-boot/custodians...
Tom Rini [Thu, 8 May 2025 14:29:17 +0000 (08:29 -0600)]
Merge tag 'u-boot-rockchip-20250508' of https://source.denx.de/u-boot/custodians/u-boot-rockchip

CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/26117

- New Board support: rk3566 LCKFB TaishanPi, rk3588 Xunlong Orange Pi 5
  Max;
- Add rk3288 rmii support;
- pinctrl driver fix;
- binman description update;

5 weeks agoARM: tegra: drop CONFIG_DISABLE_SDMMC1_EARLY
Svyatoslav Ryhel [Fri, 18 Apr 2025 14:29:52 +0000 (17:29 +0300)]
ARM: tegra: drop CONFIG_DISABLE_SDMMC1_EARLY

This was a temporary workaround for the Tegra210 Jetson Nano board. It is
not used by any device anymore, so let's remove it.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agoARM: tegra: set default SYS_CONFIG_NAME from SoC Kconfig
Svyatoslav Ryhel [Tue, 15 Apr 2025 15:07:01 +0000 (18:07 +0300)]
ARM: tegra: set default SYS_CONFIG_NAME from SoC Kconfig

Since most boards now use the same generic device config header, move its
setup to SoC Kconfig instead of setting SYS_CONFIG_NAME in each board's
Kconfig.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agoARM: tegra: convert boards to use TEGRA_PRAM
Svyatoslav Ryhel [Tue, 15 Apr 2025 08:55:28 +0000 (11:55 +0300)]
ARM: tegra: convert boards to use TEGRA_PRAM

Switch boards that use CFG_PRAM to TEGRA_PRAM.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agoARM: tegra: add PRAM Kconfig option
Svyatoslav Ryhel [Tue, 15 Apr 2025 08:54:55 +0000 (11:54 +0300)]
ARM: tegra: add PRAM Kconfig option

Wrap CFG_PRAM with Kconfig option.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agoboard: lg: star: add Optimus 2X P990 support
Svyatoslav Ryhel [Fri, 3 Nov 2023 19:00:22 +0000 (21:00 +0200)]
board: lg: star: add Optimus 2X P990 support

The LG Optimus 2X is a touchscreen-based, slate-sized smartphone designed
and manufactured by LG that runs the Android operating system. The
Optimus 2X features a 4" WVGA display, an Nvidia Tegra 2 dual-core chip,
512 MB of RAM and extendable 8 GB of internal storage. UART-B is default
debug port.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agovideo: backlight: add Skyworks/Analogictech AAT2870 led controller driver
Svyatoslav Ryhel [Wed, 2 Oct 2024 09:07:10 +0000 (12:07 +0300)]
video: backlight: add Skyworks/Analogictech AAT2870 led controller driver

Add support for Skyworks AAT2870 LED Backlight Driver and Multiple LDO
Lighting Management Unit. Only backlight is supported as for now. Supported
backlight level range is from 2 to 255 with step of 1.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agovideo: panel: add LG LH400WV3-SD04 MIPI DSI panel driver
Svyatoslav Ryhel [Mon, 3 Mar 2025 13:00:37 +0000 (15:00 +0200)]
video: panel: add LG LH400WV3-SD04 MIPI DSI panel driver

LG LH400WV3-SD04 is a color active matrix TFT (Thin Film Transistor)
liquid crystal display (LCD). The resolution of a 4" contains 480 x 800
pixels.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agovideo: panel: add Hitachi TX10D07VM0BAA MIPI DSI panel driver
Svyatoslav Ryhel [Fri, 4 Oct 2024 09:03:09 +0000 (12:03 +0300)]
video: panel: add Hitachi TX10D07VM0BAA MIPI DSI panel driver

Hitachi TX10D07VM0BAA is a color active matrix TFT (Thin Film Transistor)
liquid crystal display (LCD). The resolution of a 4" contains 480 x 800
pixels.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agovideo: tegra: add 8-bit CPU driven protocol
Svyatoslav Ryhel [Fri, 4 Oct 2024 08:54:46 +0000 (11:54 +0300)]
video: tegra: add 8-bit CPU driven protocol

Add support for 8-bit CPU driven (primary and secondary) display signal
interface found in Tegra 2 and Tegra 3 SoC.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agosysreset: implement MAX9807 sysreset functions
Svyatoslav Ryhel [Sun, 6 Oct 2024 13:51:21 +0000 (16:51 +0300)]
sysreset: implement MAX9807 sysreset functions

MAX8907 PMIC has embedded poweroff function used by some device to initiane
device power off. Implement it as optional sysreset driver guarded by
kconfig option and system-power-controller device tree property.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agopower: regulator: max9807: add regulator support
Svyatoslav Ryhel [Sun, 6 Oct 2024 11:59:54 +0000 (14:59 +0300)]
power: regulator: max9807: add regulator support

Added a new regulator driver for the MAXIM MAX8907 PMIC, providing
essential regulator functionalities and incorporated the necessary binding
framework within the core PMIC driver.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agopower: pmic: add the base MAX8907 PMIC support
Svyatoslav Ryhel [Sun, 6 Oct 2024 11:50:02 +0000 (14:50 +0300)]
power: pmic: add the base MAX8907 PMIC support

Add basic i2c based read/write functions to access PMIC registers.

Tested-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agogpio: tegra_gpio: implement rfree operation
Svyatoslav Ryhel [Fri, 11 Apr 2025 05:49:12 +0000 (08:49 +0300)]
gpio: tegra_gpio: implement rfree operation

Releasing a GPIO on Tegra necessitates changing its configuration to SFIO
to activate its special function. Without this reconfiguration, the special
function will be unavailable.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
5 weeks agonet: gmac_rockchip: Add RMII support for rk3288
Christoph Fritz [Wed, 16 Apr 2025 11:45:35 +0000 (13:45 +0200)]
net: gmac_rockchip: Add RMII support for rk3288

Add RMII-specific handling to rk3288_gmac_fix_mac_speed() so that it
properly sets the RMII clock (2.5 MHz vs. 25 MHz) and speed bits
(10 Mbps vs. 100 Mbps). Also define a new rk3288_gmac_set_to_rmii()
function to set the PHY interface field and RMII_MODE bit.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agorockchip: rk3288: grf: Unify speed/flowctrl fields for clarity
Christoph Fritz [Wed, 16 Apr 2025 11:44:13 +0000 (13:44 +0200)]
rockchip: rk3288: grf: Unify speed/flowctrl fields for clarity

Update GMAC speed and flow control fields in GRF_SOC_CON1 to use
RK3288_GMAC_* prefix, ensuring a consistent naming convention. It also
shifts each mask/bit definition to match the actual hardware bits, which
makes future usage easier.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agoboard: rockchip: Add LCKFB TaishanPi RK3566 Board
Jiehui He [Tue, 15 Apr 2025 07:36:50 +0000 (03:36 -0400)]
board: rockchip: Add LCKFB TaishanPi RK3566 Board

The LCKFB TaishanPi is a single-board computer based on the RK3566 SoC.

Specification:
- 1/2 Gib RAM
- Optinal EMMC
- SD-Card
- HDMI / MIPI CSI / MIPI DSI
- USB 2.0 Host (Type-A)
- USB 2.0 Host / OTG (Type-C)
- No Ethernet

This patch adds U-Boot support for the LCKFB TaishanPi RK3566 board, including:
- U-Boot device tree
- Default defconfig
- Board documentation
- MAINTAINERS entry

Changes in v2:
- Removed unused configs from `lckfb-tspi-rk3566_defconfig`
- Reordered TaishanPi entry in `doc/board/rockchip/rockchip.rst` alphabetically

Link to v1:
https://lore.kernel.org/u-boot/tencent_95ED0C0545D87B6A8C4B62EC045D53AD2406@qq.com/

Signed-off-by: Jiehui He <jiehui.he@foxmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agoboard: rockchip: add Xunlong Orange Pi 5 Max
Ilya Katsnelson [Wed, 23 Apr 2025 15:36:40 +0000 (18:36 +0300)]
board: rockchip: add Xunlong Orange Pi 5 Max

The 5 Max is another board in the Orange Pi 5 family.

It's overall similar to the 5 Plus, but in a smaller form factor,
which leads to some I/O being reshuffled, but nothing relevant
to u-boot.

So, just reuse the config for the 5 Plus and adjust the DT names.

Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Ilya Katsnelson <me@0upti.me>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agoMerge patch series "include: env: phytec: k3_net: Remove net_apply_extensions"
Tom Rini [Wed, 7 May 2025 13:59:09 +0000 (07:59 -0600)]
Merge patch series "include: env: phytec: k3_net: Remove net_apply_extensions"

This series from Daniel Schultz <d.schultz@phytec.de> cleans up the
environment further on the phytec am62ax platforms.

Link: https://lore.kernel.org/r/20250428144904.1058574-1-d.schultz@phytec.de
5 weeks agoboard: phytec: phycore_am62ax: Update Environment
Daniel Schultz [Mon, 28 Apr 2025 14:49:04 +0000 (07:49 -0700)]
board: phytec: phycore_am62ax: Update Environment

Add fit_addr_r to the environment to allow us to boot from a FIT image.

Increase the maximum Image size from 23 MB to 26 MB by moving the
initramfs start address up. This gives us a bigger ranger to
provide kernel images which are not stripped down too much.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 weeks agoinclude: env: phytec: k3_net: Use get_cmd
Daniel Schultz [Mon, 28 Apr 2025 14:49:03 +0000 (07:49 -0700)]
include: env: phytec: k3_net: Use get_cmd

'net_fetch_cmd' is not defined by the K3 board files. They
use the more common 'get_cmd' from NXP products.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
5 weeks agoinclude: env: phytec: k3_net: Remove net_apply_extensions
Daniel Schultz [Mon, 28 Apr 2025 14:49:02 +0000 (07:49 -0700)]
include: env: phytec: k3_net: Remove net_apply_extensions

Extensions are now handled by the board-code. Remove this non-existing
function to proper boot from network.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
5 weeks agobootstd: Rework BLK dependency
Tom Rini [Wed, 23 Apr 2025 14:49:13 +0000 (08:49 -0600)]
bootstd: Rework BLK dependency

The bootstd code itself does not have any dependency on BLK in order to
build. However, in order to minimize size growth of non-migrated
platforms, change this from being "default y" to "default y if BLK".
This will make it easier to begin migration of platforms which do not
have any BLK-class device but do want to use bootstd.

Signed-off-by: Tom Rini <trini@konsulko.com>
5 weeks agomips: octeon: remove unused middle expression
Bryan Brattlof [Wed, 9 Apr 2025 17:26:20 +0000 (12:26 -0500)]
mips: octeon: remove unused middle expression

!A || (A && B) is equivalent to !A || B

Drop the unused middle expression to simplify the statement.

Signed-off-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
5 weeks agomtd: spi-nor: Send write disable cmd after every write enable
Venkatesh Yadav Abbarapu [Tue, 19 Nov 2024 06:39:18 +0000 (12:09 +0530)]
mtd: spi-nor: Send write disable cmd after every write enable

Write enable(06h) command will be sent to a flash device to
set the write enable latch bit before every program, erase,
write command. After that write disable command (04h) needs
to be sent to clear the write enable latch.

This write_disable() is missing at the majority of the places
in the driver, add it to clear write enable latch.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://gist.github.com/PrasanthBabuMantena/c12f39744de188a9d08cd5ca51dc2a7b
Tested-by: Prasanth Babu Mantena <p-mantena@ti.com>
5 weeks agomtd: spi-nor-core: Fixup SNOR_F_IO_MODE_EN_VOLATILE for MT35X
Vaishnav Achath [Mon, 25 Nov 2024 10:49:47 +0000 (16:19 +0530)]
mtd: spi-nor-core: Fixup SNOR_F_IO_MODE_EN_VOLATILE for MT35X

MT35XU512ABA has only BFPT and 4-Byte Address Instruction Table
in  SFDP. commit bebdc237507c ("mtd: spi-nor: Parse SFDP SCCR Map")
added checks in spi_nor_octal_dtr_enable() to bail out if the 22nd DWORD
in SCCR does not indicate DTR Octal Mode Enable, since MT35XU512ABA device
supports octal DTR mode, add this property in SFDP fixup.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
5 weeks agoconfigs: rockchip: sync ENV_MEM_LAYOUT_SETTINGS for px30 to rk3308/etc
Heiko Stuebner [Tue, 6 May 2025 08:55:31 +0000 (10:55 +0200)]
configs: rockchip: sync ENV_MEM_LAYOUT_SETTINGS for px30 to rk3308/etc

Loading a FIT image for kernel, initrd and rootfs on px30 can result in an
memory overlap, resulting in the not 100% helpful message of
"This will not be a case any time" from lmb_fix_over_lap_regions().

Adding a bit of debug info to lmb_fix_over_lap_regions() brings:
lmb_fix_over_lap_regions: base1 0x280000-0x6005ac > base2 0x600000-0x6000d1

So this is because the FIT image gets loaded to the kernel_addr_r at
0x280000 while the pxe-file is already living at 0x600000, only 3.5MB
behind.

In commit 4acc8bb044a4 ("configs: rockchip: sync ENV_MEM_LAYOUT_SETTINGS
for rk3308, rk3328, and rk3399") FUKAUMI Naoki already brought the memory
layouts for the mentioned socs in sync.

Adjusting the env-layout on px30 to this scheme, magically solves the
overlap issue and also brings px30 more in line with the other mentioned
SoCs.

Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agorockchip: io-domain: Enable by default for all supported SoCs
Chen-Yu Tsai [Tue, 29 Apr 2025 13:28:40 +0000 (21:28 +0800)]
rockchip: io-domain: Enable by default for all supported SoCs

The IO domain driver controls the I/O voltage for various pins,
MMC included.

Enable it by default for all supported Rockchip SoCs.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RV1108
Quentin Schulz [Fri, 31 Jan 2025 10:31:41 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RV1108

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3399
Quentin Schulz [Fri, 31 Jan 2025 10:31:40 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3399

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3368
Quentin Schulz [Fri, 31 Jan 2025 10:31:39 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3368

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3328
Quentin Schulz [Fri, 31 Jan 2025 10:31:38 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3328

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3308
Quentin Schulz [Fri, 31 Jan 2025 10:31:37 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3308

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3288
Quentin Schulz [Fri, 31 Jan 2025 10:31:36 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3288

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3228
Quentin Schulz [Fri, 31 Jan 2025 10:31:35 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3228

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3188
Quentin Schulz [Fri, 31 Jan 2025 10:31:34 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3188

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3128
Quentin Schulz [Fri, 31 Jan 2025 10:31:33 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3128

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3066
Quentin Schulz [Fri, 31 Jan 2025 10:31:32 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3066

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for RK3036
Quentin Schulz [Fri, 31 Jan 2025 10:31:31 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for RK3036

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: constify rockchip_pin_ctrl for PX30
Quentin Schulz [Fri, 31 Jan 2025 10:31:30 +0000 (11:31 +0100)]
pinctrl: rockchip: constify rockchip_pin_ctrl for PX30

There's no need to modify private data from the controller, so let's
make that struct const.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agopinctrl: rockchip: fix bank's pin_base computing
Quentin Schulz [Fri, 31 Jan 2025 10:31:29 +0000 (11:31 +0100)]
pinctrl: rockchip: fix bank's pin_base computing

The logic in the core reads the nr_pins of the controller and uses it as
the index of the first pin in the bank (pin_base) it currently parses.
It then increments the number of pins in the controller before going to
the next bank.

This works "fine" for controllers where nr_pins isn't defined in their
rockchip_pin_ctrl struct as it defaults to 0. However, when it is
already set, it'll make the index pin of each bank offset by the number
in nr_pins declared in the struct at initialization, and it'll keep
growing while adding banks, which means the total number of pins in the
controller will be misrepresented.

Additionally, U-Boot proper may probe this driver twice (pre-reloc and
true proper) and not reset nr_pins of the controller in-between meaning
the second probe will have an offset of the actual correct nr_pins.

Instead, let's just store locally the number of pins in the controller
and make sure it's reset between probes.

Finally, this stops modifying a const struct which will soon be
triggering a CPU abort at runtime.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agorockchip: binman: Support use of crc32 hash for FIT images
Jonas Karlman [Sun, 13 Apr 2025 19:59:39 +0000 (19:59 +0000)]
rockchip: binman: Support use of crc32 hash for FIT images

Use of SHA256 checksum validation on ARMv7 SoCs can be very time
consuming compared to when used on a ARMv8 SoC with Crypto Extensions.

Add support for use of the much faster CRC32 hash algo when SHA256 is
not supported in SPL. Also use FIT_HASH_ALGO to simplify the ifdefs when
no known hash algo has been compiled.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: binman: Include a compatible string in each configuration
Simon Glass [Sun, 13 Apr 2025 19:59:38 +0000 (19:59 +0000)]
rockchip: binman: Include a compatible string in each configuration

Provide a compatible string in the config nodes that U-Boot can use to
help decide which configuration to use with SPL_LOAD_FIT_FULL=y and
FIT_BEST_MATCH=y.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: Add SPL_PAD_TO Kconfig default value
Jonas Karlman [Sun, 13 Apr 2025 19:59:37 +0000 (19:59 +0000)]
rockchip: Add SPL_PAD_TO Kconfig default value

Almost all Rockchip boards use the same Kconfig value for SPL_PAD_TO,
0x7f8000.

u-boot-rockchip.bin is typically written to offset 64S (32KiB) of MMC
media. u-boot.itb (or u-boot.img) is typically expected at offset 16384S
(8MiB) of MMC media (SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000).

SPL_PAD_TO is used as the offset for u-boot.itb (or u-boot.img) in the
generated simple-bin binman image, and can be calculated as:

  SPL_PAD_TO = (16384S - 64S) * 512 = 0x7f8000

Add this value as a default value for ARCH_ROCKCHIP.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: binman: Un-indent the FIT template
Simon Glass [Sun, 13 Apr 2025 19:59:36 +0000 (19:59 +0000)]
rockchip: binman: Un-indent the FIT template

Fix the indentation on the template. This is done in a separate patch
so that it is easier to review.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: binman: Create a template for the FIT
Simon Glass [Sun, 13 Apr 2025 19:59:35 +0000 (19:59 +0000)]
rockchip: binman: Create a template for the FIT

Move the FIT description into a template so that it can be used in both
the simple-bin and the simple-bin-spi images.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: binman: Factor out arch and compression
Simon Glass [Sun, 13 Apr 2025 19:59:34 +0000 (19:59 +0000)]
rockchip: binman: Factor out arch and compression

Declare arch and compression at the top of the file to avoid needing
ifdefs in every usage.

Add a few comments to help with the remaining #ifdefs.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
5 weeks agorockchip: binman: Correct the OS prop for U-Boot
Simon Glass [Sun, 13 Apr 2025 19:59:33 +0000 (19:59 +0000)]
rockchip: binman: Correct the OS prop for U-Boot

The U-Boot image is currently being identified as an invalid OS in
spl_fit_image_get_os() due to case sensitive compare.

Use the correct lower-case value to fix this.

Fixes: e0c0efff2a02 ("rockchip: Support building the all output files in binman")
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: rk3288: do not generate u-boot.rom anymore
Quentin Schulz [Mon, 5 May 2025 14:47:19 +0000 (16:47 +0200)]
rockchip: rk3288: do not generate u-boot.rom anymore

This was only used on RK3288 Chromebooks and the EVB.

If it follows the same pattern as for RK3399 Chromebooks where their
maintainer (Simon) agreed[1] to removal of u-boot.rom on the basis that
the generic u-boot-rockchip-spi.bin is now enough, let's do the same for
RK3288 and remove the last Rockchip users of u-boot.rom (and HAS_ROM
symbol).

At the same time, remove HAS_ROM symbol from the RK3288 Chromebooks and
EVB configs since they were used only for that.

SYS_SPI_U_BOOT_OFFS offset in rockchip-u-boot.dtsi for the u-boot-img
node of simple-bin-spi binman image matches the one used in u-boot.rom
except for the EVB.
The EVB doesn't have ROCKCHIP_SPI_IMAGE symbol enabled, so HAS_ROM had
no effect anyway. Even if it had, this would not have been enough
considering that SPL_SPI_LOAD symbol is not set, so U-Boot proper could
not be loaded from SPI even if SPL/TPL does.

Make sure u-boot-rockchip-spi.bin has the same size of u-boot.rom for
Chromebooks as that seems to be important.

[1] https://lore.kernel.org/u-boot/CAFLszTh-SewFod8dEOF3+e-wCE1qFF0CyxxR8CbQwy3BRW3k6w@mail.gmail.com/

Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Simon Glass <sjg@chromium.org> # chromebook-kevin
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agorockchip: rk3399: do not generate u-boot.rom anymore
Quentin Schulz [Mon, 5 May 2025 14:47:18 +0000 (16:47 +0200)]
rockchip: rk3399: do not generate u-boot.rom anymore

This was only used on RK3399 Gru Chromebooks and their maintainer
(Simon) agreed[1] to its removal on the basis that the generic
u-boot-rockchip-spi.bin is now enough, so let's do that.

At the same time, remove HAS_ROM symbol from the Gru Chromebooks config
since they were used only for that.

Make sure u-boot-rockchip-spi.bin has the same size of u-boot.rom for
Chromebooks as that seems to be important.

[1] https://lore.kernel.org/u-boot/CAFLszTh-SewFod8dEOF3+e-wCE1qFF0CyxxR8CbQwy3BRW3k6w@mail.gmail.com/

Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Simon Glass <sjg@chromium.org> # chromebook-kevin
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
5 weeks agofs: exfat: Inhibit unused exfat_humanize_bytes() and exfat_print_info()
Marek Vasut [Wed, 30 Apr 2025 16:45:52 +0000 (18:45 +0200)]
fs: exfat: Inhibit unused exfat_humanize_bytes() and exfat_print_info()

Make sure unused exfat_humanize_bytes() and exfat_print_info()
functions are not compiled into U-Boot code base. This also removes
CID 550300:  Integer handling issues  (INTEGER_OVERFLOW)
in exfat_humanize_bytes() , which is now surely unreachable.

Signed-off-by: Marek Vasut <marex@denx.de>
5 weeks agofs: exfat: Use strncpy() and bail on too long filenames
Marek Vasut [Wed, 30 Apr 2025 16:45:51 +0000 (18:45 +0200)]
fs: exfat: Use strncpy() and bail on too long filenames

In case the filename is too long, longer than PATH_MAX - 1, it
would overflow dirs->dirname array. Add missing check and also
use strncpy() to prevent the overflow in any case.

Fixes CID 550305:  Security best practices violations  (STRING_OVERFLOW)

Signed-off-by: Marek Vasut <marex@denx.de>
5 weeks agofirmware: ti_sci: Add Initialization of dev_info head node
Udit Kumar [Tue, 29 Apr 2025 17:14:40 +0000 (22:44 +0530)]
firmware: ti_sci: Add Initialization of dev_info head node

On K3 devices two drivers ti_sci and ti_sci_dm are supporting firmware
functions. At run time one of driver is used.

Driver ti_sci already initializing head for dev_list in its probe
function, but it was missed in ti_sci_dm driver.

So add head list init support for ti_sci_dm driver.
While at this, move init of list before usages in both functions.

Fixes: 5d5a699855a7("firmware: ti_sci: Add support for Resoure Management at R5 SPL stage")
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
5 weeks agoconfigs: phycore_am62x_a53_defconfig: Remove CONFIG_SYS_BOOTM_LEN
Daniel Schultz [Tue, 29 Apr 2025 12:08:18 +0000 (05:08 -0700)]
configs: phycore_am62x_a53_defconfig: Remove CONFIG_SYS_BOOTM_LEN

This config was defined with the default value of 8 MiB. However,
the default value is different when CONFIG_ARM64 is enabled and
should be 64 MiB.

Remove this config from the A53 defconfig and use the correct
default config.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
5 weeks agocmd: spawn: reject 0 as an invalid job ID
Jerome Forissier [Tue, 29 Apr 2025 12:02:18 +0000 (14:02 +0200)]
cmd: spawn: reject 0 as an invalid job ID

Job IDs are positive integers greater than 1. 0 is not a valid job ID,
therefore fix the comparison in do_wait().

Fixes Coverity defects:

*** CID 550296:  Control flow issues  (NO_EFFECT)
/cmd/spawn.c: 172 in do_wait()
166                     for (i = 0; i < CONFIG_CMD_SPAWN_NUM_JOBS; i++)
167                             if (job[i])
168                                     ret = wait_job(i);
169             } else {
170                     for (i = 1; i < argc; i++) {
171                             id = dectoul(argv[i], NULL);
>>>     CID 550296:  Control flow issues  (NO_EFFECT)
>>>     This less-than-zero comparison of an unsigned value is never true.
"id < 0UL".
172                             if (id < 0 || id >
CONFIG_CMD_SPAWN_NUM_JOBS)
173                                     return CMD_RET_USAGE;
174                             idx = (int)id - 1;
175                             ret = wait_job(idx);
176                     }
177             }

*** CID 550297:  Integer handling issues  (INTEGER_OVERFLOW)
/cmd/spawn.c: 174 in do_wait()
168                                     ret = wait_job(i);
169             } else {
170                     for (i = 1; i < argc; i++) {
171                             id = dectoul(argv[i], NULL);
172                             if (id < 0 || id >
CONFIG_CMD_SPAWN_NUM_JOBS)
173                                     return CMD_RET_USAGE;
>>>     CID 550297:  Integer handling issues  (INTEGER_OVERFLOW)
>>>     Expression "idx", where "(int)id - 1" is known to be equal to -1,
overflows the type of "idx", which is type "unsigned int".
174                             idx = (int)id - 1;
175                             ret = wait_job(idx);
176                     }
177             }

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
CC: Tom Rini <trini@konsulko.com>