Compare commits

...

3342 Commits

Author SHA1 Message Date
Tom Rini
34820924ed Prepare v2025.04
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-07 15:57:55 -06:00
Heinrich Schuchardt
38b3471115 buildman: update PyYAML requirement
On Ubuntu 25.04 installing the dependency pyyaml 6.0 fails with

    License classifiers are deprecated

Update PyYAML to the current release.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-04-07 07:34:49 -06:00
Heinrich Schuchardt
0efe8ea57f efi_loader: stop network in EXIT_BOOT_SERVICES
It has been reported that memory corruption can occurred because network
packages where received after EXIT_BOOT_SERVICES. See the thread
starting at [1].

We try to remove all drivers when EXIT_BOOT_SERVICES is called. But

* Some network drivers don't call their own stop method when removed.
* Some network drivers don't have a remove method.
* Some devices have CONFIG_DM_DEVICE_REMOVE=n.

Let's call eth_halt() in EXIT_BOOT_SERVICES explicitly.

[1]
https://lore.kernel.org/all/C101B675-EEE6-44CB-8A44-83F72182FBD6@kohlschutter.com/

Cc: Michael Brown <mcb30@ipxe.org>
Reported-by: Christian Kohlschütter <christian@kohlschutter.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Michael Brown <mcb30@ipxe.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Christian Kohlschütter <christian@kohlschutter.com>
2025-04-06 10:03:22 -06:00
Heiko Stuebner
1915fdcc21 boot: call dhcp_run in pxe bootmethod
A recent change tried to speed up EFI booting by not calling dhcp_run
from eth_bootdev_hunt() every time. PXE so far relied on that dhcp_run
call to get an IP address.

Fix that by adding a dhcp_run call to the pxe bootflow, with autoload
disabled to only get the ip address and nothing else.

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Fixes: 1f68057e03 ("net: eth_bootdev_hunt() should not run DHCP")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-04-06 10:03:03 -06:00
Raymond Mao
0708d54a56 mbedtls: remove incorrect attribute type checker
S/MIME Capabilities (OID: 1.2.840.113549.1.9.15) attributes are
expected to be algorithms but neither data nor MS Inderect Data,
thus the checker for data type is incorrect.

This patch fixes a capsule authentication failure with PKCS#7
message that contains S/MIME capabilities, which formed by the EDK2
GenerateCapsule tool.

S/MIME Capabilities are not common attributes in an EFI capsule,
thus this failure cannot be reproduced with the capsules generated
via mkeficapsule.

Fixes: 7de0d155cc ("mbedtls: add PKCS7 parser porting layer")
Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-04-06 10:02:57 -06:00
Tom Rini
cf6d4535cc x86: emulation: Disable bloblist for now
As reported by Niklas Sombert, enabling bloblist on these platforms
means that we currently don't pass SMBIOS tables on to later stages. For
the v2025.04 release, disable bloblists as that is sufficient to restore
functionality and we will address the underlying problem for the next
release.

Link: https://lore.kernel.org/u-boot/c1dc7446-d1d0-4ef2-b201-09fc612aa8db@uni-duesseldorf.de
Reported-by: Niklas Sombert <niklas.sombert@uni-duesseldorf.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-04-06 10:02:49 -06:00
Tom Rini
848f7ffc64 Merge tag 'u-boot-amlogic-20250404' of https://source.denx.de/u-boot/custodians/u-boot-amlogic
- Check interface before comparing it in set_dfu_alt_info() to avoid
  hard crash on capsule update
2025-04-04 09:02:37 -06:00
Neil Armstrong
c5fd2c7ac7 board: libre-computer: check interface before comparing it in set_dfu_alt_info()
When set_dfu_alt_info() is called, interface can be NULL when called for
the EFI capsule, so check it before calling it with strcmp().

Fixes: 12ea40d29d ("ARM: meson: add support for Libre Computer aml-s905d3-cc")
Fixes: 9e6e6b034b ("ARM: meson: add support for Libre Computer aml-a311d-cc")
Fixes: 75c87c6cbc ("board: libre-computer: aml-s805x-cc: Enable capsule updates")
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Link: https://lore.kernel.org/r/20250403-u-boot-fix-set-dfu-alt-info-interface-v1-1-1fdd12463186@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-04-04 10:37:40 +02:00
Tom Rini
82b69fc422 Merge tag 'efi-2025-04-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-04-rc6

CI:

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

Documentation:

* correct references to overlay-fdt-boot.txt
* build: docker: Fix code highlighting syntax
* build: docker: Use code-block for syntax highlighting
* Fix typo bootfloe to bootflow

UEFI:

* Correct the size of the AcpiReclaimMemory region for ACPI tables
  when using QFW
2025-04-03 07:31:28 -06:00
Tom Rini
ce09def8ab Merge tag 'u-boot-at91-fixes-2025.04-a' of https://source.denx.de/u-boot/custodians/u-boot-at91
First set of u-boot-at91 fixes for the 2025.04 cycle:

- A single fix for the reset command on sama5d27 boards.
2025-04-03 07:27:33 -06:00
Andrew Davis
7871285a0a doc: Fix typo bootfloe to bootflow
Signed-off-by: Andrew Davis <afd@ti.com>
2025-04-03 09:06:51 +02:00
Heinrich Schuchardt
e66148060f doc: correct references to overlay-fdt-boot.txt
doc/uImage.FIT/overlay-fdt-boot.txt does not exist anymore.
Reference the correct section of doc/usage/fit/overlay-fdt-boot.rst.

Fixes: 6f6e8bb695 ("doc: Bring in the FIT overlay information")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-04-03 09:05:29 +02:00
Leonard Anderweit
4738e306fd doc: build: docker: Use code-block for syntax highlighting
Use ..code-block:: syntax highlighting instead of :: so all bash
commands use the same syntax highlighting.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-04-03 09:04:35 +02:00
Leonard Anderweit
e763c19507 doc: build: docker: Fix code highlighting syntax
Remove double :: before .. code-block:: bash to correctly highlight the
following commands.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-04-03 09:04:35 +02:00
Ilias Apalodimas
37a33d326e acpi: Fix table length for QEMU
The end of the ACPI table is set to 'addr' instead of 'end'. The ACPI
code for QEMU relies on those values to mark memory as 'ACPI Reclaim'
and as a result the ACPI RSDP ends up in Boot services Data.

Reported-by: Björn Töpel <bjorn@kernel.org>
Fixes: commit 638cc36348 ("acpi: enable writing ACPI tables on QEMU")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-04-03 08:58:27 +02:00
Fabio Estevam
aa7d628b78 configs: sama5d27: Fix the 'reset' command
Since commit 61040097a9 ("reset: at91: Add reset driver for basic
assert/deassert operations") the "atmel,sama5d3-rstc" compatible for
the sama5d2 reset controller in sama5d2.dtsi is not handled by
CONFIG_SYSRESET_AT91 anymore, but by CONFIG_RESET_AT91 now.

This resulted in the following error, when trying to reset from the U-Boot
shell on a sama5d27_wlsom1 board:

 => reset
 resetting ...
 System reset not supported on this platform
 ### ERROR ### Please RESET the board ###

Fix it by enabling the CONFIG_RESET_AT91 driver in all sama5d27 defconfigs.

Tested on a sama5d27_wlsom1 board.

Based on the fix in commit e1ee52ca56 ("configs: at91: sam9x60: Switch
to new reset driver")

Fixes: 61040097a9 ("reset: at91: Add reset driver for basic assert/deassert operations")
Signed-off-by: Fabio Estevam <festevam@denx.de>
2025-04-01 11:36:35 +03:00
Tom Rini
c17f03a7e9 Merge tag 'net-20250314' of https://source.denx.de/u-boot/custodians/u-boot-net
Pull request net-20250314.

kconfig:
* Fix submenu for network commands

net:
* Remove a useless (commented out) line in net-common.h

net-lwip:
* Remove error print on failed tx
* Fix return code of ping_loop() when no ethernet device is found
* Remove superfluous newline in help text for tftp
2025-03-31 07:39:36 -06:00
Paul Barker
64b973fc78 cmd: Kconfig: Fix submenu for network commands
The Kconfig parser seems to get confused by the current if conditions
following CMD_NET and displays all network command options directly in
the "Command line interface" menu instead of in a "Network commands"
submenu.

To help out Kconfig we can simplify the if conditions, so that the
definition of CMD_NET is followed immediately by an if/endif block that
contains all network command options. We can also remove nested checks
for CMD_NET or (NET || NET_LWIP).

Fixes: 98ad145db6 ("net: lwip: add DHCP support and dhcp commmand")
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2025-03-31 09:46:25 +02:00
Ilias Apalodimas
f93b15e706 net: lwip: Remove error print on failed tx
When an ethernet driver fails to send a frame we print an error in lwIP.
But depending on how often that error is it might significantly delay
transmissions.

For example downloading a big file with the rpi4 spams the console with
'send error: -101', but removing the print makes the file download with
an average speed of ~8.5MiB/s since the packets are retransmitted.

So let's move it to a 'debug' in lwIP and expect ethernet drivers to handle
the failure if it's severe.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2025-03-31 09:46:25 +02:00
Jerome Forissier
36510e4e41 net: remove commented out line
Commit 1d5d292b79 ("net: split net into net{,-common,-legacy,-lwip}")
inadvertendly left a commented out declaration for do_wget() in
net-common.h. Remove it.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-03-31 09:46:25 +02:00
Jerome Forissier
42df30a210 net: lwip: do_ping() should return CMD_RET_FAILURE when no device
do_ping() expects ping_loop() to return a negative value on error, so
that it can propagate it to the caller as CMD_RET_FAILURE. This is not
the case when no ethernet device is found, so fix that.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-03-31 09:46:25 +02:00
Michael Walle
6d66a72a0a net: lwip: remove superfluous newline at tftp help text
The help text has a newline at the end which will lead to an empty
line after the tftpboot when printing the help overview. Remove it.

Fixes: 4d4d783812 ("net: lwip: add TFTP support and tftpboot command")
Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2025-03-31 09:46:25 +02:00
Mattijs Korpershoek
5e74863ad6 MAINTAINERS: Update email of Mattijs Korpershoek
My preferred email address is mkorpershoek@kernel.org now.

This updates the MAINTAINERS files and adds an entry in the
.mailmap file.

Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-03-28 10:33:48 -06:00
E Shattow
870c4d105a board: starfive: Remove compatible boards Milk-V Mars CM and Mars CM Lite
Remove leftover code from Milk-V Mars CM and Mars CM Lite boards that do
not exist in upstream Linux Kernel devicetree-rebasing. These will be re-
introduced when submitted upstream for a future U-Boot release. Users of
these boards should use the previous stable release of U-Boot until then.

Signed-off-by: E Shattow <e@freeshell.de>
2025-03-28 09:55:43 -06:00
Kory Maincent
f364ea8c25 board: ti: am335x: Fix selection of BeagleBone Green
The BeagleBone Green board is a revision of the BoneBlack board.
Having BeagleBone Black devicetree listed before BeagleBone Green will
select always the BeagleBone Black devicetree following the functioning of
board_fit_config_name_match().

Fix it by changing the test condition and selecting BoneBlack board only
if it is not a revision of this board.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
2025-03-28 09:55:08 -06:00
Tom Rini
3f9e0349c3 Merge tag 'efi-master-26032025' of https://source.denx.de/u-boot/custodians/u-boot-tpm
A last minute fix from Vincent fixing the text representation
of device paths containing IPv4 device path nodes.

A missing break; ended up printing
IPv4(5.6.7.8,TCP,UDP,0x6,DHCP,1.2.3.4,9.10.11.12,255.255.255.0)
instead of
IPv4(5.6.7.8,TCP,DHCP,1.2.3.4,9.10.11.12,255.255.255.0)
2025-03-26 14:04:23 -06:00
Vincent Stehlé
4b4d24060e efi_loader: fix ipv4 device path node conversion
When converting an IPv4 device path node to text, the
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL will produce the following string:

  IPv4(5.6.7.8,TCP,UDP,0x6,DHCP,1.2.3.4,9.10.11.12,255.255.255.0)

This string erroneously contains multiple protocols: TCP, UDP and 0x6.

Add the missing `break' statements in the dp_msging() function to fix this
and obtain the following expected string instead:

  IPv4(5.6.7.8,TCP,DHCP,1.2.3.4,9.10.11.12,255.255.255.0)

Fixes: aaf63429a1 ("efi_loader: add IPv4() to device path to text protocol")
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Adriano Cordova <adrianox@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-03-26 13:05:36 +02:00
Tom Rini
47f433d577 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/25312

- Fix warning
- Fix incorrect return value
2025-03-25 11:55:05 -06:00
Tom Rini
b452ed448f openpiton: riscv64: Drop unnecessary 'imply SPL_RISCV_MMODE'
As the code is today, we get a warning about "select" statements on
"choice" options not doing anything. In this case, the option
SPL_RISCV_MMODE is the default.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tianrui Wei <tianrui-wei@outlook.com>
2025-03-25 12:13:50 +08:00
Yao Zi
02933626c7 clk: sophgo: Fix return values of register updating helpers
These helpers wrongly return the updated register value. As a non-zero
value indicates failure, this causes various clock operations are
considered failed.

Correct the return value to constant zero, since these simple MMIO
operations won't fail. This fixes clock enabling failures during booting
process,

	In:    serial@4140000
	Out:   serial@4140000
	Err:   serial@4140000
	Net:   Enable clock-controller@3002000 failed
	failed to enable clock 0
	No ethernet found.

which leads to misoperation of various peripherals.

Fixes: 5f364e072e ("clk: sophgo: cv1800b: Add clock controller driver for cv1800b SoC")
Tested-by: Yuguo Pei <purofle@gmail.com>
Signed-off-by: Yao Zi <ziyao@disroot.org>
2025-03-25 12:13:42 +08:00
Tom Rini
3d8be1f5ec Prepare v2025.05-rc5
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-24 20:00:24 -06:00
Ilias Apalodimas
67be24906f lmb: change the return code on lmb_alloc_addr()
Ben reports a failure to boot the kernel on hardware that starts its
physical memory from 0x0.
The reason is that lmb_alloc_addr(), which is supposed to reserve a
specific address, takes the address as the first argument, but then also
returns the address for success or failure and treats 0 as a failure.

Since we already know the address change the prototype to return an int.

Reported-by: Ben Schneider <ben@bens.haus>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Ben Schneider <ben@bens.haus>
Reviewed-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2025-03-24 11:12:33 -06:00
Tom Rini
244e61fbb7 Merge tag 'u-boot-dfu-20250321' of https://source.denx.de/u-boot/custodians/u-boot-dfu
u-boot-dfu-20250321

Usb gadget:
- Fix NXP UUU tool compatibility regression with dwc3 gadget
2025-03-21 07:29:08 -06:00
Marek Vasut
0916053ebc usb: dwc3: gadget: Fix match_ep callback for NXP UUU tool
The UUU tool excepts the interrupt-in endpoint to be ep1in, otherwise
it crashes. This is a result of the previous hard-coded EP setup in
drivers/usb/gadget/epautoconf.c which did special-case EP allocation
for SPL builds, and which was since converted to this callback, but
without the special-case EP allocation in SPL part.

This reinstates the SPL part in an isolated manner, only for NXP iMX
SoCs, only for SPL builds, and only for the ep1in interrupt-in endpoint.

Fixes: 1918b8010c ("usb: dwc3: gadget: Convert epautoconf workaround to match_ep callback")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250319220805.219001-1-marex@denx.de
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-03-21 09:37:40 +01:00
Stefan Eichenberger
7ad5436194 board: verdin-am62: remove spl_perform_fixups
spl_perform_fixups is redundant in the current implementation. SPLs call
dram_init during spl_enable_cache in arch/arm/mach-k3/common.c. In
U-Boot, dram_init and dram_init_banksize are automatically called in
init_sequence_f. Therefore, SPLs and U-Boot always determine the correct
RAM size. During Linux boot, fdt_fixup_memory_banks adjusts the RAM size
in the Linux device tree, ensuring correct RAM usage.

dram_init() calls get_ram_size() for the Verdin AM62, which determines
the correct RAM size through read/write operations. However, due to the
K3 bootflow placing ATF in RAM and requiring cache coherence, calling
get_ram_size() with caches enabled prevents ATF boot. Removing this call
restores ATF boot functionality.

This fixes a regression introduced in commit 4164289db8 ("board:
verdin-am62: fix missing memory fixup call") which prevents some of our
Verdin AM62 modules from booting.

Fixes: 4164289db8 ("board: verdin-am62: fix missing memory fixup call")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2025-03-20 08:02:12 -06:00
Hendrik Donner
69fb899133 checkpatch.pl: Report an error for CONFIG_xPL_BUILD in device trees
The defines for the different build phases shouldn't be used in device
trees, currently they aren't even defined for device tree pre processing,
resulting in build errors.

Link: https://lists.denx.de/pipermail/u-boot/2025-March/582787.html
Signed-off-by: Hendrik Donner <hd@os-cillation.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-03-18 08:17:36 -06:00
Heinrich Schuchardt
15ba2b7356 dumpimage: fix handling of StarFive SPL too long
The header of the StarFive U-Boot SPL file u-boot-spl.normal.out has a
field indicating the payload size. When copying U-Boot SPL from a
partition the copied file might be too long.

Currently in this situation a misleading error message 'Incorrect CRC32' is
written.

We must use the payload size and not the file size when calculating the
CRC32.

Write a warning if the file is too long indicating the correct size. This
enables the user to truncate the file accordingly.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-03-18 08:17:32 -06:00
Simon Glass
301c2ab729 qconfig: Correct unhashable-type error with --scan-source
This gives an error with newer Python version, so fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-18 08:17:30 -06:00
Heinrich Schuchardt
2ac91756ad scripts: typos in event_dump.py
%s/even spies/event spies/
%s/EFL/ELF/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-03-18 08:17:27 -06:00
Michal Simek
ca3bea3fc4 cmd: version: Get information about GCC and LD back
U-Boot version command is no longer showing information about GCC and LD.
The reason is that version.h has been removed that's why CC_VERSION_STRING
and LD_VERSION_STRING are not pass.
Values are generated to generated/version_autogenerated.h which is sourced
in version.h.

Fixes: 54ecce2cbf ("version: Separate our version string from the version command")
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-17 08:06:53 -06:00
Tom Rini
3e806c41aa Merge tag 'efi-2025-04-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-04-rc5

CI:

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

UEFI:

* Export _start symbol from crt0_*_efi stubs
* Move .dynamic out of .text in EFI
* scripts/Makefile.lib: Preserve the .dynstr section as well

Documentation:

* net: miiphybb: Convert documentation to rst
2025-03-17 08:00:40 -06:00
Tom Rini
e1b6d514d4 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
These are mainly DBSC5 DRAM controller specific fixes and updates for
current release. There is the long overdue BL31 start V4H board code as
well, that should be in the current release to make the V4H White Hawk
board usable with SPL, and a fallback U-Boot PSCI implementation
enablement to make sure the board always boots. And finally, there are
two comment fixes.
2025-03-17 07:59:39 -06:00
Sam Edwards
7f2fe3dda4 scripts/Makefile.lib: efi: Preserve the .dynstr section as well
This section is required by .dynamic and llvm-objcopy will exit with a
fatal error if it is not also preserved in the output.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
2025-03-17 09:35:52 +01:00
Sam Edwards
408a20e099 efi_loader: Move .dynamic out of .text in EFI
EFI applications need to be relocatable. Ordinarily, this is achieved
through a PE-format .reloc section, but since that requires toolchain
tricks to achieve, U-Boot's EFI applications instead embed ELF-flavored
relocation information and use it for self-relocation; thus, the
.dynamic section needs to be preserved.

Before this patch, it was tacked on to the end of .text, but this was
not proper: A .text section is SHT_PROGBITS, while the .dynamic section
is SHT_DYNAMIC. Attempting to combine them like this creates a section
type mismatch. While GNU ld doesn't seem to complain, LLVM's lld
considers this a fatal linking error.

This patch moves .dynamic out to its own section, so that the output ELF
has the correct types. (They're all mashed together when converting to
binary anyway, so this patch causes no change in the final .efi output.)

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Cc: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-03-17 09:22:06 +01:00
Sam Edwards
214a87757a arm: riscv: efi: Export _start symbol from crt0_*_efi stubs
While the _start label is only intended for use locally to populate the
(hand-written) PE header, the linker script includes ENTRY(_start) which
designates it as the entry point in the output ELF, resulting in linker
warnings under some linkers (e.g. LLVM's lld) due to _start not being a
globally-visible symbol. Since  ELF is only an intermediary build
format, and the aforementioned PE header correctly points to _start, the
ENTRY(_start) directive could easily be removed to silence this warning.

However, since some developers who are debugging EFI by analyzing the
intermediary ELF may appreciate having correct entry-point information,
this patch instead promotes the _start labels to global symbols,
silencing the linker warning and making the intermediary ELF reflect the
true entry point.

This patch doesn't affect the final output binaries in any way.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
2025-03-17 09:22:03 +01:00
Marek Vasut
60ea8a94d6 net: miiphybb: Convert documentation to rst
Convert the current miiphybb documentation to rst. Rename
the README.bitbangMII to bitbangmii.rst in the process.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-03-17 09:18:03 +01:00
Marek Vasut
885fd621a3 ram: renesas: dbsc5: Make struct renesas_dbsc5_board_config public
Make struct renesas_dbsc5_board_config {} definition public via
include/dbsc5.h, so this structure can be defined in board files
and passed into the DBSC5 DRAM driver by overriding weak function
dbsc5_get_board_data() on board level.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
74e2811361 ram: renesas: dbsc5: Add V4H-3/V4H-5/V4H-7 OTP based detection
Add auto-detection and handling of Renesas R-Car V4H-3 and V4H-5
in addition to V4H-7 SoC variants based on OTP fuse programming.
The V4H-3 and V4H-5 variants have reduced DRAM frequency options.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
9ae94d2aed ram: renesas: dbsc5: Synchronize initialization code to rev.1.10
Update the DRAM initialization code to match DBSC5 initialization code
rev.1.10 , which is currently the latest version available. This makes
DRAM initialization operational on Renesas R-Car V4H R8A779G0 rev.3.0.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
da7662f6bb ram: renesas: dbsc5: Fix DBTR11 calculation
Reinstate missing increment by two in DBTR11 calculation based
on the original DBSC5 initialization code rev.0.80. The original
code did ... ODTLon - (js2[JS2_tODTon_min] - 1) + 1 , which was
incorrectly converted into ODTLon - js2[JS2_tODTon_min], but
should have been converted to ODTLon - js2[JS2_tODTon_min] + 2.
Add the missing +2 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
9a106f15fa ram: renesas: dbsc5: Fix JS1 index calculation
The JS1 index is calculated correctly, but the limiter cannot
be the max() function because the index should be lower than
JS1_USABLEC_SPEC_HI and the max() function would unconditionally
override the JS1 index to JS1_USABLEC_SPEC_HI. Use clamp() to
limit the JS1 index instead.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
6c219e184f ram: renesas: dbsc5: Fix bitrate MD pin parsing
Fix copy paste error in MD pin handling for 5500 Mbps and 4800 Mbps case,
each should be handled by MD[19,17] == 2 and MD[19,17] == 3 respectively.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
15111aeb9c arm64: dts: renesas: Make OTP available in SPL on R8A779G0 V4H
The DBSC5 DRAM controller driver needs access to OTP fuses to discern
Renesas R-Car V4H-3, V4H-5 and V4H-7 SoC variants based on OTP fuse
programming. Make OTP block DT node available in U-Boot SPL DT so the
DBSC5 driver can determine its base address and read out the OTP fuses.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:16 +01:00
Marek Vasut
92659829aa arm64: renesas: Drop stale R-Car V4H SPL implementation description
The R-Car V4H SPL implementation was originally running on the Cortex-R52
core, but this is no longer the case. Majority of the SPL now runs on the
Cortex-A76 core. Drop the stale description.

Fixes: ec53fdee5b ("arm64: renesas: Add Renesas R-Car V4H SPL implementation")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:56:00 +01:00
Marek Vasut
56490b1e01 ARM: renesas: Drop stale common Makefile description
Remove stale Makefile description, this used to be valid for the
original Makefile from which the common Makefile was made generic,
but is no longer applicable to the common Makefile.

Fixes: c7d2d7f90a ("ARM: renesas: Simplify board Makefiles")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:55:42 +01:00
Marek Vasut
9292a30471 arm64: renesas: Enable fallback PSCI on Renesas R-Car R8A779G0 V4H White Hawk
Enable fallback PSCI provider on Renesas R-Car R8A779G0 V4H White Hawk board.

This fallback PSCI provider provides basic PSCI interface which can be used
by the Linux kernel, but does not provide support for bringing up additional
CPU cores or any other functionality, except for SoC level reset.

This fallback PSCI provider is intended as a fallback in case a proper PSCI
provider is not started before the Linux kernel is started. Linux kernel on
ARMv8a will fail to boot in case a PSCI provider is not available, and this
basic fallback PSCI provider assures such a boot failure cannot occur, even
if that means the system will boot in degraded mode with only one CPU core
available, that is still sufficient to perform recovery.

In the common case, a proper PSCI provider should be started as part of
the Linux kernel fitImage, as the BL31 loadable, and replace this basic
fallback PSCI provider before the Linux kernel is started.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:47:28 +01:00
Marek Vasut
7ddb8d999a arm64: renesas: Add TFA BL31 handoff support on Renesas R-Car Gen4
Implement custom U_BOOT_FIT_LOADABLE_HANDLER and armv8_switch_to_el2_prep()
handling in case the TFA was loaded. The loadables handler sets up custom
handoff structure used by Renesas TFA fork in fixed location in DRAM and
indicates the TFA has been loaded.

The custom armv8_switch_to_el2_prep() handling tests whether the TFA BL31
was previously loaded and the custom handoff structure was set up, and if
so, jumps to TFA BL31 which switches from EL3 to EL2 and then returns to
U-Boot just past bl in armv8_switch_to_el2() to finish starting the Linux
kernel.

The jump to Linux through TFA works in such a way that the custom
armv8_switch_to_el2_prep() handler configures the custom handoff structure
such that the target jump address of the TFA BL31 on exit is set to the
armv8_switch_to_el2() + 4, which is just past the bl, and just before the
U-Boot code which implements the Linux kernel boot from either EL. The
registers passed through the TFA BL31 are all the registers passed into
armv8_switch_to_el2_prep() to assure maximum compatibility with all the
boot modes. The armv8_switch_to_el2_prep() handler jumps to the TFA BL31,
which does its setup, drops EL from EL3 to EL2 and finally jumps to the
armv8_switch_to_el2() + 4 entry point, which then allows U-Boot to boot
the Linux kernel the usual way.

In order to build suitable kernel fitImage, build TFA first, upstream
is currently under review:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/35799
Or if necessary, downstream repository:
remote: https://github.com/renesas-rcar/arm-trusted-firmware.git
branch: rcar_gen4_v2.7_v4x

```
$ git clean -fqdx
$ MBEDTLS_DIR=/path/to/mbedtls/ make -j$(nproc) bl31 \
	PLAT=rcar_gen4 ARCH=aarch64 LSI=V4H SPD=none \
	CTX_INCLUDE_AARCH32_REGS=0 MBEDTLS_COMMON_MK=1 \
	PTP_NONSECURE_ACCESS=1 LOG_LEVEL=20 DEBUG=0 \
	ENABLE_ASSERTIONS=0 E=0
```

Build Linux kernel Image and device tree from current mainline Linux
kernel repository, obtain 'Image' and 'r8a779g0-white-hawk.dtb' .

Bundle the files together using provided fit-image.its fitImage description:
```
$ mkimage -f fit-image.its fitImage
```

To start the kernel fiImage generated in previous step, load fitImage
to DRAM and use the 'bootm' command to start it:
=> load 0x58000000 ... fitImage && bootm 0x58000000

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-03-16 14:47:28 +01:00
Marek Vasut
15d6518c94 ARM: dts: imx: Drop bogus regulator extras on DH i.MX6 DHCOM DRC02
The regulator extras should be placed in the USB H1 regulator node,
the /regulator-usb-h1-vbus. They are already present there in the
upstream DT, so delete this bogus node entirely.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-03-13 15:22:48 -06:00
Tom Rini
8c8b066d34 Merge tag 'rpi-2025.04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-raspberrypi
Updates for RPi for 2025.04:

- Copy Bluetooth device address in DT
- Keep warnings from firmware in DT, if any
- Only add frame buffer node if CONFIG_FDT_SIMPLEFB is set
- Add identifiers for the new RPi 5 series
2025-03-13 09:25:15 -06:00
Fiona Klute
e042d7593a Raspberry Pi: Copy Bluetooth device address in DT
The firmware sets local-bd-address, copy it when loading a new DT.

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13 11:06:16 +00:00
Fiona Klute
fc7a311018 Raspberry Pi: Keep warnings from firmware in DT, if any
The /chosen/user-warnings property is created by the RPi firmware if
there are warnings to report, keep it to make debugging easier.

For example, if the firmware config.txt contains
"dtoverlay=error-example" and that example references an undefined
symbol "&nosuchdev" the warning can be read after boot:

$ cat /proc/device-tree/chosen/user-warnings
dterror: can't find symbol 'nosuchdev'
Failed to resolve overlay 'error-example'

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13 11:06:16 +00:00
Martin Stolpe
2d75c46be9 rpi: Only add frame buffer node if CONFIG_FDT_SIMPLEFB is set
The functions fdt_simplefb_add_node and fdt_simplefb_enable_and_mem_rsv
are only available if CONFIG_FDT_SIMPLEFB is enabled.

Signed-off-by: Martin Stolpe <martin.stolpe@gmail.com>
Acked-by: Matthias Brugger <mbrugger@suse.com>
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
2025-03-13 11:06:16 +00:00
Peter Robinson
27e0160320 rpi: Add identifiers for the new RPi 5 series
The Raspberry Pi foundation have released the Raspberry
Pi 500, CM5 an CM5 lite devices so add the assoicated
revision identifers so we can detect them.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Acked-by: Matthias Brugger <mbrugger@suse.com>
2025-03-13 11:06:16 +00:00
Tom Rini
e5e809bd71 Merge tag 'u-boot-imx-master-20250312' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25106

- Fix VDDQ voltage setting for LPDDR4x on imx93_evk.
2025-03-12 14:14:18 -06:00
Ye Li
e1a9ff9530 imx93_evk: Fix wrong VDDQ voltage setting for LPDDR4x
The default PCA9451 BUCK2 volt is 0.6 V for LPDDR4x VDDQ. The codes
are actually used for reworking to LPDDR4 which needs VDDQ at 1.1 V.
So remove it to avoid LPDDR4x issue.

Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
2025-03-12 15:34:59 -03:00
Tom Rini
a383b9bd4d Prepare v2025.04-rc4
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-10 17:31:52 -06:00
Tom Rini
bdf41fb7b3 configs: Resync with savedefconfig
Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-10 17:31:22 -06:00
Tom Rini
444cc6f080 Merge tag 'u-boot-stm32-20250310' of https://source.denx.de/u-boot/custodians/u-boot-stm
ARM: stm32mp: Fix boot hang on STM32MP15xx with 1 GiB of DRAM.
2025-03-10 07:48:25 -06:00
Marek Vasut
f5ee0f2bf7 ARM: stm32mp: Fix dram_bank_mmu_setup() for ram_top=0
On STM32MP15xx with 1 GiB of DRAM, the gd->ram_top becomes 0,
because DRAM base 0xc0000000 + DRAM size 0x40000000 leads to
gd->ram_top overflow which resets it to 0. Handle this special
case simply by checking for gd->ram_top being zero, and if it
is, assume there is no addr >= gd->ram_top .

This fixes boot hang on STM32MP15xx with 1 GiB of DRAM.

Fixes: 25fb58e88a ("ARM: stm32mp: Fix dram_bank_mmu_setup() for LMB located above ram_top")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-03-10 09:39:30 +01:00
Tom Rini
0fd7ee0306 scripts/checkpatch.pl: Upgrade IS_ENABLED_CONFIG to error for U-Boot
A problem we have today is that some instances of IS_ENABLED(FOO) have
crept in to the code. This is in turn because with checkpatch.pl this is
only a warning and not an error, so they were overlooked. And looking
deeper, in the Linux kernel this pattern is allowed because
IS_ENABLED(DEFINED_FLAG) is allowed if discouraged and a quick skim of
the instances I saw in the current kernel follow this pattern. In U-Boot
however, this is not allowed, so bump to an error.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-03-05 12:14:49 -06:00
Andrea della Porta
e22b2d7781 fs/squashfs: Fix memory leak in sqfs_size_nest()
In case MAX_SYMLINK_NEST is reached while determining the size
on a symlink node, the function returns immediately.
This would not free the resources after the free_strings: label
causing a memory leak.

Set the ret value and just break out of the switch to fix this.

Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2025-03-05 12:14:31 -06:00
Diederik de Haas
31378bd6fc mcheck: Fix SPDX License Identifier to LGPL-2.1-or-later
The GPL-2.1+ SPDX License Identifier doesn't exist, but luckily the full
license text was available which shows that GPL-2.1+ was a typo and it
should have been LGPL-2.1-or-later.
As the '+' in LGPL-2.1+ is deprecated in SPDX 3.0, use the preferred
identifier, which is '-or-later'.

Normally the full license header is removed when switching to SPDX
License Identifiers, so do that now.

Signed-off-by: Diederik de Haas <didi.debian@cknow.org>
2025-03-05 12:14:04 -06:00
Sumit Garg
19715a7f03 MAINTAINERS: .mailmap: Update Sumit Garg's email address
Update Sumit Garg's email address to @kernel.org.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2025-03-05 12:13:01 -06:00
Tom Rini
367971d205 Merge tag 'xilinx-for-v2025.04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.04-rc4

Zynq:
- Guard code around SPL_FS_LOAD_PAYLOAD_NAME

Versal*:
- Remove tftp block size 4096

Versal:
- Use clocks per DT binding
- Store driver data in data section

Versal Gen 2:
- Fix major/minor version decoding
2025-03-05 12:11:18 -06:00
Padmarao Begari
8d2d615f14 xilinx: Remove tftp block size 4096
The zynqmp gem driver support max MTU size 1536, so remove tftp
block size 4096 from defconfig and use default tftp block size.

Fixes: a33b4b96b3 ("xilinx: Enable MBEDTLS/LWIP/WGET and WGET_HTTPS")
Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20250304043030.2344536-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-05 12:42:34 +01:00
Heiko Schocher
409d37e869 led: Fix next Coverity scan error
The following was reported by Coverity scan:

*** CID 542488:  Control flow issues  (NO_EFFECT)
/drivers/led/led-uclass.c: 277 in led_get_function_name()
271                     return uc_plat->label;
272
273             /* Now try to detect function label name */
274             func = dev_read_string(dev, "function");
275             cp = dev_read_u32(dev, "color", &color);
276             // prevent coverity scan error CID 541279: (TAINTED_SCALAR)
>>>     CID 542488:  Control flow issues  (NO_EFFECT)
>>>     This less-than-zero comparison of an unsigned value is never true. "color < 0U".
277             if (color < LED_COLOR_ID_WHITE || color >= LED_COLOR_ID_MAX)
278                     cp = -EINVAL;
279

Fix it.

Addresses-Coverity-ID: 542488
Link: https://lists.denx.de/pipermail/u-boot/2025-February/581567.html
Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-03-04 12:07:23 -06:00
J. Neuschäfer
b6f8da1c2e gpio: 74x146: depend on DM_SPI
Currently, Kconfig allows building CONFIG_DM_74X164 without
CONFIG_DM_SPI, which results in linker errors because this driver
actually uses dm_spi_* functions:

drivers/gpio/74x164_gpio.o: in function `gen_74x164_write_conf':
  undefined reference to `dm_spi_claim_bus'
  undefined reference to `dm_spi_xfer'
  undefined reference to `dm_spi_release_bus'

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2025-03-04 11:59:51 -06:00
Tom Rini
78f8c8c58f Merge patch series "Syncing up on skip-at-start"
Simon Glass <sjg@chromium.org> says:

This series has the skip-at-start change and a few fixes.

Sadly it also includes a revert for the dm_probe_devices() patch, since
it breaks jerry (RK3288). I will need to investigate way.

It is based on -next and I can send a PR if desired.

https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/24835

Link: https://lore.kernel.org/r/20250226162621.2681677-1-sjg@chromium.org
2025-03-04 08:22:19 -06:00
Simon Glass
ebe3c3c4a8 x86: Stop working around skip-at-start
With a recent Binman change, the skip-at-start property is now honoured,
meaning that all image-pos values in the affected section start from
the skip-at-start value.

The x86 code works around the old behaviour at present, so update it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04 08:22:11 -06:00
Simon Glass
2c252d36b8 binman: Honour the skip-at-start property more faithfully
A discussion on the mailing list about dealing with block offsets and
binman symbols made me think that something is wrong with how Binman
deals with the skip-at-start property.

The feature was originally designed to handle x86 ROMs, which are mapped
at the top of the address space. That seemed too specific, whereas
skipping some space at the start seemed more generally useful.

It has proved useful. For example, rockchip images start at block 64,
so a skip-at-start of 0x8000 deals with this.

But it doesn't actually work correctly, since the image_pos value does
not give the actual position on the media.

Fix this and update the documentation, moving it into the 'section'
section.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04 08:22:11 -06:00
Simon Glass
91fa9d9ed2 binman: Rename Entry.end_4gb
The property is named end_at_4gb so name the variable the same, to avoid
confusion.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04 08:22:10 -06:00
Simon Glass
3ff97659ae samsung: snow: Use BLOBLIST_FIXED
Snow requires a fixed bloblist to operate, so re-enable this option.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 864106f3c4 ("bloblist: Make BLOBLIST_ALLOC the default")
2025-03-04 08:22:10 -06:00
Simon Glass
cd48a21dbd Revert "dm: core: Simplify dm_probe_devices()"
Unfortunately this change was not safe as some devices are bound before
relocation, but we don't want to probe them.

It causes 'raise: Signal # 8 caught' on jerry.

Move the bootstage timer to after autoprobe in initf_dm() since the
trace test does not tolerate any variance.

This reverts commit 21dd873572.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-03-04 08:22:10 -06:00
Stefan Eichenberger
4164289db8 board: verdin-am62: fix missing memory fixup call
The commit bc07851897 ("board: ti: Pull redundant DDR functions to a
common location and Fixup DDR size when ECC is enabled") broke DRAM
support for the Verdin AM62. This was partially fixed with commit
3f866c47b5 ("board: verdin-am62: add dram_init_banksize"). However,
because fixup_memory_node was not called, the Linux kernel was started
with the wrong memory size on modules with less memory available. This
resulted in boot failures. Fix this issue by calling fixup_memory_node
in the board file.

spl_perform_fixups will be called in the SPL and now sets the correct
memory size in the device tree of U-Boot by calling fixup_memory_node.
U-Boot will then adjust the memory sizes of Linux during bootm/booti in
fdt_fixup_memory_banks. This chain ensures that U-Boot and Linux only
use RAM that is actually available.

Fixes: 3f866c47b5 ("board: verdin-am62: add dram_init_banksize")
Fixes: bc07851897 ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2025-03-04 08:21:45 -06:00
Weijie Gao
7e0370f37d miiphy: define mii_devs with LIST_HEAD()
When enabling net console and console multiplexing, a boot crash was
observed using mtk_eth driver with stdin/stdout set to "serial,nc"
in persistent environment:

> CPU:   MediaTek MT7981
> Model: OpenWrt One
> DRAM:  1 GiB
> Core:  35 devices, 15 uclasses, devicetree: separate
> spi-nand: spi_nand spi_nand@0: Winbond SPI NAND was found.
> spi-nand: spi_nand spi_nand@0: 128 MiB, block size: 128 KiB, page size: 2048, OOB size: 64
> Loading Environment from UBI... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
> mtd: partition "ubi" extends beyond the end of device "spi-nand0" -- size truncated to 0x7f00000
> Read 126976 bytes from volume ubootenv to 000000007f7bf0c0
> Read 126976 bytes from volume ubootenv2 to 000000007f7de100
> OK
> "Synchronous Abort" handler, esr 0x96000004, far 0xeafffffeea000018
> elr: 0000000041e63cd4 lr : 0000000041e1b844 (reloc)
> elr: 000000007ff9ecd4 lr : 000000007ff56844
> x0 : eafffffeea000018 x1 : 000000007fb552e0
> x2 : 00000000000000fe x3 : 0000000000000000

The cause is that "serial,nc" forced the console subsystem to
initialize the ethernet driver before ethernet subsystem
initialization (console_init_r() is called before initr_net()).

During the mtk_eth driver initialization, mdio_register() will be
called, and miiphy_get_dev_by_name() will then be called.

The miiphy_get_dev_by_name() will check the list "mii_devs" to see
if the passed device name exists. However the mii_devs is defined
without initialization:
> static struct list_head mii_devs;
and the actual initialization is done in the following chain:
initr_net -> eth_initialize -> eth_common_init -> miiphy_init
Since initr_net() hasn't be called, iterating over the mii_devs
will access to physical address 0 (mii_devs.next == NULL) and will
cause the crash.

The fix is to define mii_devs using:
> static LIST_HEAD(mii_devs);

As the "current_mii" is defined as a static variable, it will
always be NULL in board_r stage and initializing it will NULL is
unnecessary. So the entire miiphy_init() can be remove.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2025-03-04 08:03:47 -06:00
Greg Malysa
e34aa2975a MAINTAINERS: Update contact information for Greg Malysa
My previous address is no longer accessible, but I will continue to be
involved in maintaining the ADI sc5xx platforms. This updates my contact
information and hopefully avoids bouncing emails from other developers.

Signed-off-by: Greg Malysa <malysagreg@gmail.com>
2025-03-03 13:10:40 -06:00
Michal Simek
f92623704e arm64: versal2: Show major and minor silicon version
ES1 silicon is 0x10 (16) and production is 0x20 (32) but correct number to
see are v1.0 or v2.0 instead of v16 or v32.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20095339334fe07f373ffae3bdbfec51f5a00dc7.1739882585.git.michal.simek@amd.com
2025-03-03 16:09:59 +01:00
Padmarao Begari
96f47ae89a clk: versal: Store driver data in data section
Line 171 in README is describing that before relocation
no code should use global variable because global variables
are placed to BSS section which is initialized to 0 after
relocation.

On Versal platforms clock driver is initialized before
relocation (via using dm,bootph-all flag in DT) and global
variables are initialized which works if this is used only
before relocation. But the variables are used after
relocation too but values are zeroed which is ending up
incorrect behavior.

That's why place variables to data section to ensure that
values are not cleared which is for now the quickest
temporary solution. The correct way to do it is to move
all global variables to private data to avoid it.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20250218052419.1141139-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-03 16:09:59 +01:00
Michal Simek
e2ef5ff765 xilinx: zynq: Guard code around SPL_FS_LOAD_PAYLOAD_NAME
Guard code around CONFIG_SPL_FS_LOAD_PAYLOAD_NAME usage to avoid
compilation failure.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f15a9762494945814b06a71db90ee4db59dd17ed.1738910601.git.michal.simek@amd.com
2025-03-03 16:09:59 +01:00
Tom Rini
cf6354ab23 Merge tag 'fsl-qoriq-2025-3-3' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq
CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/24933

Fixes:

- Re-arm packet buffer in error case in tsec driver
- Fix LS1021a build
- Fix flush dcache alignment in caam_hash
2025-03-03 07:49:07 -06:00
Tom Rini
d4e428856c Merge tag 'efi-2025-04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
CI:

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

UEFI:

* Let efi_net_set_dp properly update the device path

Network:

* Avoid buffer overflows in wget_info with legacy TCP stack
2025-03-03 07:47:37 -06:00
Venkatesh Yadav Abbarapu
a7670e6c5b clk: versal: Update the reference clocks as per bindings
As per the bindings the reference clocks naming has changed
from "pl_alt_ref_clk" to "pl_alt_ref" and "ref_clk" to "ref".
Update the same in the clock driver. Also add the fallback option
for older DT bindings.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250206091533.1447234-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-03-03 13:29:57 +01:00
Benjamin Lemouzy
ef0e979e14 crypto: fsl_hash: fix flush dcache alignment in caam_hash()
Loading a FIT kernel image with hash hardware acceleration enabled
(CONFIG_SHA_HW_ACCEL=y) displays the following CACHE warning:

    [...]
    Trying 'kernel-1' kernel subimage
    [...]
    Verifying Hash Integrity ... sha256CACHE: Misaligned operation at
range [16000128, 1673fae8]
    [...]
    Trying 'ramdisk-1' ramdisk subimage
    [...]
    Verifying Hash Integrity ... sha256CACHE: Misaligned operation at
range [1676d6d4, 1737a5d4]
    [...]
    Trying 'fdt-imx6q-xxx.dtb' fdt subimage
    [...]
    Verifying Hash Integrity ... sha256CACHE: Misaligned operation at
range [1673fbdc, 1674b0dc]
    [...]

This patch fixes it.

Tested on:
- i.MX 6 custom board
- LS1021A custom board

Signed-off-by: Benjamin Lemouzy <blemouzy@centralp.fr>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-03-03 14:18:50 +08:00
Benjamin Lemouzy
9f258e4820 board: freescale: fix LS1021a build
Fix build error "undefined reference to `is_warm_boot'" when
ls1021atsn and ls1021atwr boards are built with CONFIG_SPL=y and
CONFIG_DEEP_SLEEP=n.

Signed-off-by: Benjamin Lemouzy <blemouzy@centralp.fr>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-03-03 14:18:50 +08:00
J. Neuschäfer
63a23cb465 net: tsec: Re-arm packet buffer in error case
When an error is detected in the TSEC receive path, the driver currently
prints an error message, but leaves the corresponding packet descriptor
in its old state (i.e. owned by the CPU side). As a result, the packet
queue can be starved of available buffers if enough errors happen.

To recover from errors, re-arm the packet buffer descriptor after an
error has been detected.

Errors can be provoked by changing a PHY with phy-mode = "rgmii-id" to
phy-mode = "rgmii".

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-03-03 14:18:49 +08:00
J. Neuschäfer
a149456d6a net: tsec: Reorder tsec_recv and tsec_free_pkt
This is necessary for the following patch. No functional change.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-03-03 14:18:48 +08:00
Tom Rini
6ae0a578de Merge tag 'u-boot-rockchip-20250301' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/2489

- Fix SD-Card boot on rk3308-rock-s0 v1.1;
- Fix crash on nanopi-r4s seconde usb port;
- Disable undeeded PCI config for nanopi-r3s-rk3566
- Correct usage of IS_ENABLED()
2025-03-01 07:51:14 -06:00
Adriano Cordova
32a6c5eac0 legacy-net: wget: fix wget_info handling after new tcp legacy stack
Check wget_info->buffer_size for overflow and do not clean the wget_info struct
on failure, let the owner of the struct handle the error. The latter is necesary
, e.g., for when a request fails because the provided buffer was too small.

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
2025-02-28 15:26:05 +01:00
Adriano Cordova
2c2d2f3d12 efi_loader: efi_net: let efi_net_set_dp properly update the device path
This commit fixes an use after free introduced in Commit e55a4acb54
(" efi_loader: net: set EFI bootdevice device path to HTTP when loaded
from wget"). The logic in efi_net_set_dp is reworked so that when the
function is invoked it not only changes the value of the static variable
net_dp (this is how the function was implemented in e55a4acb54) but also
updates the protocol interface of the device path protocol in case efi
has started.

Fixes: e55a4acb54 ("efi_loader: net: set EFI bootdevice device path to HTTP when loaded from wget")
Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
2025-02-28 15:25:30 +01:00
Tianling Shen
a390c48575 rockchip: nanopi-r3s-rk3566: disable unneeded CONFIG_NVME_PCI
This board does not have any NVMe slot, so disable unneeded
CONFIG_NVME_PCI option.

Fixes: bf4a33e725 ("board: rockchip: add FriendlyElec NanoPi R3S")
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-28 19:21:17 +08:00
Justin Klaassen
ed073246e8 rockchip: nanopi-r4s: Enable second usb port and fix crash
The patch enables the second USB3.0 Type-A USB port on the NanoPi R4S
board, which prevents a crash when initializing the usb system in U-Boot
and allows both Type-A USB ports to be used for booting.

=> usb start
starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3c0000: "Synchronous Abort" handler, esr 0x96000010, far 0x0

Signed-off-by: Justin Klaassen <justin@tidylabs.net>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-28 19:15:21 +08:00
Tom Rini
126262b2be clk: rockchip: Correct usage of IS_ENABLED() macro
These two files were 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>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-28 19:14:35 +08:00
Jonas Karlman
4871db6082 rockchip: rk3308-rock-s0: Fix SD-card boot on v1.1 hw revision
BootROM leave GPIO4_D6 configured as SDMMC_PWREN function and DW MMC
driver set PWREN high in dwmci_init().

However, HW revision prior to v1.2 must pull GPIO4_D6 low to access
sdmmc. For HW revision v1.2 the state of GPIO4_D6 has no impact.

Upstream Linux commit 26c100232b09 "arm64: dts: rockchip: Fix sdmmc
access on rk3308-rock-s0 v1.1 boards" fixed this issue by adding a
vcc_sd regulator.

Include the new vcc_sd regulator in SPL and enable required Kconfig
options to set GPIO4_D6 low to fix reading sdmmc on v1.1 hw revision.

Fixes: 25438c40a0 ("board: rockchip: Add Radxa ROCK S0")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-28 19:13:50 +08:00
Tom Rini
32c9a6518d Merge patch series "mbedtls: fix incorrect kconfig dependencies on mbedtls"
This series from Raymond Mao <raymond.mao@linaro.org> fixes assorted
problems with how dependencies were expressed in Kconfig for mbedtls and
assorted algorithms.

Link: https://lore.kernel.org/r/20250203220825.707590-1-raymond.mao@linaro.org
2025-02-27 12:11:07 -06:00
Raymond Mao
ac0b1e82ff mbedtls: refactor mbedtls build for XPL
Refactor the entire kconfig page for mbedtls, adapt mbedtls makefile
and default config file using 'XPL_', in order to have independent
mbedtls kconfig options in U-Boot Proper, SPL, TPL and VPL.
User can choose legacy or mbedtls libraries for them independently.

Set mbedtls native hashing libraries as default when MBEDTLS_LIB,
SPL_MBEDTLS_LIB, TPL_MBEDTLS_LIB or VPL_MBEDTLS_LIB is selected.

If users prefer using U-Boot legacy hashing libraries, please select
MBEDTLS_LIB_HASHING_ALT, SPL_MBEDTLS_LIB_HASHING_ALT,
TPL_MBEDTLS_LIB_HASHING_ALT or VPL_MBEDTLS_LIB_HASHING_ALT for U-Boot
Proper, SPL, TPL and VPL respectively.

Moreover, rename a few kconfig options and update their descriptions to
improve the consistency of terminology.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-02-27 12:11:02 -06:00
Raymond Mao
f13cd90762 mbedtls: access mbedtls private members in mscode and pkcs7 parser
U-Boot requires to access x509_internal.h, mbedtls_sha256_context and
mbedtls_sha1_context in the porting layer, and this requires to
enable MBEDTLS_ALLOW_PRIVATE_ACCESS.

Enable it to mscode and pkcs7_parser to fix a mbedtls internal building
error when X509 is selected.

Moreover, Move it to a separate file to avoid enabling it in multiple
places.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-02-27 12:11:02 -06:00
Raymond Mao
a26e957381 mbedtls: fix incorrect kconfig dependencies on mbedtls
Fixed the building failures when WGET_HTTPS,NET_LWIP and MBEDTLS_LIB
are selected due to a few incorrect kconfig dependencies.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-02-27 12:11:02 -06:00
Daniel Schultz
b78f8677cd arch: arm: dts: k3-am642-phycore-som-binman: Add custMpk to overlays
There are some device-tree overlays with missing entries for the
keyfile. Add them to sign all images in the U-Boot FIT image.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-02-27 08:07:38 -06:00
Daniel Schultz
c5aa4a4624 arch: arm: dts: k3-am625-phycore-som-binman: Add custMpk to overlays
There are some device-tree overlays with missing entries for the
keyfile. Add them to sign all images in the U-Boot FIT image.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-02-27 08:07:38 -06:00
Tom Rini
74bbe86413 Merge tag 'u-boot-imx-master-20250227' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/24872

- Fix bootstd booting on imx8mm_evk, imx8mq_evk, imx8mp_evk and
  imx93_evk
2025-02-27 08:00:30 -06:00
Fabio Estevam
11ad9f8b15 imx8mp_evk: Pass kernel_addr_r
Currently, booting via bootstd fails because the kernel cannot be retrieved.
The reason for this is the lack of 'kernel_addr_r'.

Pass 'kernel_addr_r' to fix booting via bootstd.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-02-27 09:42:49 -03:00
Fabio Estevam
65d150bf7b imx93_evk: Pass kernel_addr_r
Currently, booting via bootstd fails because the kernel cannot be retrieved.
The reason for this is the lack of 'kernel_addr_r'.

Pass 'kernel_addr_r' to fix booting via bootstd.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-02-27 09:42:47 -03:00
Peng Fan
542cac02d0 imx8mm: imx8mm_evk: fix BOOTSTD boot
Select BOOTSTD_FULL and BOOTSTD_BOOTCOMMAND
Correct DEFAULT_FDT_FILE
Correct env file for imx8mm_evk_fspi_defconfig

Fixes: 364ba68ed1 ("imx: imx8mm_evk: Switch to BOOTSTD")
Reported-by: Ludwig Nussel <ludwig.nussel@siemens.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-02-27 08:14:37 -03:00
Peng Fan
46a110aac0 imx8mq: imx8mq_evk: fix DEFAULT_FDT_FILE
The CONFIG_DEFAULT_FDT_FILE should be imx8mq_evk.dtb for this board

Fixes: 7050bd925f ("imx: imx8mq_evk: Switch to BOOTSTD")
Reported-by: Ludwig Nussel <ludwig.nussel@siemens.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-02-27 08:14:37 -03:00
Tom Rini
57bbc4de75 Merge tag 'qcom-fixes-2025.04-rc4' of https://source.denx.de/u-boot/custodians/u-boot-snapdragon
CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/24841

The clk_stub, regulator, and pinctrl fixes enable the sdcard on the RB5
dev board (and sm8250 devices broadly). clk_stub is only enabled in
qcom_defconfig and the others are qcom specific so these shouldn't
affect other platforms.

Lastly, a small ufetch fix from Sam which gets color rendering correctly
on U-Boots framebuffer video device.
2025-02-26 08:55:32 -06:00
Sam Day
6267ce5565 cmd: ufetch: use 3-bit colour ANSI codes
Currently, the 8-bit escapes are being used, which aren't supported by
vidconsole_escape_char. Since the current usage maps directly to the
3-bit equivalents anyway, let's use those instead.

With this change, the fetch output looks as fetching in the vidconsole
as it does over serial!

Signed-off-by: Sam Day <me@samcday.com>
Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Tested-by: Ferass El Hafidi <funderscore@postmarketos.org>
2025-02-26 13:48:27 +00:00
Caleb Connolly
554562f7b5 pinctrl: qcom: sm8250: fix pin count
The pin count wasn't updated when the special pins were added, as a
result it was never possible to configure the special pins on SM8250
boards.

Fix the pin count and allow the special pins to be configured. This
fixes sdcard support on the RB5.

Fixes: 58fa520424 ("pinctr: qcom: sm8250: add special pins pins configuration data")
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-02-26 13:48:27 +00:00
Caleb Connolly
e57b72abb7 power: regulator: add additional supported LDOs for pm8150l
Add the other LDOs that our rpmh driver can currently support. Some of
these are used on the RB5 to power the sdcard.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-02-26 13:48:27 +00:00
Julius Lehmann
506f6a384c clk: stub: add sm8150 compatible id
Add support for sm8150 clock controller to clk stub driver.

Signed-off-by: Julius Lehmann <lehmanju@devpi.de>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-02-26 13:16:40 +00:00
Caleb Connolly
b72d6a9d61 qcom_defconfig: enable stub clock
Enable the stub clock driver for rpmcc

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-02-26 13:16:40 +00:00
Caleb Connolly
d31a3bd08e clk: add stub clock driver
Add a stub clock driver which can be used to bind clock controllers
which aren't required for the platform to boot, but which are needed for
U-Boot drivers to work.

In addition, add a NOP parent driver to allow for binding the parent
nodes of the clock.

Initially this driver supports a Qualcomm platform where the MMC driver
tries to fetch the RPM clock controller, which is not actually required
for the device to work.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-02-26 13:16:40 +00:00
Tom Rini
dc0ee458f1 Prepare v2025.04-rc3
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-24 16:53:59 -06:00
Marek Vasut
dbb9e136b8 mmc: Fix size calculation for sector addressed MMC version 4
For eMMC v4 and newer that is smaller than 2 GiB, the JEDEC JESD84-B51
section 6.2.4 Configure partitions indicates that EXT_CSD SEC_COUNT
should not be used to determine device size, and instead device size
should be calculated from C_SIZE and C_SIZE_MULT.

This is not exactly accurate, the 2 GiB limit is not a hard line,
there are eMMC devices which are smaller than 2 GiB and still
require device size to be determined from EXT_CSD SEC_COUNT. The
hard line is instead OCR HCS bit, which indicates whether the device
is byte or sector addressed, the former applies to most devices
below 2 GiB, and the later applies mostly to devices above 2 GiB.

However, there are a couple of devices which are smaller than 2 GiB
and still set the OCR HCS bit to indicate they are sector addressed,
and therefore the size calculation for those devices should also
use EXT_CSD SEC_COUNT . Use mmc->high_capacity flag to discern the
devices instead of arbitrary 2 GiB limit. The mmc->high_capacity flag
reflects the OCR HCS bit state.

Fixes: 639b7827d1 ("mmc: fix the condition for MMC version 4")
Signed-off-by: Marek Vasut <marex@denx.de>
2025-02-24 14:16:28 -06:00
Joao Marcos Costa
59fd62d71c fs/squashfs: fix potential integer overflows
The length of buffers used to read inode tables, directory tables, and
reading a file are calculated as: number of blocks * block size, and
such plain multiplication is prone to overflowing (thus unsafe).

Replace it by __builtin_mul_overflow, i.e. safe math.

Signed-off-by: Joao Marcos Costa <joaomarcos.costa@bootlin.com>
2025-02-24 08:49:04 -06:00
Tom Rini
5061eab96a Merge branch 'picasso' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Branch contains bringup of Acer Iconia Tab A500 (codename picasso), a
Tegra 2 Android device with decent Linux kernel support. Ondevice tests
and U-Boot test suit all passed.
2025-02-22 08:42:01 -06:00
Tom Rini
313b9856f9 Merge tag 'efi-2025-04-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
CI:

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

UEFI:

* create a parent device for all EFI block devices
* move lmb_map_update_notify() to EFI
* make efi_add_memory_map_pg() static
* remove comparisons to string literals from runtime
* ix potential deref-after-null

Other:

* avoid superfluous value check in lmb_map_update_notify()
* support more efi protocols in uuid_guid_get_str()
2025-02-20 11:21:41 -06:00
Tom Rini
7a6dbb9dbe Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/24692

- board: VisionFive 2: Update maintainer file
- configs: starfive: Add LwIP network and wget command
- configs: microchip: set DEFAULT_FDT_FILE
2025-02-20 08:34:52 -06:00
Tom Rini
ee69293e0d Merge tag 'u-boot-rockchip-20250220' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/24690

Please pull the fixes for rockchip platform:
- Fix for rk3399 bob and kevin
- Fix for sdram more than 4GB
- Fix for dwc_eth on rk356x/rk3588
- Fix for sdmmc access on rk33080rock-s9
2025-02-20 08:32:53 -06:00
Heinrich Schuchardt
5ce629db25 efi_loader: make efi_add_memory_map_pg() static
The function is only used in the efi_memory.c module.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-20 11:09:33 +01:00
Heinrich Schuchardt
41d5734442 lmb: move lmb_map_update_notify() to EFI
When building with qemu_arm64_defconfig with CONFIG_CC_OPTIMIZE_FOR_DEBUG=y
and CONFIG_EFI_LOADER=n an error undefined reference to efi_add_memory_map_pg
occurs.

Move the EFI dependent part of lmb_map_update_notify() to the EFI
sub-system.

Reported-by: Liya Huang <1425075683@qq.com>
Acked-by: Liya Huang <1425075683@qq.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-20 11:09:33 +01:00
Heinrich Schuchardt
08573d7688 lmb: avoid superfluous value check in lmb_map_update_notify()
Instead of testing the value of parameter op at runtime use an enum to
ensure that only valid values are used.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-20 11:09:33 +01:00
Heinrich Schuchardt
bd8bc53162 efi_driver: create a parent device for all EFI block devices
Up to now root has been the parent device for all block devices created via
calling ConnectController(). This does not work well together with the
implementation of bootstd.

Add a dummy parent device for all EFI block devices.

With this change EFI block devices are also accessible via commands like
'cat', 'load', and 'ls'.

    => dm tree
     Class     Seq    Probed  Driver                Name
    -----------------------------------------------------------
     efi           0  [ + ]   EFI block driver      `-- efi
     blk           3  [ + ]   efi_blk                   `-- efi.efiblk#0
     partition     0  [ + ]   blk_partition                 `-- efi.efiblk#0:1

    => ls efiloader 0:1
           13   hello.txt
            7   u-boot.txt
    2 file(s), 0 dir(s)

    => cat efiloader 0:1 hello.txt
    Hello world!

    => efidebug dh
    0000000018df1700 (efi.efiblk#0:1)
      /VenHw(dbca4c98-6cb0-694d-0872-819c650cb7b8)/HD(1,MBR,0xd1535d21,0x1,0x7f)
      Block IO
      Simple File System

Adjust the event dump unit test to consider the new event spy.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-20 11:07:44 +01:00
Ilias Apalodimas
530e869ff8 efi_loader: remove comparisons to string literals from runtime
For EFI runtime services, we manage to preserve string literals
by placing the .efi_runtime section just before .data and preserving
it when marking the runtime memory by marking surrounding boottime
code as runtime. This is ok for now but will break if we update any
linker scripts and decouple .text and .runtime sections.

So let's define the strings we used to compare in the appropriate
section for runtime services

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
2025-02-20 09:22:53 +01:00
Maks Mishin
80908fee77 efi_loader: Fix potential deref-after-null
After having been compared to a NULL value at efi_disk.c:426,
pointer 'part_info' is dereferenced at efi_disk.c:534.

Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-20 09:04:12 +01:00
Vincent Stehlé
87ef1987de lib: uuid: support more efi protocols in uuid_guid_get_str()
Add more EFI protocols GUIDs to the translation table used by
uuid_guid_get_str().

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
2025-02-20 08:40:52 +01:00
E Shattow
399a03442f configs: starfive: use LwIP network stack and enable wget command
Use LwIP network stack and enable wget HTTP command. The tftpput command
is not currently supported by LwIP network stack so remove it.

Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-20 12:18:41 +08:00
Hal Feng
c6337c91e5 board: starfive: Update the maintainer file for VisionFive 2 board
Update the maintainer file and mark jh7110 / visionfive2 related files
with N: patterns.

Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-20 12:18:41 +08:00
Heinrich Schuchardt
3955668a9d configs: microchip_mpfs_icicle: set DEFAULT_FDT_FILE
Variable $fdtfile needs to be set for automatically loading a device-tree
from the ESP or boot partition.

* Set CONFIG_DEFAULT_FDT_FILE in the defconfig.
* Add $fdtfile to the default environment.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-20 12:18:40 +08:00
Jonas Karlman
d69097683d arm64: dts: rockchip: Fix sdmmc access on rk3308-rock-s0 v1.1 boards
BootROM leave GPIO4_D6 configured as SDMMC_PWREN function and DW MCI
driver set PRWEN high on MMC_POWER_UP and low on MMC_POWER_OFF.
Similarly U-Boot also set PRWEN high before accessing mmc.

However, HW revision prior to v1.2 must pull GPIO4_D6 low to access
sdmmc. For HW revision v1.2 the state of GPIO4_D6 has no impact.

Model an always-on active low fixed regulator using GPIO4_D6 to fix
use of sdmmc on older HW revisions of the board.

Fixes: adeb5d2a4ba4 ("arm64: dts: rockchip: Add Radxa ROCK S0")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20241119230838.4137130-1-jonas@kwiboo.se
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 26c100232b09ced0857306ac9831a4fa9c9aa231 ]

(cherry picked from commit ca8e0bedbc790b19b11efc223677d178b8eeb74e)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2025-02-19 23:26:40 +08:00
Jonas Karlman
8d25dbb725 net: dwc_eth_qos_rockchip: Fix disable of RX/TX delay for RK3588
When rgmii-rxid/txid/id phy-mode is used the MAC should not add RX
and/or TX delay. Currently RX/TX delay is configured as enabled using
zero as delay value for the rgmii-rxid/txid/id modes.

Change to disable RX and/or TX delay and using zero as delay value.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:26:11 +08:00
Jonas Karlman
c4ec920cb9 net: dwc_eth_qos_rockchip: Fix disable of RX/TX delay for RK356x
When rgmii-rxid/txid/id phy-mode is used the MAC should not add RX
and/or TX delay. Currently RX/TX delay is configured as enabled using
zero as delay value for the rgmii-rxid/txid/id modes.

Change to disable RX and/or TX delay and using zero as delay value.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:26:11 +08:00
Jonas Karlman
d5a3fb9ef8 pinctrl: rockchip: rk3328: Fix pinmux for GPIO2-B and GPIO3-B pins
The pinmux bits for GPIO2-B0 to GPIO2-B6 actually have 2 bits width,
correct the bank flag for GPIO2-B. The pinmux bits for GPIO2-B7 is
recalculated so it remain unchanged. Add missing GPIO3-B1 to GPIO3-B7
pinmux data to rk3328_mux_recalced_data as mux register offset for these
pins does not follow rockchip convention.

This matches changes in following Linux commits:
- e8448a6c817c ("pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins")
- 5ef6914e0bf5 ("pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins")
- 128f71fe014f ("pinctrl: rockchip: correct RK3328 iomux width flag for GPIO2-B pins")

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:24:48 +08:00
Jonas Karlman
110428931c rockchip: rk3288: Use rk3288-cru.h from dts/upstream
clock/rk3288-cru.h in include/dt-bindings is almost identical to the
version in dts/upstream, remove the copy from include/dt-bindings to
only use the version from dts/upstream.

One clk, SCLK_MAC_PLL, is not part of the upstream bindings, this clk is
not used by upstream, in-tree or vendor DTs and can safely be dropped.

No functional change to board DTs is intended with this removal.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:14:59 +08:00
Johan Jonker
d4aac2894a rockchip: use OF_UPSTREAM for rk3036
The device tree for rk3036 combined is now
available in the /dts/upstream directory.
Use imply OF_UPSTREAM to migrate all rk3036 boards.

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
2025-02-19 23:14:50 +08:00
Jonas Karlman
d5fc369a59 rockchip: sdram: Ensure ram_base is correct in SPL
Most Rockchip SoCs use 0x0 as DRAM base address, however some SoCs use
0x60000000 and RK3576 use 0x40000000 as DRAM base address.

CFG_SYS_SDRAM_BASE is defined with correct address for each SoC and
U-Boot proper use this to set correct gd->ram_base in setup_dest_addr().

SPL never assign any value to gd->ram_base and instead use the default,
0x0. Set correct gd->ram_base in dram_init() to ensure its correctness
in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:11:06 +08:00
Jonas Karlman
356236126d rockchip: sdram: Limit usable ram_top to max 4G
U-Boot only works correctly when it uses RAM below the 4G address
boundary on Rockchip SoCs. Limit usable gd->ram_top to max 4G.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:11:06 +08:00
Jonas Karlman
57ad1ed7e8 rockchip: sdram: Allow the first bank to extend beyond 4 GiB
Allow the first bank to extend beyond 4 GiB when the blob of space for
peripheral is located before start of DRAM, e.g. when start of DRAM
is 0x40000000 and continue beyond the 4 GiB mark.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:11:06 +08:00
Chen-Yu Tsai
64cec76899 rockchip: rk3399: grf: Fix enum typos for UART2
In the GRF header file, some instances of UART2 pinmux are prefixed with
"GRF_UART2DBG" while others have "GRF_UART2DGB".

Since UART2 is the default console UART and used for debugging, it is
more likely the name should be UART2DBG.

Fix the ones that are wrong.

Fixes: a2c08df381 ("pinctrl: add driver for rk3399")
Fixes: fa72de1045 ("rockchip: arm64: rk3399: move grf register definitions to grf_rk3399.h")
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: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:06:42 +08:00
Jonas Karlman
7622834065 Revert "rockchip: rk3399: Fix TPL build of bob and kevin"
These power rails must be on very early for the U-Boos TPL banner to be
show over debug UART.

This reverts commit 4576e65a5d.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:03:03 +08:00
Jonas Karlman
227b505f04 rockchip: rk3399-gru: Enable TPL_GPIO for bob and kevin
The PP1500 and PP3000 power rails must be on very early for the U-Boot
TPL banner to be shown on debug UART.

Enable TPL_GPIO Kconfig option for bob and kevin to allow use of
spl_gpio.h functions in TPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:03:03 +08:00
Jonas Karlman
7dba748433 Revert "rockchip: rk3399: Drop unneeded bob and kevin board specific code"
These power rails must be on very early for the U-Boos SPL banner to be
show over debug UART.

This reverts commit af518a1dfe.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-02-19 23:03:03 +08:00
Stefan Eichenberger
3f866c47b5 board: verdin-am62: add dram_init_banksize
Add the dram_init_banksize function to the board file to properly set
DRAM memory sizes during boot.

The commit bc07851897 ("board: ti: Pull redundant DDR functions to a
common location and Fixup DDR size when ECC is enabled") relocated the
dram_init_banksize function from architecture specific initialization to
the TI board initialization code. As a result, boards relying on the
previous setup now require this function to be defined within their
board file to handle DRAM sizing correctly.

Without this function defined the following error appears during boot:
    ERROR: Failed to allocate 0x1000 bytes below 0x0.

Fixes: bc07851897 ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2025-02-19 07:41:11 -06:00
Gao Xiang
7a45cb4ffe fs/erofs: fix an integer overflow in symlink resolution
See the original report [1], otherwise len + 1 will be overflowed.

Note that EROFS archive can record arbitary symlink sizes in principle,
so we don't assume a short number like 4096.

[1] https://lore.kernel.org/r/20250210164151.GN1233568@bill-the-cat

Fixes: 830613f8f5 ("fs/erofs: add erofs filesystem support")
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
2025-02-18 12:32:07 -06:00
Heiko Schocher
cdc67e2750 led: fix coverity scan error
The following was reported by Covervity scan:

*** CID 541279:    (TAINTED_SCALAR)
/drivers/led/led-uclass.c: 284 in led_get_function_name()
278                     if (!ret) {
279                             snprintf(uc_plat->name, LED_MAX_NAME_SIZE,
280                                      "%s:%s-%d",
281                                      cp ? "" : led_colors[color],
282                                      func ? func : "", enumerator);
283                     } else {
>>>     CID 541279:    (TAINTED_SCALAR)
>>>     Using tainted variable "color" as an index into an array "led_colors".

Fix it.
Addresses-Coverity-ID: 541279 (TAINTED_SCALAR)
Link: https://lists.denx.de/pipermail/u-boot/2025-February/580250.html
Signed-off-by: Heiko Schocher <hs@denx.de>
2025-02-18 12:30:53 -06:00
Heinrich Schuchardt
50e8089c1d tools: use cryptographically safe RNG
The PRNG implementing the random() function only has 2^31 states and
therefore is unsafe to use for cryptography. Use arc4random() instead.

Fixes: cc34f04efd ("tools: image-host.c: use random instead of rand")
Addresses-Coverity-ID: 312953 Calling risky function
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-18 12:30:32 -06:00
Udit Kumar
e93f11148a power: regulator: tps65941: Fix voltage calculation for ldo
As per TRM[0] Section 8.7.1 "TPS6594-Q1 Registers", LDOx_Vout
bit 6-1, define the NVM voltage settings.
Along side table 8-4 of above TRM, shows voltage to value mapping.

Driver wrongly using bits 5-1 to calculate voltage, and to convert
voltage to value driver was using buck's calculation.
So fix those calculation.

[0]: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf

Fixes: 5d7dbd22cf ("power: regulator: tps65941: use function callbacks for conversion ops")
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2025-02-18 10:49:36 -06:00
Ilias Apalodimas
92880a58ca tpm: unconstify tpm_tis_chip_data
The struct contains an iomem pointer that we later remap and update.
Remove const from the struct definition.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-02-18 08:26:43 -06:00
Tom Rini
714a0227fe Gitlab: Add missing symlink for qemu_arm64_lwip boardenv file
When adding the symlink for the conf file so qemu_arm64_lwip uses
qemu_arm64 configuration information, the symlink for the boardenv file
was missed in Gitlab (but not Azure). Add that in now.

Fixes: fd10d156db ("CI: add qemu_arm64_lwip to the test matrix")
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-17 08:58:39 -06:00
Svyatoslav Ryhel
ad3ec11b39 board: acer: picasso: add Acer Iconia Tab A500 support
The Acer Iconia A500 is a tablet computer designed, developed and
marketed by Acer Inc. It is powered by 1 GHz Nvidia Tegra 2 processor
and 1GB DDR2 RAM. The A500 is sold with 64 GB, although both 16 GB
and 32 GB models are available.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-02-16 19:11:43 +02:00
Tom Rini
274dc5291c Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
Add empty weak assembler function armv8_switch_to_el2_prep() which is
jumped to just before U-Boot determines which EL it is running in and
decides which path to take to boot the Linux kernel. Add
IH_TYPE_TFA_BL31 into supported images type, to allow implementation of
board specific U_BOOT_FIT_LOADABLE_HANDLER(IH_TYPE_TFA_BL31, ...) TFA
BL31 loadable handler for fitImages.

This PR contains common hooks which are noop, R-Car Gen4 board specific
implementation using these hooks is coming in next PR.
2025-02-15 15:29:20 -06:00
Marek Vasut
854a5a00ca image: Add support for starting TFA BL31 as fitImage loadables
Add support for starting TFA from U-Boot running in EL3 as part of
fitImage boot, so the user can start U-Boot in the highest privilege
level on the platform, bundle TFA, Linux, DT into a single fitImage
and boot such a bundle as a whole.

There are two main benefits of this approach. First is the ability
to run U-Boot in EL3, where it has unrestricted access to the entire
system and can act as a useful debug tool, as it was always intended
to be used. Second is the ability to easily and safely update of any
component in the fitImage, be it TFA, Linux or DT.

The boot process is similar to regular Linux with DT fitImage boot
process, except the TFA has to be bundled into the fitImage. For the
bundling instructions, see below. The TFA is started as a 'loadables'
with custom U_BOOT_FIT_LOADABLE_HANDLER and armv8_switch_to_el2_prep()
handling implemented in board code, and performing the handoff and
boot in case the TFA was loaded.

The loadables handler is optional and meant to set up any sort of
handoff structures used by the TFA BL31 or perform any other setup
that is needed by the blob. The custom armv8_switch_to_el2_prep()
has to implement the jump to TFA BL31 with return to U-Boot just
before booting the Linux kernel.

Example fitImage image and configuration section:

/dts-v1/;

/ {
    description = "Linux kernel with FDT blob and TFA BL31";

    images {
        kernel-1 { ... };
        fdt-1 { ... };
        atf-1 {                  /* This is the TFA BL31 image */
            description = "TFA BL31";
            data = /incbin/("../build/plat/release/bl31.bin");
            type = "tfa-bl31";
            arch = "arm64";
            os = "arm-trusted-firmware";
            compression = "none";
            load = <0x46400000>;
            entry = <0x46400000>;
        };
    };

    configurations {
        default = "conf-1";
        conf-1 {
            description = "Boot Linux";
            kernel = "kernel-1";
            fdt = "fdt-1";
            loadables = "atf-1"; /* This is the TFA BL31 loadable */
        };
    };
};

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-02-15 14:44:43 +01:00
Marek Vasut
9f95282f31 arm64: Add late jump to kernel board hook
Add empty weak assembler function armv8_switch_to_el2_prep() which is
jumped to just before U-Boot determines which EL it is running in and
decides which path to take to boot the Linux kernel.

This weak function is meant to be used by architecture specific code
to implement jump to a firmware blob, which then returns right past
this weak function and continues execution of U-Boot code which then
boots the Linux kernel. One example of such use case is when U-Boot
jump tp TFA BL31, which switches from EL3 to EL2 and then returns to
U-Boot code newly running in EL2 and starts the Linux kernel.

The weak function is called with caches already disabled and DM shut
down. Any preparatory work or even loading of more data must be done
in board_prep_linux(), this hook is meant only for the final jump to
the firmware and return to U-Boot before booting Linux.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-02-15 14:44:43 +01:00
Tom Rini
89d33336d2 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.
2025-02-13 12:37:26 -06:00
ZHANG Yuntian
f9edd081b1 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: 12f1212e95 ("Merge commit '0344c602eadc0802776b65ff90f0a02c856cf53c' as 'lib/mbedtls/external/mbedtls'")
Signed-off-by: ZHANG Yuntian <yt@radxa.com>
2025-02-13 09:53:18 -06:00
Svyatoslav Ryhel
df48a95588 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>
2025-02-13 16:52:31 +02:00
Svyatoslav Ryhel
9095fb1211 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>
2025-02-13 16:52:31 +02:00
Svyatoslav Ryhel
279289e0cf 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>
2025-02-13 16:52:13 +02:00
Tom Rini
9b35357b95 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()
2025-02-12 12:37:30 -06:00
Jerome Forissier
a091d173e3 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>
2025-02-12 12:37:24 -06:00
Heinrich Schuchardt
331d75544f net: use strnstr() for lwip_strnstr()
Using strstr() instead of strnstr() creates a security concern.

Fixes: 1c41a7afaa ("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>
2025-02-12 12:37:19 -06:00
Heinrich Schuchardt
4fee75276d 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>
2025-02-12 12:37:17 -06:00
Heinrich Schuchardt
7c7361b98d 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>
2025-02-12 12:37:12 -06:00
Heinrich Schuchardt
10917df17f 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: 27d7ccda94 ("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>
2025-02-12 12:37:05 -06:00
Jerome Forissier
9f6b9f57fe 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>
2025-02-12 12:36:57 -06:00
Svyatoslav Ryhel
dedc0468b2 ARM: tegra124: dts: add missing DSI nodes
Bind missing DSI and MIPI calibration devices.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
f47a02825a ARM: tegra30: dts: complete DSI nodes
Sync DSI nodes with Linux tree.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
c3d8c206dc 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>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
e4f5741c6d 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>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
b93e25dc73 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>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
efb7964cc1 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>
2025-02-12 10:35:17 +02:00
Svyatoslav Ryhel
aab837d7fc 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>
2025-02-12 10:34:52 +02:00
Svyatoslav Ryhel
1ca8ec80f2 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>
2025-02-12 10:34:32 +02:00
Svyatoslav Ryhel
c125ef543c 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 c03cd98d1a.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2025-02-12 10:34:04 +02:00
Tom Rini
3da1864b1f configs: Resync with savedefconfig
Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-11 09:57:33 -06:00
Tom Rini
7f89b40f1c 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
2025-02-11 08:56:54 -06:00
Patrice Chotard
4096d28ec8 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>
2025-02-11 09:01:08 +01:00
Patrice Chotard
0b96214cb3 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
d0ff527f62 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
08fec26a67 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
23542078ec 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
9de4b7e0a4 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
15cd35cb3f 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
0f688eb0d6 configs: stih410-b2260: Enable DM_REGULATOR flag
Since commit 6aa8bde878 ("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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
3810cd52cb 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>
2025-02-11 09:00:42 +01:00
Patrice Chotard
4b6a3e8608 usb: gadget: f_mass_storage: Add schedule() in sleep_thread()
In case "ums" command is used on platforms which don't implement
g_dnl_board_usb_cable_connected() and USB cable is not connected,
we stay inside sleep_thread() forever and watchdog is triggered.

Add schedule() call to avoid this issue.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241202074644.5380-1-patrice.chotard@foss.st.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-02-11 08:59:27 +01:00
Tom Rini
636fcc96c3 Prepare v2025.04-rc2
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-10 16:00:49 -06:00
Simon Glass
cb3612dfe3 CI: Drop extra condition for sjg lab
The rules part of the template makes sure that this doesn't run until
specifically requested. Drop the check in the script itself, so it is
possible to trigger a run manually without re-pushing the tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-10 13:54:55 -06:00
Tom Rini
ac5d05f070 Merge patch series "Enable MCU ESM reset"
Judith Mendez <jm@ti.com> says:

This patch series enables ESM reset configuration in board_init_f
for am62x and am62px devices.

This is necessary in order for error events to reset the system.

This patches are tested using watchdog to reset the system via ESM.

Link: https://lore.kernel.org/r/20250129234403.574766-1-jm@ti.com
2025-02-10 10:32:03 -06:00
Santhosh Kumar K
dd7d2042d5 configs: am62*_evm_r5: Enable ESM and MISC configs
Enable CONFIG_SPL_DRIVERS_MISC, CONFIG_SPL_MISC, CONFIG_ESM_K3
to probe the Main ESM and MCU ESM nodes.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
2025-02-10 10:30:41 -06:00
Santhosh Kumar K
630fe2f88a arm: mach-k3: am62*_init: Probe ESM nodes
On AM62A and AM62P devices, it is possible to route Main ESM error
events to MCU ESM. MCU ESM high error output can trigger the reset
logic to reset the device. So, for these devices we have Main ESM and
MCU ESM nodes in the device tree. Add functions to probe these nodes
if CONFIG_ESM_K3 is enabled.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
2025-02-10 10:30:41 -06:00
Nathan Morrisson
27d0af5e85 include: env: phytec: Add optargs to K3 files
Add the optargs variable so that we can set optional arguments while
booting.

Signed-off-by: Nathan Morrisson <nmorrisson@phytec.com>
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2025-02-10 10:30:15 -06:00
Andre Przywara
4ef949eedc env: fat: Avoid writing to read-only location
The env_fat_get_dev_part() function mostly returns a fixed string, set
via some Kconfig variable. However when the first character is a colon,
that means that the boot device number is determined at runtime, and
patched in. This requires altering the string.

So far this was done via some ugly and actually illegal direct write to
the .rodata string storage. We got away with this because U-Boot maps
everything as read/write/execute so far.

A proposed patch set actually enforces read-only (and no-execute)
permissions in the page tables, so this routine now causes an exception:
=======================
Loading Environment from FAT... "Synchronous Abort" handler, esr 0x9600004f, far 0xfffb7d4c
elr: 000000004a054228 lr : 000000004a05421c (reloc)
elr: 00000000fff7c228 lr : 00000000fff7c21c
.....
=======================

Rewrite the routine to do away with the dodgy string manipulation,
instead allocate the string in the r/w .data section, where we can
safely manipulate it.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-02-10 10:29:53 -06:00
Tom Rini
530fc5c9e5 Merge patch series "FIX: Re-enable MUX_MMIO on J721E/J7200"
Siddharth Vadapalli <s-vadapalli@ti.com> says:

Hello,

This series re-enables MUX_MMIO at U-Boot proper on J721E and J7200
SoCs. The commits which introduced support for Hyperflash boot on both
of these SoCs disabled MUX_MMIO functionality at U-Boot proper, thereby
introducing a regression.

Series is based on commit
2b1c8d3b2d cmd: Fix Kconfig coding style
of the master branch of U-Boot.

Link: https://lore.kernel.org/r/20250201091809.1894892-1-s-vadapalli@ti.com
2025-02-10 10:29:36 -06:00
Siddharth Vadapalli
d700d04dd2 configs: j7200_evm_a72_defconfig: Re-enable MUX_MMIO at U-Boot proper
Commit under Fixes introduced support for Hyperflash boot but also disabled
MUX_MMIO support at U-Boot proper. MUX_MMIO is required at U-Boot proper
to setup the SERDES Lane Mapping as described by the device-tree. On J7200
SoC, PCIe functionality is broken since commit under fixes.

Fix this regression by re-enabling MUX_MMIO.

Fixes: 038f6faea9 ("configs: j7200_evm_*_defconfig: Add configs for Hyperflash boot")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Anurag Dutta <a-dutta@ti.com>
2025-02-10 10:29:18 -06:00
Siddharth Vadapalli
29b66b008e configs: j721e_evm_a72_defconfig: Re-enable MUX_MMIO at U-Boot proper
Commit under Fixes introduced support for Hyperflash boot but also disabled
MUX_MMIO support at U-Boot proper. MUX_MMIO is required at U-Boot proper
to setup the SERDES Lane Mapping as described by the device-tree.

Fix this regression by re-enabling MUX_MMIO.

Fixes: fd7fcd4098 ("configs: j721e_evm_*_defconfig: Add configs for Hyperflash boot")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2025-02-10 10:29:18 -06:00
Michal Simek
5b280448bb rtc: emul_rtc: Make emul_rtc_probe() static
emul_rtc_probe() is not called from anywhere else that's why make it
static. Issue is reported by build with W=1.

Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-10 10:29:10 -06:00
Michael Chang
8897f91a53 net: designware: support phy io micro voltage setting.
Support phy io micro voltage setting for NPCM8XX rgmii
interface.

Signed-off-by: Michael Chang <zhang971090220@gmail.com>
2025-02-10 10:28:36 -06:00
Weijie Gao
738deb56b6 mediatek: mt7981: enable ethernet switch auto-detction
This patch enables switch auto-detction for mt7981 as some new mt7981
boards will use AN8855 ethernet switch.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-10 10:28:31 -06:00
Wadim Egorov
72e26be3d7 configs: phycore_am64x_r5_defconfig: Enable PHYTEC_SOM_DETECTION
Enable configs required for detecting and fixing up for different RAM variants.
Also resync after savedefconfig.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Daniel Schultz <d.schultz@phytec.de>
2025-02-10 10:28:05 -06:00
Wadim Egorov
a4287431ad board: phytec: phycore_am64x: Add support for 1 GB RAM variant and ECC
Detect RAM size via EEPROM and adjust DDR size and banks accordingly.
Include necessary fixups to handle ECC-enabled configurations.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Daniel Schultz <d.schultz@phytec.de>
2025-02-10 10:28:05 -06:00
Wadim Egorov
7c652360c8 arch: arm: dts: phyboard-electra-uboot.dtsi: Add bootph props to i2c
Add bootph-all properties to I2C0 nodes to ensure the bus and EEPROM
are accessible across all stages. This enables reading the SoM
configuration at any point during the boot process.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
2025-02-10 10:28:05 -06:00
Andrew Goodbody
eaa51d0fda test/py: usb: Fix format string for fstype command
USB tests on ext partitions can fail with the following output

test/py/tests/test_usb.py:245: in test_usb_part
    'fstype usb %d:%d' % i, part_id
E   TypeError: not enough arguments for format string

So add brackets around the format string arguments to prevent the
error.

Fixes: a730947974 ("test/py: usb: Distinguish b/w ext2/ext4 partitions")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Love Kumar <love.kumar@amd.com>
2025-02-10 10:27:44 -06:00
Marek Vasut
7764d7d653 tools: mkenvimage: List -V parameter in help text
The -V version parameter is missing in the optional list of parameters
in help text. Add it.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-02-10 10:27:01 -06:00
Weijie Gao
6331b8b0c8 mediatek: mt7986: rename pinctrl to pio in mt7986-u-boot.dtsi
The change from pinctrl to pio was missing in mt7986-u-boot.dtsi and will
cause build failure. Now fix it.

Fixes: f1775996ba (mediatek: mt7986: move gpio-controller up and rename pinctrl to pio)
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-10 10:26:54 -06:00
Weijie Gao
a081512cbd pinctrl: mediatek: support reading register base address by name
This patch add support to read register base address by name if
provided.

Also devfdt_get_addr_* is changed to dev_read_addr_* to support DT
live tree.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-10 10:26:47 -06:00
Weijie Gao
d5d130dd12 pinctrl: mediatek: mt7988: remove _base from reg-names
The reg-names in mt7988.dtsi have no _base suffix. Remove the suffix
will also make it match upstream linux format.

Fixes: 8c2cb748ef (pinctrl: mediatek: mt7988: rename reg-names to upstream linux format)
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-10 10:26:47 -06:00
Tom Rini
499386c5eb Azure: Add missing "set -e" to docs job
Without setting the shell flag to exit immediately when a command exists
with a non-zero status we can have the situation where the htmldocs
target fails with an error but the job will succeed due to infodocs
passing and being the last build target.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-10 10:23:25 -06:00
Tom Rini
cfdf18b31b Merge https://source.denx.de/u-boot/custodians/u-boot-samsung
- e850-96 platform updates
2025-02-10 08:45:04 -06:00
Tom Rini
ac3dcb0c27 Merge patch series "cmd/setexpr: support concatenation of direct strings"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

The setexpr.s command allows to concatenate two strings.

According to the description in doc/usage/cmd/setexpr.rst the parameters
value1 and value2 can be either direct values or pointers to a
memory location holding the values.

Unfortunately `setexpr.s <value1> + <value2>` fails if any of the values
is a direct value. $? is set to false.

* Add support for direct values in setexpr.s.
* Correct the unit test for "setexpr.s fred 0".
* Add a new unit test for "setexpr.s fred '1' + '3'" giving '13'.
* Remove invalid memory leak tests

Link: https://lore.kernel.org/r/20250203151029.60265-1-heinrich.schuchardt@canonical.com
2025-02-07 13:35:32 -06:00
Heinrich Schuchardt
af7eca24a7 cmd/setexpr: support concatenation of direct strings
The setexpr.s command allows to concatenate two strings.

According to the description in doc/usage/cmd/setexpr.rst the parameters
value1 and value2 can be either direct values or pointers to a
memory location holding the values.

Unfortunately `setexpr.s <value1> + <value2>` fails if any of the values
is a direct value. $? is set to false.

* Add support for direct values in setexpr.s.
* Correct the unit test for "setexpr.s fred 0".
* Add a new unit test for "setexpr.s fred '1' + '3'" giving '13'.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-07 13:35:23 -06:00
Heinrich Schuchardt
d4265cdcd5 test: remove available memory check in setexpr_test_str_oper()
env_set() frees the previous value after allocating the new value.
As the free() may merge memory chunks the available memory is not
expected to stay constant.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-07 13:35:23 -06:00
Heinrich Schuchardt
b071642636 test: remove available memory check in setexpr_test_str()
env_set() frees the previous value after allocating the new value.
As the free() may merge memory chunks the available memory is not
expected to stay constant.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-07 13:35:23 -06:00
Heinrich Schuchardt
0395d75d6b test: clean up setexpr_test_str()
Assign variable buf in the sub-test where it is used.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-07 13:35:23 -06:00
Tom Rini
7a20c89bd0 Merge patch series "led: add function naming option from linux"
Heiko Schocher <hs@denx.de> says:

In linux we have the option to create the name of a led
optionally through the following properties:

- function
- color
- function-enumerator

This series adds support for parsing this properties if there
is no label property.

Link: https://lore.kernel.org/r/20250128135246.74838-1-hs@denx.de
[trini: Document name parameter in led.h]
2025-02-07 11:39:24 -06:00
Heiko Schocher
592b6f394a led: add function naming option from linux
in linux we have the option to create the name of a led
optionally through the following properties:

- function
- color
- function-enumerator

This patch adds support for parsing this properties if there
is no label property.

The led name is created in led_post_bind() and we need some
storage place for it. Currently this patch prevents to use
malloc() instead it stores the name in new member :

        char name[LED_MAX_NAME_SIZE];

of struct led_uc_plat. While at it append led tests for the
new feature.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-07 10:53:39 -06:00
Heiko Schocher
167bc2cd69 doc: remove redundant leds bindings
remove file doc/device-tree-bindings/leds/common.txt
as we have this now already in
dts/upstream/include/dt-bindings/leds/common.h
which is imported from linux.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-07 10:53:39 -06:00
Tom Rini
c2e00482d0 Merge tag 'xilinx-for-v2025.04-rc2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.04-rc2

fpga:
- Cleanup help
- Show xilinx only options on Xilinx devices

ospi-versal:
- Fix alignment issue
- Fix cadence_qspi_flash_reset() prototype

zynqmp:
- Define usb_pgood_delay
- Fix bootseq number

versal:
- Fix mini_ospi configuration

versal2:
- Enable OPTEE

xilinx:
- Enable some flashes
- Clean up SYS_MALLOC_F_LEN Kconfig
- Some binman fixes
- DT updates
- Enable mkfwumdata compilation
- Enable meminfo command
- Switch to LWIP and enable HTTPS
2025-02-06 08:09:54 -06:00
Sam Day
aa817a2f1f boot: android: handle boot images with missing DTB
607b07554e removed the check on the return status of the
android_image_get_dtb_img_addr call from android_image_get_dtb_by_index,
which results in null pointer accesses shortly after when trying to
check the header of a nonexistent DTB.

Fixes: 607b07554e ("android: boot: move to andr_image_data structure")
Signed-off-by: Sam Day <me@samcday.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250123-android-handle-no-dtb-v1-1-1cb7373247da@samcday.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-02-06 09:09:09 +01:00
Michael Ferolito
dcf1c627cf usb: gadget: g_dnl: Fix NULLPTR dereference when serial# is unset
The current behaviour of this function will dereference a null pointer
if the serial# environment variable is unset. This was discovered on a
board where U-Boot did not have access to the first 256MB of ram,
resulting in a board crash.
In the event that U-Boot has full access to memory, it will still read
from address 0, which is probably not optimal.
This simple check is enough to fix it

Signed-off-by: Michael Ferolito <michaelsunn101@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20250128030945.1219589-1-michaelsunn101@gmail.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-02-06 09:07:24 +01:00
Aashvij Shenai
b3c09eb365 arm64: configs: Remove SYS_BOOTM_LEN for TI devices
AM62x BOOTM_LEN is too small to contain OS images. Removing this sets the
size to a default 0x4000000 (for all arm64 devices).

It is unnecessary to specifically call the default size for the other
configs.

Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com>
Signed-off-by: Aashvij Shenai <a-shenai@ti.com>
2025-02-05 12:45:11 -06:00
Liya Huang
93bcabd9b2 arm: Correct dependency for STATIC_MACH_TYPE
Kconfig should not display the STATIC_MACH_TYPE option when
SUPPORT_PASSING_ATAGS is not selected. For example, when using most
platforms with menuconfig, it shows the STATIC_MACH_TYPE option causing
confusion.  As we know, this should not occur when SUPPORT_PASSING_ATAGS
is not selected

[trini: Reword commit message]
Signed-off-by: Liya Huang <1425075683@qq.com>
2025-02-05 12:43:48 -06:00
Liya Huang
b16e1db2a0 armv7m: kconfig adds the NVIC option and masks the GIC option when NVIC is selected
ARMv7-M architecture uses NVIC instead of GIC.
NVIC is an interrupt controller specially designed for
ARM Cortex-M series processors.

Signed-off-by: Liya Huang <1425075683@qq.com>
2025-02-05 12:43:38 -06:00
Tom Rini
e335f1e3be Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2025-02-05 12:38:50 -06:00
Benjamin Szőke
0f019056b2 zynqmp: Save "bootseq" environment variable in decimal format
In U-Boot, most of mmc releated commands uses decimal value in arguments, like
"mmc dev ${bootseq}" or "bootargs=root=/dev/mmcblk${bootseq}p2". In order to
improve compatibilities, export "bootseq" number to environment variable in
decimal format instead of hex.

Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
Link: https://lore.kernel.org/r/20250204205617.1238-1-egyszeregy@freemail.hu
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Michal Simek
eade90fd00 arm64: zynqmp: Describe images without TF-A
U-Boot can run out of EL3, NS-EL2 and NS-EL1. Currently default
configuration is NS-EL2 with TF-A but when TF-A is not passed and
configured images can still boot just fine. That's why support this
configuration and describe it via binman.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9b3dad80138e97005df3d033b4611c9d7e05a177.1738659214.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
f339584992 arm64: zynqmp: Use DTB address base from .config
CONFIG_XILINX_OF_BOARD_DTB_ADDR holds DTB address which U-Boot is checking.
Currently address in binman match default value but macro can be used
directly.
Also sync node name (s/hash-1/hash/) and sync location to have the same
order load/hash/image.

All binman DTSes are compiled that's why also guard
CONFIG_XILINX_OF_BOARD_DTB_ADDR which depends on OF_BOARD || OF_SEPARATE
which is a problem for mini configurations which are using OF_EMBED.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/a22c9671b965b222bfd419f5bfaee012929f3d88.1738659214.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
89e26b49a9 arm64: zynqmp: Fix TEE loading address and add hash
There is incorrect loading address listed for TEE.
CONFIG_BL32_LOAD_ADDR should be used.
Also there is missing hash for this entry which is present for other nodes.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/4e7e3a7110acc050ea7c06ac661e5b5be46e8602.1738659214.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
6b82252c36 fpga: Make do_fpga_loads() static
do_fpga_loads() is not called from anywhere else that's why make it static.

Reviewed-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cbe93e4eb33752aaddc943b15fd04731d4f75b68.1738574893.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Padmarao Begari
685874939a configs: versal: update initial stack pointer
The mini u-boot is hanging because of an initial stack
pointer address is used at half of the memory, when mini
u-boot is called reloc_fdt() function and doing memcpy()
for the fdt before relocation, and there is no sufficient
memory for the stack pointer. To fix, set an initial stack
pointer address to near the top of memory. The new stack
pointer address is assigned before calling the relocate
of u-boot based on the stack relocate calculation and
this new stack pointer is used while executing u-boot
from the relocated memory.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20250203090409.844403-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Michal Simek
a33b4b96b3 xilinx: Enable MBEDTLS/LWIP/WGET and WGET_HTTPS
Enable lwip and https on our platforms to be able to use it in a boot.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cb05adaf0758c2c4f1361f8665169897493638e7.1738164681.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
8bca6c3de9 xilinx: Enable meminfo command with mapping
Enable meminfo command to be able to see where things are mapped.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/b7f9f5e18e16a945277d4b8cfde5a7f057e77676.1737976295.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
e6f779999a xilinx: Enable mkfwumdata tool for a/b update
Build mkfwumdata tool by default for building ab mdata structure.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6d82c9a2db30e12ea17fa125c68a555d7f070851.1737723845.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Ibai Erkiaga
f8f378877b fpga: add new symbol for fpga_loadb
Adding new symbol for the fpga loadb command which is exclusive to
Xilinx. Default value is y for backward compatibility.

Clarify the type of file used for fpga programming commands

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Link: https://lore.kernel.org/r/20250121130138.1999916-6-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Ibai Erkiaga
ce54f50c9d fpga: xilinx exclusive commands
Ensure all Xilinx exclusive fpga commands have a KConfig symbol and
dependency to FPGA_XILINX listed. Remove (Xilinx only) text from the
help command.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Link: https://lore.kernel.org/r/20250121130138.1999916-5-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Ibai Erkiaga
4937392254 fpga: resort fpga commands
Resort the fpga commands both in the Kconfig and in the source code to
list

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Link: https://lore.kernel.org/r/20250121130138.1999916-4-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Ibai Erkiaga
d2619de211 fpga: improve loads usage information
Current usage information for loads command is too verbose and long for
a command usage prompt. This flag simplifies the text for readability
purposes.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Link: https://lore.kernel.org/r/20250121130138.1999916-3-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Ibai Erkiaga
c0fed34e0e fpga: fix alignment on fpga cmd usage info
The current implementation generates some alignment issues as well as
some overlapping when all the fpga command options are enabled. The fix
is intended to improve readability of the usage info.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Acked-by: Alexander Dahl <ada@thorsis.com>
Link: https://lore.kernel.org/r/20250121130138.1999916-2-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Alexander Dahl
135d2926d2 fpga: Avoid ignored-qualifiers warning
Fixes annoying warnings of the following type when built with W=1 (for
each file including fpga.h):

      CC      drivers/fpga/fpga.o
    In file included from /mnt/data/adahl/src/u-boot/include/xilinx.h:7,
                     from /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:10:
    /mnt/data/adahl/src/u-boot/include/fpga.h:61:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       61 | const fpga_desc *const fpga_get_desc(int devnum);
          | ^~~~~
    /mnt/data/adahl/src/u-boot/include/fpga.h:81:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       81 | const fpga_desc *const fpga_validate(int devnum, const void *buf,
          | ^~~~~
    /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:36:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       36 | const fpga_desc *const fpga_get_desc(int devnum)
          | ^~~~~
    /mnt/data/adahl/src/u-boot/drivers/fpga/fpga.c:53:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
       53 | const fpga_desc *const fpga_validate(int devnum, const void *buf,
          | ^~~~~

Do some type and cast cleanup on that fpga_desc type while at it.

Link: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wignored-qualifiers
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Link: https://lore.kernel.org/r/20250121162213.1477506-1-ada@thorsis.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Michal Simek
c4a7112536 arm64: zynqmp: Describe ethernet controllers via aliases on SOM
Add ethernet aliases to CC (Carrier card) description to create a
connection which is used by fdt_fixup_ethernet() for updating
local-mac-address in DT.
On Kria SOM MAC address is read from i2c eeprom at start and based on it
environment variables are created. Without creating aliases U-Boot is not
able to inject local-mac-address DT property and OS won't get the same MAC
address unless another i2c read is happening in OS.
Also aliases are using string not phandle that's why full path has to be
provided but that shouldn't be a big issue because location of ethernet
controller is fixed.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6d360e71a0530d201578e27a6997dbd472772e39.1737466907.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Prasad Kummari
0184f3eead arm64: zynqmp: enable u-boot itb generation via binman if SPL is enabled
Output images are generated via Binman only if SPL is enabled, as
there is no consumer for them otherwise. An #ifdef check ensures that
when SPL is enabled, Binman generates the U-Boot ITB. If SPL is disabled,
ITB generation is skipped since the ITB format is supported only by SPL.
Without SPL, generating such an image is unnecessary, as it would not be
used

The second reason is that when a DTB is passed, the current logic cannot
handle it without an additional step in U-Boot to parse an appended FIT
image and enable board-specific code to select the correct DTB config.
The MULTI_DTB_FIT configuration should be used if support for multiple
DTBs is required, but SPL is not being used.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/7cba738ae36dacf7d1b0cfbaf13e0c9b3a0df225.1737462296.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Michal Simek
5f87bc16d4 xilinx: Remove SYS_MALLOC_F_LEN setup via board Kconfig
The commit e056892422 ("Kconfig: Change SYS_MALLOC_F_LEN default to
0x2000") already setup default values from board Kconfigs that's why no
reason to duplicate it again.

Fixes: e056892422 ("Kconfig: Change SYS_MALLOC_F_LEN default to 0x2000")
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c3edd75b7a19d5cc205c9d5c37c2d86189ca3de6.1737380025.git.michal.simek@amd.com
2025-02-05 16:22:55 +01:00
Prasad Kummari
e439ed0828 configs: zynqmp: Add usb_pgood_delay for SOM boards
Add usb_pgood_delay to ensure proper detection of USB devices.
Increase the USB power good delay on the SOM boards, as this
is required for certain USB sticks otherwise, they may not
be detected.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Link: https://lore.kernel.org/r/20250107122915.1378284-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Venkatesh Yadav Abbarapu
e5c9c4dd06 spi: cadence_qspi: Add missing prototype for cadence_qspi_flash_reset
Add missing prototype to fix the sparse warning,
warning: no previous prototype for 'cadence_qspi_flash_reset'
[-Wmissing-prototypes].

Fixes: 6d234a79e9 ("cadence_qspi: Refactor the flash reset functionality")
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250122135334.1201562-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Padmarao Begari
1621851495 spi: cadence_qspi: Fix OSPI DDR mode alignment issue
If the least significant bit of the address is set to one when
using the DDR protocol for data transfer then the results are
indeterminate for few flash devices. To fix this the least
significant bit of the address is set to zero.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20250106095120.800753-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Venkatesh Yadav Abbarapu
a1319b5487 arm64: versal2: Enable the OPTEE command
Enable the command OPTEE which runs the basic 'hello world ta'.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250117064556.673369-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Venkatesh Yadav Abbarapu
7b18fe8564 xilinx: Enable support for Infineon Octal flashes
Added support for Infineon Octal flash components on the
Versal and Versal Net platforms.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250116051857.346921-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-02-05 16:22:55 +01:00
Sam Protsenko
16218681a5 board: samsung: e850-96: Provide bootstd default env
Add default environment variables needed for Standard Boot enablement as
described in [1]. Also rework the eMMC partition table for Linux boot so
it only has two partitions:

  1. EFI System Partition (EFI vars, GRUB efi app, firmware files)
  2. rootfs partition (Debian rootfs, /boot, extlinux.conf, boot.scr)

Both partitions are made bootable so that 'bootflow' command can detect
all loader files (rootfs might contain extlinux.conf and boot.scr).

'ldfw' partition is removed too, as ldfw.bin can be loaded from ESP now
(from /EFI/firmware/ldfw.bin).

Android partitons will be added later, once Android boot is actually
enabled for E850-96.

Notes:
  - $kernel_comp_addr_r uses the same address (0x88000000) as LDFW
    buffer (in board/samsung/e850-96/fw.c), but that's fine, as LDFW
    will be copied to another RAM location (Secure World) by SMC
    command, so it's only used temporarily on startup
  - addition assignment (+=) operation is used for $partitions to avoid
    spaces added by newlines, so that $partitions can be used in the
    shell with no quotes

Now it's possible to successfully automatically boot Debian rootfs:

    => env default -f -a
    => env save
    => gpt write mmc 0 $partitions
    => reset

[1] doc/develop/bootstd/overview.rst

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
ccfd8de541 board: samsung: e850-96: Report LDFW loading failures
LDFW firmware loading can fail, e.g. in case if user forgot to upload
the binary to the appropriate location (/EFI/firmware/ldfw.bin on ESP
partition). Report such errors explicitly, so that the user can notice
it early and take necessary actions. But don't return error code from
board_init() in this case, as LDFW firmware is not mandatory for board
operation and is only required for some features like TRNG.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
4d8ccb938d board: samsung: e850-96: Load LDFW from EFI partition
In case when EFI System Partition is present it can be used to store
firmware binaries, instead of keeping those on separate dedicated
partitions. That simplifies the partition table and makes it more
standard. Rework the firmware loader code to look for LDFW binary at
/EFI/firmware/ldfw.bin on ESP first, and if either the partition or the
file doesn't exist -- fallback to reading it from 'ldfw' partition. This
way backward compatibility can be kept, and Android partition tables
without ESP partition can be handled too.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
3040406328 configs: e850-96: Enable Standard Boot
Enable Standard Boot on E850-96 as documented in [1]. Along with
corresponding changes in the default environment and properly prepared
eMMC partitions (ESP and rootfs), it makes it possible to boot Debian
rootfs automatically. All boot methods were tested: efi_mgr, efi,
syslinux and script. The preferred boot method is efi_mgr, which relies
on the configured EFI variables (stored in /ubootefi.var file on ESP
partition), which boots either GRUB from /EFI/debian/grubaa64.efi, or
systemd-boot from /EFI/BOOT/BOOTAA64.EFI. Currently used boot sequence:

  U-Boot -> bootcmd -> 'bootflow scan -lb' -> efi_mgr -> GRUB -> Debian

[1] doc/develop/bootstd/overview.rst

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
922c68563a configs: e850-96: Enable more EFI features
The basic EFI support is already enabled by EFI_LOADER. Follow
SystemReady IR recommendations [1,2] for U-Boot and enable support for
more EFI features. That includes:

  - CONFIG_CMD_BOOTEFI_SELFTEST: support for "bootefi selftest" command
  - CONFIG_CMD_NVEDIT_EFI: support for "env -e" to explore EFI vars
  - CONFIG_CMD_EFIDEBUG: support for "efidebug" command

Also enable RTC support:

  - CONFIG_EFI_SET_TIME
  - CONFIG_CMD_RTC
  - CONFIG_DM_RTC
  - CONFIG_RTC_EMULATION

[1] https://developer.arm.com/documentation/DUI1101/1-1/Configure-U-Boot-for-SystemReady
[2] https://developer.arm.com/documentation/DUI1101/1-1/Test-SystemReady-IR

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
5af19ede0d configs: e850-96: Enable U-Boot environment on eMMC
Store U-Boot environment in BOOT2 HW area of eMMC (/dev/mmcblk0boot1),
as it's currently unused. BOOT1 area will be probably used for storing
low-level bootloaders further, so let's not touch it.

Both primary and redundant environments work fine:

    => env default -f -a
    ## Resetting to default environment
    => env save
    Saving Environment to MMC... Writing to redundant MMC(0)... OK

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Sam Protsenko
4f1dc6f1e1 configs: e850-96: Enable options for updated env
The E850-96 default environment is going to be updated soon, requiring
next config options to be enabled:

  - CONFIG_DEFAULT_FDT_FILE: $fdtfile will use this value
  - CONFIG_PARTITION_TYPE_GUID: $partitions will rely on "type" feature

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2025-02-05 19:15:12 +09:00
Marek Vasut
30a8c830e9 net: miiphybb: Update debug() print
Update the debug() print, use __func__ to always print matching
function name, and also print bus name in case there are multiple
busses.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2025-02-04 23:34:42 +01:00
Marek Vasut
b1001835f1 net: miiphybb: Convert ifdef DEBUG to debug()
Replace ifdeffery with plain debug() function call. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2025-02-04 23:34:37 +01:00
Marek Vasut
8a2ffd5a85 arm64: renesas: Add R-Car S4 Starter Kit support
Add support for the R-Car S4 Starter Kit with R8A779F4 SoC support.
This implementation natively uses OF_UPSTREAM to pull in most recent
DT. The defconfig is derived from S4 Spider, with reduced UART baud
rate to 921600 Bdps. The DT alias to rswitch is removed as the alias
should point to rswitch ports, not to rswitch itself, see [1].

[1] https://lore.kernel.org/linux-arm-kernel/20250118111344.361617-5-marek.vasut+renesas@mailbox.org/

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-02-04 23:32:00 +01:00
Marek Vasut
5392ad2fd9 remoteproc: renesas: Synchronize caches across cores
Explicitly flush icache on the CR52 core before jumping to the next
stage software to make sure it does not contain any invalid content.
Explicitly flash and invalidate dcache on the CA76 core both over the
trampoline buffer and over the CR52 firmware, and then trigger full
system synchronization, to make sure the data surely land in DRAM,
from where the CR52 can surely pick them up.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-02-04 23:32:00 +01:00
Tom Rini
97c125e6bb Gitlab: Add results.xml to the list of artifacts as well.
Whereas with Azure the JUnit results file is available for download,
Gitlab doesn't default to including it as an artifact to download and
only makes it available via its own JUnit parser. Fix this by listing it
as an artifact to save as well.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-04 11:57:36 -06:00
Tom Rini
a20a1e31ba GitLab: Run sandbox on fast amd64 and fast arm64 hosts
Now that we can run sandbox on arm64 hosts, have these jobs run on both
the fast arm64 and amd64 hosts to catch any issues.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-02-04 11:57:36 -06:00
Liya Huang
5cf9e61f0f examples: fix building on arm32
Refer to the commit a3c101a613 ("examples: fix building on arm64")
fix for arm32. crt0.S does not even build with:
    operating system and architecture:
        5.15.0-130-generic x86_64
    installed version of gcc and binutils:
        gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.3)
    GNU ld (GNU Binutils for Ubuntu) 2.34
    used defconfig:
        stm32h750-art-pi_defconfig
    used commands for building:
        export CROSS_COMPILE=arm-none-eabi- ARCH=arm
        make stm32h750-art-pi_defconfig
        make menuconfig # to add
        make
    examples/api/crt0.S: Assembler messages:
    examples/api/crt0.S:32: Error: lo register required -- `ldr ip,=search_hint'
    examples/api/crt0.S:33: Error: lo register required -- `str sp,[ip]'
    examples/api/crt0.S:39: Error: lo register required -- `ldr ip,=syscall_ptr'
    examples/api/crt0.S:40: Error: lo register required -- `ldr pc,[ip]'
    make[2]: *** [scripts/Makefile.build:292:examples/api/crt0.o] Error 1

Use valid register names and instructions.

Signed-off-by: Liya Huang <1425075683@qq.com>
2025-02-04 11:57:36 -06:00
Liya Huang
adeea8568d API: system info adds FLASH and clk fetches
Refer to api/api platform-powerpc.c implementation

Signed-off-by: Liya Huang <1425075683@qq.com>
2025-02-04 11:57:36 -06:00
Heinrich Schuchardt
72bbb645b3 examples: eliminate CONFIG_STANDALONE_LOAD_ADDR
CONFIG_STANDALONE_LOAD_ADDR has been used for examples/standalone
but not for examples/api.

The suitability of an address to load an ELF binary and run it does
not only depend on the architecture but also on the memory layout of
the board which is not reflected in the default value of
CONFIG_STANDALONE_LOAD_ADDR.

Commit 32b7e39db4 ("Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig")
set the default on RISC-V to 0x0 though most boards used 0x80200000
before the patch.

On most boards we can assume 8 MiB of memory available above $loadaddr.
So we can safely use $loadaddr + 4 MiB as load address for the standalone
example and eliminate CONFIG_STANDALONE_LOAD_ADDR altogether.

Fixes: 32b7e39db4 ("Convert CONFIG_STANDALONE_LOAD_ADDR to Kconfig")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-04 11:57:36 -06:00
Heinrich Schuchardt
1df9cbd70f examples/api: improve determination of LOAD_ADDR
The current load address for the 'demo' binary does not work for
qemu_arm_defconfig.

The suitability of an address to load an ELF binary and run it does
not only depend on the architecture but also on the memory layout of
the board.

On most boards we can assume that 8 MiB of memory is available above
$loadaddr. So $loadaddr + 0x400000 should work there.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-02-04 11:57:36 -06:00
Quentin Schulz
881f0b77dc image: apply FDTOs on FDT image node without a load property
A FIT image which is NOT using -E when created by mkimage - that is with
image data within the FIT - will fail to apply FDTO if the base FDT
image node does not specify a load property (which points to an address
in DRAM). This is because we check that the FDT address we want to apply
overlay to (i.e. modify and likely increase in size) is not inside the
FIT and give up otherwise. This is assumed necessary because we may then
overwrite other data when applying in-place.

However, we can do better than giving up: relocating the FDT in another
place in DRAM where it's safe to increase its size and apply FDTOs.

While at it, do not discriminate anymore on whether the data is within
the FIT data address space - that is FIT images created with mkimage -E
- as that still may be susceptible to unintended data overwrites as
mkimage -E simply concatenates all blobs after the FIT. If the FDT blob
isn't the last, it'll result in overwriting later blobs when resizing.

The side effect is that the load property in the FIT is only
temporarily used to load the FDT but then relocated right before we
start applying overlays.

Suggested-by: Marek Vasut <marex@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-02-04 11:57:36 -06:00
Tom Rini
bfaed6969c Merge patch series "mediatek: final preparation for OF_UPSTREAM support"
Christian Marangi <ansuelsmth@gmail.com> says:

This is the last batch of part to push actual support of
OF_UPSTREAM for the mediatek SoC.

The plan is to make the current downstream DTS on part with
upstream implementation so we can permit a gradual transition to
it while we don't cause any regression to any user.

This is to have the same node downstream and upstream.
Mediatek is working hard upstream to also push all the remaining
nodes.

All patch are the final changes after the pinctrl patch
merged previously.

All patch pass CI tests

Link: https://github.com/u-boot/u-boot/pull/731
Link: https://lore.kernel.org/r/20250127134046.26345-1-ansuelsmth@gmail.com
2025-02-04 11:57:36 -06:00
Christian Marangi
c6f8119dc4 arm: dts: mediatek: add PCIe node for MT7981
Add PCIe node for MT7981 with all the required properties to make PCIe
work.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
John Crispin
5fa18e47e4 arm: dts: mediatek: add USB nodes for MT7981
Add USB PHY nodes for MT7981. These are needed for USB support and also
for PCIe support as the u3 PHY can also be used for PHY.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
4d173d4a64 mediatek: mt7981: move gpio-controller up and rename pinctrl to pio
Move gpio-controller up to pinctrl node and rename label to "pio" to
match the label used in upstream kernel linux.

Update any DTS that reference the pinctrl to follow the new naming and
structure.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
cd06e60c44 mediatek: mt7988: move gpio-controller up and rename pinctrl to pio
Move gpio-controller up to pinctrl node and rename label to "pio" to
match the label used in upstream kernel linux.

Update any DTS that reference the pinctrl to follow the new naming and
structure.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
8c2cb748ef pinctrl: mediatek: mt7988: rename reg-names to upstream linux format
Rename reg-names to upstream linux format. Upstream linux drop the
"_base". To make use of upstream DTSI, align to the upstream naming.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
f1775996ba mediatek: mt7986: move gpio-controller up and rename pinctrl to pio
Move gpio-controller up to pinctrl node and rename label to "pio" to
match the label used in upstream kernel linux.

Update any DTS that reference the pinctrl to follow the new naming and
structure.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
08e70f772c pinctrl: mediatek: mt7986: rename reg-names to upstream linux format
Rename reg-names to upstream linux format. Upstream linux drop the
"_base". To make use of upstream DTSI, align to the upstream naming.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Christian Marangi
8b1ea8a4b9 pinctrl: mediatek: mt7981: rename reg-names to upstream linux format
Rename reg-names to upstream linux format. Upstream linux drop the
"_base". To make use of upstream DTSI, align to the upstream naming.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Weijie Gao <weijie.gao@mediatek.com>
Tested-by: Weijie Gao <weijie.gao@mediatek.com>
2025-02-04 10:20:36 -06:00
Tom Rini
3e69c75e86 Merge patch series "vbe: Series part G"
Simon Glass <sjg@chromium.org> says:

This includes the VBE ABrec (A/B/recovery) implementation as well as a
number of patches needed to make it work:

- marking some code as used by SPL_RELOC
- selection of images from a FIT based on the boot phase
- removal of unwanted hash code which increases code-size too much
- a few Kconfig-related additions for VPL

Note: The goal for the next series (part H) is to enable VBE on
rk3399-generic, i.e. able to boot on multiple rk3399-based boards with
only the TPL phase being different for each board.

Link: https://lore.kernel.org/r/20250126184333.4058848-1-sjg@chromium.org/
2025-02-03 16:01:44 -06:00
Simon Glass
f1eb367d76 vbe: Add an implementation of VBE-ABrec
So far only VBE-simple is implemented in U-Boot. This supports a single
image which can be updated in situ.

It is often necessary to support two images (A and B) so that the board
is not bricked if the update is interrupted or is bad.

In some cases, a non-updatable recovery image is desirable, so that the
board can be returned to a known-good state in the event of a serious
failure.

Introduce ABrec which provides these features. It supports three
independent images and the logic to select the desired one on boot.

While we are here, fix a debug message to indicate the function it
called. Provide a maintainers entry for VBE.

Note that fwupdated only supports VBE-simple so far, but supports for
ABrec will appear in time.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
f4415f2a37 vbe: Allow VBE to disable adding loadables to the FDT
When VBE operates within VPL it does not want the FDT to be changed.
Provide a way to disable this feature.

Move the FIT_IMAGE_TINY condition out of spl_fit_record_loadable() so
that both conditions are together. This makes the code easier to
understand.

Replace the existing fit_loaded member, which is no-longer used.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
39a9b033ce vbe: Tidy up a few comments
Join the comment block for the fit_image_load() call back to where it
should be. Also fix a debug statement.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
dab3bbc2b8 vbe: Provide VPL binman-symbols for the next phase
Add support for moving from TPL->VPL->SPL so that the VPL build can fit
properly into the boot flow.

Use #ifdefs to avoid creating unwanted symbols which Binman would then
try (and perhaps fail) to provide.

Add debugging to indicate the next phase.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
384f815d08 vbe: Support providing a linker script
Allow a linker script to be provided for VPL as it is for other U-Boot
phases.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
5c751dc091 lib: Mark gunzip as relocation code
Mark the gunzip code as needed by relocation. This is used to decompress
the next-phase image.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
4ca2970390 lib: Mark memcpy() and memmove() as relocation code
Mark these functions as needed by relocation. These functions are used
to copy data while relocating the next-phase image.

Drop the 'safe' versions from SPL as they are not needed. Change the
static array to a local one, to avoid link errors when trying to access
the data.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
6e5b3d4265 lib: Mark lz4 as relocation code
Mark the lz4 decompression code as needed by relocation. This is used to
decompress the next-phase image.

Drop the 'safe' versions from SPL as they are not needed. Change the
static array to a local one, to avoid a crash errors when trying to
access the data from relocated code. Make this conditional to avoid a
code-size increase when SPL_RELOC is not used/

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
3b52337c75 lib: Mark crc8 as relocation code
Mark the crc8 code as needed by relocation. This is used as a simple
check against corruption of the code when copying.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
0741165f3f spl: Provide a way to mark code needed for relocation
Add a linker symbol which can be used to mark relocation code, so it can
be collected by the linker and copied into a suitable place and executed
when needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
fe71ebbea9 spl: Allow spl_load() to be controlled in any xPL phase
Some phases may wish to use full FIT-loading and others not, so allow
this to be controlled.

Add some debugging while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
5fb647c83e vbe: Support selecting images based on phase in FIT
With SPL we want to specify the phase of the image to be loaded. Add
support for this.

This is the implementation of a FIT feature added to the spec a few
years ago and entails a small code-size increase, about 70 bytes on
Thumb2.

Signed-off-by: Simon Glass <sjg@chromium.org>
Link: https://docs.u-boot.org/en/latest/usage/fit/index.html
2025-02-03 16:01:36 -06:00
Simon Glass
873112db9c spl: Support selecting images based on phase in simple FIT
At present the simple FIT-loader always loads images, ignoring whether
they are intended for the next phase or not.

VBE packages up several images in the same FIT, some destined for VPL
and some for SPL. Add logic to check the phase before loading the
image. Return -EPERM in that case and handle it gracefully.

Fix a unnecessary re-computation of read_offset while here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:01:36 -06:00
Simon Glass
c38b372f35 spl: Avoid including hash algorithms which are not wanted
Update the build rule so that hash algorithms are only included in an
SPL build if they are requested. This helps to reduce code size.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-03 16:01:36 -06:00
Simon Glass
b0407ace97 spl: Adjust debugging and xPL symbols
The size of some malloc() fields has reduced on 64-bit machines, but
the spl_reloc code was not updated. Fix this to avoid a compiler
warning.

Also update for the new xPL naming.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-03 16:00:42 -06:00
Simon Glass
5929c2f39f lib: Allow crc16 code to be dropped
This code is not necessarily needed in VPL, even if SPL uses it, so
adjust the rules to allow it to be dropped.

Do the same for the hash API.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-03 16:00:42 -06:00
Simon Glass
00ae9b2ac3 mmc: Allow controlling DM_MMC for VPL builds
VPL may want to use driver model for MMC even if TPL does not. Update
the rule in this driver to support that.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-02-03 16:00:42 -06:00
Simon Glass
4acbd003d3 sandbox: Update sandbox_vpl to select sha1 and sha256
These algorithms are used in VPL, so enable them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:00:42 -06:00
Simon Glass
117e7cb9f8 mbedtls: Add SHA symbols for VPL
Add some symbols for supporting SHA1 etc. for VPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-02-03 16:00:42 -06:00
Tom Rini
752321b625 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/24428

- RISC-V: Add some fixes
- RISC-V: Integrate OP-TEE into the RISC-V boot flow
- RISC-V: Unify implementation of cleanup_before_linux() for RISC-V
  ports
- RISC-V: cmd: Add bhyve SBI implementation ID
- Board: K1: Probe dram size during boot phase
2025-02-03 08:24:49 -06:00
Yao Zi
faf237d1b4 riscv: cpu: jh7110: fallback to generic cleanup_before_linux()
JH7110 SoC requires no specific handling before entering Linux kernel.
Let's drop the specific implementation to avoid duplication.

Signed-off-by: Yao Zi <ziyao@disroot.org>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 15:26:06 +08:00
Yao Zi
334980f4cf riscv: cpu: generic: fallback to generic cleanup_before_linux()
The current implementation is equivalent to the fallback one, so
this shouldn't change any behaviour but cleans the code up only.

Signed-off-by: Yao Zi <ziyao@disroot.org>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 15:26:06 +08:00
Yao Zi
f88e3b7739 riscv: add a generic implementation for cleanup_before_linux()
Most RISC-V SoCs have similar cleanup_before_linux() functions. Let's
provide a weak symbol as fallback to reduce duplicated code.

Signed-off-by: Yao Zi <ziyao@disroot.org>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 15:26:06 +08:00
Yu-Chien Peter Lin
47d90f6bd3 riscv: dts: binman.dtsi: Include OP-TEE OS image
The following diagram illustrates the boot flow for OP-TEE OS
initialization on RISC-V.

    (1)-----------+
     | U-Boot SPL |
     +------------+
         |
         v
    (2)-------------------------------------------------------------+
     | OpenSBI (fw_dynamic.bin)                                     |
     |                (4)------------------------+                  |
     |                 | optee dispatcher driver |                  |
     +-----------------+-------^---------|-------+------------------+
M-mode   |                     |         |
---------+--[trusted domain]---+----.----+--[untrusted domain]-------
S-mode   |  (coldboot domain)  |    |    |
         v                     |    |    v
    (3)---------------------------+ |(5)----------------------------+
     | OP-TEE OS (tee.bin)        | | | U-Boot (u-boot-nodtb.bin)   |
     +----------------------------+ | +-----------------------------+
                                    |    |
                                    |    v
                                    |(6)----------------------------+
                                    | | Linux                       |
                                    | +-----------------------------+

This patch enables the inclusion of the OP-TEE binary within the
U-Boot ITB, allowing it to be loaded to a platform defined address
by U-Boot SPL.

Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 15:26:00 +08:00
Yu-Chien Peter Lin
99654e1b96 riscv: Add CONFIG_SPL_OPTEE_LOAD_ADDR
Allow specifying load address of OP-TEE binary. It is
recommended that the specified address aligns with the
base address of an PMP-protected NAPOT region and matches
the CFG_TDDRAM_START configuration in OP-TEE.

Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 15:26:00 +08:00
Heinrich Schuchardt
ca3985ff86 cmd: sbi: add bhyve SBI implementation ID
Bhyve is the hypervisor used by FreeBSD.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 11:33:04 +08:00
Heinrich Schuchardt
490be9de22 riscv: AVAILABLE_HARTS is not compatible with XIP
If CONFIG_AVAILABLE_HARTS=y, variable available_harts_lock is created in
the data section which will not be writable while executing from flash.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 11:33:04 +08:00
Huan Zhou
3691fbccfc riscv: spacemit: k1: probe dram size during boot phase.
Implement functionality to probe and calculate the DRAM size
during the boot phase for the RISC-V spacemit K1 platform.

Tested-by: Marcel Ziswiler <marcel@ziswiler.com> # BPI-F3 16G
Signed-off-by: Huan Zhou <me@per1cycle.org>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-02-03 11:33:04 +08:00
Hal Feng
b6d150b949 pinctrl: starfive: Correct driver declaration for starfive_gpio
Use the driver macros so that the driver appears in the
linker list.

Reported-by: Simon Glass <sjg@chromium.org>
Fixes: 732f01aabf ("pinctrl: starfive: Add StarFive JH7110 driver")
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
2025-02-03 11:33:04 +08:00
Michal Simek
2b1c8d3b2d cmd: Fix Kconfig coding style
Some entries are not using tabs for indentation and also help should use
two spaces indentation.

Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-31 11:29:05 -06:00
Weijie Gao
7f95b5d7e6 net: mediatek: fix coding style of AN8855 switch driver
This patch fixed the following coding style suggested by checkpatch.pl:
1. Use tab instead of space
2. Use BIT() instead of <<
3. Use mdelay for long time delay
4. Remove useless parenthesises

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-31 11:29:01 -06:00
Weijie Gao
ea02a07728 pinctrl: mediatek: update mt7981 pinctrl driver based on upstream kernel
Update mt7981 pinctrl driver based on upstream kernel

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-31 11:28:59 -06:00
Neil Armstrong
664a257777 scsi: do not fill the LUN in the second CDB byte
The SCSI specification originally required that the second
Command Data Byte contain the LUN value in its high-order bits,
but this field has been marked as reserved since the SCSI-3 spec
from 1996.

Some vendors uses this byte to pass vendor specific data,
and specifying the LUN can trigger strange behaviors.
For the record, this happened on an UFS device where LUN0 was
working perfectly and reading the other LUNs would get the last
buffer data that was read for LUN0, making this issue very very
hard to debug.

It's sane to assume U-Boot will probably never encounter
an SCSI-2 multi-LUN device, if somehow it happens the enquiry
command would need to get the SCSI level to handle this case.

The Linux fix was added in [1] to fix the exact same issue.

[1] https://lore.kernel.org/all/Pine.LNX.4.44L0.1409021108380.2308-100000@iolanthe.rowland.org/

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-01-31 11:28:55 -06:00
Daniel Schultz
058ed281fa board: phytec: common: k3: Expose product infos to Linux
Call 'phytec_ft_board_fixup' in the common K3 board code
to expose the product name and part number to Linux.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-31 11:08:04 -06:00
Daniel Schultz
9c46b8c4e0 board: phytec: common: Add product information to FTD
ft_board_setup inside the board code allows to alter
device-tree during the boot process.

Introduce a new function for the PHYTEC SOM detection
to read the product name and part number from the EEPROM
content and include both into the device-tree as
* phytec,som-part-number
* phytec,som-product-name

This function can be called from the board code when those
values should be exposed to Linux.

This patch also updates the phytec_print_som_info
function and changes the output.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-31 11:08:04 -06:00
Tom Rini
2beaa34252 configs/am62x_r5_usbdfu.config: More completely disable MMC
As this fragment turns off MMC in both SPL and full U-Boot, we can turn
the whole symbol off rather than just the MMC driver.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-31 11:05:02 -06:00
Stefan Eichenberger
7750b737a7 toradex: tdx-cfg-block: fix switch to user partition
The Toradex configuration block is stored in the first boot partition of
the eMMC. After reading the configuration block, U-Boot switches back to
the user partition. Currently, this operation always targets mmc device
0, even when the configuration block is stored on mmc device 2.

This patch addresses the issue by switching the mmc device set in
CONFIG_TDX_CFG_BLOCK_DEV to the user partition, rather than using the
hardcoded device 0.

Fixes: a2777ecb9d ("toradex: config block handling")
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2025-01-31 11:00:49 -06:00
Tom Rini
a582e48533 Merge tag 'u-boot-stm32-20250131' of https://source.denx.de/u-boot/custodians/u-boot-stm
STM32 MPU:
- Remove dt-bindings headers available in dts/upstream
- Fixes for stm32prog
- Enable CONFIG_SYS_64BIT_LBA for STM32MP15/13/25 defconfigs
- Add upport of ck_usbo_48m in pre-reloc stage for STM32MP13
- Clean env_get_location() for STM32MP1
- Fix board_get_usable_ram_top() to fix infinite loop in cache
  management for STM32MP2.
- Fix ck_flexgen_08 frequency for STM32MP2

STM32 MCU:
- Tune CYCLIC_MAX_CPU_TIME_US to avoid cyclic warning for STM32F469-Disco
- Tune CYCLIC_MAX_CPU_TIME_US to avoid cyclic warning for STM32F769-Disco
2025-01-31 08:32:11 -06:00
Patrice Chotard
84bbb8f59a ARM: dts: stm32: Update ck_flexgen_08 frequency.
Spurious characters are displayed on U-Boot console.
Usart2 clock is ck_flexgen_08 and its frequency is set
to an incorrect value.

Update ck_flexgen_08 frequency from 100MHz to 64MHz.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
6b20aed7cf stm32mp: Fix board_get_usable_ram_top()
mmu_set_region_dcache_behaviour() parameters must be aligned
which is not always the case.
For example for STM32MP2, we stayed stuck inside
mmu_set_region_dcache_behaviour() in an infinite loop because
set_one_region() always return 0 due to start parameter which is
not aligned.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
2a903b0141 configs: stm32f469-disco: Set CYCLIC_MAX_CPU_TIME_US to 50000 for stm32f469-disco
Updating the framebuffer takes quite a long time on this slow patform,
set CYCLIC_MAX_CPU_TIME_US to 50000 for stm32f469-disco to avoid
following cyclic warning:

"cyclic function video_init took too long: 46784us vs 5000us max"

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
c1bb2b62b0 configs: stm32f769-disco: Set CYCLIC_MAX_CPU_TIME_US to 8000 for stm32f769-disco
Updating the framebuffer takes quite a long time on this slow patform,
set CYCLIC_MAX_CPU_TIME_US to 8000 for stm32f769-disco to avoid
following cyclic warning:

"cyclic function video_init took too long: 7280us vs 5000us max"

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
d37641c61b board: st: stm32mp1: Clean env_get_location()
ENV_IS_IN_EXT4 flag is no more used in any STM32 defconfig,
remove the related code.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrick Delaunay
698c92c647 ARM: dts: stm32mp13: Add support of ck_usbo_48m in pre-reloc stage
The clock ck_usbo_48m is a clock source for RCC, so the ck_usbo_48m
clock provided by usbphyc need to be probed when RCC clock driver is
required, in pre-reloc stage.

This patch allow to remove the following warning:

clk_register: failed to get ck_usbo_48m device (parent of usbo_k)

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
f05e4ec4a4 configs: stm32mp25: enable CONFIG_SYS_64BIT_LBA
In arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c, in init_device(),
in case of RAW_IMAGE, part->size = block_dev->lba * block_dev->blksz.

  _ part->size is declared as u64.
  _ block_dev->lba is declared as lbaint_t which is uint64_t
    if CONFIG_SYS_64BIT_LBA is enable, otherwise ulong.
  _ block_dev->blksz is declared as unsigned long.

For example, in case block_dev->lba = 0x1dacc00, block_dev->blksz = 0x200
then part->size 0x5980000 which is incorrect as both are declared as ulong.

To fix this overflow issue, enable CONFIG_SYS_64BIT_LBA, block_dev->lba is
then declared as uint64_t and part->size get the correct value 0x3b5980000.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
1ddd8e5d9b configs: stm32mp15: enable CONFIG_SYS_64BIT_LBA
In arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c, in init_device(),
in case of RAW_IMAGE, part->size = block_dev->lba * block_dev->blksz.

  _ part->size is declared as u64.
  _ block_dev->lba is declared as lbaint_t which is uint64_t
    if CONFIG_SYS_64BIT_LBA is enable, otherwise ulong.
  _ block_dev->blksz is declared as unsigned long.

For example, in case block_dev->lba = 0x1dacc00, block_dev->blksz = 0x200
then part->size 0x5980000 which is incorrect as both are declared as ulong.

To fix this overflow issue, enable CONFIG_SYS_64BIT_LBA, block_dev->lba is
then declared as uint64_t and part->size get the correct value 0x3b5980000.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
d429595f4d configs: stm32mp13: enable CONFIG_SYS_64BIT_LBA
In arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c, in init_device(),
in case of RAW_IMAGE, part->size = block_dev->lba * block_dev->blksz.

  _ part->size is declared as u64.
  _ block_dev->lba is declared as lbaint_t which is uint64_t
    if CONFIG_SYS_64BIT_LBA is enable, otherwise ulong.
  _ block_dev->blksz is declared as unsigned long.

For example, in case block_dev->lba = 0x1dacc00, block_dev->blksz = 0x200
then part->size 0x5980000 which is incorrect as both are declared as ulong.

To fix this overflow issue, enable CONFIG_SYS_64BIT_LBA, block_dev->lba is
then declared as uint64_t and part->size get the correct value 0x3b5980000.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 10:13:10 +01:00
Patrice Chotard
2d774c19f2 arm: stm32mp: stm32prog: update multiplier is part-size is above SZ_1G
Set multiplier to 'G' if part->size if above SZ_1G.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 08:57:39 +01:00
Patrice Chotard
cc8579cc0c arm: stm32mp: stm32prog: fix warning when CONFIG_SYS_64BIT_LBA is enable
If CONFIG_SYS_64BIT_LBA flag is enable, following warning is triggered:

../arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c: In function 'init_device':
../arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c:793:27: warning: format
'%ld' expects argument of type 'long int', but argument 8 has type
'lbaint_t' {aka 'long long unsigned int'} [-Wformat=]
  793 |                 log_debug("MMC %d: lba=%ld blksz=%ld\n", dev->dev_id,
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/log.h:157:21: note: in definition of macro 'pr_fmt'
  157 | #define pr_fmt(fmt) fmt
      |                     ^~~
../include/log.h:182:33: note: in expansion of macro 'log'
  182 | #define log_debug(_fmt...)      log(LOG_CATEGORY, LOGL_DEBUG, ##_fmt)
      |                                 ^~~
../arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c:793:17: note: in expansion
of macro 'log_debug'
  793 |                 log_debug("MMC %d: lba=%ld blksz=%ld\n", dev->dev_id,
      |                 ^~~~~~~~~
../arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c:793:42: note: format string
is defined here
  793 |                 log_debug("MMC %d: lba=%ld blksz=%ld\n", dev->dev_id,
      |                                        ~~^
      |                                          |
      |                                          long int
      |                                        %lld

Cast block_dev->lba to u64 and set the length specifier to %lld which
is ok with or without CONFIG_SYS_64BIT_LBA flag.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 08:57:39 +01:00
Patrice Chotard
eb04f32c9b fastboot: Fix warning when CONFIG_SYS_64BIT_LBA is enable
If CONFIG_SYS_64BIT_LBA is enable, following compilation warning is
triggered:

 CC      drivers/fastboot/fb_mmc.o
../drivers/fastboot/fb_mmc.c: In function 'fb_mmc_erase_mmc_hwpart':
../drivers/fastboot/fb_mmc.c:215:35: warning: format '%lu' expects
argument of type 'long unsigned int', but argument 2 has type
'long long unsigned int' [-Wformat=]
  215 |         printf("........ erased %lu bytes from mmc hwpart[%u]\n",
      |                                 ~~^
      |                                   |
      |                                   long unsigned int
      |                                 %llu
  216 |                dev_desc->lba * dev_desc->blksz, dev_desc->hwpart);
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                              |
      |                              long long unsigned int
../drivers/fastboot/fb_mmc.c: In function 'fb_mmc_boot_ops':
../drivers/fastboot/fb_mmc.c:261:42: warning: format '%lu' expects
argument of type 'long unsigned int', but argument 2 has type
'long long unsigned int' [-Wformat=]
  261 |                 printf("........ wrote %lu bytes to EMMC_BOOT%d\n",
      |                                        ~~^
      |                                          |
      |                                          long unsigned int
      |                                        %llu
  262 |                        blkcnt * blksz, hwpart);
      |                        ~~~~~~~~~~~~~~
      |                               |
      |                               long long unsigned int

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Acked-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2025-01-31 08:57:39 +01:00
Patrick Delaunay
2599223fa7 stm32: remove dt-binding headers that are available upstream
Some dt-binding headers mask the upstream ones which can lead to build
failures, or worse: super weird bugs, if they get out of sync.

Remove these headers so our devicetree and binding headers will both be
in sync with upstream.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2025-01-31 08:46:51 +01:00
Marek Vasut
487b254702 net: phy: Add RGMII RX/TX delay handling to DP83822 PHY
The TI DP83822 does have support for configurable RGMII RX/TX clock
shift, add support for parsing DT properties which describe the RX/TX
clock shift configuration and configuration of the matching bits in
RCSR register.

The shift is only configurable on DP83822, the other PHYs supported
by this PHY driver, namely DP83825/DP83826 variants, do not implement
this functionality and the RCSR bits used to configure the clock shift
are missing from those PHYs.

The shift is configurable separately for RX and TX path. Each path can
either enable the shift or disable the shift using single bit. In case
the shift is disabled, a delay of 0ns is added to the path, otherwise
a delay of 3.5ns is added to the path.

Note that the two RCSR bits 11 and 12 have inverted logic, RCSR bit 12
enables RX internal shift when SET, while RCSR bit 11 enables TX shift
when UNSET.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-30 19:28:33 -06:00
Tom Rini
ac3eeb1542 Merge patch series "Add support for MediaTek MT7987 SoC"
Weijie Gao <weijie.gao@mediatek.com> says:

This patch series add support for MediaTek MT7987 SoC with its reference
boards and related drivers.

This patch series add basic boot support on eMMC/SD/SPI-NOR/SPI-NAND for these
boards. The clock, pinctrl drivers and the SoC initializaton code are also
included.

Link: https://lore.kernel.org/r/cover.1737621362.git.weijie.gao@mediatek.com
2025-01-30 14:35:30 -06:00
Weijie Gao
c80a3fb961 board: mediatek: add MT7987 reference boards
This patch adds general board files based on MT7987 SoC.

MT7987 uses one mmc controller for booting from both SD and eMMC, and the
pins of mmc controller are also shared with one spi controller.
So three configs are need for these boot types:

1. mt7987_rfb_defconfig - SPI-NOR (spi2) and SPI-NAND (spi0)
2. mt7987_emmc_rfb_defconfig - eMMC + SPI-NOR (spi2)
3. mt7987_sd_rfb_defconfig - SD + SPI-NOR (spi2)

Note: spi2 also supports booting from SPI-NAND, but not the default option.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-30 14:35:14 -06:00
Weijie Gao
2d6962e061 arm: mediatek: add support for MediaTek MT7987 SoC
This patch adds basic support for MediaTek MT7987 SoC.
This includes files that will initialize the SoC after boot and
its device tree.

In order to maximize the continuous usable  memory space, MT7987 has its
ATF BL31 loaded at the top of RAM. Since u-boot will also locate itself to
top of RAM, u-boot will read the actual memory region of BL31 and set
correct gd->ram_top to avoid u-boot overlapping with BL31.

As now support for mt7987 hasn't been submitted to linux kernel, all dts
filed will be put to arch/arm/dts. They'll be removed after successfully
being merged by linux kernel, and OF_UPSTREAM will also be switched on.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-30 14:35:14 -06:00
Weijie Gao
e5d20906f7 mmc: mediatek: add support for MediaTek MT7987 SoCs
This patch adds eMMC/SD support for MT7987 SoC

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-30 14:35:14 -06:00
Weijie Gao
21fb382845 pinctrl: mediatek: add pinctrl driver for MT7987 SoC
This patch adds pinctrl and gpio support for MT7987 SoC

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-30 14:35:14 -06:00
Weijie Gao
ece4e5804f clk: mediatek: add clock driver support for MediaTek MT7987 SoC
This patch adds clock driver support for MediaTek MT7987 SoC

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-30 14:35:14 -06:00
Simon Glass
5e46a06950 test/py: Add a report show test durations
Execution time varies widely with the existing tests. Provides a way to
produce a summary of the time taken for each test, along with a
histogram.

This is enabled with the --timing flag.

Enable it for sandbox in CI.

Example:

   Duration : Number of tests
   ======== : ========================================
       <1ms :  1
       <8ms :  1
      <20ms : # 20
      <30ms : ######## 127
      <50ms : ######################################## 582
      <75ms : ####### 102
     <100ms : ## 39
     <200ms : ##### 86
     <300ms : # 29
     <500ms : ## 42
     <750ms : # 16
      <1.0s : # 15
      <2.0s : # 23
      <3.0s :  13
      <5.0s :  9
      <7.5s :  1
     <10.0s :  6
     <20.0s :  12

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-30 14:34:51 -06:00
Tom Rini
9f5d1863e9 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2025-01-29 19:06:55 -06:00
Marek Vasut
e0df073bc0 arm64: renesas: Deduplicate R-Car Gen3 and Gen4 SPL
Move R-Car Gen3 and Gen4 jump_to_image_no_args() into dedicated
rcar64-spl.c file. The implementation of jump_to_image_no_args()
is identical. No functional change.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
a75792914f arm64: renesas: Deduplicate board_early_init_f()
Introduce common weak board_early_init_f() in rcar64-common.c
which is the default implementation in case there is no other
board specific board_early_init_f(). Remove board_early_init_f()
from Salvator-X, ULCB and Draak boards where this function is
empty.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
4d12216904 arm64: renesas: Drop unused code and clean up headers on ULCB boards
CONFIG_IS_ENABLED(SYS_I2C_LEGACY) is not set on this board,
remove the code and also remove all unnecessary headers that
are included in this file.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
b76268ad32 arm64: renesas: Drop unused code and clean up headers on Salvator-X boards
CONFIG_IS_ENABLED(SYS_I2C_LEGACY) is not set on this board,
remove the code and also remove all unnecessary headers that
are included in this file.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
caae2d7025 arm64: renesas: Drop unused code and clean up headers on R-Car D3 Draak
CONFIG_IS_ENABLED(SYS_I2C_LEGACY) is not set on this board,
remove the code and also remove all unnecessary headers that
are included in this file.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
2e5e4e251a ARM: renesas: Rename common/common.c to common/rcar64-common.c
The common.c content is specific to 64-bit R-Car SoCs, rename
the file to rcar64-common.c and remove R-Car 64-bit ifdeffery
in the file. No functional change.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
c7d2d7f90a ARM: renesas: Simplify board Makefiles
Introduce board/renesas/common/Makefile and remove the multiple
duplicate copies of obj := ../common/*.o from board Makefiles.
Let the build system include the common Makefile using the
HAVE_VENDOR_COMMON_LIB and build the common objects that are
shared by all the boards that way. No functional change intended.

Some of the remaining board files which include board specific
settings have been updated to use obj-y += to avoid rewriting
the board obj-y target and avoid dropping object files from the
build.

The board/renesas/common/Makefile is now also used when building
RZG2L targets which also set CONFIG_RCAR_64 symbol and 32bit R-Car
Gen2 targets, however, this common code is specific to 64bit R-Car
only. Inhibit the build of this common code for RZG2L using extra
ifndef CONFIG_RZG2L and do not include any code for R-Car Gen2 so
far.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-29 22:52:35 +01:00
Marek Vasut
5a287cf07a ARM: renesas: Drop R8A779A0 V3U Falcon SPL Makefile entry
The SPL on R-Car V3U Falcon is never built, remove the Makefile entry.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-29 22:52:35 +01:00
Marek Vasut
68abd1c308 ARM: renesas: Rename board/renesas/rcar-common to board/renesas/common
Rename directory board/renesas/rcar-common to board/renesas/common and
move files. This allows the build system to use HAVE_VENDOR_COMMON_LIB
which automatically includes board/$(VENDOR)/common/Makefile . Create
temporarily empty board/renesas/common/Makefile to be extended with
actual content later in this series. This is a preparatory patch for
board Makefile simplification. No functional change so far.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:35 +01:00
Marek Vasut
d624a3e9ab net: miiphybb: Fix short name length
Multiple drivers copy the MDIO instance name from struct mii_phy to
struct bb_miiphy_bus, but the name field in these two structs have
different lengths, the bb_miiphy_bus one is 16 bytes, the source one
is 32 bytes. Make sure these two lengths are always synchronized, use
MDIO_NAME_LEN for both.

Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-29 22:52:24 +01:00
Marek Vasut
25f19f4158 net: ravb: Staticize bb_miiphy functions
These functions can be static as they are referenced only in this file.
Make them static. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2025-01-29 22:52:23 +01:00
Marek Vasut
4cf712a3be net: miiphybb: configs: Drop CONFIG_BITBANGMII_MULTI
It seems that every remaining system which enables BITBANGMII also
enables BITBANGMII_MULTI . Remove the BITBANGMII_MULTI symbol and
assume it is always enabled. This allows removal of a bit of legacy
code. No functional change intended.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2025-01-29 22:52:23 +01:00
Tom Rini
021baf7b08 Merge tag 'tpm-master-28012025' of https://source.denx.de/u-boot/custodians/u-boot-tpm
CI: https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/24375

We have use cases where a previous stage boot loader doesn't have any
TPM drivers. Instead of extending the hardware PCRs it produces an
EventLog that U-Boot later replays on the hardware.

The only real example we have is TF-A, which produces the EventLog using
hashing algorithms created at compile time. This creates a problem to the
TPM since measurements need to extend all active PCR banks. Up to now
we were exiting refusing the extend measurements.

TPMs can be instructed to change their active PCR banks, as long as the
device resets immediately after a reconfiguration. This PR is adding
that functionality. U-Boot can now scan the currently active TPM PCR
banks, the ones it was compiled to support and the ones present in an
EventLog. It the reconfigures the TPM on the fly with the correct algorithms.
2025-01-29 08:12:21 -06:00
Tom Rini
75125f392d Merge tag 'ubifixes-for-2025.01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-ubi
CI: https://dev.azure.com/hs0298/hs/_build/results?buildId=169&view=results

ubi changes for v2025.01-rc2

- ubifs: Remove unnecessary assignment
  from Michal Simek
2025-01-29 08:10:45 -06:00
Tom Rini
ecbd635367 configs: use syntax CONFIG_FOO=n in tools-only_defconfig again
As explained in commit c2cd7bd3ec ("configs: use syntax CONFIG_FOO=n
in tools-only_defconfig") we need to not use the "# CONFIG_FOO is not
set" syntax here in order to work correctly on OSes where cpp comes
ffrom LLVM.

Fixes: 867e16ae05 ("configs: Resync with savedefconfig")
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-29 08:08:52 -06:00
Tom Rini
a2b489b170 Merge https://source.denx.de/u-boot/custodians/u-boot-marvell
CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=389&view=results
- kirkwood: Enable bootstd and other modernization for OpenRD boards
  (Tony)
- board: solidrun: clearfog: enable ddr odt0 on write for both
  chip-select (Josua)
- configs: mvebu_espressobin_ultra-88f3720_defconfig: enable full
  bootflow functionality (Ben)
- Initial support for PXA1908 and samsung-coreprimevelte (Duje)
2025-01-28 08:10:08 -06:00
Duje Mihanović
5983f0ff61 board: samsung: add initial support for coreprimevelte board
Samsung Galaxy Core Prime VE LTE is an entry-level PXA1908-based
smartphone. It has 1GB of DRAM, 8GB eMMC and USB connectivity.

Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Duje Mihanović
08b27fce29 arm: mmp: add initial support for PXA1908 SoC
Add initial support for Marvell PXA1908. The SoC has 4 Cortex-A53 cores,
a GC7000UL GPU and a variety of peripheral controllers.

Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Duje Mihanović
2d84e1519c serial: ns16550: Add Intel XScale support
Add compatible string for the Intel XScale variant of the 16550. Needed
to match upstream.

Signed-off-by: Duje Mihanović <duje.mihanovic@skole.hr>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Ben Schneider
e344dc4b11 configs: mvebu_espressobin_ultra-88f3720_defconfig: enable full bootflow functionality
This appliance has multiple devices from which it can boot. Enable full
bootflow functionality so users can choose a non-default boot device.

Signed-off-by: Ben Schneider <ben@bens.haus>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Josua Mayer
d09f199097 board: solidrun: clearfog: enable ddr odt0 on write for both chip-select
Enabling ODT is required to suppress reflection of the data signal on
DDR write operation. SolidRun Armada 388 SoM only connects M_ODT[0] even
when both chip-select are used.

Enable ODT[0] for both chip-select during write only.

Original work by Baruch Siach [1] and Chris Packham [2].

[1] aba763a611
[2] dbaf09590d

Signed-off-by: Josua Mayer <josua@solid-run.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Tony Dinh
116d1d0047 arm: kirkwood: Enable bootstd and other modernization for OpenRD boards
Enable bootstd for OpenRD boards
Update defconfigs to the latest u-boot requirements
Remove JFFS2 support. See JFFS2 Vulnerability[1].
Move default envs to text-base environment

[1] https://lore.kernel.org/u-boot/20241114233005.GN3600562@bill-the-cat/T/#m2fc25da1d2c019bc3cd8676991fdd64b8a21aa9b

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-28 09:08:44 +01:00
Raymond Mao
8895ff8ae2 tpm: get tpm event log from bloblist
Get tpm event log from bloblist instead of FDT when bloblist is
enabled and valid from previous boot stage.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 09:09:32 +02:00
Raymond Mao
afe26a74dd tcg2: decouple eventlog size from efi
Move default eventlog size from efi to tpm for using in both
efi and measured boot.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:59:23 +02:00
Raymond Mao
bb894c5da5 bloblist: add api to get blob with size
bloblist_find function only returns the pointer of blob data,
which is fine for those self-describing data like FDT.
But as a common scenario, an interface is needed to retrieve both
the pointer and the size of the blob data.

Add a few ut test cases for the new api.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:59:21 +02:00
Raymond Mao
b8eaa52612 board: qemu-arm: select TPM_PCR_ALLOCATE
Enable PCR allocate and system reboot when algorithms don't match
among the values from TPM device, U-Boot support and evenlog.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Raymond Mao
e7e166dabf tpm: PCR allocate during PCR extend to disable the unsupported algorithms
During PCR extend process, if any unsupported algorithms are active,
try to use PCR allocate to inactivate them.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Raymond Mao
d487c3283c tpm: add PCR allocate into the eventlog handling
Get eventlog bank mask when parsing the eventlog from previous
boot stage and invoke PCR allocate function based on it.
PCR allocate will be proceeded if any dismatches observed among
the active, supportted and eventlog bank masks to re-configurate
the TPM with the proper algorithms and reboot the system.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Raymond Mao
b6228b2e78 tpm: add wrapper and helper APIs for PCR allocate
Add PCR allocate wrapper APIs for using in tcg2 protocol.
The wrapper proceeds a PCR allocate command, followed by a
shutdown command.
A system boot is required after two commands since TPM device needs
a HW reset to activate the new algorithms config.
Also, a helper function is included to determine the new bank mask
for PCR allocation by combining the status of current active,
supported and eventlog bank masks.
A new kconfig is created. PCR allocate and system reboot only
happens when the kconfig is selected, otherwise just exit with
errors.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Raymond Mao
9d2bc92ba7 tpm: add TPM2_PCR_Allocate command
TPM2_PCR_Allocate command is required to reconfigure a TPM device
to enable or disable algorithms in run-time, thus this patch introduces
the implementation of PCR allocate APIs and adds related cmd functions
for testing.

To test the feature, ensure that TPM is started up.
Run pcr_allocate command to turn on/off an algorithm, multiple calls
are supported and all changes will be cached:
`tpm2 pcr_allocate <algorithm_name> <on|off>`
Run startup command with argument 'off' to shutdown the TPM.
`tpm2 startup TPM2_SU_CLEAR off`
Reboot the board via `reset` to activate the changes.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Raymond Mao
6d8e52a6e3 tpm: add TPM2_Shutdown command
TPM2_shutdown command is sharing same structure and logics with
TPM2_startup, thus this patch extends the existing startup APIs and
cmd functions to support shutdown instead of created new ones.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-28 08:58:41 +02:00
Michal Simek
14e02d6c61 fs: ubifs: Remove unnecessary assignment
Variable self assignment has been found by clang. But Linux kernel already
fixed this problem by commit 2a068daf5742 ("ubifs: Remove unnecessary
assignment") and commit ae4c8081eb77 ("ubifs: remove unnecessary
assignment").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2025-01-28 06:44:18 +01:00
Tom Rini
a517796cfa Prepare v2025.04-rc1
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-27 16:38:46 -06:00
Santhosh Kumar K
5a42996c49 ram: k3-ddrss: Set SDRAM_IDX using device private data, ddr_ram_size
The SDRAM_IDX in DDRSS_V2A_CTL_REG describes the number of address bits
minus 16 that are used to determine the mask used to detect memory
rollover and prevent aliasing and false coherency issues.

Set SDRAM_IDX using the device private data, ddr_ram_size for K3 family
of SoCs.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2025-01-27 13:26:00 -06:00
Tom Rini
b39b3c9a43 Merge tag 'u-boot-imx-master-20250127' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/24366

- Refactor the imx pinctrl driver.
- Enable optional ENETREF clock on i.MX95
- Remove optional from tee-os entry on the i.MX8M u-boot devicetrees.
2025-01-27 12:46:48 -06:00
Marek Vasut
082b41df8a test/cmd/wget.c: Fix loadaddr rewrite
The $loadaddr variable is a hexadecimal value, not a string, it must be
assigned using env_set_hex(). This may break follow up tests, like the
dm_test_cmd_hash_md5 in CI. To avoid any interference with other tests,
set $wgetaddr variable which is specific to this test and use it in the
test.

Fixes: 20f641987f ("test/cmd/wget.c: move net_test_wget() to the cmd test suite")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2025-01-27 12:46:44 -06:00
Marek Vasut
219b048820 net: fsl_enetc: Enable optional ENETREF clock on i.MX95
The ENETCv4 port DT nodes on i.MX95 may contain optional clock phandle
to IMX95_CLK_ENETREF "ref" clock. These "ref" clock must be enabled for
the ethernet to work. These "ref" clock are enabled after cold boot, but
when the system booted Linux and rebooted, those "ref" clock might have
been disabled in the process, which would make ethernet inoperable after
reboot. Make sure those "ref" clock are always correctly enabled.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-27 00:27:54 -03:00
Tom Rini
d8a7100d65 Subtree merge tag 'v6.13-dts' of dts repo [1] into dts/upstream
[1] https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git

[rockchip fixes from Jonas Karlman via IRC]
2025-01-26 16:19:33 -06:00
Tom Rini
844493d7e9 Squashed 'dts/upstream/' changes from 9b6ba2666d63..8531b4b4988c
8531b4b4988c Merge tag 'v6.13-rc7-dts-raw'
4dc7423c0128 Merge tag 'char-misc-6.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
a8433d3afa99 Merge tag 'soc-fixes-6.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
232823fd4930 Merge tag 'drm-fixes-2025-01-11' of https://gitlab.freedesktop.org/drm/kernel
ddf448187a99 Merge tag 'v6.13-rockchip-dtsfixes1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
326341ea6a5a Merge tag 'mediatek-drm-fixes-20250104' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes
c817d4d4421f Merge tag 'imx-fixes-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
be9c0a553356 Merge tag 'qcom-arm64-fixes-for-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
6d09f4fb518a arm64: dts: rockchip: add hevc power domain clock to rk3328
d1aa06cb62af dt-bindings: net: pse-pd: Fix unusual character in documentation
5ffa3ec7f447 arm64: dts: rockchip: Fix the SD card detection on NanoPi R6C/R6S
f4dbf6bea17a Merge tag 'v6.13-rc6-dts-raw'
136084c9071b Merge tag 'drm-misc-fixes-2025-01-02' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
5f6a873e4c1f dt-bindings: display: mediatek: dp: Reference common DAI properties
6ff7bb898acb Merge tag 'v6.13-rc5-dts-raw'
f8bafac28c32 Merge tag 'sound-6.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
fc831d50be9f arm64: dts: qcom: sa8775p: fix the secure device bootup issue
029bcca18358 Merge tag 'v6.13-rc4-dts-raw'
f20911601a36 Merge tag 'devicetree-fixes-for-6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
8f7fab85f2a7 Merge tag 'soc-fixes-6.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
32d1c97c87fb Merge tag 'arm-soc/for-6.13/devicetree-arm64-fixes' of https://github.com/Broadcom/stblinux into arm/fixes
691b34dd7d9f dt-bindings: display: adi,adv7533: Drop single lane support
62da87b44171 Revert "arm64: dts: qcom: x1e80100: enable OTG on USB-C controllers"
11d19fa272bb Revert "arm64: dts: qcom: x1e80100-crd: enable otg on usb ports"
afdfc5f25296 arm64: dts: broadcom: Fix L2 linesize for Raspberry Pi 5
33793000f4a4 arm64: dts: qcom: x1e80100: Fix up BAR space size for PCIe6a
5d5a71565a1c Revert "arm64: dts: qcom: x1e78100-t14s: enable otg on usb-c ports"
5f53f8bb69d2 Merge tag 'soc-fixes-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
b4d2d007bfdf Merge tag 'iio-fixes-for-6.13a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus
8ffbadf01db0 ASoC: dt-bindings: realtek,rt5645: Fix CPVDD voltage comment
008abf9e254a Merge tag 'v6.13-rc3-dts-raw'
a8fc9cf94eb5 Merge tag 'arc-6.13-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
2c35fa0d488f Merge tag 'usb-6.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
3e232d1e666c ARC: dts: Replace deprecated snps,nr-gpios property for snps,dw-apb-gpio-port devices
f745a9511362 Merge tag 'juno-fix-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes
fbf5077068b9 regulator: dt-bindings: qcom,qca6390-pmu: document wcn6750-pmu
37ab64667e47 ARM: dts: imxrt1050: Fix clocks for mmc
dab0a5e156fb arm64: dts: imx95: correct the address length of netcmix_blk_ctrl
7eae94b44a89 Merge tag 'v6.13-rc2-dts-raw'
e78a7e2b0cd7 arm64: dts: imx8-ss-audio: add fallback compatible string fsl,imx6ull-esai for esai
45813ccd2a7b dt-bindings: iio: st-sensors: Re-add IIS2MDC magnetometer
1946afa68c64 Merge tag 'pmdomain-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
f1f0da779072 Merge tag 'linux-watchdog-6.13-rc1' of git://www.linux-watchdog.org/linux-watchdog
d763929c7513 arm64: dts: fvp: Update PCIe bus-range property
54996f58c80e dt-bindings: phy: imx8mq-usb: correct reference to usb-switch.yaml
b1aa978c13bf dt-bindings: mtd: fixed-partitions: Fix "compression" typo
bdb818f3713b arm64: dts: rockchip: rename rfkill label for Radxa ROCK 5B
63c1a08a6ade arm64: dts: rockchip: add reset-names for combphy on rk3568
ba53ae02e092 dt-bindings: power: mediatek: Add another nested power-domain layer
07d0c70010a5 Merge tag 'v6.13-rc1-dts-raw'
5637b45be13b arm64: dts: qcom: sa8775p: Fix the size of 'addr_space' regions
9b262efab34c Merge tag 'i2c-for-6.13-rc1-part3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
ed44ac60a90e Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
edfdcfeb9045 Merge tag 'rtc-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
a814b904106d Merge tag 'tty-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
bbb47e849ae5 Merge tag 'char-misc-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
e63bdbcacef6 Merge tag 'staging-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
f19ac76126e4 Merge tag 'usb-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
556f16e8ae4c Merge tag 'mips_6.13_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
5e598b221885 Merge tag 'regulator-fix-v6.13-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
1206af144c4a Merge tag 'for-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
4b78bb4b845e Merge tag 'pm-6.13-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
2b75cf774b29 Merge tag 'phy-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
ea19b796a46c Merge tag 'dmaengine-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
1133f1ec2065 Merge tag 'riscv-for-linus-6.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
746c372b8ad6 Merge tag 'loongarch-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
4fed1a0b1885 Merge branch 'pm-opp'
fc3ef2d2a08a Merge tag 'kvm-riscv-6.13-2' of https://github.com/kvm-riscv/linux into HEAD
211c1fea1d18 Merge tag 'riscv-for-linus-6.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux into HEAD
5bbcb87b4e8a dt-bindings: Unify "fsl,liodn" type definitions
11712cccac6a arm64: dts: mediatek: mt8173-elm-hana: Mark touchscreens and trackpads as fail
3412036f44ec Merge tag 'rproc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
f6916ccc6810 Merge tag 'pci-v6.13-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
c8ac80d24539 LoongArch: dts: Add I2S support to Loongson-2K2000
78c8af2e4435 LoongArch: dts: Add I2S support to Loongson-2K1000
dd845634778c Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
c371d27c22df Merge tag 'mailbox-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
318d6ab86b21 Merge tag 'pinctrl-v6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
593d0bf860b6 Merge tag 'i2c-for-6.13-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
e958eeea5d92 Merge branch 'pci/controller/qcom'
801c1432c854 Merge branch 'pci/controller/microchip'
eae7c4992556 Merge tag 'input-for-v6.13-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
fe51d1a81fe8 dt-bindings: mailbox: Add thead,th1520-mailbox bindings
d117c6077557 dt-bindings: mailbox: qcom-ipcc: Add SM8750
a5d0d60dc7b1 dt-bindings: mailbox: qcom,apcs-kpss-global: correct expected clocks for fallbacks
8abe9b373f38 dt-bindings: mailbox: qcom-ipcc: Add SAR2130P compatible
81b4a2d4a0c3 dt-bindings: mailbox: mpfs: fix reg properties
a45ebe5f9f40 dt-bindings: i2c: snps,designware-i2c: declare bus capacitance and clk freq optimized
2ee96fbc8c27 dt-bindings: i2c: nomadik: support 400kHz < clock-frequency <= 3.4MHz
a0589920dc8b dt-bindings: i2c: nomadik: add mobileye,eyeq6h-i2c bindings
35d18ffaacbc dt-bindings: i2c: mv64xxx: Add Allwinner A523 compatible string
ca13487bccee MIPS: Loongson64: DTS: Really fix PCIe port nodes for ls7a
dada4910fa78 Merge tag 'iommu-updates-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
a97f5234955e Merge tag 'thermal-6.13-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
89534c5c0ee3 Merge tag 'pm-6.13-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
eb0295acbf42 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
c299ef125ca8 Merge tag 'backlight-next-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
65a2f98075d6 Merge tag 'leds-next-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
b6fddbbdea9e Merge tag 'mfd-next-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
590065c0905d Merge tag 'drm-next-2024-11-21' of https://gitlab.freedesktop.org/drm/kernel
dc4900bf152f Merge tag 'sound-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
5d1a70ddfc54 Merge tag 'i2c-for-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
c6ee89ab9656 Merge tag 'net-next-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
4535ffa44df9 dt-bindings: riscv: Add Svade and Svadu Entries
c8aedfade1c8 Merge tag 'soc-drivers-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
61b798afa773 Merge tag 'soc-dt-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
37c659acf984 mips: dts: realtek: Add SPI NAND controller
94d5730e0e14 Merge tag 'media/v6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
e6d79eee5678 Merge tag 'hid-for-linus-2024111801' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
f787d015b4d0 Merge tag 'devicetree-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
bf1e79882185 Merge tag 'mmc-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
a2fa4706a249 Merge tag 'pmdomain-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
bff422d6c9a5 Merge tag 'gpio-updates-for-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
f198cc9328e2 Merge tag 'pwm/for-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
b5f1623d4cf5 Merge tag 'spi-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
0fb4cce57122 Merge tag 'regulator-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
f78409f8ed71 Merge tag 'timers-core-2024-11-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
f9da6fbe19f3 Merge tag 'irq-core-2024-11-18' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
d899fe1de24b Merge tag 'thermal-v6.13-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux
2fc3f7277835 Merge tag 'opp-updates-6.13' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
7e7b0e62a08d Merge tag 'cpufreq-arm-updates-6.13' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
092aa09090cc Merge tag 'edac_updates_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
5122a15a7641 Merge tag 'hwmon-for-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
3707c212dfd4 Merge tag 'v6.13-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
406bc7dd4a19 dt-bindings: regulator: qcom-labibb-regulator: document the pmi8950 labibb regulator
8c237be9ce96 arm64: dts: apm: Remove unused and undocumented "bus_num" property
013cc605fbdd arm: dts: spear13xx: Remove unused and undocumented "pl022,slave-tx-disable" property
92cd6f965727 arm64: dts: amd: Remove unused and undocumented "amd,zlib-support" property
054fb11029ed Merge tag 'sunxi-fixes-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
0813b7768a18 Merge branches 'clk-marvell', 'clk-adi', 'clk-qcom' and 'clk-devm' into clk-next
732a2ef869ae Merge branches 'clk-samsung', 'clk-microchip', 'clk-imx', 'clk-amlogic' and 'clk-allwinner' into clk-next
9c8d2f73021e Merge branches 'clk-mobileye', 'clk-twl', 'clk-nuvoton', 'clk-renesas' and 'clk-bindings' into clk-next
e5eb1f3324f9 Merge branches 'clk-cleanup', 'clk-mediatek', 'clk-kunit', 'clk-xilinx' and 'clk-fixed-gate' into clk-next
bfaae6ff9e59 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
68283c980cd9 Merge tag 'mips_6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
79bfc7441791 Merge tag 'for-6.13/block-20241118' of git://git.kernel.dk/linux
0c01c94ca0e4 Merge tag 'ata-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
3a3ade96051d dt-bindings: net: renesas,ether: Drop undocumented "micrel,led-mode"
26283f99abfc Merge branch 'for-6.13/goodix' into for-linus
94a60aceafae Merge tag 'asoc-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
494ff953c027 Merge tag 'i2c-host-6.13-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
c53be2ce2415 arm64: dts: qcom: sc8180x: Add a SoC-specific compatible to cpufreq-hw
2b8e420a3270 dt-bindings: cpufreq: cpufreq-qcom-hw: Add SC8180X compatible
6596841d5093 dt-bindings: i2c: Add Realtek RTL I2C Controller
bca673ba1132 dt-bindings: i2c: imx: add SoC specific compatible strings for S32G
4526cf8d2335 dt-bindings: i2c: microchip: corei2c: Add PIC64GX as compatible with driver
5aeeb0598129 dt-bindings: i2c: qcom-cci: Document SDM670 compatible
54f022df57b2 dt-bindings: usb: maxim,max33359: add usage of sink bc12 time property
1ed83030fdb3 dt-bindings: connector: Add time property for Sink BC12 detection completion
85167dc2ae25 dt-bindings: remoteproc: qcom,sm8350-pas: add SAR2130P aDSP compatible
83bca830540d dt-bindings: remoteproc: qcom,sm8550-pas: Add SM8750 ADSP
2bdefd8183a1 dt-bindings: net: dsa: microchip,ksz: Drop undocumented "id"
6eb17b2bd78c Merge tag 'for-net-next-2024-11-14' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
2a14ef2ac5e0 Merge branch 'dt/linus' into dt/next
bae5aba3f9a3 MIPS: mobileye: eyeq6h: add OLB nodes OLB and remove fixed clocks
bc1acfc7ba28 MIPS: mobileye: eyeq5: use OLB as provider for fixed factor clocks
20d38d5ed30c Merge branches 'arm/smmu', 'mediatek', 's390', 'ti/omap', 'riscv' and 'core' into next
a0794b374609 dt-bindings: net: sff,sfp: Fix "interrupts" property typo
15f59fa95127 dt-bindings: net: mdio-mux-gpio: Drop undocumented "marvell,reg-init"
abaa833875a2 dt-bindings: clock: eyeq: add more Mobileye EyeQ5/EyeQ6H clocks
d4692890e218 dt-bindings: soc: mobileye: set `#clock-cells = <1>` for all compatibles
8b8b3b527dd8 dt-bindings: clock: axi-clkgen: include AXI clk
0fb8688d489e Merge tag 'v6.13-rockchip-clk1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-bindings
8082b4609710 dt-bindings: clock: Add Marvell PXA1908 clock bindings
ec9532ca76f2 dt-bindings: clock: airoha: Update reg mapping for EN7581 SoC.
faac8e7307da dt-bindings: clock: mediatek: Add bindings for MT6735 syscon clock and reset controllers
1ddd28078d2c dt-bindings: net: bluetooth: nxp: Add support for power save feature using GPIO
6e00e8e10462 dt-bindings: clock: actions,owl-cmu: convert to YAML
8632a52cf6bb dt-bindings: clock: ti: Convert mux.txt to json-schema
3a3d3efe9f2f ASoc: simple-mux: Allow to specify an idle-state
f1a21c9027aa ASoC: Merge up fixes
2a6f86b68aef ASoC: dt-bindings: simple-mux: add idle-state property
e57711411998 Merge tag 'at24-updates-for-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
c817c4dd5391 dt-bindings: net: dsa: microchip: Add LAN9646 switch support
13bd51fa1dc3 Merge tag 'wireless-next-2024-11-13' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
177c7f83ccb1 Merge tag 'at91-soc-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
3d87efe60dff Merge tag 'at91-dt-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
877c4e7469b0 dt-bindings: hwmon: isl68137: add bindings to support voltage dividers
1067dd80f2cf Merge tag 'v6.13-armsoc/drivers1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
57d263a89884 Merge tag 'qcom-drivers-for-6.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
166d602e19ff dt-bindings: thermal: tsens: Add MSM8937
e85bd8dc346a dt-bindings: thermal: qcom-tsens: Add SAR2130P compatible
6ec582f4202e dt-bindings: serial: Add a new compatible string for ums9632
75178b614606 regulator: dt-bindings: qcom,rpmh: Correct PM8550VE supplies
a5865ee38927 dt-bindings: pinctrl: qcom: Add sm8750 pinctrl
21b92a318c68 dt-bindings: timer: actions,owl-timer: convert to YAML
cf31a6391668 dt-bindings: input: Goodix GT7986U SPI HID Touchscreen
3e51a972eb07 Merge tag 'samsung-drivers-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
a7c4f30bb64b Merge tag 'asahi-soc-dt-6.13' of https://github.com/AsahiLinux/linux into soc/dt
a4fd8e1dfc43 Merge tag 'v6.13-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2c162aaf86bf Merge tag 'v6.13-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
bd05bfd61ea1 Merge tag 'sunxi-dt-for-6.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
b27a64825ed4 Merge tag 'riscv-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
ba090176b165 Merge tag 'mvebu-dt64-6.13-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
6bf22927b301 Merge tag 'mvebu-dt-6.13-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
0f2aa55f6305 dt-bindings: hwmon: pwm-fan: Document start from stopped state properties
426cb331c9cc dt-bindings: hwmon: ti,tmp108: Add nxp,p3t1085 compatible string
ae309085b834 dt-bindings: hwmon: pmbus: add ti tps25990 support
5da2c2026bd2 Merge tag 'stm32-dt-for-v6.13-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
9c3899079f19 Merge tag 'ti-k3-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
0b3cd09d6ce5 Merge tag 'amlogic-arm64-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
f26dab644e22 Merge tag 'amlogic-arm-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
deb57f61c6df Merge tag 'riscv-sophgo-dt-for-v6.13' of https://github.com/sophgo/linux into soc/dt
4726cfc72104 arm64: dts: lg131x: Update spi clock properties
d89970dd389d arm64: dts: seattle: Update spi clock properties
930d668738e9 Merge tag 'qcom-arm64-for-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
ce2d746e1530 Merge tag 'omap-for-v6.13/dt-signed-1' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt
f105a6053107 Merge tag 'renesas-dts-for-v6.13-tag2' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
387af474eee3 Merge tag 'mtk-dts64-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
53a949e36049 Merge tag 'imx-dt64-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
16f098c332bd Merge tag 'imx-dt-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
51aaab41dffd Merge tag 'imx-bindings-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
17e5fb03d215 Merge tag 'qcom-arm32-for-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
31626a0e0ee3 Merge tag 'socfpga_dts_updates_for_v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt
152ae851dbfa Merge tag 'zynqmp-dt-for-6.13' of https://github.com/Xilinx/linux-xlnx into soc/dt
f90a49f1e27b Merge tag 'v6.13-armsoc/dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
ae55eb28a726 Merge tag 'samsung-dt64-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
3d49ae1f0a1b Merge tag 'tegra-for-6.13-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
07ff07464e33 Merge tag 'tegra-for-6.13-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
7f89fd77486c Merge tag 'ux500-dts-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into soc/dt
05ebe6553b4d Merge tag 'renesas-dts-for-v6.13-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
16235aeda228 Merge tag 'thead-dt-for-v6.13-p2' of https://github.com/pdp7/linux into soc/dt
6fa0b8a99183 Merge tag 'thead-dt-for-v6.13' of https://github.com/pdp7/linux into soc/dt
7e058b903582 dt-bindings: power: qcom,rpmpd: document the SM8750 RPMh Power Domains
f6a47c3457a0 dt-bindings: mfd: bd71828: Use charger resistor in mOhm instead of MOhm
4b18f1610238 Merge tag 'scmi-updates-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
dda26b78365e mips: dts: realtek: Add I2C controllers
b71367867087 mips: dts: realtek: Add syscon-reboot node
79779e7c715d dt-bindings: mfd: sprd,sc2731: Convert to YAML
5dae93564df4 dt-bindings: rtc: Add Amlogic A4 and A5 RTC
26e180301e14 dt-bindings: mfd: Add Realtek RTL9300 switch peripherals
1891c1b614b2 dt-bindings: mfd: qcom,tcsr: Add compatible for MSM8917
b1ba8faed042 dt-bindings: leds: pwm: Add default-brightness property
f399c33dfe79 dt-bindings: usb: add A523 compatible string for EHCI and OCHI
947c6f46a132 dt-bindings: usb: sunxi-musb: add Allwinner A523 compatible string
d441b40639a5 dt-bindings: ata: ahci-platform: add missing iommus property
723c65f36e60 dt-bindings: net: dsa: microchip: add mdio-parent-bus property for internal MDIO
58487abd9efe dt-bindings: net: dsa: microchip: add internal MDIO bus description
8d58a2dd6d84 dt-bindings: power: reset: Convert mode-.* properties to array
1789292f1a7c dt-bindings: power: supply: sc27xx-fg: document deprecated bat-detect-gpio
5538bdf2a501 dt-bindings: rtc: sun6i: Add Allwinner A523 support
20e517ff0e61 Merge patch series "Zacas/Zabha support and qspinlocks"
123d509ffce3 dt-bindings: riscv: Add Ziccrse ISA extension description
9442e2221b50 dt-bindings: riscv: Add Zabha ISA extension description
19eeccaea220 arm64: dts: rockchip: use less broad pinctrl for pcie3x1 on Radxa E25
f80689fcef4b arm64: dts: rockchip: add Radxa ROCK 5C
cf73817a27fe dt-bindings: arm: rockchip: add Radxa ROCK 5C
6f9651cdd68b arm64: dts: rockchip: orangepi-5-plus: Enable GPU
0969ba564561 arm64: dts: rockchip: enable USB3 on NanoPC-T6
d0831b4f29fa arm64: dts: rockchip: adapt regulator nodenames to preferred form
5b243675290c arm64: dts: rockchip: Enable HDMI display for rk3588 Cool Pi GenBook
23fd319073ff arm64: dts: rockchip: Enable HDMI display for rk3588 Cool Pi 4B
3900aca0874b arm64: dts: rockchip: Enable HDMI0 for rk3588 Cool Pi CM5 EVB
2c753fe0da98 arm64: dts: rockchip: Enable HDMI on NanoPi R6C/R6S
8e4a55566af5 arm64: dts: rockchip: Enable GPU on NanoPi R6C/R6S
7b1c800bcde2 arm64: dts: rockchip: Enable HDMI on Hardkernel ODROID-M2
c436bbae9ee0 arm64: dts: rockchip: Remove non-removable flag from sdmmc on rk3576-sige5
1980d45b0897 ASoC: dt-bindings: stm32: add missing port property
2893b7f5fb7a Merge tag 'icc-6.13-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
b32a9156b890 Merge tag 'v6.12-rc7' into __tmp-hansg-linux-tags_media_atomisp_6_13_1
c7134866aa26 Merge tag 'drm-misc-next-2024-11-08' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
9c04f56979b1 dt-bindings: Add SY24655 to ina2xx devicetree bindings
5ff094ad6592 dt-bindings: hwmon: ltc2978: add support for ltc7841
d9ef63ef8a11 dt-bindings: hwmon: Add NCT7363Y documentation
c0471d92c15c dt-bindings: hwmon: pmbus: Add bindings for Vicor pli1209bc
d5eaf6b6924f dt-bindings: hwmon: pmbus: Add bindings for MPS MP297x
cdad7d08ac3b dt-bindings: hwmon: add renesas,isl28022
cfd9365d2a13 dt-bindings: hwmon: add support for ti,amc6821
ddc5f672209b dt-bindings: rtc: mpfs-rtc: remove Lewis from maintainers
2865159e6810 dt-bindings: spmi: qcom,x1e80100-spmi-pmic-arb: Add SAR2130P compatible
c50dfc3a2aab dt-bindings: spmi: spmi-mtk-pmif: Add compatible for MT8188
a190753f88d0 arm64: dts: allwinner: a100: perf1: Add eMMC and MMC node
4991141770ff arm64: dts: allwinner: pinephone: Add mount matrix to accelerometer
e4b43ce62e72 dt-bindings: rng: add binding for BCM74110 RNG
941365ad45c2 ARM: dts: rockchip: adapt regulator nodenames to preferred form
bf61fdbdcb67 arm64: dts: rockchip: Enable HDMI0 on FriendlyElec CM3588 NAS
b20c5c1134f6 arm64: dts: rockchip: add Banana Pi P2 Pro board
e25bd251aa0e dt-bindings: arm: rockchip: add Banana Pi P2 Pro board
be5707904383 arm64: dts: rockchip: Add new SoC dtsi for the RK3566T variant
5490c2e7cf29 arm64: dts: rockchip: Prepare RK356x SoC dtsi files for per-variant OPPs
446fb0e5e919 arm64: dts: rockchip: Update CPU OPP voltages in RK356x SoC dtsi
a0399eec38f1 arm64: dts: rockchip: Add OPP voltage ranges to RK3399 OP1 SoC dtsi
edc6a2d078cf arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova
b212feea5740 arm64: dts: rockchip: Enable GPU on Indiedroid Nova
55b9ba0d6a3f arm64: dts: rockchip: correct analog audio name on Indiedroid Nova
067743d4f0ba dt-bindings: iio: adc: ad7380: add adaq4370-4 and adaq4380-4 compatible parts
86b95e793090 Merge commit '9365f0de4303f82ed4c2db1c39d3de824b249d80' into HEAD
f330887620af ASoC: stm32: i2s: add stm32mp25 support
3739109e0b30 dt-bindings: interrupt-controller: qcom,pdc: Add SAR2130P compatible
62ad47978cfe dt-bindings: Enable dtc "interrupt_provider" warnings
8aec8212bc90 ASoC: dt-bindings: add stm32mp25 support for i2s
ddcb952e0d83 ASoC: dt-bindings: add stm32mp25 support for sai
6533ea7e371c media: dt-bindings: Add qcom,msm8953-camss
0400a923076e media: dt-bindings: adv7180: Document 'adi,force-bt656-4'
cad71a536128 dt-bindings: pinctrl: sx150xq: allow gpio line naming
4fc4402b096a dt-bindings: pinctrl: pinctrl-single: add marvell,pxa1908-padconf compatible
957318c990d9 dt-bindings: pinctrl: correct typo of description for cv1800
964a6e882b70 dt-bindings: pinctrl: qcom,pmic-mpp: Document PM8937 compatible
6f8ca0d8db72 dt-bindings: pinctrl: qcom,pmic-gpio: add PM8937
f1565113396b Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
08d9d0f1c1f1 Add a driver for the Iron Device SMA1307 Amp
f2f280762a9e arm64: dts: sun50i-a64-pinephone: Add mount-matrix for PinePhone magnetometers
6a0f30875a00 arm64: dts: sun50i-a64-pinephone: Add AF8133J to PinePhone
19a5f6136083 dt-bindings: PCI: microchip,pcie-host: Add reg for Root Port 2
55fb5e5b420f dt-bindings: watchdog: Document ExynosAutoV920 watchdog bindings
054c654fe1f3 dt-bindings: watchdog: fsl-imx-wdt: Add missing 'big-endian' property
8ea12deded37 dt-bindings: watchdog: Document Qualcomm QCS8300
730c3664636b media: dt-bindings: Add OmniVision OV08X40
f9a3c027aa9d media: dt-bindings: Remove assigned-clock-* from various schema
7566186de0e0 riscv: dts: thead: Add TH1520 ethernet nodes
386669413e02 dt-bindings: interrupt-controller: Add T-HEAD C900 ACLINT SSWI device
1646cca4d199 ASoC: dt-bindings: maxim,max98390: Reference common DAI properties
ee6c807e70e1 spi: dt-bindings: apple,spi: Add binding for Apple SPI controllers
876cffaa982c ASoC: dt-bindings: irondevice,sma1307: Add initial DT
160064141ff7 Merge tag 'exynos-drm-next-for-v6.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next
fc688470a160 dt-bindings: net: Add T-HEAD dwmac support
9b1f83707883 dt-bindings: net: snps,dwmac: add support for Arria10
460309ffbb0c Merge branch '20240822-qcs8300-gcc-v2-1-b310dfa70ad8@quicinc.com' into clk-for-6.13
23cfc4f08cb1 dt-bindings: clock: qcom: Add GCC clocks for QCS8300
f3d1192d6712 dt-bindings: arm: qcom,ids: add SoC ID for IPQ5424/IPQ5404
42d048cdf864 Merge branch '20241028060506.246606-3-quic_srichara@quicinc.com' into clk-for-6.13
fafe71156483 dt-bindings: clock: Add Qualcomm IPQ5424 GCC binding
7e1403abe239 Merge branch '20241027-sar2130p-clocks-v5-0-ecad2a1432ba@linaro.org' into clk-for-6.13
2defff84b795 dt-bindings: clk: qcom,sm8450-gpucc: add SAR2130P compatibles
3894d09b6e84 dt-bindings: clock: qcom,sm8550-dispcc: Add SAR2130P compatible
a72e5c09c7f4 dt-bindings: clock: qcom,sm8550-tcsr: Add SAR2130P compatible
28f260417c06 dt-bindings: clock: qcom: document SAR2130P Global Clock Controller
60cc5850fdfc dt-bindings: clock: qcom,rpmhcc: Add SAR2130P compatible
df87984c1613 dt-bindings: display: samsung,exynos7-decon: add exynos7870 compatible
d50643ee756b Merge tag 'drm-msm-next-2024-11-04' of https://gitlab.freedesktop.org/drm/msm into drm-next
b3e4ab4f064e dt-bindings: firmware: qcom,scm: Document sm8750 SCM
463a6ef40f74 dt-bindings: PCI: snps,dw-pcie: Drop "#interrupt-cells" from example
03102039e316 Merge tag 'mediatek-drm-next-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
34a8c575f1c8 ASoC: codecs: Add aw88081 amplifier driver
8f4e264ce11e ASoC: dt-bindings: everest,es8326: Document interrupt property
4e44f374d949 ASoC: dt-bindings: mediatek,mt8188-mt6359: Add mediatek,adsp property
6f4ed65f7dd8 arm64: dts: marvell: Drop undocumented SATA phy names
7b21455daa8f ASoC: dt-bindings: fsl-esai: allow fsl,imx8qm-esai fallback to fsl,imx6ull-esai
8c018a0ee4a8 ASoC: dt-bindings: qcom,sm8250: Add SM8750 sound card
8a48011ba43b ASoC: dt-bindings: sprd,sc9860-mcdt: convert to YAML
7b4ce90e74f0 ASoC: dt-bindings: sprd,pcm-platform: convert to YAML
5823f4fe0659 ASoC: dt-bindings: fsl_spdif: Document imx6sl/sx compatible fallback
7e14eb16d5b3 dt-bindings: usb: qcom,dwc3: Add SAR2130P compatible
51bf70618e24 Merge branch 'for-linus' into for-next
22f3676ff712 ARM: dts: microchip: sam9x75_curiosity: add sam9x75 curiosity board
47d31036aa61 dt-bindings: arm: add sam9x75 curiosity board
0501f23b39df ARM: dts: at91: sam9x7: add device tree for SoC
d5a9f68a0aea dt-bindings: display: bridge: Add ITE IT6263 LVDS to HDMI converter
70e9f6df13a8 dt-bindings: display: Document dual-link LVDS display common properties
6934292e075c dt-bindings: display: lvds-data-mapping: Add 30-bit RGB pixel data mappings
6f27127c4a26 dt-bindings: watchdog: airoha: document watchdog for Airoha EN7581
daa8216ec644 Merge v6.12-rc6 into usb-next
056bfa125b25 Merge 6.12-rc6 into char-misc-next
4161d4c159eb dt-bindings: input: rotary-encoder: Fix "rotary-encoder,rollover" type
a687918c0646 dt-bindings: nvmem: sprd,sc2731-efuse: convert to YAML
1aa204d6b806 dt-bindings: nvmem: sprd,ums312-efuse: convert to YAML
d1d8d849187e dt-bindings: nvmem: convert zii,rave-sp-eeprom.txt to yaml format
17763c48b366 dt-bindings: fuse: Move renesas,rcar-{efuse,otp} to nvmem
9654bb88a716 Merge branch 'icc-sar2130p' into icc-next
dd017956b3ce Merge branch 'icc-qcs615' into icc-next
a17c617ee41c Merge branch 'icc-qcs8300' into icc-next
8370d645f4b6 Merge tag 'mtk-soc-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into arm/drivers
53631c4ff314 Merge tag 'drm-msm-next-2024-10-28' of https://gitlab.freedesktop.org/drm/msm into drm-next
c904ffa3b82b ARM: dts: omap4-kc1: fix twl6030 power node
2155689ca359 ARM: dts: am335x-bone-common: Increase MDIO reset deassert delay to 50ms
8dc422e35be3 ARM: dts: turris-omnia: Add global LED brightness change interrupt
607ccd1474a1 ARM: dts: marvell: kirkwood: Fix at24 EEPROM node name
346a3de67692 Merge tag 'qcom-drivers-for-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/drivers
ba19144661e0 arm64: dts: ti: k3-am62: use opp_efuse_table for opp-table syscon
598a4d98663f Merge tag 'memory-controller-drv-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/drivers
17e8e3195ac5 dt-bindings: watchdog: Document Qualcomm QCS615 watchdog
11e178dc255e arm64: dts: mediatek: mt8183-kukui: Drop bogus fixed regulators
f77f82632596 arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add supplies for fixed regulators
24fc1ae800ba arm64: dts: mediatek: mt8183-kukui-jacuzzi: Fix DP bridge supply names
f5b0e5328756 arm64: dts: mediatek: mt6358: fix dtbs_check error
d5140dfa5ec4 arm64: dts: mediatek: mt8186-corsola: Fix IT6505 reset line polarity
d9e000034473 dt-bindings: net: add bindings for NETC blocks control
9fe0d2d4fd4b dt-bindings: net: add i.MX95 ENETC support
826299f01c00 dt-bindings: net: add compatible string for i.MX95 EMDIO
d1dd8567ae0f arm64: dts: freescale: imx8mp-verdin: Fix SD regulator startup delay
d490130f1b5b arm64: dts: freescale: imx8mm-verdin: Fix SD regulator startup delay
9e74cfa8aed7 arm64: dts: imx8mp-verdin: add single-master property to all i2c nodes
e311a676d575 arm64: dts: imx8mm-verdin: add single-master property to all i2c nodes
7ca54a28453d arm64: dts: imx95: Add missing vendor string to SCMI property
1e0645252385 arm64: dts: imx8mp-navqp: Add HDMI support
f69334422236 arm64: dts: imx8qm-ss-hsio: fix PCI and SATA clock indices
52db967c6836 arm64: dts: imx8qm-ss-hsio: fix interrupt-map indent under pci* nodes
4ad8c25409b5 arm64: dts: imx8qxp-mek: replace hardcode 0 with IMX_LPCG_CLK_0
9c1b6d13e36e arm64: dts: imx8mn-tqma8mqnl-mba8mx-usbot: fix coexistence of output-low and output-high in GPIO
9b2e30519b00 arm64: dts: layerscape: remove en25s64 and only keep jedec,spi-nor compatible string
112a2f10e385 arm64: dts: imx8mp-kontron-dl: change touchscreen power-supply to AVDD28-supply
0f08165e91f7 arm64: dts: imx8mp: Add Boundary Device Nitrogen8MP Universal SMARC Carrier Board
64e784a46469 arm64: dts: imx8: move samsung,burst-clock-frequency to imx8mn and imx8mm mba8mx board file
83fb50675bc3 arm64: dts: mba8mx: remove undocumented 'data-lanes' at panel
0e24192fd5df arm64: dts: imx: Add i.MX8M Plus Gateworks GW82XX-2X support
37833e2088f6 arm64: dts: imx8ulp-evk: Add spdif sound card support
750ba00a205a arm64: dts: imx8ulp-evk: Add bt-sco sound card support
7d99d457b93d arm64: dts: imx8ulp: Add audio device nodes
f4b3c64c0244 arm64: dts: imx8qm-mek: enable dsp node for rproc usage
1caf91ab383e arm64: dts: imx8qm: add node for VPU dsp
fbc00480351a arm64: dts: imx8qm: drop dsp node from audio_subsys bus
28f0a4fda11f arm64: dts: imx8qxp-mek: add dsp rproc-related mem regions
5d166eadac0c arm64: dts: imx8-ss-audio: configure dsp node for rproc usage
e5e252f95438 Merge tag 'v6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
4c2e02e65cdd ARM: dts: imx: Add devicetree for Kobo Clara 2E
6b94da0ee5dd dt-bindings: arm: fsl: add compatible strings for Kobo Clara 2E
202c40aec2b8 Backmerge v6.12-rc6 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next
b103f56c1313 dt-bindings: cache: qcom,llcc: Document the QCS8300 LLCC
1cb298e50005 dt-bindings: cache: qcom,llcc: Document the QCS615 LLCC
d1a15a60e3dd dt-bindings: cache: qcom,llcc: document SAR2130P and SAR1130P
b5252d8ac17a dt-bindings: serial: samsung: Add samsung,exynos8895-uart compatible
150da36dbb3e dt-bindings: serial: snps-dw-apb-uart: Add Sophgo SG2044 uarts
8d33fdaef0c9 dt-bindings: serial: snps,dw-apb-uart: merge duplicate compatible entry.
0221e5a00939 dt-bindings: usb: Describe TUSB1046 crosspoint switch
9ced24730a60 dt-bindings: usb: add TUSB73x0 PCIe
9f0df430d226 dt-bindings: net: snps,dwmac: Fix "snps,kbbe" type
d37a18c3359d dt-bindings: iio: magnetometer: document the Allegro MicroSystems ALS31300 3-D Linear Hall Effect Sensor
89d25ea2ca64 dt-bindings: vendor-prefixes: Add Allegro MicroSystems, Inc
67d497917b1c dt-bindings: iio: light: veml6075: document vishay,rset-ohms
42fa3119d0f6 dt-bindings: iio: dac: ad5791: Add required voltage supplies
17ed50b8e5b2 dt-bindings: iio: dac: ad5791: Add optional reset, clr and ldac gpios
b8c3bcba7006 dt-bindings: PCI: qcom,pcie-x1e80100: Add 'global' interrupt
3f1c84e16a83 dt-bindings: PCI: qcom: Move OPP table to qcom,pcie-common.yaml
8be0ac5e2035 dt-bindings: PCI: qcom: Document the IPQ9574 PCIe controller
b6b07e2734ce arm64: dts: renesas: rzg3s-smarc-som: Enable RTC
77fef08ac39f arm64: dts: renesas: rzg3s-smarc-som: Enable VBATTB
4279f7bfeca0 arm64: dts: renesas: r9a08g045: Add RTC node
c662c8fd62d0 arm64: dts: renesas: r9a08g045: Add VBATTB node
3b4ff03ddadd Merge tag 'renesas-r9a08g045-dt-binding-defs-tag3' into renesas-dts-for-v6.13
b574ea7102f4 arm64: dts: renesas: white-hawk-cpu-common: Add pin control for DSI-eDP IRQ
b1b4b25b826b ARM: dts: renesas: r7s72100: Add DMA support to MMCIF
d9254ef42935 ARM: dts: renesas: r7s72100: Add DMAC node
24f9da7ff499 arm64: dts: renesas: hihope: Drop #sound-dai-cells
a1c74be440b4 dt-bindings: clock: renesas,r9a08g045-vbattb: Document VBATTB
ddbfd89adc2b arm64: dts: ti: k3-am62p5-sk: add 1.4ghz opp entry
ea0e401633cb arm64: dts: ti: k3-am62p: add opp frequencies
ff729dee84ac arm64: dts: ti: k3-am62a7-sk: add 1.4ghz opp entry
bb3fd30ebdc2 arm64: dts: ti: k3-am62a: add opp frequencies
4e946fcedb0a arm64: dts: ti: k3-am62-verdin: Add Ivy carrier board
3c9f7ab0f160 arm64: dts: ti: k3-am62-verdin: add label to som adc node
331663639dd4 dt-bindings: arm: ti: Add verdin am62 ivy board
a5ed55d5f102 dt-bindings: PCI: qcom,pcie-sm8550: Add SAR2130P compatible
3c02cd885435 arm64: allwinner: a100: Add MMC related nodes
5d066483a0d1 arm64: dts: allwinner: a100: add usb related nodes
036fcc436587 dt-bindings: usb: sunxi-musb: Add A100 compatible string
146dcab6bf5d dt-bindings: usb: Add A100 compatible string
9c1f15141146 dt-bindings: phy: sun50i-a64: add a100 compatible
75547bc28cb8 arm64: dts: allwinner: a100: add watchdog node
d54b845fdacb arm64: dts: allwinner: A100: Add PMU mode
aca70dbb9197 riscv: dts: sophgo: Add emmc support for Huashan Pi
42878e08ab97 riscv: dts: sophgo: Add sdio configuration for Huashan Pi
eb07cad87c26 riscv: dts: sophgo: fix pinctrl base-address
8e37388c023b ARM: dts: imx6sll: Improve gpc description
b8bd0f9f429f dt-bindings: power: fsl,imx-gpc: Document fsl,imx6sll-gpc
f4ecbd3601e6 ARM: dts: imx6sl: Pass tempmon #thermal-sensor-cells
ba6c85227642 ARM: dts: imx6sx: Fix tempmon description
331a16df15a3 ARM: dts: imx6sll: Remove regulator-3p0 unit address
47c8e9173f81 dt-bindings: soc: imx: fsl,imx-anatop: Add additional regulators
3ae26b145a89 dt-bindings: soc: imx: fsl,imx-anatop: Fix the i.MX7 irq number
255ba77d9c2d ARM: dts: imx6sll: Fix the last SPDIF clock name
c42453e6426e dt-bindings: mfd: aspeed: Support for AST2700
2a73067c2a22 dt-bindings: mfd: qcom,spmi-pmic: Document PMICs added in SM8750
5397edc4d601 dt-bindings: iio: dac: adi-axi-dac: add ad3552r axi variant
9caf7607e387 dt-bindings: iio: dac: ad3552r: add iio backend support
763816eac739 dt-bindings: iio: imu: bmi270: Add Bosch BMI260
713fa6540db4 dt-bindings: iio: light: veml6030: add veml3235
dba57ae0cfce ASoC: dt-bindings: Add schema for "awinic,aw88081"
a19f983c0d5c arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Add cma heap for libcamera softisp support
28471dd8f4a6 arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Add cma heap for libcamera softisp support
b9629dab901b arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Drop redundant clock-lanes from camera@1a
1ddecd567632 arm64: dts: qcom: sc8280xp-x13s: Drop redundant clock-lanes from camera@10
be774e8d2ab8 arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Convert mezzanine riser to dtso
3f2133c08066 ARM: dts: imx7ulp: Remove incorrect mmc fallback compatible
7506bc6cb797 ARM: dts: imx6sl: Remove incorrect mmc fallback compatible
28933a53f55c ARM: dts: imx6sx: Remove incorrect mmc fallback compatible
1f840a106c30 ARM: dts: imx6sl/sll: Add the "fsl,imx6dl-gpt" fallback
a894fbc7d9c2 dt-bindings: arm: fsl: Add Boundary Device Nitrogen8MP Universal SMARC Carrier Board
fba51fea7ab6 dt-bindings: arm: fsl: Add Gateworks GW82XX-2x dev kit
6e1ac4df7d84 dt-bindings: dsp: fsl,dsp: fix power domain count
3fb0f7f167d1 ARM: dts: imx6ul: Drop duplicate space in iomux node groups
db27e15bb568 ARM: dts: imx6sx: Align pin config nodes with bindings
abb4de37ca85 ARM: dts: imx6sl: imx6sll: Align pin config nodes with bindings
36f077eedcaf ARM: dts: imx6qp: Align pin config nodes with bindings
39f669d0e202 ARM: dts: imx6qdl: Align pin config nodes with bindings
98bf72bdd507 ARM: dts: imx6q: Align pin config nodes with bindings
cbdbce56bc99 ARM: dts: imx6dl: Align pin config nodes with bindings
1b47588d2862 ARM: dts: imx53: Align pin config nodes with bindings
d6f94f6b81c9 ARM: dts: imx51: Align pin config nodes with bindings
96f9d558ff37 ARM: dts: imx50: Align pin config nodes with bindings
028df26bebec ARM: dts: imx35: Align pin config nodes with bindings
3beb7b7a5c8e arm64: dts: imx8mm-venice-gw73xx: remove compatible in overlay file
52d3e69f3742 arm64: dts: imx93: Add LPSPI alias
8299fb97f122 arm64: dts: imx8ulp: Add LPSPI alias
b7d284ff717f arm64: dts: imx8dxl: Add LPSPI alias
8beff2148426 arm64: dts: imx8qm: Add LPSPI alias
512aedaf436b arm64: dts: imx8qxp: Add LPSPI alias
6ef56051d213 ARM: dts: imx6qdl: convert fsl,tx-d-cal to correct value
ec366f90d9bb arm64: dts: imx8qxp: change usbphy1 compatible
cea897ccd54b arm64: dts: imx8qm: change usbphy1 compatible
874df11138be arm64: dts: imx8dxl-ss-conn: change usbphy1 compatible
02bb93887167 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
561ec2dba20c dt-bindings: rtc: renesas,rzg3s-rtc: Document the Renesas RTCA-3 IP
5f24de097e7e dt-bindings: mfd: x-powers,axp152: Document AXP323
fdd7b26f4e12 dt-bindings: leds: pca955x: Convert text bindings to YAML
f25661476440 Merge tag 'ath-next-20241030' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath
62e231406590 riscv: dts: starfive: add DeepComputing FML13V01 board device tree
32165b14e52d dt-bindings: riscv: starfive: add deepcomputing,fml13v01
d7219d674223 dt-bindings: vendor: add deepcomputing
6ff04cefd0f8 riscv: dts: starfive: jh7110-common: move usb0 config to board dts
dca4975af2f1 riscv: dts: starfive: jh7110-common: revised device node
08c161cb09dd dt-bindings: spi: sprd,sc9860-spi: convert to YAML
0071bdbd8c4a dt-bindings: display: panel: Add Samsung S6E88A0-AMS427AP24
ca71b2ee5303 dt-bindings: display: panel: Move flip properties to panel-common
885d588105ef dt-bindings: net: qcom,ethqos: add description for qcs8300
30c9a2f24d08 dt-bindings: net: qcom,ethqos: add description for qcs615
716fa1e7ccdf dt-bindings: net: renesas,ether: Add iommus property
3f4eb4ad0e43 dt-bindings: net: add compatible strings for lan969x targets
383b9d96b4a7 MIPS: mobileye: eyeq6h-epm6: Use eyeq6h in the board device tree
2c23682394f8 mips: bmips: bcm6358/6368: define required brcm,bmips-cbr-reg
fca10e05179a Merge remote-tracking branch 'drm-misc/drm-misc-next' into msm-next
e360d40c1957 ASoC: renesas, rsnd: Update file path
fcc8d656b01e dt-bindings: mfd: Add support for Airoha EN7581 GPIO System Controller
7f06843a8e70 dt-bindings: pwm: airoha: Add EN7581 pwm
cf0edabd92c5 dt-bindings: pinctrl: airoha: Add EN7581 pinctrl
e6aaee853312 dt-bindings: arm: airoha: Add the chip-scu node for EN7581 SoC
f0cd86a71bc4 Merge tag 'wireless-next-2024-10-25' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
797a67e6b014 ARM: dts: ti/omap: omap4-epson-embt2ws: add charger
7efc9f8883cb ARM: dts: omap36xx: declare 1GHz OPP as turbo again
fb2d1cd36043 ARM: ti/omap: omap3-gta04a5: add Bluetooth
ede8f302a975 ARM: dts: ti/omap: dra7: fix redundant clock divider definition
368aa5565758 ARM: dts: ti/omap: use standard node name for twl4030 charger
fff64bcb9e7d ARM: dts: omap: omap4-epson-embt2ws: add GPIO expander
95bd176683f3 ARM: dts: omap: omap4-epson-embt2ws: add unknown gpio outputs
c54ce42be317 ARM: dts: omap: omap4-epson-embt2ws: wire up regulators
f9a228320349 ARM: dts: omap: omap4-epson-embt2ws: define GPIO regulators
7c132391322b dt-bindings: cache: qcom,llcc: Fix X1E80100 reg entries
e87d66603200 arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Convert mezzanine riser to dtbo
0e47b353b366 arm64: dts: qcom: sm8450-hdk: model the PMU of the on-board wcn6855
0da5e2831b5f arm64: dts: qcom: sc8280xp-x13s: model the PMU of the on-board wcn6855
b144f43b00c6 arm64: dts: qcom: sc8280xp-crd: enable bluetooth
71dd0754900a arm64: dts: qcom: sc8280xp-crd: model the PMU of the on-board wcn6855
db6231faa8ef arm64: dts: qcom: qcs9100: Add support for the QCS9100 Ride and Ride Rev3 boards
6db2df13d51b dt-bindings: arm: qcom: Document qcs9100-ride and qcs9100-ride Rev3
939575bddd9e dt-bindings: arm: qcom,ids: add SoC ID for QCS9100
37f62a041104 dt-bindings: soc: qcom,aoss-qmp: Document the QCS8300 AOSS channel
2b6367dc7663 dt-bindings: soc: qcom: add qcom,qcs8300-imem compatible
921d4a5b59ca dt-bindings: firmware: qcom,scm: document SCM on QCS8300 SoCs
b056fb0da587 dt-bindings: arm: qcom: add the SoC ID for SA8255P
353c843385dd dt-bindings: soc: qcom: aoss-qmp: document support for SA8255p
eb757c1154d7 dt-bindings: firmware: qcom,scm: document support for SA8255p
023f9687db26 arm64: dts: qcom: x1e80100: Update C4/C5 residency/exit numbers
26e54f2b420b arm64: dts: qcom: x1e80100-crd: describe HID supplies
e13fc809cbc2 dt-bindings: arm-smmu: document QCS615 APPS SMMU
d883086fe6d0 arm64: dts: st: add DMA support on SPI instances of stm32mp25
293e556c3b71 arm64: dts: st: add DMA support on I2C instances of stm32mp25
a6d1ed648360 arm64: dts: st: add DMA support on U(S)ART instances of stm32mp25
b6492a99f4d4 arm64: dts: st: add RNG node on stm32mp251
789463f5f6f9 arm64: dts: ti: k3-am642-phyboard-electra-rdk: Enable trickle charger
da365b4af0fd arm64: dts: st: enable RTC on stm32mp257f-ev1 board
58372f2d5992 arm64: dts: st: add RTC on stm32mp25x
7967e3f18c68 ARM: dts: stm32: add support of WLAN/BT on stm32mp135f-dk
31603dbb73ed ARM: dts: stm32: add support of WLAN/BT on stm32mp157c-dk2
765429189582 ARM: dts: stm32: rtc, add LSCO to WLAN/BT module on stm32mp135f-dk
dff35cb83ba2 ARM: dts: stm32: rtc, add LSCO to WLAN/BT module on stm32mp157c-dk2
0c7155f0410d ARM: dts: stm32: rtc, add pin to provide LSCO on stm32mp13
b45457addbd1 ARM: dts: stm32: rtc, add pin to provide LSCO on stm32mp15
3c483aafdf06 ARM: dts: stm32: Describe M24256E write-lockable page in DH STM32MP13xx DHCOR SoM DT
139d492884d8 arm64: dts: qcom: msm8998-lenovo-miix-630: add WiFi calibration variant
cdfae05f1158 arm64: dts: qcom: msm8998-clamshell: enable resin/VolDown
64e0ef2c06b2 arm64: dts: qcom: msm8998-lenovo-miix-630: enable VolumeUp button
9f95673168b0 arm64: dts: qcom: msm8998-lenovo-miix-630: enable aDSP and SLPI
a5bac521fc24 arm64: dts: qcom: msm8998-lenovo-miix-630: enable touchscreen
a8515049c066 ARM: dts: stm32: Add IWDG2 EXTI interrupt mapping and mark as wakeup source
eddd3e969925 ASoC: dt-bindings: document the adau1373 Codec
470374aa96c5 dt-bindings: arm: pmu: Add Samsung Mongoose core compatible
6834ae6fe43e Merge tag 'samsung-pinctrl-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
65f56eb13285 dt-bindings: iommu: riscv: Add bindings for RISC-V IOMMU
2a9e11d084c6 dt-bindings: cpufreq: cpufreq-qcom-hw: Add SAR2130P compatible
b194ce2eb3b8 dt-bindings: cpufreq: add virtual cpufreq device
8bc748b3aced dt-bindings: connector: Add properties to define time values
605f85ff9e6f dt-bindings: iio: adc: adi,ad7606: document AD760{7,8,9} parts
6a89ae47b092 dt-bindings: iio: light: opt3001: add compatible for opt3002
70299596e737 dt-bindings: nfc: nxp,nci: Document PN553 compatible
fdd8e743e28d dt-bindings: watchdog: convert zii,rave-sp-wdt.txt to yaml format
01f9cc33c847 dt-bindings: input: convert zii,rave-sp-pwrbutton.txt to yaml
b854e49c0d99 arm64: dts: ti: k3-am64-phycore-som: Add M4F remoteproc nodes
39fc4e8d0c96 arm64: dts: ti: k3-am62-phycore-som: Add M4F remoteproc nodes
98100a4d2f27 arm64: dts: ti: minor whitespace cleanup
b7a07b589550 arm64: dts: ti: k3-am62x-phyboard-lyra: Fix indentation in audio-card
ecf01fc92c51 arm64: dts: ti: k3-am642-phyboard-electra-rdk: Fix bus-width property in MMC nodes
b8c71de468cb arm64: dts: ti: k3-am64-phycore-som: Fix bus-width property in MMC nodes
2d697a33eea7 arm64: dts: ti: k3-am642-evm: Add overlay for PCIe0 EP mode
b2eb2eb13dff arm64: dts: ti: k3-j7200-evm: Add overlay for PCIE1 Endpoint Mode
012f0b98adb5 arm64: dts: ti: k3-am62-main: Update otap/itap values
0f5c0fbac643 arm64: dts: ti: k3-am625-beagleplay: Enable MikroBUS PWM
4a83eccaf4bb arm64: dts: ti: k3-am62-verdin: Fix SD regulator startup delay
2b93c69971f5 arm64: dts: ti: k3-am62-verdin: Fix SoM ADC compatible
7b41e5063d24 arm64: dts: ti: k3-am625-verdin: add TPM device
d5934e5672b3 arm64: dts: ti: k3-j721s2: Fix clock IDs for MCSPI instances
5259ea65769a arm64: dts: ti: k3-j721e: Fix clock IDs for MCSPI instances
1aa6fec1bf7f arm64: dts: ti: k3-j7200: Fix clock ids for MCSPI instances
05dadccc1d6e arm64: dts: ti: k3-j7200: Fix register map for main domain pmx
b5e4fcb6a6a4 arm64: dts: ti: k3-j7200-evm*: Add bootph-* properties
23d8a29be7cf arm64: dts: ti: k3-j721e-sk*: Add bootph-* properties
8939387ec242 arm64: dts: ti: k3-j721e-evm*: Add bootph-* properties
1ebacb4afd7d arm64: dts: ti: k3-am68-sk*: Add bootph-* properties
59290b7acdb1 arm64: dts: ti: k3-j721s2-evm*: Add bootph-* properties
96b67eddd9d8 arm64: dts: ti: k3-j784s4-j742s2-evm-common: Remove parent nodes bootph-*
6fc66a1cbbf9 arm64: dts: ti: k3-j7200: Add bootph-* properties
4e700078c990 arm64: dts: ti: k3-j721e: Add bootph-* properties
24856781f185 arm64: dts: ti: k3-j721s2: Add bootph-* properties
5ea5f859d657 arm64: dts: ti: k3-j784s4: Add bootph-* properties
7fe1e46095c4 arm64: dts: ti: k3-j784s4-j742s2-mcu-wakeup: Remove parent nodes bootph-*
1853b9579d48 arm64: dts: ti: k3-j784s4-j742s2-mcu-wakeup: Move bootph from mcu_timer1 to mcu_timer0
114be30a95ab dt-bindings: firmware: arm,scmi: Introduce more transport properties
4a611cd4cf42 dt-bindings: sram: Document reg-io-width property
c548ac9c74e2 dt-bindings: pinctrl: convert pinctrl-mcp23s08.txt to yaml format
cf6826771639 dt-bindings: crypto: qcom-qce: document the SA8775P crypto engine
2b8c1030e8c0 dt-bindings: rng: add support for Airoha EN7581 TRNG
58a715d54f20 dt-bindings: rng: add st,stm32mp25-rng support
6670c8049523 dt-bindings: rng: Add Marvell Armada RNG support
15cd3ba66a63 dt-bindings: soc: rockchip: add rk3588 mipi dcphy syscon
43d7d295f50a dt-bindings: pinctrl: samsung: Add compatible for exynos9810-wakeup-eint
25dc3ef6afee dt-bindings: pinctrl: samsung: Add compatible for Exynos9810 SoC
0b4611bbe9bb dt-bindings: arm: samsung: Document Exynos9810 and starlte board binding
3478405a22cc dt-bindings: soc: samsung: exynos-pmu: Add exynos9810 compatible
5391365435bc dt-bindings: arm: cpus: Add Samsung Mongoose M3
5f722ff65658 dt-bindings: hwinfo: samsung,exynos-chipid: Add Samsung exynos9810 compatible
bb0089d8c302 dt-bindings: display/msm/gmu: Add Adreno 663 GMU
39e708dc0fb1 arm64: dts: exynos8895: Add spi_0/1 nodes
0cf148b180b1 arm64: dts: exynos8895: Add Multi Core Timer (MCT) node
f799b809d6c7 arm64: dts: exynos8895: Add clock management unit nodes
b4fa09099517 dt-bindings: timer: exynos4210-mct: Add samsung,exynos8895-mct compatible
6325725ea9a3 Merge branch 'for-v6.13/clk-dt-bindings' into next/dt64
8da2e616237d Merge branch 'for-v6.13/clk-dt-bindings' into next/clk
eeba38da05de dt-bindings: clock: samsung: Add Exynos8895 SoC
87e26426dfdb ARM: dts: sunxi: add support for RerVision A33-Vstar board
55be2d52b761 dt-bindings: arm: sunxi: document RerVision A33-Vstar board
b53ca4b51fbb arm64: dts: allwinner: Add disable-wp for boards with micro SD card
9f4b1c04a628 ARM: dts: cubieboard4: Fix DCDC5 regulator constraints
556bf94aa7b1 arm64: dts: allwinner: h313/h616/h618/h700: Enable audio codec for all supported boards
4da8ded9f0cc arm64: dts: allwinner: h616: Add audio codec node
f419b2caa850 arm64: dts: apple: Add A11 devices
bcf1afc654cc arm64: dts: apple: Add A10X devices
84201093d52b arm64: dts: apple: Add A10 devices
513b4af7b994 arm64: dts: apple: Add A9X devices
1e48996186f2 arm64: dts: apple: Add A9 devices
718683c792c8 arm64: dts: apple: Add A8X devices
2ba5d138f134 arm64: dts: apple: Add A8 devices
0d01c7eaa9e2 arm64: dts: apple: Add A7 devices
f2291bedf412 dt-bindings: arm: apple: Add A11 devices
6777f8463609 dt-bindings: arm: apple: Add A10X devices
b4ff47625083 dt-bindings: arm: apple: Add A10 devices
ce790688aa46 dt-bindings: arm: apple: Add A9X devices
0472420f025e dt-bindings: arm: apple: Add A9 devices
340a25ae66bc dt-bindings: arm: apple: Add A8X devices
25411031e69f dt-bindings: arm: apple: Add A8 devices
bc22115c3571 dt-bindings: arm: apple: Add A7 devices
6018a7f4ceca dt-bindings: pinctrl: apple,pinctrl: Add A7-A11 compatibles
176a45e1572d dt-bindings: watchdog: apple,wdt: Add A7-A11 compatibles
79f0d9d12ef3 dt-bindings: arm: cpus: Add Apple A7-A11 CPU cores
bfaae9b422dd dt-bindings: mmc: Add sdhci compatible for QCS615
34d505c80e75 dt-bindings: mmc: sdhci-msm: Add SAR2130P compatible
d6f153d7cb45 dt-bindings: mmc: mtk-sd: Add mt7988 SoC
22f0ba9af4bb dt-bindings: mmc: mtk-sd: Add support for MT8196
4c1518fa641b dt-bindings: pwm: adi,axi-pwmgen: Increase #pwm-cells to 3
a1e6619cb6c6 dt-bindings: pwm: amlogic: Document C3 PWM
4e4e741cb376 arm64: dts: mt8183: Damu: add i2c2's i2c-scl-internal-delay-ns
030f50a89855 arm64: dts: mt8183: cozmo: add i2c2's i2c-scl-internal-delay-ns
94427cb3877f arm64: dts: mt8183: burnet: add i2c2's i2c-scl-internal-delay-ns
eef73802f2c2 arm64: dts: mt8183: fennel: add i2c2's i2c-scl-internal-delay-ns
abff5effb653 dt-bindings: clock: r9a08g045-cpg: Add power domain ID for RTC
cde5a517b243 dt-bindings: pinctrl: qcom,sm8650-lpass-lpi-pinctrl: Add SM8750
b8ddbab4b1d5 arm64: dts: renesas: r9a09g057: Add OPP table
60d1484c7f80 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
ac3aa417c4d3 arm64: dts: rockchip: Add rk3588-orangepi-5b device tree
d041fe91c4a5 dt-bindings: arm: rockchip: Add Orange Pi 5b enum to Orange Pi 5 entry
911221b5def9 arm64: dts: rockchip: refactor common Orange Pi 5 board
621631b891ca arm64: dts: rockchip: Remove 'enable-active-low' from two boards
4e8ec18efa34 arm64: dts: rockchip: add HDMI support to rk3588-jaguar
77c83d44d09e arm64: dts: rockchip: add HDMI support to rk3588-tiger-haikou
adcae16b7116 arm64: dts: rockchip: add HDMI pinctrl to rk3588-tiger SoM
3e97951ad0a6 dt-bindings: riscv: Add pointer masking ISA extensions
b41aa6a575a1 ASoC: add CS42L84 codec driver
7192e70b9e3a arm64: tegra: smaug: Declare cros-ec extcon
8934d4046bdc arm64: tegra: Add SDMMC sdr104-offsets for Tegra X1
ea318ab24a38 arm64: dts: nvidia: tegra210-smaug: Add TMP451 temperature sensor node
898f0df845bd arm64: dts: nvidia: tegra210-smaug: Add touchscreen node
befe34729281 arm64: tegra: p2180: Add mandatory compatible for WiFi node
de0d275642cc arm64: dts: qcom: qcs6490-rb3gen2: Add PCIe nodes
144450a673fc ASoC: dt-bindings: Add CS42L84 codec
24c8f63fb336 arm64: dts: qcom: x1e80100-dell-xps13-9345: fix nvme regulator boot glitch
5a2877e8f17f arm64: dts: qcom: x1e80100-dell-xps13-9345: route edp-panel enable gpio
5fe874b7e3ee ARM: dts: qcom: ipq4019: use nvmem-layout
665e55a6885b dt-bindings: iommu: arm,smmu: Add Qualcomm SAR2130P compatible
f7103f8dbe23 ASoC: dt-bindings: allwinner: add H616 sun4i audio codec binding
85cdd8af34ad dt-bindings: perf: fsl-imx-ddr: Add i.MX91 compatible
f50caff43d6a arm64: dts: rockchip: reorder mmc aliases for NanoPi R3S
2775a2d6f7b4 arm64: dts: rockchip: enable eMMC HS200 mode for NanoPi R3S
1df9ef3a764c arm64: dts: rockchip: sort props in pmu_io_domains node for NanoPi R3S
092d7aa6b26a arm64: dts: rockchip: replace deprecated snps,reset props for NanoPi R3S
451daf1e7781 arm64: dts: rockchip: fix model name for FriendlyElec NanoPi R3S
5500fa4c0d21 arm64: dts: rockchip: Enable HDMI0 on rock-5a
47f18a03a79a arm64: dts: rockchip: Enable HDMI0 on rk3588-nanopc-t6
309958c5385c arm64: dts: rockchip: pwm-leds for Orange Pi 5
7341cdb87808 arm64: dts: rockchip: reorder audio/hdmi nodes in Orange Pi 5
fed07cae4bda dt-bindings: clock: Add i.MX91 clock support
64f251acccf2 dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition
c3a0967a0ade dt-bindings: clock: qcom: gcc-ipq9574: remove q6 bring up clock macros
e5866abf2fc0 dt-bindings: clock: qcom: gcc-ipq5332: remove q6 bring up clock macros
6013f4f7ebe6 arm64: dts: qcom: Use 'ufshc' as the node name for UFS controller nodes
7e734080860e dt-bindings: memory: fsl: Add compatible string nxp,imx9-memory-controller
1aa0676d2d4b dt-bindings: pinctrl: fsl,imx6ul-pinctrl: Convert i.MX35/5x/6 to YAML
1ee7a76a6c50 dt-bindings: soc: qcom,aoss-qmp: Add SAR2130P compatible
940defd6ddc2 dt-bindings: firmware: qcom,scm: Add SAR2130P compatible
af94817fdc9b dt-bindings: arm: qcom,ids: add SoC ID for SAR2130P and SAR1130P
4bbc500f1da4 arm64: dts: qcom: qcm6490-idp: Add UFS nodes
3434afeaf4be dt-bindings: soc: qcom: aoss-qmp: Add SM8750
cb1aae17d00a dt-bindings: arm: qcom,ids: add SoC ID for QCS615
f46702301869 arm64: dts: qcom: change labels to lower-case
9cc41c2a3917 arm64: dts: qcom: sdm: change labels to lower-case
7f90ace59631 arm64: dts: qcom: sm: change labels to lower-case
424546162d92 arm64: dts: qcom: sm8650: change labels to lower-case
5187737d5a40 arm64: dts: qcom: sm8550: change labels to lower-case
fd28693b7ec7 arm64: dts: qcom: sm8450: change labels to lower-case
a83c84ed92db arm64: dts: qcom: sm8350: change labels to lower-case
e9bdee2539b8 arm64: dts: qcom: sm8250: change labels to lower-case
f98c362c10a4 arm64: dts: qcom: sm8150: change labels to lower-case
bd4eb7f2c86e arm64: dts: qcom: sm6350: change labels to lower-case
136ffc3dabc1 arm64: dts: qcom: sm6115: change labels to lower-case
78ec42322ffe arm64: dts: qcom: sc: change labels to lower-case
7bae058d8dfe ARM: dts: qcom: change labels to lower-case
d0bf57f2868c arm64: dts: qcom: sc8280xp: change labels to lower-case
a4a1c355ae9d arm64: dts: qcom: sc7180: change labels to lower-case
0d8dff827b33 arm64: dts: qcom: msm8992-libra: drop unused regulators labels
12d665984756 arm64: dts: qcom: msm: change labels to lower-case
c3f0be5bbb93 arm64: dts: qcom: ipq: change labels to lower-case
3f59ee4054f6 arm64: dts: qcom: sm8450: Add 'global' interrupt to the PCIe RC node
009d588e0380 arm64: dts: qcom: sa8775p: Add 'linux,pci-domain' to PCIe EP controller nodes
e9d262a12a51 ARM: dts: qcom: sdx65: Add 'linux,pci-domain' to PCIe EP controller node
d510764cf6fe ARM: dts: qcom: sdx55: Add 'linux,pci-domain' to PCIe EP controller node
a5ff6758bf1c arm64: dts: qcom: sa8775p: Add TCSR halt register space
b1d366cdfe38 arm64: dts: qcom: sa8775p-ride: add WiFi/BT nodes
45ac1e08b402 arm64: dts: qcom: sa8775p: add QCrypto nodes
066c8b7de678 Merge branch '20241011-sa8775p-mm-v4-resend-patches-v5-0-4a9f17dc683a@quicinc.com' into arm64-for-6.13
19bf5adbc0ac Merge branch '20241011-sa8775p-mm-v4-resend-patches-v5-0-4a9f17dc683a@quicinc.com' into clk-for-6.13
448c23dea476 dt-bindings: clock: qcom: Add SA8775P display clock controllers
62a4544b801a dt-bindings: clock: qcom: Add SA8775P camera clock controller
655ad47c87f6 dt-bindings: clock: qcom: Add SA8775P video clock controller
3164172f31e5 regulator: init_data handling update
b4501c58ccd3 arm64: dts: qcom: sm7325: Add device-tree for Nothing Phone 1
6690dd9829c2 dt-bindings: arm: qcom: Add SM7325 Nothing Phone 1
a0e6a2b73511 dt-bindings: vendor-prefixes: Add Nothing Technology Limited
166a45c90a81 arm64: dts: qcom: Add SM7325 device tree
c0f8f7275e0e dt-bindings: arm: cpus: Add qcom kryo670 compatible
5a5f297992a8 arm64: dts: qcom: sa8775p: Add GPI configuration
48e01bb5863b regulator: dt-bindings: qcom,qca6390-pmu: add more properties for wcn6855
fc22539a553f regulator: dt-bindings: lltc,ltc3676: convert to YAML
9fd1b7244de8 dt-bindings: clock: nxp,imx95-blk-ctl: Add compatible string for i.MX95 HSIO BLK CTRL
2d6147baff0c dt-bindings: mmc: Document support for partition table in mmc-card
6966ae169e9c arm64: dts: rockchip: analog audio on Orange Pi 5
54d1879aeb79 arm64: dts: rockchip: Add dtsi file for RK3399S SoC variant
d31105e3a752 arm64: dts: rockchip: Convert dts files used as parents to dtsi files
a198185b9b55 arm64: dts: rockchip: fix the pcie refclock oscillator on Rock 5 ITX
cf9235a8b9cf arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board
cefc739ed7fd dt-bindings: arm: rockchip: Add FriendlyARM NanoPi R3S
22c62b410a76 arm64: dts: rockchip: Enable HDMI0 on Orange Pi 5
309d3c431657 arm64: dts: rockchip: add and enable gpu node for Radxa ROCK 5A
08d6b7cea0b0 arm64: dts: rockchip: Enable HDMI0 on orangepi-5-plus
6c98a7bb55d5 arm64: dts: rockchip: Enable HDMI0 on rk3588-evb1
7c442cba59d1 arm64: dts: rockchip: Enable HDMI0 on rock-5b
a839348380c2 arm64: dts: rockchip: Add HDMI0 node to rk3588
5bfa747aa6cc arm64: dts: rockchip: Add Radxa e20c board
6f220d3a1243 arm64: dts: rockchip: Add base DT for rk3528 SoC
02c7df878deb dt-bindings: arm: rockchip: Add Radxa E20C board
844b572cc629 arm64: dts: rockchip: Add rk3576-armsom-sige5 board
e472bbb96d8d arm64: dts: rockchip: Add rk3576 SoC base DT
39f0871081fe dt-bindings: arm: rockchip: Add ArmSoM Sige 5
83489bf1ecfb arm64: dts: rockchip: Drop rockchip prefix of s-p-c PMIC prop from rk356x
39eaee8ff5dd arm64: dts: rockchip: Drop rockchip prefix of s-p-c PMIC prop from rk3399
6da1af61e5d0 arm64: dts: rockchip: Drop rockchip prefix of s-p-c PMIC prop from rk3368
6638fa4733b1 arm64: dts: rockchip: Drop rockchip prefix of s-p-c PMIC prop from rk3328
320af665b061 arm64: dts: rockchip: Drop rockchip prefix of s-p-c PMIC prop from px30
94c457e83260 ASoC: dt-bindings: qcom: Add SM8750 LPASS macro codecs
3e3c77d7ec1a dt-bindings: pinctrl : qcom: document SAR2130P TLMM
4fa57881d207 dt-bindings: pinctrl: describe qcs8300-tlmm
db77b8421e31 ASoC: dt-bindings: everest,es8328: Document audio graph port
db78cbd4db87 dt-bindings: power: Add binding for MediaTek MT6735 power controller
12a5b0df8288 dt-bindings: power: rpmpd: Add SAR2130P compatible
155d58a9a5ea dt-bindings: interconnect: qcom-bwmon: Document QCS8300 bwmon compatibles
2d1656d763ba dt-bindings: interconnect: qcom: document SAR2130P NoC
fe75fe7f8010 dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path
143cdfb176c5 dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in QCS615 SoC
c7dbf07a745f dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in QCS8300 SoC
cc849602f015 arm64: dts: imx8qxp-mek: add cm4 and related nodes
5c260f3d0e7d arm64: dts: imx8qxp-mek: add usbotg1 and related node
a3454d3d7fa5 arm64: dts: imx8qxp-mek: add flexcan1 and flexcan2
02a69f98c668 arm64: dts: imx8qxp-mek: enable jpeg encode and decode
17e2c887c738 arm64: dts: imx8qxp-mek: add esai, cs42888 and related node
adda0b1a447a arm64: dts: imx8qxp-mek: add bluetooth audio codec
bb041d03e14f dt-bindings: at24: add ST M24256E Additional Write lockable page support
c52e0b44f52d ARM: dts: imx6sll: fix anatop thermal dtbs_check warnings
0ad8c197e84e arm64: dts: imx8m*-venice-gw75xx: add Accelerometer device
f3e374f020bd arm64: dts: imx8qm-mek: Add PCIe and SATA
ae0cdc268451 arm64: dts: imx8qxp-mek: Add PCIe support
0dfe113f6196 arm64: dts: imx8dxl-evk: Add PCIe support
1f04693e298f arm64: dts: imx8-ss-hsio: Add PCIe and SATA support
0b1f674ef893 arm64: dts: colibri-imx8x: Fix typo "rewritting"
ed688466bd31 arm64: dts: imx93-9x9-qsb: Add PDM microphone sound card support
5581f5e11eae arm64: dts: imx93-9x9-qsb: add bt-sco sound card support
dbdd22ddfac2 arm64: dts: imx93-9x9-qsb: Enable sound-wm8962 sound card
d3e21971c3b5 ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board
b11b5832eb54 dt-bindings: arm: fsl: Document i.MX6DL DHCOM SoM on PDK2 carrier board
3036f98efd20 riscv: sophgo: dts: add power key for pioneer box
382306fd81b9 ARM: dts: imx6qdl-dhcom-pdk2: Fill in missing panel power-supply
df4f89b32581 ARM: dts: imx6qdl-dhcom-pdk2: Drop incorrect size-cells in GPIO keys
9b1b00bff3b1 ARM: dts: imx6qdl-dhcom-som: Drop bogus regulator-suspend-mem-microvolt
177785b48e6b arm64: dts: imx95-19x19-evk: add lpi2c[5,6] and sub-nodes
6912c8892abb arm64: dts: imx95-19x19-evk: add nxp,ctrl-ids property
ff37f6cca13c arm64: dts: imx95: enable A55 cpuidle
6fba8c16af61 arm64: dts: imx95: add anamix temperature thermal zone and cooling node
51124be16359 arm64: dts: imx95: update a55 thermal trip points
4d2b2f1d0695 arm64: dts: imx95: add bbm/misc/syspower scmi nodes
fbfc377ba7a8 arm64: dts: imx95: set max-rx-timeout-ms
0c5a7fb42610 ARM: dts: imx7-colibri: Update audio card name
06df2ef8a492 ARM: dts: imx6qdl-colibri: Update audio card name
06a6941c0f78 ARM: dts: imx6qdl-apalis: Update audio card name
2b4ed3fd4960 arm64: dts: imx8mm-kontron: Add DL (Display-Line) overlay with LVDS support
09d68d473bf6 arm64: dts: imx8mm-kontron: Add support for display bridges on BL i.MX8MM
c7bd4069275a riscv: dts: sophgo: Add SARADC description for Sophgo CV1800B
f197a8728a5f riscv: dts: sophgo: Add LicheeRV Nano board device tree
b4f7d900d99a riscv: dts: sophgo: Add initial SG2002 SoC device tree
05309c2c85c7 Realtek SPI-NAND controller
734f739458e7 dt-bindings: phy: sparx5: document lan969x
92a719586c26 dt-bindings: phy: bcm-ns-usb2-phy: drop deprecated variant
85d7821330e4 dt-bindings: iio: adc: add ad7779 doc
219811555bd9 dt-bindings: iio: adc: ad7606: Add iio backend bindings
746f361d888c dt-bindings: iio: adc: ad7606: Remove spi-cpha from required
7bb5b0ef1349 dt-bindings: iio: pressure: bmp085: Add interrupts for BMP3xx and BMP5xx devices
0900965dffb4 dt-bindings: iio: imu: smi240: add Bosch smi240
50057515bdfa dt-bindings: phy: Add QMP UFS PHY compatible for QCS8300
e438761375e2 dt-bindings: phy: qcom: snps-eusb2: Add SAR2130P compatible
84892869e473 dt-bindings: dma: sifive pdma: Add PIC64GX to compatibles
eb53a9f1aad0 dt-bindings: dma: stm32-dma3: prevent additional transfers
db5d78da359b dt-bindings: dma: stm32-dma3: prevent packing/unpacking mode
01a6a247a537 dt-bindings: dma: qcom,gpi: Add SAR2130P compatible
d3c8498b6a47 dt-bindings: soc: rockchip: add rk3576 usb2phy syscon
3c7b4436a3ef dt-bindings: soc: rockchip: add rk3576 vo1-grf syscon
716b379a0e4e arm64: dts: mediatek: mt8186-corsola: Fix GPU supply coupling max-spread
a1bdc8d588cf arm64: dts: mediatek: mt8195-cherry: Use correct audio codec DAI
7b256ed28e8b arm64: dts: mediatek: mt8188: Fix USB3 PHY port default status
e2809c3e4393 arm64: dts: mediatek: mt8173-elm-hana: Add vdd-supply to second source trackpad
a93b20e4e56c arm64: dts: mediatek: mt8186-corsola-voltorb: Merge speaker codec nodes
c5a57299769e dt-bindings: soc: mediatek: Add DVFSRC bindings for MT8183 and MT8195
a18fd2bcdfce arm64: dts: mediatek: mt8390-genio-700-evk: Enable ethernet
d9d3b66f2926 arm64: dts: mediatek: mt8188: Add ethernet node
6c459245f516 arm64: tegra: Create SKU8 AGX Orin board file
0e227df92387 dt-bindings: arm: Tegra234 Industrial Module
6e567b53df79 dt-bindings: display: bridge: sil,sii9022: Add bus-width
31a6dad2157f dt-bindings: display: bridge: tc358768: switch to bus-width
e52b8f328e65 dt-bindings: display: mediatek: Add OF graph support for board path
a5b8bc18db9d spi: dt-bindings: samsung: Add a compatible for samsung,exynos8895-spi
fcb56ba369e5 dt-bindings: spi: Add realtek,rtl9301-snand
3b3e464afa21 ARM: dts: Reconfigure the MC2 eMMC interface
a9ef1eb7ced8 ARM: dts: ux500: Add touchkeys to Codinas
ea8b05f87b2e dt-bindings: display/msm: Document the DPU for SA8775P
dd02bc215d76 dt-bindings: display/msm: Document MDSS on SA8775P
37d89b0da653 dt-bindings: display/msm: merge SM8550 DPU into SC7280
7901f24ee5fd dt-bindings: display/msm: merge SM8450 DPU into SC7280
ecfbf7ca3ff2 dt-bindings: display/msm: merge SM8350 DPU into SC7280
c23d5cbb9118 dt-bindings: display/msm: merge SM8250 DPU into SM8150
9f2c304f24e6 dt-bindings: display/msm: merge SC8280XP DPU into SC7280
7b235a5fe2b6 dt-bindings: display: msm: dp-controller: document SA8775P compatible
ec37fc180ec1 arm64: dts: layerscape: remove cooling-max-state and cooling-min-state
b2a0c2f4cdaf ARM: dts: imx6qdl-dhcom: Fix model typo for i.MX6 DHSOM
11747d9128af arm64: dts: imx8mp: add cpuidle state "cpu-pd-wait"
61c72c95b163 ARM: dts: imx6qdl-tx6: Fix 'fixed-clock' description
561a8b0f511b ARM: dts: imx6qdl-tx6: Remove 'turn-on-delay-ms'
a3da9407fea4 arm64: dts: imx8mp-evk: add PCIe Endpoint function overlay file
3ff668119d88 dt-bindings: input: mediatek,pmic-keys: Add compatible for MT6359 keys
e835158c65f4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
6cc32685e36f Merge 6.12-rc4 into usb-next
745c9a7e2695 Merge 6.12-rc4 into tty-next
b73d66e9e6f9 Merge 6.12-rc4 into char-misc-next
97079da3b2c4 arm64: dts: ti: k3-am64: Add ti,pa-stats property
ddeec60183dd arm64: dts: ti: k3-am64-main: Add ti,pruss-pa-st node
7ab873810d8e arm64: dts: ti: k3-am654-icssg2: Add ti,pa-stats property
cac55bdc6b45 arm64: dts: ti: k3-am65-main: Add ti,pruss-pa-st node
aea8579d9280 arm64: dts: ti: k3-am62a7-phyboard-lyra-rdk: Update ethernet internal delay
a62ec33e597a arm64: dts: ti: k3-am62x-phyboard-lyra: Drop unnecessary McASP AFIFOs
b31d5fc38d27 arm64: dts: ti: k3-am64x-sk: Enable eQEP
572891e2ea8b arm64: dts: ti: k3-am64-main: Add eQEP nodes
a278dcec62b7 arm64: dts: ti: k3-am62p-main: Add eQEP nodes
5d37c1118395 arm64: dts: ti: k3-am62a-main: Add eQEP nodes
5e8af74c8ba7 arm64: dts: ti: k3-am62-main: Add eQEP nodes
17e308cc0b97 arm64: dts: ti: k3-am642-evm: Add M4F remoteproc node
8e4ca5fe2c46 arm64: dts: ti: k3-am642-sk: Add M4F remoteproc node
8fc6f5415c54 arm64: dts: ti: k3-am64: Add M4F remoteproc node
50abc117a20d arm64: dts: ti: k3-am625-sk: Add M4F remoteproc node
48e8505beee9 arm64: dts: ti: k3-am62: Add M4F remoteproc node
0309d6086f00 Revert "arm64: dts: ti: am62-phyboard-lyra: Add overlay to increase cpu frequency to 1.4 GHz"
f434f5970ce1 arm64: dts: ti: am62-phycore-som: Increase cpu frequency to 1.4 GHz
3063860fde37 Merge tag 'renesas-pinctrl-for-v6.13-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
ceb22b29c581 dt-bindings: pinctrl: spacemit: add support for K1 SoC
22ccb431ff16 dt-bindings: display: panel-simple: Document support for Microchip AC69T88A
2ecb2de40a66 dt-bindings: clock: ti: Convert divider.txt to json-schema
6de19d8f0ff4 dt-bindings: clock: ti: Convert interface.txt to json-schema
eb274205dc9f dt-bindings: imx-rng: Allow passing only "fsl,imx31-rnga"
6215e0dd208e dt-bindings: display: Add Sharp Memory LCD bindings
4497ec169a33 dt-bindings: gpio-mmio: Add ngpios property
0fa8dc3b05bb arm64: dts: fsl-lx2160a: add rev2 support
9405a41d0c9e arm64: dts: imx8mp: Add support for DH electronics i.MX8M Plus DHCOM PicoITX
a18f1526ea4f dt-bindings: arm: fsl: Document DH electronics i.MX8M Plus DHCOM PicoITX
a40b650b9c6c arm64: dts: imx8mp-phyboard-pollux-rdk: update gpio-line-names
efe0961bcc0d arm64: dts: imx8mp: Add DH i.MX8MP DHCOM SoM on DRC02 carrier board
4067f5c56da6 dt-bindings: arm: fsl: Document DH i.MX8MP DHCOM SoM on DRC02 carrier board
dca2a70961bd dt-bindings: reset: npcm: add clock properties
7cbf7b89f442 dt-bindings: interrupt-controller: Add support for ASPEED AST27XX INTC
4f112cd1aebd dt-bindings: clock: Add MediaTek MT6735 clock and reset bindings
5fffc63d2ac3 dt-bindings: clock: add Mobileye EyeQ6L/EyeQ6H clock indexes
72170e5b5797 Revert "dt-bindings: clock: mobileye,eyeq5-clk: add bindings"
3995b2076704 dt-bindings: wireless: wilc1000: Document WILC3000 compatible string
4f86698e3e4f dt-bindings: phy: ti,tcan104x-can: Document Microchip ATA6561
954430d0eac8 dt-bindings: phy: add NXP PTN3222 eUSB2 to USB2 redriver
bf20defea7b3 dt-bindings: phy: mxs-usb-phy: add imx8qxp compatible
f836468e82c9 dt-bindings: phy: rk3228-hdmi-phy: convert to yaml
d4931423cede spi: dt-bindings: brcm,bcm2835-aux-spi: Convert to dtschema
9e084dc5e189 dt-bindings: phy: mediatek: tphy: add a property for power-domains
b2a6f3584847 dt-bindings: phy: Add eDP PHY compatible for sa8775p
40b48a871c03 dt-bindings: phy: rockchip-usbdp: add rk3576
9cad4b12d670 dt-bindings: display: rockchip: Add schema for RK3588 HDMI TX Controller
d1b1c09ad1dc dt-bindings: phy: rockchip,inno-usb2phy: add rk3576
4decea3b16e6 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x8
cd2ee82322fa dt-bindings: phy: Add QMP UFS PHY comptible for QCS615
b3be38224e6a dt-bindings: phy: describe the Qualcomm SGMII PHY
5b6622add587 ASoC: Merge up fixes
9e8eedb5aca9 arm64: dts: imx: Add imx8mp-iota2-lumpy board
001e26a4496f dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board
9cdd6ca350d1 arm64: dts: freescale: imx8mp-verdin: Add Ivy carrier board
bcf5eb264359 arm64: dts: freescale: imx8mp-verdin: add labels to som nodes
7a813c060658 dt-bindings: arm: freescale: Add verdin imx8mp ivy board
9a4d53bcb000 dt-bindings: arm: freescale: Add verdin imx8mm ivy board
babe9c9bc350 arm64: dts: freescale: imx8mm-verdin: Add Ivy carrier board
7fe5efbbfc73 arm64: dts: freescale: imx8mm-verdin: add label to som adc node
439c1b519a0a arm64: dts: imx8mp-phyboard-pollux-rdk: add gpio-fan
d3a155830740 ARM: dts: amlogic: meson8/8b: remove invalid pinctrl reg
70dfe5f6b6d7 arm64: dts: exynos: Add initial support for Samsung Galaxy Note20 5G (c1s)
1fb33fff8bdf arm64: dts: exynos: Add initial support for the Exynos 990 SoC
54c9c140f62f dt-bindings: arm: samsung: samsung-boards: Add bindings for Exynos 990 boards
9380c4ca2ed5 dt-bindings: arm: cpus: Add Samsung Mongoose M5
875a598c29c8 dt-bindings: hwinfo: exynos-chipid: Add compatible for Exynos 990 chipid
3b8da126b7d6 dt-bindings: pinctrl: samsung: Add exynos990-wakeup-eint compatible
d05da361a158 dt-bindings: pinctrl: samsung: Add exynos990-pinctrl compatible
e6ad38f15ef1 dt-bindings: usb: add rk3576 compatible to rockchip,dwc3
172cff4b0fe5 dt-bindings: power/supply: qcom,pmi8998-charger: Drop incorrect "#interrupt-cells" from example
f608622a4c61 arm64: dts: qcom: x1e80100: Resize GIC Redistributor register region
7605dbdc0eb3 dt-bindings: reset: syscon-reboot: Add reg property
c8f503143d90 dt-bindings: power: supply: Add TI TWL603X charger
2e03d81a95fe arm64: dts: qcom: x1e80100: rename vph-pwr regulator nodes
3b3a1e7fc62e arm64: dts: mediatek: mt8188: Add eDP and DP TX nodes
e4257c23f0e0 arm64: dts: mediatek: mt8188: Add DP-INTF nodes
9a5bd28490fd arm64: dts: mediatek: mt8188: Add display nodes for vdosys1
ea1c3e87fddb arm64: dts: mediatek: mt8188: Add display nodes for vdosys0
1042ce37df70 arm64: dts: mediatek: mt8188: Add JPEG decoder and encoder nodes
422075bb8edd arm64: dts: mediatek: mt8188: Add video decoder and encoder nodes
1c67a339a469 arm64: dts: mediatek: mt8188: Add MIPI DSI nodes
13d97b6e2d15 arm64: dts: mediatek: mt8188: Add PCIe nodes
bb8ed945f116 arm64: dts: mediatek: mt8188: Assign GCE aliases
28e7afea2b36 arm64: dts: mediatek: mt8390-genio-700-evk: add keys and USB HUB
3afc934beaf9 arm64: dts: mediatek: mt8390-genio-700-evk: update regulator names
98405216faa7 arm64: dts: mediatek: mt8390-genio-700-evk: enable pcie
e1e0053cf4dd arm64: dts: mt8183: kukui: Fix the address of eeprom at i2c4
8a4fb1889563 arm64: dts: mt8183: krane: Fix the address of eeprom at i2c4
1d315aee39e4 arm64: dts: mediatek: mt7988: add efuse block
f2fbf857fb76 arm64: dts: mediatek: mt7988: add UART controllers
b210c250e291 arm64: dts: mt8183: Add encoder node
49b0cdb0196e arm64: dts: mediatek: mt8395-genio-1200-evk: Enable GPU
0d6269b04bd8 arm64: dts: mediatek: mt8188: Add socinfo nodes
0bd19540e3c1 arm64: dts: mediatek: mt8188: Add audio support
40f680fa96e6 ARM: dts: nxp: imx6ull: add dma support for uart8
026fba088d6c ARM: dts: nxp: imx6ul: add dma support for all uarts
22403370729e dt-bindings: phy: qcom,msm8998-qmp-usb3-phy: Add support for QCS615
1b46afcf7db2 dt-bindings: phy: qcom,qusb2: Add bindings for QCS615
0e32ff673a5a ARM: dts: imx6q-lxr: Add board support
08e95b0325e7 dt-bindings: arm: fsl: Document the Comvetia LXR board
26ce50e7d8b2 dt-bindings: vendor-prefixes: Add an entry for ComVetia AG
00c30e415792 dt-bindings: display: panel: Add Samsung AMS581VF01
927f00825fba dt-bindings: mfd: mediatek: mt6397: Add ADC, CODEC and Regulators for MT6359
c4a0a08b93f2 dt-bindings: mfd: mediatek: mt6397: Add start-year property to RTC
bd1251bec9e4 dt-bindings: mfd: Convert zii,rave-sp.txt to yaml format
c658eb03f5ec dt-bindings: mfd: twl: Add charger node also for TWL603x
9c6b9e05ec76 dt-bindings: mfd: syscon: Document the non simple-mfd syscon on PolarFire SoC
90d7e910eb9f dt-bindings: mfd: Add support for the samsung,s2dos05
87d6133346a0 dt-bindings: mfd: qcom,tcsr: Add compatible for qcs615
f7d8e2a8fa7f dt-bindings: mfd: qcom,tcsr: Add compatible for QCS8300
34d22c52efc5 dt-bindings: mfd: qcom,tcsr: Document support for SA8255p
31e89d05e127 dt-bindings: mfd: mediatek: mt6397: Convert to DT schema format
9548ef611f9a arm64: dts: colibri-imx8x: Add ad7879_ts label to touchscreen controller
4801934a1531 dt-bindings: media: Add bindings for raspberrypi,rp1-cfe
0a4f497ae4ee dt-bindings: media: renesas,isp: Add binding for V4M
91d41465acda dt-bindings: media: renesas,isp: Add Gen4 family fallback
c2e69b242813 dt-bindings: i2c: maxim,max96712: Add compatible for MAX96724
1c90953be33b dt-bindings: media: renesas,csi2: Add binding for V4M
68bd2cb51490 arm64: dts: imx8mm-venice-*: add RTC aliases
5e5a7e406f64 arm64: dts: imx93-9x9-qsb: add I3C overlay file
0c66bf12b173 dt-bindings: pinctrl: samsung: Add missing constraint for Exynos8895 interrupts
13b53cabe1fa dt-bindings: pinctrl: samsung: Fix interrupt constraint for variants with fallbacks
171713151ac8 arm64: dts: imx8mp-venice-gw74xx: add M2SKT_GPIO10 gpio configuration
3234e35dd74b arm64: dts: freescale: minor whitespace cleanup
29ef9ee273ac arm64: dts: Add support for Kontron i.MX8MP SMARC module and eval carrier
966e25fa019d arm64: dts: Add support for Kontron OSM-S i.MX8MP SoM and BL carrier board
669e05743d3b dt-bindings: arm: fsl: Add Kontron i.MX8MP OSM-S based boards
8e60288ef257 arm64: dts: imx93-11x11-evk: Enable sound-wm8962 sound card
f7899e2eb04d arm64: dts: imx93-11x11-evk: add flexcan support
0c059ea2b317 arm64: dts: imx93-11x11-evk: add io-expander adi,adp5585-01
27a12bb96f4a arm64: dts: imx93-11x11-evk: remove redundant "sleep" pinctrl in lpi2c2 node
ce488aac6011 dt-bindings: clocks: add binding for gated-fixed-clocks
a52fb79b0ede arm64: dts: renesas: r9a09g057: Add ICU node
c70b39c7804c dt-bindings: interrupt-controller: Add Renesas RZ/V2H(P) Interrupt Controller
6b2ee6f97f03 dt-bindings: iio: light: veml6030: add veml7700
809b7c6f70ab riscv: dts: thead: remove enabled property for spi0
6b7745f477d0 riscv: dts: thead: Add missing GPIO clock-names
90e90f2cfc80 riscv: dtb: thead: Add BeagleV Ahead LEDs
844db5464ff5 riscv: dts: thead: Add TH1520 pinctrl settings for UART0
36270053083a riscv: dts: thead: Add Lichee Pi 4M GPIO line names
73fb6b2c50d6 riscv: dts: thead: Adjust TH1520 GPIO labels
339c9346dc4a riscv: dts: thead: Add TH1520 GPIO ranges
fc28f97249d5 riscv: dts: thead: Add TH1520 pin control nodes
d15a1d47fc59 dt-bindings: vendor-prefixes: add spacemit
16c7c623dee2 dt-bindings: backlight: Convert zii,rave-sp-backlight.txt to yaml
d42ad23dcba4 dt-bindings: leds: Add 'active-high' property
52c7513233d2 dt-bindings: net: tja11xx: add "nxp,rmii-refclk-out" property
786b481a9829 arm64: dts: imx8mm-emtop-baseboard: Add Peripherals Support
b71ca16e750e arm64: dts: imx8-apalis: Add usb4 host support
2394fd72d428 arm64: dts: imx8-apalis: Add nau8822 audio-codec to apalis eval v1.2
e3c292d1f737 arm64: dts: imx8-apalis: Add audio support
c96165670fbd arm64: dts: imx8-apalis: Set thermal thresholds
1db463a2e954 arm64: dts: imx8qm: Remove adma pwm
c035becefc62 arm64: dts: qcom: sa8775p: extend the register range for UFS ICE
7ff7071f9f43 arm64: dts: qcom: sm8550: extend the register range for UFS ICE
889c773c3f84 arm64: dts: qcom: sm8650: extend the register range for UFS ICE
555a22db63da arm64: dts: qcom: sa8775p: Populate additional UART DT nodes
b21f6a0e8035 arm64: dts: qcom: x1e80100-t14s: add another trackpad support
c6d16d152204 arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
bcddc55313a4 dt-bindings: arm: qcom: Add Dell XPS 13 9345
75acf9f43361 arm64: dts: qcom: x1e78100-t14s: enable otg on usb-c ports
4ce3cb7331f1 arm64: dts: qcom: x1e80100-crd: enable otg on usb ports
3d1e606e47ea arm64: dts: qcom: x1e80100: enable OTG on USB-C controllers
b9303b525b4b arm64: dts: qcom: x1e80100-vivobook-s15: Drop orientation-switch from USB SS[0-1] QMP PHYs
c51166f8ad48 arm64: dts: qcom: x1e80100-slim7x: Drop orientation-switch from USB SS[0-1] QMP PHYs
37e90c03b449 arm64: dts: qcom: Drop undocumented domain "idle-state-name"
aeb29cc23669 arm64: dts: qcom: sc7280: Add 0x81 Adreno speed bin
3c5b615079b4 arm64: dts: qcom: x1e80100: enable GICv3 ITS for PCIe
f9ab469e781d dt-bindings: dma: rz-dmac: Document RZ/A1H SoC
423821e8b5cf dt-bindings: rtc: mpfs-rtc: Properly name file
8c9723a68cf6 dt-bindings: mmc: sdhci-msm: Document the X1E80100 SDHCI Controller
1d51903da4ef dt-bindings: mmc: sdhci-msm: add IPQ5424 compatible
20e9a1c8d97c dt-bindings: mmc: cdns,sdhci: ref sdhci-common.yaml
70c9390cfaa7 dt-bindings: mmc: cdns: document Microchip PIC64GX MMC/SDHCI controller
ca5d807bbbdf ARM: dts: rockchip: Add Relfor Saib board
38159d2940cf dt-bindings: arm: rockchip: Add Relfor Saib board
c7f8baab2a0c dt-bindings: vendor-prefixes: Add Relfor labs
46ba63fe482f ARM: dts: rockchip: Add watchdog node for RV1126
1e35f91de25d dt-bindings: watchdog: rockchip: Add rockchip,rv1126-wdt string
5c092b1d7063 arm64: dts: renesas: rzg3s-smarc: Use interrupts-extended for gpio-keys
b1ff59620ae1 arm64: dts: renesas: beacon-renesom: Use interrupts-extended for touchscreen
3434d2b8e224 arm64: dts: renesas: Use interrupts-extended for WLAN
224f6a584251 arm64: dts: renesas: Use interrupts-extended for video decoders
4cde4936ee89 arm64: dts: renesas: Use interrupts-extended for USB muxes
21837e846ca6 arm64: dts: renesas: Use interrupts-extended for PMICs
08ab7120e63b arm64: dts: renesas: Use interrupts-extended for I/O expanders
80b32a671718 arm64: dts: renesas: Use interrupts-extended for HDMI bridges
8c17f11e2b8a arm64: dts: renesas: Use interrupts-extended for Ethernet PHYs
561722cb17bb arm64: dts: renesas: Use interrupts-extended for DisplayPort bridges
aa4687349f31 ARM: dts: renesas: kzm9g: Use interrupts-extended for sensors
65b548334a98 ARM: dts: renesas: kzm9g: Use interrupts-extended for I/O expander
276f27402851 ARM: dts: renesas: r8a7742-iwg21m: Use interrupts-extended for RTC
a4e199acde95 ARM: dts: renesas: iwg22d-sodimm: Use interrupts-extended for port expander
87a105b8df5c ARM: dts: renesas: Use interrupts-extended for video decoders
3a7481a6911d ARM: dts: renesas: Use interrupts-extended for touchpanels
007b9bf3c590 ARM: dts: renesas: Use interrupts-extended for PMICs
ec9235ef00d3 ARM: dts: renesas: Use interrupts-extended for HDMI bridges
34f3321ec6df ARM: dts: renesas: Use interrupts-extended for Ethernet PHYs
2ad74334f74f ARM: dts: renesas: Use interrupts-extended for Ethernet MACs
25c3332c9796 dt-bindings: gpio: aspeed,ast2400-gpio: Support ast2700
93d9a41cf53a Merge tag 'v6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
6800013270c4 Merge 6.12-rc3 into usb-next
ae776265ffc9 dt-bindings: clock: add support for lan969x
e1975abaca46 ARM: dts: microchip: Rename LED sub nodes name
8f0592fd90d9 ARM: dts: microchip: Rename the pmic node
19694a10b460 ARM: dts: microchip: Rename the eeprom nodename
803e741b26b4 ARM: dts: microchip: sama7g5ek: Add power monitor support
369739ce16a1 ARM: dts: microchip: sama7g54_curiosity: Add power monitor support
9db788660aa1 ARM: dts: microchip: sama5d2_icp: Add power monitor support
c904ffbc3092 ARM: dts: microchip: sam9x60ek: Add power monitor support
b7f7646bf617 ARM: dts: microchip: Unify rng node names
7bcf27db3e0e ARM: dts: microchip: Add trng labels for all at91 SoCs
d349c4f85ddc ARM: dts: microchip: sam9x60: Add missing property atmel,usart-mode
1572a7cd3baf dt-bindings: microchip: atmel,at91rm9200-tcb: add sam9x7 compatible
82fd17cf9cca arm64: dts: ti: Add support for J742S2 EVM board
3fbb4e71ee4a arm64: dts: ti: Introduce J742S2 SoC family
9200229331e7 dt-bindings: arm: ti: Add bindings for J742S2 SoCs and Boards
5ad7086348b1 arm64: dts: ti: Refactor J784s4-evm to a common file
61116717b2c8 arm64: dts: ti: Refactor J784s4 SoC files to a common file
081c45d86c97 dt-bindings: media: ti,j721e-csi2rx-shim: Update maintainer email
e97c92a1288d dt-bindings: iio: adc: add AD762x/AD796x ADCs
bb8c9c2a684f Merge tag 'v6.12-rc2' into test2
d4a1153e08d3 dt-bindings: net: emaclite: Add clock support
2d4c608b14c2 dt-bindings: rtc: mpfs-rtc: Add PIC64GX compatibility
82fb791a0b4f dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add QCS8300 compatible
a006ae08f18c dt-bindings: phy: qcom,usb-snps-femto-v2: Add bindings for QCS8300
2a47837a6a43 dt-bindings: usb: qcom,dwc3: Add QCS8300 to USB DWC3 bindings
e8276f3d76ac dt-bindings: leds: bcm63138: Add shift register bits
1c98277621a1 dt-bindings: serial: snps-dw-apb-uart: Document Rockchip RK3528
4591ac9bf944 dt-bindings: serial: snps-dw-apb-uart: Add Rockchip RK3576
0c0550d3439e dt-bindings: serial: rs485: Fix rs485-rts-delay property
bc03157c4989 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
1552fc04c8e3 Merge tag 'drm-misc-next-2024-10-09' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
7641349eb174 arm64: dts: exynosautov920: add peric1, misc and hsi0/1 clock DT nodes
d9318718df7e Merge branch 'for-v6.13/clk-dt-bindings' into next/dt64
045dbca8dfe9 Merge branch 'for-v6.13/clk-dt-bindings' into next/clk
c6057e9c7a9e dt-bindings: clock: exynosautov920: add peric1, misc and hsi0/1 clock definitions
49395d036a58 dt-bindings: leds: Document "rc-feedback" trigger
68abe5c0bbec dt-bindings: clock: xilinx: describe whether dynamic reconfig is enabled
4ce301971c64 ASoC: dt-bindings: Add Loongson I2S controller
871ccd03f57e ASoC: dt-bindings: Add NXP uda1342 Codec
e2c119138d31 ASoC: dt-bindings: Add Everest ES8323 Codec
e7152c3acca2 arm64: dts: renesas: r8a779h0: Add OTP_MEM node
65a521f35063 arm64: dts: renesas: r8a779g0: Add OTP_MEM node
04cdb59fe3ff arm64: dts: renesas: r8a779f0: Add E-FUSE node
4195489a94de arm64: dts: renesas: r8a779a0: Add E-FUSE node
1113149692ef arm64: dts: renesas: beacon: Add SD/OE pin properties
58ef1410262d arm64: dts: renesas: hihope: Add SD/OE pin properties
5e1e0dfe606a arm64: dts: renesas: salvator-x: Add SD/OE pin properties
2f6df7189b2d arm64: dts: renesas: ulcb: Add SD/OE pin properties
9fca3436586b arm64: dts: renesas: salvator-xs: Add SD/OE pin properties
5412125ac591 ARM: dts: renesas: genmai: Enable MMCIF
c3e40a9b9efb ARM: dts: renesas: genmai: Enable SDHI0
dccdee817ccc arm64: dts: renesas: rz{g2l,g2lc}-smarc-som: Update partition table for spi-nor flash
78a979f6cfd9 arm64: dts: renesas: rzg2ul-smarc-som: Enable serial NOR flash
348e61ec8d0d dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Allow schmitt and open drain properties
edcb99a82f7e Merge wireless-next into staging-next
a71be37b5de8 arm64: dts: amlogic: Add Amlogic C3 PWM
200722693564 dt-bindings: display: panel: Add Samsung AMS639RQ08
043a4e837c78 dt-bindings: panel: add Samsung s6e3ha8
282c7dde11e3 dt-bindings: display: panel-lvds: Add compatible for Jenson BL-JT60050-01A
99d670ed3553 dt-bindings: vendor-prefixes: Add Jenson Display
259161dcea8e Merge net-next/main to resolve conflicts
e693d5afac4a Merge tag 'drm-misc-next-2024-09-26' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
2955a2febba6 dt-bindings: net: marvell,aquantia: add property to override MDI_CFG
c3f883a9e9bf Merge tag 'drm-misc-next-2024-09-20' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
b0a2a71ee7b7 dt-bindings: clock: convert rockchip,rk3328-cru.txt to YAML
a5b48af0bb34 arm64: rockchip: add clocks property to cru node rk3328
95f747b4f658 arm64: dts: rockchip: fix compatible string rk3328 cru node
8378a03b73ae dt-bindings: writing-schema: Add details on YAML text blocks
2a556c7c3f8a regulator: dt-bindings: vctrl-regulator: convert to YAML
09d320f523bf dt-bindings: net: fec: add pps channel property
9d2430d75454 ARM: dts: imx7ulp: add "nxp,sim" property for usbphy1
b6098914fba3 arm64: dts: s32g2: Disable support for SD/eMMC UHS mode
e25af93c7f88 arm64: dts: s32g: Add S32G2/S32G3 uSDHC pinmux
1fe5abb81f67 ARM: dts: imx28-apx4devkit: Fix the rtc compatible
ca76f55fc4ff dt-bindings: net: ethernet-phy: Add timing-role role property for ethernet PHYs
420663585109 ARM: dts: imx6qdl-mba6: Add reserved memory area for CMA memory
7f8a95299bd0 arm64: dts: imx8mm: Add dbi2 and atu reg for i.MX8MM PCIe EP
44e6d98d4cc6 arm64: dts: imx8mp: Add dbi2 and atu reg for i.MX8MP PCIe EP
a2021b75e127 arm64: dts: imx8mq: Add dbi2 and atu reg for i.MX8MQ PCIe EP
dc211561776b dt-bindings: net: realtek: Use proper node names
cd6d97f59761 arm64: dts: qcom: qcs6490-rb3gen2: Enable PWR/VOL keys
ebbe6a9c33fe arm64: dts: qcom: qcs6490-rb3gen2: Specify i2c1 clock frequency
5a588983eab1 ASoC: dt-bindings: rockchip,rk3036-codec: convert to yaml
2b7c81f060b6 ASoC: Merge up v6.12
d820555c1f28 spi: Merge up v6.12
f650903e3b7f ARM: dts: renesas: rcar-gen2: Switch HS-USB to renesas,enable-gpios
39bee53dfd9e ARM: dts: renesas: r7s72100: 'bus-width' is a board property
eb9f07d9e4f4 arm64: dts: renesas: beacon-renesom: Switch to mic-det-gpios
9e4ebc4803d2 ARM: dts: renesas: Use proper node names for keys
bb139ec6c060 ARM: dts: renesas: r8a7778: Rename 'bsc' to 'lbsc'
b8e0085e6650 ARM: dts: renesas: Add proper node names to (L)BSC devices
f71cb63ecb03 dt-bindings: phy: cadence-sierra: Allow PHY types QSGMII and SGMII
a1a280e3c562 dt-bindings: phy: Add STM32MP25 COMBOPHY bindings
1cce969a3069 arm64: dts: qcom: sda660-ifc6560: enable mDSP and WiFi devices
385f3a706daf arm64: dts: qcom: sdm630: add WiFI device node
ba24d1324aa0 arm64: dts: qcom: sdm630: enable A2NOC and LPASS SMMU
b4f0cdb93361 arm64: dts: qcom: sda660-ifc6560: fix l10a voltage ranges
08516c3836c6 arm64: dts: qcom: sda660-ifc6560: enable GPU
ef67aa0a21f7 arm64: dts: qcom: sdm630: enable GPU SMMU and GPUCC
981d78b61dce dt-bindings: iio: light: veml6030: add veml6035
e0d7b63c359e dt-bindings: iio: light: veml6030: add vdd-supply property
659a221815d7 dt-bindings: iio: dac: ad3552r: fix maximum spi speed
89bd84e00d20 dt-bindings: iio: imu: migrate InvenSense email to TDK group domain
9f2f8b13c6ec dt-bindings: iio: adc: Add the GE HealthCare PMC ADC
332a4726d46d dt-bindings: vendor-prefixes: Add an entry for GE HealthCare
7d0dcec5cf2b arm64: dts: qcom: qcm6490-fairphone-fp5: Add thermistor for UFS/RAM
9faee8d13bbb arm64: dts: qcom: sm6350: Fix GPU frequencies missing on some speedbins
59021fcbaea7 arm64: dts: qcom: sc8280xp: Add Microsoft Surface Pro 9 5G
f941eb9e840d arm64: dts: qcom: sc8280xp: Add uart18
58766bb02b1a dt-bindings: arm: qcom: Document Microsoft Surface Pro 9 5G
d2a8bd12a58a arm64: dts: qcom: minor whitespace cleanup
650341209ce1 arm64: dts: qcom: drop underscore in node names
87dafc2af9bf ARM: dts: qcom: minor whitespace cleanup
68ba7e3093c4 ARM: dts: qcom: drop underscore in node names
f0e620731d60 arm64: dts: qcom: x1e80100-romulus: Set up USB Multiport controller
15693801706e arm64: dts: qcom: x1e80100-romulus: Add lid switch
3ac1117ff640 dt-bindings: clock: qcom,sm8450-camcc: Add SM8475 CAMCC bindings
10088f897c56 dt-bindings: clock: qcom,sm8450-videocc: Add SM8475 VIDEOCC bindings
583c833f335a dt-bindings: clock: qcom,sm8450-gpucc: Add SM8475 GPUCC bindings
90455163e2d5 dt-bindings: clock: qcom,sm8450-dispcc: Add SM8475 DISPCC bindings
7931a601e1a3 dt-bindings: clock: qcom,gcc-sm8450: Add SM8475 GCC bindings
4bd022291a79 arm64: dts: qcom: sc7280: Fix PMU nodes for Cortex A55 and A78
d2f949857a37 arm64: dts: qcom: x1e80100: Add debug uart to Lenovo Yoga Slim 7x
d6b8df3106b0 arm64: dts: qcom: x1e80100: describe tcsr download mode register
731c1cb1f4d5 arm64: dts: qcom: qcs6460-rb3gen2: enable venus node
e9720dc3afbb arm64: dts: qcom: x1e80100: Affirm IDR0.CCTW on apps_smmu
06424041d32a arm64: dts: qcom: sm8450: Affirm IDR0.CCTW on apps_smmu
47ccab6fcc0b arm64: dts: qcom: sm8350: Affirm IDR0.CCTW on apps_smmu
e45dd32195c3 arm64: dts: qcom: sm8150: Affirm IDR0.CCTW on apps_smmu
8f3c1d70a169 arm64: dts: qcom: sm6350: Affirm IDR0.CCTW on apps_smmu
df39a8050659 arm64: dts: qcom: sdm845: Affirm IDR0.CCTW on apps_smmu
270061a6fab8 arm64: dts: qcom: sdm670: Affirm IDR0.CCTW on apps_smmu
29387ce4c082 arm64: dts: qcom: sc8280xp: Affirm IDR0.CCTW on apps_smmu
7a314949e604 arm64: dts: qcom: sc8180x: Affirm IDR0.CCTW on apps_smmu
435e35553ca3 arm64: dts: qcom: sc7180: Affirm IDR0.CCTW on apps_smmu
8a7b76025358 arm64: dts: qcom: qdu1000: Affirm IDR0.CCTW on apps_smmu
ec6f718f9ab9 arm64: dts: qcom: qcs6490-rb3gen2: Add SD Card node
31437b048a52 arm64: dts: qcom: sm8650-qrd: remove status property from dispcc device tree node
57ad38d9eb28 arm64: dts: qcom: sm8650-mtp: remove status property from dispcc device tree node
8132697f573a arm64: dts: qcom: sm8650-hdk: remove status property from dispcc device tree node
84ca17adb974 arm64: dts: qcom: sm8650: don't disable dispcc by default
79a12df8a93d arm64: dts: qcom: sm8450-hdk: remove status property from dispcc device tree node
08f0740fbe38 arm64: dts: qcom: sm8450: don't disable dispcc by default
6a5d2b07a1c2 arm64: dts: qcom: sm8450-sony-xperia-nagara: disable dispcc on derived boards
f90b98759450 arm64: dts: qcom: sm8450-qrd: explicitly disable dispcc on the board
000a8024c143 arm64: dts: qcom: sm8350-hdk: remove a blank overwrite of dispcc node status
8fa4a6d46ef3 arm64: dts: qcom: msm8998: add HDMI nodes
6a7fdd43be12 arm64: dts: rockchip: Switch to hp-det-gpios
110fc4fc8fbf arm64: dts: rockchip: Switch to simple-audio-card,hp-det-gpios
ce578767c731 dt-bindings: iio: light: vishay,veml6075: add vishay,veml6070
29868b055c92 dt-bindings: iio: imu: mpu6050: Add iam20680ht/hp bindings to mpu6050
359080581950 ASoC: Clean up {hp,mic}-det-gpio handling
0df63b22c8f6 ARM: dts: ti: dra7: Remove double include of clock bindings
0283571a7331 ARM: dts: ti: omap3434-sdp: drop linux,mtd-name from onenand node
00b214888af5 ARM: dts: ti: omap: am335x-baltos: drop "gpmc,device-nand" from NAND node
f8150d134ba2 ARM: dts: ti: drop linux,mtd-name from NAND nodes
de6fed174a79 ARM: dts: ti/omap: Fix at24 EEPROM node names
18d97d6cc1c4 dt-bindings: usb: dwc3-imx8mp: add compatible string for imx95
2a4990169e34 dt-bindings: phy: imx8mq-usb: add compatible "fsl,imx95-usb-phy"
fb1256fa92bc dt-bindings: usb: renesas,usbhs: Deprecate renesas,enable-gpio
787d98ae3b39 dt-bindings: usb: add PIC64GX compatibility to mpfs-musb driver
f381d0e73e2b dt-bindings: usb: cypress,cypd4226: Drop Tegra specific GPIO defines
300bb4269d7b dt-bindings: usb: genesys,gl850g: allow downstream device subnodes
c989019ae660 riscv: dts: sophgo: cv1812h: add pinctrl support
b991927c7c78 riscv: dts: sophgo: cv1800b: add pinctrl support
5ea06508d59d scsi: ufs: ufs: qcom: dt-bindings: Document the QCS8300 UFS Controller
ecac4d7c7cc8 dt-bindings: fpga: altr,fpga-passive-serial: Convert to yaml
2403f95db3f8 ASoC: dt-bindings: Deprecate {hp,mic}-det-gpio
87fe2b600252 arm64: dts: qcom: msm8998: add HDMI GPIOs
c7e517c97fb1 dt-bindings: PCI: mediatek-gen3: Allow exact number of clocks only
585c45d07807 dt-bindings: gpio: st,nomadik-gpio: Add missing "#interrupt-cells" to example
e53b6c7b8261 dt-bindings: interrupt-controller: Add support for sam9x7 aic
8da717b8063d dt-bindings: power: qcom,rpmpd: document qcs615 RPMh power domains
4c93f97cdc68 dt-bindings: power: qcom,rpmpd: document qcs8300 RPMh power domains
3812a499aa89 arm64: dts: mediatek: mt8188: Add SPMI support for PMIC control
45b1e1440500 arm64: dts: mediatek: mt8188: Add PWM nodes for display backlight
adecb482d783 arm64: dts: mediatek: mt8188: Add SMI/LARB/IOMMU support
5c2395ccf030 arm64: dts: mediatek: mt8188: Add CPU performance controller for CPUFreq
15509164371c arm64: dts: mt8183: Add port node to dpi node
8b07a795fc1c arm64: dts: mt8192-asurada-spherion: Add Synaptics trackpad support
69967111e2b7 arm64: dts: mediatek: mt8186: add FHCTL node
5469dabf6e10 arm64: dts: mediatek: mt8183-pumpkin: add HDMI support
5b01d93025d9 arm64: dts: mediatek: mt8183-kukui: Disable DPI display interface
3bf7adce8f91 arm64: dts: mt8195: Fix dtbs_check error for infracfg_ao node
3eb5b79226ac arm64: dts: mt8195: Fix dtbs_check error for mutex node
79d5a4c7c8b5 arm64: dts: mediatek: mt8395-genio-1200-evk: Fix dtbs_check error for phy
f7e4d69ece47 arm64: dts: mediatek: mt8188: Move SPI NOR *-cells properties
5311cb9de085 arm64: dts: mediatek: mt8188: Move vdec1 power domain under vdec0
41b85940d81e arm64: dts: mediatek: mt8188: Update vppsys node names to syscon
372ce47e0e06 arm64: dts: mediatek: mt8188: Add missing dma-ranges to soc node
288630890bef arm64: dts: mediatek: mt8390-genio-700-evk: Enable Mali GPU
f6802405f4e0 arm64: dts: mediatek: mt8188: Fix wrong clock provider in MFG1 power domain
d4805550924b arm64: dts: rockchip: Enable all 3 USBs on Turing RK1
c9b0d499654d arm64: dts: rockchip: Add Powkiddy RGB20SX
c5b382a594f3 dt-bindings: arm: rockchip: Add Powkiddy RGB20SX
39e90c62b050 arm64: dts: rockchip: Add power button for puma-haikou
b531c25e8e6a dt-bindings: hwinfo: samsung,exynos-chipid: add exynos8895 compatible
fe24d3cdfab3 arm64: dts: exynos: Add initial support for Samsung Galaxy S8
09bf72ba53d2 arm64: dts: exynos: Add initial support for exynos8895 SoC
24af01abacf8 dt-bindings: soc: samsung: exynos-pmu: Add exynos8895 compatible
4ef6f9244f74 dt-bindings: arm: samsung: Document dreamlte board binding
7218905e111f dt-bindings: pinctrl: samsung: add exynos8895-wakeup-eint compatible
41f5d2a15643 dt-bindings: pinctrl: samsung: Add compatible for Exynos8895 SoC
4f59ba89a4a4 dt-bindings: arm: cpus: Add Samsung Mongoose M2
4a89b93976ca arm64: zynqmp: Add thermal zones
11a1b40f2a46 arm64: zynqmp: Expose AMS to userspace as HWMON
9c79137dfa71 arm64: zynqmp: Enable AMS for all boards
4297cfaff763 ARM: dts: socfpga: Fix at24 EEPROM node names
1a8e565ffe0b dt-bindings: Fix array property constraints
c1848318abfe dt-bindings: interrupt-controller: fsl,mu-msi: Drop "interrupt-controller" property
1ec511ef069d dt-bindings: interrupt-controller: ti,sci-inta: Add missing "#interrupt-cells" to example
74424e7f23bb dt-bindings: trivial-devices: add onnn,adt7462
63357e975889 dt-bindings: pinctrl: document the QCS615 Top Level Mode Multiplexer
9f689f9f85b1 ASoC: Add NTP8918 and NTP8835 codecs support
d083bbb62bec dt-bindings: pinctrl: amlogic,meson-pinctrl: lower gpio-line-names minItems for meson8b
edd8d8764671 dt-bindings: pinctrl: Add support for canaan,k230 SoC
6a4f33926064 ARM: dts: renesas: rskrza1: Enable watchdog timer
2a6957e1269c arm64: dts: renesas: rcar-gen4: Switch PCIe to reset-gpios
2ba8c4a5d5d8 ARM: dts: renesas: rza2mevb: Use interrupts-extended for gpio-keys
f7a030d3b38b ARM: dts: renesas: rskrza1: Use interrupts-extended for gpio-keys
aaecea0f8bd4 ARM: dts: renesas: marzen: Use interrupts-extended for gpio-keys
2f03ec558600 ARM: dts: renesas: Remove 'reg-io-width' properties from MMCIF nodes
fff0ddf2bce0 ARM: dts: renesas: Genmai: Update audio codec device node
d8679d2be154 ARM: dts: renesas: genmai: Define keyboard switch
fbb0e65b243d ARM: dts: renesas: genmai: Sort nodes
ea18b054bf65 ARM: dts: renesas: genmai: Enable OS timer modules
68f8258dbf51 ARM: dts: renesas: genmai: Enable watchdog
c733788f6999 ARM: dts: renesas: genmai: Fix partition size for QSPI NOR Flash
36d49e7ae7cc arm64: dts: renesas: r8a779h0: gray-hawk-single: Enable PCIe Host
0d0c88a036b8 arm64: dts: renesas: r8a779h0: Add PCIe Host and Endpoint nodes
d909bff40dfc dt-bindings: pinctrl: qcom: add IPQ5424 pinctrl
28dc5229ae20 Merge branch 'ib-thead-th1520' into devel
33380f1c1ff3 dt-bindings: pinctrl: Add thead,th1520-pinctrl bindings
259cd8c48685 dt-bindings: ocelot: document lan969x-pinctrl
8a571eac3232 dt-bindings: pinctrl: Add SA8255p TLMM
af7be1413d12 dt-bindings: pinctrl: Add support for Xilinx Versal platform
c78de6d3a962 dt-bindings: opp: operating-points-v2-ti-cpu: Describe opp-supported-hw
ec5754987a33 dt-bindings: cpufreq: qcom-hw: document support for SA8255p
ba56c1c064ae arm64: dts: qcom: qcm6490-rb3gen2: enable WiFi
ef14321de506 arm64: dts: qcom: qcm6490-idp: enable WiFi
600a06a3b099 arm64: dts: qcom: sc7280: don't enable GPU on unsupported devices
54debad84f18 arm64: dts: qcom: qcs6390-rb3gen2: use modem.mbn for modem DSP
1031c2c08dea ASoC: dt-bindings: mt6359: Update generic node name and dmic-mode
892d16539671 arm64: dts: rockchip: add LED_FUNCTION_STATUS for RGB LEDs on Radxa E25
c832f8ac3bdc arm64: dts: rockchip: Add AP6275P wireless support to Khadas Edge 2
43840031417b arm64: dts: rockchip: Enable GPU on Turing RK1
3e0e636a275b arm64: dts: rockchip: Enable automatic fan control on Turing RK1
36cf08da66a0 arm64: dts: rockchip: Fix Turing RK1 PCIe3 hang
0764ad8c0518 dt-bindings: clock: samsung: remove define with number of clocks for FSD
3754b2afab7e dt-bindings: memory-controllers: fsl,ifc: split child node differences
8713425fa162 arm64: dts: rockchip: Split up RK3588's PCIe pinctrls
da10f3b08e0f arm64: dts: rockchip: Add RK3588S EVB1 board
33d6b7f1ff4c dt-bindings: arm: rockchip: Add RK3588S EVB1 board
e19e92e9272b arm64: dts: rockchip: Add ArmSoM W3 board
25b187da6e7e arm64: dts: rockchip: Add ArmSoM LM7 SoM
9dad170bea61 dt-bindings: arm: rockchip: Add ArmSoM LM7 SoM
c80b7eba6833 dt-bindings: clock: convert amlogic,meson8b-clkc.txt to dtschema
e5b590f7e262 arm64: dts: rockchip: enable automatic fan control on Orange Pi 5+
5f528a6fedb9 Merge drm/drm-next into drm-misc-next
da705300feb6 arm64: dts: rockchip: add attiny_rst_gate to Ringneck
ee185d62e14c arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck
12d6e10731a4 arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger
2dc1a4182c54 arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma
f3e1990f27da arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar
d61cebb06ff5 dt-bindings: iio: adc: add docs for AD7606C-{16,18} parts
51789d5e7711 dt-bindings: iio: adc: document diff-channels corner case for some ADCs
5e6cfa1a03fb dt-bindings: iio: adc: amlogic,meson-saradc: also allow meson8-saradc to have amlogic,hhi-sysctrl property
970192b0e4c8 dt-bindings: iio: dac: add docs for ad8460
f952c57b067c dt-bindings: iio: light: veml6030: rename to add manufacturer
0cc281b14ca3 dt-bindings: iio: imu: add bmi270 bindings
2b6408921687 dt-bindings: iio: temperature: tmp006: document interrupt
458e2c6fa81b dt-bindings: adc: ad7173: add support for ad4113
da37218f1f2c ARM: dts: amlogic: meson8b-ec100: add missing gpio-line-names entry
68910695abce ARM: dts: amlogic: meson8b-ec100: add missing clocks property in sound card
5dc11b8ed550 ARM: dts: amlogic: meson8-minix-neo-x8: fix invalid pnictrl-names
e9810e32f796 ARM: dts: amlogic: add missing phy-mode in ethmac node
9245aa5c751f ARM: dts: amlogic: meson8: use correct pinctrl bank node name
98b22e41c153 ARM: dts: amlogic: fix /memory node name
4b92b8bf2966 ARM: dts: amlogic: meson8b-odroidc1: fix invalid reset-gpio
6566ba1b4784 ARM: dts: amlogic: meson6: remove support for ATV1200 board
9af30064241f ARM: dts: amlogic: meson8: fix ao_arc_sram node name
0a7a4881969f ARM: dts: amlogic: meson8: fix soc thermal-zone node name
65b134aa3213 ARM: dts: amlogic: meson6: fix clk81 node name
7044f82e12d9 arm64: dts: meson-g12-common: fix uart-ao-a typo
d3b5013b44d4 arm64: dts: meson: a1: bind power domain to temperature sensor
21e260e3efc5 arm64: dts: meson: a1: add definitions for meson PWM
0af71311758b dt-bindings: input: document Novatek NVT touchscreen controller
e3b7e5dc666b dt-bindings: spi: zynqmp-qspi: Include two 'reg' properties only for the Zynq UltraScale QSPI
18838fc29859 ASoC: dt-bindings: realtek,rt5640: Convert to dtschema
45a46ecc03be ASoC: dt-bindings: fsl-esai: Add power-domains for fsl,imx8qm-esai
7cc0672d511b ASoC: dt-bindings: Add NeoFidelity NTP8835
fe920ac500b5 ASoC: dt-bindings: Add NeoFidelity NTP8918
d1100655b714 dt-bindings: vendor-prefixes: Add NeoFidelity, Inc
1dc6b237e2cb dt-bindings: net: ath11k: document the inputs of the ath11k on WCN6855
30556a11ec4f dt-bindings: lcdif: Document the dmas/dma-names properties
d8fb8bc2cda5 dt-bindings: net: wireless: brcm4329-fmac: add clock description for AP6275P
e479085c013c dt-bindings: net: wireless: brcm4329-fmac: add pci14e4,449d
7ad9cb0fdd60 Merge drm/drm-next into drm-misc-next
f3263e455928 dt-bindings: gpu: Add rockchip,rk3576-mali compatible
ab5d13f0b89f dt-bindings: display: bridge: add TI TDP158
a696036bd331 dt-bindings: display: imx/ldb: drop ddc-i2c-bus property
0bf2495489f6 dt-bindings: display: fsl-imx-drm: drop edid property support

git-subtree-dir: dts/upstream
git-subtree-split: 8531b4b4988c2c9bddc90ea74f2d3e2dca9d5056
2025-01-26 16:17:47 -06:00
Jonas Karlman
2348dd8e41 mmc: Remove alignment hole for cmdidx in struct mmc_cmd
The alignment hole caused by cmdidx in struct mmc_cmd cause strange
issues together with the peephole2 optimization on Amlogic SoCs.
Following was observed while working on SPL support for Amlogic SoCs.

sd_get_capabilities() normally issue a CMD55 followed by a CMD51.
However, on at least Amlogic S905 (Cortex-A53) and S905X3 (Cortex-A55),
CMD55 was instead followed by CMD8 (and a few reties) in SPL.

Code from the call site:

  cmd.cmdidx = SD_CMD_APP_SEND_SCR; // 51
  ...
  data.blocksize = 8;
  ...
  err = mmc_send_cmd_retry(mmc, &cmd, &data, 3);

Running the code with MMC_TRACE enabled shows:

CMD_SEND:55
                ARG                      0x50480000
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:8
                ARG                      0x00000000
                RET                      -110

Removing the alignment hole by changing cmdidx from ushort to uint or
building with -fno-peephole2 flag seem to resolve this issue.

CMD_SEND:55
                ARG                      0x50480000
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:51
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000920

Same issue was observed building U-Boot with gcc 8 - 13.

Remove this alignment hole by changing cmdidx from ushort to uint.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-26 11:39:00 -06:00
Maks Mishin
f55fa90a95 tools: check result of lseek
Return value of function 'lseek', called at pblimage.c:211,
is not checked, but it is usually checked for this function.

This trigger was found using the Svace static analyzer.

Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-26 11:35:46 -06:00
Tom Rini
6121676720 Merge a patch series for mx313xx RTC drivers
This series of patches from Mark Tomlinson fixes two problems with the
mx313xx series of RTC devices.

Link: https://lore.kernel.org/r/20250120015941.1849667-1-mark.tomlinson@alliedtelesis.co.nz
2025-01-26 11:33:17 -06:00
Mark Tomlinson
0e4c345ecf drivers: rtc: max313xx: Ensure correct date is read after setting
When setting the time on the MAX31343, the time is not updated
for one second, and reading the time in this interval will give
the old time. Wait one second after writing so that the date
command will show the correct time when setting the clock.

Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Cc: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Chris Packham <judge.packham@gmail.com>
2025-01-26 11:33:13 -06:00
Mark Tomlinson
d86da7e2bd drivers: rtc: max313xx: Fix setting years 2100-2199
An invalid calculation made setting years 2100-2199 impossible.

Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Cc: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Chris Packham <judge.packham@gmail.com>
2025-01-26 11:33:13 -06:00
Tom Rini
8a2a71a4ee Merge tag 'efi-2025-04-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-04-rc1-2

Documentation:

* describe creating a pflash file for qemu-system-riscv64

UEFI:

* correct logging StartImage()
* use LOGC_EFI consistently
* reduce UEFI size if HAS_BOARD_SIZE_LIMIT=y
* Update efi_run_image() to accept image and device path
* Add a version of efi_binary_run() with more parameters
* Move the fallback code from efi_run_image()
* Pass in the required parameters from EFI bootmeth
* bootmeth_efi: Support PXE booting

Other:

* Enable log filtering by function name
2025-01-26 08:10:28 -06:00
Simon Glass
21de624eb8 bootmeth_efi: Support PXE booting
Finish off the implementation so it is possible to boot an EFI app over
a network.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-26 11:06:57 +01:00
Simon Glass
a2338955fc efi_loader: Pass in the required parameters from EFI bootmeth
Rather than setting up the global variables and then making the call,
pass them into function directly. This cleans up the code and makes it
all a bit easier to understand.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-26 11:06:57 +01:00
Simon Glass
5f67c8800e efi_loader: Move the fallback code from efi_run_image()
This code is only needed if an invalid image/device path is passed in.
Move the code out to a caller where this can be dealt with. The normal
flow will provide these parameters.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-26 11:06:57 +01:00
Simon Glass
b9f42821af efi_loader: Add a version of efi_binary_run() with more parameters
This uses a few global variables at present. With the bootflow we have
the required parameters, so add a function which accepts these. Update
the existing function to call the new one with the globals.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-26 11:06:57 +01:00
Simon Glass
a70759898a efi_loader: Update efi_run_image() to accept image and device path
Provide these globals as parameters to this function, on the way to
making it possible to start an image without relying on the globals.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-26 11:06:57 +01:00
Heinrich Schuchardt
7a713ab1c6 doc: describe creating a pflash file for qemu-system-riscv64
U-Boot can be executed in place from a flash device.
Describe how this can be emulated on RISC-V QEMU.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
e20349a38c efi_loader: reduce UEFI size if HAS_BOARD_SIZE_LIMIT=y
If a board has a strict size limit, disable

* Unicode capitalization and
* HII protocols

by default to reduce the image size.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
e9c34fab18 efi_loader: use LOGC_EFI consistently
The log category should be LOGC_EFI all over the EFI sub-system.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
01b35b3e38 test/log: test function filters
Add unit tests for function filters.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
cb43e3e427 log: enable filtering on functions
Up to now we could only use log level, category, and file for filtering.
Allow filtering on a list of functions.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
1daacb9275 log: make log_has_file() static
Function log_has_file() is not used externally. Make it static.

Rename the function to log_has_member() as we can reuse for filtering
other strings.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Heinrich Schuchardt
9f00d38ce7 efi_loader: correct logging StartImage()
When logging running an image, e.g. `bootefi hello` the indent is not
correctly reset.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-26 11:06:56 +01:00
Tom Rini
292278d682 Merge patch series "gitlab: Fixes to get StarFive VisionFive2 into the sjg lab"
Simon Glass <sjg@chromium.org> says:

This board fought valiantly against attempts to add it to my lab. After
several hours of debugging, I found problems in the Labgrid integration
(not included here), test.py and buildman

This series fixes these and the board now seems to be reliable enough.

Note that the board fails test_dm_compat

Link: https://github.com/labgrid-project/labgrid/pull/1411
Link: https://lore.kernel.org/r/20241214182024.1954974-1-sjg@chromium.org
2025-01-25 16:28:27 -06:00
Simon Glass
1135dc50a3 gitlab: Add a StarFive VisionFive2 to the sjg lab
I have one of these boards loaded with Ubuntu 24.10 (64-bit). Add an
entry for it so that it can be used for testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-By: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-25 16:28:27 -06:00
Simon Glass
bd7883f346 buildman: Record an error if a toolchain is missing
Buildman has always treated the lack of a toolchain as an infrastructure
problem rather than a build failure.

However the logic for this is not correct, since it does not write a
'done' file in this case.

As a result, one of two things can happen.

1. If a previous build ran in the same (output) directory, the outcome
   of *that* build is recorded as the outcome of this one
2. Otherwise, no outcome is recorded

Obviously this inconsistency is not ideal. While (2) is rare, it can be
very confusing as the build sort-of fails but does not produce any
summary output with 'buildman -s'

Overall it seems better to attribute a toolchain issue to the boards
that it affects. This results in clear failures which can be examined,
no matter what happened in the .bm-work directory previously.

So write a 'done' file for each build when a toolchain is missing.

The end result of this patch is to make missing toolchains much more
obvious. It should be things a bit easier for novice users.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-25 16:27:24 -06:00
Simon Glass
dd7138dde7 buildman: Drop unused OUTPUT_FILE constant
This is not actually used but its presence suggests that it is the
filename for the board database. Drop it to avoid confusion.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-25 16:27:24 -06:00
Simon Glass
64d5a0550a test/py: Handle u-boot-test-getrole failure
This script can fail if there is no toolchain available for the board.
At present this is not handled very nicely, in that only the error
output is reported. It is much more useful to see everything, so
combine stdout and stderr and report them both.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-25 16:27:24 -06:00
Simon Glass
ba87a2fcfb test/py: Provide the correct U_BOOT_SOURCE_DIR to getrole
The u-boot-test-getrole script runs before the normal environment
variables have been set up. This is unavoidable since the script is
providing necessary information to test.py

This means that U_BOOT_SOURCE_DIR is not set in the environment.

As a result, Labgrid uses its default source path, configured in its
environment variable. While this may happen to work, it is not correct.
Also, it causes problems when running from Gitlab, where the runner may
not have access to that source path.

Provide the required source path in U_BOOT_SOURCE_DIR so that Labgrid
does the right thing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: bf89a8f1fc ("test: Introduce the concept of a role")

[1] https://patchwork.ozlabs.org/project/uboot/patch/20241211131858.520639-1-sjg@chromium.org/
2025-01-25 16:27:24 -06:00
Marek Vasut
07358b7ac6 pinctrl: imx: Split MMIO accessors into pinctrl-imx-mmio.c
Split MMIO accessors into pinctrl-imx-mmio.c and build this
file only if Kconfig symbol PINCTRL_IMX_MMIO is selected.
Select PINCTRL_IMX_MMIO Kconfig symbol for all but pinctrl-imx8.c
driver, which does not use the MMIO accessors. This reduces the
amount of code compiled on platforms which do not use the code.

No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
90890e9086 pinctrl: imx: Fold imx_pinctrl_set_state_scu() from pinctrl-imx8.c
The only user of the SCU pinctrl code is pinctrl-imx8.c , fold
the entire pinctrl-scu.c code into pinctrl-imx8.c and remove the
matching Kconfig symbols and Makefile entries. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
fe40330471 pinctrl: imx: Split imx_pinctrl_set_state_scu() from imx_pinctrl_set_state_mmio()
Call imx_pinctrl_set_state_common() from imx_pinctrl_scu_conf_pins(),
rename imx_pinctrl_scu_conf_pins() to imx_pinctrl_set_state_scu().
Get rid of the unnecessary ifdeffery in pinctrl-imx.h in the process.
Remove all SCU support from pinctrl-imx.c imx_pinctrl_set_state_mmio()
which makes that function a pure MMIO pinctrl configuration accessor.
Update pinctrl-imx8.c to call imx_pinctrl_set_state_scu directly.

No functional change.

This patch is best viewed with git show -w due to indent change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
40c477c71c pinctrl: imx: Split imx_pinctrl_set_state() into common and mmio parts
Split imx_pinctrl_set_state() into imx_pinctrl_set_state_common() and
imx_pinctrl_set_state_mmio(). The former does the common configuration
parsing, the later does call imx_pinctrl_set_state_common() and then
does pin configuration using either SCU or MMIO accesses. The SCU part
is going to be moved out in follow up patches.

This is a preparatory patch for follow up pinctrl drivers which
do not use the MMIO accessors, but some other means, like SCU or
otherwise. Those will call the common imx_pinctrl_set_state_common()
function wrapped into some other imx_pinctrl_set_state_*() function,
in a way similar to imx_pinctrl_set_state_mmio() does so for MMIO
accesses.

Update all imx_pinctrl_set_state_mmio() call sites to call
imx_pinctrl_set_state_mmio() instead.

No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
ecd087dffe pinctrl: imx: Rename imx_pinctrl_remove() to imx_pinctrl_remove_mmio()
The current implementation of imx_pinctrl_remove() is specific
to the MMIO accessor implementation, rename the function to
imx_pinctrl_remove_mmio() to make this obvious. No functional
change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
7ddd6d3c21 pinctrl: imx: Split imx_pinctrl_probe() into common and mmio parts
Split imx_pinctrl_probe() into imx_pinctrl_probe_common() and
imx_pinctrl_probe_mmio(). The former does the common setup, the
later does the common setup and MMIO access configuration. The
common setup can be used as-is for SCU based systems, update
the pinctrl-imx8 to call only the common setup, update all the
other pinctrl drivers to call imx_pinctrl_probe_mmio().

No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
def8012d5b pinctrl: imx: Inline struct imx_pinctrl_soc_info access into probe
The probe function is identical across all the pinctrl drivers.
Inline the imx_pinctrl_soc_info access into imx_pinctrl_probe()
and drop all the duplicate probe functions. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
106cc434e0 pinctrl: imx: Drop .remove callback for SCU variant
The return callback for SCU variant of the pinctrl drivers does
nothing but returns 0. Remove the return callback from the SCU
driver itself, that has the same effect. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
a8f628040d pinctrl: imx: Rename imx_pinctrl_ops to match drivers
Rename the structure instances to match driver names, so they
can be easily looked up e.g. in objdump and readelf outputs.
No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Marek Vasut
a27409be4d pinctrl: imx: Push imx_pinctrl_ops into drivers and staticize
Move imx_pinctrl_ops into drivers and staticize. This is preparatory
patch for follow up pinctrl drivers which will not use this variant
of imx_pinctrl_ops content. This should not change size, as most of
the deployments compiled in one pinctrl driver anyway. No functional
change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-25 09:06:32 -03:00
Yannic Moog
24b575bc4f arm: dts: imx8m*-u-boot: remove optional from tee-os entry
tee-os node is guarded by CONFIG_OPTEE. Since OPTEE adds driver support
for OP-TEE, the binary should then be packaged in the bootable image.
Remove the optional property to enforce this requirement.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-25 09:06:14 -03:00
Tom Rini
0e198ff1a9 configs: Resync with savedefconfig
Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-24 16:35:58 -06:00
Tom Rini
8162f35a10 Merge patch series "test: Improvements to ut command and test-suite running"
Simon Glass <sjg@chromium.org> says:

The current method of running unit tests relies on subcommands of the
ut command. Only the code in each subcommand knows how to find the tests
related to that subcomand.

This is not ideal and we now have quite a few subcommands which do
nothing but locate the relevant tests in a linker list, then call a
common function to run them.

This series adds a list of test suites, so that these subcommands can be
removed.

An issue with 'ut all' is that it doesn't record how many tests failed
overall, so it is necessary to examine copious amounts of output to look
for failures. This series adds a new 'total' feature allow recording the
total number of failed tests.

To help with 'ut all' a new pytest is created which runs it (as well as
'ut info') and makes sure that all is well. Due to the 'ut all' failures
this does not pass, so the test is disabled for now. It is here because
it provides security against misnaming a test suite and causing it not
to run.

Future work may:
- get 'ut all' passing
- enable test_suite() in CL, to ensure that 'ut all' keeps passing
- record duration of each suite
- allow running the tests in random order to tease out dependencies
- tweak the output to remove common prefixes
- getting rid of bootstd, optee and seame 'ut' subcommands

Link: https://lore.kernel.org/r/20250120212613.516664-1-sjg@chromium.org
2025-01-24 14:35:37 -06:00
Simon Glass
229d145f26 doc: Update ut documentation
Update documentation for the 'ut' command, since it has changed a
little.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
fc7968c118 test: Move help into the suite declaration
Rather than having the help in the longhelp, put it in the suite info
so 'ut info -s' can show it. This is tidier, particular due to the
removal of #ifdefs

This means that the help text is present in the image (although not
displayed with 'ut info -s') so the image-size increases. But with
UNIT_TEST enabled, we expect large images so this doesn't seem
important.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
39d2bb062e test: Disable test_suite
This fails at present, so disable it until it can pass.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
18aa9913a1 test: Sort the test suites
Put the suites in order by name, for easier code-maintenance. This also
helps find test results for a particular swuit in the 'ut all' output.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
6d97c98095 test: Record and show the totals for all test runs
With 'ut all' multiple test suites are run. Add a way to collect totals
and show them at the end.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
15c39587cf test: Move stat-printing into its own function
Add a function to show the stats, so we can decide when to print it.

This slightly adjusts the output, so that any 'test not found' message
appears on its own line after all other output.

The 'failures' message now appears in lower case so update pytest
accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
561320beff test: Keep a track of the numbers of tests run
This is useful information and is not always the same as the 'count' arg
to ut_run_list() so add it as a separate stat.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
0925659a52 test: Move stats into a struct
Use a struct to hold the stats, since we also want to have the same
stats for all runs as we have for each suite.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
bbff0b165c test: Pass the test state to cmd_ut_category()
Update this function to access a unit-test state, so that the caller can
collect results from running multiple suites.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
374203bd2e test: Drop conditional compilation for suites
This is not needed anymore. If a test suite is not built, then it will
have no linker-list entries. So we can just check for that and know that
the suite is not present.

This allows removal of the #ifdefs and the need to keep them in sync
with the associated Makefile rules, which has actually failed, since the
help does not match what commands are actually present.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
81c5434f49 test: Drop the info test from the list
The 'info' test is not a real test. With the new suite array we can drop
this and the associated special-case code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:41 -06:00
Simon Glass
0af17462b9 test: Drop the function for running upl tests
Use the new suite-runner to run these tests instead.

It is not clear that these actually work, since they are not enabled on
sandbox for some reason.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
b073d8a272 test: Drop the function for running seama tests
Use the new suite-runner to run these tests instead.

It is not clear that these actually work, since they are not enabled on
sandbox for some reason.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2025-01-24 14:34:40 -06:00
Simon Glass
a2cf88d807 test: Drop the function for running pci_mps tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
822cb558e1 test: Drop the function for running loadm tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
d5e5cb48e6 test: Drop the function for running hush tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
e6959512b6 test: Drop the function for running addrmap tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
1ca67c3f04 test: Drop the function for running bootm tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
28b32858aa test: Drop the function for running bloblist tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
446e6f9cd3 test: Drop the function for running measurement tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
cebdc5376f test: Drop the function for running setexpr tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
bda212bad5 test: Drop the function for running mem tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
1ade3afa2d test: Drop the function for running mbr tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
87cf479fdb test: Drop the function for running log tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
d824e20fc2 test: Drop the function for running lib tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
a9976e52be test: Drop the function for running font tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
45dfbdde37 test: Drop the function for running fdt tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
ca917e491f test: Drop the function for running exit tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
3e5e638e62 test: Drop the function for running env tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
7c012db106 test: Drop the function for running dm tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
cfc0f46cd0 test: Drop the function for running common tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
6054e8463c test: Drop the function for running cmd tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
9e93c249f7 test: Drop the function for running bdinfo tests
Use the new suite-runner to run these tests instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
7bbf2f7983 test: Introduce a better array of test suites
The current cmd_ut_sub[] array was fine when there were only a few test
suites. But is quite unwieldy now:

- it requires a separate do_ut_xxx for each suite, even though the code
  for most is almost identical
- running more than one suite requires running multiple commands, and
  there is no record of which suites passed or failed
- 'ut all' runs all suites but reports their results individually
- we need lots of #ifdefs in the array, mirroring those in the makefile
  but maintained in a separate place

In fact the tests are all in the same linker list. The suites are
grouped, so it is possible to access the information without a command.

Introduce a 'suite' array, which holds the cmd_ut_...() function to
call, but can also support running a suite without that function. This
means that the array of struct cmd_tbl is transformed into an array of
'struct suite'.

This will allow removal of many of the functions, particularly those
without test-specific init.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
4ba3ab4901 test: Drop the _test suffix on linker lists
Most test suites have a _test suffix. This is not necessary as there is
also a ut_ prefix.

Drop the suffix so that (with future work) the suite name can be used as
the linker-list name.

Remove the suffix from the pytest regex as well, moving it to the top of
the file, as it is a constant.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
c16b388ea8 test/py: Add a test which runs all unit tests
Add a Python test which runs 'ut all' and then checks that the expected
suites are present and all tests in each suite are run.

This can help to check that nothing is missing.

Update 'ut info' to ignore the 'all' suite when counting the number of
suites, since that is really just a combination of all the other suites.

Adjust the message for skipped tests so that appears even if no
particular test was selected. This helps the new 'test_suite' test see
what is going on.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
67f84dba6b test: Update ut info to show suites
It is helpful to see a list of available suites. At present this is
handled by the longhelp for the 'ut' command, but this is not in a
format which can be easily parsed by python tests.

Add a -s option to show this. At present it is not possible to show the
number of tests in each suite, but future work will address this. For
now, show a ?

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
4d31a3bd33 test: Rename test suites to match their linker-list name
Some suites have a different name from that used in the linker list.
That makes it hard to programmatically match the name printed when the
suite runs to the linker-list name it has.

Update the names so they are the same.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
ea2bb8e20f test: Add newlines to hush-test messages
A few messages lack a newline so the test output shows the next
test-name on the same line. For example:

   Beware: this test sets local variable dollar_bar and dollar_quux
      and they cannot be unset!Test: hush_test_env_dollar: dollar.c

This is confusing, so fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
f0781acc37 Improve support for linker lists in data structures
A limitation of most linker_list macros is that they cannot easily be
used in data structures. This is because they include code inside their
expressions.

Provide a way to support this, with new ll_start_decl() and
ll_end_decl() macros.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:40 -06:00
Simon Glass
94b5284398 test: Pass the test-state into ut_run_list()
Pass this into the function so that callers can inspect the state
afterwards.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:39 -06:00
Simon Glass
7b576f0847 test: Add functions to init and uninit the test state
Move these operations into separate functions so that it is clearer what
is needed. These functions can also be called from somewhere other than
ut_run_list().

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:39 -06:00
Simon Glass
238ba333c3 test: Rename test_get_state() to ut_get_state()
Rename this function and test_set_state() so use the same ut_ prefix as
other functions in ut.h

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:39 -06:00
Simon Glass
08a22b2cc4 test: Drop unused suite prototypes
Drop some the prototypes for functions which were removed in earlier
series.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-24 14:34:39 -06:00
Heinrich Schuchardt
d51f35a553 test: str_ut.c depends on CONFIG_STRTO
The string conversion functions are implemented in lib/strto.c which is
only compiled if CONFIG_STRTO=y.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-24 14:15:21 -06:00
Aashvij Shenai
9057a48af4 arm64: configs: Remove obsolete TI config
This config is causing conflicts with how fdtfile variable is
initialized.
For K3 devices, CONFIG_DEFAULT_DEVICE_TREE= "ti/k3-<board>.dtb".
With CONFIG_TI_FDT_FOLDER_PATH also prefixing "ti", fdtfile is then
"ti/ti/k3-<board>.dtb". This variable is updated when fitImage is
booted and fails to boot due to the parsing error "ti/ti/".

Given that there are no other users of this config other than K3 for
now, it is being removed.

Since am64x, j721e and j721s2 also define a DEFAULT_FDT_FILE, update
them to conform to the DEFAULT_DEVICE_TREE standard.

Signed-off-by: Aashvij Shenai <a-shenai@ti.com>
2025-01-24 14:15:16 -06:00
Marek Vasut
87f9f591be treewide: Replace Maximumm with Maximum in Kconfig symbol description
Replace Maximumm with Maximum in Kconfig symbol description, fix a typo.
No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Michal Simek <michal.simek@amd.com>
2025-01-24 14:15:05 -06:00
Tom Rini
8fcb7a8832 Merge tag 'u-boot-dfu-20250124' of https://source.denx.de/u-boot/custodians/u-boot-dfu
CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/24323

Android:
- Fix kcmdline null pointer dereference (reported by coverity and
  multiple users)
- Move Igor to reviewers instead of maintainers for avb/ab
- Fix booting Android with AVB built-in, but disabled via
  fastboot flash --disable-verity vbmeta vbmeta.img
2025-01-24 08:48:48 -06:00
Tom Rini
f409054d6a Merge tag 'u-boot-socfpga-next-20250124' of https://source.denx.de/u-boot/custodians/u-boot-socfpga
1.  Bug fixed for doorbell in secure device manager mailbox driver
2.  Enhancement on SoCFPGA dwc_eth_xgmac driver
3.  Enhancement on DW MAC driver
4.  Improved the error message and status for SoC64 device FPGA
    configuration driver
5.  Updated existing watchdog in system manager to support new SM device
2025-01-23 22:40:25 -06:00
Boon Khai Ng
60d96038d7 fpga: intel_sdm_mb: add support for query SDM config error and status
Currently the FPGA reconfig status only return a single error status
which make the debugging of FPGA reconfiguration hard.

This patch is to expose the error status, major error code and
minor error code, for the FPGA reconfig to upper layer app.

Signed-off-by: Boon Khai Ng <boon.khai.ng@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
2025-01-24 09:56:34 +08:00
Boon Khai Ng
1130ad4ee4 net: dwc_eth_xgmac_socfpga: Add support for distinct mac-mode and phy mode.
This patch adds support for configuring the ethernet MAC mode independently
from the PHY mode on our SoC FPGA board. Specifically, this is necessary
for a scenario where the ethernet controller MAC is connected to the
FPGA HVIO with a different GMII interface, and the FPGA output is routed
to the PHY using a RGMII interface.

To support this configuration, a mechanism is introduced to handle
separate MAC mode settings, ensuring that the MAC controller and PHY
can operate correctly with their respective interface modes.

If mac-mode is not defined, the MAC mode will default to the PHY mode,
ensuring compatibility and proper operation between the MAC and PHY.

Signed-off-by: Boon Khai Ng <boon.khai.ng@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
2025-01-24 09:56:22 +08:00
Boon Khai Ng
d22da11742 net: dwc_eth_xgmac: Add device name for the error message.
Agilex5 having several ethernet instance, adding the device
name at the error message to differentiate between which
instance is having issue.

Signed-off-by: Boon Khai Ng <boon.khai.ng@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
2025-01-24 09:56:12 +08:00
Boon Khai Ng
85dccc5e89 net: dwc_eth_xgmac_socfpga: Add support for rgmii-id mode.
An issue was identified where selecting the phy-mode as
rgmii-id in the device tree source (DTS) would cause the
`dwc_eth_xgmac_socfpga` driver to raise an unsupported phy mode error.

From the MAC controller's perspective, the rgmii and rgmii-id
phy modes are effectively identical. To address this, both
modes will now be configured to rgmii in the MAC controller.

This change ensures that the rgmii-id phy mode is properly
supported without error.

Signed-off-by: Boon Khai Ng <boon.khai.ng@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
2025-01-24 09:56:03 +08:00
Rufus Segar
be54527df5 net: designware: socfpga: Add RGMII-ID support
This patch adds support for the "rgmii-id", "rgmii-rxid", and
"rgmii-txid" modes for the dwmac_socfpga driver.

Signed-off-by: Rufus Segar <rhs@riseup.net>
2025-01-24 09:55:54 +08:00
Alif Zakuan Yuslaimi
dd18d65ff0 arch: arm: mach-socfpga: Mailbox buffer and SDM doorbell improvement
The current write and notify SDM to read mechanism has a flaw where
SDM is not notified enough to be able to read all the data in the buffer.

This is caused by SDM doorbell will only be sent out once the command
buffer overflow check is satisfied. If the command buffer does not reach
overflow status, no SDM doorbell will be sent out, which may cause a
timeout as the mailbox driver will be waiting for the SDM to read the
buffer to empty even though SDM is not notified to do so.

The solution is to remove the command buffer overflow check
and set the SDM doorbell to always trigger at the end of the command
buffer.

This will ensure that the SDM is able to read all of the data.

Signed-off-by: Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>
2025-01-24 09:55:42 +08:00
Muhammad Hazim Izzat Zamri
5a77a0b039 arm: socfpga:agilex5: Fix system manager watchdog mode setting
This commit is to fix the system manager watchdog mode setting to support
until mode_4 for Agilex5. This changes can refer to system manager register
map on wddbg fields.

In Agilex7 it is not detected as an issue because Agilex7 only have 4 watchdog
until mode_3 and it is already been set correctly for it to halt on any CPU in
debug mode. However, in Agilex5 this fix is needed in order to enable the watchdog
pause feature for mode_4 when entering debug mode. If 0xF is not been set on mode_4,
the Watchdog Timers will not halt on any CPU. As by default value, the pause signal
does not assert when any CPU is in debug mode and the watchdog continue to count.

Signed-off-by: Muhammad Hazim Izzat Zamri <muhammad.hazim.izzat.zamri@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
2025-01-24 09:55:30 +08:00
Tom Rini
1d81cb030e Merge patch series "MediaTek ethernet driver refactor and updates"
Weijie Gao <weijie.gao@mediatek.com> says:

This patch series will split the switch initialization code from mtk_eth
driver into their own files and then add new SoC and switch support.

Link: https://lore.kernel.org/r/cover.1736498083.git.weijie.gao@mediatek.com
2025-01-23 18:51:26 -06:00
Tom Rini
a9813506c4 Merge patch series "Add bitbang feature for npcm8xx and driver"
Michael Chang <zhang971090220@gmail.com> says:

I am resubmitting the patch titled "Add bitbang feature for npcm8xx
and driver" for review and inclusion in the upstream project.

Driver didn't support bitbang feature.
Add bb_miiphy_bus function for driver and open feature for npcm8xx

the log is as below:
-------------------------------------------------
U-Boot 2024.10-g30b9cdaf2df5-dirty (Jan 09 2025 - 00:57:37 +0000)

CPU-0: NPCM845 A1 @ Model: Nuvoton npcm845 Development Board (Device Tree)
DRAM:  1 GiB
RNG: NPCM RNG module bind OK
OTP: NPCM OTP module bind OK
AES: NPCM AES module bind OK
SHA: NPCM SHA module bind OK
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled
Core:  649 devices, 28 uclasses, devicetree: separate
WDT:   Not starting watchdog@901c
MMC:   sdhci@f0842000: 0
Loading Environment from SPIFlash... SF:
Detected w25q512jvq with page size 256 Bytes, erase size 64 KiB,
total 64 MiB
OK
In:    serial@0
Out:   serial@0
Err:   serial@0
Net:   eth0: eth@f0802000, eth1: eth@f0804000, eth3: eth@f0808000
Hit any key to stop autoboot:  0
U-Boot>
U-Boot>
U-Boot>setenv ipaddr 192.168.16.3
U-Boot>ping 192.168.16.12
eth@f0802000 Waiting for PHY auto negotiation to complete
......... TIMEOUT !
Could not initialize PHY eth@f0802000
eth@f0804000 Waiting for PHY auto negotiation to complete
......... TIMEOUT !
Could not initialize PHY eth@f0804000
Speed: 100, full duplex
Using eth@f0808000 device
host 192.168.16.12 is alive

Link: https://lore.kernel.org/r/20250117104540.1580343-1-zhang971090220@gmail.com
2025-01-23 18:51:26 -06:00
Michael Chang
6272fc8a2e net: designware: Add bitbang feature for designware driver.
Add bb_miiphy_bus function for designware bitbang feature.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Signed-off-by: Michael Chang <zhang971090220@gmail.com>
2025-01-23 18:51:26 -06:00
Michael Chang
a78ab77063 ARM: configs: nuvoton: add bitbang feature for npcm8xx.
Enable bitbang and multiple bitbang feature for npcm8xx platform.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Signed-off-by: Michael Chang <zhang971090220@gmail.com>
2025-01-23 18:51:26 -06:00
Michael Chang
cebbfb1628 ARM: dts: nuvoton: Add bitbang delay through dts properties.
Add bitbang delay through dts properties.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Signed-off-by: Michael Chang <zhang971090220@gmail.com>
2025-01-23 18:51:26 -06:00
Weijie Gao
cedafee9ff net: mediatek: add support for Airoha AN8855 ethernet switch
Airoha AN8855 is a 5-port gigabit switch with a 2.5G HSGMII CPU port

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 18:46:42 -06:00
Weijie Gao
fe106f2093 net: mediatek: add support for MediaTek MT7987 SoC
This patch adds support for MediaTek MT7987.

MT7987 features MediaTek NETSYS v3, similar to MT7988, features three GMACs
which support 2.5Gb HSGMII. One 2.5Gb PHY is also embedded an can be
connected to a dedicated GMAC.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 18:46:42 -06:00
Weijie Gao
626cdca5b6 net: mediatek: split ethernet switch code from mtk_eth.c
mtk_eth.c contains not only the ethernet GMAC/DMA driver, but also
some ethernet switch initialization code. As we may add more switch
support in the future, it's better to move them out of mtk_eth.c to
avoid increasing the code complexity.

Since not all switches are supported for a particular board, Kconfig
options are added to allow user to select which switch should be
built into u-boot. If multiple switches are selected, auto-detecting
can also be enabled.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 18:46:42 -06:00
Daniel Schultz
a416d9e680 configs: phycore_am64x_a53_defconfig: Fix environment
Enable ENV_OVERWRITE to allow environment variables to be
overwritten within the board code. This is required to add
MAC addresses during SOM detection.

Additionally, set ENV_IS_NOWHERE for boot sources other than MMC.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-23 12:11:50 -06:00
Daniel Schultz
18674f7cdb configs: phycore_am64x_a53_defconfig: Enable GPIO command
Enable the GPIO command to allow access to the GPIO pins.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-23 12:11:50 -06:00
Daniel Schultz
3a1e127fbf configs: phycore_am64x_a53_defconfig: Fix GPIO controllers
The phyBOARD-Electra does not include a PCA953x I2C GPIO multiplexer.
Remove this configuration as it is a remnant from another
defconfig, and enable CONFIG_DA8XX_GPIO for the DA8XX DaVinci GPIO
controller instead.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-23 12:11:50 -06:00
Daniel Schultz
b2a04cd075 board: phytec: common: k3: Add missing boot source to env
We set the boot source as environment variable 'boot'.
Also include 'uart' and 'usbdfu' as possible boot sources.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-23 12:11:50 -06:00
Daniel Schultz
d87a706b9b configs: phycore_am62x_r5_defconfig: Increase SPL Malloc Pool
Increase the malloc pool size for the SPL by additional 4kB from
0x7000 to 0x8000.

This fixes following error message:
  ...
  alloc space exhausted ptr 7028 limit 7000
  DRAM init failed: -12

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2025-01-23 12:11:50 -06:00
Wadim Egorov
86f3c1cc47 board: phytec: phycore-am62x: Add DDR size fixups if ECC is enabled
With commit 22ce56a3eb ("ram: k3-ddrss: Add k3_ddrss_ddr_bank_base_size_calc()
to solve 'calculations restricted to 32 bits' issue") we need to provide the
detected RAM size in the device tree node prio to K3 DDRSS driver probe.
This is done by calling fdt_fixup_memory_banks() in do_board_detect().

After probing, call into k3-ddrss driver to fixup device tree and resize
the available amount of DDR if ECC is enabled.

A third fixup is required from A53 SPL to take the fixup
as done from R5 SPL and apply it to DT passed to A53 U-boot,
which in turn passes this to the OS.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-23 12:11:50 -06:00
Tom Rini
8352727e33 Merge patch series "Cumulative fixes and updates for MediaTek platform"
Weijie Gao <weijie.gao@mediatek.com> says:

This patch series contains fixes and updates for MediaTek platform,
including drivers, board and arch files.

Link: https://lore.kernel.org/r/cover.1737104723.git.weijie.gao@mediatek.com
2025-01-23 12:11:50 -06:00
Weijie Gao
8707ea0360 MAINTAINERS: update file list for MediaTek ARM platform
Add driver files for MediaTek ARM platform

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
140303d030 arm: dts: mediatek: update mt7981 mmc node
1. Fix mmc clock order of mt7981 to match the clock name
2. Limit the max clock of SD to 50MHz to meet SD Card Spec 2.0
3. Increase the CLK pin driving strength to 8mA

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
1090c6df37 arm: dts: medaitek: add flash interface driving settings for mt7988
Add driving settings for both SPI and SD/eMMC interfaces to support ensure
flash devices is accessible for ram-booting.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
64cf3dd0ef arm: dts: mediatek: add support for all three GMACs for mt7988
This patch add all three GMACs nodes for mt7988. Each GMAC can be
configured to connect to different ethernet switches/PHYs.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
4a85182570 arm: dts: medaitek: fix internal switch link speed of mt7988
The CPU port of mt7988 internal switch uses 10Gb link speed.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
4064eb22e2 arm: dts: mediatek: add pcie support for mt7988
This patch adds PCIe support for mt7988

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
dfbadb86b3 pci: mediatek: add support for multiple ports in mediatek pcie gen3 driver
One MediaTek PCIe Gen3 controller has only one port, where PCI bus 0
on this port represents the controller itself and bus 1 represents
the external PCIe device.

If multiple PCIe controllers are probed in U-Boot, U-Boot will use
bus numbers greater than 2 as input parameters. Therefore, we should
convert the BDF bus number to either 0 or 1 by subtracting the
offset by controller->seq_.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
7071ba2658 pwm: mediatek: add pwm3 support for mt7981
This patch adds pwm channel 2 (pwm3) support for mt7981

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
c7a6020286 arm: dts: mediatek: add quad mode capabilities for SPI flashes
Explicitly add quad mode capabilities or the SPI controller may
start transfer in single mode.

Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
7725d4ba16 spi: mtk_spim: check slave device mode in spi-mem's supports_op
Call spi_mem_default_supports_op() in supports_op to honor the
slave's supported single/dual/quad mode settings.

Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
a2c2ac46ca spi: mtk_spim: add support to use DT live tree
Change devfdt_get_addr_ptr to dev_read_addr_ptr to support DT live tree.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
c7a3761ddf configs: mt7988: move image load address to 0x44000000
This patch sets mt7988 image load address to 0x44000000 to support loading
larger images.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
7958b41b8c configs: mt7629: move image load address to 0x42000000
Update the image load address to ensure it matches the mt7629 NOR
controller's DMA alignment requirements.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
b033dfb21d clk: mediatek: fix uninitialized fields issue in INFRA_MUX struct
This patch adds missing initialization of fields in INFRA_MUX struct
which caused uart broken after any other infra mux being enabled by
'clk_prepare_enable'

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Weijie Gao
92090b92fa board: mediatek: mt7622: remove board_late_init
The function board_late_init defined for mt7622 is useless now. Just
remove it.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23 12:11:49 -06:00
Mattijs Korpershoek
6745cbed6e bootstd: android: Allow boot with AVB failures when unlocked
When the bootloader is UNLOCKED, it should be possible to boot Android
even if AVB reports verification errors [1].

This allows developers to flash modified partitions on
userdebug/engineering builds.

Developers can do so on unlocked devices with:
$ fastboot flash --disable-verity --disable-verification vbmeta vbmeta.img

In such case, bootmeth_android refuses to boot.

Allow the boot to continue when the device is UNLOCKED and AVB reports
verification errors.

[1] https://source.android.com/docs/security/features/verifiedboot/boot-flow#unlocked-devices

Fixes: 125d9f3306 ("bootstd: Add a bootmeth for Android")
Reviewed-by: Julien Masson <jmasson@baylibre.com>
Link: https://lore.kernel.org/r/20250108-avb-disable-verif-v2-2-ba7d3b0d5b6a@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-23 15:23:05 +01:00
Mattijs Korpershoek
ae58cd7b39 bootstd: android: Add missing NULL in the avb partition list
When booting an Android build with AVB enabled, it's still possible to
deactivate the check for development purposes if the bootloader state is
UNLOCKED.

This is very useful for development and can be done at flashing time via:
$ fastboot flash --disable-verity --disable-verification vbmeta vbmeta.img

However, with bootmeth_android, we cannot boot this way:

    Scanning bootdev 'mmc@fa10000.bootdev':
      0  android      ready   mmc          0  mmc@fa10000.bootdev.whole
    ** Booting bootflow 'mmc@fa10000.bootdev.whole' with android
    avb_vbmeta_image.c:188: ERROR: Hash does not match!
    avb_slot_verify.c:732: ERROR: vbmeta_a: Error verifying vbmeta image: HASH_MISMATCH
    get_partition: can't find partition '_a'
    avb_slot_verify.c:496: ERROR: _a: Error determining partition size.
    Verification failed, reason: I/O error occurred while trying to load data
    Boot failed (err=-5)
    No more bootdevs

From the logs we can see that avb tries to read a partition named '_a'.
It's doing so because the last element of requested_partitions implicitly is
'\0', but the doc explicitly request it to be NULL instead.

Add NULL as last element to requested_partitions to avoid this problem.

Fixes: 125d9f3306 ("bootstd: Add a bootmeth for Android")
Reviewed-by: Julien Masson <jmasson@baylibre.com>
Link: https://lore.kernel.org/r/20250108-avb-disable-verif-v2-1-ba7d3b0d5b6a@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-23 15:23:05 +01:00
Igor Opaniuk
af3afb70fc MAINTAINERS: move myself to reviewers for avb/ab
As Mattijs Korpershoek is in fact doing overall
maintenance of AVB/AB code, move myself to reviewers.

CC: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20250109112854.825204-1-igor.opaniuk@gmail.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-23 15:20:47 +01:00
Aaron Kling
4e599aa73a boot: android: Check kcmdline's for NULL in android_image_get_kernel()
kcmdline and kcmdline_extra strings can be NULL. In that case, we still
read the content from 0x00000 and pass that to the kernel, which is
completely wrong.

Fix android_image_get_kernel() to check for NULL before checking if
they are empty strings.

Fixes: 53a0ddb6d3 ("boot: android: fix extra command line support")
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Reviewed-by: Nicolas Belin <nbelin@baylibre.com>
Reviewed-by: Julien Masson <jmasson@baylibre.com>
Tested-by: Sam Day <me@samcday.com>
Link: https://lore.kernel.org/r/20250113-kcmdline-extra-fix-v1-1-03cc9c039159@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-23 15:19:37 +01:00
Tom Rini
e67cbd7aba Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi
Following the move of the H616 family to OF_UPSTREAM in the last cycle,
now some older SoCs with identical DTs follow the lead: the F1C100s, A10,
A10s, A13. The remaining SoCs suffer from that IRQ cells incompatiblity,
breaking support for Linux < v5.13, so I am holding their move back still.

Otherwise we get proper support for the PinePhone v1.2, and PSTORE support
for all revisions of that device.

This is rounded up by a PMIC related fix for some A80 boards, and two
cleanup patches that are preparations for two new SoCs families, being
worked on as we speak. But they have to wait for the next cycle.

Gitlab CI passed, and I booted that briefly on some boards.
2025-01-23 08:16:15 -06:00
Tom Rini
a3b71cc6f5 Merge patch series "upl: Prerequite patches for updated spec"
Simon Glass <sjg@chromium.org> says:

The current UPL spec[1] has been tidied up and improved over the last
year, since U-Boot's original UPL support was written.

This series includes some prerequisite patches needed for the real UPL
patches. It is split from [2]

[1] https://github.com/UniversalPayload/spec/tree/3f1450d
[2] https://patchwork.ozlabs.org/project/uboot/list/?series=438574&state=*

Link: https://lore.kernel.org/r/20250111000029.245022-1-sjg@chromium.org
2025-01-22 17:08:47 -06:00
Simon Glass
8985ff56b1 dm: core: Provide ofnode_find_subnode_unit()
The ofnode_find_subnode() function currently processes things two
different ways, so the treatment of unit addresses differs depending on
whether OF_LIVE is enabled or not.

Add a new version which uses the ofnode API and add a test to check that
unit addresses can be matched correctly. Leave the old function in place
for the !OF_LIVE case, to avoid a code-size increase, e.g. on
firefly-rk3288

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:24 -06:00
Simon Glass
aacc05b07d dm: core: Provide ofnode_name_eq_unit() to accept a unit address
When a unit-address is provided, use it to match against the node
name.

Since this increases code size, put it into a separate function.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:24 -06:00
Simon Glass
ff698f2ddb dm: core: Clarify behaviour of ofnode_name_eq()
This function is somewhat ambiguous, so expand the comments and add a
test for the undefined behaviour.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
d5bc5c6cb0 x86: emulation: Enable bloblist
Add bloblist support so that tables can be generated and placed in a
bloblist, then passed to a payload using UPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
cfb4aa2a75 efi_loader: Avoid mapping the ACPI tables twice
The add_u_boot_and_runtime() function paints with a broad brush,
considering all of the memory from the top of U-Boot stack to
gd->ram_top as EFI_RUNTIME_SERVICES_CODE

This is fine, but we need to make sure we don't add a separate entry for
any ACPI tables in this region (which happens when bloblist is used for
tables). Otherwise the memory map looks strange and we get a test
failure on qemu-x86 (only) for the 'virtual address map' test.

Good map:

   Type             Start            End              Attributes
   ================ ================ ================ ==========
   CONVENTIONAL     0000000000000000-00000000000a0000 WB
   RESERVED         00000000000a0000-00000000000f0000 WB
   RUNTIME DATA     00000000000f0000-00000000000f2000 WB|RT
   RESERVED         00000000000f2000-0000000000100000 WB
   CONVENTIONAL     0000000000100000-0000000005cc7000 WB
   BOOT DATA        0000000005cc7000-0000000005ccc000 WB
   RUNTIME DATA     0000000005ccc000-0000000005ccd000 WB|RT
   BOOT DATA        0000000005ccd000-0000000005cce000 WB
   RUNTIME DATA     0000000005cce000-0000000005cf0000 WB|RT
   BOOT DATA        0000000005cf0000-0000000006cf5000 WB
   RESERVED         0000000006cf5000-0000000006cfa000 WB
   ACPI RECLAIM MEM 0000000006cfa000-0000000006d1c000 WB
   RESERVED         0000000006d1c000-0000000006f35000 WB
   RUNTIME CODE     0000000006f35000-0000000006f37000 WB|RT
   RESERVED         0000000006f37000-0000000008000000 WB
   RESERVED         00000000e0000000-00000000f0000000 WB

Bad map: (with BLOBLIST_TABLES but without this patch):

   Type             Start            End              Attributes
   ================ ================ ================ ==========
   CONVENTIONAL     0000000000000000-00000000000a0000 WB
   RESERVED         00000000000a0000-00000000000f0000 WB
   ACPI RECLAIM MEM 00000000000f0000-00000000000f1000 WB
   RESERVED         00000000000f1000-0000000000100000 WB
   CONVENTIONAL     0000000000100000-0000000005ca5000 WB
   BOOT DATA        0000000005ca5000-0000000005caa000 WB
   RUNTIME DATA     0000000005caa000-0000000005cab000 WB|RT
   BOOT DATA        0000000005cab000-0000000005cac000 WB
   RUNTIME DATA     0000000005cac000-0000000005cce000 WB|RT
   BOOT DATA        0000000005cce000-0000000006cd3000 WB
   RUNTIME DATA     0000000006cd3000-0000000006cd5000 WB|RT
   BOOT DATA        0000000006cd5000-0000000006cf4000 WB
   RESERVED         0000000006cf4000-0000000006cf9000 WB
   ACPI RECLAIM MEM 0000000006cf9000-0000000006ce6000 WB

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
5a7e8839e4 x86: Align the SMBIOS table to a 4K boundary
This isn't strictly needed, but with UPL we use the reserved-memory
nodes to indicate where the SMBIOS table is. Tianocore requires 4KB
alignment on these regions, so it is easier to adjust the alignment
to match.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
d013e80be7 x86: Move tables to use SZ macros
Update the tables to use linux/sizes rather than open-coped values.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-22 17:08:23 -06:00
Simon Glass
4339a82a49 x86: Enable UPL handoff for SPL
Add the GD_FLG_UPL so that a UPL-handoff is created.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
9d5072bb1d x86: Support jumping to a UPL image
Add a function to allow x86 boards to jump to a UPL images. Currently
only 32-bit entry is supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
44e39ff6ac x86: Show an error if video fails
If video is enabled we expect it to work. Avoid silent failure by adding
a panic if things go wrong.

Expand the SPL malloc-area for qemu-x86_64 to avoid a panic.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
97425461e7 pci: video: Set up the pixel-format field
Add this information to the handoff structure so that it is available to
U-Boot proper. Update bochs and the video handoff.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
d56c761ca2 x86: Create more space for SPL with qemu-x86_64
The space here is quite tight and there is plenty of room in the ROM.
Move SPL earlier to allow for expansion.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
53d5a22163 emulation: Use bloblist to hold tables
QEMU can have its own internal ACPI and SMBIOS tables. At present U-Boot
copies out the SMBIOS tables but points directly to the ACPI ones.

The ACPI tables are not aligned on a 4KB boundary, which means that UPL
cannot use them directly, since it uses a reserved-memory node for the
tables and that it assumed (by EDK2) to be 4KB-aligned.

On x86, QEMU provides the tables in a mapped memory region and U-Boot
makes use of these directly, thus making it difficult to use any common
code.

Adjust the logic to fit within the existing table-generation code. Use a
bloblist always and ensure that the ACPI tables is placed in an aligned
region. Set a size of 8K for QEMU. This does not actually put all the
tables in one place, for QEMU, since it currently adds a pointer to the
tables in QFW.

On ARM, enable bloblist so that SMBIOS tables can be added to the
bloblist.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 17:08:23 -06:00
Simon Glass
24768a23a9 emulation: fdt: Relax condition for OF_HAS_PRIOR_STAGE
QEMU always gets its devicetree from the OF_BOARD mechanism so we should
not depend on !BLOBLIST here.

It's not clear why we need to have any relationship with BLOBLIST so
let's remove the entire condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 2b71470628 dts: OF_HAS_PRIOR_STAGE should depend on !BLOBLIST
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-22 17:08:08 -06:00
Andre Przywara
73cbb3baa6 sunxi: switch Allwinner A10s/A13 boards to OF_UPSTREAM
In contrast to some other Allwinner SoCs, there is no difference between
the DTs for the Allwinner A10s/A13 SoCs (sun5i) between the U-Boot and the
Linux kernel repository.

Remove the old copies of the A10s/A13 related .dts and .dtsi files, and
switch most of sun5i boards over to use OF_UPSTREAM.

There are two boards for which we don't have DTs in the kernel tree.
Keep those two .dts files in the legacy U-Boot DT directory, and let
their defconfig opt out of OF_UPSTREAM.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
2025-01-22 22:49:15 +00:00
Andre Przywara
08d65024e0 sunxi: switch Allwinner A10 boards to OF_UPSTREAM
In contrast to some other Allwinner SoCs, there is no difference between
the DTs for the Allwinner A10 SoCs (sun4i) between the U-Boot and the
Linux kernel repository.

Remove the old copies of the A10 related .dts and .dtsi files, and switch
most of sun4i boards over to use OF_UPSTREAM.

There are two boards for which we don't have DTs in the kernel tree.
Keep those two .dts files in the legacy U-Boot DT directory, and let
their defconfig opt out of OF_UPSTREAM.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
2025-01-22 22:49:10 +00:00
Andre Przywara
dc2dd2de0f suniv: switch Allwinner F1Cx00 boards to OF_UPSTREAM
In contrast to some other Allwinner SoCs, there is no difference between
the DTs for the Allwinner F1C100/F1C200 SoCs (sunvi) between the U-Boot
and the Linux kernel repository.

Remove the old copies of the F1Cx00 related .dts and .dtsi files, and
switch the whole suniv SoC over to use OF_UPSTREAM.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-01-22 22:44:34 +00:00
Andrey Skvortsov
a4fc1e3e27 sunxi: pinephone: detect existed magnetometer and fixup dtb
In newer 1.2 PinePhone board revisions LIS3MDL magnetometer was replaced by
AF8133J. They use the same PB1 pin in different modes.

LIS3MDL uses it as an gpio input to handle interrupt.
AF8133J uses it as an gpio output as a reset signal.

It wasn't possible at runtime to enable both device tree
nodes and detect supported sensor at probe time.

AF8133J has reset pin (PB1) connected to the SoC. By default AF8133J
is in a reset state and don't respond to probe request on I2C
bus. Extra code would be needed to handle reset signal. Therefore this
code uses LIS3MDL magnetometer instead of AF8133J.

Introducing new dts 1.2b with AF8133J sensor would require probing in
SPL. That would lead to pulling in into SPL I2C controller driver,
RSB controller driver, introducing new AXP803 driver to power-up
sensors for probe. It's working, but SPL is pretty size-constrained on
A64 and doesn't have much space. Therefore fdt fixup is done in U-Boot
proper without introducing new board revision and new dts.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Link: https://lore.kernel.org/all/20240908214718.36316-1-andrej.skvortzov@gmail.com/
Link: https://lists.denx.de/pipermail/u-boot/2024-February/545700.html
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
[Andre: fix formatting]
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-01-22 22:44:34 +00:00
Andrey Skvortsov
bd03d35fae sunxi: defconfig: Add pstore support for pinephone
pstore will allow users to catch kernel crashes and report them to
developers. Modern (Android) phones have pstore usually enabled to get
information about kernel crash, since it's the simplest way to get
kernel backtrace on mobile device without serial console. Usually it's
enabled by default in distribution kernels like Debian.

CONFIG_PSTORE=y
CONFIG_PSTORE_RAM=m

systemd has service that automatically handles pstore and saves them
in /var/lib/pstore for later usage.

In general any DRAM address, that isn't overwritten during a boot is
suitable for pstore.

Range from 0x40000000 - 0x50000000 is heavily used by u-boot for
internal use and to load kernel, fdt, fdto, scripts, pxefile and ramdisk
later in the boot process. Ramdisk start address is 0x4FF00000,
initramfs for kernel with some hacking features and debug info enabled
can take more than 100Mb and final address will be around 0x58000000.
Address 0x61000000 will most likely not overlap with that.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2025-01-22 22:44:34 +00:00
Andre Przywara
1dadb246a3 power: pmic: sunxi: guard DCDC5 separately
So far all sunxi boards programming the DCDC1 power rail on the AXP PMIC
also set the DCDC5 rail, so we could handle both with the same DCDC1
guard.
Some boards using the AXP313 will need to set DCDC1 now as well, and
since the AXP313 only has three buck converters, there will be no DCDC5,
so this trick is not going to work anymore.

Don't try to be too clever, and just protect programming the two DCDC
rails with two separate guards.

This has the interesting side effect of fixing operation on A80 boards,
using the AXP809 PMIC. Apparently programming DCDC5 right after DCDC1,
but before the other three rails caused some glitch, which made the board
hang during Linux boot, during the PSCI handler in U-Boot. Just keeping
the old setup order (DCDC1,2,3,4,5) will make those boards boot to the
Linux prompt again.

Fixes: ffb02942fa ("sunxi: board: simplify early PMIC setup conditions")
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
2025-01-22 22:44:34 +00:00
Andre Przywara
9d87d5082d sunxi: H616: DRAM: rename Kconfig parameters to be more generic
The H616 DRAM controller requires some board specific parameters, which
we declare in Kconfig, let each board specify in their defconfig, and
then use in the DRAM init code.

Other DRAM controllers now require a very similar, if not identical
parameter set, with so far the same parameter names used.

To help keep the Kconfig file at bay, rename the existing parameter
names to drop the H616_ part in there, to make them more naturally
reusable for other SoCs.

No functional change, just a rename.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-01-22 22:44:34 +00:00
Andre Przywara
b002ce88a9 sunxi: clock: improve grouping of default clock register values
With each new SoC added to the clock_sun50i_h6.h header file, we add a
list of default values for the bus clock registers. This list gets a bit
hard to read, as the spacing between the lines looks confusing.

Tighten the lines by removing empty lines, to make it more obvious which
values belong together. Also remove those comments that were more or
less duplicating the next code line, and didn't add any information.

This makes it easier to find existing values and to add support for new
SoCs.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-01-22 22:44:34 +00:00
Simon Glass
5e0c63d04c test: Fix inpected typo in upl test
Fix a typo in the test comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:04 -06:00
Simon Glass
1604b4254b boot: Use fit_image_get_data() to get data
Use this function instead of fit_image_get_emb_data() data, since it
works will FITs that use external data.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:04 -06:00
Simon Glass
c83e71064e boot: Rename fit_image_get_data_and_size()
This function is really just getting the data. The size comes along for
the ride. In fact this function is only reliable way to obtain the data
for an image in a FIT, since the FIT may use external data.

Rename it to fit_image_get_data()

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:04 -06:00
Simon Glass
dc39ce8d90 boot: Rename fit_image_get_data()
This function can only be used with FITs that use embedded data. Rename
it so this is clear.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-22 15:58:04 -06:00
Simon Glass
9578694140 ofnode: Update of_add_subnode() to indicate name is alloced
This function allocates memory for the node name, so mention this in the
function comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
8b2561bf9f ofnode: Indicate when out of space in a few places
Update ofnode_add_subnode() and ofnode_add_prop() to return a suitable
error when space is exhausted in the FDT. This makes it easier to see
what is going wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-22 15:58:03 -06:00
Simon Glass
6c6591c823 ofnode: Use 4K for a default tree-size
At some point it would be nice to have the ofnode API automatically
expand the tree as required, to accommodate new nodes. For now, expand
the default size so that UPL can be supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
9b35dbc93f x86: Show the timestamp counter with bdinfo
Add a line to the 'bdinfo' command which shows the current value of the
TSC.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
78bff2ebba x86: Enable meminfo command
Enable this command for x86 boards as it is quite useful for seeing
where memory is.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
26001ee047 mkimage: Update map_to_sysmem() to match its prototype
Update the version of this function in mkimage so that it uses a const
pointer, as is done in the mapmem.h header file.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
4219fd9a70 serial: Support info() method in ns16550 xPL with UPL
UPL needs to pass the serial details onto the next stage, so adjust the
condition to support this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
8b89d90146 cpu: Provide a way to get the physical-address size
This concept exists on x86. Declare it as a generic function so that the
value can be accessed by UPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
7ba7c1dd86 abuf: Provide a constant buffer
Add a new initialiser which can accept a constant pointer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
d887432807 abuf: Allow use in host tools
Some header files included on the host are moving to use abuf, so adjust
the header-inclusion to bring in size_t correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
c487381d50 abuf: Provide a way to get the buffer address
In many cases it is useful to get the address of a buffer, e.g. when
booting from it. Add a function to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Simon Glass
864106f3c4 bloblist: Make BLOBLIST_ALLOC the default
We want to encourage people to use an allocated bloblist since it is
more flexible than a fixed one. Make this the default, being sure not to
change existing users.

The unit tests require BLOBLIST_FIXED so add a dependency in the
Makefile to avoid build errors.

All sandbox builds require BLOBLIST_FIXED so make that the default for
sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 15:58:03 -06:00
Tom Rini
2eed5a1ff3 Merge https://source.denx.de/u-boot/custodians/u-boot-snapdragon
The highlights are:

* Fixed boot regression due to broken memory parsing
* Enable HW RNG and KASLR on all platforms
* Add support for Snapdragon X1 Elite hardware (clk/pinctrl)
* Add support for QCS9100 ride automotive development platform (clk/ufs)
* Add support for PCIe on SM8550, SM8650 and X1E
* Implement software debounce for PMIC buttons

Additionally, some minor improvements to "ufetch" have been pulled in:

* Show CPU architecture (arm/mips/etc)
* Make CONFIG_BLK optional
* Fix 32-bit support
2025-01-22 11:23:35 -06:00
Tom Rini
380b32f54f Merge patch series "spi: Collected fixes"
Alexander Dahl <ada@thorsis.com> says:

Hello,

two patches for header issues I came across when working on (Q)SPI
drivers for atmel boards.

Link: https://lore.kernel.org/r/20250115161621.1551826-1-ada@thorsis.com
2025-01-22 11:21:58 -06:00
Tom Rini
154c0ab389 Merge patch series "Update my email address"
Christopher Obbard <christopher.obbard@linaro.org> says:

Update my email address for various locations in the U-Boot project.
This will (hopefully) stop any mails from going to /dev/null.

Link: https://lore.kernel.org/r/20250115-wip-obbardc-update-email-v1-0-0b4cd69c91fd@linaro.org
2025-01-22 11:21:58 -06:00
Tom Rini
01b1e062ba Merge https://source.denx.de/u-boot/custodians/u-boot-watchdog
CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=381&view=results

- cyclic: Fix rollover every 72 min on 32 bits platforms (Patrice)
2025-01-22 11:21:58 -06:00
Tom Rini
5fe39e5df4 Merge patch series "vbe: Series part F"
Simon Glass <sjg@chromium.org> says:

This includes various patches towards implementing the VBE abrec
bootmeth in U-Boot. It mostly focuses on introducing a relocating
SPL-loader so that VBE can run in the limited amount of SRAM available
on many devices.

Another minor new feature is support in VBE for specifying the image
phase when loading from a FIT. This allows a single FIT to include
images for several boot phases, thus simplifying image-creation.

One lingering niggle in this series is that it has a different code path
for sandbox, since it does not support the relocating jump. It should be
possible to resolve this with additional work, but I have not attempted
this so far.

For v2, I have split the first patch into 5 pieces, to make it easier to
see the code-size impact, plus added a few tweaks to reduce code size.

Again, only MMC is supported so far.

Looking ahead, series G will have some more plumbing and H some rk3399
pieces. That should be enough to complete these feature.

Here is a run in my lab, with the VBE ABrec bootmeth. You can see that
VPL runs before memory is set up. SPL sets up memory and can be upgraded
in the field reliably.

$ ub-int vbe
Building U-Boot in sourcedir for rk3399-generic
Bootstrapping U-Boot from dir /tmp/b/rk3399-generic
Writing U-Boot using method rockchip

U-Boot TPL 2025.01-rc3-00345-gdfbdbf1eb56c-dirty (Jan 08 2025 - 10:47:58)
Trying to boot from vbe_abrec
load: Firefly-RK3399 Board
   Using 'config-3' configuration
   Trying 'image-vpl' firmware subimage
   Using 'config-3' configuration
   Trying 'fdt-3' fdt subimage

U-Boot VPL 2025.01-rc3-00345-gdfbdbf1eb56c-dirty (Jan 08 2025 - 10:47:58)
Trying to boot from vbe_abrec
load: Firefly-RK3399 Board
Starting with empty state
VBE: Firmware pick A at 800000
   Using 'config-3' configuration
   Trying 'spl' firmware subimage
   Using 'config-3' configuration
   Trying 'fdt-3' fdt subimage
Channel 0: DDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Channel 1: DDR3, 800MHz
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
256B stride

U-Boot SPL 2025.01-rc3-00345-gdfbdbf1eb56c-dirty (Jan 08 2025 - 10:47:58 -0700)
Trying to boot from vbe_abrec
load: Firefly-RK3399 Board
VBE: Firmware pick A at 900000
load_simple_fit: Skip load 'atf-5': image size is 0!
Relocating bloblist ff8eff00 to 100000: done
ns16550_serial serial@ff1a0000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19

U-Boot 2025.01-rc3-00345-gdfbdbf1eb56c-dirty (Jan 08 2025 - 10:47:58 -0700)

SoC: Rockchip rk3399
Reset cause: POR
Model: Firefly-RK3399 Board
DRAM:  4 GiB (effective 3.9 GiB)
Core:  314 devices, 33 uclasses, devicetree: separate
MMC:   mmc@fe310000: 3, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from SPIFlash... Invalid bus 0 (err=-19)
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

In:    serial,usbkbd
Out:   serial,vidconsole
Err:   serial,vidconsole
Model: Firefly-RK3399 Board
Net:   PMIC:  RK808
eth0: ethernet@fe300000

starting USB...
Bus usb@fe380000: USB EHCI 1.00
Bus usb@fe3a0000: USB OHCI 1.0
Bus usb@fe3c0000: USB EHCI 1.00
Bus usb@fe3e0000: USB OHCI 1.0
Bus usb@fe900000: Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus usb@fe380000 for devices... 1 USB Device(s) found
scanning bus usb@fe3a0000 for devices... 1 USB Device(s) found
scanning bus usb@fe3c0000 for devices... 2 USB Device(s) found
scanning bus usb@fe3e0000 for devices... 1 USB Device(s) found
scanning bus usb@fe900000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0

Link: https://lore.kernel.org/r/20250116012723.2820301-1-sjg@chromium.org
2025-01-22 11:21:58 -06:00
Chanho Park
72ff74dc09 vexpress64: Fix bootargs when building without NET
When building without DHCP/PXE configurations (NET disabled),
compilation errors may occur due to mismatched bootargs.
Ensure bootargs related to DHCP/PXE are not enabled if the
corresponding commands are disabled.

include/config_distro_bootcmd.h:443:9: error: expected ‘}’ before
‘BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE’
  443 |         BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Chanho Park <parkch98@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2025-01-22 11:21:58 -06:00
Ronald Wahl
3d729838b3 spi: cadence-quadspi: fix potential malfunction after ~49 days uptime
The get_timer function returns an unsigned long which may be calculated
from the ARM system counter. This counter is reset only on a cold reset.
U-boot divides this counter down to a 1000 Hz counter that will cross
the 32bit barrier after a bit more than 49 days. Assigning the value to
an unsigned int will truncate it on 64bit systems.
Passing this truncated value back to the get_timer function will return
a very large value that is certainly larger than the timeout and so will
go down the error path and besides stopping U-Boot will lead to messages
like

    "SPI: QSPI is still busy after poll for 5000 ms."

Signed-off-by: Ronald Wahl <ronald.wahl@legrand.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-01-22 11:21:58 -06:00
Caleb Connolly
599a1f9076 MAINTAINERS: maintain qcs9100_defconfig
Add this to ARM SNAPDRAGON maintainers entry.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/u-boot/20250122160951.1861910-1-caleb.connolly@linaro.org
2025-01-22 17:14:24 +01:00
Alexander Dahl
1d6d6c16b9 Revert "mem: spi-mem: add declaration for spi_mem_default_supports_op"
We have a duplicate declaration of spi_mem_default_supports_op() which
was added twice, first with commit af6266c1c2 ("mem: spi-mem: add
declaration for spi_mem_default_supports_op") for v2021.04, and again
with commit 2299076e34 ("spi: spi-mem: export
spi_mem_default_supports_op()") for v2021.07.

The first commit is reverted here, because the second better matches the
definition and has a better place in the declaration order.

Note: Linux declares this in a different section of spi-mem.h which is
disabled in U-Boot through `#ifndef __UBOOT__`.

This reverts commit af6266c1c2.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
2025-01-22 09:52:22 -06:00
Alexander Dahl
271983add3 spi: atmel: Really drop atmel_spi.h
First try dropping this was with commit 37434db29b ("spi: atmel: Drop
atmel_spi.h") back in 2018 which was reverted not much later with commit
5270df2836 ("Revert "spi: atmel: Drop atmel_spi.h"").

Second try dropping this was in 2020 with commit beeb34ac0c ("spi:
atmel: Drop atmel_spi.h"), but that only moved all the definitions into
the source file and did not remove the header file.

Currently all of the definitions in the header file are (still)
contained in the source file, and the header file is include nowhere.

Fixes: beeb34ac0c ("spi: atmel: Drop atmel_spi.h")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
2025-01-22 09:52:22 -06:00
Christopher Obbard
c803dfb22c board: rockpi4-rk3399: update email address for Christopher Obbard
Update my email address.

Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
2025-01-22 09:51:41 -06:00
Christopher Obbard
8cc823988e .mailmap: update email address for Christopher Obbard
Update my email address.

Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
2025-01-22 09:51:41 -06:00
Simon Glass
68727fac69 vbe: Update simple-fw to support using the SPL loader
For a sandbox implementation, where code size is no object, it makes sense
to use the full bootstd drivers to load images.

For real boards, running from SRAM, this adds quite a bit of overhead.

Add a way to load the next phase using just the underlying storage
driver, to reduce code size. For now, only MMC is supported.

Change the log_debug() to show the load address and size in a more
neutral way, rather than suggesting that the load has already happened.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
9ecc1cabe1 vbe: Support loading SPL images
VBE needs to load different images from a FIT depending on the xPL phase
in use. The IH_PHASE value is used to select the image to load.

Add the required logic to handle this. For compatibility with the
SPL-loader driver, fill out a struct spl_image_info with the details
needed to boot the next phase.

This is good enough for VBE-simple but ABrec will need the full set of
bootstd features. So add a USE_BOOTMETH define to control this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
65250625c5 vbe: Support loading an FDT with the relocating loader
Add FDT support so that this can be copied down in memory after loading
and made available to the new image.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
ca055155f4 spl: Plumb in the relocating loader
This is fairly easy to use. The SPL loader sets up some fields in the
spl_image_info struct and calls spl_reloc_prepare(). When SPL is ready
to do the jump it must call spl_reloc_jump() instead of jump_to_image().

Add this logic.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
20ad3fa0e1 spl: Add support for a relocating jump to the next phase
When one xPL phase wants to jump to the next, the next phase must be
loaded into its required address. This means that the TEXT_BASE for the
two phases must be different and there cannot be any memory overlap
between the code used by the two phases. It also can mean that phases
need to be moved around to accommodate any size growth.

Having two xPL phases in SRAM at the same time can be tricky if SRAM
is limited, which it often is. It would be better if the second phase
could be loaded somewhere else, then decompressed into place over the
top of the first phase.

Introduce a relocating jump for xPL to support this. This selects a
suitable place to load the (typically compressed) next phase, copies
some decompression code out of the first phase, then jumps to this code
to decompress and start the next phase.

This feature makes it much easier to support Verified Boot for Embedded
(VBE) on RK3399 boards, which have 192KB of SRAM.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
bed7c4599d spl: Add a type for the jumper function
This function will be used by the relocating jumper too, so add a
typedef to the header file to avoid mismatches.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
d86bdb60b5 spl: Add fields for VBE
Add some fields to track the VBE state in SPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
df42d54b96 vbe: Support loading an FDT from the FIT
In many cases the FIT includes a devicetree. Add support for loading
this into a suitable place in memory.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
42fb767da4 vbe: Allow loading loadables if there is no firmware
In some cases only the 'loadable' property is present in the FIT.
Handle this by loading the first such image.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:50 -06:00
Simon Glass
36d6c89950 vbe: Handle loading from an unaligned offset
There is no guarantee that an FIT image starts on a block boundary. When
it doesn't, the image starts part-way through the first block.

Add logic to detect this and copy the image down into place.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
d337037e1a vbe: Tidy up error checking with blk_read()
This function can read fewer blocks than requested, so update the checks
to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
91f27b5b07 vbe: Allow VBE to load FITs on any architecture
At present the VBE implementation is limited to sandbox only. Adjust the
call to fit_image_load() to remove this limitation.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
0148c14e04 vbe: Allocate space for the FIT header
It is convenient to use TEXT_BASE as a place to hold the FIT header, but
this does not work in VPL, since SDRAM is not inited yet.

Allocate the memory instead. Ensure the size is aligned to the media
block-size so that it can be read in directly. Improve the
error-checking for blk_read() and add some more debugging.

Keep the existing TEXT_BASE mechanism in sandbox to avoid an
'Exec format error' when trying to run the image.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
ea6cfc55e0 vbe: Split out reading a FIT into the common file
Loading a FIT is useful for other VBE methods, such as ABrec. Create a
new function to handling reading it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
0a59dc4199 vbe: Move reading the nvdata into the common file
All VBE methods read non-volatile data, so move this function into a
common file.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
47e5618508 vbe: Move reading the version into the common file
All VBE methods read a version string, so move this function into a
common file.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
190b128252 vbe: Create a common function to get the block device
Add a vbe_get_blk() function and use it to obtain the block device used
by VBE.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
27008ce513 vbe: Convert some checks to assertions
VBE is currently quite careful with function arguments because it is
used in VPL which cannot be updated after manufacture. Bugs can cause
security holes.

Unfortunately this adds to code size.

In several cases we are reading values from a devicetree which is part
of U-Boot (or at least VPL) and so known to be good. Also, in several
places, getting bad values does not matter.

So change a few checks to assert() to reduce code size.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
00f521903e vbe: Pass simple_priv to internal functions
Pass the private data instead of the device, to help the compiler
optimise better. This saves 16 bytes of code on pinecube (rk3288)

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
b407b3e7d4 vbe: Use a block device instead of descriptor
Pass a struct udevice instead of the descriptor structure, since this is
the native argument for blk_read()

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
20a1e83732 vbe: Start a common header file
Move a few things into a new, common header file so that vbe-simple can
share code with the upcoming abrec.

Put struct simple_nvdata in it and rename it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Simon Glass
a1c456d199 vbe: Use blk_read() to read blocks
We should not be using the old blk_d...() interface, is only there to
aid migration to driver model.

Move to blk_read() instead.

Changes in v2:
- Split patch into several pieces

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-22 09:47:49 -06:00
Sam Day
782641f872 mach-snapdragon: pass fdt to qcom_parse_memory
commit fc37a73e66 ("fdt: Swap the signature for
board_fdt_blob_setup()") introduced a subtle change to the Snapdragon
implementation, removing the assignment to gd->fdt_blob partway through
the function.

This breaks qcom_parse_memory() which was also called during
board_fdt_blob_setup().

The underlying issue here is that qcom_parse_memory is using the of_ api
to traverse a devicetree, which relies on the fdt_blob in global data.

Rather than relying on this subtle behaviour, explicitly pass the FDT
that should be consulted for a /memory node.

Using the OF API is typically preferable because it's easier to read,
but using the lower level fdt_ methods instead here doesn't add too much
complexity, I think.

Finally, a minor tweak was made to board_fdt_blob_setup to use the
passed fdt blob pointer instead of gd->fdt_blob, which removes the last
of the references to global data in this area.

Fixes: fc37a73e66 (fdt: Swap the signature for board_fdt_blob_setup())
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Sam Day <me@samcday.com>
Link: https://lore.kernel.org/r/20250122-qcom-parse-memory-updates-v2-1-98dfcac821d7@samcday.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:45:02 +01:00
J. Neuschäfer
3db33a6fd6 cmd: ufetch: Show CPU architecture under "CPU"
When looking at ufetch output it isn't immediately obvious which CPU
architecture the presented board has. This patch therefore adds the
CPU architecture string (for example "powerpc") to the "CPU:" line.
The new format is:

	CPU: powerpc (1 cores, 1 in use)

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241211-ufetch-v2-3-2b5432ffaeb1@posteo.net
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:54 +01:00
J. Neuschäfer
c38d5bad35 cmd: Allow building ufetch without CONFIG_BLK
The ufetch command is still quite useful on systems without block
device support; remove the CONFIG_BLK dependency and make sure the code
compiles/works with and without CONFIG_BLK.

Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Link: https://lore.kernel.org/r/20241211-ufetch-v2-2-2b5432ffaeb1@posteo.net
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:54 +01:00
J. Neuschäfer
e288366364 cmd: ufetch: Fix type mismatch on 32-bit
On 32-bit architectures, LAST_LINE (_LAST_LINE - 1UL) is 64 bits long,
but size_t (from ARRAY_SIZE(...)) is 32 bits. This results in a warning
because the max() macro expects the same type on both sides:

cmd/ufetch.c: In function ‘do_ufetch’:
include/linux/kernel.h:179:24: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
  179 |         (void) (&_max1 == &_max2);              \
      |                        ^~
cmd/ufetch.c:92:25: note: in expansion of macro ‘max’
   92 |         int num_lines = max(LAST_LINE + 1, ARRAY_SIZE(logo_lines));
      |                         ^~~

Fix this by casting LAST_LINE to size_t.

Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Link: https://lore.kernel.org/r/20241211-ufetch-v2-1-2b5432ffaeb1@posteo.net
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:54 +01:00
Neil Armstrong
d22fe8f2aa phy: qcom: add QMP PCIe PHY driver
Add support for the PCIe QMP PHY on the SM8550,
SM8650 and x1e80100 SoCs.

The driver is based on the Linux phy/qualcomm/phy-qcom-qmp-pcie.c
driver and adapted to U-Boot.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-phy-v1-1-bf08811d0a07@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:54 +01:00
Neil Armstrong
5b7ec7fb44 pci: Add support for Qualcomm PCIe controller
Add support for the PCIe busses on Qualcomm platforms,
by using the pcie_dw_common infrastructure.

The driver is based on the Linux driver but only supporting
the "1_9_0" and compatible platforms like:
- sa8540p
- sc7280
- sc8180x
- sc8280xp
- sdm845
- sdx55
- sm8150
- sm8250
- sm8350
- sm8450
- sm8550
- sm8650
- x1e80100

But it has only been tested on:
- sc7280
- sm8550
- sm8650
- x1e80100

It supports setting the IOMMU SID table for supported platforms.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-controller-v1-2-45c20070dd53@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:54 +01:00
Neil Armstrong
aeeebdadc5 pci: pcie_dw_common: introduce pcie_dw_find_capability()
Add PCIe config space capability search function specific for
the host controller, which are bridges *to* PCI devices but
are not PCI devices themselves.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-controller-v1-1-45c20070dd53@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:53 +01:00
Neil Armstrong
ed7ba0c114 configs: qcom_defconfig: enable RNG driver and command
Enable the MSM RNG driver by default with the associated
command, this will fill KASLR seed when booting Linux.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-sm8x50-rng-v1-2-52b72821c3e9@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:53 +01:00
Neil Armstrong
a1efde55bb rng: msm: add support for newer Qualcomm hwrandom IPs
On recent Qualcomm SoCs, the hardware random generator
is initialized and handled by the firmware because shared
between different Execution Environments (EE), thus the
initialization step should be skipped.

Also support the newer "TRNG" found on SM8550 and newer
SoCs that has inbuilt NIST SP800 90B compliant entropic source.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Link: https://lore.kernel.org/r/20241125-topic-sm8x50-rng-v1-1-52b72821c3e9@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:43:53 +01:00
Neil Armstrong
cd86b564c8 clk: qcom: x1e80100: add support for PCIe clocks
Add the PCIe clocks for the x1e80100 GCC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-clk-v1-4-4315d1e4e164@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:36:16 +01:00
Neil Armstrong
bb77008c52 clk: qcom: sm8650: add support for PCIe clocks
Add the PCIe clocks for the SM8650 GCC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-clk-v1-3-4315d1e4e164@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:36:16 +01:00
Neil Armstrong
5310a13b56 clk: qcom: sm8550: add support for PCIe clocks
Add the PCIe clocks for the SM8550 GCC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-clk-v1-2-4315d1e4e164@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:36:16 +01:00
Neil Armstrong
5b359312e5 clk: qcom: add clk_phy_mux_enable() for PCIe PIPE clock
The PCIe PIPE clock requires a special setup function to
mux & enable the clock from the PCIe PHY before the PHY
has enabled the clock.

Import the clk_phy_mux_enable() from the Linux driver to
use the same implementation regarding the PIPE clock.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-clk-v1-1-4315d1e4e164@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:36:15 +01:00
Neil Armstrong
bc09b58e2a regulator: qcom-rpmh-regulator: add support for pmc8380 regulators
Add the PMC8380 regulator data found on the Snapdragon X Elite platforms.
The tables are imported from the Linux driver.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Link: https://lore.kernel.org/r/20241125-topic-hamoa-pmc8380-rpmh-regulators-v1-1-695c44ea8586@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:36:00 +01:00
Neil Armstrong
767a1e57fa pinctrl: qcom: x1e80100: add pcie[3456ab]_clk functions
Add the missing PCIe clk_req function for the x1e80100 TLMM.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-pinctrl-v1-3-4df323d90397@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:39 +01:00
Neil Armstrong
7acf090d27 pinctrl: qcom: sm8650: add pcie[01]_clk_req_n function
Add the missing PCIe clk_req functions for the SM8650 TLMM.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-pinctrl-v1-2-4df323d90397@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:39 +01:00
Neil Armstrong
7ca1b3f0d9 pinctrl: qcom: sm8550: add pcie1_clk_req_n function
Add the missing PCIe clk_req function for the SM8550 TLMM.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241125-topic-pcie-pinctrl-v1-1-4df323d90397@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:39 +01:00
Caleb Connolly
709ecea592 button: qcom-pmic: add software debounce
This helps with reliability on some platforms. We should probably also
configure the hardware debounce timer eventually.

Link: https://lore.kernel.org/r/20241113045109.1838241-1-caleb.connolly@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:18 +01:00
Neil Armstrong
8376161a03 qcom_defconfig: enable X1E80100 pinctrl driver
Enable the X1E80100 pinctrl driver in the Qualcomm defconfig.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> # Yoga Slim 7x
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241115-topic-x1e80100-pinctrl-v1-2-35f984226e47@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:03 +01:00
Neil Armstrong
51a142363d pinctrl: qcom: Add X1E80100 pinctrl driver
Add pinctrl driver for the TLMM block found in the X1E80100 SoC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> # Yoga Slim 7x
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20241115-topic-x1e80100-pinctrl-v1-1-35f984226e47@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:35:02 +01:00
Neil Armstrong
743bcd5553 qcom_defconfig: enable X1E80100 clock driver
Enable the X1E80100 clock driver in the Qualcomm defconfig.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241118-topic-x1e80100-clk-v1-2-8841e87ad81f@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:34:26 +01:00
Neil Armstrong
61097fed40 clk: qcom: Add X1E80100 clock driver
Add Clock driver for the GCC block found in the X1E80100 SoC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> # Yoga Slim 7x
Link: https://lore.kernel.org/r/20241118-topic-x1e80100-clk-v1-1-8841e87ad81f@linaro.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:34:26 +01:00
Varadarajan Narayanan
58bf7db9a5 configs: add qcs9100_defconfig
Introduce a defconfig for the Ride R3 and other QCS9100 boards with a
dedicated uefi partition. These can replace EDK2 entirely with U-Boot.

Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Link: https://lore.kernel.org/r/20250110050817.3819282-7-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:52 +01:00
Varadarajan Narayanan
ea3d9be203 qcom_defconfig: enable SA8775P clock driver
Enable the SA8775P clock driver in the Qualcomm defconfig.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
Link: https://lore.kernel.org/r/20250110050817.3819282-6-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:51 +01:00
Varadarajan Narayanan
4695cb5de7 phy: qcom: Add SA8775 to QMP UFS PHY driver
Copy PHY tables over from Linux to support SA8775.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tag/?h=v6.13-rc6

Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
Link: https://lore.kernel.org/r/20250110050817.3819282-5-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:51 +01:00
Varadarajan Narayanan
b3c48d8f82 clk/qcom: add initial clock driver for qcs9100
Add initial set of clocks and resets for enabling U-Boot on QCS9100
based Ride platforms.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
Link: https://lore.kernel.org/r/20250110050817.3819282-4-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:51 +01:00
Varadarajan Narayanan
5cc2d97367 dts: qcs9100-ride-r3-u-boot: add override dtsi
Add initial support for the QCS9100 (derived from SA8775p) Ride platforms.
Define memory layout statically.

Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
Link: https://lore.kernel.org/r/20250110050817.3819282-3-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:51 +01:00
Tengfei Fan
5c713a9cf1 arm64: dts: qcom: qcs9100: Add support for the QCS9100 Ride and Ride Rev3 boards
Add device tree support for the QCS9100 Ride and Ride Rev3 boards. The
QCS9100 is a variant of the SA8775p, and they are fully compatible with
each other. The QCS9100 Ride/Ride Rev3 board is essentially the same as
the SA8775p Ride/Ride Rev3 board, with the QCS9100 SoC mounted instead
of the SA8775p.

Signed-off-by: Tengfei Fan <quic_tengfan@quicinc.com>
Reviewed-by: Konrad Dybcio <konradybcio@kernel.org>
Link: https://lore.kernel.org/r/20240911-add_qcs9100_support-v2-4-e43a71ceb017@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

[ upstream commit: 7dcc1dfaa3d1cd3aafed2beb7086ed34fdb22303 ]

(cherry picked from commit db6231faa8ef46e5ff5d5ece0c930a07c6358562)

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Link: https://lore.kernel.org/r/20250110050817.3819282-2-quic_varada@quicinc.com
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-01-22 16:26:51 +01:00
Patrice Chotard
fb30f75655 cyclic: Fix typo in struct cyclic_info description
Replace delay_ns by delay_us which is the field name used into
struct cyclic_info.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-22 10:22:34 +01:00
Patrice Chotard
302f866e5c cyclic: Fix rollover every 72 min on 32 bits platforms
On 32 bits platforms, timer_get_us() returns an unsigned long which
is a 32 bits. timer_get_us() wraps around every 72 minutes
(2 ^ 32 / 1000000 =~ 4295 sec =~ 72 min).

So the test "if time_after_eq64(now, cyclic->next_call)" is no more
true when cyclic->next_call becomes above 32 bits max value (4294967295).

At this point after 72 min, no more cyclic function are
executed included watchdog one.

Instead of using timer_get_us(), use get_timer_us() which returns a
uint64_t, this allows a rollover every 584942 years.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-22 10:22:34 +01:00
Tom Rini
82d262ae16 Merge patch series "MediaTek MT7629 OF_UPSTREAM migration (v2)"
Weijie Gao <weijie.gao@mediatek.com> says:

This patch series migrates MediaTek MT7629 to OF_UPSTREAM

Changes in v2:
* Remove mt7629-rfb.dtb from arch/arm/dts/Makefile
* Add wdt-reboot node to make reset command work

Link: https://lore.kernel.org/r/cover.1736851116.git.weijie.gao@mediatek.com
2025-01-21 09:29:05 -06:00
Tom Rini
ca7881e789 Merge patch series "Broadcom bcmbca dts updates"
david regan <dregan@broadcom.com> says:

Updates for Broadcom bcmbca devices,
make use of OF_UPSTREAM which uses Linux dts,
update bcmbca dts to current nand node naming convention,
enable basic nand functionality for bcmbca devices.

Link: https://lore.kernel.org/r/20250114045425.148801-1-dregan@broadcom.com
2025-01-21 09:29:05 -06:00
Patrick Rudolph
4fd503bb8e sbp1: Add support for IBM SBP1 board
Add defconfig & devicetree for IBM SBP1 board BMC based on AST2600 SoC.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Naresh Solanki <naresh.solanki@9elements.com>
2025-01-21 09:29:05 -06:00
Sam Shih
9bc0c7e8ab board: mediatek: mt7629: Migrate to OF_UPSTREAM
Move differences in DT files between upstream Linux DT and U-Boot DT to
mt7629-rfb-u-boot.dtsi.
Remove old copies of mt7629-related clock bindings, .dts, and .dtsi files.
Update defconfig to switch the whole mt7629 SoC to use OF_UPSTREAM.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-21 09:28:43 -06:00
Sam Shih
5449167139 clk: mediatek: mt7629: fix gate offset of peri clock tree
The clock definitions in mt7629-clk.h indicate that CLK_PERIBUS_SEL is the
first element in the pericfg clock tree and also serves as a clock mux,
unlike other clocks belonging to the clock gate in pericfg.

This make the clock consumer get a wrong clock gate during request a clock
from <&pericfg>.

Since CLK_PERIBUS_SEL clock is not required in U-Boot, add a clock gate
offset for the pericfg clock tree to resolve this problem.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-21 09:28:43 -06:00
david regan
65fcf33a3f arm: dts: Enable basic nand functionality for bcmbca devices
Enable rudimentary nand read/write capability.

Changes in v2:
- New patch in series added enabling of nand functionality

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2025-01-21 09:28:05 -06:00
david regan
6cdbc41e01 arm: dts: Update nand node for bcmbca board dts
Update bcmbca dts to current nand node naming convention.

Changes in v2:
- Removed addition of nand-on-flash-bbt parameter

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2025-01-21 09:28:05 -06:00
david regan
aba477ce0a arm: dts: Use upstream dts for additional bcmbca devices
Make use of OF_UPSTREAM which uses Linux dts.

Changes in v2:
- Removed enabling of nand functionality

Signed-off-by: david degan <dregan@broadcom.com>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2025-01-21 09:28:05 -06:00
Jonathan Humphreys
9b5ff131d0 configs: am62x_evm_*: Set DFU buffer size to 256k
OSPI flash writing was broken on am62x SKs as the OSPI flash device has a
256k sector size but was set to 20k. This breaks OSPI flash writes because
the current implementation of the SF DFU backend requires that the DFU data
buffer size be the same as the sector erase size, and the USB DFU config
fragment (for both A53 and R5) reduced the size of the DFU data buffer,
presumably so that it can fit into SPL's much smaller heap.

Change the SYS_DFU_DATA_BUF_SIZE to the erase sector size, which still fits
within the post-relocation heap size in SPL.

Fixes: dfc2dff5a8 ("configs: am62x_evm_*: Enable USB and DFU support")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-21 09:27:41 -06:00
Heinrich Schuchardt
9698e8ddbf acpi: don't fill FADT, MADT if CONFIG_QFW_ACPI=y
When using the ACPI tables supplied by QEMU, we don't need to build the
FADT and MADT tables in U-Boot.

This patch avoids a build failure

    make qemu-riscv64_smode_defconfig acpi.config

    riscv64-linux-gnu-ld.bfd: lib/acpi/acpi_table.o:
    in function `acpi_write_fadt':
    lib/acpi/acpi_table.c:265:(.text.acpi_write_fadt+0x15c):
    undefined reference to `acpi_fill_fadt'

    riscv64-linux-gnu-ld.bfd: lib/acpi/acpi_table.o:
    in function `acpi_write_madt':
    lib/acpi/acpi_table.c:294:(.text.acpi_write_madt+0x52):
    undefined reference to `acpi_fill_madt'

Fixes: f5f7962091 ("acpi: x86: Write FADT in common code")
Fixes: 4a3fc0f525 ("acpi: x86: Move MADT to common code")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2025-01-21 09:27:24 -06:00
Tom Rini
5d5ce5f257 Merge patch series "Rework the BLK symbol usage in Kconfig"
Tom Rini <trini@konsulko.com> says:

One problem we have today is how the BLK symbol is set and used in
Kconfig files. Part of the challenge is that we use it as a gating
symbol for "we have a block device" and also for "enable block device
library code". What this series does is move to always use "select BLK"
by block drivers (a few were and a few others had it the inverse) and
then "depends on BLK" for functionality that needs a block device
present. The end result of this series is that a number of platforms
which had disabled EFI_LOADER now don't ask for it (they have no block
device) and espresso7420 has a regression about MMC support fixed. With
v2 of this I've picked up the review tags from v1 and also reworded the
body of the commit in the first patch.

Link: https://lore.kernel.org/r/20250115012322.215243-1-trini@konsulko.com
2025-01-20 19:26:55 -06:00
Tom Rini
3e6fc0fa7b block: Remove "select BLK" from non-block drivers
Now that block drivers are all selecting the BLK symbol, there's no need
for other options to be select'ing BLK so that other required
functionality can be enabled. Remove these places.

Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:26:55 -06:00
Tom Rini
09cf580029 mtd: Correct dependency of BLK
In the case of MTD_BLOCK and UBI_BLOCK they should be select'ing BLK as
they provide block device functionality and not depending on some other
block device already being enabled too (as is the typical case).

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:26:54 -06:00
Tom Rini
a72fa7f2fe blk: Make block subsystems select BLK
The BLK symbol has a few meanings, one of which is that it controls the
driver model portion of a "block device". Rather than having this hidden
symbol be "default y if ..." it should be select'd by the various block
subsystems. Symbols such as PVBLOCK which already select'd BLK are
unchanged".

Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:26:54 -06:00
Tom Rini
aad5863459 efi_loader: Depend on BLK
In reworking the BLK usage in Kconfig, I found there's a few issues with
EFI_LOADER=y and BLK=n. In general, we can easily say that
lib/efi_loader/efi_file.c also should only be built with CONFIG_BLK.
That however leaves the bootmgr code, eficonfig code and then parts of
efi_device_path.c, efi_boottime.c and efi_setup.c which functionally
depend on BLK. While these calls can be if'd out, I'm unsure if the
result is usable. So rather than leave that buildable and imply that it
is, I'm leaving that combination non-buildable and commenting that
EFI_LOADER depends on BLK in the Kconfig currently.

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:26:54 -06:00
Tom Rini
0569ca6856 drivers/mmc/Kconfig: Make DM_MMC a hidden symbol
At this point in time, DM is always enabled. So if MMC is enabled, it
should select DM_MMC. No drivers need to depend on DM_MMC being enabled
now, so remove that from dependency lists. This now means that a number
of platforms which select'd DM_MMC need to select MMC instead. This also
fixes a migration problem with espresso7420 in that MMC is built again
with the platform.

Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:26:25 -06:00
Tom Rini
3de327ab49 drivers/mmc/Kconfig: Remove extraneous BLK dependencies
At this point in time, we know that with the MMC symbol enabled we will
always also have the BLK symbol enabled, so we do not need to list that
as a dependency for MMC drivers.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-20 19:19:43 -06:00
Tom Rini
9bfc72e3b2 Merge tag 'u-boot-imx-master-20250120' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/24263

- Add i.MX95 EMDIO support
- Guard binman nodes with CONFIG_OPTEE on imx8m
- Enable CAAM in phycore-imx8mp SPL.
- Fix Fix NULL dereference in imx_pinctrl_probe().
2025-01-20 12:08:16 -06:00
Udit Kumar
0d837cb075 arch: arm: mach-k3: Delete tifs node in DT fixup
Delete tifs DT node as part of fixup.

TISCI API reported msmc_size, does not include 64KB reserved size for
tifs aka MSMC comms memory, see documentation[0].

As part of fixup, original code uses TISCI API reported msmc_size as
size for SRAM DT node.

tifs node is similar to l3-cache, which should hold address above
msmc_size, and should be deleted before passing control to OS.

[0] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/core.html?highlight=msmc#tisci-msg-query-msmc

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
2025-01-20 08:32:48 -06:00
Beleswar Padhi
138022a241 board: ti: j722s: j722s.env: Set remoteproc firmware names
Include k3_rproc.env to access rproc boot commands and specify rproc
firmware names for adding remoteproc support in J722S SoCs.

Signed-off-by: Beleswar Padhi <b-padhi@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2025-01-20 08:32:48 -06:00
Jayesh Choudhary
bb28b4906e arch: arm: mach-k3: j784s4_init: Set CTRL_MMR for AUDIO_REFCLK1 clk_sel
The default value for the mux to select the parent clock,
AUDIO_REFCLK1_CTRL_CLK_SEL is '11111' (31) but the mux input for 31
is marked as 'Reserved' so the ti-sci-clk call for get-parent fails.
Mark it to a valid value, '11100' (28) for MAIN_PLL4_HSDIV2_CLKOUT
to get rid of the linux failures during boot-time like:
"[    1.573193] ti-sci-clk 44083000.system-controller:clock-controller:
 get-parent failed for dev=157, clk=34, ret=-19"

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
2025-01-20 08:32:48 -06:00
Heinrich Schuchardt
b77791a11a fs: eliminate YAFFS2 implementation
Upstream development stopped 2012.
Linux eliminated YAFFS2 in 2010.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-20 08:32:48 -06:00
Leonard Anderweit
e38a490810 phycore-imx8mp: Enable CAAM in spl
Enable CAAM in spl.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
2025-01-20 08:41:38 -03:00
Jesse Taube
bb060231b6 pinctrl: imx: Fix NULL dereference in imx_pinctrl_probe()
When converting to ofnode `ofnode_read_u32` was accedentally used to
replace `fdtdec_get_int` instead of `ofnode_read_u32_default`.
Use `ofnode_read_u32_default` to fix this.

Fixes: 59382d2 ("pinctrl: imx: Convert to use livetree API for fdt access")
Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2025-01-20 08:41:23 -03:00
Fabio Estevam
252ad9890d imx8m: Guard binman nodes with CONFIG_OPTEE
Guard binman nodes with CONFIG_OPTEE to fix the following error
when building without optee support:

  BINMAN  .binman_stamp
Image 'image' has faked external blobs and is non-functional: tee.bin

Image 'image' is missing optional external blobs but is still functional: tee-os

/binman/section/fit/images/tee/tee-os (tee.bin):
   See the documentation for your board. You may need to build Open Portable
   Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin

Some images are invalid
make: *** [Makefile:1135: .binman_stamp] Error 103

While at it, only pass tee to the loadables lines when CONFIG_OPTEE is
defined.

Reported-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Yannic Moog <y.moog@phytec.de>
2025-01-20 08:41:01 -03:00
Alice Guo
e6df2f5e22 net: fsl_enetc: Update enetc driver to support i.MX95
i.MX95 uses enetc version 4.1 controller. Update the enetc for i.MX95.
Add ARM-specific cache handling and i.MX95 specific register layout
handling.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Marek Vasut <marex@denx.de> # Clean up
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Tim Harvey <tharvey@gateworks.com>
2025-01-20 08:40:39 -03:00
Alice Guo
7dfcd0ee38 net: fsl_enetc: add i.MX95 EMDIO support
The verdor ID and device ID of i.MX95 EMDIO are different from LS1028A
EMDIO, so add new vendor ID and device ID to pci_device_id table to
support i.MX95 EMDIO.

Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Marek Vasut <marex@denx.de> # Clean up
Signed-off-by: Ye Li <ye.li@nxp.com>
2025-01-20 08:40:39 -03:00
Marek Vasut
58b9e70f2d net: fsl_enetc: Add initial netc-blk-ctrl driver support
The netc-blk-ctrl driver is used to configure Integrated Endpoint
Register Block (IERB) and Privileged Register Block (PRB) of NETC.
For i.MX platforms, it is also used to configure the NETCMIX block.

The IERB contains registers that are used for pre-boot initialization,
debug, and non-customer configuration. The PRB controls global reset
and global error handling for NETC. The NETCMIX block is mainly used
to set MII protocol and PCS protocol of the links, it also contains
settings for some other functions.

Note the IERB configuration registers can only be written after being
unlocked by PRB, otherwise, all write operations are inhibited. A warm
reset is performed when the IERB is unlocked, and it results in an FLR
to all NETC devices. Therefore, all NETC device drivers must be probed
or initialized after the warm reset is finished.

Ported from Linux 6.13-rc as of commit
fe5ba6bf91b3 ("net: enetc: add initial netc-blk-ctrl driver support")

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
db7d2356df net: fsl_enetc: Pass udevice pointer to accessors
Pass struct udevice * into the register accessors, so the accessors can reach
driver data, which contain device specific register offsets.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
a6a850fead net: fsl_enetc: Introduce driver data
Introduce driver data for each PCI device. The driver data carry
offsets of registers which differ between different SoCs.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
cc4e8af2c5 net: fsl_enetc: Split register accessors
Split register accessors to the port base/station interface/port/mac
registers as those are at different offsets on different SoCs. This
is a preparatory patch which will allow addition of adjusted offsets
for new SoCs easily.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
f0faa5a0de net: fsl_enetc: Inline register accessors
Move register accessors from header files and turn them into proper
inline functions, so typechecking can be done on them. Drop no longer
enetc_port_regs() and unused enetc_read() and enetc_bdr_read().

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
4eb5ef73a9 net: fsl_enetc: Introduce enetc_dev_id()
Introduce mapping function enetc_dev_id(), which converts PCIe BDF of
the ENETC into linear incrementing index usable e.g. as interface index.
This replaces the current ad-hoc calculation used in the code with a
dedicated function. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
e091e49afe net: fsl_enetc: Rename the driver and related structures
Rename the current driver structure and matching ops and PCI IDs
and add _ls suffix to indicate this content is LS specific. This
is done in preparation for addition of i.MX95 ENETCv4 which will
require slightly different structure content.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
f593deb5a9 net: fsl_enetc: Pass udevice pointer into enetc_enable_si_port()
Pass udevice pointer into enetc_enable_si_port() so tests like
enetc_is_ls1028a() an be used in the function. No functional
change.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
a14d3d96e2 net: fsl_enetc: Fold DT MAC address update into enetc_set_ierb_primary_mac()
The entire content of the loop can be folded into enetc_set_ierb_primary_mac(),
do it. This changes the behavior slightly such that the DT is only updated in
case of a LS1028A, which is the only SoC with ethernet MAC path in DT matching
"/soc/pcie@1f0000000/ethernet@%x,%x" anyway, so this slight change should have
no impact.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
755aa1c3ff net: fsl_enetc: Remove ifdef around enetc_set_ierb_primary_mac()
Use enetc_is_ls1028() instead of ifdef around enetc_set_ierb_primary_mac()
and clean up the function. No functional change intended.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Marek Vasut
6ee57e5f0f net: fsl_enetc: Introduce enetc_is_ls1028a()
Introduce accurate test for LS1028A compatibility based both on
IS_ENABLED(CONFIG_ARCH_LS1028A) and PCI vendor ID. This is done
in preparation for adding ENETCv4 support, which has a different
PCI vendor ID.

Signed-off-by: Marek Vasut <marex@denx.de>
2025-01-20 08:40:39 -03:00
Tom Rini
639cd40998 Merge patch series "add the support of sha256_hmac and sha256_hkdf"
Philippe Reynes <philippe.reynes@softathome.com> says:

This serie adds the support of sha256_hmac and sha256_hkdf.
A first version was sent several months ago just before the
integration of mbedtls. This new version is based on mbedtls.

The first patch of this serie add the support of hkdf
using mbedtls.

Link: https://lore.kernel.org/r/20241219130554.49825-1-philippe.reynes@softathome.com
2025-01-18 17:13:01 -06:00
Philippe Reynes
3f9d18254b configs: sandbox: enable mbedtls
Enable mbedtls to have at least one config with
mbedtls enabled.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
2025-01-18 17:12:48 -06:00
Philippe Reynes
71503620e8 test: lib: add test for key derivation
Adds a test for the function sha256_hkdf.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-18 17:12:47 -06:00
Philippe Reynes
12e841114d lib: mbedtls: sha256: add support of key derivation
Adds the support of key derivation using the scheme hkdf.
This scheme is defined in rfc5869.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-18 17:12:47 -06:00
Philippe Reynes
44ce63016d test: lib: add test for sha256_hmac
Adds a test for the function sha256_hmac

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-18 17:12:47 -06:00
Philippe Reynes
e364a9148f lib: sha256: add feature sha256_hmac
Adds the support of the hmac based on sha256.
This implementation is based on rfc2104.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-18 17:12:47 -06:00
Philippe Reynes
ccc5e16683 lib: sha256: move common function to sha256_common.c
The function sha256_csum_wd is defined in lib/sha256.c
and in lib/mbedtls/sha256.c. To avoid duplicating this
function (and future function), we move this function
to the file lib/sha256_common.c

Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
2025-01-18 17:12:47 -06:00
Philippe Reynes
70a42bf217 mbedtls: enable support of hkdf
Adds the support of key derivation using
the scheme hkdf.

Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
2025-01-18 17:12:47 -06:00
Philippe Reynes
f88ccd32b5 tools: renesas_spkgimage.h: use linux/compiler_attributes.h
The attribute __packed was defined in the file
tools/renesas_spkgimage.h but this attribute is
already defined in linux/compiler_attributes.h.
So we include <linux/compiler_attributes.h.h>
and do not define __packed.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
2025-01-18 17:12:47 -06:00
Philippe Reynes
eec32a35d7 tools: kwbimage.h: use linux/compiler_attributes.h
The attribute __packed was defined in the file
tools/kwbimage.h but this attribute is already
defined in linux/compiler_attributes.h. So we
include <linux/compiler_attributes.h.h> and
do not define __packed.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
2025-01-18 17:12:47 -06:00
Tom Rini
a1e7dd7e14 Merge tag 'efi-2025-04-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-04-rc1

Documentation:

* Correct the defconfig name in the coolpi documentation

UEFI:

* Carve out the biggest part of the RISC-V and ARM linker scripts for EFI
  binary into a common include.
* Correct the values of SizeOfCode and SizeOfInitializedData in generated
  EFI binaries for RISC-V and ARM.
* Avoid gaps between sections in EFI binaries causing a failure in secure
  boot.
* Makefile: let clean remove capsule_in.capsule*.efi-capsule
* Refactor some of the code used for launching EFI binaries.
2025-01-18 10:46:23 -06:00
Tom Rini
319b2e655a Gitlab: Add DEFAULT_FAST_ARM64_TAG as well
Upon further consideration, we should have both DEFAULT_FAST_ARM64_TAG
and DEFAULT_ARM64_TAG values available. This will allow us to later run
a matrix of some jobs, such as sandbox, on any arm64 host and still keep
the world build to only fast arm64 hosts.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-18 08:29:36 -06:00
Norbert van Bolhuis
bbfa4fe13c squashfs: Fix sqfs_inode_size() for xattr related SQFS_LSYMLINK_TYPE
A squashfs filesystem with extended attributes (xattrs) may have
inodes of type SQFS_LSYMLINK_TYPE. This might cause u-boot to fail to
handle the filesystem since it assumes a SYMLINK_TYPE and LSYMLINK_TYPE
inode are the same size. This is wrong, see:
https://github.com/plougher/squashfs-tools/blob/master/squashfs-tools/read_fs.c#L421

Using the mksquashfs '-no-xattrs' argument is probably best, but the
mksquashfs '-xattrs' argument is the default.
This patch fixes squashfs image handling by making sure parsing the
uncompressed inode_table (with sqfs_find_inode) succeeeds. The only change
needed is correctly determining the size of a SQFS_LSYMLINK_TYPE inode.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@gmail.com>
2025-01-18 08:29:10 -06:00
Tom Rini
a0defa4f35 qconfig.py: Update resync message
When using qconfig.py to resync defconfig files and commit the result,
update it to say:
Resync all defconfig files using qconfig.py

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-18 08:28:44 -06:00
Marek Vasut
37a777e128 Makefile: Make sure all linker input objects exist
In case the build system builds a directory with empty Makefile,
one which does not contain any obj-y entries, the build fails to
link due to missing built-in.o .

This happens because of this part of scripts/Makefile.build
 81 ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)
 82 builtin-target := $(obj)/built-in.o
 83 endif
which does not assign builtin-target in case obj-y is empty. The
built-in target is then not built at all, and built-in.o is not
generated by this part of scripts/Makefile.build
 325 ifdef builtin-target
 326 quiet_cmd_link_o_target = AR      $@
 327 # If the list of objects to link is empty, just create an empty built-in.o
 ...
 335 targets += $(builtin-target)
 336 endif # builtin-target
This is the correct behavior.

The final link however expects the built-in.o to exist in every directory
included in the build, even in those where the aforementioned code skipped
generation of built-in.o . Make sure the built-in.o does exist for every
directory used in final link simply by doing touch on every built-in.o used
for the link, which will create empty built-in.o in case any built-in.o is
missing.

A possible alternative fix is the always define the builtin-target
and always generate built-in.o .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-18 08:28:16 -06:00
Tom Rini
24c76a1f43 Merge https://source.denx.de/u-boot/custodians/u-boot-sh 2025-01-18 08:27:15 -06:00
Marek Vasut
1487c34efa arm64: dts: renesas: Deduplicate extalr_clk bootph-all
Most R-Car Gen3 and Gen4 systems require extalr_clk very early
in the boot process. Currently the extalr_clk { bootph-all } DT
property to indicate this clock should be available early is set
in each SoC U-Boot DT extras file. Deduplicate this assignment to
new common r8a779x-rcar64-u-boot.dtsi file.

Note that R-Car Gen3 R8A77990 E3 and R8A77995 D3 and RZ R8A774C0
do not require extalr_clk early, therefore these SoCs still include
plain r8a779x-u-boot.dtsi in their U-Boot DT extras .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-18 09:29:17 +01:00
Marek Vasut
74d12f1b0e arm64: renesas: Rewrite u-boot-elf.srec base address if PIE for R-Car Gen3
The flash_writer tool and previous recovery tools require the SREC load
address to be 0x5000_0000 . The PIE U-Boot build sets the address to 0x0
instead, so override the address back to make u-boot-elf.srec compatible
with the recovery tools.

Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-18 09:29:17 +01:00
Simon Glass
f58b0d0012 efi_loader: Make efi_run_image() static
This function is not called from outside this file and has no entry in
the header file, so mark it static.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-17 21:05:49 +01:00
Simon Glass
ef7b3f4323 efi_loader: Refactor device and image paths into a function
Move this code into a function so it can be called from elsewhere.

Note that the recently added network code uses the same
'global variable' approach. It could use a separate clean-up.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-17 20:41:49 +01:00
Heinrich Schuchardt
80c8dbe514 Makefile: let clean remove capsule_in.capsule*.efi-capsule
Update the CLEAN_FILES list to remove capsule*.*.efi-capsule.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:50 +01:00
Heinrich Schuchardt
590c1813a4 efi_loader: use include in ARM EFI linker script
Use the same include as arm64 for the linker script.

Adjust the 32-bit ARM PE-COFF header accordingly and harmonize it with the
64-bit ARM header.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:26 +01:00
Heinrich Schuchardt
216459d2cf efi_loader: correct SizeOfCode, SizeOfInitializedData
The fields SizeOfCode, SizeOfInitializedData, and SizeOfUninitializedData
are define in the PE-COFF specification [1].

* SizeOfCode must match the size of all .text sections.
* SizeOfInitializedData must match the size of all .data sections.
* SizeOfUninitializedData must match the size of all .bss sections.

We only have one .text and one .data section. SizeOfCode and
SizeOfInitializedData have to be calculated as the difference between
the end and the start of the respective section.

As we don't have any .bss sections in the generated EFI binaries.
SizeOfUninitializedData must remain 0.

[1] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:26 +01:00
Heinrich Schuchardt
6a628c1503 efi_loader: use INCLUDE in EFI linker scripts
Except for the architecture specific lines ARM and RISC-V can use the same
linker script. Move the common lines to an include.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:26 +01:00
Heinrich Schuchardt
6384229dc3 scripts/Makefile.lib: add -L option to LD command for EFI binaries
The linker uses the path specified with -L to search for linker scripts
and for linker script includes.

For out-of-tree builds specify the build directory with -L instead of
the absolute path of the linker script. This allows using an INCLUDE
statement.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:25 +01:00
Ilias Apalodimas
75fe33973c efi_loader: Fix section alignment on EFI binaries
When creating EFI binaries, the alignment of the text section isn't
correctly factored in. As a result trying to load signed EFI binaries
throws an error with:

efi_image_region_add() efi_image_region_add: new region already part of another
Image not authenticated

Running the binary through sbverify has a similar warning
sbverify ./lib/efi_loader/helloworld.efi
warning: gap in section table:
    .text   : 0x00001000 - 0x00001c00,
    .data   : 0x00002000 - 0x00002200,
gaps in the section table may result in different checksums
warning: data remaining[7680 vs 12720]: gaps between PE/COFF sections?
.....

If we include the alignment in the text section, the signed binary boots
fine, and the relevant sbverify warning goes away
sbverify ./lib/efi_loader/helloworld.efi
warning: data remaining[8704 vs 12720]: gaps between PE/COFF sections?
.....

We should look into the remaining warning at some point as well
regarding the gaps between PE/COFF sections.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:31:25 +01:00
Andy Yan
3e4eb3e259 doc: coolpi: Fix the defconfig name
The defconfig name should be: coolpi-cm5-genbook-rk3588_defconfig

Signed-off-by: Andy Yan <andyshrk@163.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-17 20:30:59 +01:00
Tom Rini
c11dc783fb Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/24215

- RISC-V: Add "riscv,isa-extensions" and multi-letter extension parsing
  support
- RISC-V: Add default cache line size
- Board: Canaan: Add K230-CanMV support
- Board: VisionFive2: Split out target specific configuration
2025-01-17 08:27:40 -06:00
Tom Rini
ea3324b344 Merge tag 'u-boot-imx-master-20250116' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/24221

- Enable watchdog command on Capricorn board.
- Convert imx8m evk boards to BOOTSTD.
- Enable dynamic mmcdev setting on imx8m evk boards.
- Fix i.MX FDT cooling-device property corruption.
- Add OP-TEE support on Phycore i.MX8M boards.
2025-01-16 09:59:54 -06:00
Sébastien Szymanski
985268107d imx: fdt: fix cooling-device property corruption
The function disable_thermal_cpu_nodes() corrupts the cooling-device
property.
For example, booting an i.MX93 devices with only one A55 core (IMX93x1)
with the cooling-device property set to:

$ dtc -I dtb foo.dtb | grep cooling-device
cooling-device = <0x08 0xffffffff 0xffffffff 0x09 0xffffffff 0xffffffff>;

Linux shows the following error at boot:

[    1.715189] OF: /thermal-zones/cpu-thermal/cooling-maps/map0: could not find phandle 1083699869
[    1.723977] thermal_sys: Add a cooling_device property with at least one device
[    1.731285] thermal thermal_zone0: binding zone cpu-thermal with cdev thermal-devfreq-0 failed:-2

because the cooling-device property in the device tree passed to the
kernel is

$ dtc -I dtb /sys/firmware/fdt | grep cooling-device
cooling-device = <0x4097f29d 0x00 0xb05aef9d>;

The issue is because the wrong variable type is passed to the function
fdt_setprop() called in the function disable_thermal_cpu_nodes(). With
the variable type fixed, the error at boot is gone and the property is
properly set:

$ dtc -I dtb /sys/firmware/fdt | grep cooling-device
cooling-device = <0x08 0xffffffff 0xffffffff>;

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
2025-01-16 10:16:47 -03:00
Alexander Sverdlin
e06f6f4377 configs: capricorn_cxg3: Enable CMD_WDT
Capricorn boards have WDT (WDT_SIEMENS_PMIC) and U-Boot is not configured
to trigger the WDT. Enable the "wdt" command to be able to stop the WDT
from the command line.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2025-01-16 10:16:30 -03:00
Yannic Moog
99039271c0 doc: phytec: imx8mm: add OP-TEE documentation
Add instructions on how to build and package OP-TEE for the
phycore-imx8mm based boards. The build instructions are identical for
phyGATE-Tauri-L and phyBOARD-Polis.
Also fix missig '-' for TF-A build instructions.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Yannic Moog
608023b1ef doc: phytec: imx8mp: add OP-TEE documentation
Add documentation for the phyBOARD-Pollux i.MX 8M Plus on OP-TEE
integration.
Also add missing '-' to TF-A build instruction while at it.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Yannic Moog
142317ae07 phycore-imx8mm_defconfig: add optee load address
The phyCORE i.MX 8M Mini expects 0x56000000 address to load optee.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Yannic Moog
128d09273d imx8mm-phygate-tauri-l_defconfig: add optee load address
The phyGATE-Tauri-L expects 0x56000000 address to load optee.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Yannic Moog
30581197f0 phycore-imx8mp_defconfig: add optee load address
The phyBOARD-Pollux expects 0x56000000 address to load optee.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Yannic Moog
015483904c arm: imx8m: add OP-TEE node
Add tee node in SoC u-boot device trees. Use a kconfig entry to specify
load and entry addresses for the op-tee image in the respective
defconfig.
Default IMX8M_OPTEE_LOAD_ADDR is supplied. To keep it simple, the same
addresses are used for each SoC as are defined in upstream tf-a
(BL32_BASE) [1].

[1] https://github.com/ARM-software/arm-trusted-firmware/tree/master/plat/imx/imx8m

Signed-off-by: Yannic Moog <y.moog@phytec.de>
2025-01-16 10:16:02 -03:00
Peng Fan
2b6601b18e gpio: adp5585: Update compatible string
i.MX93-11x11-EVK has switched to use upstream device tree, and use
"adi,adp5585". Since i.MX93-11x11-EVK is the only user of this driver,
so it is safe to drop "adp5585".

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
65bdb716d9 imx: imx93-11x11-evk: drop duplicated nodes
The upstream dts already has the lpi2c2 subnodes, so drop the duplicated
ones in u-boot dtsi.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
7050bd925f imx: imx8mq_evk: Switch to BOOTSTD
Move env to imx8mq_evk.env
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
838c2fffaa imx: imx8mq_evk: Enable dynamic settings to mmcdev and mmcroot
Enable dynamic settings to mmcdev and mmcroot for i.MX8MQ-EVK
Since we are here, clean up the including headers

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
c00e8e0f57 imx: imx8mq_evk: Drop DECLARE_GLOBAL_DATA_PTR
There is no gd used in the board file, so drop DECLARE_GLOBAL_DATA_PTR.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
74854d7750 imx: imx8mq_evk: Cleanup headers
Drop unused headers and sort the order.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
364ba68ed1 imx: imx8mm_evk: Switch to BOOTSTD
Move env to imx8mm_evk.env
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
fc7bb3decc imx: imx8mm_evk: Enable dynamic settings to mmcdev and mmcroot
Enable dynamic settings to mmcdev and mmcroot for i.MX8MM-EVK

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:42 -03:00
Peng Fan
f8ab31eae4 imx: imx8mn_evk: Switch to BOOTSTD
Move env to imx8mn_evk.env
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
35e43f7f75 imx: imx8mn_evk: Enable dynamic settings to mmcdev and mmcroot
Enable dynamic settings to mmcdev and mmcroot for i.MX8MN-EVK

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
07d5afc562 imx: imx8mn_evk: Drop DECLARE_GLOBAL_DATA_PTR
There is no users of global data in imx8mn_evk.c, drop it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
2b28dec8ad imx: imx8mn_evk: Cleanup headers
Drop unused headers and sort them

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
4718e8adaf imx: imx8mp_evk: Switch to BOOTSTD
Move env to imx8mp_evk.env.
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
d4e0105e58 imx: imx8mp_evk: Enable dynamic settings to mmcdev and mmcroot
Enable dynamic settings to mmcdev and mmcroot for i.MX8MP-EVK

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
4854b2777c imx: imx91_evk: switch to BOOTSTD
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
d489e27c35 imx: imx93_qsb: switch to BOOTSTD
Switch to support BOOTSTD with a bsp bootcmd as fallback.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Peng Fan
a0df7f39a4 imx: imx93_evk: switch to BOOTSTD
Switch to support BOOTSTD with a bsp bootcmd as fallback.
Move the env to imx93_evk.env

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2025-01-16 10:15:41 -03:00
Junhui Liu
b3ce35900c doc: canaan: Add K230 CanMV board
Add description of compiling u-boot for K230 CanMV.

Since the vendor's u-boot-spl verifies u-boot header [1], it is
necessary to use the Python script from vendor to add the header to the
u-boot image.

[1] https://github.com/kendryte/k230_sdk/blob/v1.8/src/little/uboot/board/canaan/common/k230_board_common.h#L52

Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:55:27 +08:00
Junhui Liu
9c402a54df riscv: canaan: k230_canmv: Add initial support
Add support for K230 CanMV board with serial console and usb otg
support. It can boot via vendor's u-boot-spl and boot into Linux
via tftp through the onboard RTL8152.

Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:55:27 +08:00
Junhui Liu
78d9ce3e36 riscv: cpu: k230: Add support for Canaan Kendryte K230 SoC
Add Canaan K230 SoC with sysreset support, running without cache
enabled.

Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:55:27 +08:00
Junhui Liu
a1135b7526 riscv: dts: canaan: Add basic device tree for K230 CanMV board
Add initial dts for K230-CanMV powered by Canaan Kendryte K230 SoC,
which has two RISC-V C908 cores, a big core with vector 1.0 extension
and a small core without vector extension.

This patch is basically comes from Linux Kernel [1] and it assumes
u-boot is running on the big core. Additionally, bootctl and reboot nodes
are added to support sysreset [2] and an clk_dummy node is added to
satisfy dependencies for usb [3].

Currently, u-boot is booted by the vendor's u-boot-spl. To meet the
requirements [4][5] of vendor's u-boot-spl for u-boot, a binman node with
mkimage child node is added here, which will compress u-boot.bin with
gzip and generate an image named "uboot" in the file u-boot-gz.img.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/log/?h=k230-basic
[2] https://github.com/kendryte/k230_sdk/blob/v1.8/src/big/rt-smart/kernel/bsp/maix3/board/interdrv/sysctl/sysctl_boot/sysctl_boot.c#L67
[3] https://lore.kernel.org/linux-riscv/tencent_AD84B436C2F31108B66B4739D6E306C5E80A@qq.com/
[4] https://github.com/kendryte/k230_sdk/blob/v1.8/src/little/uboot/board/canaan/common/k230_img.c#L306
[5] https://github.com/kendryte/k230_sdk/blob/v1.8/src/little/uboot/board/canaan/common/k230_img.c#L125

Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:55:27 +08:00
Junhui Liu
892b31a1fb usb: dwc2: Add support for Canaan K230
Canaan Kendryte K230 SoC instantiates a dwc2 v4.30a core. This patch
adds the compatible for it.

Signed-off-by: Junhui Liu <junhui.liu@pigmoral.tech>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:55:27 +08:00
Yu-Chien Peter Lin
6be961a758 Kconfig: Add a default cache line size for RISC-V
The RISC-V ISA profile RVA23U64 requires extension Zic64b (Cache blocks
must be 64 bytes in size, naturally aligned in the address space).

Some RISC-V platforms do not define the d-cache line size through SYS_CACHE_SHIFT_n.
Set a default value of 64 bytes for such cases.

Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:34:30 +08:00
Mayuresh Chitale
4492c8db60 riscv: Fallback to riscv,isa
Update the cpu probing to fallback to "riscv,isa" property if
"riscv,isa-extensions" is not available and modify the riscv CMO code
to use the block size that was probed during cpu setup.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:34:18 +08:00
Mayuresh Chitale
ab15e20ea9 riscv: Enhance extension probing
Enhance the existing extension probing mechanism by adding support for
more extensions and probing using the "riscv,isa" property. This patch
is ported from the latest upstream linux.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:34:18 +08:00
E Shattow
9c4d760637 riscv: dts: starfive: split out visionfive2 target specific configuration
Split out StarFive VisionFive2 multi-board target specific configuration
into starfive-visionfive2-binman.dtsi in preparation for removal of
jh7110-u-boot and jh7110-common-u-boot in part or whole as sent upstream.

Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2025-01-16 15:34:05 +08:00
Tom Rini
178f6ecb21 Merge patch series "bootstd: Support recording images"
Simon Glass <sjg@chromium.org> says:

This series provides a way to keep track of the images used in bootstd,
including the type of each image.

At present this is sort-of handled by struct bootflow but in quite an
ad-hoc way. The structure has become quite large and is hard to query.
Future work will be able to reduce its size.

Ultimately the 'bootflow info' command may change to also show images as
a list, but that is left for later, as this series is already fairly
long. So for now, just introduce the concept and adjust bootstd to use
it, with a simple command to list the images.

This series includes various alist enhancements, to make use of this new
data structure a little easier.

[trini: Drop patch 18 and 19 for now due to size considerations]

Link: https://lore.kernel.org/r/20241115231926.211999-1-sjg@chromium.org
2025-01-15 19:27:14 -06:00
Simon Glass
a3d0fadca6 bootstd: Export bootdev_get_from_blk()
Export this function so it can be used from other files.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:43 -06:00
Simon Glass
d9055f5e4f bootstd: Add a simple command to list images
Add a new 'bootstd images' command, which lists the images which have
been loaded.

Update some existing tests to use it. Provide some documentation about
images in general and this command in particular.

Use a more realistic kernel command-line to make the test easier to
follow.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
59a9a14537 bootstd: Update cros bootmeth to record images
Record images loaded by this bootmeth.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
ff4c9a4b6f Update bootmeth_alloc_other() to record images
Update this function to add the image to the list.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
985f9f7039 boot: Update pxe bootmeth to record images
Record images loaded by this bootmeth.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
3ed218e2ff boot: Update extlinux pxe_getfile_func() to include type
Add a file-type parameter to this function and update all users. Add a
proper comment to the function which we are here.

This will allow tracking of the file types loaded by the extlinux
bootmeth.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
ea7f88f313 bootmeth_efi: Check the filename-allocation in the network path
If the filename cannot be set we should give up. Add the missing error
check.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
aa0ba7fbda bootmeth: Update the read_file() method to include a type
We want to record the type of each file which is loaded. Add an new
parameter for this, to the read_file() method. Update all users.

Make bootmeth_common_read_file() store information about the image that
is read.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-15 08:48:42 -06:00
Simon Glass
d4c60aa91b bootmeth_efi: Simplify reading files by using the common function
The efiload_read_file() does similar things to a common function, so
update it to use that instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-15 08:48:42 -06:00
Simon Glass
8777ae2b95 boot: pxe: Drop the duplicate comment on get_pxe_file()
This function is exported, so document it in the header file. Drop the
duplicate comment in the C file.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
adc621bf15 bootstd: Update bootmeth_alloc_file() to record images
As a first step to recording images and where they came from, update
this function to do so, since it is used by two bootmeths

Create a helper function in the bootflow system, since recorded
images are always associated with bootflows.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
8a6bf2fb31 bootstd: Maintain a list of images
We want to keep track of images which are loaded, or those which could
perhaps be loaded. This will make it easier to manage memory allocation,
as well as permit removal of the EFI set_efi_bootdev() feature.

Add a list of these, attached to the bootflow. For now the list is
empty.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
49867e8045 bootstd: Move the bootflow list into an alist
Use an alist for this data structure as it is somewhat simpler to
manage. This means that bootstd holds a simple list of bootflow structs
and can drop it at will, without chasing down lists.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
6a3eb84b18 bootstd: Drop the bootdev-specific list of bootflows
This list is only used by two functions, which can be updated to iterate
through the global list. Take this approach, which allows the bootdev
list to be dropped.

Overall this makes the code slightly more complicated, but will allow
moving the bootflow list into an alist

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
529f92677d bootstd: Add a function to get bootstd only if available
Provide a function which is safe to call in the 'unbind' path, which
returns the bootstd priv data if available.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Simon Glass
9218225773 bootstd: Move bootflow-clearing to bootstd
This relates to more than just the bootdev, since there is a global list
of bootflows. Move the function to the bootstd file and rename it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-15 08:48:42 -06:00
Simon Glass
47903aacc5 bootstd: Move bootflow-adding to bootstd
This relates to more than just the bootdev, since there is a global list
of bootflows. Move the function to the bootstd file and rename it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-15 08:48:42 -06:00
Tom Rini
e26a9ac4c6 Merge patch series "Add fdt-fixups for AM62P variants"
Aparna Patra <a-patra@ti.com> says:

This series implements fdt fixups, by reading hardware
information from registers and accordingly delete/modify
the DT nodes, at run-time.

Logs for AM62P boot:
https://gist.github.com/itsme-aparna/b889fe59882c1acf0ef25a644bd325c4

Link: https://lore.kernel.org/r/20250108044939.392785-1-a-patra@ti.com
2025-01-14 15:51:47 -06:00
Aparna Patra
969f43c563 arm: mach-k3: am62p: Set a53 cpu freq based on speed-grade
The maximum frequency of the A53 CPU on the AM62P depends on the speed
grade of the SoC. This value is hardcoded in the DT for all AM62P
variants, potentially causing specifications to be exceeded. Moreover,
setting a common lower frequency for all variants increases boot time.
To prevent these issues, modify the DT at runtime from the R5 core to
adjust the A53 CPU frequency.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2025-01-14 15:50:07 -06:00
Aparna Patra
8d05cbef73 arm: mach-k3: am62p: Fixup a53 max cpu frequency by speed-grade
AM62P SoC has multiple speed grades. Add function to delete
non-relevant CPU frequency nodes, based on the information
retrieved from hardware registers. Fastest grade's maximum
frequency also depends on PMIC voltage, hence to simplify
implementation use the smaller value.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2025-01-14 15:50:07 -06:00
Aparna Patra
a226a6422c arm: mach-k3: am62p: Fixup thermal zone critical points
Read the max temperature for the SoC temperature grade from the hardware
and modify the critical trip nodes on each thermal zone of FDT at
runtime so they are correct with the hardware value for its grade.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2025-01-14 15:50:07 -06:00
Aparna Patra
e44098d1aa arm: mach-k3: am62p: Fixup CPU core, CAN-FD and Video-codec nodes in fdt
AM62P SOC is available in multiple variants:
-CPU cores (Cortex-A) AM62Px1 (1 core),
 AM62Px2 (2 cores), AM62Px4 (4 cores)
-With and without CAN-FD & Video-codec support

Remove the relevant FDT nodes by reading the actual configuration
from the SoC registers, with that change it is possible to have a single
dts/dtb file handling the different variant at runtime.

Signed-off-by: Aparna Patra <a-patra@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2025-01-14 15:50:07 -06:00
Tom Rini
08733bf313 Merge patch series "Inline ECC Series"
Santhosh Kumar K <s-k6@ti.com> says:

Hello,

This series adds support for Inline ECC in DDR for AM64X, AM62X,
AM62AX, AM62PX, J721E, J721S2, J722S and J784S4 devices.

Test Results: https://gist.github.com/santhosh21/88de920771ed2efa0463a5a367cb8d7b

Link: https://lore.kernel.org/r/20250106090708.1541212-1-s-k6@ti.com
2025-01-14 15:49:41 -06:00
Santhosh Kumar K
bc07851897 board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled
As there are few redundant functions in board/ti/*/evm.c files, pull
them to a common location of access to reuse and include the common file
to access the functions.

Call k3-ddrss driver through fixup_ddr_driver_for_ecc() to fixup the
device tree and resize the available amount of DDR, if ECC is enabled.
Otherwise, fixup the device tree using the regular
fdt_fixup_memory_banks().

Also call dram_init_banksize() after every call to
fixup_ddr_driver_for_ecc() is made so that gd->bd is populated
correctly.

Ensure that fixup_ddr_driver_for_ecc() is agnostic to the number of DDR
controllers present.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-14 15:47:07 -06:00
Neha Malcom Francis
01fa91bd5b arm: mach-k3: Set NR_DRAM_BANKS to 2
Set CONFIG_NR_DRAM_BANKS to 2 as we have two banks described in the
memory/ node for lower and higher addressible DDR regions.

This allows use of FDT functions from fdt_support.c to set up and fix up
the memory/ node correctly.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
2025-01-14 15:47:07 -06:00
Santhosh Kumar K
7a84969dcb ram: k3-ddrss: Remove 'ti,ecc-enable' support
The functionality of enabling Inline ECC is now controlled by
CONFIG_K3_INLINE_ECC. So, remove the support for 'ti,ecc-enable'
property to avoid redundancy and to ensure the Inline ECC feature is
mananged through build-time config.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-14 15:47:07 -06:00
Neha Malcom Francis
98dd3c126e drivers: ram: Kconfig: Add CONFIG_K3_INLINE_ECC
Add CONFIG_K3_INLINE_ECC so that ECC functions can be compiled into R5 SPL
only when the config has been enabled.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-14 15:47:07 -06:00
Santhosh Kumar K
42957c3a8b ram: k3-ddrss: Enable ECC interrupts
Enable ECC 1-bit error, 2-bit error, multiple 1-bit error interrupts
by setting the respective bits in the DDRSS_V2A_INT_SET_REG register.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
2025-01-14 15:47:07 -06:00
Santhosh Kumar K
39d66893ef ram: k3-ddrss: Setup ECC region start and range
Setup the ECC region's start and range using the device private data,
ddrss->ddr_bank_base[0] and ddrss->ddr_ram_size. Also, move start and
range of ECC regions from 32 bits to 64 bits to accommodate for
DDR greater than or equal to 4GB.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
2025-01-14 15:47:07 -06:00
Santhosh Kumar K
22ce56a3eb ram: k3-ddrss: Add k3_ddrss_ddr_bank_base_size_calc() to solve 'calculations restricted to 32 bits' issue
As R5 is a 32 bit processor, the RAM banks' base and size calculation
is restricted to 32 bits, which results in wrong values if bank's base
is greater than 32 bits or bank's size is greater than or equal to 4GB.

So, add k3_ddrss_ddr_bank_base_size_calc() to get the base address and
size of RAM's banks from the device tree memory node, and store in a
64 bit device private data which can be used for ECC reserved memory
calculation, Setting ECC range and Fixing up bank size in device tree
when ECC is enabled.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2025-01-14 15:47:07 -06:00
Georgi Vlaev
fed3b1eb9b ram: k3-ddrss: Use the DDR controller BIST engine for ECC priming
The 1-bit inline ECC support in TI's DDRSS bridge requires
the configured memory regions to be preloaded with a pattern
before use. This is done by the k3-ddrss driver from the
R5 SPL in a 'for' loop. It takes around 10 seconds to fill
2GB of memory, for example. Memset can cut the time in half
and using DMA currently yields a similar result.

The BIST engine of DDR controller provides support for
initializing any memory region with a pattern. This
bypasses the DDRSS bridge, so the required inline ECC
data is not computed and populated in the memory. For
some values like zero, the computed ECC syndrome is also
zero and we can use these values to preload the memory
from the DDR controller, without the assistance of the
bridge.

The registers involved in the process are described in the
'DDR controller registers' topic in [1] AM62 and [2] J721E
reference manuals.

The patch replaces the 'for' loop memory fill function with
the BIST memory initialization procedure. This cuts the time
to preload the 2GB memory from 10 seconds down to 1 second.
The bist preload function uses the lpddr4 APIs in the k3-ddrss,
so this is compatible with devices with both 16-bit LPDDR4 and
32-bit LPDDR4 interfaces (e.g J721E).

[1] AM62x: https://www.ti.com/lit/pdf/spruiv7
[2] DRA829/TDA4VM: https://www.ti.com/lit/zip/spruil1

Signed-off-by: Georgi Vlaev <g-vlaev@ti.com>
Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
2025-01-14 15:47:07 -06:00
Santhosh Kumar K
8ff96fb6d0 arm: dts: k3-*-ddr: Add ss_cfg reg entry
Add ss_cfg memory region which maps the DDRSS configuration region
for the memory controller node.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Neha Malcom Francis <n-francis@ti.com>
2025-01-14 15:47:07 -06:00
Tom Rini
e5ce3b44cc Merge patch series "fdt_support: improve board_fdt_chosen_bootargs() for flexibility"
Dmitry Rokosov <ddrokosov@salutedevices.com> says:

This series consists of three patches.

The first patch modifies the function documentation style in the
include/fdt_support.h file to comply with kernel-doc requirements.

The second patch modifies the board_fdt_chosen_bootargs() function to
return a const char* type. This change clarifies to the caller that the
returned string should neither be freed nor modified. It aligns with the
existing fdt_setprop() function, which already utilizes a const char*
parameter. This promotes consistency within the codebase and enhances
code safety by preventing unintended modifications to the returned
string.

The third patch addresses the need for flexibility in providing kernel
command line arguments (bootargs) for different kernel images within the
same U-Boot environment. It introduces a read-only (RO) fdt_property
argument to the board_fdt_chosen_bootargs() function, allowing access to
the original chosen/bootargs data. This is crucial for scenarios where
different kernel versions require distinct console setups (e.g., ttyS0
for vendor kernels and ttyAML0 for upstream kernels). By enabling board
developers to either merge or replace the original bootargs, this
patch enhances the configurability of U-Boot for various kernel
images without relying on outdated configurations like CMDLINE_EXTEND.

CI/CD results: https://github.com/u-boot/u-boot/pull/716/checks

Link: https://lore.kernel.org/r/20241220-board_fdt_chosen_bootargs_improvements-v1-0-f6a7181787c5@salutedevices.com
2025-01-14 15:44:44 -06:00
Dmitry Rokosov
1cfdac9852 common: fdt: hand over original fdt bootargs into board chosen handler
Sometimes, it is necessary to provide an additional bootargs string to
the kernel command line.

We have a real scenario where one U-Boot blob needs to boot several
kernel images: the vendor-patched kernel image and the latest upstream
kernel image. The Amlogic (Meson architecture) tty driver has different
tty suffixes in these kernels: the vendor uses 'ttySx', while the
upstream implementation uses 'ttyAMLx'. The initial console setup is
provided to the kernel using the kernel command line (bootargs). For the
vendor kernel, we should use 'console=ttyS0,115200', while for the
upstream kernel, it must be 'console=ttyAML0,115200'. This means we have
to use different command line strings depending on the kernel version.

To resolve this issue, we cannot use the CMDLINE_EXTEND kernel
configuration because it is considered legacy and is not supported for
the arm64 architecture. CMDLINE_EXTEND is outdated primarily because we
can provide additional command line strings through the
'chosen/bootargs' FDT node. However, U-Boot uses this node to inject the
U-Boot bootargs environment variable content, which results in U-Boot
silently overriding all data in the 'chosen/bootargs' node. While we do
have the board_fdt_chosen_bootargs() board hook to address such issues,
this function lacks any FDT context, such as the original value of the
'chosen/bootargs' node.

This patch introduces a read-only (RO) fdt_property argument to
board_fdt_chosen_bootargs() to share the original 'chosen/bootargs' data
with the board code. Consequently, the board developer can decide how to
handle this information for their board setup: whether to drop it or
merge it with the bootargs environment.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-14 15:41:56 -06:00
Dmitry Rokosov
c39257c131 fdt_support: board_fdt_chosen_bootargs() should return const char*
It should be structured this way to demonstrate to the caller that
freeing the return value is unnecessary and that the caller cannot
modify it.
The function fdt_setprop() includes a parameter with a const char*
prototype, so it is better to use the const qualifier.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-14 15:41:56 -06:00
Dmitry Rokosov
453625a861 include/fdt_support: fix docstyle to comply with kernel-doc requirements
No errors from kernel-doc with this patch applied:
$ ./scripts/kernel-doc -v -none include/fdt_support.h
    include/fdt_support.h:17: info: Scanning doc for arch_fixup_fdt
    include/fdt_support.h:37: info: Scanning doc for fdt_root
    include/fdt_support.h:48: info: Scanning doc for fdt_chosen
    include/fdt_support.h:59: info: Scanning doc for fdt_initrd
    include/fdt_support.h💯 info: Scanning doc for fdt_fixup_memory
    include/fdt_support.h:115: info: Scanning doc for fdt_fixup_memory_banks
    include/fdt_support.h:148: info: Scanning doc for fdt_fixup_display
    include/fdt_support.h:176: info: Scanning doc for fdt_record_loadable
    include/fdt_support.h:205: info: Scanning doc for ft_board_setup
    include/fdt_support.h:218: info: Scanning doc for board_rng_seed
    include/fdt_support.h:231: info: Scanning doc for board_fdt_chosen_bootargs
    include/fdt_support.h:251: info: Scanning doc for ft_system_setup
    include/fdt_support.h:266: info: Scanning doc for fdt_shrink_to_minimum
    include/fdt_support.h:301: info: Scanning doc for fdt_copy_fixed_partitions
    include/fdt_support.h:314: info: Scanning doc for fdt_translate_address
    include/fdt_support.h:327: info: Scanning doc for fdt_translate_dma_address
    include/fdt_support.h:342: info: Scanning doc for fdt_get_dma_range
    include/fdt_support.h:464: info: Scanning doc for fdt_get_cells_len
    include/fdt_support.h:480: info: Scanning doc for fdtdec_get_child_count
    include/fdt_support.h:500: info: Scanning doc for fdt_kaslrseed

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-14 15:41:56 -06:00
Tom Rini
5c72a2afbf chromebook_coral: Move CONFIG_BLOBLIST_ADDR to CAR
Reading doc/board/google/chromebook_coral.rst we can see that at some
point it was intended to put the bloblist in CAR, rather than DRAM, at
some point during development. This is fine for TPL/SPL stages where we
have very minimal information stored in the bloblist and so we can set
the limit there to 4KiB and then expand it to 196KiB in U-Boot proper so
there's room for ACPI tables and so forth. We also update the
documentation to use the same location for CONFIG_BLOBLIST_ADDR in both
references.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-14 14:47:03 -06:00
Tom Rini
079214e4be Merge patch series "SMBIOS improvements"
Raymond Mao <raymond.mao@linaro.org> says:

Motivations for changes:
Current SMBIOS library and command-line tool is not fully matching with
the requirements:
1. Missing support for other mandatory types (#7, #9, #16, #17, #19).
2. Only a few platforms support SMBIOS node from the device tree.
3. Values of some fields are hardcoded in the library other than fetching
   from the device hardware.
4. Embedded data with dynamic length is not supported (E.g. Contained
   Object Handles in Type #2 and Contained Elements in Type #3)

Changes:
1. Refactor the SMBIOS library and command-line tool to better align with
   the SMBIOS spec.
2. Create an arch-specific driver for all aarch64-based platforms to fetch
   SMBIOS private data from the device hardware (processor and cache).
3. Create a sysinfo driver to poppulate platform SMBIOS private data.
4. Add generic SMBIOS DTS file for arm64 platforms for those common strings
   and values which cannot be retrieved from the system registers.
   Vendors can create their own SMBIOS node using this as an example.
   For those boards without SMBIOS nodes, this DTS file can be included to
   have a generic SMBIOS information of the system.
5. Add support for Type #7 (Cache Information) and link its handles to
   Type #4.
6. To minimize size-growth for those platforms which have not sufficient
   ROM spaces or the platforms which don't need detailed SMBIOS
   information, new added fields are only being built when kconfig
   GENERATE_SMBIOS_TABLE_VERBOSE is selected.

Once this patch is acceptted, subsequent patch sets will add other missing
types (#9, #16, #17, #19).

Tests:
To test this with QEMU arm64, please follow the guide on dt_qemu.rst to
get a merged DT to run with.
```
qemu-system-aarch64 -machine virt -machine dumpdtb=qemu.dtb
cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | grep -v /dts-v1/) \
  | dtc - -o merged.dtb
qemu-system-aarch64 -machine virt -nographic -bios u-boot.bin \
  -dtb merged.dtb
```

Link: https://lore.kernel.org/r/20241206225438.13866-1-raymond.mao@linaro.org
2025-01-14 14:29:49 -06:00
Raymond Mao
0af16b3556 configs: Enable sysinfo for QEMU Arm64
Enable sysinfo smbios by default for arm64.
When SYSINFO_SMBIOS is enabled, disable QFW_SMBIOS.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
e6285168f8 cmd: update smbios cmd
Update the cmd according to the changes of the smbios library:
1. Refactor smbios cmd print functions to match the content defined
   by the specification.
2. Add new print functions for Type 3, 4 and 7.
3. Remove the fallback string "Not specified" from smbios_get_string,
   as the spec requires a NULL output for those undefined strings.
4. Update the test_cmd_smbios_sandbox pytest expected result to
   align with the smbios library changes and add new pytest
   test_cmd_smbios_sysinfo_verbose to test the verbose smbios
   output.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
86898a98fd armv8: Add generic smbios information into the device tree
Add common smbios information that can be used by all armv8
platforms and set it as default for qemu-arm64.
>From now smbios library can load values from here for those fields
doesn't exist in the sysinfo driver.

To run this with QEMU arm64, we need to dump the generated DTB
from QEMU first, merge it with the one we build and then re-run
QEMU with the merged DTB.
```
qemu-system-aarch64 -machine virt -machine dumpdtb=qemu.dtb
cat  <(dtc -I dtb qemu.dtb) <(dtc -I dtb ./dts/dt.dtb | \
  grep -v /dts-v1/) | dtc - -o merged.dtb
qemu-system-aarch64 -machine virt -nographic -bios u-boot.bin \
  -dtb merged.dtb
```
For details please take reference on dt_qemu.rst

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
c0e1775a86 armv8: Add arch-specific sysinfo platform driver
Add sysinfo platform driver for all armv8 platforms to retrieve
hardware information on processor and cache.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
bcf456dd36 smbios: add detailed smbios information
Add detailed SMBIOS information as following:
1. Missing fields in Type #3 and #4
2. Type #7

Add support to dynamic length of contained object handles and
elements.

As SMBIOS is a fundamental feature which is enabled for all
boards, in order to avoid increasing rom size, all detailed SMBIOS
information is under kconfig GENERATE_SMBIOS_TABLE_VERBOSE.
Board maintainers can determine whether to select this feature.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
5d38e0d963 smbios: Refactor smbios library
Current smbios library does not fully match to the specification.
It hardcodes values instead of exposing values from the device.
It does not reserve the space to support dynamic length for
contained object handles or elements and misses the handling of
a few of fields.

The refactoring of this patch includes:
1. Expose values from device via sysinfo interface.
2. Replace smbios_add_prop with smbios_add_prop_si to allow getting
   string values from sysinfo.
3. Add smbios_get_val_si to get values from sysinfo or device tree.
4. Use sysinfo_get_data to get data area.
5. Reserve the space of contained object handles and elements.
6. Miscellaneous fixes in smbios.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
ce562b42ce sysinfo: Add sysinfo driver and data structure for smbios
Add sysinfo driver to retrieve smbios information (Type 4 and 7).
So that the smbios library can use it for getting values from the
hardware platform instead of device tree.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
3914a2e0dc test/dm: add sandbox test for sysinfo_get_data
Adding sysinfo_get_data into sandbox ut test dm_test_sysinfo.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
dc8053eaee sysinfo: Add sysinfo API for accessing data area
Add interface for sysinfo to access a data area from the platform.
This is useful to save/read a memory region of platform-specific
data.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2025-01-14 14:29:29 -06:00
Raymond Mao
8aa5f8e02f smbios: Refactor the smbios headfile
Move the smbios field definitions to a separated simple headfile,
which is a prerequisite to be included by dts files.
Add new definitions for cache information.
This patch also includes a few of code optimizations in smbios.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2025-01-14 14:29:29 -06:00
Tom Rini
e17be5a07a Merge patch series "Adjust how autoprobe is implemented"
Simon Glass <sjg@chromium.org> says:

This little series makes a minor change to how autoprobe is
implemented, as discussed on the list.

Link: https://lore.kernel.org/r/20240626235717.272219-1-marex@denx.de
Link: https://lore.kernel.org/r/20241120153642.861633-1-sjg@chromium.org
2025-01-14 11:43:01 -06:00
Simon Glass
21dd873572 dm: core: Simplify dm_probe_devices()
There is no point in checking the pre_reloc flag, since devices not
marked as pre-reloc will not have been bound, so won't exist yet.

There doesn't seem to be any point in checking if the device has a
valid devicetree node either, so drop that too.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-14 11:42:51 -06:00
Simon Glass
6995f2c8be common: Move autoprobe out to board init
Rather than doing autoprobe within the driver model code, move it out to
the board-init code. This makes it clear that it is a separate step from
binding devices.

For now this is always done twice, before and after relocation, but we
should discuss whether it might be possible to drop the post-relocation
probe.

For boards with SPL, the autoprobe is still done there as well.

Note that with this change, autoprobe happens after the
EVT_DM_POST_INIT_R/F events are sent, rather than before.

Link: https://lore.kernel.org/u-boot/20240626235717.272219-1-marex@denx.de/

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-01-14 11:42:51 -06:00
Simon Glass
70c79dc88f common: Drop check for DM in initf_dm()
This is enabled by all boards, so drop the condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2025-01-14 11:42:51 -06:00
Tom Rini
4eb937058f Merge tag 'xilinx-for-v2025.04-rc1-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.04-rc1 v2

Versal:
- Enable dfu support for SPI with multiboot

ZynqMP:
- Align multiboot reg description
- DT syncups
- Wire missing DTs in defconfig
- Kria: Remove usb hub initialization via commands
- Kria: Update DP reset in psu_init

AMD/Xilinx:
- Enable SPI_STACKED_PARALLEL configs

SPI/ZYNQMP_GQSPI:
- Update debug message to use log_debug()

RTC:
- Enable ZYNQMP_RTC for Versal SOCs
2025-01-14 09:36:06 -06:00
Tom Rini
ecc2bd711a Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic 2025-01-14 09:35:43 -06:00
Vincent Fazio
3a2bf24a85 rtc: zynqmp: allow on Versal architectures
Allow the ZyncMP RTC driver to be enabled on Versal architectures.

Also, require DM_RTC since the driver uses the RTC driver model.

Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>
Link: https://lore.kernel.org/r/20250114135812.2605618-1-vfazio@xes-inc.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-14 15:34:51 +01:00
Ibai Erkiaga
f039cde1e2 zynqmp_gqspi: update to log_debug
Update recent parallel memory support code to move to log_debug instead
of debug as per logging in U-Boot documentation

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@amd.com>
Link: https://lore.kernel.org/r/20250107145110.2855213-1-ibai.erkiaga-elorza@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-14 08:33:31 +01:00
Venkatesh Yadav Abbarapu
4d33529207 board: xilinx: Add missing prototype for set_dfu_alt_info
Add missing prototype to fix the sparse warning,
warning: no previous prototype for 'set_dfu_alt_info'
[-Wmissing-prototypes].

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250106090630.209938-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-14 08:29:46 +01:00
Jonathan Stroud
b446b8a865 arm64: zynqmp: Add eeprom labels for System Controller dts
Label all eeproms so we can open by label rather than a fixed i2c address.

Signed-off-by: Jonathan Stroud <jonathan.stroud@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/878558c3c859599d29bc4ae2278baebf84b368e0.1736152966.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
e7ce901452 arm64: zynqmp: Enable iio-hwmon description only for SOM
Description is coming from SOM only that's why enable it only on SOM.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/08ee4ce2fe242905dd99cea2b87373b57d8fea91.1736152939.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Venkatesh Yadav Abbarapu
caf1d916c5 config: xilinx: Enable the SPI_STACKED_PARALLEL config option
Enable the SPI_STACKED_PARALLEL config option for
all AMD/xilinx platforms, as this is required for parallel and
stacked memories.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20250103044812.18828-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-14 08:29:45 +01:00
Neal Frager
7a8417845d board: zynqmp: zynqmp-sm-k26-revA: release DP from reset
This releases the DP configuration from reset early on during the boot process
for K26 SOM.  It will also avoid the boot hang situation should any attempt be
made to configure the DP registers while it is still in reset.

Fixes the same issue as described by the commit 8b81010a2f ("video:
zynqmp: Add support for reset").

Signed-off-by: Neal Frager <neal.frager@amd.com>
Link: https://lore.kernel.org/r/20241218130129.687650-1-neal.frager@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2025-01-14 08:29:45 +01:00
Michal Simek
c2612feb65 xilinx: Sort OF_LIST and add missing vpk120 and zcu670 platforms
Sort OF_LIST entries and also add missing vpk120 and zcu670 platforms.
Compilation is failing when these DTs are exported via DEVICE_TREE because
binman is not able to create a link for default configuration.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/505996b6ef969b1b677ab921462c75c798c366e7.1734335553.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
539cf291ad zynqmp: Remove usb init initialization for Kria
USB hub initialization is done by driver introduced by commit 09f557e106
("usb: onboard-hub: Add i2c initialization for usb5744 hub") that's why
there is no need to do initialization via variables.

Reported-by: Love Kumar <love.kumar@amd.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/96e9c80aeeed4e9664858bf236476997d17a9914.1734522042.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
bb1562e347 arm64: zynqmp: Sync DTs with Linux v6.13-rc1
Sync zynqmp* DTS files with v6.13-rc1 Linux kernel including three patches
from Sean:
arm64: zynqmp: Enable AMS for all boards
arm64: zynqmp: Expose AMS to userspace as HWMON
arm64: zynqmp: Add thermal zones

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/06e466d64c9d8e718e2f06a76cc65d6da2a37a7b.1733996500.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Naman Trivedi
9ce8f720af arm64: zynqmp: add clock-output-names property in clock nodes
Replace underscores with hyphens in the clock node names as per
dt-schema rule.

Also, add clock-output-names property to all clock nodes, so that the
resulting clock name do not change when clock node name is changed.

Signed-off-by: Naman Trivedi <naman.trivedimanojbhai@amd.com>
Acked-by: Senthil Nathan Thangaraj <senthilnathan.thangaraj@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/1080e31393c3e1b49735b77e7ddc14d570b83222.1733991159.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
71db6bf278 arm64: zynqmp: Do not use hardcoded address in do_zynqmp_reboot()
multi_boot is already the part of csu_base structure that's why use it
directly instead of using register offset value.

Fixes: fc001432e5 ("arm64: zynqmp: Add u-boot command to boot into recovery image")
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/3e5c6ea426b81cc73b90e6425764e41a98deb2a6.1733735454.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
d1de34798a arm64: versal: RO multi_boot register in non JTAG bootmode
The main reason for this change is that upstream QEMU has no multiboot
register implemented that's why access to it fails which ends up in CI
failure for our target.
That's why in JTAG bootmode returns 0 which is correct behaviour because
multiboot register is not used in this mode and value should be ignored and
as a side effect it is also fixing CI/Qemu issue.

Also move versal_get_bootmode() to avoid function declaration.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/484b9cafc45e72308a1a29a3ab772020f96784cc.1736155238.git.michal.simek@amd.com
2025-01-14 08:29:45 +01:00
Michal Simek
a6ca9310ef arm64: versal: Support operations around multiboot register
Read multiboot register and show it's value by default.
Also extend logic in dfu_alt_info string generation to support capsule
update for different offsets.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/72ba2efd0fb7b66a86b409a1521fe288a4dd3453.1733395093.git.michal.simek@amd.com
2025-01-14 08:23:47 +01:00
Michal Simek
5e3b8e5c49 arm64: versal: Wire SPIs for dfu_alt_info variable generation
Enable automatic dfu_alt_info variable generation based on MTD partition.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/67ff88c8c7186138353c0b74ed37a318fb4b199e.1733395093.git.michal.simek@amd.com
2025-01-14 08:23:47 +01:00
Udit Kumar
b9fe3ec8a2 power: pmic: tps65941: Fix TI TPS65224 PMIC compatiable
Fix compatiable name for TPS65224 PMIC as defined in
dts/upstream/Bindings/mfd/ti,tps6594.yaml bindings.

Fixes: 1468fbba6d55("power: pmic: tps65941: Add TI TPS65224 PMIC")
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2025-01-14 07:44:51 +09:00
Shree Ramamoorthy
7e261a05a5 power: replace magic numbers with macros
Replace magic numbers in buckval2votl() & buckvolt2val() with macros to
help with clarity and correlate what the numbers correspond to in the
TPS65219 datasheet.

Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2025-01-14 07:44:42 +09:00
Shree Ramamoorthy
eda65fa42b power: regulator: replace printf() with pr_err()
Replace printf() with pr_err() because pr_err() has a uniform print format
and takes into consideration the log levels supported.

Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2025-01-14 07:44:30 +09:00
Tom Rini
6a0db9ee03 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-usb
- ehci-mx5/ehci-mx6 driver improvements
2025-01-13 08:25:00 -06:00
Marek Vasut
801b5fafd3 usb: ehci-mx6: Add i.MX95 support
i.MX95 uses the same USB IP as i.MX8MM. It can then reuse the ehci-mx6
driver.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2025-01-13 04:39:05 +01:00
Tom Rini
35d9b1d254 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2025-01-12 19:28:54 -06:00
Marek Vasut
46a7999160 arm64: renesas: Convert boards over to is_cortex_a() functions
Use generic is_cortex_a() functions instead of open-coded midr_el1 read.
No functional change.

Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-12 23:49:58 +01:00
Marek Vasut
2fca3cf799 arm64: Add MIDR entries for Cortex-A57 and Cortex-A76
Add MIDR entries for Cortex-A57 and Cortex-A76 cores.
Those are used on R-Car Gen3 and Gen4 SoCs respectively.

Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-12 23:49:58 +01:00
Marek Vasut
ddb0f26dc4 arm64: Convert core type check macros into inline functions
Turn the core type check macros into inline functions to perform
better type checking on them. The inline functions get optimized
out in case they are not used. Indent the MIDR_PARTNUM_CORTEX_An
macros in preparation for addition of future three-digit cores
and use MIDR_PARTNUM_SHIFT in MIDR_PARTNUM_MASK to be consistent.

Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2025-01-12 23:49:58 +01:00
Tom Rini
bc157bb666 Merge tag 'u-boot-rockchip-20250110' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/24129

- Add boards:
	rk3566: FriendlyARM NanoPi R3S
	rk3588s: Radxa ROCK 5C,
	rk3588: Khadas Edge2
- Migrate to OF_UPSTREAM:
	rk3066a/rk3188;
	rk3288: tinker, miqi, firefly;
- Migrate to TPL: rk3399 kevin and bob;
2025-01-10 18:56:22 -06:00
Jonas Karlman
39389cfb3d rockchip: rk3308: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC variant used by a board,
e.g. one of:

  SoC:   RK3308
  SoC:   RK3308B
  SoC:   RK3308B-S

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 02 2024 - 20:26:25 +0000)

  Model: Radxa ROCK Pi S
  SoC:   RK3308B
  DRAM:  512 MiB (effective 510 MiB)

Information about the SoC variant is read from GRF.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2025-01-10 18:56:22 -06:00
Jonas Karlman
1c2ffcd5e6 rockchip: rk3588: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC model used by a board,
e.g. one of:

  SoC:   RK3582
  SoC:   RK3588
  SoC:   RK3588J
  SoC:   RK3588S
  SoC:   RK3588S2

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 10 2024 - 00:31:29 +0000)

  Model: Generic RK3588S/RK3588
  SoC:   RK3588S2
  DRAM:  8 GiB

Information about the SoC model and variant is read from OTP.

Also update rk3588s-u-boot.dtsi to include OTP in U-Boot pre-reloc phase,
where checkboard() is called.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:22 -06:00
Jonas Karlman
1a520a9b20 rockchip: rk356x: Implement checkboard() to print SoC variant
Implement checkboard() to print current SoC model used by a board,
e.g. one of:

  SoC:   RK3566
  SoC:   RK3566T
  SoC:   RK3568
  SoC:   RK3568B2
  SoC:   RK3568J

when U-Boot proper is running.

  U-Boot 2025.01-rc1 (Nov 10 2024 - 00:39:37 +0000)

  Model: Generic RK3566/RK3568
  SoC:   RK3568J
  DRAM:  8 GiB (effective 7.7 GiB)

Information about the SoC model and variant is read from OTP.

Also update rk356x-u-boot.dtsi to include OTP in U-Boot pre-reloc phase,
where checkboard() is called.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:22 -06:00
Jonas Karlman
c72e37dceb rockchip: rk3399-rock-pi-4: Fix Synchronous Abort
After the commit 788cf33315 ("efi: add a helper to generate dynamic
UUIDs") update_info.num_images must match number of valid update images.

On Rock Pi 4 following Synchronous Abort can be observed due to fw_name
being NULL:

  Scanning global bootmeth 'efi_mgr':
  "Synchronous Abort" handler, esr 0x96000010, far 0x0
  elr: 0000000000200e28 lr : 000000000028adb8 (reloc)
  elr: 00000000f3efbe28 lr : 00000000f3f85db8
  x0 : 0000000000000000 x1 : ffffffffffffffff
  x2 : 0000000000000000 x3 : 000000000000000e
  x4 : 0000000000000000 x5 : 00000000f1ef0d78
  x6 : 00000000f3fb3b90 x7 : 0000000000000044
  x8 : 0000000000000010 x9 : 0000000000000031
  x10: 00000000f0ea3fff x11: 00000000f1f29e00
  x12: 0000000000000002 x13: fffffffffffff000
  x14: 00000000f1f29e00 x15: 0000000000000018
  x16: 00000000f3f44f7c x17: 0000000000000000
  x18: 00000000f1ef2de0 x19: 00000000f0ea3040
  x20: 00000000f3ff53d8 x21: 00000000f3fd0498
  x22: 0000000000000000 x23: 00000000f1edb960
  x24: 00000000f1edb95f x25: 00000000f1edb990
  x26: 00000000f1edb964 x27: 00000000f1edb998
  x28: 00000000f1edc1ec x29: 00000000f1edb820

  Code: aa0003e2 d2800000 eb01001f 54000060 (78607843)
  Resetting CPU ...

  resetting ...

Fix this by setting update_info.num_images to 0 when no valid update
images is added to update_info.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
2025-01-10 18:56:22 -06:00
Heiko Stuebner
46e371cd31 clk: rockchip: rk3588: fix mask define for aclk_vop_root
The mask for aclk_vop_root is 3-bit wide, not 2-bit wide according
to the TRM, so set the mask accordingly.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:22 -06:00
Jonas Karlman
dc53e48d17 rockchip: rk3588-nanopc-t6-lts: Add missing board -u-boot.dtsi
The commit 7cec3e7019 ("rockchip: rk3588-nanopc-t6: Add support for
NanoPC-T6 LTS") added support for the LTS variant of NanoPC T6. However,
a board specific -u-boot.dtsi file was never added.

Due to the missing -u-boot.dtsi file the LTS fdt included in the FIT is
never tagged with bootph props.

When ENV_IS_IN_SPI_FLASH is enabled, not enabled in defconfig, the env
can successfully load from SPI flash on the non-LTS variant, something
that does not work on the LTS variant due to missing bootph-some-ram
props in the LTS fdt.

Fix this by adding a LTS -u-boot.dtsi file that just include the non-LTS
-u-boot.dtsi file.

Reported-by: Ricardo Pardini <ricardo@pardini.net>
Fixes: 7cec3e7019 ("rockchip: rk3588-nanopc-t6: Add support for NanoPC-T6 LTS")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:22 -06:00
Jonas Karlman
af518a1dfe rockchip: rk3399: Drop unneeded bob and kevin board specific code
The IO-domain driver will configure io_vsel and always-on/boot-on
regulators will be enabled based on the board device tree now that
required nodes and Kconfig options is enabled for SPL.

Remove the bob and kevin board specific code from the common rk3399.c,
the IO-domain and regulator driver provide similar functionality.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2025-01-10 18:56:21 -06:00
Jonas Karlman
54fddb9d88 rockchip: rk3399-gru: Include pinctrl and regulators in SPL
Add bootph props and enable related Kconfig options to include vital
regulators in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
4636b19afb rockchip: rk3399-gru: Use SDMA mode to read from eMMC
Enable use of SDMA mode when reading from eMMC to speed up boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
0187fcc3c0 rockchip: rk3399-gru: Enable dcache and signature validation in SPL
With TPL being used to init DRAM, SPL being used to load FIT and the
adjusted FIT payload offset it is now possible to increase the size
limit of SPL to 256 KB and enable uses of dcache and FIT signature
validation.

Drop SPL_SYS_DCACHE_OFF=y to enable use of dcache in SPL.

Drop SPL_FIT_SIGNATURE=n to enable signature validation of FIT in SPL.

Change SPL_MAX_SIZE to 256 KB now that payload offset has moved in SPI
and TF-A may be loaded to 0x40000 in DRAM.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
1c34c315e7 rockchip: rk3399-gru: Remove unused nodes from xPL control FDT
The eMMC PHY and SPI flash is not used in all xPL phases.

Change to no longer include emmc_phy and spi_flash in all xPL phases.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
51b3e46363 rockchip: rk3399: Drop common Kconfig options already implied
The last two RK3399 boards, chromebook bob and kevin, have now migraded
to use common bss and stack addresses.

Cleanup and remove Kconfig options no longer needed in rk3399/Kconfig
when all boards now use common bss and stack addresses.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
55c9e3e5b2 rockchip: rk3399-gru: Include binman generated FIT in u-boot.rom image
The u-boot.rom image contain u-boot.img FIT instead of the FIT generated
by binman for the u-boot-rockchip.bin image.

Change to include the binman generated FIT for the u-boot.rom image.

This change result in TF-A being included and the use sha256 instead of
crc32 checksum in the u-boot.rom FIT.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:21 -06:00
Jonas Karlman
49f8131e55 rockchip: rk3399-gru: Use TPL with common bss and stack addresses
Migrate to use TPL, common bss, stack and malloc heap size and addresses
to unify memory use in TPL, SPL and pre-reloc with other RK3399 boards.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
(Disable TPL_BLOBLIST)
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:18 -06:00
Jonas Karlman
656892f102 rockchip: rk3399-gru: Fix include of TPL in u-boot.rom image
The chromebook specific u-boot.rom image does not include TPL when
building with TPL=y or ROCKCHIP_EXTERNAL_TPL=y.

Fix this by adding rockchip-tpl and u-boot-tpl nodes to the mkimage node
for the u-boot.rom binman image.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:18 -06:00
Jonas Karlman
afbc34c79c rockchip: rk3399-gru: Move SPI flash payload offset for bob and kevin
The BootROM on RK3399 only read the first 2 KB of each 4 KB page from
SPI flash. With current FIT payload offset of 0x40000 this limits the
supported TPL+SPL size to only 128 KB.

Change to use 0xE0000 as FIT payload offset, similar to other RK3399
boards, to allow a maximum size for TPL of 192 KB and SPL of 256 KB.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:18 -06:00
Jonas Karlman
01048aa9f8 rockchip: rk3399-gru: Use SYS_SPI_U_BOOT_OFFS value in offset prop
Use the offset configured with SYS_SPI_U_BOOT_OFFS Kconfig option
instead of a hardcoded 0x40000 for the FIT payload offset.

This has no intended impact as SYS_SPI_U_BOOT_OFFS=0x40000.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:18 -06:00
Jonas Karlman
4576e65a5d rockchip: rk3399: Fix TPL build of bob and kevin
Building chromebook_bob/kevin with TPL=y ends with a linking error:

  arch/arm/mach-rockchip/rk3399/rk3399.o: in function `board_debug_uart_init':
  arch/arm/mach-rockchip/rk3399/rk3399.c:148:(.text.board_debug_uart_init+0x34):
    undefined reference to `spl_gpio_output'
  arch/arm/mach-rockchip/rk3399/rk3399.c:148:(.text.board_debug_uart_init+0x34):
    relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `spl_gpio_output'

  make[2]: *** [scripts/Makefile.xpl:542: tpl/u-boot-tpl] Error 1
  make[1]: *** [Makefile:2134: tpl/u-boot-tpl] Error 2
  make: *** [Makefile:568: __build_one_by_one] Error 2

Change to only use spl_gpio functions in SPL to fix this.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:18 -06:00
FUKAUMI Naoki
ddb3d7e635 rockchip: rk3399: expand space for decompressed kernel
fix following error by using same ENV_MEM_LAYOUT_SETTINGS with rk35xx:

U-Boot 2025.01-rc3-00001-g1527c7dcdb01 (Dec 02 2024 - 22:57:18 +0000)
  :
Retrieving file: /boot/extlinux/../nixos/dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-Image
Retrieving file: /boot/extlinux/../nixos/6fq8fmmab31yxdwcs7zw44p78fq9fy1s-initrd-linux-6.12.1-initrd
append: init=/nix/store/yjbxgzf1vkwbw6ab738bf4kxazhyypa1-nixos-system-rock-5b-25.05.20241201.ac35b10/init console=ttyS2,1500000n8 console=ttyAMA0,115200n8 console=tty0 loglevel=7
Retrieving file: /boot/extlinux/../nixos/dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-dtbs/rockchip/rk3399-rock-4se.dtb
Moving Image from 0x2080000 to 0x2200000, end=0x60d0000
ERROR: RD image overlaps OS image (OS=2200000..60d0000)
Boot failed (err=-14)

$ ls -lh boot/nixos/
total 84M
-r--r--r--  1 root root  24M Jan  1  1970 6fq8fmmab31yxdwcs7zw44p78fq9fy1s-initrd-linux-6.12.1-initrd
-r--r--r--  1 root root  62M Jan  1  1970 dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-Image
dr-xr-xr-x 36 root root 4.0K Jan  1  1970 dhqjsnprmzjxncil3m0g9l09a479crn3-linux-6.12.1-dtbs

similar problem was fixed for rk35xx by:

commit 69b73877f0 ("rockchip: rk35xx: expand space for decompressed kernel")

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
Daniel Semkowicz
532e30e709 board: theobroma-systems: Update TF-A setup steps for RK3588 boards
ddrbin_tool interface has been changed. Additional chip_name argument
is now required to modify ddr binary file. Update documentation
to be consistent with the new interface.

Update BL31 and ROCKCHIP_TPL file paths to match current version
of binaries available in the rkbin repository.

Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-10 18:56:17 -06:00
Johan Jonker
3681fe06ab rockchip: rk3066a/rk3188: use includes from dts/upstream
The clock and power DT includes for rk3066a and rk3188 are now
available in the dts/upstream directory, so remove the ones that
are now redundant.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
Johan Jonker
43728edfc2 rockchip: use OF_UPSTREAM for rk3066a/rk3188
The device tree for rk3066a/rk3188 combined is now
available in the /dts/upstream directory.
Use imply OF_UPSTREAM to migrate all rk3066a/rk3188 boards.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
FUKAUMI Naoki
e1661639d9 rockchip: Add support for Radxa ROCK 5C
Radxa ROCK 5C[1] is a Rockchip RK3588S2 based single board computer.

[1] https://radxa.com/products/rock5/5c

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
FUKAUMI Naoki
a0dd3480a7 arm64: dts: rockchip: add Radxa ROCK 5C
Radxa ROCK 5C is a 8K computer for everything[1] using the Rockchip
RK3588S2 chip:

- Rockchip RK3588S2
- Quad A76 and Quad A55 CPU
- 6 TOPS NPU
- up to 32GB LPDDR4x RAM
- eMMC / SPI flash connector
- Micro SD Card slot
- Gigabit ethernet port (supports PoE with add-on PoE HAT)
- WiFi6 / BT5.4
- 1x USB 3.0 Type-A HOST port
- 1x USB 3.0 Type-A OTG port
- 2x USB 2.0 Type-A HOST port
- 1x USB Type-C 5V power port

[1] https://radxa.com/products/rock5/5c

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://lore.kernel.org/r/20241021090548.1052-2-naoki@radxa.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 3ddf5cdb77e6efd6fe9b70f36dec935e324a3cd2 ]

(cherry picked from commit f80689fcef4b9b07a97b629b4075cc1a4c21a68e)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
Cristian Ciocaltea
2cbffc1579 arm64: dts: rockchip: Add HDMI0 node to rk3588
Add support for the HDMI0 output port found on RK3588 SoC.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20241019-rk3588-hdmi0-dt-v2-1-466cd80e8ff9@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: d7bb71e69f58c1b3665a9f926bf8d3855111bf8e ]

(cherry picked from commit a839348380c2072e00a26bbdb80744982fe04c56)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
Sam Edwards
d113d47976 arm64: dts: rockchip: Split up RK3588's PCIe pinctrls
These pinctrls manage the low-speed PCIe signals:
- CLKREQ#: An output on the RK3588 (both RC or EP modes), used to
  request that external clock-generation circuitry provide a clock.
- PERST#: An input on the RK3588 in EP mode, used to detect a reset
  signal from the RC. In RC mode, the hardware does not use this signal:
  Linux itself generates it by putting the pin in GPIO mode.
- WAKE#: In EP mode, this is an output; in RC mode, this is an input.

Each of these signals serves a distinct purpose, and more importantly,
PERST# should not be muxed when the RK3588 is in the RC role. Bundling
them together in pinctrl groups prevents proper use: indeed, almost none
of the current board-specific .dts files make any use of them.
(Exception: Rock 5A recently had a patch land that misuses _pins; this
 patch corrects that.)

However, on some RK3588 boards, the PCIe 3 controller will indefinitely
stall the boot if CLKREQ# is not muxed (details in the next patch).
This patch unbundles the signals to allow them to be used.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Link: https://lore.kernel.org/r/20240912025034.180233-2-CFSworks@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 4294e32111781b3de4d73b944cbd1bc1662a9a7a ]

(cherry picked from commit 8713425fa162b61bcf5f7a6dcd171fddfb12be36)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:17 -06:00
Tianling Shen
bf4a33e725 board: rockchip: add FriendlyElec NanoPi R3S
The NanoPi R3S(as "R3S") is an open source platform with dual-Gbps
Ethernet ports designed and developed by FriendlyElec for IoT
applications.

Specification:
- Rockchip RK3566
- 2GB LPDDR4X RAM
- optional 32GB eMMC module
- SD card slot
- 2x 1000 Base-T
- 3x LEDs (POWER, LAN, WAN)
- 2x Buttons (Reset, MaskROM)
- 1x USB 3.0 Port
- Type-C 5V 2A Power

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Tianling Shen
c16cd170b9 arm64: dts: rockchip: reorder mmc aliases for NanoPi R3S
Typically any non-removable storage (emmc) is listed before removable
storage (sd-card) options. Also U-Boot will try to override and use
mmc0=sdhci and mmc1=sdmmc0 for all rk356x boards.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-6-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: b7cd1115456d312f8c5e60c80fdc35fd35ea6eab ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Tianling Shen
30db98ed87 arm64: dts: rockchip: enable eMMC HS200 mode for NanoPi R3S
It is required to boot from eMMC without additional patch in u-boot.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-5-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 1b5365034410f1ca21adadadd492b99bdf4f2c55 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Tianling Shen
d3c686212f arm64: dts: rockchip: sort props in pmu_io_domains node for NanoPi R3S
The status prop is typically the last prop.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-4-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 17e150fdd983c7e59b9240e34a166285f3c3fb39 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Tianling Shen
b9afcf4062 arm64: dts: rockchip: replace deprecated snps, reset props for NanoPi R3S
Replace deprecated snps,reset props and move them to the PHY node.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-3-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 82b2868937883b65732da498b26366d34db61510 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Tianling Shen
2222224bf9 arm64: dts: rockchip: fix model name for FriendlyElec NanoPi R3S
Use the marketing name for model name, this matches the dt-binding.
Also update the website url in copyright.

Fixes: 50decd493c83 ("arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board")
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241022193537.1117919-2-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: b5bf84206a5c77528f9dd4cbca4e72caa063c102 ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:16 -06:00
Jonas Karlman
c33c245e30 rockchip: rk3288-tinker: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot with ~12 seconds when booting from
e.g. SD-card or eMMC.

Before:

  3,048,599      2,056  main_loop
  3,050,717      2,118  usb_start
 15,070,499 12,019,782  cli_loop

After:

  3,058,244      2,054  main_loop
  3,063,260      5,016  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Tianling Shen
09ffc136aa arm64: dts: rockchip: Add FriendlyARM NanoPi R3S board
The NanoPi R3S(as "R3S") is an open source platform with dual-Gbps
Ethernet ports designed and developed by FriendlyElec for IoT
applications.

Specification:
- Rockchip RK3566
- 2GB LPDDR4X RAM
- optional 32GB eMMC module
- SD card slot
- 2x 1000 Base-T
- 3x LEDs (POWER, LAN, WAN)
- 2x Buttons (Reset, MaskROM)
- 1x USB 3.0 Port
- Type-C 5V 2A Power

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Link: https://lore.kernel.org/r/20241020173946.225960-2-cnsztl@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 50decd493c8394c52d04561fe4ede34df27a46ba ]

Signed-off-by: Tianling Shen <cnsztl@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
4ae0e5cd4d rockchip: rk3288-tinker: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
514839d5b1 rockchip: rk3288-firefly: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
826267d3ea rockchip: rk3288-tinker: Use common bss and stack addresses
Migrate to use common bss, stack and malloc heap size and addresses to
unify memory use in TPL, SPL and pre-reloc.

Ensure SYS_MALLOC_F_LEN and TPL variant stay at 0x2000 and is unaffected
on other boards not changed to use common malloc heap size.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
dc691ef150 rockchip: rk3288-firefly: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

Firefly-RK3288 use RTL8211 Ethernet PHY, datasheet list an initial 10ms
delay and then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
ab08413368 rockchip: rk3288-tinker: Sync defconfig options from rk3288-tinker-s
Add missing Kconfig options used by the rk3288-tinker-s variant.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
338cfeac31 rockchip: rk3288-firefly: Migrate to OF_UPSTREAM
The device tree for Firefly-RK3288 in dts/upstream can be used as-is by
U-Boot, migrate board to use OF_UPSTREAM.

Add chosen stdout-path prop to board u-boot.dtsi as it is missing in DT
from dts/upstream. Also change to use the upstream power_led symbol.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
b8ff4be966 rockchip: rk3288-tinker: Set cpuid and serial env var
Enable MISC_INIT_R and ROCKCHIP_EFUSE to read cpuid from efuse and set
the cpuid# and serial# env vars.

Change to read mac address from eeprom in rockchip_early_misc_init_r()
to ensure the ethaddr env var is set before rockchip_setup_macaddr() try
to set ethaddr based on cpuid.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
4a18711f54 rockchip: rk3288-firefly: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media devices should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot when booting from SD-card or eMMC.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
5b95daa832 rockchip: rk3288-tinker: Include mmc nodes in pre-reloc for env load
Include mmc related nodes in U-Boot proper pre-reloc phase to ensure
environment can be loaded from mmc devices.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
c18f00c331 rockchip: rk3288-firefly: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
fcd4949192 rockchip: rk3288-tinker: Drop unused vcc_sd regulator from SPL
The sdmmc power come from vcc33_sd pmic regulator and not from the
vcc_sd fixed regulator, as currently defined in the in-tree DT.

Drop vcc_sd and the related gpio7 and sdmmc_pwr nodes from being
included in SPL along with any related Kconfig option. Also enable
SPL_DM_SEQ_ALIAS to ensure aliases is handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
cf84730409 rockchip: rk3288-firefly: Include sdmmc regulator in SPL
Add bootph props and enable related Kconfig options to include the sdmmc
regulator in SPL. Also enable SPL_DM_SEQ_ALIAS to ensure aliases is
handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
7f13ffa280 rockchip: rk3288-tinker: Only include required DT nodes in TPL
Drop the unneeded bootph-all prop from dmc node, it is already defined
in soc u-boot.dtsi.

Remove booth-all prop from gpio7 node, this node is not needed in TPL.

Adjust bootph props to include pinctrl related nodes for UART2.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
8baa2d8958 rockchip: rk3288-firefly: Include required DT nodes in xPL
Add bootph- props to emmc, sdmmc, uart and related pinctrl nodes to
ensure devices and pinctrl can be used in xPL and U-Boot pre-reloc.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
cabe2ef766 rockchip: rk3288-tinker: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-tinker u-boot.dtsi files in alphabetical order.

This has no intended change to board DTs and only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
14c13f295a rockchip: rk3288-firefly: Use common bss and stack addresses
Migrate to use common bss, stack and malloc heap size and addresses to
unify memory use in TPL, SPL and pre-reloc.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
4d1c5a838a board: rockchip: rk3288-tinker: Add myself as reviewer to MAINTAINERS
Add myself as a reviewer for Tinker Board and S variant so that I can
help with review and testing of defconfig and device tree changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
35ae87eff6 rockchip: rk3288-firefly: Set ethaddr env based on cpuid
Enable Kconfig options to read cpuid from efuse and set cpuid#, serial#
and ethaddr env vars based on the value read from efuse.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
8b6227c229 rockchip: rk3288: Fix bootph prop for vop nodes
The vop nodes does not need to be included in xPL control FDT, they only
need to be included at U-Boot proper pre-reloc phase.

Change to use bootph-some-ram prop to fix this.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
20ff82dc51 rockchip: rk3288-firefly: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-firefly-u-boot.dtsi in alphabetical order.

This has no intended change to board DT, this only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
934a2d49f8 rockchip: rk3288: Use rk3288.dtsi from dts/upstream
rk3288.dtsi from arch/arm/dts is almost identical to the rk3288.dtsi
from dts/upstream, it differs only with a minor change in hdmi port
nodes, something that does not affect U-Boot.

Remove arch/arm/dts/rk3288.dtsi to use rk3288.dtsi from dts/upstream.
Also drop gpio aliases from -u-boot.dtsi that has been part of
rk3288.dtsi for some time.

No functional change to board DTs is intended with this removal.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
1e3e3534a9 rockchip: rk3288-firefly: Drop unused SPL_LED related code
The firefly-rk3288_defconfig build target does not enable the SPL_LED
Kconfig option.

Drop the unused SPL_LED related code and replace it with a default-state
prop to ensure the LED driver enable the LED at U-Boot proper phase.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Paul Kocialkowski
e3c11f96b8 rockchip: rk3399-rockpro64: Disable bootstage instrumentation config
The boot timing and reporting (bootstage) infrastructure is useful for
performance analysis and debug but adds overhead and console noise when
using the device normally. Remove it from the device config.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-10 18:56:15 -06:00
Paul Kocialkowski
95433be7ac rockchip: rk3399-rockpro64: Hook sysreset gpio to enable full reset
The reset mechanism used by Linux to reset the SoC is known to only
partially reset the logic. A mechanism is implemented in
rk3399_force_power_on_reset to use a GPIO connected to the PMIC's
over-temperature (OTP) reset pin, which fully resets all logic.

Hook the associated GPIO where the function expects it to enable this
reset mechanism and avoid any possible side-effect of partially-reset
units.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-10 18:56:15 -06:00
Paul Kocialkowski
d7882f556e rockchip: rk3399-roc-pc: Hook sysreset gpio to enable full reset
The reset mechanism used by Linux to reset the SoC is known to only
partially reset the logic. A mechanism is implemented in
rk3399_force_power_on_reset to use a GPIO connected to the PMIC's
over-temperature (OTP) reset pin, which fully resets all logic.

Hook the associated GPIO where the function expects it to enable this
reset mechanism and avoid any possible side-effect of partially-reset
units.

Without this patch, reading from the micro sd slot fails after a reset.
With this mechanism, U-Boot is able to boot from it reliably.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-10 18:56:15 -06:00
Jacobe Zang
c990398674 board: rockchip: add Khadas Edge2 RK3588 board
Khadas Edge2 is a Rockchip RK3588S based SBC (Single Board Computer)
by Khadas.

There are tree variants depending on the DRAM size : 8G and 16G.

Specification:

    Rockchip RK3588S SoC
    4x ARM Cortex-A76, 4x ARM Cortex-A55
    8/16GB memory LPDDR4x
    Mali G610MP4 GPU
    3x MIPI CSI 4x lanes
    2x MIPI-DSI DPHY 4x lanes
    32/64GB eMMC
    1x USB 2.0, 1x USB 3.0, 2x USB-Type-C
    1x HDMI 2.1 output, 1x DP 1.4 output
    USB PD over USB Type-C

Kernel commit:
04d552993522 ("arm64: dts: rockchip: Add Khadas edge2 board")

Signed-off-by: Jacobe Zang <jacobe.zang@wesion.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
60649ea8aa rockchip: rk3288-miqi: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
61f4e5f9cf rockchip: rk3288-miqi: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

MiQi use RTL8211 Ethernet PHY, datasheet list an initial 10ms delay and
then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
c33617d3bb rockchip: rk3288-miqi: Migrate to OF_UPSTREAM
The device tree for mqmaker MiQi in dts/upstream can be used as-is by
U-Boot, migrate board to OF_UPSTREAM.

The change to use DT from dts/upstream will include minor changes and
fixes related to work led and usb otg.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
e4b4ed9651 rockchip: rk3288-miqi: Drop USE_PREBOOT Kconfig option
After the migration to use standard boot, storage media devices should
automatically be initialized in the order listed in boot_targets env.

Drop USE_PREBOOT to speed up boot when booting from SD-card or eMMC.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
1e4806defd rockchip: rk3288-miqi: Drop use of silent console and late boardinfo
Current use of SILENT_CONSOLE hide valuable information when something
goes wrong during boot, drop this Kconfig option to allow user to see
e.g. from what media U-Boot proper is loaded from.

A second Model line is printed on console due to DISPLAY_BOARDINFO_LATE,
drop this Kconfig option to remove the second redundant line.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
a9ad8e143f rockchip: rk3288-miqi: Include sdmmc regulator in SPL
Add bootph props and enable related Kconfig options to include the sdmmc
regulator in SPL. Also enable SPL_DM_SEQ_ALIAS to ensure aliases is
handled correctly in SPL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
7e94567e10 rockchip: rk3288-miqi: Include required DT nodes in xPL
Add bootph- props to emmc, sdmmc, uart and related pinctrl nodes to
ensure devices and pinctrl can be used in xPL and U-Boot pre-reloc.

Remove the explicit bootph-all prop from the pinctrl node, any bootph-
prop will automatically be propagated to the pinctrl node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
68412a237f rockchip: rk3288-miqi: Use TPL with common bss and stack addresses
Migrate to use TPL, common bss, stack and malloc heap size and addresses
to unify memory use in TPL, SPL and pre-reloc.

ENV_OFFSET is using the default value of 0x3f8000 and is also dropped.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
8d00122325 rockchip: rk3288-miqi: Set ethaddr env based on cpuid
Enable Kconfig options to read cpuid from efuse and set cpuid#, serial#
and ethaddr env vars based on the value read from efuse.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
0bcaa88245 rockchip: rk3288-miqi: Remove unused work led node from xPL
The work led is not used in xPL on rk3288-miqi, remove bootph props from
the work led node to exclude it from xPL control FDT.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
98ba08b6c5 rockchip: rk3288-miqi: Sort u-boot.dtsi nodes alphabetically
Sort the nodes in rk3288-miqi-u-boot.dtsi in alphabetical order.

This has no intended change to board DT, this only rearrange nodes in
preparation for future changes.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
39c9a94ea6 rockchip: rk3288-tinker: Change to use FIT
Change to use FIT and FIT_SIGNATURE when loading U-Boot proper in SPL to
allow checksum validation and fallback loading of FIT from a different
mmc device.

Checksum validation of FIT adds around 140 ms to boot time:

Before:

       Mark    Elapsed  Stage
          0          0  reset
         13         13  TPL
      6,957      6,944  end tpl
     25,102     18,145  SPL
    131,932    106,830  end phase
    132,137        205  board_init_f
    444,277    312,140  board_init_r
  1,404,987    960,710  eth_common_init
  1,519,110    114,123  eth_initialize
  1,524,734      5,624  main_loop
  1,525,452        718  cli_loop

After:

       Mark    Elapsed  Stage
          0          0  reset
         13         13  TPL
      6,957      6,944  end tpl
     35,744     28,787  SPL
    271,220    235,476  end phase
    271,420        200  board_init_f
    588,474    317,054  board_init_r
  1,548,950    960,476  eth_common_init
  1,663,105    114,155  eth_initialize
  1,668,734      5,629  main_loop
  1,669,417        683  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
57237c7f41 rockchip: rk3288-tinker: Fix slow Ethernet initializion
For some reason the Ethernet PHY reset delay is set to 1 second, this
cause an unneccecery long boot delay.

Tinker Board use RTL8211E or RTL8211F Ethernet PHY, datasheet list an
initial 10ms delay and then a 30-76ms delay before accessing registers.

Change to use 80ms delay instead of a full second to speed up Ethernet
initializion in U-Boot.

Also enable PHY_REALTEK, DM_ETH_PHY and PHY_GIGE to improve Ethernet PHY
support in U-Boot.

Before:

  1,404,971    960,924  eth_common_init
  2,438,830  1,033,859  eth_initialize
  2,444,449      5,619  main_loop
  2,445,153        704  cli_loop

After:

  1,404,987    960,710  eth_common_init
  1,519,110    114,123  eth_initialize
  1,524,734      5,624  main_loop
  1,525,452        718  cli_loop

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
a0a880942b rockchip: rk3288-tinker: Migrate to OF_UPSTREAM
The device tree for ASUS Tinker Board and S variant in dts/upstream can
be used as-is by U-Boot, migrate board to OF_UPSTREAM.

The change to use DT from dts/upstream will include minor changes and
fixes related to leds and regulators.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:15 -06:00
Jonas Karlman
c63eae2817 rockchip: clk: rk3288: Drop use of SCLK_MAC_PLL
The SCLK_MAC_PLL id is not exported or referenced upstream. It is also
not referenced in vendor U-Boot or vendor kernel 4.4, 4.19, 5.10 or 6.1.

Relax the check for parent id SCLK_MAC_PLL when using internal clock
source for gmac to allow use of clock/rk3288-cru.h from dts/upstream.

All in-tree and upstream rk3288 DTs use an external clock as parent,
so no functional change to boards is expected with this change.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 18:56:09 -06:00
Jonas Karlman
2247b8aa20 rockchip: rk3288: Use rk3288-power.h from dts/upstream
power/rk3288-power.h in include/dt-bindings is identical to the version
in dts/upstream, remove the copy from include/dt-bindings to only use
the version from dts/upstream.

No functional change to board DTs is intended with this removal.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2025-01-10 14:52:27 +08:00
Tom Rini
121e62e8af Merge https://source.denx.de/u-boot/custodians/u-boot-watchdog
- rti: support SPL (or re-start) (Alexander)
- rti: drop hack manipulating WDT clock rate (Alexander)
2025-01-09 15:25:36 -06:00
Marek Vasut
addcb09fd5 usb: ehci-mx6: Use regulator_set_enable_if_allowed
With the commit 4fcba5d556 ("regulator: implement basic reference
counter") the return value of regulator_set_enable may be EALREADY or
EBUSY for fixed/gpio regulators.

Change to use the more relaxed regulator_set_enable_if_allowed to
continue if regulator already was enabled or disabled.

Based on 335799b725 ("usb: dwc2: Use regulator_set_enable_if_allowed")

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-09 21:09:05 +01:00
Marek Vasut
b20c51bc45 usb: ehci-mx5: Use regulator_set_enable_if_allowed
With the commit 4fcba5d556 ("regulator: implement basic reference
counter") the return value of regulator_set_enable may be EALREADY or
EBUSY for fixed/gpio regulators.

Change to use the more relaxed regulator_set_enable_if_allowed to
continue if regulator already was enabled or disabled.

Based on 335799b725 ("usb: dwc2: Use regulator_set_enable_if_allowed")

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2025-01-09 21:09:05 +01:00
Tom Rini
38a3711103 Merge tag 'tpm-master-07012025' of https://source.denx.de/u-boot/custodians/u-boot-tpm
A few changes for the TPM subsystem wrt to EventLong creation and measurements.

Generally speaking it's insecure for a TPM to not cap all the active PCRs
when performing measurements.
Up to now we had code querying the active PCR banks on the fly and reason
whether it should perform a measurement or not. Since a TPM requires a reset
to change the active PCR banks, it's easier and faster to store them in an
array in the device private data and check against that.

This relates to an interesting feature some bootloaders have. For example
TF-A can't extend a PCR since it has no TPM drivers, but can produce an
EventLog that U-Boot can replay on the hardware once that comes up.
The supported hash algorithms of the TF-A generated Eventlog are generated
at compile time. When trying to replay an EventLog the TPM active PCR banks
and the created EventLog algorithms must agree. We used to report an error
but that changed in commit 97707f12fd ("tpm: Support boot measurements").

This PR also brings up the old behavior and an error is reported now while
printing a human readable list of the mismatched algorithms.
2025-01-09 11:11:27 -06:00
Heinrich Schuchardt
e587b6a844 tpm: update descriptions in tpm headers
* Provide a link to 'TPM 2.0 Library Specification'
* Remove outdated comment for TPM2_NUM_PCR_BANKS.
  The value 16 can be found in the current standard
  TCG TSS 2.0 Overview and Common Structures Specification 1.0, rev 10
* Describe some of the structures in Sphinx style.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-09 11:11:10 -06:00
Tom Rini
e13e0a921f Merge tag 'efi-next-20250105' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-next-20250105

Documentation:

* doc: develop: Fix typos and wording in binman/binman.rst
* doc: develop: Fix typos and wording in gdb.rst
* doc: sandbox: Fix the "sb" command name
* doc/develop/distro.rst: Better document upstream definition of extlinux.conf

UEFI:

* efi_loader: avoid writing message in Exit() boot service
* efi_loader: update EFI specification version
* cmd: efidebug: update output of memory attributes
* efi_loader: Don't warn if the TCG2 FinalEvents table is not installed
* cmd: bootmenu: add parameter -e for UEFI boot options
* efi_loader: Update startimage_exit self-test to check error
* efi: Correct ECPT table GUID

Others:

Building the API demo application for riscv64 is supported.

* API: unify platform_sys_info() implementations
* examples: implement _start and syscall for RISC-V
* examples: use architecture specific memset() on RISC-V
* examples: use QEMU compatible LOAD_ADDR on RISC-V
* test: fix test_extension.py
* configs: sandbox_deconfig: remove CONFIG_AMIGA_PARTITION
* CI: xilinx_versal_virt: disable USB_DWC3
* net: eth_bootdev_hunt() should not run DHCP
2025-01-08 18:05:51 -06:00
Tom Rini
3bfd12008b Merge branch 'next' 2025-01-08 14:19:22 -06:00
Tom Rini
d6da3dbaef Merge patch series "cmd: Add support for optee commands."
Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com> says:

Add the basic 'hello world ta' command which increments the value passed.
This provides easy test for establishing a session with OP-TEE TA and verify.

It includes following subcommands:
optee hello
optee hello <value>; value to increment via OP-TEE HELLO WORLD TA.

Link: https://lore.kernel.org/r/20241219043918.1646095-1-venkatesh.abbarapu@amd.com
2025-01-08 11:58:54 -06:00
Tom Rini
abc4a9dbfd Merge patch series "Enable MMC UHS modes"
Judith Mendez <jm@ti.com> says:

This patch series adds config options for Sitara K3 boards
to support MMC UHS modes.

While testing with SD card boot and eMMC boot,
found missing eMMC boot support for am62ax in am62a7_init,
patch 1/7, and missing config option to support eMMC boot.

While we are here, for am62ax, enable config option to
change MMC bus modes and enable r5 SDHCI ADMA for faster boot
time.

Also for all k3 Sitara boards, cleanup MMC ENV configs that
are no longer needed since we no longer load env from MMC
device.

Link: https://lore.kernel.org/r/20241220203704.2076499-1-jm@ti.com
2025-01-08 11:58:54 -06:00
Raymond Mao
3a054eca73 tpm: add kconfig control in tcg2_create_digest()
To allow disabling algorithms for tcg2, in function
tcg2_create_digest(), each hash algorithm operations should under
the hash kconfig control to avoid building errors when the algorithm
is disabled.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:52 +02:00
Ilias Apalodimas
3dbd84cb10 tpm: Don't replay an EventLog if tcg2_log_parse() fails
We used to stop replaying an EventLog if parsing failed, but that got
lost in commit 97707f12fd ("tpm: Support boot measurements").

When an EventLog is passed yo us from a previous bootloader, we want to
validate it as much as we can and make sure the defined PCR banks of
the log exist in our TPM and firmware so we can replay it if needed or
use it as-in, in case the PCRs are already extended.

So let's add the checks back and while at it simplify the logic of
rejecting an EventLog.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:52 +02:00
Ilias Apalodimas
05834d4b83 tpm: Simplify tcg2_log_init()
A previous patch is storing the active PCR banks on the TPM private
data. Instead of parsing them on the fly use the stored values.
This allows us to simplify our checks during the log creation and
parsing.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:52 +02:00
Ilias Apalodimas
c575f28c8c tpm: Simplify tcg2_create_digest()
A previous patch is storing the active PCR banks on the TPM private
data. Instead of parsing them on the fly use the stored values.
This allows us to simplify our checks during the log creation and
parsing.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Ilias Apalodimas
ffdbf775e7 tpm: Keep the active PCRs in the chip private data
We have a lot of code trying to reason about the active TPM PCRs
when creating an EventLog. Since changing the active banks can't
be done on the fly and requires a TPM reset,  let's store them
in the chip private data instead.

Upcoming patches will use this during the EventLog creation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Ilias Apalodimas
8dc886ce31 tpm: Don't create an EventLog if algorithms are misconfigured
We already check the active banks vs what U-Boot was compiled with when
trying to extend a PCR and we refuse to do so if the TPM active ones
don't match the ones U-Boot supports.

Do the same thing for the EventLog creation since extending will fail
anyway and print a message so the user can figure out the missing
algorithms.

Co-developed-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Raymond Mao
27891e85f3 tpm: add flag in hash_algo_list and API to check if algorithm is supported
Add a bool var into hash_algo_list to indicate whether the algorithm
is supported or not and move the IS_ENABLED to only cover this var.
So that we can have the name, hash, mask and size no matter the
digest kconfigs are enabled or not.

In before, tpm2_algorithm_to_len() and tcg2_algorithm_to_mask() are used to
identify an unsupported algorithm when they return 0.
It is not the case now when hash_algo_list always provides algorithm size
and mask, thus a new API is introduced to check if an algorithm is
supported by U-Boot.

Suggested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Raymond Mao
9f9797aaa8 tpm: refactor tcg2_get_pcr_info()
Rename the arguments of tcg2_get_pcr_info() to clarify
they are bank masks, not PCR mask.
Remove the unused local variable.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Ilias Apalodimas
0698f1331f tpm: Rename tpm2_allow_extend()
When that function was introduced we were only using it to check if
extending a PCR was allowed, so the name made sense. A few patches ago
we used that function to reason about the EventLog creation and general
usage of PCRs , so let's rename it to something more generic that makes
more sense in all contexts.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Ilias Apalodimas
dbe08c7b38 tpm: Rename tpm2_is_active_pcr()
This function is checking for active PCR banks, so rename it
to something that's easier to read and closer to what the function
does.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-07 15:45:51 +02:00
Alexander Sverdlin
5964f24f15 watchdog: rti: drop hack manipulating WDT clock rate
The hack itself seems to be copied from Linux rti_wdt.c, but the WDT reset
principle is different in U-Boot. While Linux relies on correct frequencies
and timers and doesn't check the actual WDT counter value U-Boot driver
seems to be more robust: it does compare RTIDWDCNTR vs RTIDWDPRLD.

Now the root cause of the original motivation to manipulate the clock rate
is said to be understood and fixed in Linux commit cae58516534e
("watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin")
which simultaneously removed the hack itself.

While is fix part of the mentioned patch is neither applicable nor requried
for the U-Boot driver just drop the hack setting WDT clock rate to 90% of
the real rate. This has a nice effect that the WDT timeout is now as
requested and not 10% shorter.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-07 10:29:58 +01:00
Alexander Sverdlin
5b5124e3d5 watchdog: rti: support SPL (or re-start)
If the RTI watchdog has been enabled in SPL, enabling it in U-Boot proper
fails because it can only be enabled once in HW and never stopped. This
however leads to a situation that wdt_cyclic() watchdog trigger is not
being started any longer and the WDT fires at some point.

Allow for WDT re-start by not bailing out if the [previously] configured
period matches the one to be configured.

Enabling in [A53] SPL has been tested on AM62x-based HW (where [A53] SPL is
responsible for loading R5 DM firmware and not this driver).

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2025-01-07 10:29:58 +01:00
Tom Rini
6d41f0a39d Prepare v2025.01
Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-06 18:54:44 -06:00
Yang Gang
9c6c7e30aa efi: Correct ECPT table GUID
Refer to UEFI specification 2.10:
  #define EFI_CONFORMANCE_PROFILES_TABLE_GUID \
  { 0x36122546, 0xf7e7, 0x4c8f, \
  { 0xbd, 0x9b, 0xeb, 0x85, 0x25, 0xb5, 0x0c, 0x0b }}

Signed-off-by: Yang Gang <yanggang@byosoft.com.cn>
Fixes: 6b92c17352 ("efi: Create ECPT table")
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:49 +01:00
Tom Rini
cdf6953290 doc/develop/distro.rst: Better document upstream definition of extlinux.conf
First, the "Boot Loader Specification" link has moved to a new location,
so link to that directly. Second, that link does not document as much of
the extlinux.conf format as I recall the old version doing at least.
However, the Syslinux Project wiki is the current location of the documentation
linked to in doc/README.pxe and also has a reference for SYSLINUX. Link
to both of these.

Signed-off-by: Tom Rini <trini@konsulko.com>
2025-01-05 02:30:49 +01:00
Heinrich Schuchardt
6a87a5d068 cmd: efidebug: update output of memory attributes
* add EFI_MEMORY_CPU_CRYPTO, EFI_MEMORY_HOT_PLUGGABLE
* correct output for EFI_MEMORY_XP
* remove duplicate list entry for EFI_MEMORY_UC

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:49 +01:00
Heinrich Schuchardt
60c9b794e7 efi_loader: update EFI specification version
UEFI specification 2.11 has been published.
There are no changes relevant for the U-Boot scope.
So let us update the supported specification version.

Change the comment for the constant to Sphinx style.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:49 +01:00
Adriano Cordova
c3cf134a41 efi_loader: Expose efi_reinstall_protocol_interface in efi_loader.h
This is done so that the device path protocol interface of the network
device can be changed internally by u-boot when a new bootfile gets
downloaded.

Signed-off-by: Adriano Cordova <adriano.cordova@canonical.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-05 02:30:48 +01:00
Olivier L'Heureux
ea958a0c7d doc: sandbox: Fix the "sb" command name
The command name was "sbi" instead of "sb" in "doc/usage/cmd/sb.rst",
the file documenting the "sb" command. It is annoying, because the
index in the left panel on the
<https://docs.u-boot.org/en/latest/usage/cmd/sb.html> page shows no
"sb" command, which makes difficult to navigate to the "sb"
documentation.

Fixed the command name: "sbi" -> "sb".

Fixes: ec6d30649c (doc: sandbox: Add docs for the sb command, 2024-10-28)
Signed-off-by: Olivier L'Heureux <olivier.lheureux@mind.be>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-05 02:30:48 +01:00
Lothar Rubusch
763926915f doc: develop: Fix typos and wording in gdb.rst
Fix some typos and duplicate words in gdb.rst.

Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
Acked-by: Alexander Dahl <ada@thorsis.com>
2025-01-05 02:30:48 +01:00
Lothar Rubusch
e3b13ce84e doc: develop: Fix typos and wording in binman/binman.rst
Fix some typos and duplicate words in binman.rst.

Signed-off-by: Lothar Rubusch <l.rubusch@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-05 02:30:48 +01:00
Simon Glass
66e2466888 efi_loader: Update startimage_exit self-test to check error
Check for an error returned from the decompress() function, just in
case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-05 02:30:48 +01:00
Aleksandar Gerasimovski
463e4e6476 efi_loader: fix pe reloc pointer overrun
The fix provided by 997fc12ec9 is actually introducing
a buffer overrun, and the overrun is effective if the
memory after the reloc section is not zeroed.
Probably that's why this bug is not always noticeable.

The problem is that 8-bytes 'rel' pointer can be 4-bytes aligned
according to the PE Format, so the actual relocate function can
take values after the reloc section.

One example is the following dump from the reloc section:

    bce26000: 3000 0000 000c 0000 0000 0000 0000 0000
    bce26010: 7c00 9340 67e0 f900 1c00 0ea1 a400 0f20

This section has two relocations at offset bce26008 and bce2600a,
however the given size (rel_size) for this relocation is 16-bytes
and this is coming form the efi image Misc.VirtualSize, so in this
case the 'reloc' pointer ends at affset bce2600c and is taken as
valid and this is where the overflow is.

In our system we see this problem when we are starting the
Boot Guard efi image.

This patch is fixing the overrun while preserving the fix done
by 997fc12ec9.

Signed-off-by: Aleksandar Gerasimovski <aleksandar.gerasimovski@belden.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:48 +01:00
Ilias Apalodimas
6f1251a78b efi_loader: Don't warn if the TCG2 FinalEvents table is not installed
When the TCG2 protocol installation fails, we are trying to remove
all the objects we created in tcg2_uninit().

However, there are cases when this function runs before the config
table was installed. So instead of printing an error unconditionally
check against EFI_NOT_FOUND and don't print anything if the table wasn't
installed to begin with.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-05 02:30:48 +01:00
Heinrich Schuchardt
5a4ac8a35a cmd: bootmenu: add parameter -e for UEFI boot options
The bootmenu command can display

* menu entries defined by environment variables
* menu entries defined by UEFI boot options

Not in all cases showing the UEFI boot options is desired.
Provide a new parameter '-e' to select the display of UEFI boot options.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:48 +01:00
Heinrich Schuchardt
1f68057e03 net: eth_bootdev_hunt() should not run DHCP
Currently when booting dhcp_run() may be executed multiple times:
once in eth_bootdev_hunt() and once in the network booting bootmeth.

We need to call eth_bootdev_hunt() when setting up the EFI sub-system to
supply the simple network protocol. We don't need an IP address set up.

We can reduce the bootime by not executing dhcp_run() in
eth_bootdev_hunt().

Furthermore eth_bootdev_hunt() with autostart=yes leads on the legacy
network stack leads to downloading a file via TFTP and to booting the
downloaded file.

Instead of running dchp_run() just check that there is a network device
in eth_bootdev_hunt().

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2025-01-05 02:30:48 +01:00
Heinrich Schuchardt
37e0cf42cb CI: xilinx_versal_virt: disable USB_DWC3
The CI uses the following command to launch xilinx_versal_virt_defconfig:

    qemu-system-aarch64 -M xlnx-versal-virt \
    -display none -m 4G -serial mon:stdio \
    -device loader,file=u-boot,cpu-num=0

'usb start' or invoking eth_bootdev_hunt leads to a crash when function
dwc3_core_init() tries to access a register at offset 0xc704 (DWC3_DCTL)
relative to the register start address 0xfe20c100.

Disable CONFIG_USB_DWC3 in the CI until the driver problem is fixed.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:48 +01:00
Heinrich Schuchardt
9cb53b5ffd configs: sandbox_deconfig: remove CONFIG_AMIGA_PARTITION
We do not actually test the code.
Scanning for Amiga partitions of the sandbox is extremely slow,
especially on the partially implemented USB device.

For build testing the other sandbox defconfigs are good enough.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
d01720a830 test: fix test_extension.py
test_extension.py assumes that no extension is known at test start.
This assumption is wrong because we do not come out of reboot.
A prior test may have already hunted for the extension bootdev.

Remove the invalid assert.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
f99b549fc2 efi_loader: avoid writing message in Exit() boot service
We should not write messages in UEFI API functions. This may lead to
incorrect screen layout in UEFI application.

For single statements after if clause we don't need braces.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
8e5b57eea0 examples: use QEMU compatible LOAD_ADDR on RISC-V
On some RISC-V including QEMU $loadaddr is 0x80200000.
For bootelf to work choose a different LOAD_ADDR to which the demo ELF
binary is relocated.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
e18186686f examples: use architecture specific memset() on RISC-V
Build the architecture specific memset() if configured.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
9eb59201ab examples: implement _start and syscall for RISC-V
To build the API examples on RISC-V we need to
implement _start and syscall for RISC-V.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Heinrich Schuchardt
6f7f47e8c0 API: unify platform_sys_info() implementations
ARM, MIPS, and RISCV can use the same implementation of
platform_sys_info(). PPC provides some extra information.
So keep it separate.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-05 02:30:47 +01:00
Venkatesh Yadav Abbarapu
20e1c18721 doc: man-page for optee commands
Provide a man-page for the optee command.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2025-01-02 11:07:54 -06:00
Venkatesh Yadav Abbarapu
e3cf80fbe0 cmd: Add support for optee commands
Add the basic 'hello world ta' command which increment
of the value passed. This provides easy test for
establishing a session with OP-TEE TA and verify.

It includes following "hello world ta" subcommands:
optee hello; default value '0' is passed and gets incremented.
optee hello <value>; value to increment via OP-TEE HELLO
WORLD TA.

To enable the OP-TEE side HELLO WORLD example please refer
https://optee.readthedocs.io/en/latest/building/gits/optee_examples/optee_examples.html

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2025-01-02 11:07:54 -06:00
Judith Mendez
20c35e8ac8 configs: am62ax_evm_a53_defconfig: Enable SUPPORT_EMMC_BOOT
Enable SUPPORT_EMMC_BOOT to help support eMMC boot on am62ax
device.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Judith Mendez
9cdb04101d configs: am62ax_evm_a53_defconfig: Enable MMC_SPEED_MODE_SET
Enable MMC_SPEED_MODE_SET config option in defconfig to enable
changing MMC bus modes with mmc rescan for am62ax device.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Judith Mendez
72355e74db configs: am62ax_evm_r5_defconfig: Enable SDHCI ADMA for r5 SPL
Enable SPL_MMC_SDHCI_ADMA config option for r5 SPL
to improve boot time during r5 SPL stage.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Judith Mendez
2fd3dfdcf6 configs: am62ax_evm_a53_defconfig: Enable MMC UHS modes
Enable configs required to enable MMC UHS modes in A53 SPL
and U-Boot proper.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Judith Mendez
6c6bd6d856 configs: am62x_evm_a53_defconfig: Enable MMC UHS modes
Enable configs required to enable MMC UHS modes in A53 SPL
and U-Boot proper.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Judith Mendez
c106c882bd configs: am6*_evm_r5/a53_defconfig: Cleanup env configs
Since we do not load env from MMC device anymore, remove
any MMC env config options.

Signed-off-by: Judith Mendez <jm@ti.com>
2025-01-02 11:05:38 -06:00
Vignesh Raghavendra
aa14b5ec13 mach-k3: am62a7_init: Add FS and raw mode for eMMC
This adds FS and raw boot mode support for eMMC similar to other K3
platforms.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-01-02 11:05:38 -06:00
Sean Edmond
ec9263b4f1 Fix neighbor discovery ethernet address saving
When a successful neighbor advertisement is received, the ethernet
address should be saved for later use to avoid having to redo the
neighbor discovery process.

For example, with TFTP the address should get saved into
"net_server_ethaddr".  This is being done correctly with ARP for IPv4,
but not for neighbor discovery with IPv6.

Signed-off-by: Sean Edmond <seanedmond@microsoft.com>
Reviewed-by: Viacheslav Mitrofanov <v.v.mitrofanov@yadro.com>
2025-01-01 14:40:04 -06:00
Jerome Forissier
eeee0e2b85 net: tftpput: reset timeout_count when an ACK is received
timeout_count is never reset once a tftpput transfer has started. If for
whatever reason timeouts occur frequently, but the server keeps replying
nonetheless, the transfer may be needlessly aborted.

Reset timer_count on reception of an ACK to avoid this situation.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-01-01 14:40:04 -06:00
Frank Sae
da53e03290 net: phy: Add driver for Motorcomm YT8521S Gigabit ethernet phy
Add driver for Motorcomm YT8521S Gigabit ethernet phy.

Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
2025-01-01 14:40:04 -06:00
Frank Sae
1b45d980f4 net: phy: Add driver for Motorcomm YT8531S Gigabit ethernet phy
Add driver for Motorcomm YT8531S Gigabit ethernet phy.

Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
2025-01-01 14:40:03 -06:00
Markus Gothe
3912611cd1 Bitbanging MDIO driver for DM framework.
Linux DTS compatible MDIO bitbanging driver.
Both clause 22 and clause 45 MDIO supported and validated.

Heavily based on the Linux drivers (more or less the same code base).

Signed-off-by: Markus Gothe <markus.gothe@genexis.eu>
2025-01-01 14:35:54 -06:00
Heinrich Schuchardt
dc5ff7443e net: correct the description of ip_to_string()
The output of ip_to_string() is a string.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2025-01-01 14:35:54 -06:00
Rufus Segar
c5cda4ae4a Revert "net: phy: marvell 88e151x: Fix handling of bare RGMII interface type"
This reverts commit 431be621c6.

Section 3.3 of Reduced Gigabit Media Independent Interface (RGMII)
Version 2.0 (4/1/2002) details that a PHYs using a ~2ns internal delay
are referred to as RGMII-ID. This internal delay is optional.

Page 147-148 of the Marvell Doc. No. MV-S107146-U0 Rev. F details
timings of the RX/TX delays. We see that with the TX/RX_CLK delay
enabled, our RX/TX_CTL signal is shifted w.r.t CLK to reflect the delay
added.

In 431be62 there is no timing difference between RGMII and RGMII-ID, and
so programmers wanting to explicitly set their PHY to RGMII will find
that delay added anyway. This could throw off timing if that internal
delay is undesired.

We should be handling all 4 possible RGMII cases of PHY_INTERFACE_MODE:
RGMII, RGMII_ID, RGMII_TXID, and RGMII_RXID. Reverting 431be62
implements this.

See also m88e1111_config_init_rgmii_delays in the equivalent driver in
Linux (drivers/net/phy/marvell.c), which does not set these delays in
RGMII mode.

68e6eca was tested out on an 88E1512 PHY in RGMII-ID mode. This
reversion has been tested by myself on an 88E1518 in RGMII-ID mode. This
patch affects boards using this driver in "rgmii" mode, as the internal
delay will no longer be enabled. Namely kikwood-nsa310s.

Signed-off-by: Rufus Segar <rhs@riseup.net>
2025-01-01 14:35:54 -06:00
Mikhail Kshevetskiy
395ee74991 net: tftpboot: clear timeout_count on every successful block
We have a some boards that rarely starts networking abnormally, so there are
many timeouts during file transfer. In the same time there is a normal transfer
between timeouts. In this case we can continue transfer (instead of connection
aborting) by just clearing timeout counter on every successful block.

This patch does not affect the case when several timeouts happen one after
another. The transfer will be aborted. Thus the transfer will be
continued in the case of unstable link, but will be aborted in the case
of inaccessible server.

Feature downside: it may greatly slowdown (instead of abort) file transfer
in the case of unstable link.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-01-01 14:35:46 -06:00
Tom Rini
2eb74974de Merge patch series "Add 'trace wipe'"
Jerome Forissier <jerome.forissier@linaro.org> says:

This short series adds the 'trace wipe' command which clears the trace
buffer, allowing to re-start a capture from scratch.

Link: https://lore.kernel.org/r/cover.1734093566.git.jerome.forissier@linaro.org
2025-01-01 10:40:33 -06:00
Jerome Forissier
edef091666 trace: document 'trace wipe'
Add documentation for the 'trace wipe' command.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-31 19:00:46 -06:00
Jerome Forissier
905204ddcf test: test_trace.py: test 'trace wipe'
Test the newly added 'trace wipe' command.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-31 19:00:46 -06:00
Jerome Forissier
60a684e0a9 trace: add support for 'trace wipe'
Implement a 'trace wipe' command to delete the currently accumulated
trace data. This comes handy when someone needs to trace a particular
command. For example:

  => trace pause; trace wipe
  => trace resume; dhcp; trace pause
  => trace stats
  => trace calls 0x02100000 0x10000000
  => tftpput $profbase $profoffset 192.168.0.16:trace.bin

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-31 19:00:46 -06:00
Jerome Forissier
788b4609db trace: proftool: dump-ftrace should write funcgraph times in ns not us
When converting a U-Boot trace records file to ftrace function graph
format for use by trace-cmd ('proftool -f funcgraph dump-ftrace'), the
time associated to each function is incorrectly saved in microseconds
instead of nanoseconds. Multuply the value by 1000 to fix the issue.

With this change, the trace-cmd output looks consistent. Here is an
example with udelay(25) added to mem_malloc_init() as a test case:

 $ ./tools/proftool -m System.map -t /tmp/trace.bin -f funcgraph \
                    dump-ftrace -o /tmp/trace.dat
 $ trace-cmd report  /tmp/trace.dat >/tmp/trace.log
 $ vi /tmp/trace.log
 [...]
 u-boot-1     [000]     6.719659: funcgraph_entry:                   |    mem_malloc_init() {
 u-boot-1     [000]     6.719659: funcgraph_entry:                   |      udelay() {
 u-boot-1     [000]     6.719660: funcgraph_entry:                   |        schedule() {
 u-boot-1     [000]     6.719660: funcgraph_entry:                   |          cyclic_run() {
 u-boot-1     [000]     6.719660: funcgraph_entry:        1.000 us   |            cyclic_get_list();
 u-boot-1     [000]     6.719661: funcgraph_exit:         1.000 us   |            }
 u-boot-1     [000]     6.719661: funcgraph_exit:         1.000 us   |          }
 u-boot-1     [000]     6.719661: funcgraph_entry:                   |        __udelay() {
 u-boot-1     [000]     6.719662: funcgraph_entry:        0.000 us   |          usec_to_tick();
 u-boot-1     [000]     6.719687: funcgraph_exit:       + 26.000 us  |          }
 u-boot-1     [000]     6.719687: funcgraph_exit:       + 28.000 us  |        }
 u-boot-1     [000]     6.719687: funcgraph_entry:      # 37971.000 us |      memset();
 u-boot-1     [000]     6.757658: funcgraph_exit:       # 37999.000 us |      }
 u-boot-1     [000]     6.757658: funcgraph_exit:       # 38000.000 us |    }

In the above dump, the udelay() call is reported as taking 26 us which
is consistent with the timestamps (6.719687 - 6.719659 = 0.000026).
Without this patch we would have "0.026 us" instead of "+ 26.000 us".

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-31 19:00:37 -06:00
Tom Rini
43cae09eab Merge patch series "Fix OSPI boot for J722S"
Prasanth Babu Mantena <p-mantena@ti.com> says:

This series fixes OSPI boot for J722S. It contains fixes for DMSC
communication, R5 regmap for ospi and dma specific overrides for ospi.

Test log: https://gist.github.com/PrasanthBabuMantena/ad469dd09ab7263f85f87dadda46c86d

Link: https://lore.kernel.org/r/20241218131341.2073823-1-p-mantena@ti.com
2024-12-31 17:55:03 -06:00
Udit Kumar
d4749f55f2 arm: dts: k3-j721e-beagleboneai: Move to OF_UPSTREAM
Move to using OF_UPSTREAM config and thus using the devicetree
subtree and remove unused device tree files.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
2024-12-31 17:55:02 -06:00
Manorit Chawdhry
998e00cfce drivers: firmware: ti_sci: Add DM_FLAG_PRE_RELOC to driver
Currently the driver relies on bootph flag to probe it during PRE_RELOC
stage but with the upcoming cleanup of v6.13, we don't have the bootph
property in the parent nodes anymore and ti_sci driver being one of the
parent nodes required during SPL stage would end up hampering the probe
model [0].

Add DM_FLAG_PRE_RELOC to ti_sci driver for mitigating this issue.

[0]: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/21

Suggested-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-31 17:55:02 -06:00
Bryan Brattlof
8fa355d822 arm: dts: k3-am62p-sk-binman: add SE security variant builds
The Texas Instruments Foundational Security (TIFS) firmware must match
the security level configured on the SoC. To boot Security Enforced (SE)
variants of the AM62Px, add another tiboot3 build which packages the
Security Enforced (SE) firmware variant for AM62Px SoCs.

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-12-31 17:55:02 -06:00
Vaishnav Achath
1c4eeff48c arm: dts: k3-j722s*: Add overrides specific to OSPI
OSPI Boot requires overrides specific to R5 and also
to use DMA in R5 SPL stage the DM_TIFS needs to be used.
Add the corresponding overrides for R5 SPL stage.

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>
2024-12-31 15:24:26 -06:00
Vaishnav Achath
ed89c75771 arm: mach-k3: j722_spl: Add FAST XSPI boot mode
Fast XSPI boot mode is supported by J722S ROM, add that.

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>
2024-12-31 15:24:26 -06:00
Vaishnav Achath
e259004382 arm: dts: k3-j722s-r5-evm: Fix DM2TIFS secproxy thread ID
Fix the DM2TIFS secureproxy thread ID as per the latest TISCI
documentation for J722S.
https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/sec_proxy.html

Fixes: fc2da3a3d0 ("arm: dts: Introduce J722S U-Boot dts files")
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>
2024-12-31 15:24:26 -06:00
Vaishnav Achath
f5da5b1db7 mailbox: k3-sec-proxy: Add DM to DMSC communication thread for J722S
J722S R5 SPL uses sec-proxy threads 28 and 29 for communication with
TIFS. Mark these as valid threads in the driver.

https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/sec_proxy.html

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>
2024-12-31 15:24:26 -06:00
Tom Rini
9df4458918 Merge patch series "Cumulative fixes and updates for MediaTek ethernet driver"
Weijie Gao <weijie.gao@mediatek.com> says:

This patch series contains fixes and updates for mtk_eth driver.

Link: https://lore.kernel.org/r/cover.1734406967.git.weijie.gao@mediatek.com
2024-12-31 10:59:06 -06:00
Weijie Gao
c949686e55 net: mediatek: fix usability with wget command
The wget command currently cannot work correctly with mtk_eth driver.
This patch fixed this by increase DMA ring size and invalidate ring data
after use.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
b9dfb5636b net: mediatek: don't enable GDMA cpu bridge unconditionally for NETSYSv3
Enable GDMA cpu bridge only when 10Gb interface is enabled for GMAC other
than GMAC0, or when MT7988 internal switch is used.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
5ac929fd1a net: mediatek: make sgmii/usxgmii optional
Not all platforms supports sgmii and/or usxgmii. So we add Kconfig
options for these features and enable them only for supported
platforms.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
ad0c47109e net: mediatek: add support for 10GBASE-R
This patch adds support for 10GBASE-R interface mode

Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
d8d7e56654 net: mediatek: fix gmac2 usability for mt7629
MT7629 need extra setting for gmac2 to work. So additional
capability is added for mt7629 to handle this case.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
82f05bc488 net: mediatek: fix sgmii selection for mt7622
Unlike other platforms, mt7622 has only one SGMII and it can be
attached to either gmac1 or gmac2. So the register field of the
sgmii selection differs from other platforms as newer platforms can
control each sgmii individually.

This patch adds a new capability for mt7622 to handle this case.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
7562da9454 net: mediatek: correct register name of ethsys syscfg1
The SYSCFG0 should be SYSCFG1 according to the programming guide.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
0d4d8e6f47 net: mediatek: use correct register field for SGMII speed selection
The register field for SGMII speed selection is a 2-bit field with
value 0 for 1Gbps and 1 for 2.5Gbps (2/3 are reserved).
So it's necessary to set both bits instead of just setting/clearing
only the lower bit.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
ba365c3d23 arm: dts: mt7629: fix sgmii clock selection for ethernet
Setup correct parent of clock CLK_TOP_SGMII_REF_1_SEL to allow
sgmiisys1 work correctly.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Weijie Gao
6e45549f4d clk: mediatek: mt7629: fix parent clock of some top clock muxes
According to the mt7629 programming guide, the CLK_TOP_F10M_REF_SEL
shares the same parent selection with CLK_TOP_IRRX_SEL, while the
present parent selection for CLK_TOP_F10M_REF_SEL is actually used
for CLK_TOP_SGMII_REF_1_SEL.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-12-31 10:58:52 -06:00
Tom Rini
f4e8711965 Merge patch series "Select CONFIG_64BIT for sandbox64 and x86_64"
Andrew Goodbody <andrew.goodbody@linaro.org> says:

Picking up a series from Dan Carpenter and applying requested
changes for v2.

I had previously set CONFIG_64BIT for arm64.  This patchset does the
same thing for sandbox and x86_64.  (Mips and riscv were already
doing it).  This CONFIG option is used in the Makefile to determine
if it's a 32 or 64 bit system for the CHECKER.

Makefile
  1052  # the checker needs the correct machine size
  1053  CHECKFLAGS += $(if $(CONFIG_64BIT),-m64,-m32)

Link: https://lore.kernel.org/r/20241216180736.1933807-1-andrew.goodbody@linaro.org
2024-12-31 10:58:36 -06:00
Andrew Goodbody
43ca65b305 test: lib: Use CONFIG_64BIT to detect 64 bit compile
Should use CONFIG_64BIT to detect a 64 bit compile and not
CONFIG_PHYS_64BIT. This allows more platforms to run the
full test code.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-12-31 10:58:30 -06:00
Andrew Goodbody
99145eec2d x86: select CONFIG_64BIT for X86_64
Select CONFIG_64BIT so that we pass the -m64 option (instead of -m32) to
static analysis tools.
Introduce CONFIG_SPL_64BIT and select it for architectures other than
x86 with 64 bit builds. Do not select it for x86 builds as x86 uses
a 32 bit SPL.
Ensure that when limits are set they use CONFIG_64BIT for U-Boot
proper and CONFIG_SPL_64BIT for SPL. This is to allow for the 32 bit
SPL build used by x86.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-12-31 10:58:30 -06:00
Andrew Goodbody
bcb9b3524a sandbox: select CONFIG_64BIT for sandbox
Select CONFIG_64BIT so that we pass the -m64 option (instead of -m32) to
static analysis tools.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-12-31 10:58:30 -06:00
Andrew Goodbody
99afa58e6d sandbox: Correct guard around readq/writeq
In include/linux/io.h the declarations of ioread64 and iowrite64
which make use of readq/writeq are guarded with CONFIG_64BIT so
guard the sandbox declarations of readq and writeq also with
CONFIG_64BIT.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-12-31 10:58:30 -06:00
Tom Rini
6c76f67ac5 Merge patch series "Keep the access to dtb_dt_embedded() within fdtdec"
Evgeny Bachinin <EABachinin@salutedevices.com> says:

The 1st patch addresses comments from the post-review, available by
link [1].

  The 2nd patch fixes problems of dtb_dt_embedded() with checkpatch.

Links:
[1] https://lore.kernel.org/u-boot/CAFLszTgEKamsa6FTnjzrEWQBLkqAR7EBbZqffx09AKgQ7ppuVA@mail.gmail.com/#t

Link: https://lore.kernel.org/r/20241211-dtb_dt_embedded_within_fdtdec-v1-0-7840469f0084@salutedevices.com
2024-12-31 10:57:54 -06:00
Evgeny Bachinin
e2f0e9a320 fdtdec: dtb_dt_embedded: replace ifdefs by IS_ENABLED()
Patch fixes the checkpatch warnings like:
```
  WARNING: Use 'if (IS_ENABLED(CONFIG...))' instead of '#if or #ifdef'
  #94: FILE: lib/fdtdec.c:102:
  +#ifdef CONFIG_OF_EMBED
```

Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-31 10:57:50 -06:00
Evgeny Bachinin
623f5cf517 fdtdec: encapsulate dtb_dt_embedded() within
Patch keeps the access to dtb_dt_embedded() within fdtdec API,
by means of new API function introduction. This new function is a
common place for updating appropriate global_data fields for
OF_EMBED case.

  Also, the consequence of the patch is movement of '___dtb_dt_*begin'
symbols' declaration from header file, because nobody used symbols
outside the lib/fdtdec.c.

Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
Suggested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-31 10:57:50 -06:00
Tom Rini
c6fd2a1c29 Merge tag 'v2025.01-rc6' into next
Prepare v2025.01-rc6
2024-12-31 08:08:59 -06:00
Prasanth Babu Mantena
e7713a7882 dma: ti: k3-udma: Fix BCDMA probe by adding check for MMR_RFLOW
RFLOW config related MMR does not exist incase of BCDMA.
Add check to bypass the RFLOW MMR extraction.
Without this, the probe sequence fails checking for
the MMR_RFLOW region, which is valid only for packet based
DMA and obselete for BCDMA.

Fixes: 5abb694d60 ("dma: ti: k3-udma: Add support for native configuration of chan/flow")
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
Tested-by: Jonathan Humphreys <j-humphreys@ti.com>
2024-12-31 07:53:17 -06:00
Tom Rini
4be4046075 Prepare v2025.01-rc6
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-30 22:07:58 -06:00
Tom Rini
08a915719f Gitlab: Remove some "rules:when: always" lines
In commit 399f739be6 ("CI: allow jobs to be run in merge requests") we
added "rules:when: always" to many stages of the pipeline to allow for merge
requests to trigger a run. However based on current Gitlab
documentation, we should still be triggered on merge requests without
this. Furthermore the way we have things written today we always run all
stages of the CI rather than failing out early on problems, which is not
always useful. Remove these as we should still be fine with merge
requests triggering a run.

Link: https://docs.gitlab.com/ee/ci/yaml/#rules
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-30 16:01:05 -06:00
Tom Rini
08c1e15195 Gitlab: Make test.py stage only depend on binman et al testsuite
Our Gitlab pipeline is currently broken up in to several stages. This
was done with the thought process of "we should test tools and if
they're good test emulated targets and if they're good test real
hardware and if they're good test the world". However, in terms of that
first stage it only really matters that binman, et al are still
functional. And for a few years now Gitlab has had a "needs" keyword
that lets you refine pipeline dependencies. Use this to perform the
minor optimization of having test.py only require that tool testing job.
This will become more useful later when we add long running testsuites
that we do not want to block later jobs.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-30 15:59:04 -06:00
Simon Glass
8428e15dc9 sandbox: Adjust configuration to hang on panic()
It is annoying to have sandbox enter a boot loop when an assertion
fails. Hang instead, since then the error message is only printed once
and Ctrl-C can be used to quit, as per normal.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-30 15:56:29 -06:00
Tom Rini
ad09ccf7fe Merge patch series "Misc. PowerPC MPC83xx fixes/cleanups"
J. Neuschäfer <j.ne@posteo.net> says:

This patchset contains a few small fixes/cleanups for the MPC83xx
platform.

Link: https://lore.kernel.org/r/20241220-mpc83xx-misc-v2-0-ff4c17ee5fa4@posteo.net
2024-12-30 15:55:33 -06:00
J. Neuschäfer
8803745428 gpio: mpc8xxx: Preserve pre-init state of outputs
The mpc8xxx_gpio driver contains a workaround for certain chips
where the previously written state of outputs cannot be read back
from the GPIO data (GPDAT) register (MPC8572/MPC8536). This workaround
consists of tracking the state of GPDAT in a "shadow register" (i.e. a
software variable). The shadow register is initialized to zero.

This results in a problem w.r.t. outputs that are configured to a
high (1) state before U-Boot runs, but not touched by U-Boot itself:
Due to the zero-initialization, these GPIOs end up being set to zero,
the first time that any other output is set.

To avoid such issues initialize the GPDAT shadow register to the value
previously held by any outputs, if possible. On MPC8572/MPC8536 this
should make no difference, i.e. the shadow register should be
initialized to zero on these chips.

This patch has been tested on a MPC8314E-based board.

Reviewed-by: Sinan Akman <sinan@writeme.com>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:27 -06:00
J. Neuschäfer
ba26b1d0fb powerpc: mpc83xx: Use defined constant for SPCR[TBEN]
To increase readability, use the defined constant instead of specifying
SPCR[TBEN] as a number.

Reviewed-by: Sinan Akman <sinan@writeme.com>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:27 -06:00
J. Neuschäfer
b3e8c67a91 powerpc: mpc83xx: Allow including initreg.h into multiple files
Globals defined in headers can result in multiple-definition errors
while linking, if they are visible beyond the current translation unit.

This hasn't been a problem for initreg.h so far, but would become a
problem in the next patch, where I use a constant from initreg.h in a
second C file.

Reviewed-by: Sinan Akman <sinan@writeme.com>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:27 -06:00
J. Neuschäfer
deb26b6c29 powerpc: mpc83xx: Fix timer value calculation
TBU and TBL are specified as two 32-bit registers that form a 64-bit
value, but the calculation only shifted TBU by 16 bits.

Fix this by actually shifting 32 bits.

Reviewed-by: Sinan Akman <sinan@writeme.com>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:27 -06:00
Tom Rini
c379590ab7 Merge patch series "powerpc: Fix and enforce distinction between immediates and registers"
J. Neuschäfer <j.ne@posteo.net> says:

This patchset changes the definition r0 etc. to %r0, so that the
assembler can check that registers are only used where expected, and
fixes the fallout.

Link: https://lore.kernel.org/r/20241212-gpr-checks-v1-0-8c084c5fc0b6@posteo.net
2024-12-30 15:55:11 -06:00
J. Neuschäfer
c3e425ead4 powerpc: Introduce and enforce assembler checks on GPR usage
PowerPC general-purpose registers are historically specified as plain
numbers (0-31), which makes them hard to distinguish from immediates.
For this reason, include/ppc_asm.tmpl defines aliases named r0-r31.
This can still lead to uncaught mistakes if a register is used in place
of a number.

Instead of (e.g.) 5 use %r5, which will result in an assembler warning
if used as a number. Turn these warnings into errors by passing
`--fatal-warnings` to the assembler.

I verified with gazerbeam_defconfig (MPC83xx) and qemu-ppce500_defconfig
(MPC85xx) that this patch results in the same machine code.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:07 -06:00
J. Neuschäfer
fd1c2938c0 powerpc: Fix 0 vs. r0 confusion in X/D-form instructions
Instructions such as dcbi are in the X-form; they have RA and RB fields
and the effective address (EA) is computed as (RA|0)+(RB). In words,
this means that if RA is zero, the left-hand side of the addition is
zero, otherwise the corresponding GPR is used. r0 can never be used on
the left-hand side of a X-form instruction.

For D-form instructions such as addis, the Power ISA illustrates this in
the instruction pseudo-code:

	if RA = 0 then RT <-        EXTS(SI || 0x0000)
	else           RT <- (RA) + EXIS(SI || 0x0000)

In all of these cases, RA=0 indicates the value zero, not register r0.

I verified with gazerbeam_defconfig (MPC83xx) and qemu-ppce500_defconfig
(MPC85xx) that this patch results in the same machine code.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-30 15:55:07 -06:00
Jim Liu
787d389350 gpio: npcm: Add persist feature to sgpio module
Base on GPIO hog to support sgpio persist enable feature.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-12-30 15:55:01 -06:00
Jim Liu
3437624b2e configs: arbel_evb: enable arbel feature
Enable GPIO_HOG, net, WDT feature for Arbel EVB.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-12-30 15:54:53 -06:00
Tom Rini
a3d3d869b6 Merge patch series "Cleanup the LMB subsystem"
Ilias Apalodimas <ilias.apalodimas@linaro.org> says:

The LMB subsystem was used opportunistically for a number of years.
A while back Sughosh merged it with the EFI subsystem in order to have a
common allocator and avoid subsystems overwriting memory they shouldn't.

This is an initial cleanup of all the crud we gathered over the years.
There's no functional change expected from the patches as they just cleanup
some abstraction functions and rename a few variables to make more
sense.

I plan to make even bigger changes -- e.g I don't see the point of
having *_alloc() and *_reserve() versions of the functions since they
do the same thing and just cause confusion. lmb_alloc_addr_flags()
returning the base address on success makes little sense since we
already *request* the address on the function arguments, etc.
Since this patchset grew enough already, I'd like to get it in
before more refactoring happens.

It's worth noting that although some patches slightly increase the code
size due to an extra flags argument being carried around, the final
result is eventually smaller.

# qemu_arm64_lwip_defconfig (version string adds another 20b)
add/remove: 0/5 grow/shrink: 15/1 up/down: 568/-628 (-60)
Function                                     old     new   delta
lmb_alloc_base                                80     324    +244
lmb_alloc_addr                                 8     144    +136
lmb_reserve                                    8      96     +88
version_string                                50      70     +20
boot_relocate_fdt                            488     508     +20
boot_ramdisk_high                            268     284     +16
lmb_add_region_flags                         696     704      +8
boot_fdt_reserve_region                      100     108      +8
load_serial                                  548     552      +4
lmb_alloc                                      8      12      +4
image_setup_libfdt                           368     372      +4
do_load                                      728     732      +4
do_bootz                                     332     336      +4
do_booti                                     520     524      +4
bootm_run_states                            2176    2180      +4
lmb_alloc_addr_flags                           4       -      -4
boot_fdt_add_mem_rsv_regions                 284     280      -4
lmb_alloc_base_flags                          76       -     -76
lmb_reserve_flags                             96       -     -96
_lmb_alloc_addr                              144       -    -144
_lmb_alloc_base                              304       -    -304
Total: Before=1020102, After=1020042, chg -0.01%

# sandbox_defconfig (version string adds another 20b)
add/remove: 0/3 grow/shrink: 24/3 up/down: 523/-501 (22)
Function                                     old     new   delta
lmb_alloc_base                                48     299    +251
lmb_alloc_addr                                 4      92     +88
lmb_reserve                                    4      58     +54
test_alloc_addr                             2933    2963     +30
version_string                                50      70     +20
lib_test_lmb_overlapping_reserve            1018    1030     +12
lmb_add_region_flags                         600     610     +10
test_multi_alloc.constprop                  3034    3042      +8
test_get_unreserved_size                    1032    1038      +6
boot_relocate_fdt                            599     605      +6
boot_fdt_reserve_region                       67      73      +6
lmb_alloc                                      4       9      +5
lmb_free_flags                               190     194      +4
wget_handler                                1530    1533      +3
tftp_handler                                1190    1192      +2
test_noreserved                             1207    1209      +2
test_bigblock                                911     913      +2
load_serial                                  946     948      +2
lib_test_lmb_flags                          2101    2103      +2
do_spi_flash                                3150    3152      +2
do_bootz                                     526     528      +2
do_bootm_linux                              2067    2069      +2
bootm_run_states                            5275    5277      +2
_fs_read.lto_priv                            331     333      +2
lmb_dump_region.lto_priv                     356     353      -3
lmb_add                                       59      52      -7
efi_allocate_pages.part                      303     249     -54
lmb_reserve_flags                             65       -     -65
_lmb_alloc_addr.lto_priv                      92       -     -92
_lmb_alloc_base.lto_priv                     280       -    -280
Total: Before=2492722, After=2492744, chg +0.00%

Link: https://lore.kernel.org/r/20241218070251.686383-1-ilias.apalodimas@linaro.org
2024-12-30 13:22:15 -06:00
Ilias Apalodimas
1a25191bc1 lmb: Rename _lmb_alloc_addr() to lmb_alloc_addr_flags()
lmb_alloc_addr_flags() is a wrapper for _lmb_alloc_addr() and it's the
only function using it. Rename _lmb_alloc_addr() to lmb_alloc_addr_flags()
and remove the wrapper.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
3075708017 lmb: Remove lmb_alloc_base_flags()
lmb_alloc_base() is just calling lmb_alloc_base_flags() with LMB_NONE.
There's not much we gain from this abstraction, so let's remove the
former add the flags argument to lmb_alloc_base() and make the code
a bit easier to follow.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
15e0c5e390 lmb: Remove lmb_alloc_addr_flags()
lmb_alloc_addr() is just calling lmb_alloc_addr_flags() with LMB_NONE
There's not much we gain from this abstraction, so let's remove the
latter, add a flags argument to lmb_alloc_addr() and make the code a
bit easier to follow.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
c207d6e3e3 lmb: Remove lmb_add_region()
There's no point defining a function that's called only once just to
avoid passing the flags. Remove the wrapper and just call
lmb_add_region_flags().

Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
400c34db89 lmb: Rename free_mem to available_mem
free_mem is a misnomer. We never update it with the free memory for
LMB. Instead, it describes all available memory and is checked against
used_mem to decide whether an area is free or not.

So let's rename this field to better match its usage.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
900a8951c3 lmb: Remove lmb_reserve_flags()
lmb_reserve() is just calling lmb_reserve_flags() with LMB_NONE.
There's not much we gain from this abstraction.
So let's remove the latter, add the flags argument to lmb_reserve()
and make the code a bit easier to follow.

Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
3d56c06551 lmb: Move enum lmb_flags to a u32
LMB flags is not an enum anymore. It's currently used as a bitmask
in various places of our code. So make it a u32 which is more
appropriate when dealing with masks.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Ilias Apalodimas
6c9f27505a lmb: Remove lmb_align_down()
We already have a macro for this. Use it instead of adding yet another
variant for alignment.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:21:55 -06:00
Tom Rini
793e21b83d Merge patch series "lmb: Improve style"
Sam Protsenko <semen.protsenko@linaro.org> says:

Cleanup the LMB code a bit, after fixing the false positive error
messages. No functional change. This series depends on [1] (which is
"lmb: Fix reserving the same region multiple times").

Link: https://lore.kernel.org/r/20241211022550.2995-1-semen.protsenko@linaro.org
2024-12-30 13:20:33 -06:00
Sam Protsenko
22db5b2137 lmb: Improve kernel-doc comments
Fix warnings from kernel-doc script. Improve and unify overall style of
kernel-doc comments in lmb source files. Move all kernel-doc comments
for public functions into the header, as recommended in U-Boot
documentation [1]:

    Non-trivial functions should have a comment which describes what
    they do. If it is an exported function, put the comment in the
    header file so the API is in one place. If it is a static function,
    put it in the C file.

This also takes care of existing duplication. While at it, do a bit of
cosmetic cleanups as well.

No functional change.

[1] doc/develop/codingstyle.rst

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:20:24 -06:00
Sam Protsenko
85ebda86fa lmb: Improve coding style
Fix checkpatch warnings. No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:20:24 -06:00
Sam Protsenko
8ab61628b8 lmb: Make const flag_str[] in lmb_print_region_flags() more const
flag_str[] is a pointer to const. Make it also a const pointer. Improve
a style a bit while a it, to make this line fit 80 characters limit.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-30 13:20:24 -06:00
Sam Protsenko
a59887d251 lmb: Fix flags data type in lmb_add_region_flags()
rgnflags variable in lmb_add_region_flags() has incorrect type: it's
declared as phys_size_t when it should be enum lmb_flags. That
copy-paste mistake was firstly introduced in commit 59c0ea5df3 ("lmb:
Add support of flags for no-map properties"), and then copied further
into commit ed17a33fed ("lmb: make LMB memory map persistent and
global"). Fix it by using the correct type to match struct lmb_region
field.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-12-30 13:20:24 -06:00
Tom Rini
7f296a9a70 Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-sh into next 2024-12-30 12:55:39 -06:00
Venkatesh Yadav Abbarapu
9bb02f7f45 mtd: spi-nor: Fix the spi_nor_read() when config SPI_STACKED_PARALLEL is enabled
Update the spi_nor_read() function based on the config SPI_FLASH_BAR
and update the length and bank calculation by spliting the memory of
16MB size banks only when the address width is 3byte.
Fix the read issue for 4byte address width by passing the entire
length to the read function.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-12-30 08:20:15 -06:00
Marek Vasut
678f7c8f56 net: rswitch: Implement C22 to C45 access
Add support for mapping C22 register access to C45-only PHYs.
This is mainly useful for 'mii info' command, which performs
C22 only access to determine PHY ID and link state and does
not work well with this driver so far.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
8bdc76b2c9 net: rswitch: Add PHY C22 access support
Implement C22 PHY access support in addition to C45 PHY access
support which is already present. This is used for PHYs which
do not support C45 access or which are C22 only.

The C22 access can be recognized when devad is set to -1 or
0xffffffff hex, which also matches MDIO_DEVAD_NONE macro. Test
for this special devad value and if it is set this way, perform
C22 access, otherwise perform C45 access.

Based on work by LUU HOAI <hoai.luu.ub@renesas.com>

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
c3f0977ee6 net: rswitch: Fold MPSM C45 setting into rswitch_mii_access_c45()
The Set Station Management Mode : Clause 45 setting of MFF bit in MPSM
register can be done in rswitch_mii_access_c45() once, instead of this
being done before each rswitch_mii_access_c45() call. Deduplicate the
bit setting into rswitch_mii_access_c45(). No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
b35ebf4fee net: rswitch: Simplify code using clrsetbits_le32()
Use clrsetbits_le32() to make this complicated construct simpler.
No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
da5d84ebc5 net: rswitch: Fix up macro indent
Update the macro indent, replace multiple spaces with tabs proper.
No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
58fe39b624 net: rswitch: Replace enum rswitch_reg with plain macros
Replace enum rswitch_reg with plain #define REGISTER OFFSET macros.
The enum rswitch_reg was not referenced anywhere, so there was no
benefit of keeping it around. Include register block labels. Turn
all register offsets into lowercase hex values. No functional change.

Rename EATDQDC to EATDQDCR, GWTRC to GWTRCR, GWDCC to GWDCCR, FWPC0
to FWPC, FWPBFC to FWPBFCR, FWPBFCSDC to FWPBFCSDCR because there
are both register names which used to be part of this enum and also
macros with the same name, each used for slightly different purpose.
Make sure there is no collission.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
7a9d813580 arm64: renesas: Enable CR52 remoteproc on R-Car R8A779G0 V4H
Enable remoteproc command and APMU remoteproc driver to start Cortex-R52
cores from U-Boot command line. Code on the Cortex-R52 #0 can be started
as follows, code on other cores can be started by passing the correct ID
to 'rproc load' and 'rproc start' to select the core:

"
=> rproc init
=> rproc list
0 - Name:'rcar-apmu-cr52.0-apmu@e6170000' type:'internal memory mapped' supports: load start stop reset is_running
1 - Name:'rcar-apmu-cr52.1-apmu@e6170000' type:'internal memory mapped' supports: load start stop reset is_running
2 - Name:'rcar-apmu-cr52.2-apmu@e6170000' type:'internal memory mapped' supports: load start stop reset is_running
=> rproc load 0 0xeb200000 0x10000
Load Remote Processor 0 with data@addr=0xeb200000 65536 bytes: Success!
=> rproc start 0
"

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:32 +01:00
Marek Vasut
c8533359f6 arm64: dts: renesas: Add R8A779G0 V4H remoteproc DT node
Describe APMU controller as a remoteproc device capable of starting
the Cortex-R52 cores in Renesas R8A779G0 V4H SoC DT. The APMU IP is
in fact a power management unit capable of additional operations, but
those are not used by U-Boot so far.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
5769328fab remoteproc: renesas: Add Renesas R-Car Gen4 remote processor driver
Add R-Car Gen4 APMU controller remoteproc driver capable of starting
the Cortex-R52 cores in Renesas R8A779G0 V4H/V4M SoC. The APMU IP is
in fact a power management unit capable of additional operations, but
those are not used by U-Boot so far.

This requires slight adjustment to the SPL entry point code, as that
is being executed on the Cortex-R52 #0 and the Cortex-R52 #0 enters an
endless loop once it starts the rest of the SPL on Cortex-A76 core.
The endless loop now checks for content of APMU CRBARP registers and
tests whether valid VLD_BARP and BAREN_VALID bits are set, if so, the
Cortex-R52 core exits the endless loop and jumps to address started
in CRBARP[31:18] register in ARM mode, which is a trampoline code to
jump to the final entry point.

The trampoline code is in place to avoid limitation of CRBARP[31:18]
address field, which limits the core start address to memory addresses
aligned to 0x40000 or 256 kiB . The trampoline is placed at 0x40000
aligned address and jumps to the final entry point, which can be at
an address with arbitrary alignment at instruction granularity.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
eaf2ed4eb4 arm64: dts: renesas: Drop OF_UPSTREAM conversion remnant
This DTC_FLAGS assignment is no longer necessary as all R-Car Gen2/Gen3/Gen4
platforms have been converted to OF_UPSTREAM and matching DTC_FLAGS assignment
is present in dts/upstream/src/arm64/Makefile . Drop the remnant.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
2fd7a04e7c arm64: renesas: Align configuration headers
Align R-Car Gen2/Gen3/Gen4 configuration header file to look
basically the same way across these three SoC generations.
There are subtle difference between the remaining bits in
those files across SoC generations, but the common bits are
now aligned. There is not much left in those headers either,
most of the configuration is now converted to Kconfig.

Specifically for R-Car Gen3, GIC registers have been moved
to architecture specific header file rcar-gen3-base.h , the
rest of the changes here are comment changes and indentation
changes.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
ec53fdee5b arm64: renesas: Add Renesas R-Car V4H SPL implementation
Add support for building U-Boot SPL for Renesas R-Car Gen4 R8A779G0 V4H SoC.
The SPL initializes the DBSC5 DRAM controller, RT-VRAM and loads and starts
U-Boot proper on the Cortex-A76 core.

The SoC BootROM can not boot the CA76 core directly, instead the SPL starts
on the CR52 core which immediately brings up the CA76 core, which in turn
starts executing the actual SPL. This is achieved by placing a tiny bit of
precompiled Aarch32 code at the very beginning of the SPL. The code consists
of some 32 instructions, uses APMU to configure CA76 start address to offset
0x80 Bytes from start of the SPL, and uses APMU to start the CA76 core. The
code parts the CR52 core in an endless loop once the CA76 core got started.

The 32 instructions are completely arbitrary number, so is the offset 0x80
Bytes from start of SPL, because 0x80 = 128 decimal and 128 / 4 bytes per
instruction is 32 instructions. The 32 instructions turned out to be enough
to started the CA76 and 0x80 is nicely aligned.

Once the SPL completes hardware initialization, the SPL loads U-Boot proper.
The u-boot.itb proper fitImage contains 64bit build on u-boot-nodtb.bin and
a DT for R8A779G0 V4H White Hawk board and is generated by binman. The
u-boot.itb is loaded from SPI NOR offset 0x80000.

In order to install this setup on an existing R8A779G0 V4H White Hawk board,
build using r8a779g0_whitehawk_defconfig, generate SPI NOR image flash.bin
and write flash.bin to SPI NOR offset 0x0 . Finally, configure board MD pin
switches according to the R8A779G0 V4H White Hawk board documentation for
40 MHz SPI NOR boot using DMA and restart the board.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
6a32d5b54f arm64: renesas: Make bottom 128 MiB of DRAM available in EL3
In case U-Boot runs in EL3, which is the highest privilege level on ARM64,
there can be no firmware running that would restrict access to the bottom
128 MiB of DRAM. In fact, it is likely that U-Boot would have to load that
firmware into those bottom 128 MiB of DRAM and start that firmware.

Make those bottom 128 MiB of DRAM available in case U-Boot runs in EL3 to
allow loading the firmware to that area.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
cf096e7d73 arm64: renesas: Split R-Car Gen3 and Gen4 common board code
Split common board code for R-Car Gen3 and Gen4 into separate files.
The R-Car Gen3 board code contains fixups specific to TFA which are
no longer required on R-Car Gen4, keep those fixups in its own file
so they would not interfere with Gen4.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
caefe8a1b4 arm64: renesas: Deduplicate R-Car Gen4 board files
All R-Car Gen4 board files are copies of one another at this point.
Deduplicate them into single board/renesas/rcar-common/gen4-common.c
and remove all the duplicates. The one exception is R-Car V3U Falcon
board, which enables RWDT reset in board_init(), conditionally build
RWDT enablement in board_init() in the new common code for V3U.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
67440c8642 arm64: renesas: Make stub PSCI implementation available on 64bit R-Car SoCs
Make the R-Car V3U stub PSCI implementation available on 64bit R-Car SoCs.
This implementation is useful during early board bring up, where it can
supplant missing fully-featured PSCI implementation. Note that this PSCI
implementation is very basic and offers only SoC reset functionality. It
is unable to enable or disable secondary CPU cores nor does it offer any
suspend/resume functionality.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
94255316db arm64: dts: renesas: Add R8A779G0 V4H DBSC5 and RT-VRAM DT nodes
Describe DBSC5 DRAM controller and RT-VRAM configuration interface
as two new DT nodes in R-Car Gen4 R8A779G0 U-Boot DT extras file.
This node is used by the U-Boot SPL for R8A779G0 SoC, where the
DBSC5 and RT-VRAM drivers bind to these nodes and bring up the
DRAM controller and RT-VRAM settings respectively, so U-Boot
proper can be loaded into DRAM and started on Cortex A76 core.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
7366aacf8e ram: renesas: Add Renesas R-Car Gen4 DBSC5 driver
Add Renesas R-Car Gen4 DBSC5 DRAM controller driver. This driver is currently
capable of bringing LPDDR5 DRAM on Renesas R-Car V4H Whitehawk board. Further
boards can be supported by supplying board specific DRAM configuration data
via dbsc5_get_board_data(). Support for R-Car V4M is not implemented, however
the driver is already mostly prepared to support this SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Marek Vasut
476b886a6f pinctrl: renesas: Convert to IS_ENABLED() macro
Use the IS_ENABLED() macro to reduce amount of #ifdef use in the driver
and improve code coverage. With IS_ENABLED() macro, the code is compiled
and then optimized out, which prevents bitrot.

In case no PFC table matches the SoC in use, do not probe the driver
and instead exit with -ENODEV. This should never happen under normal
conditions, because this would mean the driver DT compatible string
match happened, but the list in probe() cannot match the model listed
in match data associated with the compatible string on which the match
did happen.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-29 16:55:31 +01:00
Tom Rini
526542a835 Merge patch series "net: tcp: improve tcp support in legacy stack"
Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> says:

Legacy TCP stack is bad. Here are some of the known issues:
 * tcp packet from other connection can break a current one
 * tcp send sequence always starts from zero
 * bad tcp options processing
 * strange assumptions on packet size for selective acknowledge
 * tcp interface assumes one of the two scenarios:
     - data downloading from remote host to a board
     - request-response exchange with a small packets
   so it's not possible to upload large amount of data from the
   board to remote host.
 * wget test generate bad tcp stream, test should fail but it passes instead

This series of patches fixes all of the above issues.

The benefits:
 * A lot of bug was fixed
 * Better and more reliable TCP state machine
 * Tcp clients becomes smaller/simpler
 * Data uploading was fixed (now it's possible to transmit a huge amount of
   data from the board to remote host)

Modification was verified with
 * firmware downloading via u-boot wget command
 * fastboot over tcp
 * netcat linux client using test netcat implementation (not included
   to this patch series)
 * Firefox/Chrome/Edge using test web-server implementation (not included
   to this patch series)

[trini: snip]
WARNING: The v16 patch series does NOT fix lib/efi_selftest/efi_selftest_http.c
issue. It looks like the efi_selftest_http test is wrong by itself. The
following issues were detected during efi_selftest_http test study:
 * The test should fail with HTTP status code 404 because:
     * nowday most web-servers requires the presence of "HOST:" request header
     * wget does not support sending "HOST:" request header
     * web-server of "http://example.com/" site does NOT provide "default server"
       configuration, so it answer 404 on any request without "HOST:" header.
 * The test states that:
     * test send HTTP HEAD request to a server,
     * then test send HTTP GET request to a server,
     * reads the actual bytes sent by the server and compare it with
       the value from "Contents-Length:" responce header of the HEAD request
   But actually it
     * does not send HTTP HEAD request, only a single HTTP GET request
       is performed
     * the test reads the responce twice from the same request. It looks
       very suspictiuos

Link: https://lore.kernel.org/r/20241228104637.4173913-1-mikhail.kshevetskiy@iopsys.eu
2024-12-28 12:00:00 -06:00
Mikhail Kshevetskiy
15770c61d4 net/net: fix include ordering
fix include ordering to follow
  https://docs.u-boot.org/en/latest/develop/codingstyle.html#include-files

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
0eff920826 net/tcp: define a fallback value for rcv_wnd size
Some driver implements it's own network packet pool, so PKTBUFSRX is zero.
This results in zero-size TCP receive window, so data transfer doesn't
work. Avoid it by setting a reasonable fallback value.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
3a44b8ba94 net/tcp: simplify tcp header filling code
This patch:
 * remove useless code,
 * use a special function for pretty printing of tcp flags,
 * simplify the code

The behavior should not be changed.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
ece1631f5e test/cmd/wget: replace bogus response with an actual response from the HTTP server
According to HTTP/1.0 standard the HTTP reply consist of
 * Status Line + CRLF
 * Zero or more Response Header Fields (each ended with CRLF)
 * CRLF on new line (Response Header Fields end marker)
 * Optional Entity Body.

Thus in response headers we state:
  Content-Length = 30
but actual transferred file data is:
  "\r\n<html><body>Hi</body></html>\r\n".
This is 32 bytes of data.

So we get and check for correctness 32 bytes of data, but
 * The response we are used is incorrect, real server will
   set Content-Length to 32.
 * default_wget_info->hdr_cont_len will be set to wrong
   value 30 (used for efi http booting).

Fix an issue by:
 * replace bogus response with an actual response from the HTTP server
 * format response to show HTTP response structure
 * recalculate md5sum as transferred file data has been changed.

The server response was captured with the commands

  echo -ne "<html><body>Hi</body></html>\n" > ~/public_html/test.html
  echo -ne "GET /~${USER}/test.html HTTP/1.0\r\n\r\n" | netcat localhost 80 >reply.txt

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
fa3ae38b83 test/cmd/wget: fix the test
Changes:
 * update to new tcp stack
 * fix zero values for ISS and IRS issue (see RFC 9293)

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
bf962de97c net/tcp: improve tcp framework, use better state machine
Changes:
 * Fix initial send sequence always zero issue
 * Use state machine close to RFC 9293. This should make TCP
   transfers more reliable (now we can upload a huge array
   of data from the board to external server)
 * Improve TCP framework a lot. This should make tcp client
   code much more simple.
 * rewrite wget with new tcp stack
 * rewrite fastboot_tcp with new tcp stack

It's quite hard to fix the initial send sequence (ISS) issue
with the separate patch. A naive attempt to fix an issue
inside the tcp_set_tcp_header() function will break tcp packet
retransmit logic in wget and other clients.

Example:
  Wget stores tcp_seq_num value before tcp_set_tcp_header() will
  be called and (on failure) retransmit the packet with the stored
  tcp_seq_num value. Thus:
    * the same ISS must allways be used (current case)
    * or tcp clients needs to generate a proper ISS when
      required.

A proper ISS fix will require a big redesing comparable with
a this one.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
82bf3aafa6 net/tcp: rename ack_edge and seq_init to more common rcv_nxt and irs
Use the names from RFC 9293

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
2b17749870 net/tcp: add connection info to tcp_stream structure
Changes:
 * Avoid use net_server_ip in tcp code, use tcp_stream data instead
 * Ignore packets from other connections if connection already created.
   This prevents us from connection break caused by other tcp stream.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
ddedfe1cb8 net/tcp: put connection specific data into a tcp_stream structure
no functional changes

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
40d3d6557d net/tcp: fix selective acknowledge
Current code assume that all (except last) packets are of the same size.
This is definitely wrong. Replace SACK code with a new one, that does
not rely on this assumption. Also this code uses less memory.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Mikhail Kshevetskiy
77da29b868 net/tcp: fix TCP options processing
Current TCP code may miss an option if TCP_O_NOP option was used before
it for proper aligning.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-28 11:59:42 -06:00
Tom Rini
d580a013cc Merge patch series "vbe: Series part E"
Simon Glass <sjg@chromium.org> says:

This includes various patches towards implementing the VBE abrec
bootmeth in U-Boot. It mostly focuses on SPL tweaks and adjusting what
fatures are available in VPL.

Link: https://lore.kernel.org/r/20241219182907.2609704-1-sjg@chromium.org
2024-12-27 15:16:39 -06:00
Simon Glass
6f1b27a724 hash: Plumb crc8 into the hash functions
Add an entry for crc8, with watchdog handling.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-27 15:16:10 -06:00
Simon Glass
286b48c957 boot: Imply CRC8 with VBE
VBE uses a crc8 checksum to verify that the nvdata is valid, so make
sure it is available if VBE is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
ded772fafa lib: Allow crc8 in TPL and VPL
Provide options to enable the CRC8 feature in TPL and VPL builds.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
8dfbd79812 boot: Allow use of FIT in TPL and VPL
With VBE we want to use FIT in all phases of the boot. Add Kconfig
options to support this.

Disable the options for sandbox_vpl for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
0b0e0f273d spl: lib: Allow for decompression in any SPL build
Add Kconfig symbols and update the Makefile rules so that decompression
can be used in TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
e6c09c8cc4 spl: Add some more debugging to load_simple_fit()
Add debugging of image-loading progress. Fix a stale comment in the
function comment while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
03b94635d8 spl: Drop a duplicate variable in boot_from_devices()
The variable 'ret' is defined twice, which is not intended. This may
have been a local merge error.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 2eefeb6d893 ("spl: Report a loader failure")
2024-12-27 15:16:10 -06:00
Simon Glass
7a585b9d6a spl: Drop use of uintptr_t
U-Boot uses ulong for addresses. It is confusing to use uintptr_t in a
few places, since it makes people wonder if the types are compatible.
Change the few occurences in SPL to use ulong

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
7f67b6fa83 spl: Support a relocated stack in any XPL phase
The current check looks only at SPL, but TPL or VPL might have a
different setting. Update the condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
a7d4d11944 spl: Allow serial to be disabled in any XPL phase
The current check looks only at SPL, but TPL or VPL might have a
different setting. Update the condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
5f158d8832 spl: Report a loader failure
If a loader returns an error code it is silently ignored. Show a message
to at least provide some feedback to the user.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
92a4fd0a29 Support setting a maximum size for the VPL image
Add a size limit for VPL, to match those for SPL and TPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
1bfbf09d5c malloc: Provide a simple malloc for VPL
The VPL phase may want to use the smaller malloc() implementation, so
add an option for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
c44c83f1fb malloc: Show amount of used space when memory runs out
Show a bit more information when malloc() space is exhausted and
debugging is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
4702647528 boot: Respect the load_op in fit_image_load()
Some code has crept in which ignores this parameter. Fix this and add a
little debugging.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: b1307f884a ("fit: Support compression for non-kernel components (e.g. FDT)")
2024-12-27 15:16:10 -06:00
Simon Glass
19574e35f4 bootstd: Avoid sprintf() in SPL when creating bootdevs
The name of the bootdev device is not that important, particular in SPL.
Save a little code space by using a simpler name.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
771f0e9877 boot: Allow FIT to fall back from best-match option
When the best-match feature fails to find something, use the provided
config name as a fallback. The allows SPL to select a suitable config
when best-match is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
9922227ac5 image: Add a prototype for fit_image_get_phase()
This function exists but is not exported. Add a prototype so it can be
used elsewhere.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-27 15:16:10 -06:00
Simon Glass
8369dd058a spl: mmc: Avoid size growth in spl_mmc_find_device() debug
The for() loop ends up being in the code even if the log_debug() does
nothing. Add a condition to fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-27 15:16:10 -06:00
Tim Harvey
aa233d26bd board: gateworks: venice: rename GW7905 to GW7500
The GW7905 was renamed to GW7500 before release. Change the various
names in the dt files and references.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-27 14:34:45 -06:00
Tom Rini
cb7410257a Merge tag 'doc-2025-01-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request doc-2025-01-rc6

Fix a number of typos

* cmd: bootmenu typo 'read'
* cmd/rng: fix long help text
* crypto: typo volatge
* board: freescale: typo volatge
* scripts: add volatge to spelling.txt
* doc: fit: Format image tree source example
2024-12-26 10:21:22 -06:00
Tom Rini
5cfbf8c364 Merge tag 'v2025.01-rc5' into next
Prepare v2025.01-rc5
2024-12-25 22:31:04 -06:00
Tom Rini
2c366eb1cd Merge branch 'next-pinctrl' of https://source.denx.de/u-boot/custodians/u-boot-sh into next 2024-12-25 22:30:48 -06:00
Marek Vasut
545208247d pinctrl: renesas: Minimize R8A779H0 V4M PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- INTC/INTC-EX
- MSIOF
- PWM
- SSI

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
a69f8cb9e2 pinctrl: renesas: Minimize R8A779G0 V4H PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- SSI

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
35c5ac0d53 pinctrl: renesas: Minimize R8A779F0 S4 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- INTC-EX
- MSIOF

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
15c51cc62d pinctrl: renesas: Minimize R8A779A0 V3U PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- CAN/CANFD
- DU
- INTC-EX
- MSIOF
- PWM

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
59c9ca0ba3 pinctrl: renesas: Minimize R8A77995 D3 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
1ee288a6aa pinctrl: renesas: Minimize R8A77990 E3 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- INTC/INTC-EX
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
fa51edbab6 pinctrl: renesas: Minimize R8A77980 V3H PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
a046f58f33 pinctrl: renesas: Minimize R8A77970 V3M PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
d020179cf0 pinctrl: renesas: Minimize R8A77965 M3-N PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
0edacf1a41 pinctrl: renesas: Minimize R8A77960 M3-W and R8A77961 M3-W+ PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
2890251ead pinctrl: renesas: Minimize R8A77951 H3 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN/CANFD
- DU
- INTC-EX
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
7f19150405 pinctrl: renesas: Minimize R8A7794 E2 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN
- DU
- INTC
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
7db1d1fadf pinctrl: renesas: Minimize R8A7792 V2H PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- CAN
- DU
- INTC
- MSIOF
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
6671e9aebd pinctrl: renesas: Minimize R8A7791 M2-W and R8A7793 M2-N PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN
- DU
- INTC
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
2f3bd7ca26 pinctrl: renesas: Minimize R8A7790 H2 PFC tables
Reduce the PFC tables by ifdeffing out pinmux settings which are
unlikely to be used by U-Boot. This helps reduce the size of the
bootloader in the 10 kiB range. This includes conditional build
of these PFC additions:

- Audio
- CAN
- DU
- INTC
- MSIOF
- PWM
- SSI
- VIN

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Marek Vasut
e6e3d70632 pinctrl: renesas: Add Kconfig symbol for conditional build of full PFC tables
By default the pin multiplexing tables used by U-Boot are reduced
to keep the size of the bootloader low. This option allows build of
full pin multiplexing tables the same way they are included in the
Linux kernel. This includes pin multiplexing options for Audio, CAN,
CANFD, DU, INTC, INTC-EX, MSIOF, PWM, SSI, for which there is no
U-Boot driver. This option is disabled by default.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-25 19:29:47 +01:00
Tom Rini
6a042f830f Subtree merge tag 'v6.12-dts' of dts repo [1] into dts/upstream
[1] https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git

Based on what "git diff" suggests, rename a device tree for
imx8mm_venice_defconfig and imx8mp_venice_defconfig

Signed-off-by: Tom Rini <trini@konsulko.com>
---
Cc: Tim Harvey <tharvey@gateworks.com>
2024-12-24 13:33:03 -06:00
Tom Rini
9c8af15f86 Squashed 'dts/upstream/' changes from 3347eecf3408..9b6ba2666d63
9b6ba2666d63 Merge tag 'v6.12-rc7-dts-raw'
24e60fb60d9c Merge tag 'net-6.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
338017c72eb3 Merge tag 'arm-fixes-6.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
111bbc7cbd2b Merge tag 'v6.12-rc6-dts-raw'
a3470c477ea5 Merge tag 'phy-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
11c61b0e93ca Merge tag 'char-misc-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
d812638eef3b dt-bindings: net: xlnx,axi-ethernet: Correct phy-mode property value
b5de435b8395 Merge tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel
475c1e5fdf7d Merge tag 'qcom-arm64-fixes-for-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into HEAD
aaa206ba62ad Merge tag 'qcom-arm64-fixes-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into HEAD
60b23eceee2d Merge tag 'scmi-fixes-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into HEAD
c645e67e3bff Merge tag 'riscv-soc-fixes-for-v6.12-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into HEAD
f2aa6a047513 Merge tag 'v6.12-rockchip-dtsfixes1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into HEAD
30117e8aa895 Merge tag 'riscv-sophgo-dt-fixes-for-v6.12-rc1' of https://github.com/sophgo/linux into HEAD
14bab7ca1016 Merge tag 'imx-fixes-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into HEAD
85e83c6427fa Merge tag 'mediatek-drm-fixes-20241028' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes
b27b5e015be6 Merge tag 'sound-6.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
fe4d475bfb92 ASoC: dt-bindings: rockchip,rk3308-codec: add port property
e2b9e9486c64 Merge tag 'iio-fixes-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
1c4937f2c854 dt-bindings: firmware: arm,scmi: Add missing vendor string
ef7b1f06441d Merge tag 'v6.12-rc5-dts-raw'
146e18b6f724 Merge tag 'sound-6.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
9bcb447f9886 riscv: dts: Replace deprecated snps,nr-gpios property for snps,dw-apb-gpio-port devices
094d5de32029 arm64: dts: rockchip: Correct GPIO polarity on brcm BT nodes
798aefb9ecc1 arm64: dts: rockchip: Drop invalid clock-names from es8388 codec nodes
bcbec9bc899f ARM: dts: rockchip: Fix the realtek audio codec on rk3036-kylin
58fcbb87822c ARM: dts: rockchip: Fix the spi controller on rk3036
199583690a60 ARM: dts: rockchip: drop grf reference from rk3036 hdmi
8893c637ed2e ARM: dts: rockchip: fix rk3036 acodec node
f21c7bf76b50 arm64: dts: rockchip: remove orphaned pinctrl-names from pinephone pro
83a836abbeb3 arm64: dts: qcom: x1e80100: fix PCIe5 interconnect
ff05e21231d2 arm64: dts: qcom: x1e80100: fix PCIe4 interconnect
1e3ac94fd98e dt-bindings: iio: adc: ad7380: fix ad7380-4 reference supply
02201f7c6103 arm64: dts: qcom: x1e80100: Fix up BAR spaces
c0823dcfd27a arm64: dts: qcom: x1e80100-qcp: fix nvme regulator boot glitch
1ab64e633fb5 arm64: dts: qcom: x1e80100-microsoft-romulus: fix nvme regulator boot glitch
156417cf5af9 arm64: dts: qcom: x1e80100-yoga-slim7x: fix nvme regulator boot glitch
21cf64fe1af4 arm64: dts: qcom: x1e80100-vivobook-s15: fix nvme regulator boot glitch
5b9cd8d991aa arm64: dts: qcom: x1e80100-crd: fix nvme regulator boot glitch
3b9ef321c3c1 arm64: dts: qcom: x1e78100-t14s: fix nvme regulator boot glitch
97a2947ac31a dt-bindings: display: mediatek: split: add subschema property constraints
66b452adc3d5 dt-bindings: display: mediatek: dpi: correct power-domains property
843a90e2622f riscv: dts: starfive: Update ethernet phy0 delay parameter values for Star64
05e87d03215e arm64: dts: qcom: x1e80100-crd Rename "Twitter" to "Tweeter"
2d864e7c11a7 arm64: dts: imx8mp-phyboard-pollux: Set Video PLL1 frequency to 506.8 MHz
8a8739e46acb arm64: dts: imx8mp: correct sdhc ipg clk
29f81d0f3dee dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Fix X1E80100 resets entries
779943da7446 Merge tag 'v6.12-rc4-dts-raw'
e58e3f3bf62d Merge tag 'char-misc-6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
bef891665274 Merge tag 'arm-fixes-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
a69bd3f1596d Merge tag 'net-6.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
9248d76aea3b riscv: dts: starfive: disable unused csi/camss nodes
4985161b4495 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: add missing x1e80100 pipediv2 clocks
17b42dab865d arm64: dts: imx8mp-skov-revb-mi1010ait-1cp1: Assign "media_isp" clock rate
c591d346faac arm64: dts: qcom: x1e80100: Fix PCIe 6a lanes description
5d190d186797 arm64: dts: imx8: Fix lvds0 device tree
4f9ddc110d10 arm64: dts: imx8ulp: correct the flexspi compatible string
e6a052b90efc arm64: dts: imx8-ss-vpu: Fix imx8qm VPU IRQs
12b53d8dfe73 dt-bindings: net: brcm,unimac-mdio: Add bcm6846-mdio
1fc95f2cebca Merge tag 'mvebu-fixes-6.12-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into arm/fixes
c5057b3fb9e2 Merge tag 'v6.12-rc3-dts-raw'
bff355a419a2 arm64: dts: qcom: sm8450 fix PIPE clock specification for pcie1
25a6e15f33f2 arm64: dts: qcom: x1e80100: Add Broadcast_AND region in LLCC block
6ce0d71f2f1e Merge tag 'iio-fixes-for-6.12a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus
cf465168c1df Merge tag 'devicetree-fixes-for-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
b178ff388025 Merge tag 'arm-soc/for-6.12/devicetree-fixes' of https://github.com/Broadcom/stblinux into arm/fixes
51b0d8f89621 arm64: dts: rockchip: remove num-slots property from rk3328-nanopi-r2s-plus
c9ef90f4404a arm64: dts: rockchip: Fix LED triggers on rk3308-roc-cc
c68abaf08ec0 arm64: dts: rockchip: Remove #cooling-cells from fan on Theobroma lion
5046025d8a71 arm64: dts: rockchip: Remove undocumented supports-emmc property
457c45fc411d arm64: dts: rockchip: Fix bluetooth properties on Rock960 boards
6546c4501166 arm64: dts: rockchip: Fix bluetooth properties on rk3566 box demo
5fe0d8b83aff arm64: dts: rockchip: Drop regulator-init-microvolt from two boards
035ef0b462e5 arm64: dts: rockchip: fix i2c2 pinctrl-names property on anbernic-rg353p/v
ddb4f2849b53 ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin
2717ed73575a arm64: dts: rockchip: Fix reset-gpios property on brcm BT nodes
ff7520430056 arm64: dts: rockchip: Fix wakeup prop names on PineNote BT node
bd351810f270 arm64: dts: rockchip: Remove hdmi's 2nd interrupt on rk3328
f0538f7edcf5 dt-bindings: interrupt-controller: fsl,ls-extirq: workaround wrong interrupt-map number
e419c60fee49 dt-bindings: misc: fsl,qoriq-mc: remove ref for msi-parent
2bf0ad8ae1d7 ASoC: dt-bindings: davinci-mcasp: Fix interrupt properties
34a1e993efc6 arm64: dts: marvell: cn9130-sr-som: fix cp0 mdio pin numbers
fd4b7754f9b0 Merge tag 'v6.12-rc2-dts-raw'
b0bbc36d4f7e arm64: dts: qcom: x1e80100: fix PCIe5 PHY clocks
336247669ee6 arm64: dts: qcom: x1e80100: fix PCIe4 and PCIe6a PHY clocks
1aa8c9bb7e1a Merge tag 'sound-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
dbfa6848a6d8 Merge tag 'net-6.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
b89c7c1c0ed7 dt-bindings: net: xlnx,axi-ethernet: Add missing reg minItems
1e9c13738bee qrb4210-rb2: add HDMI audio playback support
2633c577e8b4 ASoC: dt-bindings: davinci-mcasp: Fix interrupts property
d91ab7149935 ASoC: dt-bindings: qcom,sm8250: add qrb4210-rb2-sndcard
36555df7296e dt-bindings: display: elgin,jg10309-01: Add own binding
8affa93e7ba3 ASoC: dt-bindings: renesas,rsnd: correct reg-names for R-Car Gen1
765d3a0efe3f Merge branch 'build'
1c8358218018 Make sure that upstream overlays can also be built and, thus, checked.
ab48771a47f9 arm64: dts: rockchip: Designate Turing RK1's system power controller
05b0851c5421 arm64: dts: rockchip: Start cooling maps numbering from zero on ROCK 5B
50c2e7506179 arm64: dts: rockchip: Move L3 cache outside CPUs in RK3588(S) SoC dtsi
3e0fe26f80d9 arm64: dts: rockchip: Fix rt5651 compatible value on rk3399-sapphire-excavator
dfc982e89471 arm64: dts: rockchip: Fix rt5651 compatible value on rk3399-eaidk-610
165a55c18dca dt-bindings: iio: dac: adi,ad56xx: Fix duplicate compatible strings
824a3b462175 Merge tag 'v6.12-rc1-dts-raw'
a10ddd35e8d7 Merge tag 'mailbox-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
a290ef5757fb Merge tag 'loongarch-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
acdca8569da1 Merge tag 'soc-ep93xx-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
722604408a3f Merge tag 'char-misc-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
18db146dd1ac Merge tag 'tty-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
14d3c1afb25e Merge tag 'usb-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
1a7e72e06bb1 Merge tag 'hid-for-linus-2024092601' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
58b42ce0fdc0 dt-bindings: gpio: ep9301: Add missing "#interrupt-cells" to examples
0f368ee29951 Merge tag 'rtc-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
1ed862352aa3 dt-bindings: input: Revert "dt-bindings: input: Goodix SPI HID Touchscreen"
145c866630c5 Merge tag 'input-for-v6.12-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
909b8062de6c Merge tag 'hwlock-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
8ab0314016f8 Merge tag 'rproc-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
0a3ce3c0ce2c Merge tag 'riscv-for-linus-6.12-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
19a2390509c0 Merge tag 'media/v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
910594ef34be Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
ad60f92e4ed2 Merge tag 'i2c-for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
3e3a8a00a7b9 Merge tag 'leds-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
5b7edb7ee57d Merge tag 'mfd-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
da20bb975a81 Merge tag 'dmaengine-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
4fb39c828b14 Merge tag 'phy-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
ecc4037e9b36 Merge tag 'linux-watchdog-6.12-rc1' of git://www.linux-watchdog.org/linux-watchdog
46fb89dd0e0e Merge tag 'pinctrl-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
7c655c972087 Merge tag 'pci-v6.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
501d9fb88d0c dt-bindings: mfd: qcom,tcsr: Add compatible for sa8775p
247cf94da399 dt-bindings: mfd: syscon: Add rk3576 QoS register compatible
f9749261302e dt-bindings: mfd: adp5585: Add parsing of hogs
6d50efee6578 dt-bindings: mailbox: qcom-ipcc: Document QCS8300 IPCC
eaecc9d38689 dt-bindings: mailbox: qcom-ipcc: document the support for SA8255p
93b78c08b3fd dt-bindings: mailbox: mtk,adsp-mbox: Add compatible for MT8188
a6cd34ed82b2 Merge branches 'clk-devm', 'clk-samsung', 'clk-rockchip' and 'clk-qcom' into clk-next
e7541d0bf713 Merge branches 'clk-amlogic', 'clk-microchip' and 'clk-imx' into clk-next
fb6e043f02b5 Merge branches 'clk-assigned-rates', 'clk-renesas' and 'clk-scmi' into clk-next
67ee0e44e8b3 Merge branches 'clk-kunit', 'clk-mediatek', 'clk-cleanup' and 'clk-bindings' into clk-next
84a5cfc562e5 Merge tag 'i2c-host-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
833184659373 Merge branch 'pci/controller/xilinx'
d2ced8c94301 Merge branch 'pci/controller/rcar-gen4'
205eb060fff6 Merge branch 'pci/controller/qcom'
c2e95de12ee5 Merge branch 'pci/controller/mediatek-gen3'
b47ac6afd055 Merge branch 'pci/controller/j721e'
8c1f2f943286 Merge branch 'pci/controller/imx6'
5418a924c01b Merge branch 'pci/controller/brcmstb'
e4313eff5d0a Merge tag 'drm-next-2024-09-19' of https://gitlab.freedesktop.org/drm/kernel
930cd997b460 Merge tag 'ata-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
551f0c8a62fc Merge tag 'hid-for-linus-2024091602' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
a8ba6bce9e53 Merge tag 'platform-drivers-x86-v6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
4be289d4c2ba Merge tag 'devicetree-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
d248da427469 dt-bindings: watchdog: Add rockchip,rk3576-wdt compatible
b26c4522aa44 Merge tag 'iommu-updates-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
716936629579 Merge tag 'hwmon-for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
b6e3a1d63e34 Merge tag 'pmdomain-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
efb34d1dea37 dt-bindings: rtc: microcrystal,rv3028: add #clock-cells property
1a02a6c46436 Merge tag 'gpio-updates-for-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
24cdb8b878e0 Merge tag 'pwm/for-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
49b0907b4ed3 Merge tag 'mmc-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
c9ddac1be7b5 Merge tag 'mtd/for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
885b1489fea6 Merge tag 'for-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
e3bc65b6add2 Merge tag 'sound-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
a97b2d236867 Merge tag 'irq-core-2024-09-16' into loongarch-next
0f81cded2e67 dt-bindings: watchdog: Add Cirrus EP93x
0da48b2eb4d8 dt-bindings: watchdog: stm32-iwdg: Document interrupt and wakeup properties
bdca23f2fa0c Merge tag 'soc-drivers-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
d8c79017824d Merge tag 'soc-dt-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
01e4d4fec9c3 Merge tag 'spi-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
76bd3554bda7 Merge tag 'regulator-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
900e0757784e Merge tag 'timers-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
b37c8288ab1d Merge tag 'irq-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
c297f09c7768 dt-bindings: pwm: amlogic: Add new bindings for meson A1 PWM
271ac3da5df1 dt-bindings: pwm: amlogic: Add optional power-domains
127dff8d7e4d dt-bindings: pwm: allwinner,sun4i-a10-pwm: add top-level constraints
cb1e57ede6bf Merge tag 'ib-mfd-gpio-pwm-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
e0fafe72293f Merge tag 'thermal-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
c46abe7a5b55 Merge tag 'pm-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
462ec6c9eac3 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
4b530fadd6b1 Merge tag 'v6.12-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
d687f0847c29 Merge patch series "Svvptc extension to remove preventive sfence.vma"
93b528e451d0 dt-bindings: riscv: Add Svvptc ISA extension description
b23cdeef48a0 Merge tag 'asoc-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
1ef028beb01c Merge tag 'for-net-next-2024-09-12' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
c7d500e333fb dt-bindings: PCI: qcom: Allow 'vddpe-3v3-supply' again
4291ac45f4c8 dt-bindings: cpu: Drop duplicate nvidia,tegra186-ccplex-cluster.yaml
073ae1c72587 dt-bindings: clock: mediatek: Drop duplicate mediatek,mt6795-sys-clock.yaml
1b1a69e3b9fc dt-bindings: clk: vc5: Make SD/OE pin configuration properties not required
55009bd21771 dt-bindings: watchdog: qcom-wdt: document support on SA8255p
1dcaec715509 dt-bindings: interrupt-controller: fsl,irqsteer: Document fsl,imx8qm-irqsteer
06dc06f581cc dt-bindings: interrupt-controller: arm,gic: add ESPI and EPPI specifiers
4decf529f330 dt-bindings: dma: Add lpc32xx DMA mux binding
a611e93bd60a dt-bindings: trivial-devices: Drop duplicate "maxim,max1237"
49998ce31a2c dt-bindings: trivial-devices: Drop duplicate LM75 compatible devices
523d816267ed dt-bindings: trivial-devices: Deprecate "ad,ad7414"
01015bf05f56 dt-bindings: trivial-devices: Drop incorrect and duplicate at24 compatibles
744ac8722848 dt-bindings: wakeup-source: update reference to m8921-keypad.yaml
2785c93c54d3 dt-bindings: interrupt-controller: qcom-pdc: document support for SA8255p
a35df54e2740 dt-bindings: Fix various typos
907b2a96f5d6 Merge branch 'for-6.12/elan' into for-linus
73e23ce2eb91 dt-bindings: PCI: imx6q-pcie: Add reg-name "dbi2" and "atu" for i.MX8M PCIe Endpoint
3181557bfb35 dt-bindings: PCI: altera: msi: Convert to YAML
a5d323627372 Merge branches 'fixes', 'arm/smmu', 'intel/vt-d', 'amd/amd-vi' and 'core' into next
ffb2958667ec dt-bindings: crypto: qcom,prng: document support for SA8255p
ab8ac375cbeb Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
1b83609678bb ARM: dts: ep93xx: Add EDB9302 DT
f302e2e1b477 ARM: dts: ep93xx: add ts7250 board
1e9c658963df ARM: dts: add Cirrus EP93XX SoC .dtsi
3c459eb41b14 ASoC: dt-bindings: ep93xx: Document Audio Port support
f148e83fbc9e ASoC: dt-bindings: ep93xx: Document DMA support
d2a933bf379e dt-bindings: input: Add Cirrus EP93xx keypad
b88ef70bb269 dt-bindings: ata: Add Cirrus EP93xx
d8f9a8112b7a dt-bindings: mtd: Add ts7200 nand-controller
cf88d7b544a9 dt-bindings: net: Add Cirrus EP93xx
69f5a3e77e61 dt-bindings: spi: Add Cirrus EP93xx
71af244dd2ee dt-bindings: pwm: Add Cirrus EP93xx
c3098375ef8a dt-bindings: dma: Add Cirrus EP93xx
58e8ebd25512 dt-bindings: soc: Add Cirrus EP93xx
f3621332088e Merge tag 'sunxi-dt-for-6.12-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
83b40a4f79dd dt-bindings: arm-smmu: Add compatible for QCS8300 SoC
8e67b38290b8 spi: Merge up fixes
5918c35b30a5 arm64: dts: ti: k3-am625-beagleplay: Add bootloader-backdoor-gpios to cc1352p7
8cbb766f7bec dt-bindings: net: ti,cc1352p7: Add bootloader-backdoor-gpios
b3de46f4359c dt-bindings: net: add Microchip's LAN865X 10BASE-T1S MACPHY
80e8cd87e3d4 dt-bindings: rtc: Drop non-trivial duplicate compatibles
b5686c6a1df1 dt-bindings: vendor-prefixes: Add DFRobot.
7f9e17cb47c0 dt-bindings: rtc: Add support for SD2405AL.
e644439c5946 dt-bindings: rtc: sprd,sc2731-rtc: convert to YAML
381b11908221 Merge branches 'pm-sleep', 'pm-opp' and 'pm-tools'
3cc1af326837 ASoC: dt-bindings: microchip,sama7g5-spdifrx: Add common DAI reference
86e87e065dd4 ASoC: dt-bindings: renesas,rsnd: add post-init-providers property
ad505259b552 Merge tag 'v6.12-rockchip-drivers-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers
5729a2e63be8 arm64: dts: allwinner: h5: NanoPi NEO Plus2: Use regulators for pio
c8517e7610b1 Merge tag 'arm-soc/for-6.12/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt
72b4d342087c Merge tag 'v6.11-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
4ddb72237975 Merge tag 'aspeed-6.12-devicetree' of https://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into soc/dt
d249965a2300 Merge tag 'v6.12-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
059ef8a3f43b Merge tag 'v6.12-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
ee71693d8832 Merge tag 'arm-soc/for-6.12/devicetree' of https://github.com/Broadcom/stblinux into soc/dt
432c3b3e6f2b Merge tag 'dt-cleanup-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
47d6295b835c Merge tag 'dt64-cleanup-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
14ebf16b855f Merge v6.11-rc7 into drm-next
d5bacb2f969f net: amlogic,meson-dwmac: Fix "amlogic,tx-delay-ns" schema
395197237476 dt-bindings: bluetooth: bring the HW description closer to reality for wcn6855
747945495869 dt-bindings: net: bluetooth: Add support for Amlogic Bluetooth
93ab94ed1bf0 Merge branch 'linus' into timers/core
910513aa3177 dt-bindings: watchdog: renesas,wdt: Document RZ/V2H(P) SoC
92b03f0021df dt-bindings: clock, reset: fix top-comment indentation rk3576 headers
5b98ed9562f1 dt-bindings: i2c: i2c-sprd: convert to YAML
1f4fbcafd136 dt-bindings: i2c: add support for tsd,mule-i2c-mux
f4e58292dcb0 dt-bindings: i2c: i2c-rk3x: Add rk3576 compatible
e6c017d8dd31 dt-bindings: i2c: aspeed: drop redundant multi-master
0a9ee565d63f dt-bindings: i2c: qcom,i2c-cci: add missing clocks constraint in if:then:
0af874d44f97 dt-bindings: i2c: nvidia,tegra20-i2c: define power-domains top-level
a72f3daa0247 dt-bindings: i2c: nvidia,tegra20-i2c: restrict also clocks in if:then:
fdd8013bc0f0 dt-bindings: i2c: nvidia,tegra20-i2c: combine same if:then: clauses
0951a6a78628 dt-bindings: i2c: renesas,riic: Document the R9A08G045 support
f7b428f8a98b arm64: dts: mediatek: add audio support for mt8365-evk
0de9f0608b09 arm64: dts: mediatek: add afe support for mt8365 SoC
189b3b938063 arm64: dts: mediatek: mt8186-corsola: Disable DPI display interface
610ac8574c47 arm64: dts: mediatek: mt8186: Add svs node
52a2cd68ab8b arm64: dts: mediatek: mt8186: Add power domain for DPI
adae6ff21479 arm64: dts: mediatek: mt8195: Correct clock order for dp_intf*
1eae66ef2c13 arm64: dts: mt8183: add dpi node to mt8183
bb488fb2d610 dt-bindings: PCI: imx6q-pcie: Add i.MX8Q PCIe compatible string
56142e434ebc dt-bindings: mtd: ti, gpmc-nand: support partitions node
9e3d1b7a9019 Merge 6.11-rc7 into usb-next
34abf6396b8f Merge 6.11-rc7 into char-misc-next
963af65c3fea Merge tag 'extcon-next-for-6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next
98410ac4cf8c Merge tag 'iio-for-6.12b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
0d8d83e8b014 arm64: dts: allwinner: h5: NanoPi Neo Plus2: Fix regulators
1a2dbb3559e8 dt-bindings: iio: adc: Add AXP717 compatible
d2bbf82908dc Merge tag 'drm-msm-next-2024-09-02' of https://gitlab.freedesktop.org/drm/msm into drm-next
9ad8e5cea91e regulator: Add AXP717 boost support
6364a3039067 dt-bindings: mfd: x-powers,axp152: add boost regulator
4145a08dfb6e Merge tag 'opp-updates-6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/vireshk/pm
0756dd3e01a1 Merge tag 'icc-6.12-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
48ef55ed5e6b dt-bindings: timer: rockchip: Add rk3576 compatible
2cb35bc12d6d dt-bindings: arm-smmu: document the support on SA8255p
d98dc8c45271 dt-bindings/perf: Add Arm NI-700 PMU
960964f50686 Merge tag 'mediatek-drm-next-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
f7cbf097108a dt-bindings: input: convert rotary-encoder to yaml
fd25de5d1fff Merge branch 'ib/6.11-rc6-matrix-keypad-spitz' into next
72112d96b44c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
4acb2e47c700 arm64: dts: rockchip: add CAN0 and CAN1 interfaces to mecsbc board
e8435e929308 arm64: dts: rockchip: add CAN-FD controller nodes to rk3568
48f453f9b472 Merge tag 'sunxi-dt-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
579d781f1dcf Merge branch 'clk-imx-old' into clk-imx
a633f713e6f2 dt-bindings: incomplete-devices: And another batch of compatibles
487b883b3423 arm64: dts: nuvoton: ma35d1: Add uart pinctrl settings
e023c440d2ee arm64: dts: nuvoton: ma35d1: Add pinctrl and gpio nodes
5de59ba458ce arm64: dts: nuvoton: Add syscon to the system-management node
2e77fa477505 dt-bindings: spi: nxp-fspi: add imx8ulp support
5b74d0869109 Merge tag 'hwmon-for-v6.11-rc7' into review-hans
57ee35a089ed Merge tag 'amlogic-drivers-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/drivers
a4dabd3a86de ARM: dts: Fix undocumented LM75 compatible nodes
8a2241529db9 Merge tag 'amlogic-arm64-dt-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
ec88102448f1 Merge tag 'qcom-drivers-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
b087d2a961fa Merge tag 'at91-soc-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/drivers
b701b248016f Merge tag 'reset-for-v6.12' of git://git.pengutronix.de/pza/linux into soc/drivers
5c8e7e15f2dc Merge tag 'linux-can-next-for-6.12-20240904-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
f76efea5cd25 dt-bindings: lcdif: Document the dmas/dma-names properties
ca3b9a570344 dt-bindings: watchdog: nxp,lpc1850-wdt: Convert bindings to dtschema
8229ddcc6d9e dt-bindings: watchdog: convert ziirave-wdt.txt to yaml
3f86481d15f1 dt-bindings: input: qcom,pm8xxx-vib: Document PM6150 compatible
179d87d6848c Merge tag 'amlogic-arm-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
c0d1571f04dd arm64: dts: toshiba: Fix pl011 and pl022 clocks
1944d8ee1a39 Merge tag 'qcom-arm64-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
bcb60c8ee23c Merge tag 'qcom-arm32-for-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
b2b82bc26074 Merge tag 'stm32-dt-for-v6.12-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
0c47b7c83c1d Merge tag 'omap-for-v6.12/dt-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/dt
ccb4133b1a49 Merge tag 'imx-dt64-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
c731a93bca99 Merge tag 'imx-dt-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
dabe766cd633 Merge tag 'imx-bindings-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
14d822ea06ac Merge tag 'riscv-sophgo-dt-for-6.12' of https://github.com/sophgo/linux into soc/dt
1623bda6b8fc Merge tag 'ti-k3-dt-for-v6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
0391ecfbd8b0 dt-bindings: mmc: Add support for rk3576 eMMC
9fd2838204a7 Merge tag 'renesas-dts-for-v6.12-tag2' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
71c03a01d0d1 ARM: dts: stm32: Use SAI to generate bit and frame clock on STM32MP15xx DHCOM PDK2
ac455dc60d5f ARM: dts: stm32: Switch bitclock/frame-master to flag on STM32MP15xx DHCOM PDK2
8d5ba16e3d71 ARM: dts: stm32: Sort properties in audio endpoints on STM32MP15xx DHCOM PDK2
457129448b09 ARM: dts: stm32: Add MECIO1 and MECT1S board variants
62adb3b41c66 dt-bindings: arm: stm32: Add compatible strings for Protonic boards
c9b3356bcc2f ARM: dts: stm32: stm32mp151a-prtt1l: Fix QSPI configuration
1173bb473faa ARM: dts: stm32: Describe PHY LEDs in DH STM32MP13xx DHCOR DHSBC board DT
be0ef5915493 ARM: dts: stm32: Add missing gpio options for sdmmc2_d47_pins_d
d8f8cce93bea ARM: dts: stm32: Add ethernet MAC nvmem cells to DH STM32MP13xx DHCOR DHSBC board
5a1f8832fcb1 ARM: dts: stm32: Disable PHY clock output on DH STM32MP13xx DHCOR DHSBC board
216e88a00530 ARM: dts: stm32: Keep MDIO bus in AF across suspend DH STM32MP13xx DHCOR DHSBC board
5f96712c6f69 dt-bindings: pwm: renesas,tpu: Add r8a779h0 support
d179feacacfe dt-bindings: pwm: renesas,pwm-rcar: Add r8a779h0 support
81923003e3a9 arm64: dts: amlogic: gxlx-s905l-p271: drop saradc gxlx compatible
92b978ba406b Merge tag 'wireless-next-2024-09-04' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
56446bfd3157 arm64: dts: qcom: msm8939: revert use of APCS mbox for RPM
13350f1ba02d arm64: dts: rockchip: remove duplicate nodes from dts for ROCK 4SE
7d294942f2d3 arm64: dts: rockchip: Add GameForce Ace
60163624a565 dt-bindings: arm: rockchip: Add GameForce Ace
1c22de7985e3 arm64: dts: rockchip: rk3588s fix sdio pins to pull up
30612c038ca1 dt-bindings: apple,aic: Document A7-A11 compatibles
486e7fcb863f arm64: dts: rockchip: Add RGA2 support to rk3588
0ad8dc478093 arm64: dts: rockchip: Add missing tshut props to tsadc on quartz64-b
7ba62d8b4cb0 arm64: dts: rockchip: Add Hardkernel ODROID-M2
a40a4e8e4f1c dt-bindings: arm: rockchip: Add Hardkernel ODROID-M2
9223e9d7ea36 arm64: dts: rockchip: drop hp-pin-name property from audio card on nanopc-t6
e1e615c567dc dt-bindings: extcon: convert extcon-usb-gpio.txt to yaml format
7f773959f1ec dt-bindings: extcon: ptn5150: add child node port
bde640bf7cf1 dt-bindings: PCI: altera: Convert to YAML
db918fcdf3f5 dt-bindings: opp: operating-points-v2-ti-cpu: Update maintainers
70f8793837ff dt-bindings: PCI: qcom,pcie-sc7280: Update bindings adding eight interrupts
d770081064fc dt-bindings: perf: arm-cmn: Add CMN S3
16c898a31879 dt-bindings: PCI: layerscape-pci: Change property 'fsl,pcie-scfg' type
bc1fb870606a dt-bindings: PCI: layerscape-pci: Add deprecated property 'num-viewport'
cce4c0d03ab7 arm64: dts: allwinner: a64: Add GPU thermal trips to the SoC dtsi
5883db2317e5 arm64: dts: allwinner: h700: Add charger for Anbernic RG35XX
b625da91b609 dt-bindings: PCI: layerscape-pci: Replace fsl,lx2160a-pcie with fsl,lx2160ar2-pcie
0e2df6bce1f0 dt-bindings: PCI: socionext,uniphier-pcie-ep: Add top-level constraints
e86828421765 dt-bindings: PCI: renesas,pci-rcar-gen2: Add top-level constraints
4863016c8f0a dt-bindings: PCI: hisilicon,kirin-pcie: Add top-level constraints
9aa816d2f16f dt-bindings: PCI: brcm,stb-pcie: Add 7712 SoC description
6e546db437a3 dt-bindings: PCI: brcm,stb-pcie: Use maxItems for reset controllers
a01a87808edc dt-bindings: PCI: brcm,stb-pcie: Change brcmstb maintainer and cleanup
63ba513825e0 arm64: dts: imx: rename gpio hog as <gpio name>-hog
02fbdda758cf arm64: dts: imx8mp-var-som-symphony: Add Variscite Symphony board and VAR-SOM-MX8MP SoM
1f1d889cedc5 arm64: dts: imx8mm-var-som: drop unused top-level compatible
d8932a91c6a2 arm64: dts: ls1088ardb: add new RTC PCF2131 support
f6f10594a16b arm64: dts: colibri-imx8x: Cleanup comments
019dfb9bb53e arm64: dts: colibri-imx8x: Add 50mhz clock for eth
4c8be2b8bbf0 arm64: dts: colibri-imx8x: Add adma_pwm
7b6331c049fb arm64: dts: colibri-imx8x: Add vpu support
84555c13a1ce arm64: dts: colibri-imx8x: Add USB3803 HUB
f38e9d1358ad arm64: dts: colibri-imx8x: Add PMIC thermal zone
065f440c7da7 arm64: dts: colibri-imx8x: Add sound card
7940a0ba62f2 arm64: dts: colibri-imx8x: Add fxl6408 gpio expander
8c5ea97c03a2 arm64: dts: colibri-imx8x: Add analog inputs
6f1da566c293 arm64: dts: colibri-imx8x: Add usb support
1311b41e329c arm64: dts: imx8qm-mek: add usb 3.0 and related type C nodes
1fb4c58403f1 arm64: dts: imx8qm-mek: add i2c in mipi[0,1] subsystem
971db378a7c0 arm64: dts: imx8qm-mek: add pwm and i2c in lvds subsystem
9d12eacd1bc1 arm64: dts: imx8qm-mek: add cm4 remote-proc and related memory region
6d35111a2d75 arm64: dts: imx8qm: add mipi subsystem
3a7adb0d7a99 arm64: dts: imx8: add basic mipi subsystem
3b816c11a492 arm64: dts: imx8qm: add lvds subsystem
d94093a747f7 arm64: dts: imx8: add basic lvds0 and lvds1 subsystem
27361f0220a7 arm64: dts: imx95: Add NETCMIX block control support
b565c04facdd arm64: dts: freescale: rename gw7905 to gw75xx
aaf45e470cf4 arm64: dts: imx93-11x11-evk: Add PWM backlight for "LVDS" connector
bf23c13c67bb arm64: dts: imx8mp-phyboard-pollux-rdk: Add support for PCIe
39cdd6174870 arm64: dts: imx8mp-evk: Add native HDMI output
ac60e279225e arm64: dts: imx8m: update spdif sound card node properties
31c4dd8188d4 arm64: dts: imx8mp-beacon: Enable DW HDMI Bridge
e9a6930bc0a2 arm64: dts: imx8mm-beacon-kit: add DVDD-supply and DOVDD-supply
9eeec9d9d8d4 arm64: dts: s32v234: remove fallback compatible string arm,cortex-a9-gic
f58560a5ccc7 arm64: dts: fsl-ls1088a-ten64: change to low case hex value
c3f58fa4417b arm64: dts: imx8mp-venice: add vddl and vana for sensor@10
309e50af8372 arm64: dts: fsl-lx2160a-tqmlx2160a: change "vcc" to "vdd" for hub*
f1f7e3f2b0f2 arm64: dts: imx8mm-venice-gw7902(3): add #address-cells for gsc@20
771ce3cd2443 arm64: dts: fsl-ls1028: add missed supply for wm8904
41ef8443afe7 arm64: dts: layerscape: rename mdio-mux-emi to mdio-mux@<addr>
f6a7840b1f26 arm64: dts: fsl-ls1012a-frdm: move clock-sc16is7xx under root node
ea09b5324543 arm64: dts: fsl-ls1043a: move "fsl,ls1043a-qdma" ahead "fsl,ls1021a-qdma"
65b7b459bde1 arm64: dts: imx8-ss-img: remove undocument slot for jpeg
0b036c49a6fd arm64: dts: freescale: imx93-tqma9352: set SION for cmd and data pad of USDHC
452e82fad6cf arm64: dts: freescale: imx93-tqma9352-mba93xxca: add GPIO line names
025c26c9f770 arm64: dts: freescale: imx93-tqma9352-mba93xxca: Add ethernet aliases
54d5725ed166 arm64: dts: freescale: imx93-tqma9352-mba93xxca: add missing pad configurations
8e7aadbef289 arm64: dts: freescale: imx93-tqma9352-mba93xxca: improve pad configuration
c079f6aa2067 arm64: dts: freescale: imx93-tqma9352-mba93xxca: add RTC / temp sensor IRQ
c1214c1c3043 arm64: dts: freescale: imx93-tqma9352-mba93xxla: add GPIO line names
4fe3aefa703b arm64: dts: freescale: imx93-tqma9352-mba93xxla: Add ethernet aliases
78a7347d8fac arm64: dts: freescale: imx93-tqma9352-mba93xxla: add missing pad configurations
58d39e8b2559 arm64: dts: freescale: imx93-tqma9352-mba93xxla: add irq for temp sensor
c48745e448e4 arm64: dts: freescale: imx93-tqma9352-mba93xxla: enable LPSPI6 interface
71cb60986ba9 arm64: dts: freescale: imx93-tqma9352-mba93xxla: improve pad configuration
90fc791ccb30 arm64: dts: freescale: imx93-tqma9352: add eMMC regulators
c34e9494ac56 arm64: dts: freescale: imx93-tqma9352: Add PMIC node
34236a616de0 arm64: dts: imx8mm: Update Data Modul i.MX8M Mini eDM SBC DT to rev.A01
919a7882215e arm64: dts: imx8mp: Enable HDMI to Data Modul i.MX8M Plus eDM SBC
dd5d3af55eea arm64: dts: imx8mp: Add DT nodes for the two ISPs
7ce07ca6a6e2 arm64: dts: imx8mm-phygate-tauri-l: add rtc aux-voltage-chargeable
38852ff7feee arm64: dts: imx8mm-phyboard-polis: add rtc aux-voltage-chargeable
52407e4bff58 arm64: dts: imx8mp-phyboard-pollux: add rtc aux-voltage-chargeable
e27dd8e31a78 arm64: dts: imx8mp-phyboard-pollux: Add usb3_phy1 regulator reference
c58a1b82b321 arm64: dts: imx8mp-phyboard-pollux: Add VCC_5V_SW regulator
1bfaaded0f3d arm64: dts: imx8mp-phyboard-pollux: Assign regulator to EEPROM node
2639411b9ed8 arm64: dts: imx8mp-phyboard-pollux: Add SD-Card vqmmc supply
d3e0b293f0f7 arm64: dts: imx8mp-phycore: Assign regulator to EEPROM node
dce2717b5328 arm64: dts: imx8mp-phycore: Add VDD_IO regulator
a9118809a792 arm64: dts: imx8mp: Clarify csis clock frequency
028cd2f7876e arm64: dts: Add support for Kontron i.MX93 OSM-S SoM and BL carrier board
6270af0fcbe1 dt-bindings: can: rockchip_canfd: add rockchip CAN-FD controller
4d894206f98f ARM: dts: rockchip: Add pwm node for RV1126
9b70bb24a538 ARM: dts: rockchip: Add i2s0 node for RV1126
65581a9ca07d ARM: dts: rockchip: Add i2c3 node for RV1126
d8d71fb477f7 Fixes for the audio setup on the rk3588-nanopc-t6
7e4eb96561e4 dt-bindings: arm: rockchip: Add rk3576 compatible string to pmu.yaml
9e6e88e5cca4 dt-bindings: power: supply: axp20x: Add AXP717 compatible
10ceb3e9dbd9 dt-bindings: power: supply: axp20x: Add AXP717 compatible
d0cd6161ff69 dt-bindings: PCI: rcar-gen4-pci-ep: Add R-Car V4M compatible
a8400f74f5e6 dt-bindings: PCI: rcar-gen4-pci-host: Add R-Car V4M compatible
a3cf6f0180d0 dt-bindings: iio: aw96103: Add bindings for aw96103/aw96105 sensor
de9be6449a88 dt-bindings: net: wireless: convert marvel-8xxx.txt to yaml format
941c9114f73d dt-bindings: iio: adc: sophgo,cv1800b-saradc: Add Sophgo CV1800B SARADC
51b4b73b97ce dt-bindings: iio: magnetometer: Add ak09118
610acebbcb49 dt-bindings: mfd: mediatek: Add codec property for MT6357 PMIC
7f5d05b8d216 ASoC: dt-bindings: mediatek,mt8365-mt6357: Add audio sound card document
4e4b33f3b202 ASoC: dt-bindings: mediatek,mt8365-afe: Add audio afe document
4212c9b345b1 spi: dt-bindings: Add rockchip,rk3576-spi compatible
3770a63d214b dt-bindings: PCI: mediatek-gen3: Add support for Airoha EN7581
345c74fb75d4 dt-bindings: mmc: sdhci-atmel: Convert to json schema
dd57e9643217 dt-bindings: mmc: Add support for rk3576 dw-mshc
f633f7d01490 ASoC: dt-bindings: realtek,rt5616: Document audio graph port
5e8dfcc2607f ASoC: dt-bindings: realtek,rt5616: document mclk clock
833155588bdd dt-bindings: HID: i2c-hid: elan: Introduce Elan ekth6a12nay
cf29093ff39e Merge tag 'v6.12-rockchip-dts32-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
640ae1e1dacf Merge tag 'v6.12-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
0871b431c0e4 Merge tag 'at91-dt-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
51c6ba4d40f6 Merge tag 'tegra-for-6.12-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
44173085d014 Merge tag 'tegra-for-6.12-arm-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
47cde27f81ac Merge tag 'tegra-for-6.12-dt-bindings' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
5241ad9f26c3 Merge tag 'juno-update-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
5fb5ac3480bb Merge tag 'samsung-dt64-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
f1e89840bc1e Merge tag 'renesas-dts-for-v6.12-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
7ed51efc6e0d Merge tag 'renesas-dt-bindings-for-v6.12-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
ea01532a3ae6 Merge tag 'thead-dt-for-v6.12' of https://github.com/pdp7/linux into soc/dt
dd11025ff7a3 dt-bindings: nvmem: sfp: add ref to nvmem-deprecated-cells.yaml
458f61f5313b dt-bindings: nvmem: st,stm32-romem: add missing "unevaluatedProperties" on child nodes
fcb640444b5c dt-bindings: nvmem: convert U-Boot env to a layout
5df93fc0d53b dt-bindings: nvmem: imx-ocotp: support i.MX95
c42f39cedeec dt-bindings: misc: qcom,fastrpc: document new domain ID
1d64c34cb9f3 dt-bindings: misc: qcom,fastrpc: increase the max number of iommus
17980f57edec Merge tag 'at24-updates-for-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
d2e3967b0afa Merge tag 'iio-for-6.12a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-testing
9aa8c1a7577d dt-bindings: pinctrl: qcom: add missing type to GPIO hogs
b5944604b426 dt-bindings: arm: fsl: Add Variscite Symphony board and VAR-SOM-MX8MP SoM
7af9720cb0b5 ARM: dts: imx28-lwe: Remove saif[01] definitions
f9f7e741094a ARM: dts: imx28-lwe: Reduce maximal SPI frequency
a65e6a67aa59 ARM: dts: imx28-lwe: Fix partitions definitions
b98ec3758140 ARM: dts: imx6qdl: align pin config nodes with bindings
b7fc85edae4f ARM: dts: imx6sl: align pin config nodes with bindings
95e32ad3bf7b ARM: dts: imx6ul: align pin config nodes with bindings
7056217fdf07 ARM: dts: imx6ul-tx6ul: drop empty pinctrl placeholder
f08b3057394b ARM: dts: imx28-tx28: Fix the fsl,saif-master usage
ff2205db20d0 ARM: dts: imx6ull-seeed-npi: fix fsl,pins property in tscgrp pinctrl
3b7df425351d ARM: dts: imx6ul-geam: fix fsl,pins property in tscgrp pinctrl
894051e2803e ARM: dts: imx23/8: Rename apbh and apbx nodes
50012176de18 arm64: dts: renesas: r8a779h0: Add family fallback for CSISP IP
0a83fb9c2181 arm64: dts: renesas: r8a779a0: Add family fallback for CSISP IP
ff5ab2727977 arm64: dts: renesas: r8a779g0: Add family fallback for CSISP IP
379c31adee9a arm64: dts: renesas: r8a779h0: Add family fallback for VIN IP
99cddc679b99 arm64: dts: renesas: r8a779a0: Add family fallback for VIN IP
6ffc04da6439 arm64: dts: renesas: r8a779g0: Add family fallback for VIN IP
6c01d58ad2de dt-bindings: phy: mxs-usb-phy: add nxp,sim property
9f3a02e75bbe Merge tag 'soc_fsl-6.12-2' of https://github.com/chleroy/linux into soc/drivers
307077e22040 dt-bindings: arm: fsl: drop usage of VAR-SOM-MX8MM SoM compatible alone
cc9786586362 dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) QMC controller
7c415ee200d4 dt-bindings: soc: fsl: cpm_qe: Add QUICC Engine (QE) TSA controller
17ef302ceb8b Merge 6.11-rc6 into usb-next
1cf355a6c782 dt-bindings: thermal: tsens: document support on SA8255p
235ef0119c74 dt-bindings: thermal: amlogic,thermal: add optional power-domains
b1de4f2c7d83 dt-bindings: gpio: simplify GPIO hog nodes schema
783de5612c1b dt-bindings: gpio: fcs,fxl6408: add missing type to GPIO hogs
0d6a4489faf9 Merge tag 'scmi-updates-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
e03afc0f6d76 Revert "dt-bindings: reset: mobileye,eyeq5-reset: add bindings"
961a55253a3d dt-bindings: reset: Add Amlogic T7 reset controller
f2714b5112f8 Merge tag 'v6.12-rockchip-drivers-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers
419b9571a065 Merge tag 'memory-controller-drv-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
50b39597079b Merge tag 'samsung-drivers-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/drivers
64b399907431 dt-bindings: reset: socionext,uniphier-glue-reset: add top-level constraints
97fd537d4265 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable watchdog
05e922593f35 arm64: dts: renesas: r9a09g057h44-rzv2h-evk: Enable OSTM, I2C, and SDHI
a7c0469954d9 arm64: dts: renesas: r9a09g057: Add WDT0-WDT3 nodes
04efe7a61e31 arm64: dts: renesas: r9a09g057: Add SDHI0-SDHI2 nodes
081c7ebd5117 arm64: dts: renesas: r9a09g057: Add RIIC0-RIIC8 nodes
0f24f2591741 arm64: dts: renesas: r9a09g057: Add OSTM0-OSTM7 nodes
cf3039921ea4 arm64: dts: renesas: Add initial DTS for RZ/V2H EVK board
e84827b572d2 arm64: dts: renesas: Add initial SoC DTSI for RZ/V2H(P) SoC
46af463768ab Merge tag 'renesas-r9a09g057-dt-binding-defs-tag' into renesas-dts-for-v6.12
a0d20c602658 dt-bindings: soc: renesas: Document RZ/V2H EVK board
b780366cde3e dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
637bf48145b8 arm64: dts: amlogic: add clock and clock-names to sound cards
dfdada015d23 arm64: dts: amlogic: c3: fix dtbcheck warning
bf56bb59af0a dt-bindings: riscv: Add Sipeed LicheeRV Nano board compatibles
53932f7ee453 dt-bindings: interrupt-controller: Add SOPHGO SG2002 plic
c3ec98a4485c riscv: dts: sophgo: Add mcu device for Milk-V Pioneer
3b3dbd4768fb riscv: sophgo: dts: add gpio controllers for SG2042 SoC
06ca7dca8adb riscv: sophgo: dts: add mmc controllers for SG2042 SoC
48c8c6dff3b9 riscv: dts: sophgo: Add i2c device support for sg2042
d3a429542f6b riscv: dts: sophgo: Use common "interrupt-parent" for all peripherals for sg2042
e2e29a4a0e7f riscv: dts: sophgo: Add sdhci0 configuration for Huashan Pi
82cff8630279 riscv: dts: sophgo: cv18xx: add DMA controller
8f94b86f8790 dt-bindings: arm: fsl: rename gw7905 to gw75xx
803d55957a25 ARM: dts: imx6qdl-mba6b: remove doubled entry for I2C1 pinmux
fcf1c7a1ef2b ARM: dts: imx6qdl-mba6: improve compatible for LM75 temp sensor
0c087d4a4e82 ARM: dts: imx6qdl-tqma6: improve compatible for LM75 temp sensor
46d993ec69ba ARM: dts: imx6qdl-tqma6: move i2c3 pinmux to imx6qdl-tqma6b
ff06bcd556cb dt-bindings: display/msm: hdmi: add qcom,hdmi-tx-8998
755904f477bd dt-bindings: phy: add qcom,hdmi-phy-8998
663262924428 arm64: dts: ti: k3-j722s-evm: Enable Inter-Processor Communication
71c4b3ce37e2 arm64: dts: ti: k3-j722s-main: Add R5F and C7x remote processor nodes
c943d76b4c74 arm64: dts: ti: k3-am68-sk-som: Update Partition info for OSPI Flash
23b22e680c7d arm64: dts: ti: Add k3-am67a-beagley-ai
824be4a970d0 dt-bindings: arm: ti: Add BeagleY-AI
304200a901f9 arm64: dts: ti: iot2050: Declare Ethernet PHY leds
11de91263d22 arm64: dts: ti: k3-am65: Add ESM nodes
68c34567b630 arm64: dts: ti: k3-am64: Add more ESM interrupt sources
1409ab969e50 arm64: dts: ti: k3-am62a: Add ESM nodes
644613277dda arm64: dts: ti: k3-am62: Add comments to ESM nodes
bb0a98687d3a arm64: dts: ti: k3-am62p: Fix ESM interrupt sources
b354d57f1723 arm64: dts: ti: k3-am62p: Remove 'reserved' status for ESM
5358ca0f17da arm64: dts: ti: k3-j721s2-evm-gesi-exp-board: Rename gpio-hog node name
85f22eb39288 arm64: dts: ti: k3-am642-evm-nand: Rename pinctrl node and gpio-hog names
44217cc8b8b0 arm64: dts: ti: k3-am654-idk: Fix dtbs_check warning in ICSSG dmas
2b44202ca059 arm64: dts: ti: k3-j784s4: Include entire FSS region in ranges
7acf34029a08 arm64: dts: ti: k3-j721s2: Include entire FSS region in ranges
23579c03e163 arm64: dts: ti: k3-j721e: Include entire FSS region in ranges
0ad687bb7319 arm64: dts: ti: k3-am65: Include entire FSS region in ranges
5a4735e176cb arm64: dts: ti: k3-am64: add USB fallback compatible to J721E
9a1e740983be ARM: dts: imx7d-sdb: align pin config nodes with bindings
b3ed0a30471f ARM: dts: imx7: align pin config nodes with bindings
871e432449e9 ARM: dts: imx7d-zii-rmu2: fix Ethernet PHY pinctrl property
652ee8ca8ffa dt-bindings: PCI: qcom,pcie-sm8450: Add 'global' interrupt
aad6e6005277 dt-bindings: PCI: pci-ep: Document 'linux,pci-domain' property
27c07034be38 dt-bindings: PCI: pci-ep: Update Maintainers
1e7020ce7791 ARM: dts: imx6: update spdif sound card node properties
372f1ab45835 dt-bindings: PCI: ti,j721e-pci-host: Add ACSPCIE proxy control property
368cf85b7873 dt-bindings: PCI: xilinx-xdma: Add schemas for Xilinx QDMA PCIe Root Port Bridge
4a16d22b4f9e ARM: dts: imx28-apx4devkit: Fix the regulator description
ad81560ac0da dt-bindings: arm: fsl: Add Kontron i.MX93 OSM-S based boards
94f2fea1780f dt-bindings: arm: fsl: correct spelling of TQ-Systems
875f78a15f79 dt-bindings: arm: fsl: add fsl-ls2081a-rdb board
8ec656acd9b6 ARM: dts: microchip: sama7g5: Fix RTT clock
4c2a3ee5da6e dt-bindings: media: imx335: Add reset-gpios to the DT example
730d2c112f18 media: dt-bindings: Add OmniVision OG01A1B image sensor
11e5f399aaef arm64: dts: qcom: x1e80100: Fix PHY for DP2
c2c548665c81 arm64: dts: qcom: qcm6490-idp: Add SD Card node
1767f8e69eb1 arm64: dts: qcom: x1e80100: Add orientation-switch to all USB+DP QMP PHYs
bf98eed075c2 arm64: dts: qcom: Add X1E78100 ThinkPad T14s Gen 6
264a3a1d80d8 dt-bindings: arm: qcom: Add Lenovo ThinkPad T14s Gen 6
e74f70887a57 Revert "arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash"
5f2f4f723fa9 dt-bindings: input: touchscreen: Use generic node name
9b752876c658 dt-bindings: can: convert microchip,mcp251x.txt to yaml
b35b06606ab1 dt-bindings: can: renesas,rcar-canfd: Document R-Car V4M support
2ad2e27d9bfa arm64: zynqmp: Add PCIe phys property for ZCU102
be1802f54fbf dt-bindings: display: mediatek: dpi: Add power domains
c740729d5ed3 dt-bindings: crypto: fsl,sec-v4.0: add second register space for rtic
4661a66ce4a0 dt-bindings: mfd: syscon: Add ti,j784s4-acspcie-proxy-ctrl compatible
04ac19d3a2d7 arm64: dts: amlogic: add C3 AW419 board
615440deb796 arm64: dts: amlogic: add some device nodes for C3
d1005bc07604 dt-bindings: clock: fix C3 PLL input parameter
c7f8ca42588e dt-bindings: phy: renesas,usb2-phy: Document RZ/G3S phy bindings
dfc9d521463c Merge tag 'drm-misc-next-2024-08-29' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
f03a11244704 arm64: dts: rockchip: drop unsupported regulator-property from NanoPC-T6
d80f2679e7ef arm64: dts: rockchip: drop unsupported regulator property from NanoPC-T6
bb1d83d6d154 arm64: dts: rockchip: use correct fcs,suspend-voltage-selector on NanoPC-T6
dddb75f954f8 dt-bindings: hwmon: Convert ltc2978.txt to yaml
f1a84830dbd0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
01a92d05a6ef dt-bindings: phy: nuvoton,ma35-usb2-phy: add new bindings
1e1c98308274 dt-bindings: phy: socionext,uniphier: add top-level constraints
836a6d84f0a1 dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the X1E80100 QMP PCIe PHY Gen4 x4
0c7b878bae92 ASoC: dt-bindings: amlogic-sound-cards: document
19a573bd7c1b ARM: dts: rockchip: Do not describe unexisting DAC device on rv1108-elgin-r1
fb92f494c231 dt-bindings: dma: fsl,imx-dma: Document the DMA clocks
6fdcc9efa6d3 dt-bindings: dma: Add Loongson-1 APB DMA
92c15b9bd12f dt-bindings: dmaengine: zynqmp_dma: Add a new compatible string
a6ddb47a2098 arm64: tegra: Add thermal nodes to AGX Orin SKU8
15704765cd56 arm64: tegra: Move BPMP nodes to AGX Orin module
f33e5c87cd14 arm64: tegra: Move padctl supply nodes to AGX Orin module
ff4246e457b7 arm64: tegra: Move AGX Orin nodes to correct location
58527f4695e4 arm64: tegra: Combine IGX Orin board files
255e5d2971fb arm64: tegra: Combine AGX Orin board files
8552d4211195 arm64: tegra: Add common nodes to AGX Orin module
8bd8597a0a6d ARM: tegra: Wire up two front panel LEDs on TrimSlice
ff519b8ef76d arm64: tegra: Wire up WiFi on Jetson TX1 module
00adb43ae1dd arm64: tegra: Wire up Bluetooth on Jetson TX1 module
77abea29704d arm64: tegra: Wire up power sensors on Jetson TX1 DevKit
b38ce73e7e71 arm64: tegra: Add p3767 PCIe C4 EP details
f35343a75e68 arm64: tegra: Add Tegra234 PCIe C4 EP definition
5dd089a76f46 arm64: tegra: Add wp-gpio for P2597's external card slot
913b78e9ab29 arm64: tegra: Fix gpio for P2597 vmmc regulator
533aa13b4d7e dt-bindings: arm: tegra: Document Nyan, all revisions in kernel tree
1808af73af9c ARM: tegra: tf701t: Configure USB
df9991682d4b ARM: tegra: tf701t: Use dedicated backlight regulator
e89bd9aa0af9 ARM: tegra: tf701t: Re-group GPIO keys
6dc9e9e5ec10 ARM: tegra: tf701t: Bind WIFI SDIO and EMMC
d9276fbec90c ARM: tegra: tf701t: Complete sound bindings
7c9c57c6a480 ARM: tegra: tf701t: Adjust sensors nodes
1d7f378a77ab ARM: tegra: tf701t: Add Bluetooth node
b90a799f01f6 ARM: tegra: tf701t: Add HDMI bindings
5b25e43599f0 ARM: tegra: tf701t: Correct and complete PMIC and PMC bindings
e631002961fa ARM: tegra: tf701t: Bind VDE device
fc69477d24eb ARM: tegra: tf701t: Use unimomentary pinmux setup
0ab6a7932c8b arm64: dts: rockchip: add Mask Rom key on NanoPC-T6
1a52d6ab54e2 arm64: dts: rockchip: enable USB-C on NanoPC-T6
79642aca4c38 arm64: dts: rockchip: enable GPU on NanoPC-T6
b21c9096d8aa arm64: dts: rockchip: add IR-receiver to NanoPC-T6
7588da65fdf0 arm64: dts: rockchip: add SPI flash on NanoPC-T6
f4a834fbc8cd arm64: dts: rockchip: add NanoPC-T6 LTS
697963b1c223 arm64: dts: rockchip: move NanoPC-T6 parts to DTS
e8b52bdfe5a1 arm64: dts: rockchip: prepare NanoPC-T6 for LTS board
575cca90e500 dt-bindings: arm: rockchip: Add NanoPC-T6 LTS
fb1daa751de6 ASoC: dt-bindings: cirrus,cs4271: Convert to dtschema
3bb526265976 dt-bindings: trivial-devices: Document elgin,jg10309-01
1f18faa52af2 arm64: dts: renesas: r9a07g043u11-smarc: Enable DU
003b1cc9c454 arm64: dts: renesas: rzg2lc-smarc: Enable HDMI audio
f465663b62d4 arm64: dts: renesas: rzg2l-smarc: Enable HDMI audio
6f1c891c4923 dt-bindings: clock, reset: Add support for rk3576
4c39cdd85090 dt-bindings: clock: rockchip,rk3588-cru: drop unneeded assigned-clocks
77f0c68bc35e dt-bindings: clock: add RMII clock selection
fb6d4b8f11b7 dt-bindings: clock: add i.MX95 NETCMIX block control
48eb72503893 dt-bindings: input: pure gpio support for adp5588
c2886da1dbe0 dt-bindings: firmware: Add i.MX95 SCMI Extension protocol
5945a13e2126 dt-bindings: clock: rockchip: remove CLK_NR_CLKS and CLKPMU_NR_CLKS
3dc72c95197d ASoC: dt-bindings: Convert mxs-saif.txt to fsl,saif.yaml (imx28 saif)
4d516d34873a ASoC: dt-bindings: amlogic,gx-sound-card: document clocks property
d86dfc6fa6b3 ASoC: dt-bindings: amlogic,axg-sound-card: document clocks property
ea182e00a295 arm64: dts: ti: k3-am62a: Add E5010 JPEG Encoder
88ab1d7fc332 arm64: dts: ti: k3-j722s-evm: Add support for multiple CAN instances
3cfaf0650ba5 arm64: dts: ti: k3-j722s-evm: Describe main_uart5
c59d971fc757 arm64: dts: ti: k3-am62p5-sk: Remove CTS/RTS from wkup_uart0 pinctrl
8beebb0e9d09 arm64: dts: ti: k3-am69-sk: Change timer nodes status to reserved
538a1b5e8210 arm64: dts: ti: k3-j784s4-evm: Change timer nodes status to reserved
195e948fdf56 arm64: dts: ti: k3-am68-sk-som: Change timer nodes status to reserved
d2228e0d28dc arm64: dts: ti: k3-j721s2-som-p0: Change timer nodes status to reserved
a8756a4a303e arm64: dts: ti: k3-j721e-sk: Change timer nodes status to reserved
3969fd6f8143 arm64: dts: ti: k3-j721e-som-p0: Change timer nodes status to reserved
3cd0a686d510 arm64: dts: ti: k3-j7200-som-p0: Change timer nodes status to reserved
741915246a92 arm64: dts: ti: iot2050: Add overlays for M.2 used by firmware
4b4872feb66a arm64: dts: ti: iot2050: Disable lock-step for all iot2050 boards
dc07279d1bab arm64: dts: ti: k3-am69-sk: Switch MAIN R5F clusters to Split-mode
f627362129b5 arm64: dts: ti: k3-j784s4-evm: Switch MAIN R5F clusters to Split-mode
8174754e2777 arm64: dts: ti: k3-am68-sk-som: Switch MAIN R5F clusters to Split-mode
6233bc489871 arm64: dts: ti: k3-j721s2-som-p0: Switch MAIN R5F clusters to Split-mode
fca5e38e5beb arm64: dts: ti: k3-j721e-sk: Switch MAIN R5F clusters to Split-mode
3774bb9e8cb2 arm64: dts: ti: k3-j721e-som-p0: Switch MAIN R5F clusters to Split-mode
a66d77186b40 arm64: dts: ti: k3-j7200-som-p0: Switch MAIN R5F cluster to Split-mode
133554ec025d arm64: dts: ti: k3-am64*: Disable ethernet by default at SoC level
66a063eb12dc arm64: dts: ti: k3-j784s4-main: Align watchdog clocks
8a698e068513 arm64: dts: ti: k3-j721e-beagleboneai64: Fix reversed C6x carveout locations
87f69fcb34f4 arm64: dts: ti: k3-j721e-sk: Fix reversed C6x carveout locations
84933142c746 dt-bindings: clock: st,stm32mp1-rcc: add top-level constraints
2cec871cf0e5 dt-bindings: clock: cirrus,lochnagar: add top-level constraints
7a202168fd42 dt-bindings: clock: baikal,bt1-ccu-div: add top-level constraints
e1942d3a455b dt-bindings: display: panel: document BOE TV101WUM-LL2 DSI Display Panel
a1037126d228 arm64: dts: rockchip: disable display subsystem only for Radxa E25
0f12b8475909 arm64: dts: rockchip: enable PCIe on M.2 E key for Radxa ROCK 5A
26c8acdd8a05 arm64: dts: rockchip: remove unnecessary properties for Radxa ROCK 5A
5571896b4e6e arm64: dts: rockchip: add dts for LCKFB Taishan Pi RK3566
c118154d729d dt-bindings: arm: rockchip: Add LCKFB Taishan Pi RK3566
37c4b1b721c1 dt-bindings: vendor-prefixes: Add Shenzhen JLC Technology Group LCKFB
f811548e758b arm64: dts: rockchip: Add Hardkernel ODROID-M1S
262f03ff0de7 dt-bindings: arm: rockchip: Add Hardkernel ODROID-M1S
e7259a2c4a6f arm64: dts: rockchip: Correct vendor prefix for Hardkernel ODROID-M1
b96459471da3 dt-bindings: arm: rockchip: Correct vendor for Hardkernel ODROID-M1
f8d8485565e0 dt-bindings: dma: fsl-mxs-dma: Add compatible string "fsl,imx8qxp-dma-apbh"
e92f3a042104 arm64: dts: rockchip: Enable RK809 audio codec for Radxa ROCK 4C+
cefad227bef1 arm64: dts: rockchip: Add VPU121 support for RK3588
4088a0a8f2b1 arm64: dts: rockchip: Add VEPU121 to RK3588
2b4f54ff1c10 Merge tag 'tags/next-media-renesas-20240825' of git://git.kernel.org/pub/scm/linux/kernel/git/pinchartl/linux.git
0670259a5b48 ARM: dts: rockchip: Add vpu nodes for RK3128
8dd9fbe69d9d media: dt-bindings: rockchip-vpu: Add RK3588 VPU121
ffdb85e90b99 media: dt-bindings: rk3568-vepu: Add RK3588 VEPU121
d37df4ff1f86 dt-bindings: media: rockchip,vpu: Document RK3128 compatible
f815b2c771ff ARM: dts: imx7-mba7: improve compatible for LM75 temp sensor
2828805972bd ARM: dts: imx7-mba7: add iio-hwmon support
6118e9ca836b arm64: dts: mba8mx: Add Ethernet PHY IRQ support
c3afb05f919e arm64: dts: layerscape: remove unused num-viewport
f124bec51003 dt-bindings: net: dsa: microchip: Add KSZ8895/KSZ8864 switch support
33160d94827c dt-bindings: net: Add support for rk3576 dwmac
09ca1164bd52 dt-bindings: power: supply: axp20x-battery: Add monitored-battery
e61630b7ce41 dt-bindings: power: supply: axp20x: Add input-current-limit-microamp
eb8f117bd7b7 dt-bindings: hwmon: Add Sophgo SG2042 external hardware monitor support
7ac31d67de1b dt-bindings: hwmon: Add maxim max31790
1780f646640c arm64: tegra: Correct location of power-sensors for IGX Orin
40302c84e250 arm64: tegra: enable same UARTs for Orin NX/Nano
571ac9883e16 arm64: tegra: Add DMA properties for Tegra234 UARTA
1e62b4cbe532 Merge v6.11-rc5 into drm-next
8bfccae67ae2 dt-bindings: power: supply: sc27xx-fg: add low voltage alarm IRQ
5a803b998501 ARM: dts: aspeed: catalina: Update io expander line names
ccdacfed167b ARM: dts: aspeed: catalina: Add pdb cpld io expander
9fcf5dcb0038 dt-bindings: pse: tps23881: add reset-gpios
f5026a99cdf1 dt-bindings: input: touchscreen: convert ads7846.txt to yaml
680c3c61bba3 dt-bindings: soc: ti: pruss: Add documentation for PA_STATS support
0e4b82c23b4e arm64: dts: qcom: Add support for X1-based Surface Laptop 7 devices
e9cc1f78ccf5 arm64: dts: qcom: x1e80100: Add UART2
3b413f608cc1 arm64: dts: qcom: x1e80100-pmics: Add PMC8380C PWM
821294ca606d dt-bindings: arm: qcom: Add Surface Laptop 7 devices
8b0177e6026d Merge branch 'dt/linus' into dt/next
8160d7d6d952 dt-bindings: media: s5p-mfc: Remove s5p-mfc.txt binding
3cf45f597910 dt-bindings: mmc: renesas,sdhi: add top-level constraints
2cff83df147e dt-bindings: mmc: renesas,sdhi: Remove duplicate compatible and add clock checks
3c17599646cb dt-bindings: mmc: sdhci-of-dwcmhsc: Add Sophgo SG2042 support
1fc70c359444 dt-bindings: mmc: renesas,sdhi: Document RZ/V2H(P) support
c7910caf5fbd dt-bindings: mmc: nuvoton,ma35d1-sdhci: Document MA35D1 SDHCI controller
d2704d998d9e dt-bindings: display: renesas,rzg2l-du: Document RZ/G2UL DU bindings
cc10764efd6d Merge branch 'ib-sophgo-pintrl' into devel
5977e4de3444 dt-bindings: pinctrl: Add pinctrl for Sophgo CV1800 series SoC.
0f03ea82a3db Merge tag 'renesas-pinctrl-for-v6.12-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
572673ab5e4c Merge branch 'icc-sm8350' into icc-next
7ea2aa417811 Merge branch 'icc-misc' into icc-next
51be62a4d428 dt-bindings: interconnect: qcom: Do not require reg for sc8180x virt NoCs
cf1b1eda8ae5 dt-bindings: interconnect: qcom-bwmon: Document SA8775p bwmon compatibles
aeb13be6f7ec media: dt-bindings: qcom,sc7280-venus: Allow one IOMMU entry
3be8a2f72a45 arm64: dts: ti: k3-am642-evm: Silence schema warning
0c47c7cfad1d arm64: dts: ti: k3-am654-idk: Add Support for MCAN
090fde9349aa arm64: dts: ti: k3-am65: Add simple-mfd compatible to SerDes control nodes
1b1172800499 dt-bindings: soc: ti: am654-serdes-ctrl: Add simple-mfd to compatible items
a486ccd617ec arm64: dts: ti: am642-phyboard-electra: Add PRU-ICSSG nodes
4706c4c79e25 arm64: dts: ti: k3-am62: Enable CPU freq throttling on thermal alert
17ad44e108b8 arm64: dts: ti: k3-j722s: Add gpio-reserved-ranges for main_gpio1
664f709d5526 arm64: dts: ti: k3-am62p: Add gpio-reserved-ranges for main_gpio1
d7188138b16c arm64: dts: ti: k3-am68-sk-base-board: Add clklb pin mux for mmc1
4ea47ec07f5b arm64: dts: ti: k3-am642-tqma64xxl-mbax4xxl: add PRU Ethernet support
a47b53c95878 arm64: dts: ti: k3-j784s4-evm: Use 4 lanes for PCIe0 on EVM
67f9afc7d8f2 ARM: dts: microchip: sam9x60: Fix rtc/rtt clocks
29575ba64770 dt-bindings: pinctrl: Convert Atmel PIO3 pinctrl to json-schema
7fcc691a5f3c ARM: dts: microchip: sam9x60: Remove additional compatible string from GPIO node
3f7e6ac5daf6 ARM: dts: microchip: Remove additional compatible string from PIO3 pinctrl nodes
9fcd36a3ed2b ARM: dts: microchip: change to simple-mfd from simple-bus for PIO3 pinumux controller
8c0856186974 dt-bindings: interconnect: qcom: msm8953: Fix 'See also' in description
3fa2386623a6 dt-bindings: interconnect: qcom: msm8939: Fix example
9d43ef08bcb2 dt-bindings: interconnect: qcom,sm8350: drop DISP nodes
e154eeb6c809 dt-bindings: interconnect: qcom: Add Qualcomm MSM8937 NoC
bb46d236e4e3 dt-bindings: interconnect: qcom: Add Qualcomm MSM8976 NoC
ac751c5b79a9 dt-bindings: pinctrl: Add rk3576 pinctrl support
0636c7b0d923 dt-bindings: interconnect: qcom,rpmh: correct sm8150 camnoc
10ac8abeaefc dt-bindings: media: renesas,vin: Add binding for V4M
94f8ad2de3a5 dt-bindings: media: renesas,vin: Add Gen4 family fallback
a5dce60a3a5a arm64: dts: renesas: r9a07g043u: Add DU node
2552f429e1b3 arm64: dts: renesas: white-hawk-cpu-common: Enable PCIe Host ch0
2e2ff96497da arm64: dts: renesas: r8a779g0: Add PCIe Host and Endpoint nodes
b8a9195f73d1 arm64: dts: renesas: rzg3s-smarc-som: Enable I2C1 node
39431ef4f896 arm64: dts: renesas: rzg3s-smarc: Enable I2C0 node
b6b2d1cb160e arm64: dts: renesas: r9a08g045: Add I2C nodes
47be1637d37c arm64: dts: renesas: r9a07g043u: Add VSPD node
9378e71eb3f0 arm64: dts: renesas: r9a07g043u: Add FCPVD node
d660ea71df76 dt-bindings: clock: renesas,cpg-clocks: Add top-level constraints
855a5721891b arm64: dts: renesas: r9a07g044: Correct GICD and GICR sizes
cb5e39b2cf63 arm64: dts: renesas: r9a07g054: Correct GICD and GICR sizes
cdd0b9663be5 arm64: dts: renesas: r9a07g043u: Correct GICD and GICR sizes
cf32f3eafb2d arm64: dts: renesas: r9a08g045: Correct GICD and GICR sizes
8a79628acb10 arm64: dts: renesas: r9a07g0{43,44,54}: Move regulator-vbus device node
8dc0353bd88e arm64: dts: renesas: white-hawk-single: Wire-up Ethernet TSN
cd691f804afa arm64: dts: renesas: r8a779g0: R-Car Ethernet TSN support
bd556a384a8a dt-bindings: soc: rockchip: Add rk3576 syscon compatibles
d1db8cfd5618 dt-bindings: power: rockchip: Document RK3308 IO voltage domains
d521f2d8d58e arm64: dts: exynosautov920: add initial CMU clock nodes in ExynosAuto v920
d015d09f5428 Merge branch 'for-v6.12/clk-dt-bindings' into next/dt64
d254971c7bba dt-bindings: clock: add ExynosAuto v920 SoC CMU bindings
7de4bbc176fd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
ae4928db3a27 dt-bindings: pci: xilinx-nwl: Add phys property
040e5f6ebf1c dt-bindings: leds: Convert leds-lm3692x to YAML format
ff66803dd73c dt-bindings: usb: add layerscape super speed usb support
919df9322897 Documentation: msm-hsusb.txt: remove
680cd4ac2964 dt-bindings: usb: qcom,dwc3: Document X1E80100 MP controller
c73eff2ddeab arm64: dts: exynosautov9: Add dpum SysMMU
9588a9d029f9 Merge branch 'for-v6.12/clk-dt-bindings' into next/dt64
17229832fbd9 ARM: dts: aspeed: harma: Remove pca9546
849f6e23584a ARM: dts: aspeed: harma: Fix spi-gpio dtb_check warnings
ea688e2b7002 ARM: dts: aspeed: harma: Enable mctp controller
afdc502af76f ARM: dts: aspeed: harma: Add temperature device
2524b6b58f24 ARM: dts: aspeed: harma: Add fru device
a46d0a6e21b3 ARM: dts: aspeed: harma: Remove multi-host property
7898198338a0 ARM: dts: aspeed: harma: Add power monitor xdp710
6185f80995de ARM: dts: aspeed: harma: Add ina238
fd832425a89a ARM: dts: aspeed: harma: Add sgpio name
0b08d57d7a70 ARM: dts: aspeed: harma: Add VR devices
c8d041273cb4 ARM: dts: aspeed: harma: Revise hsc chip
16d2dd25d402 ARM: dts: aspeed-g6: Drop cells properties from ethernet nodes
18413c2322da ARM: dts: aspeed-g6: Use generic 'ethernet' for ftgmac100 nodes
bd70ebfaa1fb ARM: dts: aspeed: Clean up AST2500 pinctrl properties
74b8164eeba0 ARM: dts: aspeed: Remove undocumented XDMA nodes
48c9e406693c ARM: dts: aspeed: Specify required properties for sram node
9438b4144043 ARM: dts: aspeed: Specify correct generic compatible for CVIC
11d5f5244172 ARM: dts: aspeed: Fix coprocessor interrupt controller node name
96898f729e6c ARM: dts: aspeed: mtmitchell: Add LEDs
5cfa79f3245e ARM: dts: aspeed: mtmitchell: Enable i2c10 and i2c15
f27fbdb8f4ad ARM: dts: aspeed: mtmitchell: Add Riser cards
99863f6135df ARM: dts: aspeed: mtmitchell: Add I2C temperature sensor alias ports
a612bc9641af ARM: dts: aspeed: mtjade, mtmitchell: Add OCP temperature sensors
4ecc0f4e4ad0 ARM: dts: aspeed: catalina: add Meta Catalina BMC
8644157021fc dt-bindings: arm: aspeed: add Meta Catalina board
f975de3b10fd ARM: dts: aspeed: minerva: add host0-ready pin
9919d0e2d70c ARM: dts: aspeed: minerva: Add spi-gpio
2b496a8c5759 ARM: dts: aspeed: minerva: add ltc4287 device
4f44601e0e07 ARM: dts: aspeed: minerva: remove unused power device
63b9d371ba24 ARM: dts: aspeed: minerva: Switch the i2c bus number
c988f3708b1c ARM: dts: aspeed: minerva: revise sgpio line name
dffdbebf77ce ARM: dts: aspeed: minerva: add power monitor xdp710
2d416b005f27 ARM: dts: aspeed: minerva: add tmp75 sensor
b5ac04bc76f3 ARM: dts: aspeed: minerva: enable ehci0 for USB
705be70e6dbd ARM: dts: aspeed: minerva: add linename of two pins
e05df63727be ARM: dts: aspeed: minerva: Add adc sensors for fan board
8201afe60c49 ARM: dts: aspeed: minerva: Define the LEDs node name
74ef91ee0121 ARM: dts: aspeed: minerva: remove unused bus and device
2759a31832a1 ARM: dts: aspeed: minerva: enable mdio3
e2698860a43c ARM: dts: aspeed: minerva: change RTC reference
832cbf2c0936 ARM: dts: aspeed: minerva: add eeprom on i2c bus
0a7e6e1c1390 ARM: dts: aspeed: minerva: change aliases for uart
f60007c2c1d3 ARM: dts: aspeed: minerva: change the address of tmp75
abb41c2ebf98 dt-bindings: iio: st,stm32-adc: add top-level constraints
7fe3517c1d45 dt-bindings: remoteproc: k3-m4f: Add K3 AM64x SoCs
16edfa9d2dda arm64: dts: qcom: sm8150-mtp: drop incorrect amd,imageon
3861ed3a8e4f dt-bindings: memory-controllers: renesas,rpc-if: add top-level constraints
f82b9085b891 dt-bindings: net: socionext,uniphier-ave4: add top-level constraints
e8e314643a43 dt-bindings: net: renesas,etheravb: add top-level constraints
472b00aa8ffd dt-bindings: net: mediatek,net: add top-level constraints
8dde158d6b27 dt-bindings: net: mediatek,net: narrow interrupts per variants
0753b8670878 arm64: qcom: sa8775p: Add ADSP and CDSP0 fastrpc nodes
7e18ee7332cf arm64: dts: qcom: x1e80100: Add USB Multiport controller
d7de09502ade ASoC: dt-bindings: Convert tpa6130a2.txt to yaml
6588ef516273 dt-bindings: interrupt-controller: convert bcm2836-l1-intc to yaml
75dd4a840d4e dt-bindings: timer: convert bcm2835-system-timer bindings to YAML
6c16778ef9a7 ARM: dts: bcm-mobile: Split out nodes used by both BCM21664 and BCM23550
97f5d64e7b09 dt-bindings: arm: amlogic: meson-gx-ao-secure: support more SoCs
b9ef7a8f91ca arm64: dts: amlogic: a4: add ao secure node
381c18914d70 arm64: dts: amlogic: t7: add ao secure node
250302554ad1 arm64: dts: amlogic: c3: add ao secure node
c99ffdf6c32e arm64: dts: amlogic: s4: add ao secure node
24d056d49b03 arm64: dts: amlogic: add watchdog node for A4 SoCs
4c41b5648509 arm64: dts: amlogic: enable some device nodes for S4
69f753b6b780 arm64: dts: amlogic: a5: add power domain controller node
5dba4370f591 ASoC: dt-bindings: samsung,odroid: drop stale clocks
4f3821f38039 dt-bindings: power: Add support for RK3576 SoC
6f986f780006 arm64: dts: renesas: gray-hawk-single: Add CAN-FD support
3a60da1bca36 arm64: dts: renesas: r8a779h0: Add CAN-FD node
8f37e3243afd ARM: dts: aspeed: System1: Updates to BMC board
c1e326902e9d ARM: dts: aspeed: convert ASRock SPC621D8HM3 NVMEM content to layout syntax
a4070b88f4e5 ARM: dts: aspeed: Add IBM P11 Fuji BMC system
e8b742211944 ARM: dts: aspeed: Add IBM P11 Blueridge 4U BMC system
6682aebfd979 ARM: dts: aspeed: Add IBM P11 Blueridge BMC system
b802d8fc3fa6 ARM: dts: aspeed: Add IBM P11 FSI devices
8cd40537213c dt-bindings: arm: aspeed: add IBM P11 BMC boards
a4fc7371abcb ASoC: dt-bindings: serial-midi: reference serial-peripheral-props.yaml
3f951906a8ac dt-bindings: bluetooth: reference serial-peripheral-props.yaml
364baab32a05 dt-bindings: gnss: reference serial-peripheral-props.yaml
6bf86b41291d dt-bindings: bluetooth: move Bluetooth bindings to dedicated directory
00832d666d0f dt-bindings: serial: add common properties schema for UART children
86552913184c dt-bindings: serial: add missing "additionalProperties" on child nodes
50931a934b6b dt-bindings: arc: convert archs-pct.txt to yaml
639897659b2d dt-bindings: display: panel-simple-lvds-dual-ports: use unevaluatedProperties
89414912b68e dt-bindings: board: convert fsl-board.txt to yaml
3805783b992a dt-bindings: samsung: exynos-usi: add missing constraints
f65493e6d58f dt-bindings: input: Goodix SPI HID Touchscreen
aaa75b6d423b ASoC: Intel: Remove skylake driver
3aacdd9f21b4 dt-bindings: input: touchscreen: convert colibri-vf50-ts.txt to yaml
f27a100e7e73 dt-bindings: display: panel-simple: Add On Tat Industrial Company KD50G21-40NT-A1
e945d7d8ef9b dt-bindings: display: st7701: Add Anbernic RG28XX panel
d1e0c084618f dt-bindings: display: simple: Document support for Innolux G070ACE-LH3
c2e02875b500 dt-bindings: platform: Add Surface System Aggregator Module
b06f6e3a388e dt-bindings: serial: Allow embedded-controller as child node
8f1270c3b9a5 ASoC: dt-bindings: convert tlv320aic31xx.txt to yaml
59b0f3f71940 dt-binding: ptp: fsl,ptp: add pci1957,ee02 compatible string for fsl,enetc-ptp
26795f80b938 Merge tag 'ib-mfd-gpio-pwm-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
e1178c5a621f ARM: dts: microchip: sama5d29_curiosity: Add reg_5v to supply PMIC nodes
252881e0417b ARM: dts: microchip: at91-sama5d27_wlsom1: Add reg_5v to supply PMIC nodes
d7fdc4c97f8d ARM: dts: microchip: at91-sama5d2_icp: Add reg_5v to supply PMIC nodes
4cfdc8493fb7 ARM: dts: microchip: at91-sama7g54_curiosity: Add reg_5v to supply PMIC nodes
896c200dcf80 ARM: dts: microchip: at91-sama7g5ek: Add reg_5v to supply PMIC nodes
7ab51dc288b4 Merge 6.11-rc4 into tty-next
6a80a17f7ec3 Merge 6.11-rc4 into usb-next
f7348b032779 dt-bindings: firmware: arm,scmi: Introduce property max-rx-timeout-ms
65b42326edf7 dt-bindings: iio: humidity: add ENS210 sensor family
452ee3eab6b8 dt-bindings: net: mdio: change nodename match pattern
1012a8b3f6fe dt-bindings: net: dsa: microchip: add microchip,pme-active-high flag
45802bb362a6 dt-bindings: leds: Document "netdev" trigger
9e0e4f9a599d arm64: dts: qcom: sa8775p: fix the fastrpc label
f20bfb84b686 arm64: dts: rockchip: add wolfvision pf5 visualizer display
809304ba6b25 ASoC: dt-bindings: qcom,lpass-wsa-macro: correct clocks on SM8250
bb9074c18a01 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
3cb856f6662b arm64: dts: qcom: ipq5332: Add icc provider ability to gcc
00a71b4889d3 Merge branch '20240730054817.1915652-2-quic_varada@quicinc.com' into arm64-for-6.12
081efd8a0232 dt-bindings: usb: qcom,dwc3: Update ipq5332 clock details
483cc2f2c14d Merge branch '20240730054817.1915652-2-quic_varada@quicinc.com' into clk-for-6.12
7e37672b02da dt-bindings: interconnect: Add Qualcomm IPQ5332 support
235d29ae0de7 arm64: dts: qcom: sm8250: move lpass codec macros to use clks directly
5690281df380 arm64: dts: qcom: msm8998: Add disabled support for LPASS iommu for Q6
df345e32d1d1 Merge branch '20240814-lpass-v1-1-a5bb8f9dfa8b@freebox.fr' into arm64-for-6.12
612f2789ffab Merge branch '20240814-lpass-v1-1-a5bb8f9dfa8b@freebox.fr' into clk-for-6.12
6e85c519f972 dt-bindings: clock: gcc-msm8998: Add Q6 and LPASS clocks definitions
60c4be11a00c dt-bindings: soc: qcom: qcom,pmic-glink: Document SM7325 compatible
e36990acf81e dt-bindings: arm: qcom,ids: Add IDs for SM7325 family
e4ec14b1ddd9 arm64: dts: rockchip: drop obsolete reset-names from rk356x rng node
552ab016b681 dt-bindings: clock: qcom: Add GPLL9 support on gcc-sc8180x
a62230ef4a99 dt-bindings: clock: qcom: Drop required-opps in required on SM8650 camcc
e950f20e8d59 dt-bindings: clock: qcom: Drop required-opps in required on sm8650 videocc
59f6bd276f49 dt-bindings: clock: qcom,qcs404-turingcc: convert to dtschema
1c6f8c9c6fbf dt-bindings: clock: Add x1e80100 LPASSCC reset controller
d3af59f29638 dt-bindings: clock: Add x1e80100 LPASS AUDIOCC reset controller
0b01690f2492 dt-bindings: clock: qcom,a53pll: Add msm8226-a7pll compatible
ed66586498f0 dt-bindings: clock: qcom,a53pll: Allow opp-table subnode
0b3109708caf arm64: dts: rockchip: add product-data eeproms to QNAP TS433
767beb8eaaee dt-bindings: soc: fsl: cpm_qe: convert network.txt to yaml
58a8cba3103a dt-bindings: arm: Update Corstone-1000 maintainers
c9bf98827964 arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
8a1bfcf34398 dt-bindings: arm: rockchip: Add NanoPi R2S Plus
a49d8ed780b0 dt-bindings: arm: qcom,ids: add SoC ID for QCS8275/QCS8300
01f3141f3e40 dt-bindings: soc: qcom: smd-rpm: add generic compatibles
7b32557a214e arm64: dts: qcom: msm8976: Add restart node
1a01b3c0e7a2 arm64: dts: qcom: sa8775p: add CPU idle states
2fcc2c66909c arm64: dts: qcom: x1e80100-yoga: Update panel bindings
6debec87a578 arm64: dts: qcom: msm8916-samsung-gt58: Enable the touchkeys
3341edcfe5b1 arm64: dts: qcom: sc8280xp-x13s: Enable RGB sensor
6646f5b64ada arm64: dts: qcom: sa8775p-ride: enable remoteprocs
08fc75712caa arm64: dts: qcom: sa8775p: add ADSP, CDSP and GPDSP nodes
ede81a7c6726 dt-bindings: mailbox: qcom-ipcc: Add GPDSP0 and GPDSP1 clients
d7592bed5db7 arm64: dts: qcom: msm8916-samsung-j3ltetw: Add initial device tree
ff8f421711c1 dt-bindings: qcom: Document samsung,j3ltetw
e104107feffc arm64: dts: qcom: sm8350: add refgen regulator
9650e95b08fb arm64: dts: qcom: sm8350: add MDSS registers interconnect
7863bd81d5a3 arm64: dts: qcom: sm7125-xiaomi-common: Add reset-gpios for ufs_mem_hc
66910ffe7fa0 arm64: dts: qcom: sa8775p: Add CPU and LLCC BWMON
1a1a19ff9efa arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash
5b0bf4134ca9 arm64: dts: qcom: add generic compat string to RPM glink channels
e0c04a1df01c ARM: dts: qcom: add generic compat string to RPM glink channels
9d6f63060f9b dt-bindings: remoteproc: qcom,sm8550-pas: document the SDX75 PAS
e6f582699fc1 ARM: dts: qcom: msm8226-microsoft-common: Add inertial sensors
5a332227bc8a arm64: dts: qcom: sdx75-idp: enable MPSS remoteproc node
7847f137cbfc arm64: dts: qcom: sdx75: Add remoteproc node
ea5ff1e09b71 arm64: dts: qcom: sdx75: update reserved memory regions for mpss
14fdac8ab227 arm64: dts: qcom: sa8295p-adp: Enable the four USB Type-A ports
aa2a2af819dd arm64: dts: x1e80100-qcp: fix wsa soundwire port mapping
b7af2379cb5c arm64: dts: x1e80100-crd: fix wsa soundwire port mapping
4d98b69574f7 arm64: dts: qcom: x1e80100: add soundwire controller resets
965f4fa4d989 ARM: dts: qcom: msm8226: Convert APCS usages to mbox interface
85d2c52009cb ARM: dts: qcom: msm8226: Hook up CPU cooling
58b2d14c5378 ARM: dts: qcom: msm8226: Add CPU frequency scaling support
4fc88924f669 arm64: dts: qcom: sm8650: add description of CCI controllers
2b64e477fadd arm64: dts: qcom: sm8550: add description of CCI controllers
d5984bccde16 arm64: dts: qcom: sm4450: add camera, display and gpu clock controller
14a1071eb937 Merge branch '20240611133752.2192401-1-quic_ajipan@quicinc.com' into arm64-for-6.12
ab0770535043 Merge branch '20240611133752.2192401-1-quic_ajipan@quicinc.com' into clk-for-6.12
444b45d9285e dt-bindings: clock: qcom: add GPUCC clocks on SM4450
819ce4d74b64 dt-bindings: clock: qcom: add CAMCC clocks on SM4450
a989c25f6073 dt-bindings: clock: qcom: add DISPCC clocks on SM4450
c208a906213a dt-bindings: spi: add PIC64GX SPI/QSPI compatibility to MPFS SPI/QSPI bindings
0534c0ace0fd regulator: dt-bindings: qcom,qca6390-pmu: document the swctrl-gpios property
f5efc1740fe5 regulator: dt-bindings: qcom,qca6390-pmu: document WCN6855
79b6d722bf2e regulator: dt-bindings: qcom,qca6390-pmu: fix the description for bt-enable-gpios
cf1c89de48bc dt-bindings: rtc: stm32: describe pinmux nodes
1b8af6159f69 dt-bindings: serial: 8250_omap: Add wakeup-source property
039245e6ecdd dt-bindings: net: fsl,qoriq-mc-dpmac: using unevaluatedProperties
9aa85d6ba84a ARM: dts: bcm2837/bcm2712: adjust local intc node names
6960af7e071f dt-bindings: net: convert maxim,ds26522.txt to yaml format
0f60d0501cfc dt-bindings: misc: aspeed,ast2400-cvic: Convert to DT schema
f72639bb56c0 dt-bindings: interrupt-controller: aspeed,ast2400-vic: Convert to DT schema
cd3603105dc2 dt-bindings: timer: nxp,lpc3220-timer: Convert to dtschema
137777b4b218 dt-bindings: timer: fsl,ftm-timer: Convert to dtschema
e388209a372d spi: dt-bindings: convert spi-sc18is602.txt to yaml format
c1f35eb94488 dt-bindings: watchdog: ti,davinci-wdt: convert to dtschema
8a43a32c796a dt-bindings: timer: ti,davinci-timer: convert to dtschema
26d0f22ee593 dt-bindings: remoteproc: xlnx,zynqmp-r5fss: Add missing "additionalProperties" on child nodes
65f6261175a6 Add input voltage suppliers for PMIC MCP16502
d0a15bd2277c arm64: dts: qcom: sc8180x: Enable the power key
f8129524ec31 regulator: dt-bindings: microchip,mcp16502: Add voltage input supply documentation
19161b901b5f arm64: dts: freescale: imx8mp-phyboard-pollux: Add and enable TPM
0ecfa6e22c6b arm64: dts: imx93: add lpi2c1 and st lsm6dso node
7bbdd29672ae arm64: dts: imx93-tqma9352-mba93: Fix USB hub node name
59634ab7bd03 arm64: dts: imx8mm/n-beacon-kit: Fix the order of ADV7535 reg entries
038d3dcbe407 ARM: dts: imx1/imx27: Use dma-controller as node name
a3d3ab8013cc arm64: dts: imx8mp-venice-gw74xx-imx219: remove compatible in overlay file
82dde3e9acf6 arm64: dts: imx8mp-data-modul-edm-sbc: remove #clock-cells for sai3
9fc4d0072868 arm64: dts: imx8mm-venice-gw7901: add #address(size)-cells for gsc@20
9ca77404f1fb arm64: dts: fsl-ls208xa: move reboot node under syscon
46949308e10d arm64: dts: fsl-ls1028a: remove undocumented 'little-endian' for dspi node
b4e19fc06bee arm64: dts: imx8mp-verdin: add HDMI audio support
8c194a97e541 arm64: dts: imx95: add flexcan[1..5] support
fb3473293288 arm64: dts: imx95: add DDR Perf Monitor node
0c8adfcfe013 arm64: dts: fsl,ls2085a: remove fsl,ls2085a-pcie
bddc9e10c2ef arm64: dts: layerscape: remove undocumented fsl,ls-pcie-ep
d7ceece431d2 arm64: dts: fsl-ls1046a: remove big-endian at memory-controller
585c14aba307 arm64: dts: layerscape: remove big-endian for mmc nodes
afebcda23a85 arm64: dts: layerscape: add msi-cell = <1> for gic its
9e174c2facff arm64: dts: fsl-ls1028a: add fsl,ls1028-reset for syscon
3eaa8ffdee68 arm64: dts: fsl-ls1043a: change uqe to uqe-bus and remove #address-cells
cbd259402571 arm64: dts: layerscape: use common pcs-handle property
682087230738 arm64: dts: layerscape: rename rcpm as wakeup-control from power-control
35b7ecb8b0b0 arm64: dts: layerscape: rename aux-bus to bus
6026852bd07f arm64: dts: imx8mp-verdin: drop limit to sdio wi-fi frequency to 100 mhz
864837cca1e7 arm64: dts: imx93: add cache info
5405cc2d3009 arm64: dts: imx8-ss-dma: enable dma support for lpspi
69797581de48 arm64: dts: imx93-11x11-evk: Add audio XCVR sound card
c2153a1f4f37 arm64: dts: imx93-11x11-evk: Add PDM microphone sound card support
498ec19172ad arm64: dts: imx93-11x11-evk: add bt-sco sound card support
5039f36a9e93 arm64: dts: imx93: Add #sound-dai-cells property
7a5e2fdf6435 arm64: dts: imx8mm-emtop-baseboard: Add Ethernet Support
12d3f06efd98 arm64: dts: s32g: add the pinctrl node
f6eefcc5c776 arm64: dts: freescale: imx93-tqma9352: improve pad configuration
c3d07039de68 dt-bindings: hwlock: sprd-hwspinlock: convert to YAML
05d95dcc0243 dt-bindings: fsl: fsl,rcpm: fix unevaluated fsl,rcpm-wakeup property
4caebe308a74 dt-bindings: trivial-devices: add isil,isl69260
394ab4eb8db9 dt-bindings: clock: mediatek: Convert MediaTek clock syscons to schema
135ed81570df dt-bindings: Move Mediatek clock controllers to "clock" directory
5c5e58fe1d86 dt-bindings: clock: mediatek,apmixedsys: Fix "mediatek,mt6779-apmixed" compatible
e14f5320858c Merge 6.11-rc3 into usb-next
163a61a0fcbd dt-bindings: input: touchscreen: convert ad7879 to yaml format
ff50aa0c8c8c Merge 6.11-rc3 into tty-next
c61fea5ca484 dt-bindings: ata: Add i.MX8QM AHCI compatible string
ca02b20938be arm64: dts: imx8mm-tqma8mqml-mba8mx: Increase frequency for i2c busses
28aa12212487 ARM: dts: imx53-qsb-hdmi: Merge display0 node
559a8deafd90 ARM: dts: imx53-qsb-hdmi: Do not disable TVE
ba7498491f7f arm64: dts: imx8-ss-dma: Fix adc0 closing brace location
3ea813348a45 arm64: dts: imx8-ss-dma: add #address-cells and #size-cells to LPI2C nodes
2ae92a7fa213 arm64: dts: sprd: move/add SPDX license to top of the file
90d97aa72075 arm64: dts: sprd: reorder clock-names after clocks
add551e14642 arm64: dts: sprd: rename SDHCI and fuel gauge nodes to match bindings
7556d7dfabe1 ARM: dts: nuvoton: wpcm450: align LED and GPIO keys node name with bindings
4cbdc11836b0 arm: dts: realview: Add/drop missing/spurious unit-addreses
fd4fa389ae7d arm64: dts: apm: storm: Rename menetphy@3 to ethernet-phy@3
d208787b711f arm64: dts: imx8: remove non-existent DACs
ca4a4e3abd74 arm64: dts: imx8mp-phyboard-pollux: Disable write-protect on SD card
679006e9850f arm64: dts: freescale: imx8mp-phycore: Add no-eth overlay
867e7e55aa5a dt-bindings: eeprom: at24: Add compatible for Giantec GT24C04A
9fa5d103780f arm64: dts: exynosautov9: add dpum clock DT nodes
82088f93f79b dt-bindings: clock: exynosautov9: add dpum clock
b14cf719eff8 arm64: dts: s32g: Disable usdhc write-protect
ec42a38c1dfc arm64: dts: rockchip: drop dr_mode for Radxa ZERO 3W/3E
b1e7a5efc8e4 arm64: dts: rockchip: Raise Pinebook Pro's panel backlight PWM frequency
0942585b2a5d dt-bindings: gpio: gpio-davinci: Add the gpio-reserved-ranges property
dc6316da2373 arm64: dts: rockchip: Add support for rk3588 based Cool Pi CM5 GenBook
f5cd7183d823 dt-bindings: arm: rockchip: Add Cool Pi CM5 GenBook
aa00ba4dcc93 arm64: dts: rockchip: add rfkill node for M.2 E wifi on orangepi-5-plus
451c0f05b2cc arm64: dts: rockchip: add DT entry for RNG to RK356x
4c7657b868f7 dt-bindings: iio: adc: Add rockchip,rk3576-saradc string
3c3ab7b65a89 dt-bindings: iio: ad4695: fix common-mode-channel
b3ebe86aa71f dt-bindings: iio: add vref support to sd modulator
216065cbbfe7 dt-bindings: iio: add backend support to sd modulator
1daad23bf5fc dt-bindings: iio: dfsdm: move to backend framework
343bac120ca6 dt-bindings: iio: asahi-kasei,ak8975: drop incorrect AK09116 compatible
78f8b1df23fc dt-bindings: rng: Add Rockchip RK3568 TRNG
7ea6c5962ec1 dt-bindings: PCI: host-generic-pci: Drop minItems and maxItems of ranges
3368ccb698a5 dt-bindings: firmware: arm,scmi: Add support for system power protocol
dcfc03e205d1 media: dt-bindings: media: renesas,fcp: Document RZ/G2UL FCPVD bindings
ebada5624163 media: dt-bindings: media: renesas,vsp1: Document RZ/G2UL VSPD bindings
ce9f118d64ef dt-bindings: media: amlogic,gx-vdec: add the GXLX SoC family and update GXL
3f9dee931e38 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
e4201b1f2a2d Merge tag 'drm-misc-next-2024-08-01' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
a661249306bd riscv: dts: thead: change TH1520 SPI node to use clock controller
c9dca436cd26 riscv: dts: thead: add clock to TH1520 gpio nodes
88c8bce5bde4 riscv: dts: thead: update TH1520 dma and timer nodes to use clock controller
53912694de7c riscv: dts: thead: change TH1520 mmc nodes to use clock controller
f102628b3f80 riscv: dts: thead: change TH1520 uart nodes to use clock controller
85f85429b535 riscv: dts: thead: Add TH1520 AP_SUBSYS clock controller
446d76e55107 dt-bindings: memory-controllers: fsl,imx-weim: Fix "fsl,weim-cs-timing" schema
4a5446aa5c65 dt-bindings: clock: exynos7885: Add indices for USB clocks
cb8e24d3216e dt-bindings: clock: exynos7885: Add CMU_TOP PLL MUX indices
2fd8a12627b0 dt-bindings: clock: exynos7885: Fix duplicated binding
ca6b7849cd40 ARM: dts: microchip: at91: align LED node name with bindings
5b470d52ca6d ARM: dts: microchip: sam9x60: Move i2c address/size to dtsi
f509fcb1fb82 arm64: dts: rockchip: actually enable pmu-io-domains on qnap-ts433
256874b3b1f9 regulator: dt-bindings: mediatek,mt6397-regulator: convert to YAML
b27360316b2f dt-bindings: clock: at91: Allow PLLs to be exported and referenced in DT
9c66eef92194 dt-bindings: clocks: atmel,at91rm9200-pmc: add sam9x7 clock controller
6b5f9de73bae dt-bindings: clocks: atmel,at91sam9x5-sckc: add sam9x7
ffcfad9eed6d dt-bindings: atmel-sysreg: add sam9x7
d1a273645f05 ARM: dts: microchip: at91-sama7g5ek: add EEPROMs
3f4f869042d5 arm64: dts: ti: k3-j7200-som-p0: Update mux-controller node name
acf3148ae5df arm64: dts: ti: k3-j721s2-som-p0: Update mux-controller node name
337ffc1a6399 dt-bindings: soc: fsl: add missed compatible string fsl,ls*-isc
276eaa99cd4a dt-bindings: soc: fsl: Convert rcpm to yaml format
943155c40b5d arm64: dts: mediatek: mt8186-corsola: Update ADSP reserved memory region
0fa6d86e21ea arm64: dts: mediatek: mt8183: Remove clock from mfg_async power domain
47ca0a9c4b77 arm64: dts: mt8183-kukui: clean up regulator tree
aa47b0bb09fb arm64: dts: mediatek: mt7981: add SPI controllers
875fc5eda9ad arm64: dts: mediatek: mt8183-kukui: Disable unused efuse at 8000000
f5294f44bde3 arm64: dts: mediatek: mt8188: add default thermal zones
c02b36c04085 arm64: dts: mediatek: mt8188: add lvts definitions
a1c6f2c2f3cd arm64: dts: mediatek: mt8186: add default thermal zones
182a578e1b77 arm64: dts: mediatek: mt8186: add lvts definitions
a4684da3d324 dt-bindings: fsl-qdma: allow compatible string fallback to fsl,ls1021a-qdma
bdd3969b1a67 dt-bindings: dma: mv-xor-v2: Convert to dtschema
29815c362539 dt-bindings: dma: rz-dmac: Document RZ/G3S SoC
e0bbe061fd53 arm64: dts: rockchip: Simplify network PHY connection on qnap-ts433
4971f7d1a2e1 dt-bindings: phy: rockchip,rk3588-hdptx-phy: Add #clock-cells
3d66b1089f5c dt-bindings: can: fsl,flexcan: move fsl,imx95-flexcan standalone
f074249711d1 dt-bindings: can: fsl,flexcan: add common 'can-transceiver' for fsl,flexcan
810d4f2cd57c arm64: dts: imx8mm-venice-gw72xx-0x: Remove compatible from dtso
61939845a6e5 arm64: dts: imx8mm-phygate-tauri-l: Remove compatible from dtso
2752a00d8b59 arm64: dts: imx95-19x19-evk: add pwm fan control
2f29a8ca3c98 arm64: dts: imx95: add thermal_zone label
e634f022a31e arm64: dts: imx95-19x19-evk: add flexspi and child node
e69ac3fb5401 arm64: dts: imx95: add flexspi node
4fceb264dc8a arm64: dts: imx95-19x19-evk: Add audio related nodes
a0c430451540 arm64: dts: imx95: add sai[1..6], xcvr and micfill
ed8cc1312daa arm64: dts: imx95: add edma[1..3] nodes
e03c9fc13045 dt-bindings: pinctrl: npcm8xx: remove non-existent groups and functions
44fb8e072777 dt-bindings: pinctrl: qcom,apq8084-pinctrl: convert to dtschema
4b4292f3c3bc dt-bindings: pinctrl: qcom,ipq4019-pinctrl: convert to dtschema
539d6e7119c5 dt-bindings: pinctrl: qcom,ipq8064-pinctrl: convert to dtschema
8b9ada33c4a0 dt-bindings: pinctrl: qcom,apq8064-pinctrl: convert to dtschema
d1000f0ef19d ARM: dts: imx6sx-udoo-neo: Properly configure ENET_REF
e80eef92e829 arm64: dts: imx93: support i.MX93-14x14-EVK board
dc0e4466ca31 dt-bindings: arm: fsl: add i.MX93 14x14 EVK board
be74b0316da3 arm64: dts: imx93: drop duplicated properties
316a14336dd5 arm64: dts: imx95: add p2a reply channel
12e20d64312d dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
82aec85ab51a dt-bindings: pincfg-node: Add "input-schmitt-microvolt" property
4133522fb241 Revert "dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: add bindings"
c9a08bc4a6c4 dt-bindings: iio: adc: ad7380: add single-ended compatible parts
a62d35e43818 Merge tag 'spi-mosi-config' into togreg
cc5500655f43 dt-bindings: iio: adf4377: add adf4378 support
dbcd60d18a50 dt-bindings: iio: light: stk33xx: add compatible for stk3013
1bcaff188652 dt-bindings: iio: pressure: Add Sensirion SDP500
0a15a6adf88b dt-bindings: iio: adc: add binding for pac1921
5f92ced01feb dt-bindings: iio: light: ROHM BH1745
ec760f8cdd3a dt-bindings: iio: adc: ad7192: Add clock provider
3d6e921ef60b dt-bindings: iio: adc: ad7192: Update clock config
1b10f1039ea0 dt-bindings: iio: magnetometer: bmc150: Document mount-matrix
bc7b7e833774 dt-bindings: iio: kionix,kxcjk1013: Document KX022-1020
b8aa75f0822f dt-bindings: iio: adc: add AD4695 and similar ADCs
d09e52163ff9 dt-bindings: iio: dac: Add adi,ltc2672.yaml
3159e661132e dt-bindings: iio: dac: Add adi,ltc2664.yaml
7dd7d1519473 dt-bindings: iio: dac: Generalize DAC common properties
97dec0eec9a2 dt-bindings: iio: accel: add ADXL380
3a1b4d493637 dt-bindings: iio: light: ltrf216a: Document LTR-308 support
da891109350a dt-bindings: iio: BU27034 => BU27034ANUC
d126f8ece723 dt-bindings: pinctrl: renesas: Document RZ/G2M v3.0 (r8a774a3) PFC support
12328159da56 dt-bindings: clock: renesas: Document RZ/V2H(P) SoC CPG
b058cc48a286 dt-bindings: clock: renesas,cpg-mssr: Document RZ/G2M v3.0 (r8a774a3) clock
9592e9f442d5 arm64: dts: renesas: r9a08g045: Add DMAC node
702892c734d8 arm64: dts: renesas: rzg2ul: Set Ethernet PVDD to 1.8V
61aad6358e8e arm64: dts: renesas: rzg2lc: Set Ethernet PVDD to 1.8V
c535103b52a1 arm64: dts: renesas: rzg2l: Set Ethernet PVDD to 1.8V
250ac41d6258 arm64: dts: renesas: rzg2ul: Enable Ethernet TXC output
20ab7b4fdb8b arm64: dts: renesas: rzg2lc: Enable Ethernet TXC output
11cbf7bc3124 arm64: dts: renesas: rzg2l: Enable Ethernet TXC output
07e7ce941a1c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
a6a3a0741880 arm64: dts: allwinner: h700: Add Anbernic RG35XX-SP
43c3a035746a arm64: dts: allwinner: h616: Change RG35XX Series from r_rsb to r_i2c
1665557aa57c arm64: dts: allwinner: h616: Add r_i2c pinctrl nodes
cd379512a263 dt-bindings: arm: sunxi: Add Anbernic RG35XXSP
90232ba8fe09 dt-bindings: mfd: Add Analog Devices ADP5585
d9d53f48f45e dt-bindings: leds: sc2731-bltc: Convert to YAML
4926f32e08c6 dt-bindings: leds: pca995x: Add new nxp,pca9956b compatible
26de092ec373 arm64: dts: qcom: sm8650-qrd: use the PMU to power up bluetooth
44665c06bc35 Merge branch '20240717-dispcc-sm8550-fixes-v2-7-5c4a3128c40b@linaro.org' into arm64-for-6.12
e10c33431ec2 Merge branch '20240717-dispcc-sm8550-fixes-v2-7-5c4a3128c40b@linaro.org' into clk-for-6.12
58def9ddf027 dt-bindings: clock: qcom,sm8650-dispcc: replace with symlink
43d1e98390ce arm64: dts: qcom: msm8916-samsung-fortuna: Add touch keys
e963b28801df arm64: dts: qcom: sa8775p: Add capacity and DPC properties
eebee1c5d60e arm64: dts: qcom: pm8950: Add resin node
2676b9bab413 arm64: dts: qcom: Add camera clock controller for sm8150
e66171bfa730 Merge branch '20240731062916.2680823-7-quic_skakitap@quicinc.com' into arm64-for-6.12
50f919225472 Merge branch '20240731062916.2680823-7-quic_skakitap@quicinc.com' into clk-for-6.12
3437e439ed8d dt-bindings: clock: qcom: Add SM8150 camera clock controller
73384e01cb13 arm64: dts: qcom: sc8180x-lenovo-flex-5g: Enable USB multiport controller
b4905632d222 arm64: dts: qcom: sc8180x-primus: Enable the two MP USB ports
99c43a48ae10 arm64: dts: qcom: sc8180x: Add USB MP controller and phys
44728537b7b6 arm64: dts: qcom: sc8180x: Align USB nodes with binding
513454a0bd1f arm64: dts: qcom: sc8180x-pmics: Add second PMC8180 GPIO
a8301f6588d3 Merge branch '20240730-sc8180x-usb-mp-v2-1-a7dc4265b553@quicinc.com' into arm64-for-6.12
e71f2d29f8db dt-bindings: clock: qcom: Add missing USB MP resets
2c2614449c5f arm64: dts: qcom: sm6115-pro1x: Enable ATH10K WLAN
7424f69b8983 arm64: dts: qcom: sm6115-pro1x: Enable remoteprocs
5c987cbd78fd arm64: dts: qcom: sm6115-pro1x: Enable RGB LED
4bfda507fd8d arm64: dts: qcom: sm6115-pro1x: Add PMI632 Type-C property
09abbcb1a08b arm64: dts: qcom: sm6115-pro1x: Hook up USB3 SS
26bfc23e1b33 arm64: dts: qcom: sm6115-pro1x: Enable MDSS and GPU
11ebe80ff5f0 arm64: dts: qcom: sm6115-pro1x: Enable SD card slot
4809c17ca111 arm64: dts: qcom: sm6115-pro1x: Add Caps Lock LED
27a81d116e51 arm64: dts: qcom: sm6115-pro1x: Add Goodix Touchscreen
23c761c5315c arm64: dts: qcom: sm6115-pro1x: Add PCA9534 IO Expander
c65bac74d099 arm64: dts: qcom: sm6115-pro1x: Add Hall Switch and Camera Button
7613b5f0f05b riscv: dts: thead: add basic spi node
7dd3df583f63 dt-bindings: clock: nxp,lpc3220-usb-clk: Convert bindings to dtschema
3903ada4a963 dt-bindings: clock: nxp,lpc3220-clk: Convert bindings to DT schema
a8f6a3ba13c2 dt-bindings: hwmon: adt7475: Deprecate adi,pwm-active-state
4e3d1bb0d5a5 dt-bindings: hwmon: Add adt7475 fan/pwm properties
770a1a510d0d arm64: dts: fvp: Set stdout-path to serial0 in the chosen node
581bca23d02f dt-bindings: clock: exynos850: Add TMU clock
0a3d301f750d dt-bindings: phy: drop obsolete qcom,usb-8x16-phy bindings
a11a0b806a95 dt-bindings: phy: hisilicon,hi3798cv200-combphy: Convert to DT schema
48ba2876e2fa dt-bindings: phy: qcom,sata-phy: convert to dtschema
a44cdbb15cb7 dt-bindings: serial: renesas: Document RZ/G2M v3.0 (r8a774a3) scif
6fb966295842 dt-bindings: serial: atmel,at91-usart: add compatible for sam9x7.
1b5749e2f426 arm64: dts: mediatek: mt7981: add UART controllers
38c6b53e9499 dt-bindings: serial: mediatek,uart: add MT7981
2e01fbebd132 dt-bindings: serial: samsung: fix maxItems for gs101
bcd3df4ecd4a dt-bindings: serial: samsung: avoid duplicating permitted clock-names
b5f4c2b8f685 dt-bindings: net: dsa: vsc73xx: add {rx,tx}-internal-delay-ps
ea681ed0a0d2 dt-bindings: usb: qcom,dwc3: Update ipq5332 clock details
78245dbec561 dt-bindings: usb: ti,j721e-usb: fix compatible list
d5c2196c9283 dt-bindings: usb: qcom,dwc3: Update ipq5332 interrupt info
6378c9f792d4 arm64: dts: mediatek: mt8195: Assign USB 3.0 PHY to xhci1 by default
06698c7749ac arm64: dts: mediatek: mt8395-nio-12l: Mark USB 3.0 on xhci1 as disabled
4dc282c52cc1 arm64: dts: mediatek: mt8195-cherry: Mark USB 3.0 on xhci1 as disabled
70b65574c139 dt-bindings: gpio: nxp,lpc3220-gpio: Convert to dtschema
c208083853ba ARM: dts: ti: omap: am335x-wega: Fix audio clock provider
c848b2c1bedf ARM: dts: ti: omap: am335x-regor: Fix RS485 settings
728cf66aedc3 ARM: dts: omap: am335x-bone: convert NVMEM content to layout syntax
a8ffba83fa7a ARM: dts: am335x-bone-common: Increase MDIO reset deassert time
a48586f8b6c4 arm64: dts: qcom: msm8939-wingtech-wt82918: Add Lenovo Vibe K5 devices
1791e240cc96 arm64: dts: qcom: msm8916-wingtech-wt865x8: Add Lenovo A6000/A6010
360b1b7ac7a1 dt-bindings: arm: qcom: Add msm8916/39 based Lenovo devices
bbc9a0df5a29 arm64: dts: qcom: msm8992-lg-h815: Initial support for LG G4 (H815)
656fae7323e9 dt-bindings: arm: qcom: Add LG G4 (h815)
502e9337df06 arm64: dts: qcom: msm8939-longcheer-l9100: Add rear flash
1446df5706ec arm64: dts: mediatek: mt8195: Add SCP phandle to MDP3 DMA controller
5e7e9ceced60 arm64: dts: qcom: msm8916-samsung-rossa: Add touchscreen
6f04f36d44d8 arm64: dts: qcom: x1e80100: add rpmh-stats node
58f4f7f56f3f arm64: dts: qcom: msm8916-longcheer-l8910: Add rear flash
f8192558d510 arm64: dts: qcom: x1e80100-crd: enable SDX65 modem
c96daf925103 arm64: dts: qcom: x1e80100: add PCIe5 nodes
aad21d43dcd8 Merge branch 'arm64-fixes-for-6.11' into HEAD
7dc0fa044d13 arm64: dts: mediatek: mt8183-kukui-jacuzzi: Simplify DSI endpoint replacement
9324a00befb7 arm64: dts: mediatek: mt8195-cherry: Remove keyboard-backlight node
f66202153368 arm64: dts: mediatek: cherry: Specify pull resistance for RSEL GPIOs
1335492cfd57 arm64: dts: mediatek: Add ADC node on MT6357, MT6358, MT6359 PMICs
66e0b8283c61 arm64: dts: mediatek: mt8186: Fix supported-hw mask for GPU OPPs
aaf1ec99c011 dt-bindings: reset: renesas: Document RZ/G2M v3.0 (r8a774a3) reset module
60c1dfafaf5e arm64: dts: renesas: r8a779h0: Add PWM device nodes
56deed4ea4c4 arm64: dts: rockchip: Move RK3399 OPPs to dtsi files for SoC variants
9b4d4c02b576 arm64: dts: rockchip: add 2 pmu_io_domain supplies for Qnap-TS433
e324a9e8ea08 arm64: dts: rockchip: enable gpu on Qnap-TS433
48951cb08599 arm64: dts: rockchip: add missing pmic information on Qnap-TS433
2f0afd1a3cbf arm64: dts: rockchip: define cpu-supply on the Qnap-TS433
f0b858c75138 arm64: dts: rockchip: add gpio-keys to Qnap-TS433
d33949501abd arm64: dts: rockchip: enable the tsadc on the Qnap-TS433
5a11b1bb40ac arm64: dts: rockchip: add hdd leds to Qnap-TS433
cb5381576440 arm64: dts: rockchip: add board-aliases for Qnap-TS433
dfa45bbda057 arm64: dts: rockchip: enable sata1+2 on Qnap-TS433
1e1af2af2192 arm64: dts: rockchip: add stdout path on Qnap-TS433
bb745ef13efb arm64: dts: rockchip: enable usb ports on Qnap-TS433
aaa5b1c4bd8f arm64: dts: rockchip: enable uart0 on Qnap-TS433
7d8f260e65cc arm64: dts: rockchip: enable second PCIe controller on the Qnap-TS433
59939b4343db arm64: dts: rockchip: add PCIe supply regulator to Qnap-TS433
8927e1535bb8 dt-bindings: vendor-prefixes: Add "test" vendor for KUnit and friends
903727c3c8eb ARM: dts: broadcom: bcm21664: Move chosen node into Garnet DTS
1d551b337a38 ARM: dts: broadcom: convert NVMEM content to layout syntax
492fe1430cb8 dt-bindings: soc: bcm: document brcm,bcm2711-avs-monitor
db8b0ad17d64 arm64: dts: broadcom: Add minimal support for Raspberry Pi 5
4c28b5c0f3f0 dt-bindings: hwmon: Document TI TPS546D24
6e8b6021c9c5 dt-bindings: bus: qcom,ebi2: convert to dtschema
7b1d4a7b0a57 dt-bindings: iio: proximity: Add TYHX HX9023S
3c491d03c06d dt-bindings: vendor-prefixes: add tyhx
a3219886d457 dt-bindings: iio: adc: adi,ad7606: add conditions
44cb4e7c9a66 dt-bindings: iio: adc: adi,ad7606: fix example
ad06687a1cf2 dt-bindings: iio: adc: adi,ad7606: add supply properties
b20ff22f259a dt-bindings: iio: adc: adi,ad7606: improve descriptions
6630533a55ae dt-bindings: iio: adc: adi,ad7606: normalize textwidth
aea2c9dc93f5 dt-bindings: adc: ad9467: support new parts
6d8b81da06e0 arm64: dts: rockchip: Add sdmmc/sdio/emmc reset controls for RK3328
59944c15350a arm64: dts: rockchip: Add sdmmc_ext for RK3328
8fe619858776 ARM: dts: rockchip: use constant for HCLK_SFC on rk3128
fecd20a17814 arm64: dts: rockchip: Enable UHS-I SDR-50 for Lunzn FastRhino R66S
36ab7ce934f5 arm64: dts: rockchip: remove useless tx/rx_delay for Lunzn Fastrhino R68S
e1b8ebac87ab arm64: dts: rockchip: use generic Ethernet PHY reset bindings for Lunzn Fastrhino R68S
36f5a6dc0ff4 arm64: dts: rockchip: Correct the Pinebook Pro battery design capacity
cae99799bf21 arm64: dts: rockchip: add Firefly JD4 baseboard with Core-PX30-JD4 SoM
f3bc0f584049 arm64: dts: rockchip: add Firefly Core-PX30-JD4 SoM
deca0d635033 dt-bindings: arm: rockchip: Add Firefly Core-PX30-JD4 on baseboard
052f7c4dc45c Marvell HW overlay support for Cadence xSPI
9d7bf0b85116 Add HDMI Audio support
a2fdbc51224e Add support for AD4000 series of ADCs
df1d8efde8b2 dt-bindings: clock: axg-audio: add earcrx clock ids
d5bea92671f4 arm64: dts: exynos: gs101: add syscon-poweroff and syscon-reboot nodes
a82a0ec09b0a arm64: dts: exynos: exynos7885-jackpotlte: Correct RAM amount to 4GB
e33779ec354c dt-bindings: power: renesas: Document RZ/G2M v3.0 (r8a774a3) SYSC binding
404812a4614b dt-bindings: soc: renesas: Document RZ/G2M v3.0 (r8a774a3) SoC
689ee04f5679 arm64: dts: renesas: gray-hawk-single: Add GP LEDs
fd699aaaeab6 arm64: dts: renesas: gray-hawk-single: Add push switches
1e3dc6ae2290 arm64: dts: renesas: r8a779h0: Add missing iommus properties
82899e101ef5 arm64: dts: renesas: r8a779g0: Add missing iommus properties
d93381bafae0 arm64: dts: renesas: r8a779a0: Add missing iommus properties
f0e788f1f8da arm64: dts: renesas: r8a77980: Add missing iommus properties
430de64fb859 arm64: dts: renesas: r8a77970: Add missing iommus property
09c3b2305df4 arm64: dts: renesas: r8a77965: Add missing iommus properties
db30bc2fe3b3 arm64: dts: renesas: r8a77961: Add missing iommus properties
ea43c8d34322 arm64: dts: renesas: r8a77960: Add missing iommus properties
250f0a07d280 arm64: dts: renesas: r8a774e1: Add missing iommus properties
6ad240d2455c arm64: dts: renesas: r8a774c0: Add missing iommus properties
9c7221471dd1 arm64: dts: renesas: r8a774b1: Add missing iommus properties
612e47464719 arm64: dts: renesas: r8a774a1: Add missing iommus properties
c1b60210c392 arm64: dts: renesas: gray-hawk-single: Add Sound support
0b42a83b9adf Merge drm/drm-next into drm-misc-next
0db13eb32edc arm64: dts: qcom: sc8280xp-x13s: clean up PCIe2a pinctrl node
57abf83e5239 arm64: dts: qcom: sc8280xp-x13s: disable PCIe perst pull downs
3051a29f4b36 arm64: dts: qcom: sc8280xp-crd: clean up PCIe2a pinctrl node
abb627308873 arm64: dts: qcom: sc8280xp-crd: disable PCIe perst pull downs
d046abb24b16 arm64: dts: qcom: sm8550-hdk: add the Wifi node
03ca0c5704fd arm64: dts: qcom: msm8916-samsung-grandmax: Add touchscreen
78936ba55942 ARM: dts: qcom: {a,i}pq8064: correct clock-names in sata node
1d8e10488407 arm64: dts: qcom: msm8939-samsung-a7: rename pwm node to conform to dtschema
e13ee0b2172f arm64: dts: qcom: sm8550-qrd: use the PMU to power up bluetooth
88ee9c628bd4 arm64: dts: qcom: sm8650-hdk: use the PMU to power up bluetooth
48d5aeea177a ARM: dts: qcom: apq8064: drop reg-names on sata-phy node
2c283de878f2 ARM: dts: qcom: msm8974pro-samsung-klte: Add pstore node
17b53d8c8223 ARM: dts: qcom: ipq4019: adhere to pinctrl dtschema
d0c45ab8a662 ARM: dts: qcom: ipq8064: adhere to pinctrl dtschema
11a12f6fc7a9 ARM: dts: qcom: apq8064: adhere to pinctrl dtschema
1c623307e87b ARM: dts: qcom: asus,nexus7-flo: remove duplicate pinctrl handle in i2c nodes
1a6d6def3521 ARM: dts: qcom: apq8064-pins: correct error in drive-strength property
b4ac5f6587b9 arm64: dts: qcom: sa8775p: Mark APPS and PCIe SMMUs as DMA coherent
d998c5e74edc ARM: dts: qcom: pma8084: add pon node
f1285216f36a arm64: dts: qcom: pmi8950: Remove address from lpg node
3f641a2b3070 arm64: dts: qcom: pmi8994: Add label to wled node
73f787d57df6 arm64: dts: qcom: sa8775p: Add interconnects for ethernet
d3ef63f453e4 arm64: dts: qcom: x1e80100-crd: Add LID switch
2cc0178a8d23 spi: dt-bindings: mediatek,spi-mt65xx: add compatible for MT7981
5aa42c6a55c5 dt-bindings: iio: adc: Add AD4000
a004f6e85da9 spi: dt-bindings: cadence: Add Marvell overlay bindings documentation for Cadence XSPI
7c80d8e35035 ASoC: dt-bindings: dlg,da7213: Convert to json-schema
2bf959483648 ASoC: dt-bindings: qcom,apq8016-sbc-sndcard: move to separate binding
2a02f8c9706c ASoC: dt-bindings: fsl,imx-audio-es8328: Convert to dtschema
e93a42b439a4 ASoC: dt-bindings: ti,pcm512x: Convert to dtschema
177cd704fa06 ASoC: dt-bindings: renesas,rz-ssi: Document port property
43126174bd72 dt-bindings: ata: qcom,apq8064-ahci: add to dtschema
45173980516e dt-bindings: ata: qcom,ipq806x-ahci: use dtschema
cb17a4d004d0 arm64: dts: qcom: x1e80100: Disable SMB2360_2 by default
a402926ac92e arm64: dts: qcom: x1e80100: Fix up hex style
264ef825c53b dt-bindings: display: panel: Document Densitron DMT028VGHMCMI-1D TFT on ILI9806E DSI TCON
54e263416dfa dt-bindings: display: bridge: tc358867: Document default DP preemphasis
eef34e94eba5 dt-bindings: input: zinitix: Document touch-keys support
870a80df20f6 Merge tag 'v6.10' into next
f862bd1f991e dt-bindings: display: panel: Add compatible for starry-er88577
96dc7feb52cf ARM: dts: amlogic: meson8b-ec100: align GPIO keys node name with bindings
7e4093fb7b8c dt-bindings: display: panel: Add compatible for melfas lmfbx101117480
eed908e7b0c4 dt-bindings: display: himax-hx8394: Add Microchip AC40T08A MIPI Display panel
f299fa0b8567 dt-bindings: clock: imx8mp: Add #reset-cells property

git-subtree-dir: dts/upstream
git-subtree-split: 9b6ba2666d63ba15a83f8601f92ade2375265841
2024-12-24 12:03:04 -06:00
Heinrich Schuchardt
0be26928bf scripts: add volatge to spelling.txt
To avoid future misspells add volatge to spelling.txt.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-24 18:09:46 +01:00
Heinrich Schuchardt
354a70a5d9 board: freescale: typo volatge
%s/volatge/voltage/g

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
2024-12-24 18:09:46 +01:00
Heinrich Schuchardt
980bcccf41 crypto: typo volatge
%s/volatge/voltage/g

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
2024-12-24 18:07:53 +01:00
J. Neuschäfer
12876f8cd8 doc: fit: Format image tree source example
The example in kernel_fdt.rst is inconsistently indented, making it
difficult to read.

Indent the example with the same standard as the other examples:
Four spaces for the ReST code block and for every nesting level.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-24 17:06:59 +01:00
Heinrich Schuchardt
528b6b817e cmd/rng: fix long help text
The number of bytes may only be specified if a device number id provided.

Correct the formatting.

Acked-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-24 17:02:23 +01:00
Heinrich Schuchardt
f920257ac2 cmd: bootmenu typo 'read'
%s/read/reads/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-24 17:01:57 +01:00
Tom Rini
3391587e3f Prepare v2025.01-rc5
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-23 20:40:49 -06:00
Tom Rini
68736cf8e3 Merge tag 'u-boot-imx-next-20241223' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23987

- imx8m: Remove global ddrphy_trained_csr as it is a per board
  configuration.
- Add DM_FLAG_ACTIVE_DMA flag for FEC network driver to avoid potential
  kernel crash.
- Miscellaneous improvements for i.MX8M Venice Gateworks platforms.
2024-12-23 10:28:15 -06:00
Tom Rini
d532df3a61 configs: Resync with savedefconfig
Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-23 08:53:36 -06:00
Tom Rini
0d05bd2058 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2024-12-23 08:45:34 -06:00
Peng Fan
6016960ceb imx: Use per board ddrphy_trained_csr
Drop global ddrphy_trained_csr which maybe different with per board
ddrphy_trained_csr. DDR TOOL generates ddrphy_trained_csr for each
board, using the global ddrphy_trained_csr has risk that values may
be not up to date.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-23 08:10:15 -03:00
Meng Li
2f74cac8c3 net: fec_mxc: add DM_FLAG_ACTIVE_DMA flag for FEC network driver
When FEC network card works as the prime one in u-boot, and is in
active status, kernel might crash during booting up stage, especially
working with grub. Because the DMA of FEC is still in active status, and
copy data into memory if there is network data received. In this case, if
kernel allocated a part of memory that has overlay with the memory
used by DMA, kernel memory may be destroyed and cause kernel crashes.
Because before kernel boots up really, u-boot dm_remove_devices_flags()
can call the remove callback of FEC driver with DM_FLAG_ACTIVE_DMA
flag. In fecmxc_remove(), phy power is disabled, so there is no data
received. In this way, it makes sure that there is no DMA action, so
that avoid kernel crashing occurs.

Signed-off-by: Meng Li <Meng.Li@windriver.com>
2024-12-23 08:09:53 -03:00
Tim Harvey
7f02219eb6 arm: dts: imx8mp-venice-gw7*xx: fix TPM reset
With an IMX8MP based SOM the SPI RST is gpio4_9 instead of gpio1_11.
Fix this.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-23 08:09:30 -03:00
Tim Harvey
b0b8f8586f imx8m*-venice: define suitable address for SPL_LOAD_FIT_ADDRESS
define a suitable default address for CONFIG_SPL_LOAD_FIT_ADDRESS
to make it easier on folks enabling HABv4.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-23 08:09:11 -03:00
Tim Harvey
87bdb4e8a7 drivers: misc: gsc: add support for prescaled
Add support for Gateworks System Controller pre-scaled ADC input.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-23 08:08:51 -03:00
Tim Harvey
795a7425a7 drivers: misc: gsc: add support for fan controller
Add support for Gateworks System Controller fan tach input.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-23 08:08:51 -03:00
Tim Harvey
f331967b3d spi: mxc_spi: use proper clock for SPI bus
The mxc_get_clock function is around for compatibility with older
drivers that are not clock aware. In this case asking for the clk for
MXC_CSPI_CLK does not take into account there are multiple SPI busses on
modern IMX SoC's and it will return the clock for the first bus which
may not be used or configured.

In the case you are not using the first bus you will not get the proper
clock. Fix this by obtaining the clock rate from the bus clock.

This resolves an invalid SPI clock frequency configuration for SPI2 on a
board where SPI1 is not used.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-12-23 08:08:34 -03:00
Marek Vasut
70da4f2859 net: rswitch: Do not register disabled ports as ethernet devices
In case an rswitch port is described as disabled in DT, do not
register it as ethernet device in U-Boot. This way, such ports
cannot be accessed from U-Boot command line.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-22 22:34:32 +01:00
Marek Vasut
118a10e1dd ARM: renesas: Consistently enable ENV_OVERWRITE on Renesas R-Car
Move CONFIG_ENV_OVERWRITE=y into commont renesas_rcar.config to make sure
this configuration option is consistently enabled on all of Renesas R-Car
Gen2, Gen3, Gen4. Currently this option is not enabled on Gen4, this fix
corrects that omission.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-22 22:31:01 +01:00
Tom Rini
5947cd76ac Merge branch '2024-12-21-add-arm64-CI-host-support' into next
First, thanks to Simon Glass and also Linaro, we now have access to a
few fast arm64 host machines in our Gitlab instance, to use as CI
runners. This series finishes the work that I pushed earlier and Simon
had started that enables arm64 hosts to be used for most things now.

The first notable change, especially if you use this on your own Gitlab
instance is that "DEFAULT_TAG" is now unused and we instead have:
- DEFAULT_ALL_TAG:
- DEFAULT_ARM64_TAG:
- DEFAULT_AMD64_TAG:
- DEFAULT_FAST_AMD64_TAG:

This lets us say that some jobs can be run on all runners, because they
are small enough that anything we'd connect to CI is fast enough and it
also does not depend on the underlying host architecture. Next we have
tags for any arm64 host, or any amd64 host. Finally, we have a tag for
fast amd64 hosts. What these last three are for is that we have a few
jobs that need to run on amd64 hosts and so we have to restrict them
there, but we also have now reworked the world build jobs to build
(almost) everything in a single job and on the fast amd64 machines this
is still as quick as the old way was, in practice.

To reach this point, we say that the Xtensa jobs can only run on amd64
hosts. Our targets only work with the binary-only toolchain and so this
is a reasonable limit and we exclude them from the world build jobs. We
also need to deal with ensuring the right toolchain is used regardless
what the host architecture is and that we don't use the host toolchain
by accident. Finally, because some of these changes needed to be worked
out in the linter, fix some of the general warnings that notes as well.
2024-12-21 12:27:55 -06:00
Tom Rini
b0f5ae8e5e docker: Update to latest "Jammy" tag
Bring us up to the current Ubuntu "Jammy" tag.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
e82922ae11 doc: Expand what we say about building the docker container a bit
First, try and be slightly clearer about what "buildx" is with respect
to the docker build process.

Second, now that we build the container for both amd64 and arm64, we
should document how to make a docker "builder" that has multiple nodes.
With this one node should be amd64 and one node arm64, and with
reasonably fast arm64 hardware this will be much quicker than using
QEMU.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
9a87362962 docker: Prefer the kernelorg toolchains over "root"
We should always look in our downloaded toolchains first and then for
host-provided toolchains.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
a18235dd1a docker: Ensure we use the cross toolchain for aarch64 on arm64
We do not want to use the host toolchain for building our platforms in
CI (it is both too old, and would be inconsistent with our CI
practices). To do this we need to set the toolchain-prefix so that we
don't end up guessing "/opt/.../aarch64-linux-aarch64-linux-" as the
prefix.

Link: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/32
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
d3bb245855 Gitlab: Avoid downloading all artifacts in later stages
In the test.py stage of the build we mark the pytest results as
artifacts to save, so that they can be used for reports. This however
leads to all of the artifacts being downloaded (and then not used) in
later stages. Optimize this out by using an empty list of dependencies
here (which is the keyword for which artifacts are needed).

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
e64fd07cfa GitLab: Add a default workflow stanza
When validating our current pipeline, a warning is produced about a lack
of a default workflow. For how we use it, we can add a simple default of
"always".

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
7702608005 GitLab CI: Make wider use of tags
First, introduce DEFAULT_ALL_TAG, DEFAULT_ARM64_TAG, DEFAULT_AMD64_TAG
and DEFAULT_FAST_AMD64_TAG and remove the previous DEFAULT_TAG (as
anyone making use of that will need to adjust their jobs). This allows
us to say that some jobs can run on amd64 or arm64 hosts under the all
tag, while some jobs must run on amd64 (the Xtensa jobs due to
binary-only toolchains and sandbox for now) Then we rework the world
build stage to only run on our very fast amd64 hosts, or our arm64 hosts
(which are also very fast). This should result in a similar overall
build time but also a much more consistent overall build time as we
won't have the two big world jobs possibly run on our slower build
nodes.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-21 12:27:46 -06:00
Tom Rini
e54796e61f docker: Use ${TCVER} more widely
Remove the rest of the places where we hard-code the version of the
toolchain we're using.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
12d7be498a Docker/CI: Only test Xtensa on amd64 hosts
The xtensa architecture is interesting in that the platforms we support
are only valid on the binary-only toolchains as the DC233C instruction
set requires those toolchains (and not the FSF instruction set). Only
install the binary toolchain on amd64 hosts and only run the tests on
them as well.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-21 12:27:46 -06:00
Tom Rini
cfe57427c2 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
- Two rswitch fixes and a clock fix
2024-12-21 09:45:30 -06:00
Marek Vasut
fa0f9e83a0 net: rswitch: Add missing cache invalidate of TX descriptor
TFTP transfers of large files, for example 128 MiB, can sporadically
get stuck and the transfer slows down considerably.

This happens because the TX DMA descriptor in DRAM becomes out of sync
with the view of the TX DMA descriptor content from the CPU side, which
is viewed through the CPU caches. In order to guarantee these two views
are consistent, the cache over TX DMA descriptor that has possibly been
written by the rswitch hardware must first be invalidated, only then can
the descriptor be cleared and updated by the CPU, and finally the cache
over that area must be flushed back into DRAM to make sure the rswitch
hardware has consistent view of the updated descriptor content.

The very first invalidation operation was missing, which led to sporadic
corruption of the TX DMA descriptor. Fix it, add the missing invalidation
operation.

Reported-by: Enric Balletbo i Serra <eballetb@redhat.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Enric Balletbo i Serra <eballetb@redhat.com>
2024-12-20 22:20:37 +01:00
Marek Vasut
9899a6a750 net: renesas: Enable TFTP_TSIZE on all Renesas hardware
TFTP transfer size can be used to re-size the TFTP progress bar on
single line based on the server reported file size. Enable it by
default for Renesas hardware to avoid long scrolling walls of '#'
character during long TFTP transfers.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-20 22:20:37 +01:00
Geert Uytterhoeven
08806a6e52 clk: renesas: r8a779h0: Drop CLK_PLL2_DIV2 to clarify ZCn clocks
Early revisions of the R-Car V4M Series Hardware User’s Manual
contained an incorrect formula for the CPU core clocks:

    ZCnφ = (PLL2VCO x 1/2) x mult/32

Dang-san fixed this by using CLK_PLL2_DIV2 instead of CLK_PLL2 as the
parent clock.

In Rev.0.70 of the documentation, the formula was corrected to:

    ZCnφ = (PLL2VCO x 1/4) x mult/32

As the CPG Block Diagram now shows a separate 1/4 post-divider for PLL2,
the use of CLK_PLL2_DIV2 is a recurring source of confusion.  Hence get
rid of CLK_PLL2_DIV2, and include the proper 1/4 post-divider in the
invocation of the DEF_GEN4_Z() macro, like is done on other R-Car Gen4
(and Gen3) SoCs.

Ported from Linux commit
92850bed9d4d ("clk: renesas: r8a779h0: Drop CLK_PLL2_DIV2 to clarify ZCn clocks")

Reported-by: Vinh Nguyen <vinh.nguyen.xz@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/0d2789cac2bf306145fe0bbf269c2da5942bb68f.1728377724.git.geert+renesas@glider.be
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-20 22:20:37 +01:00
Tom Rini
5c8ef70f08 Merge tag 'xilinx-for-v2025.01-rc5-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.01-rc5 - second

- Fix find_ram_top() return to support configs > 4GB
2024-12-20 08:26:16 -06:00
Venkatesh Yadav Abbarapu
1b70b6c9cc common: memtop: Fix the return type for find_ram_top
As the return type is "int" for find_ram_top() function and
returning the "base" which is of phys_addr_t is breaking when the
"base" address is 64-bit. So fix this by updating the return type as
phys_addr_t.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Link: https://lore.kernel.org/r/20241220030742.1745984-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-12-20 09:17:43 +01:00
Manorit Chawdhry
c06705a9a1 Makefile: Match the full path to ccache for filtering
One can use ccache by keeping ccache in PATH or by providing the full
path to ccache as well. Providing the full path to ccache fails as the
current regex tries to look for ccache being the initial token during
filtering.

Do a greedy search to remove anything before ccache for regex matching.

Fixes: 04b1d84221 ("Makefile: fix empty MK_ARCH when using ccache")
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-19 12:18:57 -06:00
Ilias Apalodimas
0b7f4c7cf3 imx: Fix usable memory ranges for imx8m SOCs
commit e27bddff4b ("imx8m: Restrict usable memory to space below 4G boundary")
tried to adjust the usable memory limits on a 4GB boundary.

ram_top is described as 'top address of RAM used by U-Boot' and we want
to preserve that. This is defined as a phys_addr_t and unfortunately
its size differs across architectures. This has lead us to a weird
state where 32bit boards define it 'SZ_4GB - 1' and 64bit boards as
'SZ_4GB' unless it was otherwise defined.

With some recent LMB changes and specifically
commit 1a48b0be93 ("lmb: prohibit allocations above ram_top even from same bank")
the board fails to boot properly although the commit above is correct
since it's making sure that no memory above ram_top is usable -- but
added to our memory map so EFI can hand it over to the booted OS.

The reason for that is that during the LMB init we add all usable memory
in lmb_add_memory(). In that function any memory above ram_top gets added
as 'reserved' for LMB. With the current values tha's set to 0xFFFF_FFFF
for this board. Later LMB is trying to protect the memory area U-Boot lives
in with lmb_reserve_common(). The latter fails though since it tries to
add U-Boot top (which is 0xFFFF_FFFF as well) to U-Boot 'bottom'. This call
will fail since 1 byte of that memory range is already marked as 'reserved'.

Since we are close to the release, LMB seems to assume that the address
is rounded up and is the 'next address' and so does parsing and adding
memory ranges from DT files, bump the ram_top of the board by 1byte.

In the long run we should change all of the above and have 32b and 64b
platforms define ram_top identically.

Add a Fixes tag although the commit is correct, so people can figure out
the broken scenarios in the future.

Suggested-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Fixes: commit 1a48b0be93 ("lmb: prohibit allocations above ram_top even from same bank")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reported-by: João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>
Closes: https://lore.kernel.org/all/20241216114231.qpfwug3zfqkxn3d5@joaog-nb.corp.toradex.com/
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Fixes: 74f88b7221 ("ARM: imx: imx8m: Fix board_get_usable_ram_top()")
2024-12-19 12:17:52 -06:00
E Shattow
ff1d5d87d0 Revert "configs: JH7110: enable EFI_LOADER_BOUNCE_BUFFER"
("Enable EFI_LOADER_BOUNCE_BUFFER") is not the correct fix for the
problem it describes.

The change of memory addressing leading to side-effects in commit
22f2c9ed9f ("efi: memory: use the lmb API's for allocating and
freeing memory") is remedied by commit 1a48b0be93 ("lmb: prohibit
allocations above ram_top even from same bank").

This reverts commit 9c792ab336.
2024-12-19 12:17:44 -06:00
Heinrich Schuchardt
d701c6ab42 net: lwip: check if network device is available in do_dhcp
eth_get_dev() returns NULL if no network device is available.
Not checking the return value leads to a crash when the device
pointer is dereferenced.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-19 12:17:37 -06:00
Heinrich Schuchardt
b6691d0add net: lwip: do not return CMD_RET_USAGE if no interface
If the dns command cannot find a network interface, we should return
CMD_RETFAIURE and not -1 (CMD_RET_USAGE).

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-19 12:17:32 -06:00
Tom Rini
9378307136 binman: Regenerate tools/binman/entries.rst
There have been a few changes to the areas that this file documents
without having regenerated the file. Do so now.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-19 10:19:57 -06:00
Tom Rini
1688f84745 Merge tag 'u-boot-dfu-20241219' of https://source.denx.de/u-boot/custodians/u-boot-dfu
CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/23951

Android:
- Fix kcmdline_extra support when parsing boot image
- Fix memory leak when after bootargs concatenation
- Fix length calculation when merging bootargs, cmdline and kcmdline
2024-12-19 10:19:29 -06:00
Tom Rini
078542c346 Merge branch '2024-12-19-assorted-tooling-updates' into next
This brings in assortment of updates to our python tooling, from Paul
HENRYS <paul.henrys_ext@softathome.com>
2024-12-19 09:14:34 -06:00
Paul HENRYS
e7d7d3307c tools: binman: etype: fit: Append DTB directory to the list of input directories
When specifying a directory containing DTBs with 'fit,fdt-list-dir', it can be
handy not to have to also specify this directory to the input directories of
binman with '-I' option and use the method tools.append_input_dirs() append it.
This avoids to have to specify the DTB directory in both the device tree
provided to binman and through '-I' option to binman.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
c7896b3e48 tools: u_boot_pylib: Allow to append input directories to indir
append_input_dirs() can be used to append a list of input directories to indir
global list.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
a4345b1934 tools: binman: etype: Allow to replace 'NAME' in node names
This change allows to replace both 'SEQ' and 'NAME' keywords by respectively a
sequence number and the name of the FDT to provide more flexibility in the node
name for the device trees included in the FIT.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
f5c1b12267 tools: binman: Pass a list of input directory to EnsureCompiled()
Input directories can be passed to binman using the '-I' option and those
input directories are now also passed to 'dtc' when run by binman.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
9cc36d654c tools: dtoc: Allow passing optional input directories
An optional list of input directories can be passed to EnsureCompiled() which
allows to pass a list of directories where input files can be searched.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
1a957ff5d4 tools: binman: Add tests for FIT with data encrypted by mkimage
Test the property 'fit,encrypt' to encrypt FIT data.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
2024-12-19 09:10:34 -06:00
Paul HENRYS
e2cc9b4fc1 tools: binman: add 'fit, encrypt' property to pass keys directory to mkimage
mkimage can be used for both signing the FIT or encrypt its content and the
option '-k' can be used to pass a directory where both signing and encryption
keys can be retrieved. Adding 'fit,encrypt' property to the 'fit' node, leads to
try to find keys directory among binman include directories.
_get_priv_keys_dir() is renamed as _get_keys_dir() and adapted to support both
signing and encryption nodes in the FIT.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
Paul HENRYS
79d7b11102 aes: Allow to store randomly generated IV in the FIT
When the initialisation vector is randomly generated, its value shall be
stored in the FIT together with the encrypted data. The changes allow to
store the IV in the FIT also in the case where the key is not stored in
the DTB but retrieved somewhere else at runtime.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-19 09:10:34 -06:00
J. Neuschäfer
337bfdce5a powerpc: Support using upstream devicetrees
For new PowerPC developments, it will be useful to borrow devicetrees
from Linux. This patch makes it possible.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2024-12-18 18:59:03 -06:00
Roger Quadros
6f99dc241d phy: don't spam console if phys property is absent in device node
In generic_phy_get_bulk(), if 'phys' property is absent in
the device node then it is not an error condition.

Change print message verbosity to debug to avoid spamming
console in such cases.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2024-12-18 18:58:59 -06:00
Hiago De Franco
9c5399a73d verdin-am62: fix FASTBOOT_BUF_ADDR and FASTBOOT_BUF_SIZE
The current value of CONFIG_FASTBOOT_BUF_ADDR is incorrect for hardware
with 512MB and 1GB of RAM. The RAM address ranges for these devices are:

- 512MB:
  - Start: 0x80000000
  - End:   0xA0000000
- 1GB:
  - Start: 0x80000000
  - End:   0xC0000000

The current buffer address makes fastboot downloads work only on
hardware with 2GB of RAM.

To fix this issue:
1. Lower CONFIG_FASTBOOT_BUF_ADDR to 0x88200000. This makes the buffer
   to be equal ot CONFIG_SYS_LOAD_ADDR, which is a safe address to
   download files using fastboot.

2. Reduce the size of the download buffer to 128MB, avoiding overlaps
   with RAMDISK_ADDR_R. This is a good enough value for individual
   downloads.

These changes make fastboot downloads work with 512MB and 1GB devices.

Fixes: defe30a78b ("verdin-am62: add DFU, USB and UUU fastboot support")
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-12-18 18:58:55 -06:00
Paul HENRYS
37f0c32ca2 arch: x86: lib: Add support of legacy 64-bit entry point at 0x200
Support of legacy 64-bit entry point was already present when booting a bzimage
with 'zboot' but not supported with 'bootm' when the x86_64 Linux kernel is
embedded in a FIT image.

Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-18 15:43:50 -06:00
Tom Rini
511b8dea97 Merge patch series "sandbox: repair compile and run-time for OF_EMBED case"
Evgeny Bachinin <EABachinin@salutedevices.com> says:

This patch-set repairs ability to use sandbox with CONFIG_OF_EMBED=y.

For now, to use OF_EMBED, the following must be done
1) sandbox64_defconfig should have:
  ```
  -CONFIG_OF_LIVE=y
  +CONFIG_OF_EMBED=y
  ```

2) On sandbox when CONFIG_OF_EMBED=y, the u-boot process can't start
due to:
  ```
  Bloblist at b000 not found (err=-2)
  initcall failed at call 000000000011829c (err=-2: No such file or \
      directory)
  ### ERROR ### Please RESET the board ###
  ```
  So, it is natural desire to disable CONFIG_BLOBLIST just to test
sandbox with OF_EMBED=y (disable it one way or another):
  ```
    config SANDBOX
  -	select BLOBLIST
  +     select BLOBLIST if SOME_NON_EXISTING_OPTION
  ```

3) As a result, having such changes (CONFIG_OF_EMBED=y &&
CONFIG_BLOBLIST=n) leads to the link & run-time errors, being fixed
by this patch series.

Link: https://lore.kernel.org/r/20241202-sandbox_repair_of_embed-v1-0-05aff4b0ccf7@salutedevices.com
[trini: The final patch is dropped as no longer relevant with Simon's
        rework to that function which is now applied.]
2024-12-18 15:43:24 -06:00
Tom Rini
b6e1ac89dc Merge patch series "fdt: Correct condition for receiving bloblist"
This series is from Simon Glass <sjg@chromium.org>.

It first corrects the test for checking if a bloblist could have come
from TPL and so we check for a device tree, and then changes the
argument order for board_fdt_blob_setup() to be more inline with our
usual argument ordering.

Link: https://lore.kernel.org/r/20241102174944.412088-1-sjg@chromium.org
2024-12-18 15:19:16 -06:00
Evgeny Bachinin
90856d695f test: sandbox: fix link error with do_ut_bootm if BLOBLIST=n
Having CONFIG_OF_EMBED=y && CONFIG_BLOBLIST=n leads to the link
error:
```
ld: /tmp/ccwtRVty.ltrans28.ltrans.o:(.data.rel+0x4e8): undefined \
                                            reference to `do_ut_bootm'
```

Fixes: fe158657a5 ("test: inconsistent bootm tests")
Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
2024-12-18 15:19:16 -06:00
Evgeny Bachinin
6970eeb788 test: sandbox: fix link error with do_ut_bloblist if BLOBLIST=n
Having CONFIG_OF_EMBED=y && CONFIG_BLOBLIST=n leads to the link
error:
```
ld: /tmp/ccwtRVty.ltrans28.ltrans.o:(.data.rel+0x4b0): undefined \
                                         reference to `do_ut_bloblist'
```

Fixes: 6ea5df39e8 ("test: Only enable bloblist test when supported")
Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-18 15:19:16 -06:00
Evgeny Bachinin
844f87366e test: sandbox: fix invalid_use_of_IF_ENABLED_INT if BLOBLIST=n
Having CONFIG_OF_EMBED=y && CONFIG_BLOBLIST=n leads to the link
error:
```
ld: /tmp/ccRVty.ltrans40.ltrans.o: in function `lib_test_is_enabled':
test/lib/kconfig.c:24: undefined reference to \
                                       `invalid_use_of_IF_ENABLED_INT'
ld: test/lib/kconfig.c:26: undefined reference to \
                                `invalid_use_of_CONFIG_IF_ENABLED_INT'
```

Fixes: 29784d62ed ("test: Add some tests for kconfig.h")
Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-18 15:19:16 -06:00
Evgeny Bachinin
e5178be686 sandbox: fix bloblist_finish() linker error if BLOBLIST=n
Having CONFIG_OF_EMBED=y && CONFIG_BLOBLIST=n leads to the link
error:
```
ld: /tmp/ccwtRVty.ltrans0.ltrans.o: in function `state_uninit':
arch/sandbox/cpu/state.c:508: undefined reference to `bloblist_finish'
```

Fixes: 1c52fcca72 ("sandbox: Write out bloblist when exiting")
Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-18 15:19:16 -06:00
Simon Glass
fc37a73e66 fdt: Swap the signature for board_fdt_blob_setup()
This returns a devicetree and updates a parameter with an error code.
Swap it, since this fits better with the way U-Boot normally works. It
also (more easily) allows leaving the existing pointer unchanged.

No yaks were harmed in this change, but there is a very small code-size
reduction.

For sifive, the OF_BOARD option must be set for the function to be
called, so there is no point in checking it again. Also OF_SEPARATE is
defined always.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
[trini: Update total_compute]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-18 15:18:59 -06:00
Simon Glass
447f18d00d fdt: Correct condition for receiving bloblist
The condition for receiving a bloblist from TPL is reversed. This was
only noticed are the other fixes landed. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
2024-12-18 15:16:55 -06:00
Tom Rini
b066ac51e0 Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv into next
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23926

- Board: Support LicheeRV Nano
- Board: Support bananapi-f3
- Board: Switch to OF_UPSTREAM for StarFive JH7110
- Board: Add sdhci driver for TH1520 SoC
2024-12-18 08:01:48 -06:00
Tom Rini
69bd83568c Merge tag 'u-boot-stm32-20241218' of https://source.denx.de/u-boot/custodians/u-boot-stm
CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/23931

- Restore SPL boot from sdcard for STM32MP1 platforms
- Fix STACK_SIZE for STM32 MCU's board
2024-12-18 08:01:17 -06:00
Nicolas Belin
9e5fad0f79 boot: android: rework bootargs concatenation
Rework the bootargs concatenation allocating more accurately
the length that is needed.
Do not forget an extra byte for the null termination byte as,
in some cases, the allocation was 1 byte short.

Fixes: 86f4695b ("image: Fix Android boot image support")
Signed-off-by: Nicolas Belin <nbelin@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241217-fix-bootargs-concatenation-v2-3-b2fd7cf4e130@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-12-18 14:04:23 +01:00
Nicolas Belin
fd8b44a81b boot: android: free newbootargs when done
Free newbootargs when the concatenation is done and bootargs env
is set.

Fixes: 86f4695b ("image: Fix Android boot image support")
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Nicolas Belin <nbelin@baylibre.com>
Link: https://lore.kernel.org/r/20241217-fix-bootargs-concatenation-v2-2-b2fd7cf4e130@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-12-18 14:04:23 +01:00
Nicolas Belin
53a0ddb6d3 boot: android: fix extra command line support
Check that the value at the address kcmdline_extra is not 0
instead of checking the address value itself keeping it
consistent with what is done for kcmdline.

Fixes: b36b227b ("android: boot: support extra command line")
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Nicolas Belin <nbelin@baylibre.com>
Link: https://lore.kernel.org/r/20241217-fix-bootargs-concatenation-v2-1-b2fd7cf4e130@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-12-18 14:04:23 +01:00
Patrice Chotard
06a8063ec9 configs: stm32mp1: Restore boot SPL from sdcard for Engicam i.Core STM32MP1 C.TOUCH 2.0
Restore boot SPL from sdcard for Engicam i.Core STM32MP1 C.TOUCH 2.0.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:34:10 +01:00
Patrice Chotard
f3f14c2e3b configs: stm32mp1: Restore boot SPL from sdcard for Engicam MicroGEA STM32MP1 MicroDev 2.0 7" OF
Restore boot SPL from sdcard for Engicam MicroGEA STM32MP1 MicroDev 2.0 7" OF

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:34:10 +01:00
Patrice Chotard
fb612b4b53 configs: stm32mp1: Restore boot SPL from sdcard for Engicam i.Core STM32MP1 EDIMM2.2
Restore boot SPL from sdcard for Engicam i.Core STM32MP1 EDIMM2.2.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:34:10 +01:00
Patrice Chotard
c8eacfcedc configs: stm32mp1: Restore boot SPL from sdcard for Engicam i.Core STM32MP1 C.TOUCH 2.0
Restore boot SPL from sdcard for Engicam i.Core STM32MP1 C.TOUCH 2.0.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:34:10 +01:00
Patrice Chotard
7169576807 configs: stm32mp1: Restore boot SPL from sdcard for stm32mp15
Restore boot SPL from sdcard for STM32MP1 platforms.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:34:10 +01:00
Marek Vasut
5470a6a0b1 ARM: dts: stm32: Deduplicate CONFIG_OF_SPL_REMOVE_PROPS on DH STM32MP15xx DHSOM
The content of CONFIG_OF_SPL_REMOVE_PROPS is the same in both
STM32MP15xx DHCOM and DHCOR defconfigs, deduplicate the content
into stm32mp15_dhsom.config .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-18 11:30:28 +01:00
Marek Vasut
72c6a40fad ARM: dts: stm32: Drop access-controllers from SPL DT on DH STM32MP15xx DHSOM
The access-controllers DT property is not useful in STM32MP15xx SPL,
remove it to reduce SPL control DT size. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-18 11:30:27 +01:00
Marek Vasut
dae1f13daa ARM: dts: stm32: Reinstate SPL_SYS_MMCSD_RAW_MODE on DH STM32MP15xx DHSOM
Commit 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")
broke booting from SD card on STM32MP15xx , reinstate raw mode SD
boot configuration options and select the correct raw mode partition
for STM32MP15xx to fix SD boot on STM32MP15xx DHSOM.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")
Reported-by: Patrice Chotard <patrice.chotard@foss.st.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-18 11:30:27 +01:00
Marek Vasut
b651906122 ARM: dts: stm32: Reinstate missing root oscillators on DH STM32MP15xx DHCOR
The root oscillators reference used to be in rcc node since
3d15245502 ("ARM: dts: stm32mp1: explicit clock reference needed by RCC clock driver")
however this is not part of upstream stm32mp151.dtsi . The
RCC driver does need this reference, reinstate it locally.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-18 11:30:27 +01:00
Marek Vasut
edc425ef16 ARM: dts: stm32: Reinstate missing root oscillators on STM32MP15xx
The root oscillators reference used to be in rcc node since
3d15245502 ("ARM: dts: stm32mp1: explicit clock reference needed by RCC clock driver")
however this is not part of upstream stm32mp151.dtsi . The
RCC driver does need this reference, reinstate it globally.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-18 11:29:47 +01:00
Patrice Chotard
d4ce588515 Kconfig: Set STACK_SIZE to 16KB for STM32 MCUs
Since commit 6534d26ee9 ("lmb: do away with arch_lmb_reserve()"),
STM32F746-disco hangs when loading device tree just before starting
kernel:

Retrieving file: /stm32f746-disco.dtb
Kernel image @ 0xc0008000 [ 0x000000 - 0x19ae00 ]
Flattened Device Tree blob at c0408000
   Booting using the fdt blob at 0xc0408000
Working FDT set to c0408000
   Loading Device Tree to c05f8000, end c05ff71c ...

Adjust STACK_SIZE to 16KB for STM32 MCUs (F4/F7 and H7) boards
to fix kernel boot process as some of these boards embeds a limited
amount of memory.

Fixes: 6534d26ee9 ("lmb: do away with arch_lmb_reserve()")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-12-18 11:27:14 +01:00
Randolph
e59241f8b1 riscv: spl: add FIT name for RISC-V Falcon mode
The FIT name in RISC-V Falcon mode should be different from that in
normal boot mode; it is called linux.itb. If the setting is missing
in common/spl, the normal boot file name will be used.

Signed-off-by: Randolph <randolph@andestech.com>
2024-12-18 13:19:16 +08:00
Kongyang Liu
3cd3f47cae doc: spacemit: bananapi_f3: document Banana Pi F3 board
Add document for Banana Pi F3 board which based on SpacemiT's K1 SoC.

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Signed-off-by: Huan Zhou <pericycle.cc@gmail.com>
Tested-by: Marcel Ziswiler <marcel@ziswiler.com>
Reviewed-by: Yixun Lan <dlan@gentoo.org>
2024-12-18 13:19:16 +08:00
Kongyang Liu
1cd239f444 riscv: spacemit: bananapi_f3: initial support added
Add basic support for SpacemiT's Banana Pi F3 board.
Update the k1.dtsi align with mainline.
Note that the device tree files follow the mainline Linux source[1].

Links: https://patches.linaro.org/project/linux-serial/patch/20240730-k1-01-basic-dt-v5-8-98263aae83be@gentoo.org/ [1]

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Signed-off-by: Huan Zhou <pericycle.cc@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Yixun Lan <dlan@gentoo.org>
Tested-by: Marcel Ziswiler <marcel@ziswiler.com>
2024-12-18 13:19:16 +08:00
Maksim Kiselev
e10cf618e3 configs: th1520_lpi4a: enable mmc controller support
Enable driver for DesignWare MSHC. TH1520 supports all
speed modes up to HS400ES and UHS SDR105.

Also enable ADMA and mmc command.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
2024-12-18 13:19:16 +08:00
Maksim Kiselev
dced3ec324 riscv: dts: t-head: Add sdhci and emmc nodes
Add SDHCI and EMMC controlles nodes on TH-1520 SoC. And enable them for
Lichee module 4A.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
2024-12-18 13:19:16 +08:00
Maksim Kiselev
1cf3e900af mmc: snps_sdhci: Add sdhci driver support for TH1520 SoC
Add support for DesignWare SDHCI host controller on Alibaba TH1520 SoC

Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Tested-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-18 13:19:16 +08:00
Hal Feng
2c1cb8837b riscv: cpu: jh7110: Sort the list of imply statements
The imply statements should be sorted in the sequence
of appearance in .config.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:16 +08:00
Hal Feng
8ace850059 board: starfive: spl: Support multiple DTBs for JH7110 based boards
Get product ID and the other information from EEPROM, use them to select
the correct DTB.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:16 +08:00
Hal Feng
c129fb9efc board: starfive: spl: Fix the wrong use of CONFIG_IS_ENABLED()
The prefix "SPL_" is not needed when using CONFIG_IS_ENABLED().

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Fixes: 5ecf9b0b8a ("board: starfive: add StarFive VisionFive v2 board support")
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:16 +08:00
Hal Feng
c9489a9d32 riscv: dts: jh7110: Support multiple DTBs in a Fit image
Support multiple DTBs for JH7110 based boards, so they can
select the correct DT at runtime.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: E Shattow <lucent@gmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
a0afca0129 configs: visionfive2: Enable MULTI_DTB_FIT for JH7110 based board DT
So JH7110 based boards can select their own DT at runtime.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: E Shattow <lucent@gmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
d8479f51f9 board: starfive: spl: Drop the unneeded DT modification code
As OF_UPSTREAM is implemented, these code are redundant.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
1b52a220d3 riscv: dts: jh7110: Add u-boot device tree for JH7110 based boards
To support the other JH7110 based boards, add u-boot
device tree for them.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: E Shattow <lucent@gmail.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: H Bell <dmoo_dv@protonmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
6bbe95ef72 riscv: dts: jh7110: Move common code to the new jh7110-common-u-boot.dtsi
To support JH7110 based boards besides v1.3B,
add a common dtsi and add common code to it.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: E Shattow <lucent@gmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
0b7bf26d06 pcie: starfive: Make the driver compatible with upstream DT
There are difference between upstream DT and the old DT
in terms of reg base, reset gpio and syscon. Make the driver
compatible with upstream DT.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
b364642f61 mmc: dw_mmc: Add "starfive, jh7110-mmc" compatible to match upstream DT
Make the U-Boot JH7110 MMC driver compatible with upstream DT.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
503fc85481 riscv: dts: jh7110: Make u-boot device trees adapting to upstream DT
Add u-boot features to the U-Boot device tree.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Reviewed-by: E Shattow <lucent@gmail.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Hal Feng
84d3911a01 dts: starfive: Switch to using upstream DT
Enable OF_UPSTREAM to use upstream DT and add starfive/ prefix to
the DEFAULT_DEVICE_TREE. Rename jh7110-starfive-visionfive-2-u-boot.dtsi
to jh7110-starfive-visionfive-2-v1.3b-u-boot.dtsi and set the v1.3b
device tree as the default device tree.

Drop redundant DT files from arch/riscv/dts/ and redundant clock and
reset definitions from include/dt-bindings/.

Since the old clock definitions is a little different from those in
upstream Linux, update the clock definitions in clock drivers
accordingly.

Tested-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: E Shattow <lucent@gmail.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
2024-12-18 13:19:15 +08:00
Thomas Bonnefille
04bcc87f0d board: add support for LicheeRV Nano
The LicheeRV Nano is a small SBC using the Sophgo SG2002 RISCV SoC.

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
2024-12-18 13:19:15 +08:00
Thomas Bonnefille
4897de90c3 riscv: dts: sophgo: add device tree for LicheeRV Nano
Import a slightly modified version of the LicheeRV Nano and SG2002
device trees from the Linux Kernel. The current supported IPs are UART,
MMC, Timer, PLIC and CLINT.

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
2024-12-18 13:19:15 +08:00
Thomas Bonnefille
62181bbf71 doc: add LicheeRV Nano and SG2002 SoC
Provide a page describing the usage of U-Boot on the LicheeRV Nano and a
description of the board.

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-12-18 13:19:15 +08:00
Tom Rini
4561977c10 Merge branch 'u-boot-nand-20241212' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash into next
CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/23837

Small addition to uboot-nand. Nothing relevant for now. Anyway
a nice new command coming from Miquel Raynal and small changes.
2024-12-17 13:17:41 -06:00
Michael Trimarchi
1fac577207 nand: Add a watch command
This is a debug command to monitor the retention state of the data on
the array. The command needs a duplication of the mtd_read_oob()
function to actually return the maximum number of bitflips encountered
while reading the page. We could write a specific implementation for the
Sunxi driver but this is probably enough.

    nand watch <off> <size> - check an area for bitflips
    nand watch.part <part> - check a partition for bitflips
    nand watch.chip - check the whole device for bitflips

The output may be a bit verbose and could look like:

    => nand watch.chip
    device 0 whole chip
    size adjusted to 0xff60000 (5 bad blocks)

    NAND watch for bitflips in area 0x0-0xff60000:
    Page       0 (0x00000000) -> error -74
    Page       1 (0x00000800) -> error -74
    Page       2 (0x00001000) -> error -74
    Page       3 (0x00001800) -> error -74
    Page       4 (0x00002000) -> error -74
    Page       5 (0x00002800) -> error -74
    Page       6 (0x00003000) -> error -74
    Page       7 (0x00003800) -> error -74
    Page       8 (0x00004000) -> error -74
    Page       9 (0x00004800) -> error -74
    Page      10 (0x00005000) -> error -74
    Page      11 (0x00005800) -> error -74
    Page      12 (0x00006000) -> error -74
    Page      13 (0x00006800) -> error -74
    Page      14 (0x00007000) -> error -74
    Page      15 (0x00007800) -> error -74
    Page      16 (0x00008000) -> error -74
    Page      17 (0x00008800) -> error -74
    Page      18 (0x00009000) -> error -74
    Page      19 (0x00009800) -> error -74
    Page      20 (0x0000a000) -> error -74
    Page      21 (0x0000a800) -> error -74
    Page      22 (0x0000b000) -> error -74
    Page      23 (0x0000b800) -> error -74
    Page    1110 (0x0022b000) -> up to  1 bf/chunk
    Page    1122 (0x00231000) -> up to  1 bf/chunk
    Page    1132 (0x00236000) -> up to  1 bf/chunk
    Page    1362 (0x002a9000) -> up to  1 bf/chunk
    Page    4990 (0x009bf000) -> up to  1 bf/chunk
    Page    5728 (0x00b30000) -> up to  1 bf/chunk
    Page    7116 (0x00de6000) -> up to  1 bf/chunk
    Page    7160 (0x00dfc000) -> up to  1 bf/chunk
    Page    7494 (0x00ea3000) -> up to  1 bf/chunk
    Page   10842 (0x0152d000) -> up to  1 bf/chunk
    Page   11614 (0x016af000) -> up to  1 bf/chunk
    Page   11970 (0x01761000) -> up to  1 bf/chunk
    Page   12536 (0x0187c000) -> up to  1 bf/chunk
    Page   12687 (0x018c7800) -> up to  1 bf/chunk
    Page   14298 (0x01bed000) -> up to  1 bf/chunk
    Page   18268 (0x023ae000) -> up to  1 bf/chunk
    Page   18760 (0x024a4000) -> up to  1 bf/chunk
    Page   21440 (0x029e0000) -> up to  1 bf/chunk
    Page   22336 (0x02ba0000) -> up to  1 bf/chunk
    Page   22592 (0x02c20000) -> up to  1 bf/chunk
    Page   23872 (0x02ea0000) -> up to  1 bf/chunk
    Page   27584 (0x035e0000) -> up to  1 bf/chunk
    Page   35008 (0x04460000) -> up to  1 bf/chunk
    Page   37184 (0x048a0000) -> up to  1 bf/chunk
    Page   41728 (0x05180000) -> up to  1 bf/chunk
    Page   42176 (0x05260000) -> up to  1 bf/chunk
    Page   43200 (0x05460000) -> up to  1 bf/chunk
    Page   43328 (0x054a0000) -> up to  1 bf/chunk
    Page   45376 (0x058a0000) -> up to  1 bf/chunk
    Page   47040 (0x05be0000) -> up to  1 bf/chunk
    Page   47552 (0x05ce0000) -> up to  1 bf/chunk
    Page   49344 (0x06060000) -> up to  1 bf/chunk
    Page   49856 (0x06160000) -> up to  1 bf/chunk
    Page   62784 (0x07aa0000) -> up to  1 bf/chunk
    Page   65153 (0x07f40800) -> up to  1 bf/chunk
    Page   65228 (0x07f66000) -> up to  1 bf/chunk
    Page   65382 (0x07fb3000) -> up to  1 bf/chunk
    Page   98624 (0x0c0a0000) -> up to  1 bf/chunk
    Page  101952 (0x0c720000) -> up to  1 bf/chunk
    Page  107584 (0x0d220000) -> up to  1 bf/chunk
    Page  118208 (0x0e6e0000) -> up to  1 bf/chunk
    Page  126656 (0x0f760000) -> up to  1 bf/chunk
    Page  127680 (0x0f960000) -> up to  1 bf/chunk
    Page  129920 (0x0fdc0000) -> up to  1 bf/chunk
    Maximum number of bitflips: 1
    Pages with bitflips: 44/130752

It is also possible to reduce the output with the .quiet suffix in order
to just show the summary.

    => nand watch.chip
    device 0 whole chip
    size adjusted to 0xff60000 (5 bad blocks)

    NAND watch for bitflips in area 0x0-0xff60000:
    Maximum number of bitflips: 1
    Pages with bitflips: 44/130752

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-12-17 13:17:41 -06:00
Marcus Folkesson
bb736358e5 mtd: nand: raw: atmel: remove unnecessary return value
The condition 'ret' is always true as it is never set to other than
-EIO.

Remove 'ret' and the condition for copy.

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Reviewed-by: Michael Trimarchi <micheal@amarulasolutions.com>
2024-12-17 13:17:41 -06:00
Heinrich Schuchardt
75ad667aad cmd: mtd: simplify mtd_show_device()
CONFIG_DM=y is always true.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-12-17 13:17:41 -06:00
Tom Rini
a4ee6396fe Merge tag 'u-boot-imx-next-20241217' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23877

- Add support for Apalis iMX8 1300MHz version.
- Don't advertise Gbit on (R)MII on the FEC controller.
- Fix srktool -c usage by removing spaces.
2024-12-17 13:16:22 -06:00
Patrice Chotard
25fb58e88a ARM: stm32mp: Fix dram_bank_mmu_setup() for LMB located above ram_top
Previously, all LMB marked with LMB_NOMAP (above and below ram_top)
are considered as invalid entry in TLB.

Since commit 1a48b0be93 ("lmb: prohibit allocations above ram_top
 even from same bank") all LMB located above ram_top are now marked
LMB_NOOVERWRITE and no more LMB_MAP.

This area above ram_top is reserved for OPTEE and must not be cacheable,
otherwise this leads to a Panic on some boards (Issue on STM32MP135F-DK).

Restore previous behavior by marking invalid entry all TLB above ram_top.

Fixes: 1a48b0be93 ("lmb: prohibit allocations above ram_top even from same bank")

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
cc: Sughosh Ganu <sughosh.ganu@linaro.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-12-17 09:14:01 -06:00
Simon Glass
1cde96bee5 gitlab: Add an rpi to the sjg lab
I have an original rpi installed now, loaded with OS Lite (32-bit)
Add an entry for it so that it can be used for testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-17 09:13:31 -06:00
Simon Glass
315fd02729 boot: Use correct PHASE_ variable for expo
This patch was written before the XPL change-over. Update the Makefile
condition to the new way.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: ae3b5928d6 ("x86: coreboot: Allow building an expo for...")
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-12-17 09:11:49 -06:00
Simon Glass
a8f09d6282 test/py: Always use the current dir as the source tree
The logic in get_details() retrieves the default source directory from
the Labgrid settings. This is convenient for interactive use, since it
allows pytests to be run from any directory and still find the source
tree.

However, it is not actually correct.

Gitlab sets the current directory to the source tree and expects that to
be used. At present it is ignored. The result is that Gitlab builds
whatever happens to be in the default source directory, ignoring the
tree it is supposed to be building.

Fix this by using the directory of the source tree, always. This is
obtained by looking at the grandparent of the conftest.py file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
Fixes: bf89a8f1fc ("test: Introduce the concept of a role")
Tested-by: Tom Rini <trini@konsulko.com>
2024-12-17 09:11:43 -06:00
Tom Rini
429d4846ea Merge patch series "Tegra: fix clock init"
Svyatoslav Ryhel <clamor95@gmail.com> says:

This should fix:
https://lore.kernel.org/all/20241201164810.GT3600562@bill-the-cat/T/#m2b62b471fd37e4c9725c98547e2a919cf11db5e5

Link: https://lore.kernel.org/r/20241213145319.10956-1-clamor95@gmail.com
2024-12-16 17:07:42 -06:00
Svyatoslav Ryhel
b46bd4f874 driver: clk: tegra: init basic clocks on probe
In case DM drivers probe earlier than board clock setup is done
init of basic clocks should be done in CAR driver probe as well.
Add it to avoid possible clock related problems.

Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-12-16 17:07:39 -06:00
Svyatoslav Ryhel
1db256a347 driver: clk: tegra: partially support PLL clocks
Return PLL id into struct clk if PLL is parsed from device
tree instead of throwing an error. Allow requesting PLL
clock rate via get_rate op.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-12-16 17:07:39 -06:00
Tom Rini
e46fe0daf3 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-mmc
CI: https://source.denx.de/u-boot/custodians/u-boot-mmc/-/pipelines/23871

- Fix potential timer value truncation
2024-12-16 16:17:13 -06:00
Christoph Fritz
7cf57825eb imx: hab: fix srktool -c usage by removing spaces
The srktool option -c does not allow spaces between certificate
filenames. Only commas (',') should separate the filenames. If spaces
are incorrectly included, srktool will not display an error or warning
message but will only process the first certificate in the list.

So adapt documentation accordingly.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
2024-12-16 14:35:58 -03:00
Ronald Wahl
822afeb7bf mmc: Fix potential timer value truncation
On 64bit systems the timer value might be truncated to a 32bit value
causing malfunctions. For example on ARM the timer might start from 0
again only after a cold reset. The 32bit overflow occurs after a bit
more than 49 days (1000 Hz counter) so booting after that time may lead
to a surprise because the board might become stuck requiring a cold
reset.

Signed-off-by: Ronald Wahl <ronald.wahl@legrand.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-16 11:24:42 +09:00
Peng Fan
3b3c7280b8 smbios: address build warning
include display_options.h to address build warning:
lib/smbios.c: In function ‘smbios_update_version’:
lib/smbios.c:305:9: warning: implicit declaration of function ‘print_buffer’
[-Wimplicit-function-declaration]
         print_buffer((ulong)ptr, ptr, 1, old_len + 1, 0);
         ^~~~~~~~~~~~

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-15 11:41:32 -06:00
Prasanth Babu Mantena
d87414be80 arm: mach-k3: fix typo in devstat macro name
Fix spelling mistake in the board init files of j721e and j721s2.

s/WKUP_DEVSTAT_MCU_OMLY_MASK/WKUP_DEVSTAT_MCU_ONLY_MASK

Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
2024-12-15 11:40:44 -06:00
Yuri Zaporozhets
ae12873de7 bios_emulator: fix incorrect printing of address in "jump near immediate"
In the x86emuOp_jump_call_near_IMM() function the target address is
printed incorrectly when jumping backwards. For example instead of
"jmp 0xe8bc" the string "jmp ffffe8bc" is printed. That's because
of the following macro:

    DECODE_PRINTF2("%04x\n", ip);

while it should be

    DECODE_PRINTF2("%04x\n", (u16)ip);

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-12-15 11:39:23 -06:00
Yuri Zaporozhets
5fb5180a16 bios_emulator: fix incorrect printing of address in "call near immediate"
In the x86emuOp_call_near_IMM() function the address of CALL is
printed incorrectly when jumping backwards. For example, the correct
disassemble of the bytes below would be:

0000E8DE  E8DBFF            call 0xe8bc

(verified by ndisasm). But instead the address is printed as "ffffe8bc".
That's because of the following macro:

    DECODE_PRINTF2("%04x\n", ip);

while it should be

    DECODE_PRINTF2("%04x\n", (u16)ip);

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-12-15 11:39:21 -06:00
Yuri Zaporozhets
82a59b45d3 bios_emulator: fix garbled printing of disassembled SET* instructions
When DEBUG_DECODE_F is enabled in bios_emulator, the printing of
SET{O,NO,B,NB,Z,NZ,BE,NBE,S,NS,P,TP,L,NL,LE,NLE} instructions
is not followed by newline and is, therefore, immediately followed
by the printed address of a new instruction. This garbles the output
and makes it very difficult to read.

This patch adds missing DECODE_PRINTF("\n") calls to print newlines.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-12-15 11:39:18 -06:00
Yuri Zaporozhets
15c1b2f974 bios_emulator: fix garbled printing of disassembled BSF instruction
When DEBUG_DECODE_F is enabled in bios_emulator, the printing of BSF
instructions is garbled because the '\n' symbol is used instead of
the correct '\t'. Fix that.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-12-15 11:39:16 -06:00
Alexander Sverdlin
bb28f0e40f net: fec: phy: Don't advertise Gbit on (R)MII
Currently if a gigabit-capable PHY is connected to FEC via RMII or MII, it
will advertise 1000FULL and 1000HALF to a link partner.

Different problems may arise here:
- usually with (R)MII between MAC and PHY the PHY's connection to magnetics
would have only 2 pairs routed as well, otherwise a PHY can negotiate 1000
speed and there will be no traffic possible;
- but even if there is no way to negotiate 1000 speed in HW (only 2 signal
pairs routed), it may take a lot of time for PHY to figure this out; in
case of AD1300 it takes 17-20 seconds, which is waay longer than default
4s PHY_ANEG_TIMEOUT.

Use phy_set_supported() in such cases to disable gigabit advertised
options.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-12-15 12:34:41 -03:00
Stefan Eichenberger
e9cf7f515a imx: mach: imx8: fdt: set correct frequencies for the industrial SoC
Set correct CPU and GPU frequencies for the industrial i.MX8 SoC
variant.

Ensure that the CPU and GPU frequencies are properly configured for the
industrial variant of the SoC. According to the "i.MX 8QuadMax
Industrial Applications Processors" datasheet, the frequency limits for
this variant are as follows:
- Cortex-A72: 1.296 GHz
- Cortex-A53: 1.104 GHz
- GPU core: 625 MHz
- GPU shader: 625 MHz

The CPU clock is enforced by the System Controller Firmware (SCFW), but
the cpufreq driver is unaware of this enforcement. By removing
unsupported frequencies from the operating points, we ensure that the
cpufreq driver aligns correctly with the SCFW's settings.

The GPU frequency, on the other hand, is not enforced by the SCFW. As a
result, the GPU could potentially be overclocked. To prevent this, we
set the correct clock frequency and update the operating points
accordingly, ensuring compliance with the datasheet specifications.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2024-12-15 12:34:25 -03:00
Stefan Eichenberger
504ce8e1ea toradex: apalis-imx8: simplify module version handling
Simplify module version handling by removing the special case for the
Apalis iMX8QM.

The Apalis iMX8QM has been treated as a special case in module version
handling, but was always the default. By removing this special handling,
the code is simplified and easier to maintain.

We will not print the message "Unknown Apalis iMX8 module" anymore.
However, we still handle this because if the config block is missing we
show "MISSING TORADEX CONFIG BLOCK" and if the serial number is unknown
we show "Model: Toradex 0000 UNKNOWN MODULE V1.1A". Therefore, it is
still possible to detect such issues.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2024-12-15 12:34:25 -03:00
Stefan Eichenberger
889bd73816 toradex: tdx-cfg-block: add new apalis imx8 pids
Add new PIDs for the Apalis iMX8 modules featuring the industrial
variant of the SoC, which supports a maximum CPU frequency of 1300 MHz.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2024-12-15 12:34:25 -03:00
Stefan Eichenberger
741e7e8c4b toradex: tdx-cfg-block: increase indentation for longer defines
This preparation step ensures that the first column has sufficient space
to handle longer defines. This is necessary for the new Apalis iMX8
defines.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2024-12-15 12:34:25 -03:00
Stefan Eichenberger
1fd1100f1a toradex: tdx-cfg-block: set apalis imx8dxp to always disabled
Apalis iMX8DXP 1GB is currently set to enable when compiling for Apalis
iMX8. This is a mistake the Apalis iMX8DXP 1GB was never released and is
not compatible to the Apalis iMX8 series.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
2024-12-15 12:34:25 -03:00
Tom Rini
50334151c0 Merge tag 'fsl-qoriq-2024-12-15' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq
CI: https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq/-/pipelines/23856

- Use strcat to replace sprintf for t208xqds
- Fix bootefi for board ls1028a
- Various fixes to sl28 board
2024-12-15 08:02:46 -06:00
Tom Rini
eb1817ad87 Merge tag 'doc-2025-01-rc5' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request doc-2025-01-rc5

Documentation:

* sending_patches: Fix spelling of "its"
* environment: NET_LWIP dhcp sets ipaddrN, netmaskN and gatewayipN
* remove redundant Rockchip bindings
* fwu_updates: Fix formatting
* coolpi: Fix document style
* board: theobroma-systems: fix feature list in introductions

Fix typos in code comments:

* clk: mpc83xx: Fix typo in "Coherent System Bus"
* efi_loader: Fix typos in enum efi_allocate_type
2024-12-15 08:02:22 -06:00
Francois Berder
c71aaaf6a8 board: freescale: Replace invalid usage of sprintf by strcat
buf was used as destination and as parameter to sprintf
which triggers an undefined behaviour.
This commit removes this usage of sprintf and uses strcat
to append strings to buf variable.

Signed-off-by: Francois Berder <fberder@outlook.fr>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 10:08:07 +08:00
Wei Ming Chen
b4626f3934 configs: ls1028a: Fix bootefi issue on Layerscape ls1028ardb platform
Without this patch, there will be error indicating that
"Cannot use 64 bit addresses with SDMA", and the booting
process will stuck.

please see full boot log below

U-Boot 2022.04-g18185931 (Sep 11 2024 - 13:15:30 +0800)

SoC:  LS1028AE Rev1.0 (0x870b0010)
Clock Configuration:
       CPU0(A72):1500 MHz  CPU1(A72):1500 MHz
       Bus:      400  MHz  DDR:      1600 MT/s
Reset Configuration Word (RCW):
       00000000: 3c004010 00000030 00000000 00000000
       00000010: 00000000 018f0000 0030c000 00000000
       00000020: 020031a0 00002580 00000000 00003296
       00000030: 00000000 00000010 00000000 00000000
       00000040: 00000000 00000000 00000000 00000000
       00000050: 00000000 00000000 00000000 00000000
       00000060: 00000000 00000000 200e705a 00000000
       00000070: bb580000 00000000
Model: LS1028A RDB Board
Board: LS1028AE Rev1.0-RDB, Version: C, boot from SD
FPGA: v8 (RDB)
SERDES1 Reference : Clock1 = 100.00MHz Clock2 = 100.00MHz
DRAM:  3.9 GiB
DDR    3.9 GiB (DDR4, 32-bit, CL=11, ECC on)
Using SERDES1 Protocol: 47960 (0xbb58)
PCIe1: pcie@3400000 Root Complex: no link
PCIe2: pcie@3500000 Root Complex: x1 gen2
Core:  45 devices, 22 uclasses, devicetree: separate
WDT:   Started watchdog@c000000 with servicing (60s timeout)
WDT:   Started watchdog@c010000 with servicing (60s timeout)
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

EEPROM: Invalid ID (ff ff ff ff)
In:    serial
Out:   serial
Err:   serial
SEC0:  RNG instantiated
Net:
Warning: enetc-0 (eth0) using random MAC address - d2:9b:a5:37:7b:b5
eth0: enetc-0
Warning: enetc-2 (eth1) using random MAC address - ca:57:11:de:de:cb
, eth1: enetc-2, eth2: swp0, eth3: swp1, eth4: swp2, eth5: swp3
Hit any key to stop autoboot:  0
Trying load HDP firmware from SD..
switch to partitions #0, OK
mmc0 is current device
Device: FSL_SDHC
Manufacturer ID: 9f
OEM: 5449
Name: SD32G
Bus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 28.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

MMC read: dev # 0, block # 18944, count 512 ... 512 blocks read: OK
Loading hdp firmware from 0x00000000a0000000 offset 0x0000000000002000
Loading hdp firmware Complete
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
** Unable to read file / **
Failed to load '/'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc@2140000.blk...
Scanning disk mmc@2150000.blk...
Found 7 disks
ERROR: invalid device tree
Found EFI removable media binary efi/boot/bootaa64.efi
981992 bytes read in 44 ms (21.3 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
WARNING could not find node vivante,gc: FDT_ERR_NOTFOUND.
Booting /efi\boot\bootaa64.efi
Cannot use 64 bit addresses with SDMA
Error reading cluster
** Unable to read file /efi/boot/grubaa64.efi **
Unexpected return from initial read: Device Error, buffersize 29D790
Failed to load image ぀¬ : Device Error
start_image() returned Device Error
EFI LOAD FAILED: continuing...
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:1...
** Unable to read file / **
Failed to load '/'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
BootOrder not defined
EFI boot manager: Cannot load any image
Scanning mmc 1:2...
** Unable to read file / **
Failed to load '/'
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
BootOrder not defined
EFI boot manager: Cannot load any image
starting USB...
Bus usb@3100000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
Bus usb@3110000: Register 200017f NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb@3100000 for devices... 1 USB Device(s) found
scanning bus usb@3110000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
Trying load from SD ...
switch to partitions #0, OK
mmc0 is current device
Device: FSL_SDHC
Manufacturer ID: 9f
OEM: 5449
Name: SD32G
Bus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 28.9 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes

MMC read: dev # 0, block # 32768, count 81920 ... 81920 blocks read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Signed-off-by: Wei Ming Chen <jj251510319013@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:49:16 +08:00
Leonard Anderweit
55e8704402 doc: cosmetic: fwu_updates: Fix formatting
Remove one of the double colon so ..code-block is used for formatting.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-12-15 02:11:13 +01:00
Jerome Forissier
d8b0020dde doc: environment: NET_LWIP dhcp sets ipaddrN, netmaskN and gatewayipN
Document environment variables set by the dhcp command when the network
stack is lwIP.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-15 02:09:34 +01:00
Quentin Schulz
c7360f17fb doc: board: theobroma-systems: fix feature list in introductions
Board introductions have a feature list which isn't formatted properly
according to rST and is thus rendered incorrectly.

Fix this by adding the missing newlines in the appropriate places.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-12-15 02:07:54 +01:00
Simon Glass
920e165ebf efi_loader: Fix typos in enum efi_allocate_type
Fix 'indicatged' and 'adress' typos.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-12-15 02:07:23 +01:00
Andy Yan
d9825e8d0f doc: coolpi: Fix document style
Add a blank line after title "Specification:" to
make it render correctly html.

And also remove the useless > in bash code block.

Signed-off-by: Andy Yan <andyshrk@163.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-12-15 02:05:36 +01:00
Johan Jonker
4888d1bd0e doc: remove redundant Rockchip bindings
Most Rockchip device tree related bindings are converted to YAML
and available in the U-boot /dts/upstream/Bindings/ directory.
Remove all redundant U-boot entries.

Signed-off-by: Johan Jonker <jbx6244@gmail.com>
2024-12-15 02:05:04 +01:00
J. Neuschäfer
a7dc9f3220 doc: sending_patches: Fix spelling of "its"
Although it has historically been different, the current standard
spelling of the neutral singular possessive pronoun is "its".

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-15 02:03:52 +01:00
J. Neuschäfer
69ec7f35e0 clk: mpc83xx: Fix typo in "Coherent System Bus"
Cosmetic change.

Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
2024-12-15 02:03:52 +01:00
Michael Walle
56aa021f08 board: sl28: fix USB0
Since commit 61ff13283c ("board: sl28: move to OF_UPSTREAM") USB0 is
broken because the former u-boot soc dtsi was setting dr_mode to "host"
but the linux device tree isn't. That is because linux fully supports
OTG but u-boot doesn't. Therefore, u-boot only ever enabled host mode
and never OTG mode. Add it to our board "-u-boot.dtsi" to fix it.

Fixes: 61ff13283c ("board: sl28: move to OF_UPSTREAM")
Reported-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Michael Walle <mwalle@kernel.org>
Tested-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:00:32 +08:00
Michael Walle
079ae2734c doc: board: sl28: fix table
Convert the table to a correct reST table syntax.

Signed-off-by: Michael Walle <mwalle@kernel.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:00:32 +08:00
Michael Walle
ad7ebf1b98 board: sl28: fix network on variant 3
Network is broken on variant 3 boards since commit 61ff13283c ("board:
sl28: move to OF_UPSTREAM") because it was removing the variant 3
handling. That is because at that time the var3 device tree was not
upstream. FWIW variant 3 is actually the same as the base variant, but
I've missed that the -u-boot.dtsi is not inlcuded in this case which
will set the ethernet alias.  Now that the var3 device tree is upstream,
just re-add it to the SPL handling again.

Fixes: 61ff13283c ("board: sl28: move to OF_UPSTREAM")
Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:00:32 +08:00
Michael Walle
6c849340b7 board: sl28: increase SPL_SYS_MALLOC_SIZE
Increase the malloc size to 2MiB because our FIT image exceeds the 1MiB
limit either if BL31 mode is enabled or if another device tree is added
to the image.

Signed-off-by: Michael Walle <mwalle@kernel.org>
Tested-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:00:31 +08:00
Michael Walle
781a7c660c board: sl28: fix linking with disabled watchdog
We don't have a reference to the driver used by
uclass_get_device_by_driver() in stop_recovery_watchdog(). Fix it by not
calling that function if the watchdog driver isn't enabled.

Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-15 09:00:31 +08:00
Tom Rini
8aab7730c1 Merge patch series "Hyperflash Boot fixes for J7200/J721E"
Anurag Dutta <a-dutta@ti.com> says:

Hi All,
In u-boot, hbmc is broken and has been removed from j7200
configs. This series re-enables the hbmc driver and introduces a series
of hyperflash boot fixes. At present, in u-boot, the parent device (fss)
gets registered as a syscon device. This is done because the MMIO
mux driver in u-boot did not support the mux functionality when the
parent device is not a syscon. In this series, we make relevant changes
in the hbmc driver as well as dts' so that we can use the reg-mux driver for
selecting the appropriate state of the mux.

Test logs:

1) j721e-idk-gw hyperflash boot test: https://gist.github.com/anuragdutta731/50aae6fec707a3ffad6d985de6757fe4
2) j7200-evm hyperflash boot test: https://gist.github.com/anuragdutta731/c3a4d60f8bfd9c425d6c44b36eb7322b

Link: https://lore.kernel.org/r/20241129113136.383277-1-a-dutta@ti.com
2024-12-14 09:34:27 -06:00
Anurag Dutta
8f71d37838 mtd: Kconfig: Change HBMC driver's dependency to MULTIPLEXER and MUX_MMIO
The HBMC_AM654 driver was dependent on SYSCON because syscon APIs were
being used to select the multiplexer state. Change the dependency to
MULTIPLEXER and MUX_MMIO because mux APIs are now being used to
select mux state.

Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Vaishnav Achath
038f6faea9 configs: j7200_evm_*_defconfig: Add configs for Hyperflash boot
Kernel commit dbb124cf68 ("configs: j7200: Remove HBMC_AM654
config") removed the HBMC_AM654 config because hbmc was broken
in u-boot. Hence, add the missing configs necessary to re-enable
Hyperflash boot.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Aswath Govindraju
0dfb7b821c include: configs: j721e_evm: Increase memory offset for tiboot3.bin in HyperFlash
The size of J7200 tiboot3.bin is 516KB but the memory reserved for it in
HyperFlash was 512KB. This led to overlap of tiboot3.bin over tispl.bin
region and break in HyperFlash boot mode.

Therefore, fix this by increasing the memory allocated for tiboot3.bin
to 1MB for J7200.

Fixes: cf1d6867f7 ("board: ti: j7200: Introduce support for j7200 build targets")

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Vaishnav Achath
fd7fcd4098 configs: j721e_evm_*_defconfig: Add configs for Hyperflash boot
Kernel commit 5b2671594b ("configs: j721e: Remove HBMC_AM654
config") removed the HBMC_AM654 config because hbmc was broken
in u-boot. Hence, add the missing configs necessary to re-enable
Hyperflash boot.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Vaishnav Achath
c9df79ee64 arm: dts: k3-j721e-r5-common: Add HBMC overrides for R5 SPL
Add 32-bit address overrides for Hyper Bus Memory Controller
for Hyperflash to be functional in R5 SPL.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Vaishnav Achath
ecd2d7328c arm: dts: k3-j7200-r5-common: Add HBMC overrides for R5 SPL
Add 32-bit address overrides for Hyper Bus Memory Controller
for Hyperflash to be functional in R5 SPL.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Anurag Dutta
a42b8b0b3f mtd: HBMC-AM654: Changed syscon API to mux APIs
The syscon APIs were used for selecting the state of the mux
device because the mmio-mux driver in u-boot did not support
the mux functionality when the parent device is not a syscon.
Change to mux APIs which utilizes the reg-mux driver to select the
state of the multiplexer.

Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Anurag Dutta
f0558f3a89 mux: Makefile: Add config for mux drivers
Add config required to build mmio-mux driver and dependencies.

Signed-off-by: Anurag Dutta <a-dutta@ti.com>
2024-12-14 09:34:16 -06:00
Tom Rini
d229e0bd0d Merge patch series "configs: Enable CMD_NFS by default"
Neha Malcom Francis <n-francis@ti.com> says:

Enable the NFS command across all platforms to allow network booting via
the NFS. Clean up the J7 configs to use TI_COMMON_CMD_OPTIONS.

Link: https://lore.kernel.org/r/20241129110333.444270-1-n-francis@ti.com
2024-12-14 09:33:18 -06:00
Neha Malcom Francis
6acada5daa configs: j7*: Enable TI_COMMON_CMD_OPTIONS
Instead of bloating the defconfig with CONFIG_CMD_*, move J7 devices to
start using TI_COMMON_CMD_OPTIONS.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2024-12-14 09:33:15 -06:00
Neha Malcom Francis
5ea20dfcb9 board: ti: common: Kconfig: Add CMD_NFS
Add CMD_NFS to list of configs implied by CONFIG_TI_COMMON_CMD_OPTIONS.
This allows network booting via the NFS protocol from the U-Boot prompt.

Fixes: 10de125707 ("disable NFS support by default")
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2024-12-14 09:33:15 -06:00
Tom Rini
6b01124f7c Merge patch series "UART support for higher baudrate"
Gokul Praveen <g-praveen@ti.com> says:

The OMAP specific UART driver is changed from a generic implementation of
certain ops functions to an OMAP specific implementation of it to add
support for higher baudrates for OMAP devices.

Hence to support the above change, static functionality of ops functions
in generic ns16550 UART U-Boot driver is removed and also migrated certain
macros to its header file for usage in device-specific drivers.

Boot logs link :

https://gist.github.com/GOKU-THUG/8b90117c963e5da5c1b6caeee427c82c

Link: https://lore.kernel.org/r/20241126105131.43359-1-g-praveen@ti.com
2024-12-14 09:33:03 -06:00
Gokul Praveen
50cc0c16b7 drivers: serial: serial_omap: Fix TI OMAP UART U-Boot driver to support higher baudrates
Move to OMAP specific implementation of certain ops functions as the UART
prints on the serial console fail for baudrates greater than 460800.

The MDR1 register is responsible for determining the speed mode at which
the UART should operate for OMAP specific devices. The baud divisor is used
to set the UART_DLL register which is used for generation of the baud
clock in the baud rate generator. The implementation logic is similar to
how it is implemented in omap_8250_get_divisor function of 8250_omap UART
linux driver.

Signed-off-by: Gokul Praveen <g-praveen@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-14 09:32:59 -06:00
Gokul Praveen
a9c61ac04f serial: ns16550: Increase scope of ops functions
Increase scope of ops functions and do some clean up for usage in device
-specific UART drivers.

Remove the static functionality of ops functions and migrate certain macros
to header file for usage in device-specific drivers.

Signed-off-by: Gokul Praveen <g-praveen@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-14 09:32:59 -06:00
Tom Rini
5360c683e6 Merge patch series "Add phyCORE AM62Ax"
Garrett Giordano <ggiordano@phytec.com> says:

This patch set adds the phyCORE AM62Ax board support and documenation to
u-boot.

The phyCORE-AM62Ax is a SoM (System on Module) featuring TI's AM62Ax SoC. It can
be used in combination with different carrier boards. This module can come
with different sizes and models for DDR, eMMC, SPI NOR Flash and various SoCs
from the AM62x family.

A development Kit, called phyBOARD-Lyra is used as a carrier board reference
design around the AM62x SoM.

This series depends on the following two patches:
- [PATCH v2] arm: mach-k3: am62a7: Provide a way to obtain boot device for non SPL
  https://lists.denx.de/pipermail/u-boot/2024-October/570156.html
- [PATCH] board: phytec: common: Introduce CONFIG_PHYTEC_K3_DDR_PATCH
  https://lists.denx.de/pipermail/u-boot/2024-November/571543.html

Link: https://lore.kernel.org/r/20241118231606.3161665-1-ggiordano@phytec.com
[trini: Fix warning in board/phytec/common/k3/board.c when
        CONFIG_EFI_HAVE_CAPSULE_SUPPORT is not enabled]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-13 20:09:41 -06:00
Garrett Giordano
5c54452042 arm: mach-k3: am62a7: Provide a way to obtain boot device for non SPLs
Introduce get_boot_device() to obtain the booting device. Make it also
available for non SPL builds so u-boot can also know the device it
is booting from.

Signed-off-by: Garrett Giordano <ggiordano@phytec.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
2024-12-13 20:08:59 -06:00
Vitor Soares
53d5f896e9 toradex: tdx-cfg-block: rework modules pid4 handling
The module pid4 currently corresponds to the index of the toradex_module
array. If a new pid4 is introduced that does not follow the sequence of
the previous entries, it will create a gap in the array.

To address this, embed pid4 within the toradex_som structure and
implement a function to retrieve the index corresponding to pid4.

Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-12-13 20:08:59 -06:00
Garrett Giordano
c3c20a5e3c doc: board: phytec: Add phyCORE-AM62ax
Add documentation for PHYTEC phyCORE-AM62ax SoM.

Signed-off-by: Garrett Giordano <ggiordano@phytec.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
2024-12-13 17:30:01 -06:00
Garrett Giordano
d13e67c24d board: phytec: am62a7: Add PHYTEC phyCORE-AM62A7 SoM
Add support for PHYTEC phyCORE-AM62A7 SoM.

Supported features:
  - 2GB LPDDR4 RAM
  - eMMC
  - External SD
  - Ethernet
  - debug UART

Signed-off-by: Garrett Giordano <ggiordano@phytec.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-12-13 17:30:01 -06:00
Tom Rini
7917841b00 Merge patch series "Enable EFI capsule updates for PHYTEC K3 SoMs"
Wadim Egorov <w.egorov@phytec.de> says:

This implements capsule updates for all our K3 SoMs for
eMMC, OSPI NOR and uSD cards.

We can use capsule updates to update the bootloader on all our
supported flash devices.

Link: https://lore.kernel.org/r/20241127121736.1525948-1-w.egorov@phytec.de
2024-12-13 14:15:43 -06:00
Wadim Egorov
c1a8a1f91a configs: phycore_am6*_a53_defconfig: Enable capsule update
Enable raw & on disk capsule updates and provide configs required
for updating MTD devices. Also resync after savedefconfig.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-12-13 14:15:31 -06:00
Wadim Egorov
f9fc0b7a2e board: phytec: k3: Add EFI capsule update support
Implement EFI capsule update functionality for PHYTEC K3-based SoMs.
These SoMs feature various flash device options, including eMMC,
OSPI NOR, and uSD card at the board level.

This update provides the necessary logic to enable EFI capsule updates
across all three flash devices, ensuring flexible and robust firmware
upgrade capabilities.

The GUID is dynamically generated for the board, to get it:

  efidebug capsule esrt
  ========================================
  ESRT: fw_resource_count=3
  ESRT: fw_resource_count_max=3
  ESRT: fw_resource_version=1
  [entry 0]==============================
  ESRT: fw_class=C7D64D6D-10B2-54BC-A3BF-06A9DC3653D9
  ESRT: fw_type=unknown
  ESRT: fw_version=0
  ESRT: lowest_supported_fw_version=0
  ESRT: capsule_flags=0
  ESRT: last_attempt_version=0
  ESRT: last_attempt_status=success
  [entry 1]==============================
  ESRT: fw_class=09841C3F-F177-5D57-B1F6-754D92879205
  ESRT: fw_type=unknown
  ESRT: fw_version=0
  ESRT: lowest_supported_fw_version=0
  ESRT: capsule_flags=0
  ESRT: last_attempt_version=0
  ESRT: last_attempt_status=success
  [entry 2]==============================
  ESRT: fw_class=D11A9016-515E-503A-8872-3FF65384D0C4
  ESRT: fw_type=unknown
  ESRT: fw_version=0
  ESRT: lowest_supported_fw_version=0
  ESRT: capsule_flags=0
  ESRT: last_attempt_version=0
  ESRT: last_attempt_status=success
  ========================================

On the board (from uSD card containing capsule binaries at boot):

  load mmc 1:1 $loadaddr tiboot3-capsule.bin
  efidebug capsule update $loadaddr

  load mmc 1:1 $loadaddr tispl-capsule.bin
  efidebug capsule update $loadaddr

  load mmc 1:1 $loadaddr uboot-capsule.bin
  efidebug capsule update $loadaddr

The binaries will be flashed to the flash device you are booted from.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-12-13 14:15:31 -06:00
Wadim Egorov
2cac36430e arm: dts: k3-am642-phycore-som-binman: Provide capsule nodes
Fill in phycore-am64x capsule GUID properties of the base
binman capsule nodes.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-12-13 14:15:31 -06:00
Wadim Egorov
bc37f6d7c6 arm: dts: k3-am625-phycore-som-binman: Provide capsule nodes
Fill in phycore-am62x capsule GUID properties of the base
binman capsule nodes.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-12-13 14:15:31 -06:00
Tom Rini
faa61a5012 Merge patch series "AM62A DWC3: Add support for USB DFU boot in OTG mode"
Siddharth Vadapalli <s-vadapalli@ti.com> says:

Hello,

This series adds support for USB DFU boot on TI's AM62A SoC which has
two instances of DWC3 USB Controllers namely USB0 and USB1. The USB0
instance of the USB Controller supports USB DFU boot:
ROM => tiboot3.bin => tispl.bin => u-boot.img

USB DFU Boot requires the USB Controller to be configured for Gadget
mode of operation. Since the USB0 instance of the DWC3 USB Controller
supports both Host and Gadget modes of operation via the Type-C interface
on the AM62A7-SK board, the device-tree specifies the "dr_mode" as "OTG".
However, there is currently no support for dynamically switching the "mode"
from Host to Gadget and vice-versa with the help of a state-machine.
The OTG mode is treated as a separate mode in itself rather than being
treated as an intermediate stage before assuming the Host/Gadget mode.
Due to this, USB DFU boot via the Type-C interface doesn't work as the
USB Controller hasn't been appropriately configured for Device/Gadget
mode of operation. One option is to change the device-tree to specify
"dr_mode" as "peripheral" and force the controller to assume the Device
role. This will imply that the U-Boot device-tree for AM62A diverges
from its Linux counterpart. Therefore, with the intent of keeping the
device-tree uniform across Linux and U-Boot, and at the same time, in
order to enable USB DFU boot in "OTG" mode with the DWC3 Controller,
the first patch in this series sets the "mode" on the basis of the
caller function, rather than using the "dr_mode" property in the
device-tree. There are only two callers of "dwc3_generic_probe()",
each of which clearly specify the expected mode of configuration.
This will enable both Host and Device mode of operation based on the
command executed by the user, thereby truly supporting "OTG"
functionality when the USB Controller supports it.

The second patch in this series adds USB DFU environment for AM62A,
enabling USB DFU Boot and USB DFU flash on AM62A.

In addition to the patches in this series, the following device-tree
changes will be required to test USB DFU on AM62A (bootph-all property
to be added to ensure that USB Controller is present at all stages
for DFU Boot):
https://gist.github.com/Siddharth-Vadapalli-at-TI/53ba02cb0ff4a09c47e920d08247065f
The above device-tree changes will be made to the Linux device-tree,
which shall ensure that the same shall be a part of U-Boot device-tree
eventually.

The USB DFU config fragments for AM62x have been used for enabling
USB DFU boot on AM62a as follows:
R5  => am62ax_evm_r5_defconfig + am62x_r5_usbdfu.config
A53 => am62ax_evm_a53_defconfig + am62x_a53_usbdfu.config

Logs validating USB DFU boot with this series:
https://gist.github.com/Siddharth-Vadapalli-at-TI/daa71da1b0e478a51afea42605fb2d2c

Link: https://lore.kernel.org/r/20241126120322.1760862-1-s-vadapalli@ti.com
2024-12-13 14:14:50 -06:00
Siddharth Vadapalli
7ec8eadba6 board: ti: am62ax: env: include environment for DFU
Include the TI K3 DFU environment to support DFU Boot and DFU Flash.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
2024-12-13 14:14:25 -06:00
Siddharth Vadapalli
7af18fc5ed usb: dwc3-generic: set "mode" based on caller of dwc3_generic_probe()
There are only two callers of "dwc3_generic_probe()", namely:
1. dwc3_generic_peripheral_probe()
2. dwc3_generic_host_probe()
Currently, the "mode" is set based on the device-tree node of the
platform device. Also, the DWC3 core doesn't support updating the "mode"
dynamically at runtime if it is set to "OTG", i.e. "OTG" is treated as a
separate mode in itself, rather than being treated as a mode which should
eventually lead to "host"/"peripheral".

Given that the callers of "dwc3_generic_probe()" clarify the expected
"mode" of the USB Controller, use that "mode" instead of the one
specified in the device-tree. This shall allow the USB Controller to
function both as a "Host" and as a "Peripheral" when the "mode" is "otg"
in the device-tree, based on the caller of "dwc3_generic_probe()".

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
2024-12-13 14:14:25 -06:00
Tom Rini
6b34e2e7bd Merge patch series "J721S2: Enable ESMs and related PMIC"
Udit Kumar <u-kumar1@ti.com> says:

This enables the ESMs and the associated PMIC. Programming these bits is
a requirement to make the watchdog actually reset the board.

Logs
WDT reset J721S2
https://gist.github.com/uditkumarti/93cfe863d1f3fe3abb82b1821105f274#file-j721s2-L2708

AM68 boot (this does not support WDT)
https://gist.github.com/uditkumarti/93cfe863d1f3fe3abb82b1821105f274#file-am68

Link: https://lore.kernel.org/r/20241126053426.2627686-1-u-kumar1@ti.com
[trini: Merge configs/am68_sk_r5_defconfig]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-13 14:12:46 -06:00
Manorit Chawdhry
0195d81ed7 configs: j721s2_evm_r5_defconfig: Add ESM configs
Enables ESM configs for j721s2 and disables them for AM68 as AM68
includes J721s2 configs by default.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-13 14:12:16 -06:00
Manorit Chawdhry
1bdf7e6db1 arch: arm: dts: k3-j721s2-r5-common-proc-board: Add esm node
Add esm node for j721s2.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-13 14:12:16 -06:00
Keerthy
6888dbf4bb board: ti: j721s2: Initialize the ESM & PMIC ESM
Initialize the 3 instances of SOC ESM & PMIC ESM.
This is needed for watchdog functionality.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
2024-12-13 14:12:16 -06:00
Tom Rini
b83ac2a541 Merge patch series "Add QOS support for J722S and AM62P"
Jayesh Choudhary <j-choudhary@ti.com> says:

Add QOS support for DSS in TI K3 SoC to route the DSS traffic through
RT queue by setting orderID as 15:
- J722S
- AM62P

Link: https://lore.kernel.org/r/20241126070614.47136-1-j-choudhary@ti.com
2024-12-13 14:12:01 -06:00
Jayesh Choudhary
0b63d387b0 configs: am62p_evm_r5_defconfig: Enable CONFIG_K3_QOS
Enable CONFIG_K3_QOS to set QoS registers in R5 boot stage.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
2024-12-13 14:11:55 -06:00
Jayesh Choudhary
1e4ead98b1 configs: j722s_evm_r5_defconfig: Enable CONFIG_K3_QOS
Enable CONFIG_K3_QOS to set QoS registers in R5 boot stage.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
2024-12-13 14:11:55 -06:00
Jayesh Choudhary
18afd39ef0 arm: mach-k3: am62p: Add QoS support for DSS
Enable Quality of Service (QoS) blocks for Display SubSystem (DSS), by
servicing the DSS - DDR traffic from the Real-Time (RT) queue. This is
done by setting the DSS DMA orderID to greater than 7.

DDR intensive software applications can overwhelm the DSS's access to
the DDR because of their higher frequency DDR accesses. This can cause
flickering in display with certain applications running parallely if
the DSS traffic is being serviced through non-RT queue.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
2024-12-13 14:11:55 -06:00
Jayesh Choudhary
0dbf1b3558 arm: mach-k3: j722s: Add QoS support for DSS
Enable Quality of Service (QoS) blocks for Display SubSystem (DSS), by
servicing the DSS - DDR traffic from the Real-Time (RT) queue. This is
done by setting the DSS DMA orderID to greater than 7.

The C7x and VPAC can overwhelm the DSS's access to the DDR because of
their higher frequency DDR accesses. This can cause flickering in
display with certain edgeAI models running parallely if the DSS traffic
is being serviced through non-RT queue.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
2024-12-13 14:11:55 -06:00
Tom Rini
a33185173d Revert "Merge patch series "vbe: Series part E""
This reverts commit 1fdf53ace1, reversing
changes made to e5aef1bbf1.

I had missed that this caused too much size growth on rcar3_salvator-x.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-12 21:07:26 -06:00
Tom Rini
1fdf53ace1 Merge patch series "vbe: Series part E"
Simon Glass <sjg@chromium.org> says:

This includes various patches towards implementing the VBE abrec
bootmeth in U-Boot. It mostly focuses on SPL tweaks and adjusting what
fatures are available in VPL.

Link: https://lore.kernel.org/r/20241207172412.1124558-1-sjg@chromium.org
2024-12-12 16:35:47 -06:00
Simon Glass
f0315babfb hash: Plumb crc8 into the hash functions
Add an entry for crc8, with watchdog handling.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
63702119d6 boot: Imply CRC8 with VBE
VBE uses a crc8 checksum to verify that the nvdata is valid, so make
sure it is available if VBE is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
79520fea6d lib: Allow crc8 in TPL and VPL
Provide options to enable the CRC8 feature in TPL and VPL builds.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
d5597ef845 boot: Allow use of FIT in TPL and VPL
With VBE we want to use FIT in all phases of the boot. Add Kconfig
options to support this.

Disable the options for sandbox_vpl for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
214dc4a160 spl: lib: Allow for decompression in any SPL build
Add Kconfig symbols and update the Makefile rules so that decompression
can be used in TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
55468d0de7 spl: Add some more debugging to load_simple_fit()
Add debugging of image-loading progress. Fix a stale comment in the
function comment while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
fe13e33ddb spl: Drop a duplicate variable in boot_from_devices()
The variable 'ret' is defined twice, which is not intended. This may
have been a local merge error.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 2eefeb6d893 ("spl: Report a loader failure")
2024-12-12 16:35:24 -06:00
Simon Glass
290d0cf0c0 spl: Drop use of uintptr_t
U-Boot uses ulong for addresses. It is confusing to use uintptr_t in a
few places, since it makes people wonder if the types are compatible.
Change the few occurences in SPL to use ulong

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
1c5c5a3dcc spl: Support a relocated stack in any XPL phase
The current check looks only at SPL, but TPL or VPL might have a
different setting. Update the condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
3ef5246886 spl: Allow serial to be disabled in any XPL phase
The current check looks only at SPL, but TPL or VPL might have a
different setting. Update the condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
e931f58925 spl: Report a loader failure
If a loader returns an error code it is silently ignored. Show a message
to at least provide some feedback to the user.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
bf86a3e830 Support setting a maximum size for the VPL image
Add a size limit for VPL, to match those for SPL and TPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:24 -06:00
Simon Glass
72cb9eb08c malloc: Provide a simple malloc for VPL
The VPL phase may want to use the smaller malloc() implementation, so
add an option for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:23 -06:00
Simon Glass
3f1167fd00 malloc: Show amount of used space when memory runs out
Show a bit more information when malloc() space is exhausted and
debugging is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:23 -06:00
Simon Glass
a03793a3c7 boot: Respect the load_op in fit_image_load()
Some code has crept in which ignores this parameter. Fix this and add a
little debugging.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: b1307f884a ("fit: Support compression for non-kernel components (e.g. FDT)")
2024-12-12 16:35:23 -06:00
Simon Glass
caea4d8560 bootstd: Avoid sprintf() in SPL when creating bootdevs
The name of the bootdev device is not that important, particular in SPL.
Save a little code space by using a simpler name.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:23 -06:00
Simon Glass
94ad46e2ae boot: Allow FIT to fall back from best-match option
When the best-match feature fails to find something, use the provided
config name as a fallback. The allows SPL to select a suitable config
when best-match is enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:23 -06:00
Simon Glass
3344767d32 image: Add a prototype for fit_image_get_phase()
This function exists but is not exported. Add a prototype so it can be
used elsewhere.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-12 16:35:23 -06:00
Simon Glass
a2c90dc371 spl: mmc: Avoid size growth in spl_mmc_find_device() debug
The for() loop ends up being in the code even if the log_debug() does
nothing. Add a condition to fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-12 16:35:23 -06:00
Sam Protsenko
e5aef1bbf1 clk: Propagate clk_set_rate() if CLK_SET_PARENT_RATE present
Sometimes clocks provided to a consumer might not have .set_rate
operation (like gate or mux clocks), but have CLK_SET_PARENT_RATE flag
set. In that case it's usually possible to find a parent up the tree
which is capable of setting the rate (div, pll, etc). Implement a simple
lookup procedure for such cases, to traverse the clock tree until
.set_rate capable parent is found, and use that parent to actually
change the rate. The search will stop once the first .set_rate capable
clock is found, which is usually enough to handle most cases.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2024-12-12 14:23:25 -06:00
Tom Rini
88bd5701ef Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-usb
- USB onboard-hub fix
2024-12-12 09:50:25 -06:00
Tom Rini
39adaa54cc Merge tag 'xilinx-for-v2025.01-rc5' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.01-rc5

- Fix reset issue for SOM
2024-12-12 09:20:52 -06:00
Sam Protsenko
5a6aa7d591 boot: fdt: Handle already reserved memory in boot_fdt_reserve_region()
The boot_fdt_add_mem_rsv_regions() function can be called twice, e.g.
first time during the board init (as a part of LMB init), and then when
booting the OS with 'booti' command:

    lmb_add_region_flags
    lmb_reserve_flags
    boot_fdt_reserve_region
    boot_fdt_add_mem_rsv_regions
               ^
               |
               +-----------------------+
               | (1)                   | (2)
    lmb_reserve_common        image_setup_linux
    lmb_init                  ...
    initr_lmb                 do_booti
    board_init_r              'booti'

That consequently leads to the attempt of reserving the same memory
areas (described in the 'reserved-memory' dts node) in LMB. The
lmb_add_region_flags() returns -EEXIST error code in such cases, but
boot_fdt_reserve_region() handles all negative error codes as a failure
to reserve fdt memory region, printing corresponding error messages,
which are essentially harmless, but misleading. For example, this is the
output of 'booti' command on E850-96 board:

    => booti $loadaddr - $fdtaddr
    ...
    ERROR: reserving fdt memory region failed
           (addr=bab00000 size=5500000 flags=2)
    ERROR: reserving fdt memory region failed
           (addr=f0000000 size=200000 flags=4)
    ...
    Starting kernel ...

The mentioned false positive error messages are observed starting with
commit 1d9aa4a283 ("lmb: Fix the allocation of overlapping memory
areas with !LMB_NONE"), which removes the check for the already added
memory regions in lmb_add_region_flags(), making it return -1 for
!LMB_NONE cases. Another commit 827dee587b ("fdt: lmb: add reserved
regions as no-overwrite") changes flags used for reserving memory in
boot_fdt_add_mem_rsv_regions() from LMB_NONE to LMB_NOOVERWRITE. So
together with the patch mentioned earlier, it makes
lmb_add_region_flags() return -1 when called from
boot_fdt_reserve_region().

Since then, the different patch was implemented, returning -EEXIST error
code in described cases, which is:

   lmb: Return -EEXIST in lmb_add_region_flags() if region already added

Handle -EEXIST error code as a normal (successful) case in
lmb_reserve_flags() and don't print any messages.

Fixes: 1d9aa4a283 ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
2024-12-12 09:20:32 -06:00
Sam Protsenko
8b8b35a4f5 lmb: Return -EEXIST in lmb_add_region_flags() if region already added
An attempt to add the already added LMB region using
lmb_add_region_flags() ends up in lmb_addrs_overlap() check, which
eventually leads to either returning 0 if 'flags' is LMB_NONE, or -1
otherwise. It makes it impossible for the user of this function to catch
the case when the region is already added and differentiate it from
regular errors. That in turn may lead to incorrect error handling in the
caller code, like reporting misleading errors or interrupting the normal
code path where it could be treated as the normal case. An example is
boot_fdt_reserve_region() function, which might be called twice (e.g.
during board startup in initr_lmb(), and then during 'booti' command
booting the OS), thus trying to reserve exactly the same memory regions
described in the device tree twice, which produces an error message on
second call.

Return -EEXIST error code in case when the added region exists and it's
not LMB_NONE; for LMB_NONE return 0, to conform to unit tests
(specifically test_alloc_addr() in test/lib/lmb.c) and the preferred
behavior described in commit 1d9aa4a283 ("lmb: Fix the allocation of
overlapping memory areas with !LMB_NONE"). The change of
lmb_add_region_flags() return values is described in the table below:

    Return case                        Pre-1d9   1d9    New
    -----------------------------------------------------------
    Added successfully                    0      0      0
    Failed to add                         -1     -1     -1
    Already added, flags == LMB_NONE      0      0      0
    Already added, flags != LMB_NONE      0      -1     -EEXIST

Rework all affected functions and their documentation. Also fix the
corresponding unit test which checks reserving the same region with the
same flags to account for the changed return value.

No functional change is intended (by this patch itself).

Fixes: 1d9aa4a283 ("lmb: Fix the allocation of overlapping memory areas with !LMB_NONE")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
2024-12-12 09:20:32 -06:00
Roger Quadros
e371dfef21 configs: am62x_evm_*: Fix USB DFU configuration
CONFIG_USB_XHCI_DWC3 is not required for AM62x as the XHCI
driver is registered through the dwc3-generic driver.

CONFIG_USB_XHCI_DWC3 causes problems by hijacking the
USB controller even if it is not set for Host mode in
device tree.

'dm tree' output after 'usb start' is fixed from

 simple_bus    5  [ + ]   dwc3-am62             |   |-- dwc3-usb@f900000
 usb_gadget    0  [   ]   dwc3-generic-periphe  |   |   |-- usb@31000000
 usb           0  [ + ]   xhci-dwc3             |   |   `-- usb@31000000
 usb_hub       0  [ + ]   usb_hub               |   |       `-- usb_hub
 simple_bus    6  [ + ]   dwc3-am62             |   |-- dwc3-usb@f910000
 usb           1  [ + ]   dwc3-generic-host     |   |   |-- usb@31100000
 usb_hub       1  [ + ]   usb_hub               |   |   |   `-- usb_hub
 usb           1  [ + ]   xhci-dwc3             |   |   `-- usb@31100000
 usb_hub       2  [ + ]   usb_hub               |   |       `-- usb_hub

[notice that 'xhci-dwc3' and 'usb_hub' drivers are probed
 for both USB instances although the first instance
 is supposed to be 'peripheral' only]

to

 simple_bus    5  [   ]   dwc3-am62             |   |-- dwc3-usb@f900000
 usb_gadget    0  [   ]   dwc3-generic-periphe  |   |   `-- usb@31000000
 simple_bus    6  [ + ]   dwc3-am62             |   |-- dwc3-usb@f910000
 usb           1  [ + ]   dwc3-generic-host     |   |   `-- usb@31100000
 usb_hub       0  [ + ]   usb_hub               |   |       `-- usb_hub

Fixes: dfc2dff5a8 ("configs: am62x_evm_*: Enable USB and DFU support")
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2024-12-12 09:20:06 -06:00
Tom Rini
9452fb7484 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
- Fix some spelling mistakes
2024-12-11 12:50:29 -06:00
Tom Rini
26512629fb Merge tag 'rpi-2025.01-rc5' of https://source.denx.de/u-boot/custodians/u-boot-raspberrypi
Updates for RPi for 2025.01:

- Enable capsule updates
- Pass CMA through from firmware DT
2024-12-11 10:17:59 -06:00
Ilias Apalodimas
6a5fc32fd2 board: rpi: Enable capsule updates
Since RPI works well using EFI and has no size limitations with regards
to U-Boot, add the needed structures to support capsule updates.

While at it update the most commonly used defconfigs and include capsule
support and U-Boot commands needed by EFI

Tested-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-11 15:54:52 +00:00
Michal Simek
8b81010a2f video: zynqmp: Add support for reset
In Kria SOM configuration DP is under reset and access to DP is causing
hang that's why call reset at probe to avoid this situation.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0504474a91a9839828aecd37f8855fd154cdf2e1.1733742708.git.michal.simek@amd.com
2024-12-11 12:40:13 +01:00
Peter Robinson
28a620d281 board: rpi: Pass CMA through from firmware DT
For a lot of usecases, such as display, camera, media
the Raspberry Pi needs a lot more CMA than distros
configure as default so we should pass this parameter
through so things work as expected. Fix a spelling
mistake while we're at it.

Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Matthias Brugger <mbrugger@suse.com>
2024-12-11 09:41:22 +00:00
Marek Vasut
802b08805c usb: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
14655e62cf spi: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
b1c2886cf2 serial: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
4380b31e40 pinctrl: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
1bf8f02f14 phy: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
7246f98d29 pci: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
5f97f5c7ed mtd: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
190c6d05e8 mmc: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Comment changes only, no functional change.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
1fea57811f i2c: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
4a9c8946b8 gpio: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
d774197bb0 clk: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
279d916b98 ARM: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Kconfig strings and comment changes only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Marek Vasut
c1b9d3eb88 ARM: dts: renesas: Fix R-Car spelling
The correct spelling is R-Car, including the dash, update the usage.
Comment change only, no functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-11 08:36:24 +01:00
Venkatesh Yadav Abbarapu
0e24474cc3 usb: onboard-hub: Update the bind function based on peer-hub property
As the "peer-hub" property is optional, don't error out just
skip the bind function.

Fixes: 57e30b09fc ("usb: onboard-hub: Bail out if peer hub is already probed")
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
2024-12-11 08:22:17 +01:00
Tom Rini
9bc62c980d Merge tag 'v2025.01-rc4' into next
Prepare v2025.01-rc4
2024-12-09 16:29:47 -06:00
Tom Rini
b841e559cd Prepare v2025.01-rc4
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-09 16:09:28 -06:00
Tom Rini
9dd0a9ecaa Merge tag 'u-boot-imx-next-20241209' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23736

- Add support for the NXP i.MX91 EVK board.
- Improve EEPRON suport on i.MX8MP DHCOM board.
- Switch phycore_imx8mm to using environment text files and improve
  environment handling.
2024-12-09 08:46:57 -06:00
Tom Rini
497353969e Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2024-12-09 08:46:33 -06:00
Marek Vasut
455e66bc59 arm64: renesas: Disable AVB1 and AVB2 on R8A779G0 V4H White Hawk board
The U-Boot is currently not capable of handling ethernet-phy-ieee802.3-c45
PHYs correctly, and also does not handle MDIO bus wide reset-gpios property.
Until proper C45 PHY support lands in U-Boot, disable AVB1/AVB2 interfaces.
This only disables the two MACs with 88Q2110/88Q2112 100/1000BASE-T1 PHYs
on ethenet sub-board, the main board AVB0 ethernet is unaffected.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:07:34 +01:00
Paul Barker
3a735cff5f pinctrl: rzg2l: Drop unnecessary scope
In rzg2l_pinconf_set(), there are no new variables defined in the case
statement for PIN_CONFIG_INPUT_ENABLE so no additional scope is needed.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:06:52 +01:00
Paul Barker
bba516a772 pinctrl: rzg2l: Support Ethernet TXC output enable
On the RZ/G2L SoC family, the direction of the Ethernet TXC/TX_CLK
signal is selectable to support an Ethernet PHY operating in either MII
or RGMII mode. By default, the signal is configured as an input and MII
mode is supported. The ETH_MODE register can be modified to configure
this signal as an output to support RGMII mode.

As this signal is be default an input, and can optionally be switched to
an output, it maps neatly onto an `output-enable` property in the device
tree.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:06:52 +01:00
Paul Barker
215663f5e4 pinctrl: rzg2l: Support 2.5V PVDD for Ethernet interfaces
The Ethenet interfaces on the Renesas RZ/G2L SoC family can operate at
multiple power supply voltages: 3.3V (default value), 2.5V and 1.8V.

rzg2l_pinconf_set() is extended to support the 2.5V setting, with a
check to ensure this is only used on Ethernet interfaces as it is not
supported on the SD & QSPI interfaces.

While we're modifying rzg2l_pinconf_set(), drop the unnecessary default
value for pwr_reg as it is set in every branch of the following if
condition.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:06:52 +01:00
Paul Barker
2b1a5efca8 net: ravb: Simplify max-speed handling in ravb_of_to_plat
We can call dev_read_u32_default() instead of calling fdt_getprop() then
fdt32_to_cpu().

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:06:52 +01:00
Paul Barker
9a699a0a0d clk: rzg2l: Ignore enable for core clocks
In the RZ/G2L family, core clocks are always on and can't be disabled.
However, drivers which are shared with other SoCs may call clk_enable()
or clk_enable_bulk() for a clock referenced in the device tree which
happens to be a core clock on the RZ/G2L. To avoid the need for
conditionals in these drivers, simply ignore attempts to enable a core
clock.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-12-08 23:06:52 +01:00
Christoph Niedermaier
1c9fe756ed board: dhelectronics: Sync env variable dh_som_serial_number with SN
The env variable "SN" is used to store the serial number on DH electronics
SoMs. New SoMs will use the variable "dh_som_serial_number". To ensure
compatibility, these env variables are synchronized. This is achieved
using callback functions.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-12-07 09:07:45 -03:00
Christoph Niedermaier
86f58ea539 lib: hashtable: Prevent recursive calling of callback functions
In case there are two variables which each implement env callback
that performs env_set() on the other variable, the callbacks will
call each other recursively until the stack runs out. Prevent such
a recursion from happening.

Example which triggers this behavior:
static int on_foo(...) { env_set("bar", 0); ... }
static int on_bar(...) { env_set("foo", 0); ... }
U_BOOT_ENV_CALLBACK(foo, on_foo);
U_BOOT_ENV_CALLBACK(bar, on_bar);

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Suggested-by: Marek Vasut <marex@denx.de>
2024-12-07 09:07:45 -03:00
Christoph Niedermaier
489b965564 arm64: imx8mp: Read values from M24C32-D write-lockable page on DHCOM i.MX8MP
The new i.MX8M Plus DHCOM rev.200 is populated with M24C32-D EEPROM
that contains an additional write-lockable page called ID page, which
is populated with a structure containing ethernet MAC addresses, DH
item number and DH serial number.

Because the write-lockable page is not present on rev.100 i.MX8MP DHCOM
SoM, test whether EEPROM ID page exists by setting up the i2c driver.

There may be multiple EEPROMs with an ID page on this platform, always
use the first one. The evaluation of the EEPROM ID page is done in two
steps. First, the content is read and checked. This is done to cache
the content of the EEPROM ID page. Second, the content is extracted
from the EEPROM buffer by requesting it.

For the ethernet MAC address the i.MX8M Plus DHCOM currently supports
parsing address from multiple sources in the following priority order:

1) U-Boot environment 'ethaddr'/'eth1addr' environment variable
2) SoC OTP fuses
3) On-SoM EEPROM

Add support for parsing the content of this new EEPROM ID page and place
it between 2) and 3) on the priority list. The new entry is 2.5) On-SoM
EEPROM write-lockable page.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-12-07 09:07:44 -03:00
Christoph Niedermaier
04832973e2 arm64: dts: imx8mp: Add aliases for the access to the EEPROM ID page node
The new i.MX8M Plus DHCOM rev.200 is populated with M24C32-D EEPROM
that contains an additional write-lockable page called ID page. Add
aliases eeprom0wl and eeprom1wl for the access to the EEPROM ID
page node.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-12-07 09:07:44 -03:00
Peng Fan
ff9f080e59 imx: Support i.MX91 11x11 EVK board
Add i.MX91 11x11 EVK Board support.
 - Four ddr scripts included w/o inline ecc feature.
 - SDHC/NETWORK/I2C/UART supported
 - PCA9451 supported, default nominal drive mode
 - Documentation added.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
c4ee9df4a4 arm64: dts: add NXP i.MX91 device tree
Add the i.MX91 device tree from [1]. These files could be synced
to linux upstream after [1] merged to linux source tree.

[1]
https://lore.kernel.org/all/20241120094945.3032663-1-pengfei.li_1@nxp.com/

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
c22bc4019a pinctrl: imx93: support i.MX91
Reuse i.MX93 pinctrl driver for i.MX91, because i.MX91 follows same
design as i.MX93 in IOMUXC controller.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Ye Li
ffae5a2c7c ddr: imx: Add new rates for i.MX91
iMX91 reuses iMX93 controller and PHY, but with lower speed,
so add new DDR rates for i.MX91.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Ye Li
bc04d5961d clk: imx: clk-fracn-gppll: Add new PLL rate
Add new rates to integer and frac PLL to support iMX91

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
17bd2acfae clk: imx93: support i.MX91
i.MX91 is a derived from i.MX93, and most clocks could be reused from
i.MX93. Also Update imx93-clock.h to sync with linux next.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
a9d562daa3 imx: Add iMX91 support
iMX91 is reduced part from iMX93 with part number: i.MX9131/11/01
It removed A55_1, M33, MIPI DSI, LVDS, etc.

i.MX9131:
  - Support 2.4GT/s DDR and HWFFC at 1.2GT/s
i.MX9121:
  - A55 at 800Mhz and DDR at 1600MTS, with low drive mode.
i.MX9111:
  - Support 1.6GT/s DDR and HWFFC at 800MT/s
i.MX9101:
  - Support 800Mhz ARM clock
  - Support 1.6GT/s DDR and HWFFC at 800MT/s
  - No parallel display, eQOS, flexcan

Updated Clock/Container/CPU and etc for i.MX91

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Ye Li
959804039a imx93: Update 9x9 part fuses checking
According to iMX93 fuse burn plan, all 9x9 parts will have USB2,
ENET1 (FEC), LVDS1, CSI1 and DSI1 disabled. The codes missed ENET1
fuse when detecting 9x9. Although it still can detect 9x9 correctly,
we add the ENET1 fuse to the check to be more accurate.

Fixes: 58da865e27 ("imx9: add i.MX93 variants support")
Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
057096c80f imx9: gpio: include types.h header
Include types.h header for u32, following Linux Coding Style to include
necessary headers.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:04 -03:00
Peng Fan
7b20f70b0b imx9: trdc: correct DEBUG usage
Replace '#if DEBUG' with '#ifdef DEBUG', otherwise '#define DEBUG 1'
should be used and conflict with '#define DEBUG' in include/log.h

Fixes: 5fda95fb94 ("imx: imx9: Add TRDC driver for TRDC init")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:03 -03:00
Peng Fan
4af5084a3b gpio: imx_rgpio2p: Move 8ulp_data to data section
have_dual_base is set to false, so the 8ulp_data will be put in BSS
section which conflicts with the area of u-boot.dtb which padded just
after u-boot-nodtb.bin. So move 8ulp_data to data section to avoid
its content being corrupted by dtb.

Fixes: 51cfa66f2c ("gpio: imx_rgpio2p: support one address")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-12-07 09:07:03 -03:00
Yunus Bas
6b535ce0fd board: phytec: phycore_imx8mm: Add RAUC boot logic to environment
Add RAUC boot logic to the environment.

Signed-off-by: Yunus Bas <y.bas@phytec.de>
2024-12-07 09:06:32 -03:00
Yunus Bas
867132cf23 phycore_imx8mm: Move default bootcmd to board env
Move the default bootcmd from the defconfig to the board environment.

Signed-off-by: Yunus Bas <y.bas@phytec.de>
2024-12-07 09:06:32 -03:00
Yunus Bas
e2cc259cbb phycore_imx8mm: Switch to using env text files
Move the environment into the board directory and convert header to a
txt file. In addition, this patch also applies following changes:

- Change default nfsroot path to /srv/nfs due to compliance with Linux
FHS 3.0.

- Rename specific variables as stated in the bootstd documentation.
Renamed variables:
	fdt_addr => fdt_addr_r
	fdt_file => fdtfile

Signed-off-by: Yunus Bas <y.bas@phytec.de>
2024-12-07 09:06:32 -03:00
Ilias Apalodimas
45f05f6812 mbedtls: remove MBEDTLS_HAVE_TIME
When MbedTLS TLS features were added MBEDTLS_HAVE_TIME was defined as part
of enabling https:// support. However that pointed to the wrong function
which could crash if it received a NULL pointer.

Looking closer that function is not really needed, as it only seems to
increase the RNG entropy by using 4b of the current time and date.
The reason that was enabled is that lwIP was unconditionally requiring it,
although it's configurable and can be turned off.

Since lwIP doesn't use that field anywhere else, make it conditional and
disable it from our config.

Fixes: commit a564f5094f ("mbedtls: Enable TLS 1.2 support")
Reported-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-06 17:47:23 -06:00
Vincent Stehlé
1f40dbad60 arm: qemu: fix update_info declaration
Add a missing comma in the update_info structure declaration.

This fixes the following build error when building with
EFI_RUNTIME_UPDATE_CAPSULE or EFI_CAPSULE_ON_DISK:

  board/emulation/qemu-arm/qemu-arm.c:52:9: error: request for member ‘images’ in something not a structure or union

Fixes: cccea18813 ("efi_loader: add the number of image entries in efi_capsule_update_info")
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Masahisa Kojima <masahisa.kojima@linaro.org>
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Cc: Tom Rini <trini@konsulko.com>
2024-12-06 17:47:23 -06:00
Heinrich Schuchardt
c7401fc1d9 net: disable MBEDTLS in SPL
Building SPL fails with MBEDTLS enabled.
Currently we don't need it there.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-06 17:47:23 -06:00
Heinrich Schuchardt
1ac2838350 rtc: CONFIGS_RTC_PL031 must depend on CONFIGS_DM_RTC
Building qemu_arm64_defconfig with CONFIGS_DM_RTC=n and CONFIGS_RTC_PL031=y
leads to a build failure.

Adjust the vexpress64 configuration to avoid circular dependency.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-06 17:47:23 -06:00
Sughosh Ganu
1a48b0be93 lmb: prohibit allocations above ram_top even from same bank
There are platforms which set the value of ram_top based on certain
restrictions that the platform might have in accessing memory above
ram_top, even when the memory region is in the same DRAM bank. So,
even though the LMB allocator works as expected, when trying to
allocate memory above ram_top, prohibit this by marking all memory
above ram_top as reserved, even if the said memory region is from the
same bank.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Andreas Schwab <schwab@suse.de>
2024-12-06 17:47:23 -06:00
Tom Rini
ef9574da96 configs: Resync with savedefconfig
Resync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-06 17:47:16 -06:00
Tom Rini
39759bf9fe Merge patch series "board: ti: k3-am65: covert last board to OF_UPSTREAM"
Bryan Brattlof <bb@ti.com> says:

Hello Everyone!

This small series converts TI's AM65x reference board to use
CONFIG_OF_UPSTREAM and removes the unused device tree files from
arch/arm/dts.

Because it's the last board using a AM65x without enabling OF_UPSTREAM
it allows us to also remove all the SoC FDT files as well and keep a
single version of the SoC's DT files in the dts/upstream directory going
forward.

Link: https://lore.kernel.org/r/20241121-am65x-v1-0-fe87aff1b5fc@ti.com
2024-12-06 16:39:26 -06:00
Bryan Brattlof
1c7c5b09cd arm: dts: k3-am65: remove unsused am65x SoC fdt files
With all boards using TI's AM65x having enabled CONFIG_OF_UPSTREAM
cleanup the unused SoC fdt files.

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-12-06 16:39:21 -06:00
Bryan Brattlof
688dfb9234 arm: dts: k3-am654: cleanup unused board files
With the reference board now using CONFIG_OF_UPSTREAM these board files
are unused. Remove them

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-12-06 16:39:21 -06:00
Bryan Brattlof
262a62ad93 board: ti: am65x: migrate to OF_UPSTREAM
Rather than rely on manual updates from the arch/arm/dts directory,
enable CONFIG_OF_UPSTREAM to receive automatic device tree updates for
the am65x reference board.

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-12-06 16:39:21 -06:00
Tom Rini
a03f0f9e6f Merge patch series "PLL Sequencing update"
Manorit Chawdhry <m-chawdhry@ti.com> says:

It has done a re-write of the full driver and the commits aren't split
to keep the bisectability intact.

Boot Logs: https://gist.github.com/manorit2001/1eaba109d722715a233244da693133d3

Link: https://lore.kernel.org/r/20241121-b4-upstream-pll-fix-v1-0-904f618897a7@ti.com
2024-12-06 16:38:50 -06:00
Manorit Chawdhry
79d91e77f4 clk: ti: clk-k3-pll: Add additional robustness steps to the PLL sequence
Based on the recommendation from HW team make modifications to
the sequence for more robustness.

- Unlock the PLL registers
- Enable external bypass
- Disable the PLL
- Program pllm and pllf
- Program Ref divider
- Enable other PLL controls like DSM_EN, DAC_EN,etc
- Enable calibration if available
- Enable PLL
- Wait for PLL lock and Calibration lock
- Remove external bypass

Re-write the full sequence from scratch as the previous sequence was way
off and keep it in a single commit for bisectability.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-06 16:38:16 -06:00
Manorit Chawdhry
d6cd643c4e clk: ti: clk-k3-pll: Change variable name reg to base
base is more appropriate for the usage as the variable stores the base
address and seems more accurate w.r.t reg. Change reg to base.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-06 16:38:16 -06:00
Manorit Chawdhry
5d1aac358f arm: dts: k3-*-r5: Remove clocks from mcu_timer0
Updated PLL driver sequencing requires us to use udelay in the PLL
driver as there is no poll bit to get the status of operations.
tick-timer(mcu_timer0/main_timer0) setting up the clocks for itself is
something that won't work as the PLL driver will be using udelay and
PLLs are configured during clock probe which would end up in a recursive
probe.

tick-timer being used by K3 devices are configured by ROM and we really
don't need to configure any of the clocks.

Remove the clock dependency from R5 stage as we don't need to setup
clocks for it.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-06 16:38:16 -06:00
Christoph Niedermaier
dca82739b9 env: Switch the callback static list to Kconfig
Switch the callback static list from the board configuration variable
CFG_ENV_CALLBACK_LIST_STATIC to Kconfig CONFIG_ENV_CALLBACK_LIST_STATIC.

Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-12-06 16:37:43 -06:00
Théo Lebrun
ce05ec4895 ram: k3-ddrss: drop debug() in timing-sensitive sequence
Those debug() calls might be useful, but beware. They can cause the DDR
controller to hang if we do not run the sequence quickly enough.

They usually are not an issue with upstream U-Boot and the default DDR
config, but they have become troublesome with custom DDR configs.

Drop those debug() statements that shouldn't be present in
time-sensitive code, to avoid anyone else falling into the trap.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
2024-12-06 16:37:39 -06:00
Tom Rini
a0c8e3cfba Merge patch series "led: update LED boot/activity to new property implementation"
Christian Marangi <ansuelsmth@gmail.com> says:

This series is split in 2 part.

While adapting the LED boot and activity code to the new property
accepted by Rob in dt-schema repository, a big BUG was discovered.

The reason wasn't clear at start and took me some days to figure it
out.

This was triggered by adding a new phandle in the test.dts to
introduce test for the new OPs.

This single addition caused the sandbox CI test to fail in the
dm_test_ofnode_phandle_ot test.

This doesn't make sense as reverting the change made the CI test
to correctly finish. Also moving the uboot node down
after the first phandle (in test.dts the gpio one) also made
the CI test to correctly finish.

A little bit of searching and debugging made me realize the
parse phandle OPs didn't support other.dts at all and they
were still referencing phandle index from test.dts.
(more info in the related commit)

In short the test was broken all along and was working by
pure luck. The first 4 patch address and fix the problem for good.

The other 4 patch expand and address the property change for
LED boot/activity.

Posting in a single series as changes are trivial and just
to speedup review process. (and also because the second
part depends on the first)

All CI tested with azure pipeline.

Link: https://lore.kernel.org/r/20241110115054.2555-1-ansuelsmth@gmail.com
2024-12-06 13:00:52 -06:00
Christian Marangi
68312417b8 test: dm: Update test for LED activity and boot
Update test for LED activity and boot to follow new implementation with
property set to the LED node phandle.

Also update a copy-paste error in the function name for the activity
tests and actually enable the test with the DM_TEST macro.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:41 -06:00
Christian Marangi
69542d0692 led: update LED boot/activity to new property implementation
Update LED boot/activity to reference by phandle instead of label and
add to period property the "-ms" suffix.
This is a followup request by dt-schema maintainers that required LED
node to be referenced by a phandle to the node instead of indirectly by
the LED label and for timevalue to have a suffix.

While at it generalize the LED node label parsing since the logic is
common for generic LED bind and LED activity/boot.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-12-06 13:00:41 -06:00
Christian Marangi
c2aecfbe2c test: dm: Add test for ofnode options phandle helper
Add test for ofnode options phandle helper and add new property in the
sandbox test dts.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:41 -06:00
Christian Marangi
cab275c446 dm: core: implement phandle ofnode_options helper
Implement ofnode_options phandle helper to get an ofnode from a phandle
option in /options/u-boot.

This helper can be useful since new DT yaml usually require to link a
phandle of a node instead of referencing it by name or other indirect
way.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:41 -06:00
Christian Marangi
2c19bd15ea test: dm: Expand dm_test_ofnode_phandle(_ot) with new ofnode/tree_parse_phandle
Expand dm_test_ofnode_phandle(_ot) with new ofnode/tree_parse_phandle() op.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:40 -06:00
Christian Marangi
2d31a2797a dm: core: implement ofnode/tree_parse_phandle() helper
Implement ofnode/tree_parse_phandle() helper as an equivalent of
of_parse_phandle to handle simple single value phandle.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:40 -06:00
Christian Marangi
8f9cc56a5b test: dm: fix broken dm_test_ofnode_phandle_ot and get_by_phandle_ot
Fix broken dm_test_ofnode_phandle_ot test. They never actually worked
and were passing test by pure luck by having the same phandle index of
test.dts that coincicentally had #gpio-cells in the same index node.

It was sufficient to add a phandle to test.dts to make the test fail.

To correctly test these feature, make use oif the new OPs oftree to
parse phandle.

For consistency with the dm_test_ofnode_phandle, rework the test and
other.dts to use the same property with the other- prefix to every
node.

Also fix dm_test_ofnode_get_by_phandle_ot by making it more robust and
renaming the phandle property to other-phandle.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:40 -06:00
Christian Marangi
1614347036 dm: core: implement oftree variant of parse_phandle OPs
Implement oftree variant of parse_phandle OPs.

There is currently a very hidden and laten BUG with parse_phandle OPs
that doesn't permit the support of multiple DTS in a system. One usage
example if sandbox with the usage of other.dts

The BUG is only present on live scenario where of_... OPs are used and
it's not present when fdt... OPs are used.

This is caused by an assumption made in __of_parse_phandle_with_args,
with the of_find_node_by_phandle call that pass the first arg as NULL.

This makes of_find_node_by_phandle use the default root node of the
system and doesn't permit the usage of alternative tree. This is correct
for normal system and also for the linux kernel where it's assumed a
single device tree.

It's problematic if other device tree needs to be used.

To fix this, introduce __of_root_parse_phandle_with_args to define a
root device tree for of_find_node_by_phandle.

Introduce all the variant OPs for this and in ofnode, the oftree OPs
following how it's done for other OPs with similar task.

For FDT scenario, ofnode_from_fdtdec_phandle_args is reworked to accept
a new variable, node and noffset_to_ofnode is used instead of
offset_to_ofnode. This is required to support multiple FDB blob to
calculate the correct of_offset of the ofnode.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-12-06 13:00:40 -06:00
Tom Rini
448add5529 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
CI: https://source.denx.de/u-boot/custodians/u-boot-pmic/-/pipelines/23718

- Correct a few debug/error print calls
2024-12-05 08:11:35 -06:00
Tom Rini
ac3428fcc7 Merge tag 'efi-master-05122024' of https://source.denx.de/u-boot/custodians/u-boot-tpm
CI: https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/23719

Two fixes for the EFI subsystem coming via the TPM tree as agreed by Heinrich

The LMB patch fixes a failure in SystemReady testing. Nothing bad happens
without the patch in the device operation, but the return values are wrong
and SCT tests fail for MemoryAllocationServicesTest category.

The second is a shielding the device against mistakes in the definition of
struct fields needed by the capsule update mechanism. Instead of crashing,
print a humna readable message of what's wrong.
2024-12-05 08:10:51 -06:00
Ilias Apalodimas
1d9aa4a283 lmb: Fix the allocation of overlapping memory areas with !LMB_NONE
At the moment the LMB allocator will return 'success' immediately on two
consecutive allocations if the second one is smaller and the flags match
without resizing the reserved area.

This is problematic for two reasons, first of all the new updated
allocation won't update the size and we end up holding more memory than
needed, but most importantly it breaks the EFI SCT tests since EFI
now allocates via LMB.

More specifically when EFI requests a specific address twice with the
EFI_ALLOCATE_ADDRESS flag set, the first allocation will succeed and
update the EFI memory map. Due to the LMB behavior the second allocation
will also succeed but the address ranges are already in the EFI memory
map due the first allocation. EFI will then fail to update the memory map,
returning EFI_OUT_OF_RESOURCES instead of EFI_NOT_FOUND which break EFI
conformance.

So let's remove the fast check with is problematic anyway and leave LMB
resize and calculate address properly. LMB will now
- try to resize the reservations for LMB_NONE
- return -1 if the memory is not LMB_NONE and already reserved

The LMB code needs some cleanup in that part, but since we are close to
2025.01 do the easy fix and plan to refactor it later.
Also update the dm tests with the new behavior.

Fixes: commit 22f2c9ed9f ("efi: memory: use the lmb API's for allocating and freeing memory")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-05 09:01:44 +02:00
Ilias Apalodimas
05396fb724 efi_loader: Check for a valid fw_name before auto generating GUIDs
The gen_v5_guid() is a void and does no error checking with pointers
being available etc. Instead it expects all things to be in place to
generate GUIDs. If a board capsule definition is buggy and does not
define the firmware names when enabling capsule updates, the board will
crash trying to bring up the EFI subsystem.

Check for a valid firmware name before generating GUIDs.

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-05 09:01:33 +02:00
Patrice Chotard
74cd1af112 power: regulator: replace dev_dbg() by dev_err() in regulator_post_bind()
To ease debugging, use dev_err() instead of dev_dbg() for
alerting when regulator has nonunique value.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-05 07:31:31 +09:00
Patrice Chotard
ccddb0abec power: regulator: replace some debug() by dev_dbg()
Replace some debug() by dev_dbg() when dev variable
is available/valid.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-12-05 07:31:21 +09:00
Tom Rini
fe76d868f7 Merge patch series "Add OPP_LOW support for J7200"
Aniket Limaye <a-limaye@ti.com> says:

This series adds OPP_LOW spec data in k3_avs driver and enables a config
option to select the OPP_LOW performance point.

J7200 SOC supports OPP_LOW and OPP_NOM as two Operating Performance
Points as per (7.5 Operating Performance Points) section in the
Datasheet [0].
- A72SS/MSMC at 2 GHz/1GHz operation must use OPP_NOM.
- A72SS/MSMC at 1 GHz/500 MHz operation can use OPP_NOM or OPP_LOW
  voltage (though OPP_LOW voltage is recommended to reduce power
  consumption).

The actual OPP voltage for the device is read from the efuse and
updated in k3_avs_probe().

The default j7200 devicetree and k3_avs driver set OPP_NOM spec
frequency and voltage.

In the board init file, if K3_OPP_LOW config is enabled, Check if
OPP_LOW AVS voltage read from efuse is valid and update frequency (A72
and MSMC) and voltage (VDD_CPU) as per the OPP_LOW spec.

[0]: https://www.ti.com/lit/gpn/dra821u  (J7200 Datasheet)

Test logs:
https://gist.github.com/aniket-l/328ad93ed60c2419ed7be9f85e6b6075
- With series applied on master and CONFIG_K3_OPP_LOW enabled in
  j7200_evm_r5_defconfig
- Logs shown with and without efuse register programmed for OPP_0
  (Errors out if OPP_0 not found, programs OPP_LOW spec if found)
- Voltage update verified using 'i2c md 0x4c 0xe' in u-boot
- Frequency update verified using 'k3conf clock dump' in linux

Link: https://lore.kernel.org/r/20241119003617.1871183-1-a-limaye@ti.com
2024-12-04 14:30:25 -06:00
Reid Tonking
abb2544d89 configs: j7200_evm_r5_defconfig: Define K3_OPP_LOW
Define new CONFIG_K3_OPP_LOW under arm/mach-k3/r5/Kconfig and add
default value to j7200_evm_r5_defconfig

Signed-off-by: Reid Tonking <reidt@ti.com>
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
2024-12-04 14:30:18 -06:00
Aniket Limaye
82ab094c1a arm: mach-k3: j721e-init.c: Add support for CONFIG_K3_OPP_LOW
The default j7200 devicetree and k3_avs driver set 2GHz/1GHz frequency
for A72/MSMC clks and the OPP_NOM voltage.

J7200 SOCs may support OPP_LOW Operating Performance Point:
1GHz/500MHz clks for A72/MSMC and OPP_LOW AVS voltage read from efuse.

Hence, add a config check in board_init_f() to select OPP_LOW specs:
- Check if OPP_LOW AVS voltage read from efuse is valid.
- Use the device IDs and clock IDs (TISCI docs [0]) to find the A72 and
  MSMC clock frequencies in the devicetree.
- Fixup the clock frequencies in devicetree as per OPP_LOW spec.

k3_avs driver programs the OPP_LOW AVS voltage for VDD_CPU through
k3_avs_notify_freq() callback from clk_k3.

[0]: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j7200/clocks.html

Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:30:18 -06:00
Reid Tonking
afe0ab6d30 misc: k3_avs: Check validity of efuse voltage data
k3_avs driver checks opp_ids when probing and overwrites the voltage
values in vd_data for the respective board. The new k3_avs_check_opp()
can be called from board files to check the efuse data and returns 0 if
valid.

Also add the same check in k3_avs_program_voltage() to error out if
the efuse data was not valid.

Signed-off-by: Reid Tonking <reidt@ti.com>
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:30:18 -06:00
Reid Tonking
287a3b25bd misc: k3_avs: Add OPP_LOW voltage and frequency to vd_data
J7200 SOC supports OPP_LOW and OPP_NOM as two Operating Performance
Points as per (7.5 Operating Performance Points) section in the
Datasheet [0].
- A72SS/MSMC at 2 GHz/1GHz operation must use OPP_NOM.
- A72SS/MSMC at 1 GHz/500 MHz operation can use OPP_NOM or OPP_LOW
  voltage (though OPP_LOW voltage is recommended to reduce power
  consumption).

Add OPP_LOW frequency->voltage entry to vd_data.

The actual OPP voltage for the device is read from the efuse and
updated in k3_avs_probe().
OPP_NOM corresponds to OPP_1 and OPP_LOW to OPP_0 efuse register
fields, as described in the Datasheet [0]
The register offsets and fields are described in the TRM (5.2.6.1.5
WKUP_VTM_VD_OPPVID_j Register) [1].

[0]: https://www.ti.com/lit/gpn/dra821u (J7200 Datasheet)
[1]: https://www.ti.com/lit/pdf/spruiu1 (J7200 TRM)

Signed-off-by: Reid Tonking <reidt@ti.com>
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
2024-12-04 14:30:18 -06:00
Reid Tonking
c9fff93cbe arm: dts: k3-j7200-r5-common: Add msmc clk to a72 node
The j7200 SOC has a single DDR controller and hence no need for
configuring the MSMC interleaver. Hence we do not have an explicit node
for MSMC in j7200 DT, unlike j721s2/j784s4.

Also, MSMC clk id is described under A72SS0_CORE0 Device in TISCI
documentation [0].

Considering the above, define the MSMC clk in the a72 node.

[0]: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j7200/clocks.html#clocks-for-a72ss0-core0-device

Signed-off-by: Reid Tonking <reidt@ti.com>
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:30:18 -06:00
Tom Rini
96bddc8148 Merge patch series "Enable AVS support for AM68, AM69 and J784S4"
Neha Malcom Francis <n-francis@ti.com> says:

This series adds AVS support for AM68 SK, AM69 SK and J784S4 EVM.

Boot logs:
https://gist.github.com/nehamalcom/db5dbf98357ebac46f648c24ad1a17e2

Link: https://lore.kernel.org/r/20241118105714.1973573-1-n-francis@ti.com
2024-12-04 14:29:11 -06:00
Udit Kumar
45ebc1b902 configs: am68_sk_r5: Add AVS Configs
Add AVS and PMIC regulator configs

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:29:04 -06:00
Neha Malcom Francis
368bb08998 configs: j784s4_evm_r5_defconfig: Enable AVS
Enable AVS support on J784S4 along with regulator.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:29:04 -06:00
Neha Malcom Francis
6f6192f626 arch: arm: mach-k3: j784s4_init: Probe AVS driver
Probe the AVS driver to set the AVS voltage.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:29:04 -06:00
Neha Malcom Francis
d43d612469 arm: dts: k3-am68-sk-r5-base-board: Add VTM node to R5 stage
Add the VTM node to the R5 boot stage so that AVS is correctly
configured for AM68 SK.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:29:03 -06:00
Neha Malcom Francis
480f6531ab arm: dts: k3-j784s4-r5: Add VTM node to R5 stage
Add VTM node to R5 boot stage so that AVS gets correctly configured for
J784S4 EVM and AM69 SK.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-12-04 14:29:03 -06:00
Udit Kumar
8a80185ac3 arm: dts: k3-am68: Enable OSPI boot
Enable OSPI node to allow OSPI boot on AM68

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
2024-12-04 14:20:27 -06:00
Zixun LI
3c69a95b9a dm: gpio: Return error when pull up/down is requested but set_flags ops is not implmentated
Currently in _dm_gpio_set_flags() when set_flags ops is not implemented
direction_output()/_input() is used, but pull up/down is not supported by
these ops.

Signed-off-by: Zixun LI <admin@hifiphile.com>
2024-12-04 14:11:43 -06:00
Caleb Connolly
15299fa5dd button: gpio: handle broken controller
Avoid crashing U-Boot when the GPIO controller for a button is disabled
or failed to probe. We also need to check the priv data for each button
since even if a button fails to probe it will still be polled by the
core code.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-12-04 14:06:23 -06:00
Garrett Giordano
893ae07cc9 board: phytec: common: Introduce CONFIG_PHYTEC_K3_DDR_PATCH
Introduce CONFIG_PHYTEC_K3_DDR_PATCH to make DDR timing patch code
optional for PHYTEC K3 boards. This allows better control over which
boards receive DDR timing patches, rather than compiling the code for
all boards with K3_DDRSS enabled.

Also enable the feature by default for PHYCORE_AM62X_R5.

Signed-off-by: Garrett Giordano <ggiordano@phytec.com>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
2024-12-04 14:04:08 -06:00
Marek Vasut
dcee0ed33b eeprom: at24: add ST M24256E Additional Write lockable page support
The ST M24256E behaves as a regular M24C256, except for the E variant
which uses up another I2C address for Additional Write lockable page.
This page is 64 Bytes long and can contain additional data. Add entry
for it, so users can describe that page in DT. Note that users still
have to describe the main M24C256 area separately as that is on separate
I2C address from this page.

Unlike M24C32-D and M24C64-D, this part is specifically ST and does not
have any comparable M24* counterparts from other vendors, hence the st,
vendor prefix. Furthermore, the part name is M24256E without C between
the 24 and 256, this is not a typo. Finally, there is M24C256-D part,
which does contain 32 Bytes long Additional Write lockable page, which
is a different part and not supported by this patch.

Datasheet: https://www.st.com/resource/en/datasheet/m24256e-f.pdf

From Linux kernel commit:
339cb28b9ee6 ("eeprom: at24: add ST M24256E Additional Write lockable page support")

Signed-off-by: Marek Vasut <marex@denx.de>
2024-12-04 14:01:58 -06:00
Tom Rini
ce8b8ce8dc arm: sunxi: Use "imply" for USB without further guards
Given that ARCH_SUNXI already implies that USB_GADGET should be enable,
we should also imply USB being enabled.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-04 14:00:45 -06:00
Tom Rini
4b0cf71639 efi_loader: Fix Kconfig logic around OF_LIBFDT
Given that OF_LIBFDT is library functionality, the feature of EFI_LOADER
needs to select OF_LIBFDT rather than depend on it being already
enabled.

Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-04 14:00:45 -06:00
Tom Rini
26a2b69b24 aspeed: Fix Kconfig logic on "DM_RESET" and ASPEED_AST2500
It is not the case that we can only pick ASPEED_AST2500 if DM_RESET
is enabled, but rather choosing ASPEED_AST2500 means we must select
DM_RESET.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-04 14:00:30 -06:00
Tom Rini
c498b6cace Merge tag 'efi-next-2024-12-04' of https://source.denx.de/u-boot/custodians/u-boot-efi into next
CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/23707

With this pull request support for the EFI_HTTP_PROTOCOL and
EFI_IP4_CONFIG2 protocols are added. This allows EFI applications
to load files via HTTP.

UEFI:
      add efi_dp_from_ipv4 function
      add efi_net_set_addr, efi_net_get_addr functions
      add support for HTTP device path
      set EFI bootdevice device path to HTTP when loaded from wget
      add support to send http requests and parse http headers
      provide EFI_IP4_CONFIG2_PROTOCOL
      provide EFI_HTTP_PROTOCOL
      support IPv4() in device path to text protocol
      provide unit tests for the HTTP and IPv4 Config2 protocols

Network:
      zero terminate string with headers in wget_fill_info()
      zero terminate string with headers in wget_lwip_fill_info()
      pass port and server_name via wget_ctx in lwIP network stack
      let wget_with_dns work with dns disabled

Others:
      Add HTTP and IPV4 Config II protocols to UUID library functions.
2024-12-04 11:56:00 -06:00
Adriano Cordova
6caec797d5 efi_selftest: add test for IPv4 Config2 protocol
Add a test for the EFI_IP4_CONFIG2_PROTOCOL. The test sets the ip
policy to static, adds an ip address, and then reads the current
ip address and checks for it to be the same as the one that was set.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:38 +01:00
Adriano Cordova
84d4ee5d05 efi_selftest: add test for HTTP protocol
Add a test for the EFI_HTTP_PROTOCOL and
EFI_SEVICE_BINDING_PROTOCOL.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:38 +01:00
Heinrich Schuchardt
6df3af4f7c lib: uuid: display HTTP and IPV4 Config II protocols
Add long texts for

* EFI HTTP Protocol
* EFI HTTP Service Binding Protocol
* EFI IPv4 Configuration II Protocol

to the uuid library.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-04 12:24:38 +01:00
Adriano Cordova
238e0269d8 efi_loader: efi_net: add EFI_HTTP_PROTOCOL
Add an EFI HTTP driver. This commit implements the
EFI_HTTP_PROTOCOL and the EFI_HTTP_SERVICE_BINDING_PROTOCOL.
The latter is attached to the handle of th efi network
device. This is the same handle where snp, pxe, and ipconfig
are attached to.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:38 +01:00
Adriano Cordova
929363cbb3 efi_loader: efi_net: add EFI_IP4_CONFIG2_PROTOCOL
Add an implementation of the EFI_IP4_CONFIG2_PROTOCOL. The protocol
is attached to the handle of the efi network device. This is the same
handle where snp and pxe are attached to.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:38 +01:00
Adriano Cordova
5a5c5bf40a efi_loader: net: add support to send http requests and parse http headers
Add network-stack agnostic way to send an http request and
parse http headers from efi drivers. This uses wget as a
backend and communicates with it via efi_wget_info.

The function efi_net_do_request allocates a buffer on behalf of an
efi application using efi_alloc and passes it to wget to receive
the data. If the method is GET and the buffer is too small, it
re-allocates the buffer based on the last received Content-Length
header and tries again. If the method is HEAD it just issues one
request. So issuing a HEAD request (to update Content-Length) and
then a GET request is preferred but not required.

The function efi_net_parse_headers parses a raw buffer containing
an http header into an array of EFI specific 'http_header' structs.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-12-04 12:24:38 +01:00
Adriano Cordova
e55a4acb54 efi_loader: net: set EFI bootdevice device path to HTTP when loaded from wget
Set the device path of the efi boot device to an HTTP device path
(as formed by efi_dp_from_http) when the next boot stage is loaded
using wget (i.e., when wget is used with wget_info.set_bootdev=1).

When loaded from HTTP, the device path should account for it so that
the next boot stage is aware (e.g. grub only loads its http stack if
it itself was loaded from http, and it checks this from its device path).

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-12-04 12:24:37 +01:00
Adriano Cordova
4b0723004b efi_loader: device_path: add support for HTTP device path
Add efi_dp_from_http to form a device path from HTTP. The
device path is the concatenation of the device path returned
by efi_dp_from_ipv4 together with an URI node and an END node.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-04 12:24:37 +01:00
Adriano Cordova
b20f497f22 efi_loader: efi_net: add efi_net_set_addr, efi_net_get_addr
Add the functions efi_net_set_addr and  efi_net_get_addr to set
and get the ip address from efi code in a network agnostic way.
This could also go in net_common, or be compiled conditionally
for each network stack.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-12-04 12:24:37 +01:00
Adriano Cordova
b98d232350 efi_api: add definitions for HTTP and IP4_CONFIG2 protocols
Add EFI definitions for EFI_IP4_CONFIG2_PROTOCOL,
EFI_HTTP_SERVICE_BINDING_PROTOCOL, and EFI_HTTP_PROTOCOL.
According to UEFI spec 2.10.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-04 12:24:37 +01:00
Heinrich Schuchardt
aaf63429a1 efi_loader: add IPv4() to device path to text protocol
Implement Ipv4() node support in the device path to text protocol.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-04 12:24:37 +01:00
Adriano Cordova
f43641decf efi_loader: device_path: add efi_dp_from_ipv4
Add efi_dp_from_ipv4 to form a device path from an ipv4 address.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-04 12:24:37 +01:00
Adriano Cordova
5a65b23322 efi_loader: device_path: add definition of DEVICE_PATH_SUB_TYPE_MSG_IPV4
Add definition for DEVICE_PATH_SUB_TYPE_MSG_IPV4 device path
subtype.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-04 12:24:37 +01:00
Adriano Cordova
9bab7d2a7c net: wget: let wget_with_dns work with dns disabled
This was marked as TODO in the code:
 - Enable use of wget_with_dns even if CMD_DNS is disabled if
   the given uri has the ip address for the http server.
 - Move the check for CMD_DNS inside wget_with_dns.
 - Rename wget_with_dns to wget_do_request

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-12-04 12:24:37 +01:00
Adriano Cordova
dc7c8a2532 net-lwip: zero terminate string with headers in wget_lwip_fill_info()
This patch comes as a companion to the same patch but for the legacy
    net stack. Commit 1327c2a8d6 ("net/lwip: wget: integrate struct wget_info
    into wget code") introduced function wget_fill_info() which retrieves
    the headers from the HTTP server response. As we want to parse the
    string in later patches we need to ensure that it is NUL terminated.

    We must further check that wget_info->headers in not NULL.
    Otherwise a crash occurs.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:37 +01:00
Heinrich Schuchardt
737c2dca95 net: zero terminate string with headers in wget_fill_info()
Commit 2dd076a9c1 ("net: wget: integrate struct wget_info into legacy
wget code") introduced function wget_fill_info() which retrieves the
headers from the HTTP server response. As we want to parse the string in
later patches we need to ensure that it is NUL terminated.

We must further check that wget_info->headers in not NULL.
Otherwise a crash occurs.

Fixes: 2dd076a9c1 ("net: wget: integrate struct wget_info into legacy wget code")
Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-12-04 12:24:37 +01:00
Adriano Cordova
ab49ede318 lwip: wget: pass port and server_name via wget_ctx
Commit 5907c81 ("net: lwip: Enable https:// support for wget") was not
  correctly rebased on top of the changes introduced by Commit 6cc4d04
  ("net/lwip: wget: put server_name and port into wget_ctx") in next.
  This commit re-applies a  couple of lines from 6cc4d04.

  Fixes: Commit 5907c81 ("net: lwip: Enable https:// support for wget")

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-12-04 12:24:37 +01:00
Tom Rini
df863c4aa3 Merge tag 'xilinx-for-v2025.04-rc1' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze into next
AMD/Xilinx changes for v2025.04-rc1

binman:
- Separate binman description from main DT

zynqmp:
- Enable binman for ZynqMP platforms
- DT sync with Linux v6.12
- Update usb5744 hub for SOMs

common:
- Drop SPL_FIT_GENERATOR support

versal2
- Enable OPTEE layers

ospi:
- Refactor the flash reset functionality

pytest:
- Fix tcminit mode handling
2024-12-03 15:51:56 -06:00
Tom Rini
f96e513318 Merge branch 'master' of https://gitlab.denx.de/u-boot/custodians/u-boot-samsung 2024-12-03 12:37:20 -06:00
Tom Rini
c33be116dc Merge patch series "CI: Set up for an arm64 runner"
Tom Rini <trini@konsulko.com> says:

Hey all,

This is picking up Simon's v5 of the above-named series and making a few
more changes so that the follow-up series I have leads to arm64 being
supported for almost all jobs. To quote Simon's cover letter:

All gitlab runners are currently amd64 machines. This series attempts to
create a docker image which can also support arm64 so that sandbox tests
can be run on it.

The TARGET_... environment variables for grub could perhaps be adjusted,
using the new variables, but I have not done that for now.

Adding to what Simon said, we now build grub for all architectures as
the reason to install it was to be able to use the binaries in QEMU.
That won't provide us with amd64 binaries on arm64 hosts so we can't use
that shortcut anymore.

Link: https://lore.kernel.org/r/20241127172247.1488685-1-trini@konsulko.com
2024-12-03 09:24:23 -06:00
Sam Protsenko
0bbc17f06b configs: e850-96: Disable PSCI reset
PSCI reset is not implemented in Exynos850 EL3 firmware. Disable it to
fix the reset in cases where it can be used, e.g. when running EFI
selftest.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-12-03 15:14:53 +09:00
Simon Glass
0025e7e40c CI: Add platform variable
Add a list of possible platforms that can be used by gitlab runners.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-12-02 16:34:30 -06:00
Simon Glass
939b29e592 docker: Install toolchains on arm64 host
Refactor the code to support downloading toolchains for arm64 as well as
x86_64

There doesn't seem to be an xtensa toolchain for arm64 at the same
location, so download that only on x86

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Simon Glass
ffbaa6458b docker: Fix LegacyKeyValueFormat warning with PYTHONPATH
Fix a warning due to the syntax used for PYTHONPATH:

   LegacyKeyValueFormat: "ENV key=value" should be used instead of
      legacy "ENV key value" format (line 304)

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Simon Glass
6e510606d4 docker: Adjust installed packages slightly
We no longer need to install libc6-i386 so we can drop that. Switch to
installing linux-image-generic as that will be available on all hosts,
to provide the /boot/vmlinu* file that's requires for various tools.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Simon Glass
45b2f9d4fb docker: Support building for multiple architectures
Add instructions on how to build the file for multiple architectures.
Add a message indicating what is happening.

Update the documentation as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Tom Rini
191e145471 docker: Use cache mounts for apt
Instead of deleting /var/lib/apt/lists after each relevant RUN line, use
a cache mount as is the current best practices.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Tom Rini
5fb78e0e2f docker: Build grub for all architectures
For consistency now, and future ease of testing with non-amd64 hosts,
build grub for all architectures rather than relying on host binaries
for i386/x86_64.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Tom Rini
70712a6acb docker: Update to grub-2.12
The current release of grub is 2.12 and it will be good to pick this up
now so that we can update other parts of our stack.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Tom Rini
2fc92695fb docker: Use "make -j$(nproc)" when invoking make
We had a few places that were not using "make -j$(nproc)" but instead
just plain "make" and so slowing down the overall build.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Tom Rini
042b067a5e docker: Add kernel.org x86_64 toolchain
Add in the x86_64 toolchain, but do not enforce using it for sandbox.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-02 16:34:30 -06:00
Simon Glass
5c8c073887 test: Adjust print_ut test to use unsigned char
Since char is unsigned on arm64, this test currently fails. It seems
better to use unsigned anyway, since 0xff is written into the string at
the start. Update the terminator-assert to use a character instead of a
byte.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Changes in v6:
- Re-introduce

Changes in v2:
- Use '\0' instead of 0

test/print_ut.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
2024-12-02 16:34:30 -06:00
Simon Glass
e46e4d6fd7 sandbox: efi_loader: Correct use of addresses as pointers
The cache-flush function is incorrect which causes a crash in the
remoteproc tests with arm64.

Fix both problems by using map_sysmem() to convert an address to a
pointer and map_to_sysmem() to convert a pointer to an address.

Also update the image-loader's cache-flushing logic.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 3286d223fd ("sandbox: implement invalidate_icache_all()")
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Changes in v6:
- Re-introduce

Changes in v2:
- Drop message about EFI_LOADER

arch/sandbox/cpu/cache.c              |  8 +++++++-
 drivers/remoteproc/rproc-elf-loader.c | 18 +++++++++++-------
 lib/efi_loader/efi_image_loader.c     |  3 ++-
 3 files changed, 20 insertions(+), 9 deletions(-)

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-12-02 16:34:30 -06:00
Evgeny Bachinin
acab6e78ac common: relocate fdt_blob in global_data for FDTSRC_EMBED case
Patch resolves two kind of bugs, one of which is vulnerability related
to KASLR.

=== Issue briefly ===

  Working with FDT (via non-relocated gd::fdt_blob) from inside bootm
command may lead to the reading the garbage instead of FDT nodes. And
this can result in various side-effects depending on DTS nodes, being
parsed during bootm.

  But below is my specific story how I faced with this issue due to
MESON_RNG probing failure.

=== Bugs description ===

1) Bug is revealed on:
* configuration below
* U-boot 2024.10 - f919c3a889 ("Prepare v2024.10")

  It seems, the following patch is a trigger:
ea955eea4f ("fdt: automatically add /chosen/kaslr-seed if DM_RNG is enabled")

  Generally, CONFIG_OF_EMBED=y & CONFIG_RNG_MESON=y are the most
valuable ones for reproducing the issue.
```
  CONFIG_ARCH_FIXUP_FDT_MEMORY=y
  CONFIG_CMD_FDT=y
  CONFIG_DEFAULT_FDT_FILE=""
  CONFIG_FDT_64BIT=y
  CONFIG_OF_BOARD_SETUP=y
  CONFIG_OF_CONTROL=y
  CONFIG_OF_EMBED=y
  CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
  CONFIG_OF_LIBFDT_OVERLAY=y
  CONFIG_OF_LIBFDT=y
  CONFIG_OF_LIST="meson-axg-our-device-name"
  CONFIG_OF_REAL=y
  CONFIG_OF_TRANSLATE=y
  CONFIG_SUPPORT_OF_CONTROL=y
  CONFIG_SYS_FDT_PAD=0x3000
  CONFIG_TOOLS_OF_LIBFDT=y

  CONFIG_DM_RNG=y
  CONFIG_RNG_MESON=y
```

2) Due to CONFIG_OF_EMBED, the DTS is embedded into U-boot ELF and
accessible via __dtb_dt_begin symbol.

  On early boot stage (board_f.c) the fdtdec_setup() is called only
once before U-boot's relocation into top of RAM. fdtdec_setup()
initializes gd::fdt_blob for FDTSRC_EMBED case:
```
  gd->fdt_blob = dtb_dt_embedded();
  gd->fdt_src = FDTSRC_EMBED;
```

3) Then reloc_fdt() is called in board_f.c

  But due to CONFIG_OF_EMBED=y the reloc_fdt() does not update
gd::fdt_blob value (strictly speaking, it is impossible for
CONFIG_OF_EMBED=y, because U-boot ELF has not been relocated yet
at this moment).

  As a result after relocation we get fdt_blob, pointing to DTS address
before relocation:
```
   # bdinfo
  <...>
  relocaddr = 0x000000000fedf000
  reloc off = 0x000000000eedf000
  <...>
  fdt_blob = 0x010ce6c0 << points to __dtb_dt_begin before relocation
  new_fdt = 0x0000000000000000  << empty erroneously
  fdt_size = 0x0000000000000000 << zero erroneously
```

4) During bootm command (according to our ITS-config file) the Linux
is loaded into 0x01080000 (which is very close to fdt_blob addr
0x010ce6c0).
```
  ## Loading kernel from FIT Image at 04000000 ...
     Trying 'kernel' kernel subimage
       <...>
       Load Address: 0x01080000
```

  So Linux image overwrites the gd::fdt_blob memory location
in RAM (0x010ce6c0).

5) Issue:

  Hence any manipulation with DTS (say, via FDT API) inside
implementation of bootm command leads to accessing the fdt_blob area
with garbage, that can lead to two situations:

5.1) Abort.

  Call to fdt_off_dt_struct() from fdt_next_tag() :: fdt_offset_ptr()::
fdt_offset_ptr_() returns with garbage, that leads to tagp value
being out of RAM top addr (256 Mb in our board), causing the abort:
```
  Boot cmd: bootm 0x4000000#boot_evt1
  bootm_run_states()
  <...>
  image_setup_libfdt()
   fdt_chosen()
    fdt_kaslrseed()
     uclass_get_device()
      uclass_get_device_tail()
       device_probe()
        device_of_to_plat()
        meson_rng_of_to_plat()
         clk_get_by_name_optional()
          clk_get_by_name()
           clk_get_by_name_nodev()
            ofnode_stringlist_search()
             fdt_stringlist_search()
              fdt_getprop()
               fdt_get_property_namelen_()
                fdt_first_property_offset()
                 fdt_check_node_offset_()
                  fdt_next_tag():
                    ```
                      tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
                    ```
                  fdt_next_tag() tagp:0x22890766
                  fdt_next_tag() ram_top:0x10000000 (tagp OUT of RAM)
  "Synchronous Abort" handler, esr 0x96000010, far 0x22890766
  elr: 000000000108be24 lr : 000000000108be24 (reloc)
  elr: 000000000ff6fe24 lr : 000000000ff6fe24
  x0 : 0000000000000041 x1 : 0000000000000000
  x2 : 000000000ff3b57c x3 : 0000000000000012
  x4 : 000000000ded2ad5 x5 : 0000000000000020
  x6 : 00000000ffffffe8 x7 : 000000000ded2f40
  x8 : 00000000ffffffd8 x9 : 000000000000000d
  x10: 0000000000000006 x11: 000000000001869f
  x12: 000000000fffffff x13: 000000000fffffff
  x14: 0000000000000000 x15: 000000000ded2abb
  x16: 000000000ff3b080 x17: 0000000000000001
  x18: 000000000ded3dc0 x19: 0000000022890766
  x20: 00000000010cb0f0 x21: 00000000000015e4
  x22: 000000000ff8f4d8 x23: 000000000000000b
  x24: 000000000ded2fbc x25: 000000000ffe2000
  x22: 000000000ff8f4d8 x23: 000000000000000b
  x24: 000000000ded2fbc x25: 000000000ffe2000
  x26: 000000000ffe2000 x27: 000000000000000b
  x28: 000000000ff9cf2d x29: 000000000ded2f40

  Code: aa1603e1 91197484 52801742 94004de8 (b9400276)
```

5.2) Vulnerability situation "KASLR is disabled".

Almost the same as in (5.1), but 2 situations happen (depending on
the value of garbage):
  * call to fdt_offset_ptr_() :: fdt_off_dt_struct(fdt)
    returns not so big garbage, leading to tagp, being inside RAM.
  * or calculations of absoffset inside fdt_offset_ptr() leads to
    failure of the one of if() conditions with NULL as retval.

  Result is fdt_next_tag() interprets the tagp as FDT_END. And we are
returning from our callstack via functions' error paths, leading to
"No RNG device" and "KASLR disabled due to lack of seed":
```
  fdt_kaslrseed()
   uclass_get_device()
   <...>
    device_probe()
     device_of_to_plat()
      meson_rng_of_to_plat()
       clk_get_by_name()
        clk_get_by_name_nodev()
        <...>
         fdt_stringlist_search()
          fdt_getprop()
           fdt_get_property_namelen_()
            fdt_first_property_offset()
             fdt_check_node_offset_()
              fdt_next_tag():
                ```
                  tagp = fdt_offset_ptr(fdt, offset, FDT_TAGSIZE);
                ```
              fdt_next_tag() tagp:0000000001890677
              fdt_next_tag() ram_top:0x10000000 (tagp is inside RAM)
      uclass_get_device_tail():486 device_probe() ret:-22
  No RNG device
 Starting kernel ...

  [ 0.000000] Linux version 6.9.12
  [ 0.000000] KASLR disabled due to lack of seed
```

Signed-off-by: Evgeny Bachinin <EABachinin@salutedevices.com>
2024-12-02 07:48:28 -06:00
Simon Glass
924a5e4e41 Revert "global_data: Drop spl_handoff"
This breaks chromebook_coral which says:

   Video: No video mode configured in FSP!

This reverts commit 2e9313179a.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-12-02 07:40:39 -06:00
Simon Glass
03e57244bc binman: Avoid skipping binman_init()
A recent lwip change stopped binman's init from working, so it is not
possible to read nodes from the image description anymore.

Correct this by dropping the offending line.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 4d4d783812 net: lwip: add TFTP support and tftpboot command
2024-12-02 07:40:30 -06:00
Rasmus Villemoes
12fcb98257 powerpc/t2080qds: remove spurious x permission from README file
It doesn't make sense for a README file to be executable. Remove that
bit.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-30 12:46:34 -06:00
Rasmus Villemoes
6e3e72ed4e arm: dts: socfpga: remove spurious execute permission from dt files
It doesn't make sense for these files to have the x bit set. It was,
probably accidentally, added in:

Fixes: 2c494e62c3 (arm: dts: Stratix10: Add QSPI node)
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-30 12:46:30 -06:00
Mark Kettenis
57b6fb7eb1 Makefile: avoid non-standard sed expressions
The '?' that is used in the sed expression that determines MK_ARCH
is part of the extended regular expression syntax, but the default
behaviour of sed as specified by POSIX is to use only basic regular
expression syntax.  Use the equivalent '\{0,1\}' instead as
suggested by the OpenBSD re_format(7) man page.

Fixes: 04b1d84221 ("Makefile: fix empty MK_ARCH when using ccache")
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-30 11:57:08 -06:00
Jerome Forissier
a37064cb2e net: lwip: wget: fix legacy syntax
Commit 356011f7ac ("lwip: fix code style issues") has inadvertently
broken the support for the legacy syntax:

 => wget 192.168.0.16:test.bin
 invalid uri, no file path
 Invalid URL. Use http(s)://

The reason is two calls to strncpy() were replaced by strlcpy() without
paying attention to the fact that they are not equivalent in the present
case. Since we are using a character counter (n) and since we do not
depend on having a properly null-terminated string at each step in the
parsing, strlcpy() is not justified and strncpy() is the right tool for
the job. So use it again.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-11-30 11:52:47 -06:00
Ilias Apalodimas
65b38a519b Revert "efi_memory: do not add U-Boot memory to the memory map"
This reverts commit ("commit a68c9ac5d8 ("efi_memory: do not add
U-Boot memory to the memory map").

This code was removed when the EFI subsystem started using LMB calls for
the reservations. In hindsight it unearthed two problems.

The e820 code is adding u-boot memory as EfiReservedMemory while it
should look at what LMB added and decide instead of blindly overwriting
it. The reason this worked is that we marked that code properly late,
when the EFI came up. But now with the LMB changes, the EFI map gets
added first and the e820 code overwrites it.

The second problem is that we never mark SetVirtualAddressMap as runtime
code, which we should according to the spec. Until we fix this the
current hack can't go away, at least for architectures that *need* to
call SVAM.

More specifically x86 currently requires SVAM and sets the NX bit for
pages not marked as *_CODE. So unless we do that late, it will crash
trying to execute from non-executable memory. It's also worth noting
that x86 calls SVAM late in the boot, so this will work until someone
decides to overwrite/use BootServicesCode from the OS.

Notably arm64 disables it explicitly if the VA space is > 48bits, so
doesn't suffer from any of these problems.

This doesn't really deserve a fixes tag, since it brings back a hack to
remedy a situation that was wrong long before that commit, but in case
anyone hits the same bug ...
Simon sent the original revert in the link, but we need a proper
justification for it.

Link: https://lore.kernel.org/u-boot/20241112131830.576864-1-sjg@chromium.org/
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reported-by: Simon Glass <sjg@chromium.org>
2024-11-30 08:37:53 -06:00
Tom Rini
bf3dfb405b Merge tag 'u-boot-imx-master-20241130' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23643

- Make DRAM coding GPIOs available before relocation on Data Modul
  i.MX8M Mini/Plus eDM SBC because the DRAM configuration GPIO straps
  must be accessible in SPL and before relocation because the GPIOs are
  sampled both in U-Boot SPL as well as early on in U-Boot proper.
- Pick safe DRAM size on failure on Data Modul i.MX8M Mini/Plus eDM SBC
  instead of failing with hang() or panic().
- Replace YModem with SDP on Data Modul i.MX8M Mini eDM SBC SPL since
  SDP is much more flexible.
- Deduplicate Data Modul i.MX8M eDM SBC defconfigs.
- Perform plain boot in altbootcmd on Data Modul i.MX8M Mini/Plus eDM
  SBC.
2024-11-30 08:34:45 -06:00
Heinrich Schuchardt
bc2a1b3c92 test: add command to 'Boot fail' message
When a timeout occurs while executing a command a 'Boot fail' message is
written and testing is stopped. The user is left in the dark about the
failure cause.

    ! _pytest.outcomes.Exit: Boot fail: Marking connection bad - no other tests will run !

Add the executed command to the message.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-29 14:41:47 -06:00
Heinrich Schuchardt
9c7b3dd091 test: add command to 'Lab failure' timeout message
When a timeout occurs while executing a command a 'Lab failure' message is
written and testing is stopped. The user is left in the dark about the
failure cause.

    ! _pytest.outcomes.Exit: Lab failure: Marking connection bad - no other tests will run !

Add the word 'Timeout' and the executed command to the message.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:47 -06:00
Caleb Connolly
86d462c05d cmd: add a fetch utility
Add a small utility for displaying some information about U-Boot and the
hardware it's running on in a similar fashion to the popular neofetch
tool for Linux [1].

While the output is meant to be useful, it should also be pleasing to
look at and perhaps entertaining. The ufetch command aims to bring this
to U-Boot, featuring a colorful ASCII art version of the U-Boot logo.

[1]: https://en.wikipedia.org/wiki/Neofetch

Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8560-QRD
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Tony Dinh <mibodhi@gmail.com>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-29 14:41:47 -06:00
Tom Rini
230284b3e8 Merge patch series "test: Avoid needing sudo for image-creation"
Simon Glass <sjg@chromium.org> says:

This series rebases and tidies up a series sent by Richard Weinberger
to use unprivileged code to build the test images.

Link: https://patchwork.ozlabs.org/project/uboot/list/?series=417786&state=*
Link: https://lore.kernel.org/r/20241121223217.330117-1-sjg@chromium.org
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-29 14:41:47 -06:00
Simon Glass
52efbc9522 bootstd: Remove prepared images
These are no-longer used. Drop them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:47 -06:00
Simon Glass
6e32ca33ae test_ut: Drop support for fallback files
We don't need the fallback anymore. Remove the code which uses these
files.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
2024-11-29 14:41:47 -06:00
Simon Glass
2042ed38a8 test_ut: Use the built mkimage
The mkimage tool is not present in the docker image. Use the one in the
build directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:47 -06:00
Simon Glass
ac1c547092 test_ut: Drop exeception handling
We don't need the fallback anymore. As a first step to removing it,
drop the try...except clauses and unindent the code.

This produces a large diff but there are no other code changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:47 -06:00
Richard Weinberger
d83143eb55 test_ut: Allow running unprivileged
Like for test_fs, no need to mess with loop mounts.

Tweaks to reduce diff (keep mnt variable):

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:46 -06:00
Simon Glass
0a4c69b1f0 test_ut: Add an image size to setup_image()
Add a parameter to indicate the size of the image to build.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
2024-11-29 14:41:46 -06:00
Richard Weinberger
c6504372c6 test_fs: Rename mount dir to scratch
Since no mounting happens anymore, rename the "mnt"
directory to "scratch" and the related variables.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-29 14:41:46 -06:00
Richard Weinberger
463bc7b82e test_fs: Allow running unprivileged
There is no need to mount the filesystem on the host side.
All filesystem tools offer some way to fill the fs without mounting.

So, create the content on the host side, create and fill the fs
without mounting.
No more sudo or guestmount needed.

This new approach works because the tests don't care about user IDs
and no device files are needed.
If user IDs start to matter it's still possible to use wrapper
tools like fakeroot in future while filling the fs.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-29 14:41:46 -06:00
Jerome Forissier
20f641987f test/cmd/wget.c: move net_test_wget() to the cmd test suite
Since net_test_wget() is testing a command and is in test/cmd it should
be in the 'cmd' test suite, not 'lib'.

Saving and restoring the values of the environment variables that the
test manipulates is necessary to avoid a regression when running the
whole ut test suite. A minimal reproducer is:

 $ ./u-boot -T -c "ut cmd net_test_wget; ut dm dm_test_eth_act" | \
     grep -E "(Test:|Failures:)"

Reported-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-11-29 07:51:57 -06:00
Tom Rini
6ceb861882 Revert "arm64: dts: ti: k3-j7200: Fix OSPI boot"
While I had thought this commit was a cherry-pick from upstream, it is
not. And so, this is not allowed here.

This reverts commit dfe5f16a33.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-29 07:50:33 -06:00
Tom Rini
98dd010b31 Merge tag 'u-boot-at91-2025.04-a' of https://source.denx.de/u-boot/custodians/u-boot-at91 into next
- at91 gpio driver function alternate mode for pins
- assorted fixes.
2024-11-29 07:47:02 -06:00
Venkatesh Yadav Abbarapu
46097afc70 arm64: zynqmp: Update the usb5744 hub node as per binding
Updating the usb5744 hub node as per the latest upstream DT binding
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
tree/Documentation/devicetree/bindings/usb/microchip,usb5744.yaml?h=v6.8.8

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20241129110631.672637-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-29 13:22:16 +01:00
Michal Simek
3ce08a3038 arm64: zynqmp: Sync with v6.12 kernel
Sync zynqmp* DTS files with v6.12 Linux kernel.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cf37760117765c4cece94736dc2a7b583d5987de.1732805351.git.michal.simek@amd.com
2024-11-29 13:21:51 +01:00
Love Kumar
e013f0c592 test/py: zynqmp_rpu: Fix tcminit mode value
Update the tcminit value to string and number both as per commit
342ccba558 ("arm64: zynqmp: Fix tcminit mode value based on argv") and
also adds negative cases based on invalid command sequences.

Signed-off-by: Love Kumar <love.kumar@amd.com>
Link: https://lore.kernel.org/r/48f75577f6735a0d14105658e89b625d45537bb1.1731672024.git.love.kumar@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-29 13:21:17 +01:00
Venkatesh Yadav Abbarapu
6d234a79e9 cadence_qspi: Refactor the flash reset functionality
As the flash reset is handled in spi nor core, removing the
flash reset functionality. As the configuration like tristate
and hysterisis need to be enabled by the cdo. Handle the flash
reset only for mini u-boot case.

Rename the "cadence_qspi_versal_flash_reset" to generic name
"cadence_qspi_flash_reset" as this can be used by other platforms
as well.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241108063537.13180-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-29 13:21:17 +01:00
Venkatesh Yadav Abbarapu
06ecbaae33 configs: versal2: Enable OPTEE support
Add OPTEE support for versal2 platform.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241127043745.249580-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-29 13:21:17 +01:00
Venkatesh Yadav Abbarapu
6f894fc77f configs: zynqmp_kria: Enable the USB onboard hub
USB host support on ZYNQMP KRIA SOM needs onboard USB
hub driver for handling reset GPIO and for i2c initialization
sequence.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20241126041238.1969723-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-29 13:21:17 +01:00
Marek Vasut
4835efca7a ARM: dts: imx: Enable PCIe and NVMe on Data Modul i.MX8M Mini eDM SBC
Enable PCIe/NVMe support on Data Modul i.MX8M Mini eDM SBC. Except for
the configuration options which are enabled, add slight adjustment
to board u-boot.dtsi, which is necessary as there is currently no
driver for the I2C PCIe clock generator. Since the generator is
strapped to be always on, it is possible to supplant the generator
functionality by fixed-clock.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-29 09:20:47 -03:00
Marek Vasut
0b97a394f6 ARM: imx: Replace YModem with SDP on Data Modul i.MX8M Mini eDM SBC SPL
The YModem support in SPL was never really used on this device,
the SDP support is much more convenient on i.MX8M Mini based
hardware. Replace the YModem support with SDP support.

The SDP can be utilized by forcing the board into SDP boot mode
by grounding test point right next to silkscreen label U30, and
then by using mfgtools 'uuu -brun spl flash.bin' once the device
enumerates on host system USB bus. The SDP capable USB port is
available on the USB micro-B port on the base board.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-11-29 09:20:25 -03:00
Marek Vasut
3a689038bf ARM: imx: Deduplicate Data Modul i.MX8M eDM SBC defconfigs
Deduplicate defconfigs for all Data Modul i.MX8M eDM SBC systems by factoring
out the common parts into generic imx8m_data_modul.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is almost
identical for all Data Modul i.MX8M eDM SBC systems, except for slight
alignment in DEBUG_UART and SYS_PBSIZE.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-29 09:19:00 -03:00
Marek Vasut
ec3e5fa55d ARM: imx: Perform plain boot in altbootcmd on Data Modul i.MX8M Mini/Plus eDM SBC
The current A/B switching preparatory altbootcmd is confusing
to users, replace it with plain 'run bootcmd' which can be
replaced by proper A/B switching altbootcmd when the matching
updater is added on top of the platform. By default, keep the
boot counter incrementing, but do not do any A/B partition
switching.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-29 09:19:00 -03:00
Marek Vasut
1171adfd89 ARM: dts: imx: Pick safe DRAM size on failure on Data Modul i.MX8M Mini/Plus eDM SBC
In case gpio_request_list_by_name_nodev() in board dmo_get_memcfg()
returns error code, pick a safe default DRAM configuration instead
of bailing out with some sort of hang() or panic(). The BIT(2)|BIT(0)
strap option is the lowest known option of 2 GiB , use that.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-29 09:19:00 -03:00
Marek Vasut
6e18eec908 ARM: dts: imx: Make DRAM coding GPIOs available before relocation on Data Modul i.MX8M Mini/Plus eDM SBC
The DRAM configuration GPIO straps must be accessible in SPL and before
relocation because the GPIOs are sampled both in U-Boot SPL as well as early
on in U-Boot proper. The already present bootph-pre-ram DT property made the
GPIO controllers available in SPL, but not early on in U-Boot proper, which
made gpio_request_list_by_name_nodev() in board dmo_get_memcfg() fail. Add
missing bootph-some-ram DT property to all GPIO controllers which are
referenced in dmo,ram-coding-gpios DT property to make those GPIO
controllers available early in U-Boot proper as well.

Fixes: 8c103c33fb ("dm: dts: Convert driver model tags to use new schema")
Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-29 09:19:00 -03:00
Alexander Dahl
bf424a110d mtd: nand: raw: atmel: Remove redundant PMECC probe
Always probing pmecc in the generic nand controller probe function and
bailing out if pmecc is missing, prevents the driver to be usable for
SoCs which do not have a pmecc hardware ecc engine like older sam9 SoCs,
for example at91sam9g20.  Tested on sam9x60 that the call, which the
comment was moved to, is sufficient to probe the pmecc.

Signed-off-by: Alexander Dahl <ada@thorsis.com>
2024-11-29 12:59:27 +02:00
Zixun LI
94317f881b gpio: at91: Implement ops get_flags
Add ops get_dir_flags() to read status from GPIO registers.

Signed-off-by: Zixun LI <admin@hifiphile.com>
2024-11-29 12:59:27 +02:00
Zixun LI
4c178d4061 gpio: at91: Implement ops set_flags
Support GPIO configuration with following flags:
- in, out, out_active
- open_drain, pull_up

Signed-off-by: Zixun LI <admin@hifiphile.com>
2024-11-29 12:59:27 +02:00
Zixun LI
e4980192b6 gpio: at91: Implement GPIOF_FUNC in get_function()
This patch adds support for determining whether a gpio pin is mapped as
peripheral function.

Signed-off-by: Zixun LI <admin@hifiphile.com>
2024-11-29 12:59:27 +02:00
Benedikt Spranger
11da3c67e3 drivers/mtd/ubispl/ubispl.c: Fix error message
The bad CRC error message has transposed characters, which render the
output useless:

"bad CRC at record 213: #08x, not #08x" instead of
"bad CRC at record 213: #00000000, not #4be31f4d"

Fix the error message.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
Reviewed-by: John Ogness <john.ogness@linutronix.de>
2024-11-29 12:59:27 +02:00
Benedikt Spranger
f0dab28915 tiny-printf: Handle NULL pointer argument to %s
A NULL pointer argument to %s causes a NULL pointer dereference in the
fixed width numerical printout code, since p is overwritten with NULL.
In case of %s width is 0. Check width before dereferencing the pointer.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
Reviewed-by: John Ogness <john.ogness@linutronix.de>
2024-11-29 12:59:27 +02:00
Tom Rini
b51b97e9be Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23592

- some configs modification
2024-11-27 07:34:17 -06:00
Tom Rini
931122add7 Merge branch 'u-boot-nand-20241126' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash
CI: https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/23584

Remove device specific nand driver files as they are now replaced by a
common driver bcmbca_nand.c

Make use of OF_UPSTREAM which uses Linux dts.

Implement a minimal set of defconfig options to enable basic NAND
functionality. Tested on:
47622
63146
63158
63178
6813

Set parameter_page_big_endian to zero for bcmbca.

Update log level messages so that more critical messages can be logged
to console and help the troubleshooting with field devices.
2024-11-27 07:33:06 -06:00
Yuri Zaporozhets
bdca70632d configs: enable CONFIG_PCI_REGION_MULTI_ENTRY=y in sifive_unmatched_defconfig
Currently, the PCI subsystem selects the small "region 2" (which starts at 0x7000000)
as bus_addr/phys_addr. As a consequence, the BAR0 on PCIe video card cannot be initialized,
because it simply doesn't fit into 0x1000000 bytes size of "region 2".

U-Boot should use "region 1" instead (the one which starts at 0x60090000), because
it has much bigger size (0xFF70000), and easily accomodates BAR0 of the video card.
Linux kernel also uses 0x60090000 as bus_start/phys_start.

Signed-off-by: Yuri Zaporozhets <yuriz@vodafonemail.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-27 19:58:08 +08:00
Andreas Schwab
185986caeb configs: visionfive2: re-enable SPL_SYS_MMCSD_RAW_MODE
To restore MMC boot, enable SPL_SYS_MMCSD_RAW_MODE and recover
SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")
Signed-off-by: Andreas Schwab <schwab@suse.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-27 19:32:56 +08:00
Heinrich Schuchardt
afc52da894 configs: SiFive Unmatched: enable 'env erase' sub-command
With the move from script based booting to using bootmeth a lot of
environment variables have changed. To always use the default environment
it is recommendable to erase the environment stored in the SPI flash.
This can be done with the 'env erase' sub-command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-27 19:31:29 +08:00
Yuri Zaporozhets
91bc909d31 spl: increase SPL_SYS_MALLOC_SIZE when using BIOSEMU on RISC-V
If BIOSEMU is compiled for RISC-V (SiFive Unmatched board) and the function
dm_pci_run_vga_bios() is executed, U-Boot stops with error message saying
that the SPL malloc pool is too small. So increase the default pool size
when both BIOSEMU and RISCV parameters are set.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-27 19:31:10 +08:00
Michal Simek
3471dedb50 arm64: zynqmp: Also generate images with single DT
Create u-boot-single.itb where only actual DTB is used not really multiple
of DTS from OF_LIST. This results in small files without option to change
DT.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9362da506c13382da0c0d41ad8a111d9c1150f08.1732089924.git.michal.simek@amd.com
2024-11-27 09:01:14 +01:00
Michal Simek
d92fdb6067 binman: Add option for pointing to separate description
Adding binman node with target images description can be unwanted feature
but as of today there is no way to disable it.
Also on size constrained systems it is not useful to add binman description
to DTB.
Introduce BINMAN_DTB Kconfig symbol which allows separate DTB for target
from DTB for binman itself.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f1379d2587f9bf279a7a75c318aabbc1b35ee0c6.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Michal Simek
afbc1fa5f1 arm64: zynqmp: Describe empty binman node
For enabling binman by default there is a need to have at least empty node
present that's why create -u-boot.dtsi with empty node to cover all ZynqMP
platforms.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/14d874ad4568fa8e3178e893224fecc5c676f04c.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Marek Vasut
80d251c326 Makefile: Drop SPL_FIT_GENERATOR support
The SPL_FIT_GENERATOR is long superseded by binman, drop SPL_FIT_GENERATOR
support as there are no more users.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/22109373594b6a5d1110be9420ccd8fbb93a61d3.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Michal Simek
417409e573 common: binman: Calling initr_binman() when BINMAN_FDT
Calling empty function when BINMAN_FDT is adding +64B for nothing which is
not helping on size sensitive configurations as Xilinx mini configurations.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f79dc1fbf796dd5ad290f6080608ee68d7652cfc.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Michal Simek
9121d572e2 arm64: zynqmp: Remove mkimage fit script
Platform has been switched to binman that's why there is no need for this
script and also Kconfig symbols.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cf438091e43c4c9d535a9cfa2886673aa42a4370.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Michal Simek
a4c9811910 arm64: zynqmp: Generate u-boot.itb and QSPI image via binman
u-boot.itb has been generated via mkimage_fit_atf.sh but it is on the way
out that's why convert it's description to binman.
Compare to script binman description is not able to configure BL31 and BL32
load/entry addresses which should be done separately.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/90b613796aee38158252c8bb1dfc3da0420f089d.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
Michal Simek
2eb8cd5bd4 arm64: zynqmp: Add binman description for SOM
There is necessary to do some steps to compose boot images. These steps
were in scripts in layers for a while. That's why introduce description via
binman to simplify wiring and remove all scripting around.
This should make sure that everybody is up2date with the latest versions.

The first step is to create fit image with DTBs with descriptions in
configuration node which is written as regular expression to match all SOM
versions.
Description is there for k24 and k26 in spite of low level psu_init
configuration is different. The reason is that it goes to u-boot.itb image
which is the same for k24 and k26.
u-boot.itb is another image which is generated. It is normally generated
via arch/arm/mach-zynqmp/mkimage_fit_atf.sh but this script is supposed to
be deprecated.
FIT image by purpose is using 64bit addresses to have default option to
move images to high DDR (above 4GB). TF-A and TEE are optional components
but in the most cases TF-A is present all the time and TEE(OP-TEE) is used
by some configurations too.

3rd generated image is boot.bin with updated user field which contains
version number. This image can be used with updated Image Selector
which supports A/B update mechanisms with rollback protection.

4th image is image.bin which binary file which contains boot.bin and
u-boot.itb together and can be programmed via origin Image Selector.
This image can be also used for creating one capsule which contains both
boot images (in SPL boot flow).

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/35bc47a4a4799c5f5dbea56a45340a2810538330.1730452668.git.michal.simek@amd.com
2024-11-27 08:59:03 +01:00
david regan
5b70f26fed mtd: rawnand: brcmnand: update log level messages
Update log level messages so that more critical messages can be logged
to console and help the troubleshooting with field devices.

This is a port of the upstream Linux patch to U-Boot.

https://lore.kernel.org/linux-mtd/20240223034758.13753-4-william.zhang@broadcom.com/

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2024-11-26 21:14:44 +01:00
david regan
a4f72e8b6e mtd: rawnand: brcmnand: Default bcmbca parameter_page_big_endian to zero
Set parameter_page_big_endian to zero for bcmbca

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2024-11-26 21:14:44 +01:00
david regan
67e52b59a2 arm: dts: Use upstream dts
Make use of OF_UPSTREAM which uses Linux dts.

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2024-11-26 21:14:44 +01:00
david regan
a2fa53be4f mtd: nand: brcmnand: remove device specific nand driver files
These device specific nand driver files can be removed because
they are now replaced by a common driver bcmbca_nand.c

Signed-off-by: david regan <dregan@broadcom.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Anand Gore <anand.gore@broadcom.com>
2024-11-26 21:14:44 +01:00
Simon Glass
bda30f83f9 bootstd: Remove prepared images
These are no-longer used. Drop them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-26 11:13:39 -06:00
Simon Glass
01c0695d9d test_ut: Drop support for fallback files
We don't need the fallback anymore. Remove the code which uses these
files.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
2024-11-26 11:13:39 -06:00
Simon Glass
2fad73a166 test_ut: Use the built mkimage
The mkimage tool is not present in the docker image. Use the one in the
build directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-26 11:13:39 -06:00
Simon Glass
22eef59dd3 test_ut: Drop exeception handling
We don't need the fallback anymore. As a first step to removing it,
drop the try...except clauses and unindent the code.

This produces a large diff but there are no other code changes.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-26 11:13:39 -06:00
Richard Weinberger
360315b360 test_ut: Allow running unprivileged
Like for test_fs, no need to mess with loop mounts.

Signed-off-by: Richard Weinberger <richard@nod.at>
Tweaks to reduce diff (keep mnt variable):
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-26 11:13:39 -06:00
Simon Glass
fde4e53aaa test_ut: Add an image size to setup_image()
Add a parameter to indicate the size of the image to build.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Richard Weinberger <richard@nod.at>
2024-11-26 11:13:39 -06:00
Richard Weinberger
c25e8ceea4 test_fs: Rename mount dir to scratch
Since no mounting happens anymore, rename the "mnt"
directory to "scratch" and the related variables.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-26 11:13:39 -06:00
Richard Weinberger
5b2ea71eaf test_fs: Allow running unprivileged
There is no need to mount the filesystem on the host side.
All filesystem tools offer some way to fill the fs without mounting.

So, create the content on the host side, create and fill the fs
without mounting.
No more sudo or guestmount needed.

This new approach works because the tests don't care about user IDs
and no device files are needed.
If user IDs start to matter it's still possible to use wrapper
tools like fakeroot in future while filling the fs.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 11:13:39 -06:00
Tom Rini
62224280d9 Merge tag 'u-boot-dfu-next-20241126' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next
CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/23573

Android:
- bootstd: Implement bootimage v2 support
- bootstd: Support non-A/B in bootmeth_android
- Migrate VIM3 and VIM3L to use bootmeth_android
- bootstd: Additional test for bootimage v2
- bootstd: Optimize load time when reading partitions
2024-11-26 10:50:05 -06:00
Tom Rini
ff7bf50b30 Merge tag 'u-boot-imx-next-20241126' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23563

- Make Siemens i.MX8 Capricorn board to boot U-Boot mainline again.
- Add support for phycore-imx93 2GB LPDDR4X variant.
- Add phycore-imx8mm EEPROM detection initialisation.
2024-11-26 10:49:44 -06:00
Tom Rini
3881c6b903 configs: Resync with savedefconfig
Rsync all defconfig files using qconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-26 08:17:35 -06:00
Tom Rini
9e66cb41ee Merge tag 'u-boot-dfu-20241126' of https://source.denx.de/u-boot/custodians/u-boot-dfu
CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/23572

- Fastboot:
  - handle unknown partition type as "raw"
- USB gadget:
  - Fix ci_udc gadget driver for Tegra 2 devices by not using USBADRA
2024-11-26 08:05:11 -06:00
Tom Rini
6b96e01d70 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-marvell
CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=379&view=results

- mvebu: Disable JFFS2 support for Kirkwood and Armada XP boards (Tony)
- kirkwood: Enable bootstd for Sheevaplug board (Tony)
- mvebu: Add Allied Telesis x250 board (Chris)
- mvebu: Updates for Allied Telesis boards (Chris)
2024-11-26 08:04:44 -06:00
Chris Packham
7446e29db5 arm: mvebu: Add Allied Telesis x250 board
The x250 and SE250 are series of 10G L2+ switches from Allied Telesis.
There are a number of them in the range but as far as U-Boot is
concerned all the CPU block components are the same so there's only one
board defined.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:03 +01:00
Chris Packham
f337b5aaad arm: mvebu: x530: Enable IPV6 support
Enable IPV6 support for the x530 board.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:03 +01:00
Chris Packham
c6b17af142 arm: mvebu: x530: Don't build mkeficapsule
The x530 board doesn't use EFI and our toolchains don't include gnutls
so disable the tool in the defconfig.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:03 +01:00
Chris Packham
1b46176532 arm: mvebu: x530: Remove dead comments
As things have been moved to Kconfig there are a number of dead comments
left over in x530.h. Remove them.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:03 +01:00
Chris Packham
b25b2d4f67 arm: mvebu: x240: Enable IPV6 support
Enable IPV6 support for the x240 board.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:03 +01:00
Chris Packham
cbbfa8d778 arm: mvebu: x240: Don't build mkeficapsule
The x240 board doesn't use EFI and our toolchains don't include gnutls
so disable the tool in the defconfig.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:02 +01:00
Chris Packham
27b2488735 arm: mvebu: x240: Switch to standard boot
Use standard boot instead of the distro boot scripts. Regenerate the
board defconfig now that some options are selected automatically.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:20:00 +01:00
Chris Packham
3eef899b57 arm: mvebu: x240: Use default baudrate table
Remove CFG_SYS_BAUDRATE_TABLE as there's no reason not to use the
defaults defined via config_fallbacks.h.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:19:55 +01:00
Tony Dinh
96ca314798 arm: kirkwood: Enable bootstd for Sheevaplug board
Enable bootstd for Sheevaplug board.
Remove JFFS2 support. See JFFS2 Vulnerability[1].
Enable LTO to keep board size within limit.
Move default envs to text-base environment

[1] https://lore.kernel.org/u-boot/20241114233005.GN3600562@bill-the-cat/T/#m2fc25da1d2c019bc3cd8676991fdd64b8a21aa9b

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:19:48 +01:00
Tony Dinh
325ac6c1e7 arm: mvebu: Disable JFFS2 support for Kirkwood and Armada XP boards
These boards don't use JFFS2 file system for booting so remove it.

Ref: https://lore.kernel.org/u-boot/20241114233005.GN3600562@bill-the-cat/T/#t
Signed-off-by: Tony Dinh <mibodhi@gmail.com>
Acked-by: Phil Sutter <phil@nwl.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-26 13:19:42 +01:00
Julien Masson
abadcda24b bootstd: android: don't read whole partition sizes
The current implementation is reading the whole partition for boot and
vendor_boot image which can be long following the size of the
partition or the time to read blocks (driver/SoC specific).

For example with mediatek mt8365 EVK board, we have a 64MiB boot
partition and the boot image flashed in this partition is only 42MiB.
It takes ~8-9 secs to read the boot partition.

Instead we can retrieved the boot image and vendor boot image size
with these new functions:
- android_image_get_bootimg_size
- android_image_get_vendor_bootimg_size
Use these information and read only the necessary.

By doing this with mt8365 EVK board, we read boot image in ~5 secs.

Signed-off-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241121-bootmeth-android-part-sizes-v1-1-25760bbd0f08@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 10:04:40 +01:00
Guillaume La Roque
126254ab97 bootstd: Add test for Android boot image v2
Rename actual android bootmethod test to specify it's for boot image
version 4.
Add a unit test for testing the Android bootmethod with boot image
version 2.

This requires another mmc image (mmc8) to contain the following
partitions:
- misc: contains the Bootloader Control Block (BCB)
- boot_a: contains a fake generic kernel image

we can test this with:

$ ./test/py/test.py --bd sandbox --build -k test_ut # build the mmc8.img
$ ./test/py/test.py --bd sandbox --build -k bootflow_android

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241126-adnroidv2-v4-5-11636106dc69@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:59:01 +01:00
Guillaume La Roque
83a6ae6716 configs: khadas-vim3_android{_ab}: move on bootmeth android
Actually khadas vim3 use distro command to boot android image.
Move on new bootmeth android for A/B and non-A/B vim3 android.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241126-adnroidv2-v4-4-11636106dc69@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:59:01 +01:00
Guillaume La Roque
86e931535c configs: khadas-vim3l_android{_ab}: move on bootmeth android
Actually khadas vim3l use distro command to boot android image.
Move on new bootmeth android for A/B and non-A/B vim3l android.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241126-adnroidv2-v4-3-11636106dc69@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:59:01 +01:00
Guillaume La Roque
9ef8b3bf8a bootstd: android: add non-A/B image support
Update android bootmeth to support non-A/B image.
Enable AB support only when ANDROID_AB is enabled.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241126-adnroidv2-v4-2-11636106dc69@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:59:01 +01:00
Guillaume La Roque
51a2fc40d3 bootstd: android: add support of bootimage v2
Android bootmeth only support boot image v3/4.

Add support of Android Boot Image version 2 [1].
Vendor boot image is only supported in version 3 and 4 so don't try to
read it when header version is less than 3.

[1] https://source.android.com/docs/core/architecture/bootloader/boot-image-header#header-v2

Tested-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241126-adnroidv2-v4-1-11636106dc69@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:59:01 +01:00
Ion Agorria
35d967f5a8 usb: ci_udc: don't use "advance" feature when setting address
In the older USB controllers like for example in ChipIdea controller
used by the Tegra 2 the "USBADRA: Device Address Advance" bitflag
does not exist, so the new device address set during SET_ADDRESS
can't be deferred by hardware, which causes the host to not recognize
the device and give an error.

Instead store it until ep completes to apply the change into the hw
register as Linux kernel does. This should fix regression on old and
and be compatible with newer controllers.

Inspired by: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef15e5490edc7edf808d3477ab32e0e320792f65

Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241126072956.64778-2-clamor95@gmail.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-26 09:56:03 +01:00
Yunus Bas
a488d9f26e board: phytec: phycore-imx8mm: Add EEPROM detection initialisation
Add EEPROM detection initialisation for phyCORE-i.MX8MM.

Signed-off-by: Yunus Bas <y.bas@phytec.de>
2024-11-25 23:08:24 -03:00
Christoph Stoidner
512c6b67a2 board: phytec: imx93: Add phyCORE-i.MX 93 support for all SOM variants
The phyCORE-i.MX 93 is available in various variants (e.g. different ram
sizes, eMMC HS400 yes/no). Enable hardware introspection for the
imx93-phyboard-segin_defconfig, so that during startup the SOM module
variant can be detected, and the hardware can be configured accordingly.
The resulting SPL and u-boot binary shall able to boot each
phyCORE-i.MX 93 module variant on each carrier board. Finally rename
imx93-phyboard-segin_defconfig to imx93-phycore_defconfig, to highlight
its SOM scope.

Signed-off-by: Christoph Stoidner <c.stoidner@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Yannic Moog <y.moog@phytec.de>
2024-11-25 23:08:02 -03:00
Christoph Stoidner
d3b9b79968 board: phytec: imx93: Add eeprom-based hardware introspection
The phyCORE-i.MX 93 is available in various variants. Relevant variant
options for the spl/u-boot are:
- with or without HS400 support for the eMMC
- with 1GB ram chip, or 2GB ram chip

The phyCORE's eeprom contains all information about the existing variant
options. Add evaluation of the eeprom data to the spl/u-boot to
enable/disable HS400 and to select the appropriate ram configuration at
startup.

Signed-off-by: Christoph Stoidner <c.stoidner@phytec.de>
Reviewed-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Yannic Moog <y.moog@phytec.de>
Tested-by: Primoz Fiser <primoz.fiser@norik.com>
2024-11-25 23:08:02 -03:00
Christoph Stoidner
29d4a73bd0 board: phytec: phycore-imx93: Add 2GB LPDDR4X RAM timings
The phyCORE-i.MX 93 is available with a 1GB ram chip or a 2GB ram chip.
Add the ram timings for the 2GB chip, in form of a diff compared
to the existing LPDDR4X 1GB timings. With that, the SPL can select the
appropriate timings at startup.
Update also the 1GB ram timings with new version of the DDR Tool.

Signed-off-by: Christoph Stoidner <c.stoidner@phytec.de>
Tested-by: Primoz Fiser <primoz.fiser@norik.com>
2024-11-25 23:08:02 -03:00
Enrico Leto
fd24eeb3ba siemens: capricorn: update maintainers
update MAINTAINERS file, add some more board maintainers.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Enrico Leto
a5eca322f4 siemens: add ddr signal integrity test
The signal integrity test generates pattern on DDR lines
for certification. The signals must be as fast as possible
and unidirectional.

The test is required from our HW team. The available
u-boot memory test doesn't full fill the our requirements.

The test is planed to be used in all new siemens boards.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Enrico Leto
1d02397803 siemens: add ddr full memory test
Add siemens specific memory test. Enable it through Kconfig option
SPL_CMT. The test is required from our HW team. It runs over
temperature during many days:
* must run indefinitively through the *whole* DDR area,
  so we cannot use linux memtest for example.
* must write/read/check all values

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Enrico Leto
eceaa88ade siemens: capricorn: get module name from eeprom
The eeprom contains the information on which module
we are running, so read it from the eeprom and print
it on the console.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Enrico Leto
0cc0f68b7e siemens: capricorn: get ram size from system controller
Get the memory region information from system controller to reduce the
number of platform specific headers. We were aligned on NXP mek board
implementation. This need at least 1 header per memory configuration.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Alessandro Zini
a0aff2a6f5 siemens: capricorn: add HW version information to boot log
Add the HW version read directly from EEPROM.

EEPROM chip data structure is now in a .h file common to draco
and capricorn.

Therefore move out the definitions in draco board to siemens
common place.

From: Alessandro Zini <alessandro.zini@siemens.com>
Signed-off-by: Alessandro Zini <alessandro.zini@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
ca32a1d70a siemens: capricorn: small board updates
with newest SCFW build_info() works now, so call it
from checkboard() now.

As we only use uart2 as console, do not init uart0.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Heiko Schocher
4d3b7cafab siemens: imx8-capricorn.dtsi: add wdt device
add wdt device

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
3c16e41bbe siemens: capricorn: sync spl code with 8qxp-mek
sync spl code with 8qxp-mek board.

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
1d9c4c7fcb siemens: configs/capricorn_cxg3_defconfig: updates
make savedefconfig and add SCU_WDT and fix environment
offsets, as since silicon c0 the boot container takes place
at offset 0 and so the u-boot-env must be moved outside of
the boot container area.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Heiko Schocher
09cf594699 siemens: imximage.cfg: sync image names
sync the image names in imximage.cfg with
the ones used in arch/arm/dts/imx8qxp-u-boot.dtsi

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
ff536f38f5 siemens: imximage.cfg: correct comment
fix wrong comment.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Heiko Schocher
cf2426c2be siemens: capricorn: use DCD_SKIP entry
Boards which use DCD data in SCFW can drop SPL.

We tried in our mainline rework to use this approach
too as other imx8qxp boards do in mainline. But we
failed ... it was a hard way to understand the
reason!

We cannot use DCD image in container as the SCFW
from siemens, does the RAM init on boot itself!

Siemens SCFW reads the RAM config from i2c eeprom and
dependent on this settings, initializes the RAM.

Adding DCD data to the bootcontainer will result in
hang of the SCFW, also DCD data in container image is
static which do not fit our needs.

So we must drop DCD data image, and this has the side
effect that we need SPL, as the task which loads the images
from the container only loads the images to addresses,
and if executed bit is set, starts them.

As now RAM is not initialized from it, and there is no
option to "wait until SCFW has setup RAM",  we can only
load SPL into internal RAM at this point, as than SPL
and SCFW boot parallel.

The SPL itself then uses the SCU API to communicate
with the SCFW and it seems that SCFW only responds to
this API requests when RAM setup is already done by the
SCFW, which has a side-effect of a "sync" for the RAM
setup is done by SCFW!

We checked if SPL is always save in accessing RAM for
loading images to it! For tests, we added in our RAM
init part in the SCFW long delays (10 seconds and more)
as we thought there is such a sync missing, and we can
break the board through delaying RAM setup... but we
did not managed to fail booting U-Boot from SPL!

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
ce2230dd69 siemens: imx8qxp-capricorn-u-boot.dtsi: fix boot
current generated flash.bin image does not longer
boot on cxg3 board.

Rename bootph-pre-ram to bootph-all so flash.bin
boots again!

Add u-boot specific change (add bootph-all property)
in A35_0 node to imx8qxp-capricorn-u-boot.dtsi

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Enrico Leto
c8b3c46bde siemens: capricorn: move to cxg3 reference project with deneb board
We have many HW with capricorn i.MX8X boards. The difference in u-boot is
at all by the display of the LEDs.

* put upstream a reference project & board for DT and defconfig
* use the capricorn prefix outside the board/siemens/capricorn folder

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
645a42d7ee imx8qxp: Fix build when using SPL
imx8qxp based boards which use SPL drop error when
calling make all:
"""
Writing image to './flash.bin'
   Node '/binman/imx-boot/spl': GetData: size 0x0
       Node '/binman/imx-boot': GetPaddedDataForEntry: size 0x0
       Node '/binman/imx-boot': GetData: 1 entries, total size 0x0
       Node '/binman/imx-boot': GetPaddedDataForEntry: size 0x0
Wrote 0x0 bytes
Image 'imx-boot' is missing external blobs and is non-functional: spl

/binman/imx-boot/spl (spl.bin):
   Missing blob

Some images are invalid
"""

Guard creation of flash.bin with CONFIG_XPL_BUILD option.

Signed-off-by: Heiko Schocher <hs@denx.de>
Fixes: c9713c1551 ("imx8-u-boot: Fix SPL guard option")
2024-11-25 23:07:37 -03:00
Heiko Schocher
1f70e5a0e8 imx: imx_cntr_image.sh: prevent warning for missing spl
when building U-Boot on imx8qxp and the board port uses
SPL, U-boot build shows

WARNING '.../spl/u-boot-spl.bin' not found, resulting binary is not-functional

This is because U-Boot binary is build first and Makefile
calls script imx_cntr_image.sh which checks if files
exists... but of course as spl is not yet build the
file `spl/u-boot-spl.bin` does not exist yet, so prevent
this warning.

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
dea6fd26b7 tools: imx8image: Improve error message
Improve error message "header tag mismatched"
Add filename to error message to see, which file
is wrong.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-25 23:07:37 -03:00
Heiko Schocher
a57ef36323 net: fec_mxc: fix probing for imx8qxp
probing on capricorn board (imx8qxp based) brings:

Can't find FEC0 clk rate: -19

Cause is that when probing fec_mxc driver, fec_mii_setspeed()
is called which calls fec_get_clk_rate().

fec_mii_setspeed() calls fec_get_clk_rate with NULL pointer
for udev and so as in IMX8QXP case CLK_CCF is enabled
udev gets searched with:

uclass_get_device_by_seq(UCLASS_ETH, idx, &dev);

but we do not have yet a UCLASS_ETH ! as we just probing it!

Prevent this by passing udev to fec_get_clk_rate()

Signed-off-by: Heiko Schocher <hs@denx.de>
2024-11-25 23:07:37 -03:00
Heiko Schocher
a1766d55e5 wdt: imx8qxp: add option to control external PMIC wdt via IMX8 SCU
Driver for a PMIC watchdog timer controlled via Siemens SCU firmware
extensions. Only useful on some Siemens i.MX8-based platforms as
special SCFW is needed which provides the needed SCU API.

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-11-25 23:07:37 -03:00
Tom Rini
48380f9b2a Merge tag 'v2025.01-rc3' into next
Prepare v2025.01-rc3
2024-11-25 17:34:08 -06:00
Tom Rini
3073246d1b Prepare v2025.01-rc3
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-25 16:59:13 -06:00
Tom Rini
b71edd464f Merge branch 'master-asix' of https://source.denx.de/u-boot/custodians/u-boot-usb
- Fix two issues with the asix88179 driver
2024-11-25 15:32:16 -06:00
Dominik Wernberger
1420c75914 spi: Fix missed rename from SPI_ADVANCE to SPI_STACKED_PARALLEL
Fix missed rename from SPI_ADVANCE to SPI_STACKED_PARALLEL. This fixes
an issue encountered while testing the Zynq-7000 QSPI parallel Flash
implementation.

Fixes: f896aa6567 ("mtd: spi-nor: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL")
Reviewed-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Dominik Wernberger <dominik.wernberger@gmx.de>
2024-11-25 15:29:45 -06:00
Tom Rini
31cf17c61a Merge https://source.denx.de/u-boot/custodians/u-boot-usb
- Support for Microchip USB5744 hub
2024-11-25 13:12:19 -06:00
Joel Stanley
7327218681 ast2600: spl: Use readl for reading mmio
u-boot was crashing in qemu as the modeled hardware enforced overly
strict memory reads.

While this code will work on existing hardware, fix to avoid future issues.

Fixes: 12770d0df0 ("ast2600: spl: Add boot mode detection")
Link: https://gitlab.com/qemu-project/qemu/-/issues/2636
Signed-off-by: Joel Stanley <joel@jms.id.au>
2024-11-25 13:12:19 -06:00
Andy Shevchenko
c0e978b4b7 mtd: Drop superfluous const qualifier
The compiler will ignore it anyway:

  include/linux/mtd/mtd.h:342:15: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-25 13:12:19 -06:00
Khoa Hoang
05278af8b3 eth: asix88179: packet drop when receiving large fragmented packets
The ASIX 88179A drops packets when receiving fragmented packets larger
than the MTU size due to an insufficient URB buffer size. This change
synchronizes the URB buffer size with the configuration used in the
Linux kernel, resolving the packet drop issue.

To reproduce the issue, set the following configuration:
    CONFIG_IP_DEFRAG=y
    CONFIG_TFTP_BLOCKSIZE=16352

Then, run the `tftp` command. It will fail with a timeout error:

    U-Boot> tftp zero.bin
    Using ax88179_eth device
    TFTP from server 10.0.0.196; our IP address is 10.0.0.18
    Filename 'zero.bin'
    Load address: 0x10000000
    Loading: T T T T T T T T T T T
    Retry count exceeded; starting again

Signed-off-by: Khoa Hoang <admin@khoahoang.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 19:11:19 +01:00
Khoa Hoang
9713c15d2e eth: asix88179: Fix ASIX AX88179A PHY hang
The ASIX AX88179A locks up when the ADVERTISE_NPAGE bit is set in the
MII_ADVERTISE register, suggesting that this feature may be broken or
unsupported on this chip. In the Linux kernel, this bit is not set,
and enabling it also causes the PHY to lock up and stay in a
link-down state.

Additionally, the AX88179 and AX88179A variants do not appear to
support the ADVERTISE_LPACK bit, as setting it consistently reads
back as 0.

This patch removes the ADVERTISE_NPAGE and ADVERTISE_LPACK bits from
the MII_ADVERTISE register configuration. It also resets the PHY
before modifying the MII_ADVERTISE register, then restarts
auto-negotiation, following the same flow used in the U-Boot asix.c
driver.

Signed-off-by: Khoa Hoang <admin@khoahoang.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 19:11:19 +01:00
Venkatesh Yadav Abbarapu
57e30b09fc usb: onboard-hub: Bail out if peer hub is already probed
The .bind function is implemented to bind the correct
"half" of the hub that the driver wants to bind,
and returning -ENODEV for the other "half".

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 05:40:49 +01:00
Venkatesh Yadav Abbarapu
09f557e106 usb: onboard-hub: Add i2c initialization for usb5744 hub
Add i2c initialization hook and set usb5744 platform
data with function having required i2c initialization sequence.

Apart from the USB command attach, prevent the hub from suspend.
when the “USB Attach with SMBUS (0xAA56)” command is issued to the hub,
the hub is getting enumerated and then it puts in a suspend mode.
This causes the hub to NAK any SMBUS access made by the SMBUS Master
during this period and not able to see the hub's slave address while
running the "i2c probe" command.

Prevent the MCU from the putting the HUB in suspend mode through register
write. The BYPASS_UDC_SUSPEND bit (Bit 3) of the RuntimeFlags2 register at
address 0x411D controls this aspect of the hub. The BYPASS_UDC_SUSPEND
bit in register 0x411Dh must be set to ensure that the MCU is always
enabled and ready to respond to SMBus runtime commands. This register
needs to be written before the USB attach command is issued.
The byte sequence is as follows:
Slave addr: 0x2d           00 00 05 00 01 41 1D 08
Slave addr: 0x2d           99 37 00
Slave addr: 0x2d           AA 56 00

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 05:40:49 +01:00
Venkatesh Yadav Abbarapu
f9d96095e4 usb: onboard-hub: add support for Microchip USB5744
Add support for the Microchip USB5744 USB3.0 and USB2.0 Hub.
The usb5744 driver trigger hub reset signal after soft reset.
The usb5744 hub need to reset after the phy initialization,
which toggles the gpio.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 05:40:49 +01:00
Venkatesh Yadav Abbarapu
5fdce1fa17 usb: onboard-hub: Fix the return values of regulator APIs
Don't error out if there is no vdd regulator supply, as these are
optional properties.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 05:40:49 +01:00
Venkatesh Yadav Abbarapu
0e670e2917 usb: onboard-hub: Add reset-gpio support
As part of the reset, sets the direction of the pin to output before
toggling the pin. Delay of millisecond is added in between low and
high to meet the setup and hold time requirement of the reset.
Update the usb2514 hub_data with the reset delay and power on
delay values.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-11-25 05:40:49 +01:00
Tom Rini
880fcc49eb Merge patch series "Fix device removal order for Apple dart iommu"
Janne Grunau <j@jannau.net> says:

Starting with v2024.10 dev_iommu_dma_unmap calls during device removal
trigger a NULL pointer dereference in the Apple dart iommu driver. The
iommu device is removed before its user. The sparsely used DM_FLAG_VITAL
flag is intended to describe this dependency. Add it to the driver.

Adding this flag is unfortunately not enough since the boot routines
except the arm one simply remove all drivers. Add and use a new function
which calls
    dm_remove_devioce_flags(DM_REMOVE_ACTIVE_ALL | DM_REMOVE_NON_VITAL);
    dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
to ensure this order dependency is head consistently.

Link: https://lore.kernel.org/r/20241123-iommu_apple_dart_ordering-v2-0-cc2ade6dde97@jannau.net
2024-11-24 15:41:32 -06:00
Janne Grunau
dabaa4ae32 dm: Add dm_remove_devices_active() for ordered device removal
This replaces dm_remove_devices_flags() calls in all boot
implementations to ensure non vital devices are consistently removed
first. All boot implementation except arch/arm/lib/bootm.c currently
just call dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL). This can result
in crashes when dependencies between devices exists. The driver model's
design document describes DM_FLAG_VITAL as "indicates that the device is
'vital' to the operation of other devices". Device removal at boot
should follow this.

Instead of adding dm_remove_devices_flags() with (DM_REMOVE_ACTIVE_ALL |
DM_REMOVE_NON_VITAL) everywhere add dm_remove_devices_active() which
does this.

Fixes a NULL pointer deref in the apple dart IOMMU driver during EFI
boot. The xhci-pci (driver which depends on the IOMMU to work) removes
its mapping on removal. This explodes when the IOMMU device was removed
first.

dm_remove_devices_flags() is kept since it is used for testing of
device_remove() calls in dm.

Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-24 15:41:28 -06:00
Janne Grunau
544a76bac3 iommu: apple: Mark device with DM_FLAG_VITAL
Avoids NULL pointer dereferences in apple_dart_unmap when the iommu
device is removed before its user. U-boot's device model does not track
dependencies between devices.
Observed on a M1 Ultra Mac Studio with v2024.10.

Acked-by: Mark Kettenis <kettenis@openbsd.org>
Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-24 15:41:28 -06:00
Tom Rini
6c791b6646 Merge tag 'efi-2025-01-rc3' of https://source.denx.de/u-boot/custodians/u-boot-efi
CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/23529

- Documentation:
  - Document wget syntax enhancements with lwIP network stack
  - Move README.kconfig to HTML documentation
  - Remove redundant README.TPL
- UEFI:
  - Simplify efi_tcg2_hash_log_extend_event()
  - Allow EFI_LOADER_BOUNCE_BUFFER on all architectures
  - Correctly unmap and free memory on errors
- Other:
 - Enable EFI_LOADER_BOUNCE_BUFFER on StarFive VisionFive 2
2024-11-24 09:37:32 -06:00
Ilias Apalodimas
967d57ab59 lmb: Correctly unmap and free memory on errors
We never free and unmap the memory on errors and we never unmap it when
freeing it. The latter won't cause any problems even on sandbox, but for
consistency always use unmap_sysmem()

Fixes: commit 22f2c9ed9f ("efi: memory: use the lmb API's for allocating and freeing memory")
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-24 15:25:03 +01:00
Tom Rini
5e9b16ebca Merge tag 'u-boot-imx-master-20241123' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23523

- Fix a imx8mn clock driver regression where the 32kHz clock can not be
  found in SPL.
2024-11-23 21:14:15 -06:00
Heinrich Schuchardt
9c792ab336 configs: JH7110: enable EFI_LOADER_BOUNCE_BUFFER
Our MMC driver for JH7110 boards only supports reading to the low 4 GiB of
memory. Booting boards with more memory requires EFI_LOADER_BOUNCE_BUFFER.

Reported-by: E Shattow <lucent@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Loic Devulder <ldevulder@suse.com>
2024-11-23 23:37:00 +01:00
Heinrich Schuchardt
3fbbaf139c efi_loader: allow EFI_LOADER_BOUNCE_BUFFER on all architectures
Commit 775f7657ba ("Kconfig: clean up the efi configuration status")
by mistake revoked commit dcd1b63b70 ("efi_loader: allow
EFI_LOADER_BOUNCE_BUFFER on all architectures").

Fixes: 775f7657ba ("Kconfig: clean up the efi configuration status")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Loic Devulder <ldevulder@suse.com>
2024-11-23 23:36:54 +01:00
Jerome Forissier
5753b9eb48 doc: cmd: wget: document lwIP syntax
The lwIP version of wget supports a different syntax with a URL,
in addition to the legacy syntax. Document that.

While we're at it, fix a couple of minor issues in the legacy
syntax:
- hostIPaddr can be a DNS name if CONFIG_CMD_DNS is enabled
- path is mandatory

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-23 23:33:48 +01:00
Heinrich Schuchardt
f9dd2e2c9f doc: remove README.TPL
doc/develop/spl.rst describes SPL, TPL, VPL.
Remove the outdated README.TPL document.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-23 23:16:03 +01:00
Heinrich Schuchardt
8c87187119 doc: move README.kconfig to HTML documentation
* format according to Sphinx style
* add link to Linux Kconfig documentation
* sort table alphabetically in 'Conversion from boards.cfg to Kconfig'

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-23 23:15:39 +01:00
Heinrich Schuchardt
a152e14999 efi_loader: simplify efi_tcg2_hash_log_extend_event()
The value of variable nt is never used. Just use NULL when calling
efi_check_pe().

The API function is not expected to write to the console. Such output might
have unwanted side effects on the screen layout of an EFI application.

Leave error handling to the caller.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-23 23:14:15 +01:00
Marek Vasut
c02cdd4187 arm64: dts: imx8mn: Include 32kHz oscillator clock in SPL DTs
Since 50cdd3f74a ("clk: imx: clk-imx8mn Fix nand and spi clock parent"),
drivers/clk/imx/clk-imx8mn.c clk_get_by_name(dev, "osc_24m", &osc_24m_clk)
fails with error -22 EINVAL in SPL. This is because clk_get_by_name() in the
end calls fdtdec_parse_phandle_with_args(), which iterates over all phandles
in clock-controller@30380000 { clocks = <&osc_32k>, <&osc_24m>, ... } node
'clocks' property in an attempt to find the "osc_24m" clock, but fails to
resolve the &osc_32k phandle and returns with -EINVAL.

Include the osc_32k clock in SPL DTs as a low risk fix for v2025.01 release.
This way, fdtdec_parse_phandle_with_args() can resolve both the osc_32k and
following osc_24m phandle and successfully look up the osc_24m clock.

Fixes: 50cdd3f74a ("clk: imx: clk-imx8mn Fix nand and spi clock parent")
Signed-off-by: Marek Vasut <marex@denx.de>
Tested-by: Adam Ford <aford173@gmail.com> #imx8mn-beacon
2024-11-23 15:46:34 -03:00
Tom Rini
52c0e5f8a3 Merge branch '2024-11-22-assorted-fixes'
- Assorted additional lwIP fixes
- Assorted test fixes
- Assorted other localized fixes
2024-11-22 15:04:54 -06:00
Heinrich Schuchardt
0e3cd1313f cmd: improve description of the cdp command
Users might not know what 'CDP' refers to. Provide basic information.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-22 15:04:54 -06:00
Heinrich Schuchardt
5444189998 test: unit test for hextoull()
Provide a unit test for the hextoull() function.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-22 15:04:54 -06:00
Jerome Forissier
13e13f5867 net: lwip: dhcp: support arguments for TFTP file download
The dhcp command is supposed to have the following syntax as per
"help dhcp":

  dhcp [loadAddress] [[hostIPaddr:]bootfilename]

In other words, any arguments should be passed to an implicit
tftpboot command after the DHCP exchange has occurred.

Add the missing code to the lwIP version of do_dhcp().

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-11-22 14:51:26 -06:00
Ilias Apalodimas
2cde2f4a00 net: lwip: provide entropy to MBed TLS in one go
We currently provide entropy to mbedTLS using 8b chunks.
Take into account the 'len' parameter passed by MBed TLS to the entropy
gathering function instead. Note that the current code works because len
is always 128 (defined at compile time), therefore mbedtls_hardware_poll()
is called repeatedly and the buffer is filled correctly. But passing 'len'
to dm_rng_read() is both better and simpler.

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-22 14:40:53 -06:00
Jerome Forissier
572b5b0d5a net: lwip: wget: update help string
The lwIP version of wget also supports the legacy syntax. Document it in
the help string.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-22 14:40:53 -06:00
Jerome Forissier
7d80e7368e net: lwip: fix get_udev_ipv4_info()
The local variables ipstr, maskstr and gwstr in static function
get_udev_ipv4_info() cannot be pointers to read-only data, since
they may be written to in case the device index is > 0. Therefore
make them char arrays allocated on the stack.

Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reported-by: Adriano Cordova <adrianox@gmail.com>
Link: https://lists.denx.de/pipermail/u-boot/2024-November/572066.html
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-22 14:37:49 -06:00
Udit Kumar
dfe5f16a33 arm64: dts: ti: k3-j7200: Fix OSPI boot
OSPI boot is broken due to missing bootph property
in pin mux of OSPI.
So add bootph to fix OSPI boot.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
2024-11-22 14:37:49 -06:00
Ben Horgan
afa99e65b9 board: armltd: Make myself maintainer for total compute
The previous maintainer is no longer involved in total compute.

Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Leo Yan <leo.yan@arm.com>
2024-11-22 14:37:49 -06:00
Tom Rini
c16fcbc14a Revert "test: Update time tests to use unit-test asserts"
While at the base level, this conversion looks equivalent, we now see
both of these tests failing (due to exceeding their allowed margin for
being too slow) in Azure with a very high frequency.

This reverts commit 88db4fc5fe.

Signed-off-by: Tom Rini <trini@konsulko.com>
Tested-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-22 14:37:21 -06:00
Jerome Forissier
8c95d84b39 net: lwip: fix dhcp_loop()
The local variables ipstr, maskstr and gwstr in static function
dhcp_loop() cannot be pointers to read-only data, since they may be
written to in case the device index is > 0. Therefore make them char
arrays allocated on the stack.

Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-22 14:37:21 -06:00
Mattijs Korpershoek
e92b5d0ddf test: boot: Set DM|SCAN_FDT flags for bootmeth_{cros,android}
We make fewer calls to dm_test_restore() since
commit fbdac8155c ("test: Expand implementation of ut_list_has_dm_tests()")

Because of this some valid test combinations are now broken:

$ ./test/py/test.py --bd sandbox --build -k test_ut
$ ./test/py/test.py --bd sandbox --build -k "bootflow_android or bootflow_cros"

Shows:

  Expected '  2  cros         ready   mmc          4 mmc5.bootdev.part_4       ',
  got '  2  cros         ready   mmc          2 mmc5.bootdev.part_2       '

Here prep_mmc_bootdev() is called twice and it will bind bootmeth_cros twice.

Since bootmeth_cros is bound twice, 'bootflow scan' will find 2x the
expected bootflows.

Before
commit fbdac8155c ("test: Expand implementation of ut_list_has_dm_tests()")
this did not happen because a cleanup was called each time.

Add UTF_DM and UTF_SCAN_FDT flags to both tests to make sure that the
bootmeths are unbound after the test finishes.

Fixes: fbdac8155c ("test: Expand implementation of ut_list_has_dm_tests()")
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-22 14:37:21 -06:00
Tom Rini
35d5ad6cf2 Merge branch 'qcom-main' of https://source.denx.de/u-boot/custodians/u-boot-snapdragon
CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/23474

- UFS support is enabled for SC7280 and SM8150 platforms.
- Qualcomm dt-bindings headers are all dropped in favour of
  dts/upstream.
- The SMMU driver now correctly handles stream ID 0 and is disabled in
  EL2.
- Initial support for capsule updates (using the new dynamic UUIDs) is
  added for the RB3 Gen 2 board alongside a new SCSI backend for DFU.
- CONFIG_PINCONF is enabled in qcom_defconfig.
- The vqmmc supply is now enabled for sdcard support on boards that need
  it.
- A quirk is added for reading GPIOs on the PM8550 PMIC
2024-11-20 11:55:24 -06:00
Caleb Connolly
7aad783332 treewide: remove Qualcomm dt-binding headers that are available upstream
Some dt-binding headers mask the upstream ones which can lead to build
failures, or worse: super weird bugs, if they get out of sync.

Remove these headers so our devicetree and binding headers will both be
in sync with upstream.

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
e55fc3ab20 iommu: qcom-smmu: handle running in el2
We only need to configure the SMMU when running in EL1. In EL2 the
hypervisor isn't running so peripherals can just do DMA as they wish.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
53c0f1beac iommu: qcom-smmu: allow SID 0
It turns out this is a very real stream ID. Who woulda thought?

Drop the 0 check on the SID, there's no reason for it to be there in the first
place.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
e88089e4f1 qcom_defconfig: enable capsule update support
Enable all the necessary options for capsule updates to work, as well as
a few additional EFI features.

Capsule updates themselves are only enabled for the RB3 Gen 2, since the
exact details on where to flash U-Boot (or how to handle multiple boot
methods) has not been finalised for other boards.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
b10b4c0e1e mach-snapdragon: implement capsule update support
Qualcomm boards flash U-Boot a variety of partitions, implement support
for determining which slot U-Boot is running from, finding the correct
partition for that slot and configuring the appropriate DFU string.

Initially, we only support the RB3 Gen 2 where U-Boot is flashed to the
UEFI partition, and ignore handling of slots. In the future we will
additionally support booting U-Boot from other partitions (e.g. boot)
and correct handling for A/B.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
eab4675f93 disk: expose partition type flags
GPT partition tables include two bytes worth of vendor defined
attributes, per partition. ChromeOS and Qualcomm both use these (with
different encoding!) to handle A/B slot switching with a retry counter.

Expose these via the disk_partition struct so that they can be parsed by
the relevant board code.

This will be used on Qualcomm boards to determine which slot we're
booting on so that we can flash capsule updates to the correct one.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
ef14c347db dfu: add scsi backend
This is extremely similar to the MMC backend, but there are some notable
differences.

Works with a DFU string like

    scsi 4=u-boot-bin part 11

Where "4" is the SCSI dev number (sequential LUN across all SCSI devices)
and "11" is the partition number.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Acked-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Julius Lehmann
0ce0b77243 phy: qcom: Add SM8150 to QMP UFS PHY driver
Copy PHY tables over from Linux to support SM8150

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-20 17:57:58 +01:00
Caleb Connolly
1e49d9916b phy: qcom: ufs: add sc7280
Add configuration for the SC7280, copied from Linux 6.11

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:58 +01:00
Neil Armstrong
70cb7c239f qcom_defconfig: enable UFS Qualcomm controller and PHY drivers
Now the Qualcomm controller and PHY drivers were accepted,
enable then in the qcom_defconfig file.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
0e3f5c5829 dt-bindings: remove phy/phy-qcom-qmp.h in favor of dts/upstream
The upstream version has new defines use to build DT, drop
it in favor of the dts/upstream more recent one.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
5afcd44096 phy: qcom: ufs: drop unused ufsphy_v2_regs_layout
The ufsphy_v2_regs_layout is not used, drop it and fix:
phy-qcom-qmp-ufs.c:87:27: warning: ‘ufsphy_v2_regs_layout’ defined but not used [-Wunused-const-variable=]

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
9b9ccca64c gpio: qcom_pmic: add again the quirk to skip GPIO configuration on PM8550
The qcom_pmic code is broken for new PMICs and should be fixed,
without the QUIRK the code is broken and the GPIOs don't work
anymore on SM8550 and SM8650 platforms.

Partially revert the revert and only add the quirk on the PM8550
PMIC, making the buttons and MMC detect gpio work again.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
615dfe1aea mmc: msm_sdhci: enable vqmmc at probe if available
On earlier platforms, the vqmmc regulator was enabled by the
previous bootloader, but on the newest (SM8650) it's not
and we need vqmmc to be enabled in order to have the card
to respond.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Caleb Connolly
ab76484cf2 mach-snapdragon: configure logging
Set LOG_CATEGORY and pr_fmt. Also fix the time.h include.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
c75a535bd3 ARM: mach-snapdragon: configure a larger default SYS_MALLOC_LEN for fastboot
Fastboot is very hungry when it flashes larges chunks, and 8MiB
is way too small, allocate a much bigger size like other platforms
using Fastboot.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> # rb1
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Neil Armstrong
1ef0f64a68 qcom_defconfig: enable PINCONF
The SM8550 and SM8650 SoCs requires PINCONF to properly
setup SDC pins in order to function correctly.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-11-20 17:57:57 +01:00
Tom Rini
7fe55182d9 Merge tag 'xilinx-for-v2025.01-rc3-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.01-rc3:

- microblaze:
  - Disable JFFS2
- fpga:
  - pass compatible flag to fpga_load()
- zynqmp:
  - SOM RTC fix
  - SC(system controller) PMW polarity fix
  - Fix ram_top calculation with introducing XILINX_MINI
  - Fix RPU release command
- versal:
  - Enable capsule update
  - Enable soft reset and Micron octal flashes
- xilinx:
  - Align Kconfig regarding SPI_STACKED_PARALLEL
- bootcount:
  - Add new zynqmp driver
2024-11-19 12:58:05 -06:00
Tom Rini
dc1859f8d2 Merge patch series "buildman: Add initial support for config fragments"
Simon Glass <sjg@chromium.org> says:

This series updates buildman to process #include lines in defconfig
files. With this, it is no-longer necessary to duplicate lines certain
lines from the include-file in the defconfig, e.g. CONFIG_ARM and
CONFIG_SOC_...

Link: https://lore.kernel.org/r/20241108152350.3686274-1-sjg@chromium.org
2024-11-19 10:04:57 -06:00
Simon Glass
e2ca257287 buildman: Support a tilde to represent the home directory
It is convenient to use ~ to represent the home directory in the
settings file. Add support for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Simon Glass
eae1eb0e86 buildman: Correct logic for adding a toolchain
If the toolchain is bad, it should not be added. Correct the logic for
this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Simon Glass
a79a9ebee0 buildman: Document the toolchain-prefix section
This is mentioned in examples but should have its own mention in the
'settings' documentation. Add it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Simon Glass
d6ebe17d9d buildman: Correct the indentation in the setting-up section
The example settings file should be indented so that it shows correctly
in the output. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Simon Glass
6bf74a2e0b buildman: Support #include files in defconfigs
This is used by some boards in U-Boot and is a convenient way to deal
with common settings where using a Kconfig files is not desirable.

Detect #include files and process them as if they were part of the
original file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/30
2024-11-19 10:04:47 -06:00
Simon Glass
6d66ded18e buildman: Set up the tout library
Use this to control info and debugging messages. Enable them if -v is
given.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Simon Glass
a63fcdb9a4 buildman: Add a lower-level test for KconfigScanner
This code is tested by test_scan_defconfigs() but it is useful to have
some specific tests for the KconfigScanner's operation in U-Boot. Add
a test which checks that the values are obtained correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-19 10:04:47 -06:00
Michal Simek
383fc2f501 xilinx: Introduce XILINX_MINI configuration
There is no common symbol which mini configurations are using and recent
get_mem_top() changes adding 1.3kB without having a way to remove it.
That's why introduce new symbol which can be used for removing features
which are not requested by these configurations.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/aa27b72e17057fa8cbdd92a2bbb863a31c8c1226.1731681053.git.michal.simek@amd.com
2024-11-19 15:57:56 +01:00
Michal Simek
57066053b6 microblaze: Disable JFFS2 support
JFFS2 is not maintained for quite a long time and none should be using it.
Please use other filesystems for flashes like UBIFS instead.

Also remove jffs to MTD map but MTD map is for example that's why it won't
affect anything.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/a8239acee8886229fdbff66142c46d522e3fe851.1731659933.git.michal.simek@amd.com
2024-11-19 15:57:31 +01:00
Michal Simek
253b26a72f arm64: zynqmp: Set default RTC device at start
For RTC to start to operate there is a need to call the driver. The simple
way to do it is to set default RTC instance which will call the probe and
do basic initialization.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/01155f1555dbd42adc618906629f5fb45754d5a4.1731419926.git.michal.simek@amd.com
2024-11-19 15:56:44 +01:00
Venkatesh Yadav Abbarapu
93501f641b arm64: versal: Enable soft reset support for xspi flashes
Activate the xSPI Software Reset support, which will be
utilized to transition from octal DTR mode to legacy
mode during shutdown and boot (if enabled).

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241114042641.22642-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-19 15:56:44 +01:00
Venkatesh Yadav Abbarapu
46911346ee arm64: versal: Enable defconfig for Micron octal flashes
The Micron MT35 series octal flashes can be activated
through the configuration option CONFIG_SPI_FLASH_MT35XU.
To ensure their detection, enable this option in the
default defconfig for octal flashes.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241114051047.13700-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-19 15:56:44 +01:00
Venkatesh Yadav Abbarapu
5a24caca06 spi: cadence_qspi: Fix OSPI boot issue
Moving the hw_reset function from the controller driver to
the NOR framework has caused the OSPI reset not to be triggered
in the Cadence driver's probe function. As a result, reading the
flash ID during SPI calibration is incorrect, and the
CQSPI_REG_RD_DATA_CAPTURE is set with an invalid value.This makes
it unable to read the flash ID properly.
To solve this problem, it's suggested to skip SPI calibration and
instead retrieve the read_delay directly from the device tree.

Skipping SPI calibration doesn't bring harm since there's no need
for the flash golden values stored during SPI calibration.
Instead, they are now read during the spi_nor_read_id call in the
NOR framework.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241114062045.17581-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-19 15:56:44 +01:00
Caleb Connolly
06b8aafd68 fastboot: properly handle unknown partition type
In getvar_partition_type() we attempt to find a filesystem driver for
the partition (of the list of driver enabled in U-Boot), on failure we
return the error to fastboot and completely bail out of the operation.

However, this should not be a failure, instead we should just default to
"raw". This allows commands like "fastboot format:ext4 userdata" to work
if userdata didn't already have an ext4 partition table (or if FS_EXT4
is disabled in U-Boot), as failing to determine the current partition
type is not an error in this case.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241113050607.1850472-1-caleb.connolly@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-19 15:10:56 +01:00
Heinrich Schuchardt
3d0da87cd4 test: cmd/hash: check return value of ut_check_console_line
ut_check_console_line() does include an assert.
Pass the result to ut_assertok().

Addresses-Coverity-ID:  514958 Error handling issues
Fixes: 7dfafcd65e ("test: unit test for hash command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-18 19:10:56 -06:00
Jerome Forissier
deb9a07cf1 Kconfig: describe NET, NO_NET, LWIP_DEBUG and LWIP_ASSERT
Some Kconfig symbols introduced in commit 8cb330355b ("net: introduce
alternative implementation as net/lwip/") need a full description. The
NET symbol needs one, too.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-18 13:32:16 -06:00
Heinrich Schuchardt
2071583c8f net: lwip/wget: correct SERVER_NAME_SIZE
The maximum length of a domain name is 253 as defined in RFC 1035.
So SERVER_NAME_SIZE should be 254 including NUL.

Fixes: 3c656c928b ("net: lwip: add wget command")
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>
2024-11-18 13:32:12 -06:00
Tom Rini
b7d4c80fce Merge tag 'efi-next-2024-11-18' of https://source.denx.de/u-boot/custodians/u-boot-efi into next
CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/23430

- Prepare for implementing the EFI_HTTP_PROTOCOL:
  - Make wget functionality callable even if the wget command is not
    built (add CONFIG_WGET symbol).
  - Ensure that wget_with_dns() works the same with the old network
    stack and with lwIP.
  - Put server_name and port into wget_ctx.
  - Integrate struct wget_info into wget code.
  - Move ip_to_string to lib/net_utils.c
2024-11-18 10:46:06 -06:00
Adriano Cordova
9063dba2d3 net: net_utils: Move ip_to_string to lib/net_utils.c
The function string_to_ip is already in net_utils, which is
compiled unconditionally, but ip_to_string is currently only
accessible if the legacy network stack is selected. This
commit puts ip_to_string in net_utils.c and removes it from the
legacy network code.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-18 16:12:35 +01:00
Tom Rini
0e6432e19f Merge patch series "Fix boot failure due to misaligned DMA buffer"
Nam Cao <namcao@linutronix.de> says:

We observed the following sporadic boot failure while booting from MMC
device:

=> boot
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
** Booting bootflow 'mmc@2194000.bootdev.part_1' with extlinux
Ignoring unknown command: �D���D��
Boot failed (err=-14)

The reason is because while allocating buffer to read a file from MMC,
alignment of 1 byte is used. Thus, the buffer doesn't work for performing
DMA, and garbage data is read.

While looking at this issue, I also noticed that if no alignment specified
(align=0) then fs_read_alloc() is documented to use the default. But the
default is no alignment. Therefore, other users of fs_read_alloc() which
specify align=0 may be broken as well.

The first patch changes extlinux_read_bootflow() to use proper buffer
alignment for DMA.

The second patch changes the default alignment of fs_read_alloc() to be
DMA-suitable, to fix other potential bugs.
2024-11-18 08:24:06 -06:00
Nam Cao
6ea8dc661b fs: Use ARCH_DMA_MINALIGN as default alignment for fs_read_alloc()
The comment above fs_read_alloc() explains:

    @align: Alignment to use for memory allocation (0 for default)

However, in the actual implementation, there is no alignment when @align is
zero.

This current default is probably fine for most cases. But for some block
devices which transfer data via DMA, ARCH_DMA_MINALIGN is needed.

Change the default alignment to ARCH_DMA_MINALIGN.

Fixes: de7b5a8a1a ("fs: Create functions to load and allocate a file")
Signed-off-by: Nam Cao <namcao@linutronix.de>
Tested-by: Javier Fernandez Pastrana <javier.pastrana@linutronix.de>
2024-11-18 08:23:56 -06:00
Nam Cao
5efd63c93c boot: extlinux: Fix unaligned buffer for reading data from file system
extlinux_read_bootflow() allocates a buffer to read from file system
without any alignment.

But for some block devices which transfer data via DMA, ARCH_DMA_MINALIGN
alignment is required. For example, due to misaligned buffer, the below
boot failure is observed.

=> boot
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
CACHE: Misaligned operation at range [9efa25f8, 9efa27f8]
** Booting bootflow 'mmc@2194000.bootdev.part_1' with extlinux
Ignoring unknown command: �D���D��
Boot failed (err=-14)

Change the buffer alignment to ARCH_DMA_MINALIGN.

Fixes: 31aefaf89a ("bootstd: Add an implementation of distro boot")
Signed-off-by: Nam Cao <namcao@linutronix.de>
Tested-by: Javier Fernandez Pastrana <javier.pastrana@linutronix.de>
2024-11-18 08:23:56 -06:00
Love Kumar
b9e0048b6d test/py: mmc: Add support for different mmc modes
Currently, MMC test runs on default mmc modes, adding a provision to
support multiple mmc modes through user defined parameters.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-11-17 13:14:22 -06:00
Love Kumar
a730947974 test/py: usb: Distinguish b/w ext2/ext4 partitions
'usb part' command shows the partition maps and shows the partition type
by displaying number such as 0c, 83 etc. Observed that ext2 and ext4
partitions shows the same number, i.e, 83, so, using the fstype command
to distiniguish between ext2 and ext4 partitions.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-11-17 13:14:18 -06:00
Love Kumar
87a9f499ab test/py: mmc: Distinguish b/w ext2/ext4 partitions
'mmc part' command shows the partition maps and shows the partition type
by displaying number such as 0c, 83 etc. Observed that ext2 and ext4
partitions shows the same number, i.e, 83, so, using the fstype command
to distiniguish between ext2 and ext4 partitions.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-11-17 13:14:13 -06:00
Kever Yang
4cc94e898a console: Use printascii for lowlevel debug string
The lowlevel debug with CONFIG_DEBUG_UART has printascii for string
print, and no need to convert to use printch now.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-11-17 13:14:09 -06:00
Sam Protsenko
1070f01ac1 armv8: cpu: Implement allow_unaligned()
Usually ARMv8 platforms allow unaligned access for Normal memory. But
some chips might not allow it by default, having SCTLR.A bit set to 1
before U-Boot execution. One such example is Exynos850 SoC. As
allow_unaligned() is not implemented for ARMv8 at the moment, its __weak
implementation is used, which does nothing. That might lead to unaligned
access abort, for example when running EFI selftest. Fix that by
implementing allow_unaligned() for ARMv8.

The issue was found when running EFI selftest on E850-96 board
(Exynos850 based):

    => bootefi selftest $fdtcontroladdr

    ...
    Executing 'HII database protocols'
    "Synchronous Abort" handler, esr 0x96000021, far 0xbaac0991
    ...
    resetting ...

Unaligned abort happens in u16_strnlen(), which is called from
efi_hii_sibt_string_ucs2_block_next():

    u16_strlen(blk->string_text)

where 'blk' type is struct efi_hii_sibt_string_ucs2_block. Because this
struct is packed, doing "->string_text" makes 'blk' address incremented
by 1 byte, which makes it unaligned. Although allow_unaligned() was
called in efi_init_early() before EFI selftest execution, it wasn't
implemented for ARMv8 CPUs, so data abort happened.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
2024-11-17 13:13:22 -06:00
Sam Protsenko
be48369f32 armv8: Fix get_sctlr() return type
SCTLR_EL2 is a 64-bit register [1]. Return its value as long (64 bit)
instead of int (32 bit) in get_sctlr() to make sure it's not trimmed.

[1] https://developer.arm.com/documentation/ddi0595/2021-06/AArch64-Registers/SCTLR-EL2--System-Control-Register--EL2-?lang=en

Fixes: 0ae7653128 ("arm64: core support")
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-17 13:13:22 -06:00
Andrew Goodbody
1b2a572388 test: bootm: Ensure tests can be run twice
Some of the bootm tests rely on state that is assumed to be
correct but is changed by the tests. This means that running
'ut bootm' twice will result in failures on the second run
as the state left by the first run is not what the tests
expect.
Fix this by ensuring the state is as expected by explicitly
setting that state.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-17 13:13:02 -06:00
Simon Glass
3fcbae5f84 dm: sysinfo: Shorten the SYSINFO_ID prefix
We are about to add a large number of new entries. Update the prefix to
be a little shorter.

For SMBIOS items, use SYSID_SM_ (for System Management) which is enough
to distinguish it. For now at least, it seems that most items will be
for SMBIOS.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Raymond Mao <raymond.mao@linaro.org>
2024-11-17 13:12:54 -06:00
Yuri Zaporozhets
7f15050210 bios_emulator: add missing includes to debug.c
When compiling with X86EMU_DEBUG, the compiler complains that debug.c misses
two include files. Fix that.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-16 20:54:16 -06:00
Yuri Zaporozhets
18115aae53 bios_emulator: for non-x86, print warnings if PM_{inp, outp}* access is attempted
Currently the PM_{inp,outp}* macros are completely broken on non-x86 architectures,
because they will essentially access random memory locations if called (and produce
a lot of rightful compilation warnings too). For now, replace those macros with
warnings (until the code is fixed), so the user at least knows that the emulator
attempted to access some x86 I/O port.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-16 20:54:16 -06:00
Tom Rini
e2032a0e4e global: Remove bi_sramstart/bi_sramsize
These fields are currently set on exactly two platforms today, and used
by only one of them. Update pic32mzdask to use CFG_SYS_SRAM* in the one
location it needs it and otherwise drop this field from the bd_info
struct.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-16 19:49:13 -06:00
Caleb Connolly
cae243927f dm: button: support remapping phone keys
We don't have audio support in U-Boot, but we do have boot menus. Add an
option to re-map the volume and power buttons to up/down/enter so that
in situations where these are the only available buttons (such as on
mobile phones) it's still possible to navigate menus built in U-Boot or
an external EFI app like GRUB or systemd-boot.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
2024-11-16 19:49:05 -06:00
Adriano Cordova
1327c2a8d6 net/lwip: wget: integrate struct wget_info into wget code
Each wget request now fills the struct wget_info. Also, the
efi bootdevice is now set conditionally to the set_bootdevice
variable in wget_info and a buffer size check is performed if
check_buffer_size is set.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16 21:35:06 +01:00
Adriano Cordova
6cc4d0492b net/lwip: wget: put server_name and port into wget_ctx
Currently server_name and port are local variables in wget_loop.
This commit puts them inside ctx, so that they are accessible
from the http callbacks.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16 21:35:05 +01:00
Adriano Cordova
de28a2a5f2 net: wget: make wget_with_dns return value compatible with its lwip version
There are two wget_with_dns functions, one in the legacy network
stack and one in lwip, but the return values are not compatible.
This commit modifies the legacy version of wget_with_dns so that
the return values are compatible: 0 on success, otherwise a negative
error. This way wget_with_dns can be called in a network stack
agnostic way.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16 21:35:05 +01:00
Adriano Cordova
2dd076a9c1 net: wget: integrate struct wget_info into legacy wget code
Each wget request now fills the struct wget_info. The efi
bootdevice is now set conditionally to the set_bootdevice
variable in wget_info, and the same holds for lmb memory check.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16 21:35:05 +01:00
Adriano Cordova
1de93fda99 net: wget: Add interface to issue wget_requests using wget_http_info
Declare and define a global default struct wget_http_info
and an interface to issue wget requests providing a custom
struct wget_http_info. This code is common to legacy wget
and lwip wget. The idea is that the command wget should use
the default wget_http_info and other internal u-boot code
can call wget_request with their own wget_http_info struct.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
2024-11-16 21:35:05 +01:00
Adriano Cordova
408af97674 net: wget: add definition of struct wget_http_info
The struct wget_http_info exposes the HTTP information of the last HTTP
request issued by wget, and it controls whether the efi bootdevice is set,
and whether the buffer size needs to be checked (lwip stack only). This
information is otherwise discarded. The wget_http_info struct can be used
by HTTP drivers to have more control over HTTP requests.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-16 21:35:05 +01:00
Adriano Cordova
657b799585 net: Kconfig: add CONFIG_WGET symbol
Let net/wget.c and net/lwip/wget.c depend on CONFIG_WGET, and
cmd/wget.c depend on CONFIG_CMD_WGET. This way, the wget code
can be used regardless of whether the wget command is available.

Signed-off-by: Adriano Cordova <adrianox@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-16 21:35:05 +01:00
Tom Rini
a38390284a Merge tag 'tpm-master-16112024' of https://source.denx.de/u-boot/custodians/u-boot-tpm
CI: https://source.denx.de/u-boot/custodians/u-boot-tpm/-/pipelines/23393

- Two changes from Heinrich:
  - One is adding some missing TPM files for proper maintenance.
  - The second addresses Coverity-ID: 356664 replacing a mempcy() which
    has undefined behavior with memmove()
2024-11-16 13:09:18 -06:00
Heinrich Schuchardt
c0231ede0f MAINTAINERS: add lib/tpm* to TPM DRIVERS
All TPM code should be maintained.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-16 19:23:11 +02:00
Heinrich Schuchardt
6c717d952d tpm: use memmove() for overlapping buffers
The behavior of memcpy() for overlapping buffers is undefined.

Fixes: 4c57ec76b7 ("tpm: Implement state command for Cr50")
Addresses-Coverity-ID: 356664 Overlapping buffer in memory copy
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-16 19:21:59 +02:00
Tom Rini
c71d451033 Merge patch series "teach 'env default' to optionally keep runtime variables"
Rasmus Villemoes <ravi@prevas.dk> says:

Doing bringup of a board, part of my bootstrap logic is in U-Boot. So
when tweaking that logic, I was bitten by a previous completed
bootstrap having left a copy of the environment on the device, which
was imported and thus overrided the new logic.

So I thought, "ok, I'll just make sure to put 'env default -a' as the
first part of the bootstrap logic so I'm not bitten again". Alas, my
logic also relies on certain variables that are set by C code
(e.g. for detecting board variant), and doing 'env default -a' also
eliminates those.

Looking around, the hashtab code already supports a flag that does
exactly what I need, and exposing that is (morally) a one-liner.

Link: https://lore.kernel.org/r/20241030213404.2894247-1-ravi@prevas.dk
2024-11-15 16:36:24 -06:00
Rasmus Villemoes
1bf25c7750 test: env: add some test cases for new "env default -k" flag
Check that the new -k flag works as expected.

This also adds a test of the -a flag, which was previously missing,
and as the comment says, perhaps for a good reason. At least now we
have a test for it in combination with -k (and -f, because the ethaddr
variables otherwise cause complaining).

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15 16:36:18 -06:00
Rasmus Villemoes
1e2325f760 test: env: check that non-mentioned variables to "env default" are preserved
Instead of testing the same expected behaviour for both
non_default_varX, test that when var1 is not in the default env but is
mentioned in the "env default" cmdline, it is removed, while var2 is
untouched.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15 16:36:18 -06:00
Rasmus Villemoes
4d28fcdf65 cmd/nvedit.c: teach 'env default' to optionally keep runtime variables
It can be useful to set all variables defined in the default
environment to the value they have there, but without removing
variables that are only defined at runtime. This can sort-of be done
today, by using the "env default var1 var2 ..." variant, but that
requires listing all variables defined in the default
environment. It's much more convenient to be able to say

  env default -k -a

The -k flag is also meaningful in the other case: If var1 is not
defined in the default environment, but var2 is,

  env default var1 var2

would emit a warning about var1 not being in the default env and thus
being deleted. With -k, there's no warning, and var1 is kept as-is.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-11-15 16:36:18 -06:00
Holger Brunck
f39199e809 km: disable CMD_JFFS2 for all PPC boards
We don't use this feature, we can remove it therefore in the defconfigs.

Signed-off-by: Holger Brunck <holger.brunck@hitachienergy.com>
2024-11-15 13:11:51 -06:00
Dominique Martinet
6e988fde65 fs: btrfs: hide duplicate 'Cannot lookup file' error on 'load'
Running commands such as 'load mmc 2:1 $addr $path' when path does not
exists will print an error twice if the file does not exist, e.g.:
```
Cannot lookup file boot/boot.scr
Failed to load 'boot/boot.scr'
```
(where the first line is printed by btrfs and the second by common fs
code)

Historically other filesystems such as ext4 or fat have not been
printing a message here, so do the same here to avoid duplicate.

The other error messages in this function are also somewhat redundant,
but bring useful diagnostics if they happen somewhere, so have been left
as printf.

Note that if a user wants no message to be printed for optional file
loads, they have to check for file existence first with other commands
such as 'size'.

Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
2024-11-15 13:11:47 -06:00
Love Kumar
92e1c2bf9e test/py: spi: Rephrase the warning/error messages
Rephrasing the error and warning messages to be more meaningful and
clear.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-11-15 13:11:29 -06:00
Tom Rini
c04999d999 Merge tag 'u-boot-imx-master-20241115' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23373

- Fix a missing break for CMD_DCD_SKIP reported by Coverty on imx8image.
- Fix i.MX thermal threshold regression.
2024-11-15 13:10:36 -06:00
Francesco Dolcini
e6c3c63035 imx: Fix critical thermal threshold
Fix the critical thermal threshold for i.MX processors, this was changed
while moving the code from imx8m/imx9 directories into a shared place.

There is no need to keep the critical threshold 5 degrees less than the
SoC maximum temperature threshold, what is actually going to happen in
practice is that we are going to power-off the board when the SoC is
still within its working temperature range.

In addition to that this is a change in the actual behavior, that is
introducing a regression to users, and it was hidden within a software
refactoring.

Fixes: d0fe80890a ("imx: Generalize fixup_thermal_trips")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-11-15 14:36:47 -03:00
Fabio Estevam
3c417c79e0 tools: imx8image: Add missing break for CMD_DCD_SKIP
The CMD_DCD_SKIP case misses a break statement.

Add it.

Fixes: 254c00803b ("tools: imx8image: add possibility to skip dcd")
Addresses-Coverity-ID: 514648: Control flow issues (MISSING_BREAK)
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-11-15 14:36:33 -03:00
Vasileios Amoiridis
159dfef261 drivers: bootcount: Add ZynqMP specific bootcount support
Add native support of the bootcount mechanism in the ZynqMP by
utilising internal PMU registers. The Persistent Global Storage
Registers of the Platform Management Unit can keep their value
during reboot cycles unless there is a POR reset, making them
appropriate for the bootcount mechanism.

Signed-off-by: Vasileios Amoiridis <vasileios.amoiridis@cern.ch>
Reviewed-by: Heiko Schocher <hs@denx.de>
Link: https://lore.kernel.org/r/20241105132744.1572759-2-vassilisamir@gmail.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15 14:32:47 +01:00
Peter Korsgaard
4bd7222c6b boot/image-board.c: boot_get_fpga(): pass compatible flag to fpga_load()
For E.G. signed FPGA bitstreams, similar to how it is done for the FPGA
loading from SPL since commit 71f1a5392a ("spl: fit: pass real compatible
flags to fpga_load()").

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Link: https://lore.kernel.org/r/20241105162136.839633-1-peter@korsgaard.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15 14:32:47 +01:00
Michal Simek
064c8978b4 arm64: versal: Enable capsule update (SD)
Enable capsule update in SD boot mode. For getting it work there is a need
to generate or setup dfu_alt_info and enable sysreset with DFU_MMC.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/cede513de764b99560dc3737457dbc8a5cc71d21.1729857366.git.michal.simek@amd.com
2024-11-15 14:32:47 +01:00
Michal Simek
cf3aa7b52c arm64: versal: Do not define do_reset() if sysreset is enabled
If sysreset is enabled reset_cpu is defined in sysreset uclass that's why
it can't be in platform/board code.
The same change was done by commit f1bc214b00 ("arm64: zynqmp: Do not
define do_reset() if sysreset is enabled").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/8c1a5d6148c5e6c46790b725e8148a4e12d393ba.1729857366.git.michal.simek@amd.com
2024-11-15 14:32:47 +01:00
Padmarao Begari
b872583df1 arm64: zynqmp: Fix r5 mode for cpu release command
The cpu release command for r5 mode (lockstep/split) argument
accepts only string. But the zynqmp tcminit command accepts
string or number for r5 mode (lockstep/split or 0/1) argument.
To fix the r5 mode argument, the common argument (lockstep/split
or 0/1) is used across different u-boot commands. Use the strcmp()
instead of strncmp() to make uniform the r5 mode (lockstep/split
or 0/1) for the zynqmp tcminit and cpu release command.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20241104122750.96251-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15 14:32:47 +01:00
Michal Simek
6f7ff73fba arm64: xilinx: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL
Align defconfigs with the latest Kconfig layout.

Fixes: f896aa6567 ("mtd: spi-nor: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL")
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/fe05a0e542d6117c10956e4a104123e46f956793.1730450241.git.michal.simek@amd.com
2024-11-15 14:32:47 +01:00
Sughosh Ganu
62fbddf7c8 xilinx: use get_mem_top() to compute ram_top
Use the get_mem_top function to compute the value of ram_top. This was
earlier done through LMB API's, which are no longer available till
after relocation. Use get_mem_top() instead to compute the ram_top
value.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Tested-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20241025172724.195093-3-sughosh.ganu@linaro.org
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15 14:32:47 +01:00
Sughosh Ganu
feb423a3a3 common: memtop: add logic to detect ram_top
Add generic logic to determine the ram_top value for boards. Earlier,
this was achieved in an indirect manner through a set of LMB API's.
That has since changed so that the LMB code is available only after
relocation. Replace those LMB calls with a single call to
get_mem_top() to determine the value of ram_top.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20241025172724.195093-2-sughosh.ganu@linaro.org
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-11-15 14:32:02 +01:00
Christian Marangi
2bf2615b80 .gitignore: add test overlay .S and u_boot_logo files
Add test overlay .S and u_boot_logo file to gitignore as these files are
generated and should not be committed but ignored.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
dfe7ab3514 lmb.c: add missing comma in lmb_dump_region()
In the message string " %s[%d]\t[0x%llx-0x%llx], 0x%08llx bytes flags: "
a comma is missing before flags.

To avoid increasing the code size replace '0x%' by '%#'.

Printing the size with leading zeros but not the addresses does not really
make sense. Remove the leading zeros from the size output.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
[trini: Fix test/cmd/bdinfo.c for these changes]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
5430a5f67e test: use %zd for size_t in mbr_test_run()
For printing size_t we must use %zd and not %ld to avoid
a -Wformat error on 32-bit systems.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
20b23f049f test: print_printf() must check availability of %ls
Availability of %ls in printf() depends on having
CONFIG_EFI_LOADER or CONFIG_EFI_APP.

Respect this when testing.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
d8c5bcbd22 test: cmd/mbr: pass correct buffer size to init_write_buffers
We want to completely initialize the mbr and embr buffers. This requires
passing the buffer size and not the size of a pointer to the buffer.

Addresses-Coverity-ID: 510454 Wrong sizeof argument
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
b891826067 upl: fix parsing of DT property
When calling decode_addr_size() we must pass the size of the device-tree
property and not sizeof(void *).

Fixes: 90469da3da ("upl: Add support for reading a upl handoff")
Addresses-Coverity-ID: 510459 Wrong sizeof argument
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 18:14:06 -06:00
Heinrich Schuchardt
504f36ed7a cmd: upl: initialize unit test state
do_upl_write() calls upl_get_test_data() which may increment the fail
count in the unit test state. We should initialize it.

Addresses-Coverity-ID: 510465 Uninitialized scalar variable
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-14 18:14:05 -06:00
Heinrich Schuchardt
e54ddc32cf xyz-modem: Add missing fallthrough annotation
Falltroughs in switch statements should be explicit.

Addresses-Coverity-ID: 131162 Missing break in switch
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 18:14:05 -06:00
Heinrich Schuchardt
1f66c0e1f4 lmb: do not panic in lmb_print_region_flags
Commit c3cf0dc64f ("lmb: add a check to prevent memory overrun")
addressed a possible buffer overrun using assert_noisy().

Resetting via panic() in lmb_print_region() while allowing invalid
lmb flags elsewhere is not reasonable.

Instead of panicking print a message indicating the problem.

fls() returns an int. Using a u64 for bitpos does not match.
Use int instead.

fls() takes an int as argument. Using 1ull << bitpos generates a u64.
Use 1u << bitpos instead.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-11-14 18:14:05 -06:00
Loic Poulain
1b99c15d73 lib: rsa: Set conventional salt length RSA-PSS parameter
RFC 3447 says that Typical salt length are either 0 or the length
of the output of the digest algorithm, RFC 4055 also recommends
hash value length as the salt length. Moreover, By convention,
most of the signing infrastructures/libraries use the length of
the digest algorithm (such as google cloud kms:
                      https://cloud.google.com/kms/docs/algorithms).

If the salt-length parameter is not set, openssl default to the
maximum allowed value, which is a openssl 'specificity', so this
works well for local signing, but restricts compatibility with
other engines (e.g pkcs11/libkmsp11):

```
returning 0x71 from C_SignInit due to status INVALID_ARGUMENT:
    at rsassa_pss.cc:53: expected salt length for key XX is 32,
    but 478 was supplied in the parameters
Could not obtain signature: error:41000070:PKCS#11 module::Mechanism invalid
```

To improve compatibility, we set the default RSA-PSS salt-length
value to the conventional one. A further improvement could consist
in making it configurable as signature FIT node attribute.

rfc3447: https://datatracker.ietf.org/doc/html/rfc3447
rfc4055: https://datatracker.ietf.org/doc/html/rfc4055

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
2024-11-14 18:14:05 -06:00
Jerome Forissier
356011f7ac lwip: fix code style issues
Fix various code style issues in the lwIP code.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-14 18:14:05 -06:00
Quentin Schulz
04b1d84221 Makefile: fix empty MK_ARCH when using ccache
One can use ccache by prefixing the typical CROSS_COMPILE value with
"ccache " (e.g. "ccache aarch64-gnu-linux-" for Aarch64). This however
makes the MK_ARCH empty because sed won't find a match anymore since it
expects the CROSS_COMPILE value to start with the actual toolchain (with
an unlimited number of white spaces before).

This is failing builds since commit 7506c15669 ("sandbox: Report host
default-filename in native mode").

Add "ccache" prefix to ignore but participate in the matching regex used
by sed to identify the target architecture.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-14 10:51:28 -06:00
Tom Rini
2b14d12067 Merge patch series "examples: fix building on arm64"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

Commit f9886bc60f ("Added arm64 assembly for examples/api crt0") added
the arm64 architecture but the code does not even build.

With the changes the 'demo' program runs on qemu_arm64_defconfig using

    setenv autostart no
    dhcp demo
    setenv autostart yes
    bootelf $loadaddr

Link: https://lore.kernel.org/r/20241103053551.52715-1-heinrich.schuchardt@canonical.com
2024-11-14 10:51:28 -06:00
Heinrich Schuchardt
9e7d7f95ec examples: make glue and demo code compatible with 64-bit
Commit f9886bc60f ("Added arm64 assembly for examples/api crt0")
added a 64-bit target for the examples but did not adjust the demo
code to be 64-bit compatible.

Change variable size for pointers.
Use %p to print pointers.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 10:51:07 -06:00
Heinrich Schuchardt
2ed26ee374 examples: adjust LOAD_ADDR on arm64
Change the load address on arm64 such that it is compatible with the memory
available on qemu_arm64_defconfig.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 10:51:07 -06:00
Heinrich Schuchardt
a3c101a613 examples: fix building on arm64
Commit f9886bc60f ("Added arm64 assembly for examples/api crt0") tried to
add arm64 support to the examples but crt0.S does not even build for
qemu_arm64_defconfig with CONFIG_API=y, CONFIG_EXAMPLES=y:

    examples/api/crt0.S: Assembler messages:
    examples/api/crt0.S:32: Error:
        expected a register at operand 1 -- `ldr ip,=search_hint'
    examples/api/crt0.S:33: Error:
        unexpected register type at operand 1 -- `str sp,[ip]'
    make[2]: *** [scripts/Makefile.build:292: examples/api/crt0.o] Error 1

Do not define _start twice.
Use valid register names.
Move syscall_ptr and search_hint to the data section to avoid an invalid
relocation.

Fixes: f9886bc60f ("Added arm64 assembly for examples/api crt0")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 10:51:07 -06:00
Tom Rini
f6ee671264 Merge patch series "cmd: hash: correct parameter count check"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

Since commit 348ea87850 ("cmd: hash: fix param count check") the hash
command cannot be used without the optional variable name parameter if
CONFIG_HASH_VERIFY=y. 'hash sha1 $loadaddr $filesize' returns
CMD_RET_USAGE.

The minimum number of arguments is four no matter if verification is
enabled or not.

Fix the parameter check.

Provide a unit test.

Link: https://lore.kernel.org/r/20241102100836.103005-1-heinrich.schuchardt@canonical.com
2024-11-14 10:49:51 -06:00
Tom Rini
a45d823c02 Merge patch series "Apply SoM overlays on phyCORE-AM6xx SoMs"
Wadim Egorov <w.egorov@phytec.de> says:

Our SoMs are available in multiple configurations, managed via device
tree overlays. To determine the specific variant in use, we read the
EEPROM and apply the appropriate overlays during boot to the device tree
used by the OS.

Apply overlays for phyCORE-AM62x and phyCORE-AM64x SoMs.
Future K3 SoMs will be able to reuse this logic and overlays.

Link: https://lore.kernel.org/r/20241030164815.1763506-1-w.egorov@phytec.de
2024-11-14 10:49:51 -06:00
Heinrich Schuchardt
7dfafcd65e test: unit test for hash command
Provide a unit test testing the hash command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-14 10:49:24 -06:00
Heinrich Schuchardt
6831415e39 cmd: hash: correct parameter count check
Since commit 348ea87850 ("cmd: hash: fix param count check") the hash
command cannot be used without the optional variable name parameter if
CONFIG_HASH_VERIFY=y. 'hash sha1 $loadaddr $filesize' returns
CMD_RET_USAGE.

The minimum number of arguments is four no matter if verification is
enabled or not.

Fixes: 348ea87850 ("cmd: hash: fix param count check")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
2024-11-14 10:49:24 -06:00
Wadim Egorov
a687070664 board: phytec: common: k3: Apply SoM-specific overlays to OS device tree
Our SoMs are available in multiple configurations, managed via device
tree overlays. To determine the specific variant in use, we read the
EEPROM and apply the appropriate overlays during boot to the device tree
used by the OS.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Acked-by: Neha Malcom Francis <n-francis@ti.com>
2024-11-14 10:46:22 -06:00
Wadim Egorov
e09fabad2e arm: dts: k3-am642-phycore-som-binman: Add SoM overlays
Include SoM dt-overlays that handle variants of our SoMs into
u-boot's FIT image.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-11-14 10:46:22 -06:00
Wadim Egorov
9f57a5bad1 arm: dts: k3-am625-phycore-som-binman: Add SoM overlays
Include SoM dt-overlays that handle variants of our SoMs into
u-boot's FIT image.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-11-14 10:46:22 -06:00
Wadim Egorov
5476cc005c configs: phycore_am64x_a53_defconfig: Enable PHYTEC_SOM_DETECTION
Enable CONFIG_PHYTEC_SOM_DETECTION to apply SoM overlays
based on EEPROM configuration.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-11-14 10:46:22 -06:00
Wadim Egorov
cfb88eb272 configs: phycore_am64x_a53_defconfig: Add SoM overlays to OF_OVERLAY_LIST
Include SoM dt-overlays for DT control so we can include them
into our u-boot FIT image.
While at it also resync after savedefconfig.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-11-14 10:46:22 -06:00
Wadim Egorov
dc8a30a370 configs: phycore_am62x_a53_defconfig: Add SoM overlays to OF_OVERLAY_LIST
Include SoM dt-overlays for DT control so we can include them
into our u-boot FIT image.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-11-14 10:46:22 -06:00
Tom Rini
030ec147af Merge tag 'u-boot-amlogic-next-20241113' of https://source.denx.de/u-boot/custodians/u-boot-amlogic into next
- khadas-vim3{l}: fix userdata size for android config
- drop A1 dtsi and other bindings includes in favor of Upstream ones
2024-11-14 10:39:17 -06:00
Tom Rini
8573ea4105 Merge patch series "labgrid: Provide an integration with Labgrid"
Simon Glass <sjg@chromium.org> says:

Labgrid provides access to a hardware lab in an automated way. It is
possible to boot U-Boot on boards in the lab without physically touching
them. It relies on relays, USB UARTs and SD muxes, among other things.

By way of background, about 4 years ago I wrong a thing called Labman[1]
which allowed my lab of about 30 devices to be operated remotely, using
tbot for the console and build integration. While it worked OK and I
used it for many bisects, I didn't take it any further.

It turns out that there was already an existing program, called Labgrid,
which I did not know about at time (thank you Tom for telling me). It is
more rounded than Labman and has a number of advantages:

- does not need udev rules, mostly
- has several existing users who rely on it
- supports multiple machines exporting their devices

It lacks a 'lab check' feature and a few other things, but these can be
remedied.

On and off over the past several weeks I have been experimenting with
Labgrid. I have managed to create an initial U-Boot integration (this
series) by adding various features to Labgrid[2] and the U-Boot test
hooks.

I hope that this might inspire others to set up boards and run tests
automatically, rather than relying on infrequent, manual test. Perhaps
it may even be possible to have a number of labs available.

Included in the integration are a number of simple scripts which make it
easy to connect to boards and run tests:

ub-int <target>
    Build and boot on a target, starting an interactive session

ub-cli <target>
    Build and boot on a target, ensure U-Boot starts and provide an interactive
    session from there

ub-smoke <target>
    Smoke test U-Boot to check that it boots to a prompt on a target

ub-bisect <target>
    Bisect a git tree to locate a failure on a particular target

ub-pyt <target> <testspec>
    Run U-Boot pytests on a target

Some of these help to provide the same tbot[4] workflow which I have
relied on for several years, albeit much simpler versions.

The goal here is to create some sort of script which can collect
patches from the mailing list, apply them and test them on a selection
of boards. I suspect that script already exists, so please let me know
what you suggest.

I hope you find this interesting and take a look!

[1] https://github.com/sjg20/u-boot/tree/lab6a
[2] https://github.com/labgrid-project/labgrid/pull/1411
[3] https://github.com/sjg20/uboot-test-hooks/tree/labgrid
[4] https://tbot.tools/index.html

Link: https://lore.kernel.org/r/20241112141326.643128-1-sjg@chromium.org
[trini: Move the sjg-lab job to prior to world build, to fix pipeline
        status]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-13 16:39:19 -06:00
Tom Rini
aa482995a8 Merge patch series "test: Tidy up the test/ directory"
Simon Glass <sjg@chromium.org> says:

Some tests do not use the unit-test framework. Others are in a suite of
their own, for no obvious reason.

This series tidies this up.

Link: https://lore.kernel.org/r/20241102193715.432529-1-sjg@chromium.org
2024-11-13 16:02:58 -06:00
Simon Glass
a819845df7 sandbox: Add a build without CMDLINE
Sometimes this breaks, so add a build to keep it working. Since sandbox
enables a lot of options, it is a good board to use. The new config is
created simply by copying the existing sandbox and turning off CMDLINE

Once we have tests for non-CMDLINE operation, this can be adjusted to
run those tests.

Create a new build which will be picked up by CI. Update the maintainer
entry as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-13 16:02:58 -06:00
Simon Glass
1888b09671 CI: Allow running tests on sjg lab
Add a way to run tests on a real hardware lab. This is in the very early
experimental stages. There are only 23 boards and 3 of those are broken!
(bob, ff3399, samus). A fourth fails due to problems with the TPM tests.

To try this, assuming you have gitlab access, set SJG_LAB=1, e.g.:

   git push -o ci.variable="SJG_LAB=1" dm HEAD:try

This relies on the two previous series targeted at -next as well as the
bugfix series for -master

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2024-11-13 12:01:35 -06:00
Simon Glass
5e92fbcefc test: Correct regex string in test_spi
Use an 'r' string to avoid a warning:

  test/py/tests/test_spi.py:698: DeprecationWarning: invalid escape
     sequence '\s'

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
8f2a9fa7d6 test: Support testing with two board-builds
The Beagleplay board uses an SoC from the TI K3 family. This has both a
Cortex-R core and a Cortex-A core and the R core needs to come up before
the A core. In both cases we have U-Boot SPL then U-Boot proper being
used.

In practice this means we need two entirely separate builds to produce
an image.

Handle this in test.py by adding more parameters.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
6d0ff32650 test: Add a section for closing the connection
This can take a while and involve multiple steps (e.g. turning the board
back off). Add a section for it and show the output.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-13 12:01:35 -06:00
Simon Glass
082f3359c7 test: Try to shut down the lab console gracefully
Send the Labgrid quit characters to ask it to exit gracefully. This
typically allows it to power off the board being used. Only do this when
labgrid is being used (detected with an env var).

If that doesn't work, try the less graceful approach.

The normal approach for pytest is to simply kill the child process. This
makes Labgrid exit immediately. Thus it does not get a chance to execute
the 'off' part of strategy (which may power it off) and release the
device.

Without this, every board disconnect leaves the board in a bad state,
requiring separate steps to recover the board, then power it off.

The action is conditional on since USE_LABGRID_SJG being set, so only
affects operation if the Labgrid-sjg integration is being used.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
5825ddccc6 test: Avoid double echo when starting up
There is a very annoying bug at present where the terminal echos part
of the first command sent to the board. This happens because the
terminal is still set to echo for a period until Labgrid starts up and
can change this.

Fix this by disabling echo (and other terminal features) as soon as the
spawn happens.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
f32951df40 test: Improve handling of sending commands
We expect commands to be echoed and this should happen quite quickly,
since U-Boot is sitting at the prompt waiting for a command.

Reduce the timeout for this situation. Try to produce a more useful
error message when something goes wrong. Also handle the case where the
connection has gone away since the last command was issued.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
8308a5eed6 test: Introduce lab mode
There is quite a bit of code in pytest to try to start up U-Boot on a
board, with timeouts, expects, etc.

This is tedious to maintain and is peripheral to the test system's
purpose. It seems better to put this logic in the lab itself, where is
can provide such support.

With Labgrid we can use the UbootStrategy class to get the board into a
useful state, however it needs to do it. Then it can report to pytest
by writing a suitable string along with the U-Boot version it detected.

Add support for detecting 'lab mode' and simply assume that all is well
in that case. Collect the version string when Labgrid says it is ready.

This is only used with the Labgrid-sjg integration. When Labgrid starts
the UbootStrategy it checks if U_BOOT_SOURCE_DIR is set. If so it emits
a string '{lab mode}' that tells test.py to simply wait for an
indication that the board is ready. All banner-checking is skipped. The
indication comes in the form of another string 'Lab: Board is ready'
which Labgrid sends once the board is sitting at a prompt ready to run
tests. Then test.py emits 'U-Boot is ready' and continues with testing.

Note that Labgrid has the same kind of "check for a string" logic that
is in test.py, except it's not caring about the correct number / order
of banner prints. This checking could be added, however. If something
fails, the complete output is shown, so it is possible to see what went
wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
bf89a8f1fc test: Introduce the concept of a role
In Labgrid there is the concept of a 'role', which is similar to the
U-Boot board ID in U-Boot's pytest subsystem.

The role indicates both the target and information about the U-Boot
build to use. It can also provide any amount of other configuration.
The information is obtained using the 'labgrid-client query' operation.

Using this role, all required configuration for the board is stored
within the Labgrid environment, with pytest simply querying it. This
allows connecting to boards using an interactive console, something that
isn't possible without some kind of mapping. It also means that we don't
need to replicate the pytest functionality in tbot, since Labgrid can
handle the console and kick off builds as needed.

Make use of this in tests, so that only the role is required in gitlab
and other situations. The board type and other things can be queried
as needed.

Use a new 'u-boot-test-getrole' script to obtain the requested
information.

With this it is possible to run lab tests in gitlab with just a single
'ROLE' variable for each board.

Note that, without this feature:
- interactive use of boards with Labgrid-sjg would require repeating the
  id/board in a separate configuration file
- Gitlab yaml file would need to specify both the id and board

This feature is entirely optional, however, with the code gracefully
falling back to using a separate ID and board.

Link: https://tbot.tools

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
6f3583074f test: Allow connecting to a running board
Sometimes we know that the board is already running the right software,
so provide an option to allow running of tests directly, without first
resetting the board.

This saves time when re-running a test where only the Python code is
changing.

Note that this feature is open to errors, since the user must know that
the board is in a fit state to execute tests. It is useful for repeated
iteration on a particular test, where it can save quite a bit of time.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
530c694c45 test: Release board after tests complete
When a board is finished with, the lab may want to power it off, or
perform some other function. Add a new script which is called when tests
are complete.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-13 12:01:35 -06:00
Simon Glass
8344038a93 test: Allow signaling that U-Boot is ready
When Labgrid is used, it can get U-Boot ready for running tests. It
prints a message when it has done so.

Add logic to detect this message and accept it.

Note that this does not change pytest, which still (also) looks for the
U-Boot banner. This change merely makes it possible for pytest to
believe Labgrid when it says that the board is ready for use.

In several cases, the board starts up and Labgrid receives some initial
output, then pytest starts and misses some of that output, because it
came in while Labgrid had the console open. Then pytest fails because
it doesn't see the expected banners.

With this change, Labgrid handles getting U-Boot to a prompt, in a
fully reliable manner. Then pytest starts up and can simply start
running its tests.

But, again, this does not prevent pytest from handling a banner if one
is provided (e.g. if not using the Labgrid integration).

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-13 12:01:35 -06:00
Simon Glass
c63f4e40f1 test: Quote test names
When mentioning a test name, add single quotes to make it easier to see.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
4f570b36aa test: Correct display of failing test
This should show the test name, not the selected name, since the user
may be running all tests, in which case 'select_name' is NULL

Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
88db4fc5fe test: Update time tests to use unit-test asserts
Rather than returning various error codes, use assertions to check that
the test passes.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
dd0057dacb test: Move time tests into the lib suite
There is no particular need for the time tests to have their own test
command. Move them into the lib suite instead.

Update the test functions to match the normal unit-test signature.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
890d91ff35 test: Move time_ut test into lib
This test doesn't belong at the top level. Move it into the lib/
directory, to match its implementation. Rename it to drop the
unnecessary _ut suffix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
5912a9ea1a test: Move unicode tests into the lib suite
There is no particular need for the unicode tests to have their own test
suite. Move them into the lib suite instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
7a27d4187a test: Move unicode_ut test into lib
This test doesn't belong at the top level. Move it into the lib/
directory, to match its implementation. Rename it to drop the
unnecessary _ut suffix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
4563fb42f8 str: test: Move into the lib suite
There is no particular need for the str tests to have their own test
suite. Move them into the lib suite instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:02 -06:00
Simon Glass
2352526362 test: Move str_ut test into lib
This test doesn't belong at the top level. Move it into the lib/
directory, to match (most of) its implementation. Rename it to drop the
unnecessary _ut suffix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
33ca12b233 test: Move print_ut into the common suite
There is no particular need for bloblist to have its own test suite.
Move it into the common suite instead.

Add the missing help for 'common'.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
479b389c3d test: Move print_ut test into common
This test doesn't belong at the top level. Move it into the common/
directory, to match its implementation. Rename it to drop the
unnecessary _ut suffix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
7f8b8c5abc bootm: test: Move test into boot
This test doesn't belong at the top level. Move it into the boot/
directory, to match its implementation.

This test is currently dependent on bloblist, but the real dependency is
on sandbox, so update that.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
ee3c8698e0 test: Update command test to use unit-test functions
Rather than enabled DEBUG and using assert(), use the unit-test
functions now provided.

Drop a check that causes pytest to fail.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
c25b35b6c6 command: test: Move into the cmd suite
The command test was the very first test written in U-Boot, some 12
years ago. It predates the unit-test subsystem and was never converted
over.

There is no particular need for the command test to have its own
command. It is also confusing to have it separate from the normal test
suites. At present this test is not run in CI.

Move it into the cmd suite instead, updating it to become a unit test.
One of the checks is dropped to avoid an error.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
a6165509f2 command_ut: test: Move test into lib
This test doesn't belong at the top level. Move it into the lib/
directory, since that is where compression is implemented.

Rename it to just 'command', since it is obviously a unit test and the
_ut suffix does not add much except to make it different from the names
of other test files.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
5cf39254e3 compression: test: Move into the lib suite
There is no particular need for compression to have its own test suite.
Move it into the lib suite instead.

Add the missing help for 'common' and update the docs.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
e67cc4ba1f compression: test: Move test into lib
This test doesn't belong at the top level. Move it into the lib/
directory, since that is where compression is implemented.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
a5896b8a3e test: Drop test-trace.sh and common.sh
The trace feature is now tested in CI so there is no need for these old
script. Also they don't work. Drop them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
692ed744ba bloblist: test: Drop global_data declarations
This pointer is not used any more, so drop the declarations.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Simon Glass
82e6d79d9e bloblist: test: Move test into common
This test doesn't belong at the top level. Move it into the common/
directory, to match its implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com> # rpi_3, rpi_4, rpi_arm64, am64x_evm_a53, am64-sk
2024-11-13 11:56:01 -06:00
Alexey Romanov
1cdb4e03e6 dt-bindings: interrupt-controller: remove arm-gic.h from include/
We have exactly the same in upstream bindings.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Link: https://lore.kernel.org/r/20241112125836.3239832-5-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-13 17:25:07 +01:00
Alexey Romanov
827edb6c00 dt-bindings: remove axg bindings from include/
We have exactly the same in upstream bindings.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Link: https://lore.kernel.org/r/20241112125836.3239832-4-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-13 17:25:07 +01:00
Alexey Romanov
a5ed242ba6 dt-bindings: remove a1 bindings from include/
We have exactly the same in upstream bindings.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Link: https://lore.kernel.org/r/20241112125836.3239832-3-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-13 17:25:07 +01:00
Alexey Romanov
ea2273911d arm: dts: meson: remove meson-a1.dtsi
For Amlogic A1, we have to use dtsi from dts/upstream folder.
The only difference between this two files is the added cpu temperature
node definition in upstream version and additional assigned-clock for
USB. This patch is tested on a device with A113L SoC (AD401-like) and
everything is okay.

So, we can remove legacy arch/arm/dts/meson-a1.dtsi file.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Link: https://lore.kernel.org/r/20241112125836.3239832-2-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-13 17:25:07 +01:00
Heinrich Schuchardt
9084e1b1b9 fs: ext4: correct error handling
After calling strdup() check the returned pointer.

Avoid a memory leak if the directory is not found.

Reported-by: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
Fixes: 22fdac381f ("fs: ext4: implement opendir, readdir, closedir")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-13 08:18:50 -06:00
Simon Glass
bbc3d12516 Makefile: Fake external blob with BINMAN_ALLOW_MISSING=1
This flag was lost by a previous change and has never been restored.
Without it, binman cannot fully handle missing blobs which are
themselves inputs to mkimage.

Discussion on this at [1] indicated that this was necessary but the
patch was not updated.

Restore the flag so that all missing blobs are reported.

Link: https://patchwork.ozlabs.org/project/uboot/patch/20221206020336.315465-1-trini@konsulko.com/

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 93685d0dcb ("Makefile: With BINMAN_ALLOW_MISSING=1 don't error")
2024-11-13 08:18:31 -06:00
Heinrich Schuchardt
3147f00f7a board: qemu-arm: select CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR
qemu_arm64_defconfig with CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=n leads to a
build error:

    arch/arm/lib/crt0_64.S:85:
    Error: constant expression expected at operand 2 --
    `ldr x0,=((CFG_SYS_INIT_RAM_ADDR+CFG_SYS_INIT_RAM_SIZE-480))'

We do not define CFG_SYS_INIT_RAM_ADDR and CFG_SYS_INIT_RAM_SIZE for QEMU.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-13 08:18:20 -06:00
Heinrich Schuchardt
e6b937f35e test: run longjmp() test only on supported architectures
We have only implemented longjmp() on the EFI architectures.

Define a symbol CONFIG_HAVE_SETJMP and have it selected by the relevant
architectures.

Use CONFIG_HAVE_SETJMP to decide if the longjmp test shall be built.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-13 08:16:47 -06:00
Heinrich Schuchardt
1cfafff319 lib: vsprintf: fix API build
Avoid a build failure when building with CONFIG_API=y, CONFIG_EXAMPLES=y:

    lib/vsprintf.c:312:14: warning:
    ‘device_path_string’ defined but not used [-Wunused-function]
     312 | static char *device_path_string(char *buf, char *end, void *dp, int field_width,
         |              ^~~~~~~~~~~~~~~~~~

Fixes: 64b5ba4d29 ("efi_loader: make device path to text protocol customizable")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-13 08:16:41 -06:00
Tom Rini
9d49c73862 Merge patch series "lib: uuid: fix uuid_str_to_le_bin() on 32-bit"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

The lib_test_uuid_to_le and lib lib_test_dynamic_uuid tests fail on
32-bit systems. But we never caught this in our CI because we never
ran any of our C unit tests on 32-bit.

Enable CONFIG_UNIT_TEST on qemu_arm_defconfig.

hextoul() cannot convert a string to a 64-bit number on a 32-bit system.
Use the new function hextoull() instead.

Link: https://lore.kernel.org/r/20241103224223.195255-1-heinrich.schuchardt@canonical.com
2024-11-13 08:14:29 -06:00
Heinrich Schuchardt
37587d2e14 configs: enable UNIT_TEST on qemu_arm_defconfig
The lib_test_uuid_to_le test fails on 32-bit systems. But we never caught
this in our CI because we never ran any of our C unit tests on 32-bit.

Enable CONFIG_UNIT_TEST on qemu_arm_defconfig.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-13 08:14:23 -06:00
Heinrich Schuchardt
6a2664b126 lib: uuid: fix uuid_str_to_bin() on 32-bit
hextoul() cannot convert a string to a 64-bit number on a 32-bit system.
Use function hextoull() instead.

Reported-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Fixes: 22c48a92cd ("lib: uuid: supporting building as part of host tools")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-13 08:14:23 -06:00
Heinrich Schuchardt
e5a0cb3eb3 lib: uuid: fix uuid_str_to_le_bin() on 32-bit
hextoul() cannot convert a string to a 64-bit number on a 32-bit system.
Use function hextoull() instead.

Reported-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Fixes: 22c48a92cd ("lib: uuid: supporting building as part of host tools")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Tested-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-13 08:14:23 -06:00
Heinrich Schuchardt
8ff37ec010 lib: provide function hextoull()
We often convert hexadecimal strings to hextoull(). Provide a wrapper
function to simple_strtoull() that does not require specifying the radix.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-13 08:14:23 -06:00
Tom Rini
b30787ad24 Merge patch series "Enable https for wget"
Ilias Apalodimas <ilias.apalodimas@linaro.org> says:

Hi all,

This is a respin of [1] adding https support to wget. In short

patch#1 enables the crypto algorithms we need in mbedTLS
patches#2, #3 enable anf fix the lwIP part we need
patch#4 is adding https:// parsing support in our wget
patch#5 is making https:// the default for QEMU lwip defconfig so
people can easily test
and finaly patch#6 updates our documentation

[1] https://lore.kernel.org/u-boot/20241024112449.1362319-1-ilias.apalodimas@linaro.org/

Link: https://lore.kernel.org/r/20241110083017.367565-1-ilias.apalodimas@linaro.org
2024-11-12 19:10:01 -06:00
Ilias Apalodimas
5907c81647 net: lwip: Enable https:// support for wget
With the recent changes of lwip & mbedTLS we can now download from
https:// urls instead of just http://.
Adjust our wget lwip version parsing to support both URLs.
While at it adjust the default TCP window for QEMU since https seems to
require at least 16384

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-11-12 19:09:52 -06:00
Ilias Apalodimas
99649c6757 doc: uefi: Describe UEFI HTTPs boot
We now can use a combination og lwIP & mbedTLS and download from
https://. Describe the config options needed to enable it as well
as some limitations

Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-12 19:09:52 -06:00
Javier Tia
1f444e915e net: lwip: Add Support Server Name Indication support
SNI, or Server Name Indication, is an addition to the TLS encryption
protocol that enables a client device to specify the domain name it is
trying to reach in the first step of the TLS handshake, preventing
common name mismatch errors and not reaching to HTTPS server that
enforce this condition. Since most of the websites require it nowadays
add support for it.

It's worth noting that this is already sent to lwIP [0]

[0] https://github.com/lwip-tcpip/lwip/pull/47

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-12 19:09:52 -06:00
Ilias Apalodimas
d9c4ee3838 configs: Enable https for wget on qemu arm64
QEMU already has an lwip variant of a defconfig. That defconfig
is also configured with mbedTLS by default. So let's enable the
remaining config options to enable wget for https:// as well
and test that codepath in the CI

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-12 19:09:52 -06:00
Javier Tia
514f18f8dc net: lwip: Update lwIP for mbedTLS > 3.0 support and enable https
The current code support mbedTLS 2.28. Since we are using a newer
version in U-Boot, update the necessary accessors and the lwIP codebase
to work with mbedTLS 3.6.0. It's worth noting that the patches are
already sent to lwIP [0]

While at it enable LWIP_ALTCP_TLS and enable TLS support in lwIP

[0] https://github.com/lwip-tcpip/lwip/pull/47

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-12 19:09:52 -06:00
Ilias Apalodimas
a564f5094f mbedtls: Enable TLS 1.2 support
Since lwIP and mbedTLS have been merged we can tweak the config options
and enable TLS1.2 support. Add RSA and ECDSA by default and enable
enough block cipher modes of operation to be comatible with modern
TLS requirements and webservers

Reviewed-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-12 19:09:52 -06:00
Jerome Forissier
385af1b898 net: wget: drop Content-Length processing
We don't do anything with Content-Length except a debug print, and the
strict_strtoul() call is incorrect (it always returns -EINVAL and leaves
content_length to zero due to the presence of trailing characters after
the decimal valuoe of Content-Length). So let's just drop this piece of
code.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-11-12 19:08:57 -06:00
Tom Rini
867e16ae05 configs: Resync with savedefconfig
Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-12 15:00:36 -06:00
Tom Rini
9f538624fc Merge tag 'u-boot-stm32-20241112' of https://source.denx.de/u-boot/custodians/u-boot-stm
CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/23296

- Deduplicate DH STM32MP1xx DHSOM and DHCOR defconfigs
- Fixes STM32MP1xx DHSOM and DHCOR device trees
- Add support of manufacturing environment to STM32MP15xx DHSOM
2024-11-12 13:40:29 -06:00
Marek Vasut
f9cfc47a83 ARM: stm32: Add optional manufacturing environment to DH STM32MP15xx DHSOM
Add manufacturing environment into STM32MP15xx DH electronics DHSOM
configuration. This environment is part of every board build, but only
takes effect on systems booted with the dh,stm32mp15xx-dhcor-testbench
device tree, i.e. systems populated with factory build of U-Boot.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 15:18:10 +01:00
Marek Vasut
0841716fdc ARM: stm32: Deduplicate DH STM32MP1xx DHSOM defconfigs
Deduplicate defconfigs for all DH STM32MP1xx DHSOM systems by factoring
out the common parts into generic stm32mp_dhsom.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all DH STM32MP1xx DHSOM systems.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 14:18:43 +01:00
Marek Vasut
aa33518eb3 ARM: stm32: Deduplicate DH STM32MP15xx DHSOM defconfigs
Deduplicate defconfigs for all DH STM32MP15xx DHSOM systems by factoring
out the common parts into generic stm32mp15_dhsom.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all DH STM32MP15xx DHSOM systems.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 14:18:43 +01:00
Marek Vasut
3cd3e0aa06 ARM: dts: stm32: Sort DH STM32 DHCOM DTSI
Sort the DTSI alphabetically. No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 14:18:35 +01:00
Marek Vasut
2e5ebcfa6b ARM: dts: stm32: Drop duplicate pinmux on DH STM32 DHCOM
The ethernet0_rmii_pins_a pinmux change has no effect on any
DHSOM based hardware. The mco2_pins_a and mco2_sleep_pins_a
are both part of stm32mp15-pinctrl.dtsi . Drop both pinmux
changes.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 14:09:09 +01:00
Marek Vasut
635e9483c8 ARM: dts: stm32: Drop remnants of upstream DT switch on DH STM32 DHSOM
Remove unused local DT copies after the OF_UPSTREAM conversion.

Fixes: cccb29fc12 ("ARM: dts: stm32: Switch to using upstream DT on DH STM32 DHSOM")
Reported-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-11-12 12:57:36 +01:00
Saeed Nowshadi
7aeed221db arm64: zynqmp: Fix pwm-fan polarity
In previous version of pwm driver, the polarity of pwm were implemented
in reverse.  In recent release, that issue in the driver is fixed,
therefore, correctly set the polarity in the device tree.

Signed-off-by: Saeed Nowshadi <saeed.nowshadi@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/3e8e38b77101335f86bca0f05b3988877bb12993.1729766551.git.michal.simek@amd.com
2024-11-12 09:01:46 +01:00
Michal Simek
4de127a44a arm64: zynqmp: Configure SoC RTC on SOM
Use RTC available in HW on Kria SOM without using emulation that's why
configure it properly and disable emulated one.
Power on reset value of RTC Calibration register without battery backup is
not matching with crystal frequency which leads to RTC time drift. That's
why write CALIB_WRITE register with crystal frequency (0x7FFF). There is
also an option to write zero so that Linux will set default value (0x7FFF)
in driver probe but calibration 0 is not permited by DT schema.

Co-developed-by: Srinivas Goud <srinivas.goud@amd.com>
Signed-off-by: Srinivas Goud <srinivas.goud@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9b684faeec85381b9b8fe796aaebc2ee79f17b8e.1729663761.git.michal.simek@amd.com
2024-11-12 09:01:46 +01:00
Tom Rini
cca05617a8 Prepare v2025.01-rc2
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-11 10:07:36 -06:00
Tom Rini
48fd7e9699 Merge patch series "Fix IOVA allocation in Apple dart iommu after global LMB mem map changes"
Janne Grunau <j@jannau.net> says:

The changes in "Make LMB memory map global and persistent" [1] break
mapping DMA memory in the USB xHCI driver when using the apple_dart
iommu present on Apple silicon systems.

The IOVA space used by the u-boot driver (low 4GB) and physical memory
do not overlap. The physical memory on this systems starts depending on
the SoC either at 0x10_0000_0000 or 0x100_0000_0000. It make no sense to
manage these distinct regions in a single LMB map. In addition every
device has its own iommu and IO address space so sharing a single memory
map between all iommu instances is not necessary.

To fix this issue restore the used subset (add, alloc and free) of the
previous pointer based LMB interface with "io_" as prefix.

To ensure that low level lmb functions do not use the global LMB
variable reorder lib/lmb.c so that the variable is not visible.

Tested with patches from my "Fix device removal order for Apple dart
iommu" series [2] to fix a separate issue.

The cosmetic commit has two checkpatch warnings in existing code which I
ignored.

[1] https://lore.kernel.org/u-boot/20240826115940.3233167-1-sughosh.ganu@linaro.org/
[2] https://lore.kernel.org/u-boot/20241031-iommu_apple_dart_ordering-v1-0-8a6877946d6b@jannau.net/

Link: https://lore.kernel.org/r/20241111-io_lmb_apple_dart_iommu-v3-0-32c05da51d72@jannau.net
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-11 09:11:55 -06:00
Janne Grunau
f642f34434 iommu: apple: Manage IOVA separately from global LMB mem map
There is no overlap between the IOVA space managed by the iommu (here
the 32-bit address space) and physical RAM on Apple silicon systems. The
RAM starts at 0x10_0000_0000 or 0x100_0000_0000 so it's not possible to
manage the IOVA with the global memory LMB and use 1:1 translation.
In addition each device has its own iommu and does not need to share the
address space with all other devices. This should not be problem for
u-boot's limited use and hardware support.
Restore the private per instance LMB IOVA map.

Fixes: ed17a33fed ("lmb: make LMB memory map persistent and global")
Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11 07:26:44 -06:00
Janne Grunau
f6999cb554 lmb: Add basic io_lmb functionality
These functions can be used with struct lmb pointers and will be used to
manage IOVA space in the apple_dart iommu driver. This restores part of
the pointer base struct lmb API from before commit ed17a33fed ("lmb:
make LMB memory map persistent and global").
io_lmb_add() and io_lmb_free() can trivially reuse exisiting lmb
functions. io_lmb_setup() is separate for unique error log messages.
io_lmb_alloc() is a simplified copy of _lmb_alloc_base() since the
later has unused features and internal use of the global LMB memory map.

Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11 07:26:44 -06:00
Janne Grunau
174f53d2f2 lmb: cosmetic: reorder functions and global LMB variable
Low lovel LMB functionality will be used to manage IOVA space in the
Apple dart iommu driver. This reordering ensures that those function
can not access the global LMB memory map variable.

Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11 07:26:44 -06:00
Janne Grunau
408b4ae8e3 lmb: Do not use global LMB variable in _lmb_free()
It will be re-used with a lmb list pointer as argument for IOVA
allocations in the apple_dart iommu driver.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Janne Grunau <j@jannau.net>
2024-11-11 07:26:44 -06:00
Tom Rini
fdcf06d58d Merge tag 'u-boot-rockchip-20241111' of https://source.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/23280

- Add board:
        rk3328: FriendlyElec NanoPi R2S Plus
        rk3568: Qnap TS433
        rk3588: Cool Pi CM5 GenBook
- Move rk3399_force_power_on_reset to TPL for puma board;
2024-11-11 07:25:25 -06:00
Quentin Schulz
0a17123ded rockchip: rk3399: move sysreset-gpio logic to TPL
If TPL_GPIO and TPL_PINCTRL_ROCKCHIP are enabled and a sysreset-gpio is
provided in the TPL Device Tree, this will trigger a system reset
similar to what's currently been done in SPL whenever the RK3399 "warm"
boots. Because there's currently only one user of sysreset-gpio logic,
and TPL is enabled on that board, so let's migrate the logic and that
board to do it in TPL.

There are three reasons for moving this earlier:
- faster boot time as we don't need to reach SPL to be able to reset the
  system on a condition we know is already met in TPL,
- have less code to be impacted by the issue this system reset works
  around (that is, "unclean" SoC registers after a reboot),
- less confusion around the reason for restarting. Indeed when done from
  SPL, the following log can be observed:

"""
U-Boot TPL 2025.01-rc1-00165-gd79216ca9878-dirty (Nov 05 2024 - 15:31:45)
Channel 0: DDR3, 666MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=2048MB
Channel 1: DDR3, 666MHz
BW=32 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=2048MB
256B stride
Trying to boot from BOOTROM
Returning to boot ROM...

U-Boot SPL 2025.01-rc1-00165-gd79216ca9878-dirty (Nov 05 2024 - 15:31:45 +0100)
Trying to boot from MMC2

U-Boot TPL 2025.01-rc1-00165-gd79216ca9878-dirty (Nov 05 2024 - 15:31:45)
"""

possibly hinting at an issue within the SPL when loading the fitImage
from MMC2 instead of the normal course of events (a system reset).

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:15 +08:00
Quentin Schulz
7461d55ca7 rockchip: tpl: allow to call board/SoC-specific code before DRAM init
This defines a weak tpl_board_init function that can be used for running
board/SoC-specific code before the DRAM init happens, similarly to
spl_board_init() for SPL.

Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:15 +08:00
Quentin Schulz
b21fd44c84 rockchip: rk3399: merge CRU check within rk3399_force_power_on_reset
To prepare to support forcing power on reset from TPL which would have
the exact same logic, just in an earlier stage, let's merge the CRU
check that triggers the power on reset with the rest of the logic.

Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Quentin Schulz
5bc65f5cab pinctrl: rockchip: allow to build for TPL
A later commit will make use of the pinctrl driver in TPL so let's add
the ability to build the Rockchip pinctrl driver in TPL.

Reviewed-by: Paul Kocialkowski <paulk@sys-base.io>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Jonas Karlman
0bf38a8aa2 rockchip: rk35xx-generic: Disable late boardinfo
Disable DISPLAY_BOARDINFO_LATE as the early boardinfo print of Model
should be enough.

  U-Boot 2025.01-rc1 (Nov 02 2024 - 16:04:16 +0000)

  Model: Generic RK3566/RK3568
  DRAM:  8 GiB (effective 7.7 GiB)
  Core:  250 devices, 24 uclasses, devicetree: separate
  MMC:   mmc@fe2b0000: 1, mmc@fe310000: 0
  Loading Environment from nowhere... OK
  In:    serial@fe660000
  Out:   serial@fe660000
  Err:   serial@fe660000
  Model: Generic RK3566/RK3568
  Hit any key to stop autoboot:  0
  =>

Enable CMD_MISC to make it easier to inspect data in OTP.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Jonas Karlman
3133b7c645 board: rockchip: Add FriendlyElec NanoPi R2S Plus
The FriendlyElec NanoPi R2S Plus is a single-board computer based on
Rockchip RK3328 SoC. It features e.g. 1 GB DDR4 RAM, 32 GB eMMC,
SD-card, 2x GbE LAN, optional M.2 SDIO Wi-Fi and 2x USB 2.0 host.

Features tested on a NanoPi R2S Plus 2309:
- SD-card boot
- eMMC boot
- Ethernet
- USB gadget
- USB host

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Sergey Bostandzhyan
d6a55cc9e7 arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus
The R2S Plus is basically an R2S with additional eMMC.

The eMMC configuration for the DTS has been extracted and copied from
rk3328-nanopi-r2.dts, v2017.09 branch from the friendlyarm/uboot-rockchip
repository.

Signed-off-by: Sergey Bostandzhyan <jin@mediatomb.cc>
Link: https://lore.kernel.org/r/20240814170048.23816-2-jin@mediatomb.cc
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: b8c02878292200ebb5b4a8cfc9dbf227327908bd ]

(cherry picked from commit c9bf98827964441f4dd16faa45bd4046f472e693)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Andy Yan
dfcd4afd4c board: rockchip: Add support for rk3588 GenBook
Add support for Cool Pi GenBook, it works as a carrier board
connect with CM5 SOM.

Specification:
- Rockchip RK3588
- LPDDR5X 8/32 GB
- eMMC 64 GB
- HDMI Type A out x 1
- USB 3.0 Host x 1
- USB-C 3.0 with DisplayPort AltMode
- PCIE M.2 E Key for RTL8852BE Wireless connection
- PCIE M.2 M Key for NVME connection
- eDP panel with 1920x1080

Tested by Armbian boot on USB disk.

Change-Id: I4d9b8572dc7c400077dde666633f3fea1b47dd03
Signed-off-by: Andy Yan <andyshrk@163.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Andy Yan
3126a63c8d rockchip: Make it possible to define per board boot_targets
Some board may want to have a different boot priority(a laptop
may want to usb has the highest boot priority for third-part
os installation). So let the board can define it's own
boot_targets.

Signed-off-by: Andy Yan <andyshrk@163.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Andy Yan
82f9074c43 arm64: dts: rockchip: Add support for rk3588 based Cool Pi CM5 GenBook
Cool Pi CM5 GenBook works as a carrier board connect with CM5 [0].

Specification:
- Rockchip RK3588
- LPDDR5X 8/32 GB
- eMMC 64 GB
- HDMI Type A out x 1
- USB 3.0 Host x 1
- USB-C 3.0 with DisplayPort AltMode
- PCIE M.2 E Key for RTL8852BE Wireless connection
- PCIE M.2 M Key for NVME connection
- eDP panel with 1920x1080

This patch add basic support to bringup eMMC/USB HOST/WiFi/TouchPad/
Battery/PCIE NVME, and can also drive a HDMI output with out of tree
hdmi patches.

[0] https://www.crowdsupply.com/shenzhen-tianmao-technology-co-ltd/genbook-rk3588

Signed-off-by: Andy Yan <andyshrk@163.com>
Link: https://lore.kernel.org/r/20240730102433.540260-3-andyshrk@163.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 4a8c1161b843c366776fc872a6fe45b743b2983e ]

(cherry picked from commit dc6316da23734d9321e09f8c8a7669f4b4cb9f75)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Heiko Stuebner
d3cacb79e7 board: rockchip: add support for Qnap TS433 devices
The Qnap TS433 is a 4-bay NAS based around the RK3568.

Two SATA bays are connected to the RK3568's own SATA controllers while
the other two are connected to a JMicron SATA controller living on the
PCIe bus.

It provides one 2.5Gb and one 1Gb ethernet port as well as 3 usb ports.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-11 15:14:14 +08:00
Tom Rini
446a30d2a0 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2024-11-10 20:22:39 -06:00
Marek Vasut
24b28ffc40 mtd: spi-nor: Fix integer overflow in stacked memories support
The 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
adds new SPI bus flags, but also introduces a completely new set of
SPI bus flags in another location. The existing flags field is type
u8, while the new separate flags are BIT(8) and higher. Use of those
new flags triggers integer overflow.

Drop the newly introduced flags which were never used anywhere in the
code. Move the one remaining flag which was used in the correct place
and change it from BIT(8) to BIT(6) so it fits the u8 flags.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Addresses-Coverity-ID: 510804 Extra high-order bits
Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-11-10 20:21:07 -06:00
Lad Prabhakar
5fb5ed2f78 board: hoperun: Switch to use complete DTS files from upstream DTS
For upstream Linux kernel we use below DTBs for HiHope boards:
- r8a774a1-hihope-rzg2m-ex.dtb
- r8a774e1-hihope-rzg2h-ex.dtb
- r8a774b1-hihope-rzg2n-ex.dtb

Update the CONFIG_OF_LIST to match the above. Now that we have switched
upstream DTS, drop deleting the nodes and also rename the
r8a774*-u-boot.dtsi files to r8a774*-ex-u-boot.dtsi to match the OF_LIST
files so that the `bootph-all` property gets applied to required nodes
in upstream DTS.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: Chris Paterson <chris.paterson2@renesas.com>
2024-11-10 19:38:46 +01:00
Chris Paterson
34547a44da configs: hihope_rzg2: Set correct MMC device for U-Boot env
Currently we set CONFIG_SYS_MMC_ENV_DEV=1 which is wrong:
  Loading Environment from MMC... MMC: no card present
  *** Warning - No block device, using default environment

This issue was introduced when we switched to using upstream Linux device
trees for the hihope boards which named the MMC devices differently.

Correct to dev 0 so that the U-Boot environment can be loaded from the
correct storage device.

Fixes: 18fb23b131 ("ARM: dts: renesas: Switch to using upstream DT on 64bit Renesas SoCs")

Signed-off-by: Chris Paterson <chris.paterson2@renesas.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
2024-11-10 19:38:46 +01:00
Paul Barker
9d81a9ff99 arm: renesas: Fix RZ/G2L GICR base address
When support for the Renesas RZ/G2L SoC was added, the GICR base address
for CPU1 was accidentally used. We should instead supply the GICR base
address for CPU0 so that interrupts are correctly configured for the
CPU core that U-Boot is actually using.

Fixes: 387d4275ab ("arm: rmobile: Add basic RZ/G2L family support")
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-11-10 19:36:54 +01:00
Paul Barker
2badc6529b dt-bindings: Drop unused RZ/G2L devicetree bindings
We are now using the dts/upstream subtree for the RZ/G2L SoC family so
we can drop unused dt-bindings headers.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-10 19:36:39 +01:00
Paul Barker
db3b17db5c ARM: dts: Drop unused RZ/G2L devicetrees
We are now using the dts/upstream subtree for the RZ/G2L SoC family so
we can drop unused devicetree files from arch/arm/dts.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-10 19:36:38 +01:00
Paul Barker
7edcc241f3 board: rzg2l: Update MAINTAINERS file to match dts/upstream paths
We are now using the dts/upstream subtree for the RZ/G2L SoC family, so
update the board MAINTAINERS file to match rz-smarc dtsi files in this
subtree.

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-10 19:36:29 +01:00
Tom Rini
9c25cd5631 Merge tag 'u-boot-imx-master-20241105' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23262

- Improve imx9 boot medium autodection.
- Add possibility to skip DCD on i.MX8.
- Switch to using upstream DT on DH i.MX6 DHCOM.
- Add support for i.MX6DL DHCOM SoM on PDK2 carrier board.
- Handle FIELD_RETURN on i.MX HAB.
2024-11-09 11:26:14 -06:00
Tom Rini
f448c4517b Merge tag 'efi-2025-01-rc2-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-01-rc2-2

Documentation:

* correct title and author of rst2pdf generated pdf
* describe CONFIG_DEBUG_SBI_CONSOLE
* remove vile language

UEFI

* correct printf codes in mkeficapsule
* add an EFI test app
* move default filename to a function
* move get_efi_pxe_arch() to efi_helper
* allow reporting the host defaults in efidebug
* drop sandbox PXE architecture

Other:

* do not reserve extra 16 KiB of stack in lmb
* disable the sandbox virtio blk device
* provide -N command line flag to control EFI default boot file name
  on the sandbox
* provide a unit test for the efi bootmeth
2024-11-09 08:05:41 -06:00
Ian Ray
28958998f6 arm: mach-imx: imx8m: re-use SNVS init routine
Working with HAB on the i.MX8MP we've encountered a case where a board
that successfully authenticates u-boot when booting Linux subsequently
fails to properly bring up the RTC.

The RTC registers live in the low-power block of the Secure Non-Volatile
Storage (SNVS) block.

The root cause of the error has been traced to the HAB handing off the
SNVS-RTC in a state where HPCOMR::NPSWA_EN = 0 in other words where the
Non-Privileged Software Access Enable bit is zero.

Configure SNVS to allow unpriv access to SNVS LP for imx8m and imx8mp.

This commit generalizes 723f8359c1 ("imx: mx7: snvs: Add an SNVS init
routine") to also be used on i.MX8M SoCs, and was testeed on i.MX8MP.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
2024-11-09 08:55:04 -03:00
Ian Ray
d6893740c1 arm: mach-imx: move snvs module
Commit 723f8359c1 ("imx: mx7: snvs: Add an SNVS init routine") noted
that the init_snvs() call likely applies to other i.MX processors, and
this has been found to be true for i.MX8MP.

Move snvs module for future re-use.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
2024-11-09 08:55:04 -03:00
Marek Vasut
354e33d06c ARM: dts: imx: Switch to using upstream DT on DH i.MX6 DHCOM
Enable OF_UPSTREAM to use upstream DT and add nxp/imx/ prefix to the
DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-11-09 08:54:35 -03:00
Marek Vasut
c5c700ca63 ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board
Add support for the DH electronics i.MX6DL DHCOM SoM and a PDK2 evaluation
board. The evaluation board features three serial ports, USB OTG, USB host
with an USB hub, Fast or Gigabit ethernet, eMMC, uSD, SD, analog audio,
PCIe and HDMI video output.

All of the aforementioned features except for mSATA are supported, mSATA
is not available on i.MX6DL and is only available on DHCOM populated with
i.MX6Q SoC which is already supported upstream.

Backport from linux-next commit
c3f5d76a6e03 ("ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board")

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2024-11-09 08:54:35 -03:00
Heiko Schocher
254c00803b tools: imx8image: add possibility to skip dcd
Currently U-Boot always adds DCD Image to boot container.
On imx8qxp SoC it is possible to init RAM from within SCFW,
and adding a DCD image type to the boot container in this case
breaks booting (No debug output anymore from SCFW! Nor any
output from SPL), so we need to configure a dcd skip somehow.

This patch adds a new imx8image_cmd entry CMD_DCD_SKIP and a
new entry in imximage.cfg "DCD_SKIP". If set to "true"
no DCD image type will be added to the container.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-11-09 08:54:19 -03:00
Benjamin Szőke
6bc9d4407c imx9: Improve boot mode autodetection
Improve "mmcautodetect=yes" boot mode autodetection to able to use it
if CONFIG_ENV_IS_NOWHERE=y is used for i.MX9 SoCs and i.MX93 EVK board.

If both CONFIG_ENV_IS_IN_MMC=y and CONFIG_ENV_IS_NOWHERE=y are in the
defconfig, CONFIG_ENV_IS_IN_MMC=y will be overiden default
CONFIG_ENV_IS_NOWHERE settings.

Goal is in this patch to able to use the boot mode autodetection
if defconfig use only CONFIG_ENV_IS_NOWHERE=y option
(without CONFIG_ENV_IS_IN_MMC) for any i.MX9 SoC.

Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
2024-11-09 08:54:01 -03:00
Paul Geurts
0bf7d6b497 imx: hab: Make imx_hab_is_enabled dependent on FIELD_RETURN
The decision on whether HAB is enabled is solely based on the SEC_CONFIG
fuse. The HAB FIELD_RETURN feature is able to permanently disable HAB on
a CPU, after which it is able to boot unsigned firmware. U-Boot however
does not take into account the FIELD_RETURN mode, and refuses to boot
unsigned software when the feature is enabled.

Also take the FIELD_RETURN fuse into account when deciding whether HAB
is enabled. When The FIELD_RETURN fuse is blown, HAB is not enabled.

Tested on i.MX8M Mini, i.MX8M Plus, i.MX8M Nano and i.MX6ULL

Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
2024-11-09 08:53:36 -03:00
Paul Geurts
0a245862c2 imx: hab: rename imx_sec_config_fuse_t to imx_fuse
The imx_sec_config_fuse_t structure is not specific to the sec_config
fuse, but can be used for all fuse words.

Rename the structure to a more generic name to be reused for other
fuses.

Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
2024-11-09 08:53:36 -03:00
Simon Glass
ade8b30039 sandbox: virtio: Disable the sandbox virtio blk device
This is not implemented so cannot actually be used to read blocks.
Disable it until it is implemented, to avoid causing a hang with EFI,
which probes every available BLK device.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Issue: https://source.denx.de/u-boot/u-boot/-/issues/37
2024-11-09 10:01:47 +01:00
Simon Glass
70b78d5293 test: efi: boot: Add a test for the efi bootmeth
Add a simple test of booting with the EFI bootmeth, which runs the app
and checks that it can call 'exit boot-services' (to check that all the
device-removal code doesn't break anything) and then exit back to
U-Boot.

This uses a disk image containing the testapp, ready for execution by
sandbox when needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:47 +01:00
Simon Glass
16b5423eb3 efi_loader: Drop sandbox PXE architecture
Rather than returning 0, just return an error, since sandbox is not used
with PXE at present.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:47 +01:00
Simon Glass
79aed64f94 test: efi: boot: Set up an image suitable for EFI testing
Create a new disk for use with tests, which contains the new 'testapp'
EFI app specifically intended for testing the EFI loader.

Attach it to the USB device, since most testing is currently done with
mmc.

Initially this image will be used to test the EFI bootmeth.

Fix a stale comment in prep_mmc_bootdev() while we are here.

For now this uses sudo and a compressed fallback file, like all the
other bootstd tests. Once this series is in, the patch which moves
this to use user-space tools will be cleaned up and re-submitted.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:47 +01:00
Simon Glass
7506c15669 sandbox: Report host default-filename in native mode
When the --native flag is given, pretend to be running the host
architecture rather than sandbox.

Allow the same control for PXE too.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:47 +01:00
Simon Glass
9fd84a3e1f efi_loader: Allow reporting the host defaults
Add an 'efidebug filename' command to report the default filename and
PXE architecture.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:47 +01:00
Simon Glass
8aa8a33661 efi_loader: Move get_efi_pxe_arch() to efi_helper
Move this function from the EFI bootmeth to the common efi_helper file.
No functional change is intended.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:01:46 +01:00
Simon Glass
9fd623afed efi: Move default filename to a function
Use a function to obtain the device EFI filename, so that we can control
how sandbox behaves.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:00:38 +01:00
Simon Glass
efe9bd4a08 sandbox: Add a -N flag to control on-host behaviour
Sandbox is its own architecture, but sometimes we want to mimic the host
architecture, e.g. when running an EFI app not built by U-Boot.

Add a -N/--native flag which tells sandbox to reflect the architecture
of the host.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 10:00:15 +01:00
Simon Glass
34d2faaef6 efi_loader: Add a test app
Add a simple app to use for testing. This is intended to do whatever it
needs to for testing purposes. For now it just prints a message and
exits boot services.

There was a considerable amount of discussion about whether it is OK to
call exit-boot-services and then return to U-Boot. This is not normally
done in a real application, since exit-boot-services is used to
completely disconnect from U-Boot. For now, this part is skipped.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09 09:59:41 +01:00
Heinrich Schuchardt
b1e9a8bba4 doc: qemu-riscv: describe CONFIG_DEBUG_SBI_CONSOLE
In main U-Boot the SBI DBCN extension can be used to supply a debug
console.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09 09:56:46 +01:00
Heinrich Schuchardt
7eaff7aa06 doc: conf.py: correct title and author of generated pdf
Adjust the PDF output options for rst2pdf:

* Set start document to 'index'.
* Set title to 'Das U-Boot'.
* Set author to 'The U-Boot development community'.

Correct documentation link.

Remove obsolete FIXME.

Link: https://rst2pdf.org/static/manual.html
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09 09:56:46 +01:00
Moritz Fischer
0fd16c31cf efi_loader: Change efi_dp_from_mem() to use size
All call sites are using size rather than end addresses,
so instead - as previously done - calculating an end address
everywhere, just modify the function to use size and internally
calculate the end address

Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Patrick Wildt <pwildt@google.com>
Signed-off-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-11-09 09:56:45 +01:00
Heinrich Schuchardt
ac425307f7 tools: mkeficapsule: use %zd to print ssize_t.
For printing a ssize_t variable we must use %zd and not %ld to avoid
a -Wformat error on 32-bit systems.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-09 09:56:45 +01:00
mason1920
7604d874ff doc: remove vile language 2024-11-09 09:56:45 +01:00
Simon Glass
6e6a940c70 lmb: Drop extra 16KB of stack space
There is already a defined stack-size which is used to reserve space for
the stack. It is confusing to add more in the lmb module, since then the
memory map (with meminfo command) seems to have a hole in it.

Drop this unnecessary feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-09 09:52:43 +01:00
Guillaume La Roque
895b54998e configs: khadas-vim3{l}: fix userdata size
After increase boot and recovery partition userdata was not resize.
so on VIM3 16GB and VIM3L `fastboot oem format` or `gpt write mmc 2
$partitions` fail because end of last partition is outside of eMMC
size.

Remove 64MB on userdata partitions to fix it.

Fixes: ce138d9742 ("configs: khadas-vim3{l}: Increase boot/recovery partition size")
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241017-adnroidv2-v1-3-781c939902c9@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-11-08 11:11:11 +01:00
Heiko Stuebner
373a336e2f arm64: dts: rockchip: add product-data eeproms to QNAP TS433
The device contains two i2c-connected eeproms holding some product-
specific values. One sitting on the mainboard and one on the statically
connected backplane.

While the eeprom chips themself have a size of 512 byte, the eeprom data
only uses 256 byte each, probably to stay compatible with other models.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240810211438.286441-3-heiko@sntech.de

[ upstream commit: da6f4130234448122fe3e66c8116f7d9eea8a5c7 ]

(cherry picked from commit 0b3109708caf5002ba188ae28eae9ce46b2c39b4)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:36 +08:00
Heiko Stuebner
89dcb66bc3 arm64: dts: rockchip: actually enable pmu-io-domains on qnap-ts433
Contrary to the vendor-kernel the pmu-io-domains are not enabled by
default. This resulted in the value not being set according to the
regulator, which in turn made the gmac0 interface that is connected
to the vccio4 supply inoperable.

Fixes: 64b7f16fb394 ("arm64: dts: rockchip: add 2 pmu_io_domain supplies for Qnap-TS433")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240805162052.3345768-1-heiko@sntech.de

[ upstream commit: 40cc4257169712f0ae3835820a4c5afbdd1a16ff ]

(cherry picked from commit f509fcb1fb82117e551b489592ac5714a6c5cd8d)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:36 +08:00
Uwe Kleine-König
16e78f2a64 arm64: dts: rockchip: Simplify network PHY connection on qnap-ts433
While it requires to have the right phy driver loaded (i.e. motorcomm)
to make the phy asserting the right delays, this is generally the
preferred way to define the MAC <-> PHY connection.

Signed-off-by: Uwe Kleine-König <ukleinek@debian.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20240304084612.711678-2-ukleinek@debian.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: e8d45544f806f3b55c30345de84262cbb9504902 ]

(cherry picked from commit e0bbe061fd537bd7b113c53eb046bbcbf0e6597d)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:36 +08:00
Heiko Stuebner
9a7b1d8cdc arm64: dts: rockchip: add 2 pmu_io_domain supplies for Qnap-TS433
Add the two supplies for the pmu-io-domains that are defined in the
vendor devicetree for the TS433.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-15-heiko@sntech.de

[ upstream commit: 64b7f16fb3947e5d08d9e9b860ce966250e45d52 ]

(cherry picked from commit 9b4d4c02b5762196063ab03c5439f96cbbaf2485)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:36 +08:00
Heiko Stuebner
bd050ab656 arm64: dts: rockchip: enable gpu on Qnap-TS433
The TS433 doesn't provide display output, but the gpu nevertheless can be
used for compute tasks for example.

So there is no reason not to enable it.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-14-heiko@sntech.de

[ upstream commit: 9130eb62586f4cef0557d0378fb7e78d7397ab2d ]

(cherry picked from commit e324a9e8ea083ebdca207b5ca2ed86d2b5f862a0)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:36 +08:00
Heiko Stuebner
9e52e76d45 arm64: dts: rockchip: add missing pmic information on Qnap-TS433
Fill in the missing pieces for RK809 pmic used on the TS433.

The regulator setup comes from the vendor-devicetree, so without proper
schematics its accuracy is somewhat unclear, but it looks really similar
to all the other rk3568 boards, so follows the reference design it seems.

The one caveat is related to vcc3v3_sd. This regulator needs to stay on.
When turned off because of no users, access to both PCIe controllers
will stall. Maybe this rail does supply the 100MHz refclk generation
or so.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-13-heiko@sntech.de

[ upstream commit: ee078c7daa98353496410b715a5acbb41d7d3a90 ]

(cherry picked from commit 48951cb085998a5c8e3650351a794b136dac648f)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
57cc6c7c51 arm64: dts: rockchip: define cpu-supply on the Qnap-TS433
The TS433 seems to use a silergy,syr827 regulator for the cpu supply.
At least that is the compatible used in the vendor devicetree, though
it could very well also be another fan53555 clone.

Define the needed regulator node and hook up the cpu-supply to the
cpu cores.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-12-heiko@sntech.de

[ upstream commit: 99b36ba910d896bddbb9a190ca686c6d9cd0325f ]

(cherry picked from commit 2f0afd1a3cbf6f3192dc7a5c496affab718671b3)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
c2f60ab28e arm64: dts: rockchip: add gpio-keys to Qnap-TS433
The TS433 has 3 buttons, power and copy in the front as well as a reset
pinhole button on the back. The power-button is connected to the embedded
controller while the other two buttons are just gpio connected.

Add the gpio-keys definition for the two buttons we can handle right now.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-11-heiko@sntech.de

[ upstream commit: 9b682d31b24f1f70b5b4d0618095d46e0722b9d8 ]

(cherry picked from commit f0b858c751382ee9faf18f9b19b0817c6b50ac1c)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
9251186146 arm64: dts: rockchip: enable the tsadc on the Qnap-TS433
Enable the tsadc node to allow for temperature measurements of the soc.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-10-heiko@sntech.de

[ upstream commit: 2dfdddd9d20306fd0d04b88fcbbf36d76fb67f11 ]

(cherry picked from commit d33949501abd1145ea572b605844f0ef4247478d)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
5573cb5d31 arm64: dts: rockchip: add hdd leds to Qnap-TS433
Add the 4 gpio-controlled LEDs to the Qnap-TS433.

They are meant for individual disk activitivy, but I haven't found a
way for how to connect them to their individual sata slot yet.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-9-heiko@sntech.de

[ upstream commit: ea91aabf18bcad6f5eceae6848ea6570ea61f126 ]

(cherry picked from commit 5a11b1bb40ac7b39e04077c045c3e3409fa352e2)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
5156ec7eb2 arm64: dts: rockchip: add board-aliases for Qnap-TS433
Add the aliases for the internal network interface as well as the emmc
on the board and make sure the dedicated RTC is always the first one.

The TS433 actually has two rtc devices. One coming from the rk809 pmic
without added functionality and also a dedicated RTC from Mycrocrystal
that is battery backed to keep the time.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-8-heiko@sntech.de

[ upstream commit: dadd4256e12360d3ff1f6481b2e4697f9d890caf ]

(cherry picked from commit cb53815764403f7f17967a32eec2aeb6625b396f)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
949560e61a arm64: dts: rockchip: enable sata1+2 on Qnap-TS433
The TS433 has 4 bays. The last two are accessed via a pci-connected
sata controller, while the first two are accessed via the rk3568's
sata controllers. Enable these two now.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-7-heiko@sntech.de

[ upstream commit: 673c1353b3d476b9c5df6b84a777ed171e5594f5 ]

(cherry picked from commit dfa45bbda057851d0c2167b4c311c0301637cc19)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
44ce50f846 arm64: dts: rockchip: add stdout path on Qnap-TS433
As most Rockchip boards do, the TS433 also uses uart2 for its serial
output. Set the correct chosen entry for it.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-6-heiko@sntech.de

[ upstream commit: e1cb5d8a92e41171bf4d5ddc459bd96372500901 ]

(cherry picked from commit 1e1af2af2192490a3d174624ac1bb976aa6afffa)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
9a8cdcc483 arm64: dts: rockchip: enable usb ports on Qnap-TS433
Enable usb controllers and phys and add regulator infrastructure for the
usb ports on the TS433.

Of course there are no schematics available for the device, so the
regulator information comes from the vendor-devicetree with unknown
accuracy.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-5-heiko@sntech.de

[ upstream commit: d992203f57c5caad0dbd4a9c669d79b315873c81 ]

(cherry picked from commit bb745ef13efb9f6589f9eda8f66664bf263a13f3)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
5f2e63e7a9 arm64: dts: rockchip: enable uart0 on Qnap-TS433
Uart0 is connected to an MCU on the board that handles system control
like the fan-speed. So far no driver for it is available though.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-4-heiko@sntech.de

[ upstream commit: 07ef8be476bebd77cba3ca4804be03cc0dba414f ]

(cherry picked from commit aaa5b1c4bd8f0e4327078d513f0eef05cb829bcf)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Heiko Stuebner
96cc8f32ea arm64: dts: rockchip: enable second PCIe controller on the Qnap-TS433
The TS433 uses both pcie controllers for sata and the 2nd network
interface. Set the needed data-lanes in the pcie3 phy and enable
the second pcie controller, as well as remove the bifurcation comment.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-3-heiko@sntech.de

[ upstream commit: 0f5f87a1d602a33028522784eb005647fa1b5c11 ]

(cherry picked from commit 7d8f260e65cc84076ec9456954de0f136948a2c8)
2024-11-08 17:05:35 +08:00
Heiko Stuebner
bab293450e arm64: dts: rockchip: add PCIe supply regulator to Qnap-TS433
Add the vcc3v3-supply regulator and its link to the pcie controllers.

Tested-by: Uwe Kleine-König <ukleinek@debian.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20240723195538.1133436-2-heiko@sntech.de

[ upstream commit: e0ec6d48226fb3d4df18895b56f0b7a94c0fe474 ]

(cherry picked from commit 59939b4343db08fa08098238160007e6ded72be9)
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-11-08 17:05:35 +08:00
Tom Rini
a7a96a37cb Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23239

- configs: visionfive2 defconfig: re-enable SPL_SYS_MMCSD_RAW_MODE
- driver: sifive ccache: enable TRUNKCLOCKGATE & REGIONCLOCKGATE
- board: support 64bit Microblaze V
2024-11-06 10:44:33 -06:00
Michal Simek
d5f5e77818 riscv: Introduce configuration for 64bit version Microblaze V
The commit 7576ab2fac ("riscv: Add support for AMD/Xilinx MicroBlaze V")
added support for 32bit version. 64bit version is also available that's why
wire it up too.
DT is providing description for generic QEMU target.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06 19:42:54 +08:00
Michal Simek
e4b8d8be4e xilinx: mbv: Align smode_defconfig with upstream QEMU
Align smode defconfig with upstream QEMU. It could be the part of commit
9d688e6da5 ("riscv: mbv: Align DT with QEMU").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06 19:42:48 +08:00
Michal Simek
d86ff34285 xilinx: mbv: Place DTB by default to DDR location
DTB should be also placed to DDR. It should be the part of commit
9d688e6da5 ("riscv: mbv: Align DT with QEMU").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06 19:42:48 +08:00
Andreas Schwab
e83a99cb67 configs: visionfive2: re-enable SPL_SYS_MMCSD_RAW_MODE
To restore MMC boot, enable SPL_SYS_MMCSD_RAW_MODE and recover
SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION.

Fixes: 2a00d73d08 ("spl: mmc: Try to clean up raw-mode options")
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06 18:59:11 +08:00
Nick Hu
33ddfc059e driver: sifive ccache: enable TRUNKCLOCKGATE and REGIONCLOCKGATE
Enable the clock gating bit of ccache when the platform has the ccache0.

Signed-off-by: Nick Hu <nick.hu@sifive.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-11-06 18:56:51 +08:00
Sam Protsenko
57e77dc80e arm: dts: e850-96: Remove TRNG node from appended dts
Commit 136b7b6d2e ("Subtree merge tag 'v6.11-dts' of dts repo [1] into
dts/upstream") updates the upstream dts for E850-96 board, bringing
upstream TRNG node. There is no need to keep TRNG node in appended dts
anymore, so remove it.

Tested on E850-96 board by running 'rng' command in U-Boot shell.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-11-05 14:26:58 +09:00
Henrik Grimler
e5565c24bb pinctrl: exynos: fix type of count integer
unsigned int count is used to capture return of dev_read_string_count.
When an error occurs dev_read_string_count returns -ve, which can
hence not be handled correctly. Use int instead of unsigned int so
that errors are detected.

Fixes: 16ca80adc5 ("pinctrl: Add pinctrl driver support for Exynos7420 SoC")

Signed-off-by: Henrik Grimler <henrik@grimler.se>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-11-05 14:26:13 +09:00
Yuri Zaporozhets
56accc56b9 bios_emulator: fix first argument of pci_{read,write}_config_* function calls
When compiling for riscv64, a bunch of warning is produced for the file
drivers/bios_emulator/besys.c. This patch fixes a portion of those warnings,
caused by incorrect first argument to pci_{read,write}_config_* functions.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04 18:01:58 -06:00
Yuri Zaporozhets
7837e273df drivers/video/vesa: use MTRRs only on x86
MTRR functionality is available only on x86, so this driver cannot be compiled
on other architectures. Fix this with preprocessor directives.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04 16:41:38 -06:00
Yuri Zaporozhets
d84e3d2630 bios_emulator: define the comment symbol for RISC-V assembler too
The bios_emulator driver cannot be compiled for RISC-V because the x86emu.h
header file doesn't define the comment symbol ("#") for the assembler.
With this patch, use the same symbol as for e.g. x86.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
2024-11-04 16:41:38 -06:00
Weijie Gao
599652cff1 bootmenu: add reprint check
Record the last active menu item and check if it equals to the
current selected item before reprint.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
2024-11-04 16:41:38 -06:00
Weijie Gao
ccdd7948e2 menu: add support to check if menu needs to be reprinted
This patch adds a new callback named need_reprint for menu.
The need_reprint will be called before printing the menu. If the
callback exists and returns FALSE, menu printing will be canceled.

This is very useful if the menu was not changed. It can save time
for serial-based menu to handle more input data.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
2024-11-04 16:41:38 -06:00
Weijie Gao
ddac69885e menu: fix the logic checking whether ESC key is pressed
It's observed that the bootmenu on a serial console sometimes
incorrectly quitted with superfluous characters filled to command
line input:

>  *** U-Boot Boot Menu ***
>
>      1. Startup system (Default)
>      2. Upgrade firmware
>      3. Upgrade ATF BL2
>      4. Upgrade ATF FIP
>      5. Load image
>      0. U-Boot console
>
>
>  Press UP/DOWN to move, ENTER to select, ESC to quit
>MT7988> [B

Analysis shows it was caused by the wrong logic of bootmenu_loop:

At first the bootmenu_loop received the first ESC char correctly.

However, during the second call to bootmenu_loop, there's no data
in the UART Rx FIFO. Due to the low baudrate, the second char of
the down array key sequence hasn't be fully received.

But bootmenu_loop just did a mdelay(10), and then treated it as a
single ESC key press event. It didn't even try tstc() again after
the 10ms timeout.

This patch fixes this issue by letting bootmenu_loop check tstc()
twice.

Tested-By: E Shattow <lucent@gmail.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-04 16:41:38 -06:00
Tom Rini
4ef5664f81 Merge patch series "U-boot: arm: Refine the booting on Total Compute"
Leo Yan <leo.yan@arm.com> says:

This patch series is to refine the booting on Arm Total Compuate
platform.

It changes to use the info passed in DTB for initialization DRAM info,
and dynamically initializes the booting envoironment variables.

Another big change is to use an envoironment file for boot commands,
based on it, the series extends to support multiple block devices
(MMC and virtio). And the env file is extended for booting Debian.

The last commit is to update memory mapping info based on the DRAM info
passed via DT binding.

Link: https://lore.kernel.org/r/20241025171821.624702-1-leo.yan@arm.com
2024-11-04 16:41:38 -06:00
Leo Yan
ea2d73c46d arm: total_compute: Update memory mapping info
This commit introduces build_mem_map() function for updating the mem_map
structure with copying info from gd->bd->bi_dram, so that it can keep
the consistence for DRAM info passed via DT.

The page table size is calculated prior to mem_map is ready, introduce
the get_page_table_size() function for a predefined table size.

Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 16:41:37 -06:00
Leo Yan
8e4adca5db arm: total_compute: Support Debian boot
Add booting option for Debian system.

Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:44 -06:00
Leo Yan
26be18f7bc arm: total_compute: Dynamically detect block device
Dynamically detect block device in the boot command, this allows to
support both MMC and virtio block devices.

Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:44 -06:00
Boyan Karatotev
ab0214d5f1 arm: total_compute: Minor improvement for boot arguments
Tell the AVB command that is loading from MMC.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:43 -06:00
Boyan Karatotev
6d111a6dc2 arm: total_compute: move the boot command to an env file
The boot command for Total Compute has many aspects and changes from time
to time. So move it to an .env file where it can be a proper script.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:43 -06:00
Boyan Karatotev
4696d63d87 arm: total_compute: Remove unused bootm_size
The whole DRAM bank is used for loading and U-boot can detect the
overlap between the kernel and initramfs. So it is safe to drop
bootm_size.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:43 -06:00
Boyan Karatotev
ea70352af8 arm: total_compute: Initialize environment variables
Initialize the environment variables 'fdt_addr_r' and 'kernel_addr_r'
during the misc init phase. The static configurations are not needed,
remove them.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:43 -06:00
Boyan Karatotev
ed36494724 arm: total_compute: depend on TF-A for hardware description
On Total Compute, TF-A passes the info via DT binding for the hardware
description - includes the serial, memory, and arm_ffa nodes.

This commit initializes the fdt base address based on the passed the
register x1.

The similar implementation has already been done for the raspberry pi,
so borrow a lot of it.

Co-developed-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04 14:50:43 -06:00
Tom Rini
a2bed7d8a6 Merge patch series "Fixes to allow 'ut bootm' to pass when run interactively"
Andrew Goodbody <andrew.goodbody@linaro.org> says:

Starting a sandbox session and running 'ut bootm' on the command
line instead of using pytest with --verbose will result in some
test failures. This series makes the tests more deterministic so
that they will better control their environment and hence will
work as expected whether or not they are invoked with '--verbose'.
The series starts with a small fix to the parameters of
bootm_process_cmdline that one commit incorrectly added using a bool
when it had been updated to take flags by the preceeding commit.

Link: https://lore.kernel.org/r/20241101130254.473017-1-andrew.goodbody@linaro.org
2024-11-04 14:49:10 -06:00
Andrew Goodbody
931e0df604 test: bootm: Ensure GD_FLG_SILENT is reset
Some bootm tests expect that GD_FLG_SILENT is reset in order
to work as expected. This is the state if the test is run with
'pytest --verbose' but not if run from, say, the sandbox command
line.
So reset the flag for those tests that rely on it being reset. This
has to be done in each test as the test infrastructure will set it
again before every test when not invoked with 'pytest --verbose'.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-11-04 14:49:06 -06:00
Andrew Goodbody
66ca6622ee test: bootm: bootm_process_cmdline_env takes flags
The function bootm_process_cmdline_env takes flags as its third
parameter, not a bool. Correct the usage by replacing 'true'
with BOOTM_CL_ALL so that the intent is clear.
A similar change was made throughtout this file in the previous
commit to the one mentioned below as being fixed.

Fixes: 4448fe8e4e ("bootm: Allow updating the bootargs in a buffer")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2024-11-04 14:49:06 -06:00
Andrew Goodbody
c422501780 usb: Fix test dependency on ext4write command
The tests test_usb_ext4load_ext4write, test_usb_ext2load and
test_usb_load depend on the command ext4write being present not just
the feature of being able to write to an ext4 file system. So update
their dependencies to include the ext4write command itself. This will
prevent spurious test failures when running the USB tests against USB
storage with an ext2/ext4 partition but no ext4write command available.

Fixes: 1c5b6edad3 ("test/py: usb: Add tests for USB device")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
2024-11-04 14:48:24 -06:00
Andrew Goodbody
32e40f3dd8 usb: Fix test failure with multiple partitions
When test_usb_load finds multiple partitions of the same type then
it will cause a test failure. The call to write the test file will
write a different test file to each partition but only return the
name and size of the last one written. So the test then fails to
load the test file from the first partition as it uses the name of
a file on a different partition.

Refactor the code so that only one test file is written at a time
and is written to only the partition being tested at that time. This
allows the correct file name to always be available to the code that
runs the load command. This reduces the number of files written and
also the number of calls to crc32 needed.

Fixes: 1c5b6edad3 ("test/py: usb: Add tests for USB device")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
2024-11-04 14:48:05 -06:00
Tom Rini
bf066dc3eb Merge tag 'dm-pull-2nov24' of https://source.denx.de/u-boot/custodians/u-boot-dm
CI: https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/23152
CI: https://dev.azure.com/simon0972/u-boot/_build/results?buildId=71&view=results

- alist enhancements and fixes
- minor test and sandbox fixes
- some more x86/coreboot patches
2024-11-03 21:27:13 -06:00
Simon Glass
dc24948a45 sandbox: Fix comment for nomap_sysmem() function
This should say 'cast' rather than 'case', so fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:13 -06:00
Simon Glass
5400c4bc05 sandbox: Add a way to show the sandbox memory-mapping
This is mostly hidden in the background, but it is sometimes useful to
look at it. Add a function to allow this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
ec6d30649c doc: sandbox: Add docs for the sb command
This command has a few small features, so document it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
d2e1c8a348 sandbox: Convert sb command to use new macro
Ise the new U_BOOT_CMD_WITH_SUBCMDS() macro instead of writing the code
out manually.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
6cdb1497f9 bloblist: test: Mark tests with UTF_BLOBLIST
Mark bloblist tests with this flag so that other tests which use
bloblist remain unaffected.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
3f1d79932a test: Allow saving and restoring the bloblist
Tests which create a new bloblist overwrite the existing one in sandbox.
Provide a flag for tests to declare this behaviour. Save and restore the
bloblist pointer so that other tests remain unaffected.

Note that when sandbox is running normally, the bloblist has been
relocated to high in memory. The existing bloblist tests create a new
bloblist low in memory, so they do not conflict.

Correct a build error on coreboot by using accessors for gd->bloblist:
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
12d583b38f log: Add a new category for tests
In some core test code, no existing categories make sense. Add a new one
for testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
ae3b5928d6 x86: coreboot: Allow building an expo for editing CMOS config
Coreboot provides the CMOS layout in the tables it passes to U-Boot.
Use that to build an editor for the CMOS settings.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
e25c34ddb5 x86: coreboot: Add a command to check and update CMOS RAM
Coreboot tables provide information about the CMOS-RAM checksum. Add a
command which can check and update this.

With this it is possible to adjust CMOS-RAM settings and tidy up the
checksum afterwards.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
00815be924 x86: coreboot: Enable support for the configuration editor
Enable cedit support along with required options and a simple style.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
d04c23f1c5 x86: coreboot: Show the option table
Update the cbsysinfo command to show the contents of the CMOS option
table.

While we are here, add some example output for this command, along with
mention of what the unimplemented tags are.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
bde86903ab x86: coreboot: Add a test for cbsysinfo command
Add a simple test for this command, checking that coreboot has the
required features.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Jonas Karlman
680dff6f92 bootstage: Do not sort records
The timer counter on Rockchip SoCs may be reset in TF-A, this may cause
the bootstage records to be printed out of order and with an incorrect
elapsed time.

Fix this by not sorting the bootstage records.

Before on a Radxa ZERO 3W (RK3566) board:

  => bootstage report
  Timer summary in microseconds (12 records):
         Mark    Elapsed  Stage
            0          0  reset
        7,436      7,436  board_init_f
      164,826    157,390  SPL
      375,392    210,566  end phase
      423,909     48,517  board_init_r
      472,973     49,064  eth_common_init
      476,848      3,875  main_loop
      477,003        155  cli_loop

  Accumulated time:
                   7,181  of_live
                  14,739  dm_spl
                  15,029  dm_r
                 315,150  dm_f

With this the records can be printed in chronological order when the
counter is reset and SPL and board_init_r records show correct elapsed
time.

  => bootstage report
  Timer summary in microseconds (12 records):
         Mark    Elapsed  Stage
            0          0  reset
      164,437    164,437  SPL
      375,023    210,586  end phase
        7,437      7,437  board_init_f
      424,390    416,953  board_init_r
      473,515     49,125  eth_common_init
      477,402      3,887  main_loop
      477,571        169  cli_loop

  Accumulated time:
                  14,734  dm_spl
                 315,646  dm_f
                   7,339  of_live
                  14,977  dm_r

For the tested board external TPL and BROM take ~164 ms to initialize
DRAM and load SPL, SPL take ~210ms to load images from FIT and U-Boot
proper take ~477ms to reach cli prompt.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2024-11-03 21:27:12 -06:00
Simon Glass
482eedf9f3 bootstd: Avoid showing an invalid buffer address
When the buffer address is not set, say so, rather than showing an
address which looks very strange, on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
bdf4269f39 bootstd: cros: Correct the x86-setup address
This should really use an address rather than the buffer. Update it in
the command.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
5936d863cd test: boot: Update bootflow_iter() for console checking
This test checks console output so should have the UTF_CONSOLE flag. Add
it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
3ef48a7c66 test: Drop the duplicate line in setup_bootmenu_image()
The mkimage call is done twice. Remove the duplicate.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
fbdac8155c test: Expand implementation of ut_list_has_dm_tests()
This function assumes that all tests in a suite are being run. This
means that it can sometimes call dm_test_restore() when it should not.

The impact of this is that it is not possible, for example, to run
'ut bootstd bootflow_cros' and then check the state of bootstd
afterwards, since all devices are removed and recreated.

Update the function to take account of any selected test, to avoid this
problem.

Add a comment for test_insert while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
5224aa1dad test: boot: Use a consistent name for the script bootmeth
In the bootflow tests the script bootmeth is bound with the name
bootmeth_script whereas the others have a name without the bootmeth_
prefix. Adjust it to be the same.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-03 21:27:12 -06:00
Simon Glass
79b3e9d25b dm: core: Add a function to see if a device exists
All the uclass functions for finding a device end up creating a uclass
if it doesn't exist. Add a function which instead returns NULL in this
case.

This is useful when in the 'unbind' path, since we don't want to undo
any unbinding which has already happened.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
2ca32cbb83 alist: Add maintainer
Add myself as maintainer of alist

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
5dfc1c8078 alist: Add a way to efficiently filter an alist
Unlike linked lists, it is inefficient to remove items from an alist,
particularly if it is large. If most items need to be removed, then the
time-complexity approaches O(n2).

Provide a way to do this efficiently, by working through the alist once
and copying elements down.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
5bd4ead8bd alist: Add a function to empty the list
Sometimes it is useful to empty the list without de-allocating any of
the memory used, e.g. when the list will be re-populated immediately
afterwards.

Add a new function for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
d785a77d18 alist: Add for-loop helpers
Add some macros which permit easy iteration through an alist, similar to
those provided by the 'list' implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
1d49f78c36 alist: Add a way to get the next element
Add a new function which returns the next element after the one
provided, if it exists in the list.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
eb6e87a7ab alist: Expand the comment for alist_get()
Add a better description for this macro.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
55c8aad164 alist: Add a comment for alist_init_struct()
Comment this macro so that it is clear how to use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Simon Glass
805e89e3f7 alist: Mention the error condition in alist_add_placeholder()
Update the function comment to note that this function can return NULL
if it runs out of memory.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-03 21:27:12 -06:00
Heinrich Schuchardt
93cfcb026a .readthedocs.yml: update Python version and Ubuntu release
The current documentation build dependencies are not compatible with
Python 3.9. Update to Python 3.12.

Use the current Ubuntu LTS release, i.e. 24.04 Noble Numbat.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-11-03 17:23:14 -06:00
Tom Rini
6ebfafe8c5 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2024-11-03 11:05:20 -06:00
Marek Vasut
e2635570e0 ARM: renesas: Deduplicate common Renesas defconfig
Deduplicate common Renesas defconfig by factoring out the common
parts into generic renesas_rcar_defconfig and including those using
the #include <configs/...> preprocessor macro in the current set of
board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config are
identical for all Renesas systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Marek Vasut
4249b284ba ARM: renesas: Deduplicate Renesas R-Car 64bit defconfigs
Deduplicate defconfigs for all Renesas R-Car 64bit systems by factoring
out the common parts into generic renesas_rcar64.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car 64bit systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Marek Vasut
5ca2b23b9d ARM: renesas: Deduplicate Renesas R-Car Gen4 defconfigs
Deduplicate defconfigs for all Renesas R-Car Gen4 systems by factoring
out the common parts into generic renesas_rcar4.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen4 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Marek Vasut
6a8a4cf735 ARM: renesas: Deduplicate Renesas R-Car Gen3 defconfigs
Deduplicate defconfigs for all Renesas R-Car Gen3 systems by factoring
out the common parts into generic renesas_rcar3.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen3 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Marek Vasut
bd963a5790 ARM: renesas: Deduplicate Renesas R-Car Gen2 defconfigs
Deduplicate defconfigs for all Renesas R-Car Gen2 systems by factoring
out the common parts into generic renesas_rcar2.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen2 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Marek Vasut
c78a81396a clk: renesas: Fix missing unbind on driver look up failure
In case lists_driver_lookup_name("rst_gen3") fails, the clk_gen3 driver
has to be unbound before erroring out. Reorder the function such that
both clk_gen3 and rst_gen3 drivers are looked up first, if either look
up fails then the function errors out right away. Second, the clk_gen3
is bound, if binding fails, the function still errors out right away
because there is nothing to undo after either lists_driver_lookup_name()
call. Finally, rst_gen3 is bound and if this binding fails, then that
is the only place where clk_gen3 has to be unbound before erroring out.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-11-03 12:25:57 +01:00
Simon Glass
6e625484f5 test: boot: Use a consistent name for the script bootmeth
In the bootflow tests the script bootmeth is bound with the name
bootmeth_script whereas the others have a name without the bootmeth_
prefix. Adjust it to be the same.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-11-02 11:13:59 -06:00
Simon Glass
cedf9ccaa2 dm: core: Add a function to see if a device exists
All the uclass functions for finding a device end up creating a uclass
if it doesn't exist. Add a function which instead returns NULL in this
case.

This is useful when in the 'unbind' path, since we don't want to undo
any unbinding which has already happened.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
b84c13f37d alist: Add maintainer
Add myself as maintainer of alist

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
d01c58acb7 alist: Add a way to efficiently filter an alist
Unlike linked lists, it is inefficient to remove items from an alist,
particularly if it is large. If most items need to be removed, then the
time-complexity approaches O(n2).

Provide a way to do this efficiently, by working through the alist once
and copying elements down.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
70f5f17415 alist: Add a function to empty the list
Sometimes it is useful to empty the list without de-allocating any of
the memory used, e.g. when the list will be re-populated immediately
afterwards.

Add a new function for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
83bc5989fc alist: Add for-loop helpers
Add some macros which permit easy iteration through an alist, similar to
those provided by the 'list' implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
2ce146a3de alist: Add a way to get the next element
Add a new function which returns the next element after the one
provided, if it exists in the list.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
6668d860f7 alist: Expand the comment for alist_get()
Add a better description for this macro.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
13bd298499 alist: Add a comment for alist_init_struct()
Comment this macro so that it is clear how to use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Simon Glass
a8c07ac497 alist: Mention the error condition in alist_add_placeholder()
Update the function comment to note that this function can return NULL
if it runs out of memory.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-11-02 11:13:59 -06:00
Tom Rini
8e5e64d55d Merge patch series "fs: ext4: implement opendir, readdir, closedir"
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

With this series opendir, readdir, closedir are implemented for ext4.
These functions are needed for the UEFI sub-system to interact with
the ext4 file system.

To reduce code growth the functions are reused to implement the ls
command for ext4.

A memory leak in ext4fs_exists is resolved.

ext4fs_iterate_dir is simplified by removing a redundant pointer copy.

Link: https://lore.kernel.org/r/20241026064048.370062-1-heinrich.schuchardt@canonical.com
2024-11-01 13:38:05 -06:00
Heinrich Schuchardt
29e5a2e959 fs: ext4: use fs_ls_generic
Now that opendir, readir, closedir are implemented for ext4 we can use
fs_ls_generic() for implementing the ls command.

Adjust the unit tests:

* fs_ls_generic() produces more spaces between file size and name.
* The ext4 specific message "** Can not find directory. **\n" is not
  written anymore.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-01 13:37:58 -06:00
Heinrich Schuchardt
8b1d6fcc90 efi_loader: fix GetInfo and SetInfo
* Some of our file system drivers cannot report a file size for
  directories. Use a dummy value in this case.
* For SetInfo the UEFI spec requires to ignore the file size field.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-01 13:37:58 -06:00
Heinrich Schuchardt
22fdac381f fs: ext4: implement opendir, readdir, closedir
For accessing directories from the EFI sub-system a file system must
implement opendir, readdir, closedir. Provide the missing implementation.

With this patch the eficonfig command can be used to define load options
for the ext4 file system.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-01 13:37:58 -06:00
Heinrich Schuchardt
2d94480c02 fs: ext4: free directory node in ext4fs_exists()
The directory retrieved in ext4fs_exists() should be freed to avoid a
memory leak.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-01 13:37:58 -06:00
Heinrich Schuchardt
a1a86a1784 fs: ext4: simplify ext4fs_iterate_dir()
Remove copying a pointer with a cast to the very same type.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-11-01 13:37:58 -06:00
Tom Rini
15a55dbff6 test/cmd/mem_copy.c: Use CONFIG_SYS_LOAD_ADDR for base
When reading/writing to memory we cannot assume that a base address of
0x0 is correct and functional. So use CONFIG_SYS_LOAD_ADDR as the base
from which we add a bit more padding and being our tests.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-11-01 13:37:25 -06:00
Padmarao Begari
57ea496c38 test/py: spi: prevent overwriting relocation memory
Update spi negative test case to prevent SF command
from overwriting relocation memory area.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Love Kumar <love.kumar@amd.com>
2024-11-01 13:37:19 -06:00
Heinrich Schuchardt
62fe870632 lmb: remove __maybe_unused from lmb_map_update_notify
Function lmb_map_update_notify() is always referenced.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-11-01 13:36:47 -06:00
Julius Lehmann
5f7c06bdc3 scsi: fix disk capacity too small by one sector
SCSI READ CAPACITY reports the address of the last block and the block
size. The total number of blocks is thus last block address plus one.

This also fixes the corresponding test case.
2024-11-01 13:34:32 -06:00
Patrick Rudolph
99ce74a41b acpi_table: Fix coverity defect in acpi_write_spcr
Fix "Integer handling issues  (SIGN_EXTENSION)" in newly added code:
Cast serial_info.reg_offset to u64 to prevent an integer overflow when
shifted too many bits to the left. Currently this never happens as the
shift is supposed to be less than 4.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2024-11-01 13:33:57 -06:00
Tom Rini
e61ea9f2e5 mtd: spi-nor: Guard SPI_STACKED_PARALLEL with DM_SPI check
While we want to compile the SPI_STACKED_PARALLEL code everywhere we
can, it must first be guarded with an #if for DM_SPI as not all cases
where we have this code built, such as in SPL, will have the relevant
DM_SPI option enabled.

Fixes: 43423cdc5d ("mtd: spi-nor: Always build SPI_STACKED_PARALLEL code")
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-31 13:34:29 -06:00
Tom Rini
1d147b74f4 Merge patch series "mtd: spi-nor: Remove recently added nor->addr_width == 3 test"
Tom Rini <trini@konsulko.com> says:

In the patch series "spi-nor: Add parallel and stacked memories support"
a number of issues have since been raised about problems that now exist
on a large number of previously working platforms. Marek Vasut has gone
and identified a number of issues and this series is the starting point
of attempting to address them and fix the problems with previously
existing platforms.

Link: https://patchwork.ozlabs.org/project/uboot/list/?series=429932&state=*
Link: https://lore.kernel.org/r/20241026201741.171073-1-marek.vasut+renesas@mailbox.org
2024-10-31 10:50:25 -06:00
Marek Vasut
43423cdc5d mtd: spi-nor: Always build SPI_STACKED_PARALLEL code
Prevent the code gated by SPI_STACKED_PARALLEL from bitrot
by using if (CONFIG_IS_ENABLED(SPI_STACKED_PARALLEL)) around
it. That way, it is always at least compiled.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
f896aa6567 mtd: spi-nor: Rename SPI_ADVANCE to SPI_STACKED_PARALLEL
The SPI_ADVANCE description does not explain what the switch does.
It does not have anything to do with any advanced functionality, it
only gates off support for stacked and parallel SPI NORs. Rename the
Kconfig symbol, update description, and move it right next to Xilinx
hardware as it seems to be specific to this hardware. Make sure the
symbol is also protected by if DM_SPI in Kconfig.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
003157bd1c mtd: spi-nor: Rewrite rem_bank_len calculation
Rewrite the code to make it clear exactly where the
SNOR_F_HAS_PARALLEL flag leads to *2 and /2 operation
compared to regular code path. No functional change.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
a21cfc4e7c mtd: spi-nor: Fix multiple coding style issues
The offset variable is set, but never used afterward.
Fix indent. Fix predecrement without justification.
Remove use of parenthesis where unnecessary.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
34cd4a72fb mtd: spi-nor: Remove recently added SST special case
Remove undocumented SST special case. This was added in commit
5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
without any explanation in the commit message. Remove it.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
787692c8d7 mtd: spi-nor: Remove recently added write_disable() call
Remove undocumented write_disable() call. This was added in commit
5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
without any explanation in the commit message. Remove it.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
8ef342f7cb mtd: spi-nor: Remove recently added set_4byte() call
Remove undocumented set_4byte() call. This was added in commit
5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
without any explanation in the commit message. Remove it.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
b8807c8c40 mtd: spi-nor: Remove recently added spi_nor_wait_till_ready() call
Remove undocumented spi_nor_wait_till_ready() call. This was added in commit
5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
without any explanation in the commit message. Remove it.

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Marek Vasut
19e189b1de mtd: spi-nor: Remove recently added nor->addr_width == 3 test
Remove undocumented nor->addr_width == 3 test. This was added in commit
5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
without any explanation in the commit message. Remove it.

This also has a bad side-effect which breaks READ operation of every SPI NOR
which does not use addr_width == 3, e.g. s25fs512s does not work at all. This
is because if addr_width != 3, rem_bank_len is always 0, and if rem_bank_len
is 0, then read_len is 0 and if read_len is 0, then the spi_nor_read() returns
-EIO.

Basic reproducer is as follows:
"
=> sf probe ; sf read 0x50000000 0 0x10000
SF: Detected s25fs512s with page size 256 Bytes, erase size 256 KiB, total 64 MiB
device 0 offset 0x0, size 0x10000
SF: 65536 bytes @ 0x0 Read: ERROR -5
"

Fixes: 5d40b3d384 ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-31 10:49:47 -06:00
Tom Rini
d4c8b8750b Merge tag 'efi-2025-01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-01-rc2

Documentation:

* include semihosting and K3 boards only once in table of contents
* include file-system API into HTML docs
* describe struct ext2_inode
* update Python requirements

UEFI:

* mark local functions static
* simplify efi_free_pages()
* pass correct end address value to  efi_dp_from_mem()
* fix typos in HII test and eficonfig command
2024-10-31 08:33:24 -06:00
Moritz Fischer
7596d77bc1 lib: efi_loader: Fix efi_dp_from_mem() calls
The function expects an end address but is being called with
an size instead.

Fixes: 6422820ac3 ("efi_loader: split unrelated code from efi_bootmgr.c")
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Patrick Wildt <pwildt@google.com>
2024-10-31 06:05:39 +01:00
Ilias Apalodimas
c8c10b83ef efi_loader: Make tcg2_uninit() static
This function is only used locally, so make it static and quiesce
the W=1 warning

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-31 06:05:08 +01:00
Ilias Apalodimas
84b95e9189 efi_loader: Remove unused diskid
That variable is defined and assigned a value in two functions
but it's never used.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-10-30 21:46:12 +01:00
Ilias Apalodimas
6507ec20ba efi_loader: Mark static functions in smbiosdump
Mark functions that are only used locally as static and
quiesce W=1 warnings

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-10-30 21:45:51 +01:00
Ilias Apalodimas
bfc30742b8 efi_loader: Mark static function in dumpdtb
A few functions are only used locally but miss the 'static' keyword.
Add it and quiesce W=1 build wanrings

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-30 21:45:39 +01:00
Ilias Apalodimas
b63cb21221 efi_loader: Mark efi_bootmgr_release_uridp as static
This is only used locally so make it static

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2024-10-30 21:44:42 +01:00
Heinrich Schuchardt
a01e7d2538 cmd/eficonfig: capitalize 'enter description'
To conform with other messages capitalize the first letter:
%s/enter description/Enter description/g

Adjust the unit tests accordingly.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-30 21:44:39 +01:00
Heinrich Schuchardt
9aabcad1a7 fs: ext4: document struct ext2_inode
Provide Sphinx style documentation for struct ext2_inode.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-30 21:44:39 +01:00
Ilias Apalodimas
4588ab9976 efi_loader: Simplify efi_free_pages()
We currently call efi_free_pages() with a notify flag and explicitly
update the efi memory map. That's not needed as lmb_free_flags() will do
that for us if the LMB_NONOTIFY flag is removed

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-10-30 21:44:38 +01:00
Heinrich Schuchardt
a464a27017 doc: include file-system API into HTML docs
Add include/fs.h to the API documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-30 21:44:38 +01:00
Heinrich Schuchardt
aa636678f9 fs: improve API documentation
* Describe the fields of struct fs_dir_stream.
* Update fs_readdir() and fs_opendir() description.
* Fix Sphinx errors.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-30 21:44:38 +01:00
Heinrich Schuchardt
267097d014 doc: update Python requirements
Update Sphinx, sphinx-rtd-theme, and their dependencies.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-30 21:44:38 +01:00
Heinrich Schuchardt
8b65d1f56f doc: do not include K3 boards twice in TOC
Sphinx writes a warning if a page is included twice in the table of
contents. Use references instead.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Neha Malcom Francis <n-francis@ti.com>
2024-10-30 21:44:38 +01:00
Heinrich Schuchardt
8ba545b84d doc: semihosting can only be once in TOC
Sphinx warns if a page is added to the table of contents twice.
Add a reference instead.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-30 21:44:38 +01:00
Baruch Siach
89bdd752b9 boot/Kconfig: correct fdt_fixup_memory_banks name typo
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
2024-10-30 13:03:54 -06:00
Markus Volk
a63456b919 scripts/dtc/pylibfdt/libfdt.i_shipped: Use SWIG_AppendOutput
Swig has changed language specific AppendOutput functions. The helper
macro SWIG_AppendOutput remains unchanged. Use that instead
of SWIG_Python_AppendOutput, which would require an extra parameter
since swig 4.3.0.

/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
|  5581 |     resultobj = SWIG_Python_AppendOutput(resultobj, val);
|       |                 ^~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
Link: https://github.com/dgibson/dtc/pull/154
2024-10-30 13:02:53 -06:00
Ilias Apalodimas
e26d2cab42 lmb: Correctly unmap memory after notifications
We never unmap the memory used to update the EFI memory map after
notifications

Fixes: commit 2f6191526a ("lmb: notify of any changes to the LMB memory map")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-10-30 13:02:45 -06:00
Manorit Chawdhry
84610b66e1 arch: arm: dts: k3-j784s4-r5: Introduce k3-j784s4-r5.dtsi
Create an SoC R5 dtsi file that could be used at board level R5 files. This
would help in keeping the SoC level changes in sync across board files.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
2024-10-30 13:02:04 -06:00
Tudor Ambarus
ad5a30c27c MAINTAINERS: add tambarus as reviewer for SPI NOR
I'd like to get Cc'ed to u-boot's SPI NOR patches to help review them.
The ultimate goal is to have an aligned approach in u-boot and linux.

Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-30 13:01:56 -06:00
Heinrich Schuchardt
1dd01ab1a4 efi_loader: fix CONFIG_EFI_HTTP dependencies
CONFIG_CMD_DNS and CONFIG_CMD_WGET depend on CONFIG_CMD_NET.
CONFIG_CMD_NET depends on CONFIG_NET or CONFIG_NET_LWIP.

We shall only enable CONFIG_EFI_HTTP if there is network support.
We have to select CONFIG_CMD_NET.

Fixes: d7d07a8b50 ("efi_loader: support boot from URI device path")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-30 14:54:28 +01:00
Heinrich Schuchardt
e2f34f4d55 efi_selftest: make HII test data static
Variables that are only used locally in a module should not be exported.

* Make the HII test data variables static.
* Remove unused GUIDs.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-30 14:54:08 +01:00
Heinrich Schuchardt
645f7b299b efi_selftest: fix typo 'got languages' in HII test
%s/got languages are/Available languages:/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-30 14:53:52 +01:00
Tom Rini
5cca0e3f6e Merge tag 'u-boot-imx-master-20241029' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23092

- Implement i.MX93 erratum fix on the dwc_eth_qos driver to fix RMII.
- Add support for Emcraft Systems NavQ+.
- Fix the size of IVT + CSF blob tacked on to u-boot.itb.
2024-10-29 18:46:08 -06:00
Tom Rini
2d79d1004d Merge patch series "memory: ti-aemif: Add DM support"
Bastien Curutchet <bastien.curutchet@bootlin.com> says:

Hi all,

This patch series aims to add DM support for the AEMIF controller that
can be found in the DaVinci SoCs.

This controller has already a driver used by the Keystone SoCs so I
add my work to it.

As we can now easily import Linux device-trees, I try to stick the
most I can to the Linux bindings of the AEMIF controller. To do so I add
an 'intermediate' driver called 'ti-aemif-cs'. It's in charge of
configuring timings for a given chip select of the AEMIF controller.

Link: https://lore.kernel.org/r/20241021151330.1860929-1-bastien.curutchet@bootlin.com
2024-10-29 18:45:51 -06:00
Bastien Curutchet
ea21cde01d memory: ti-aemif-cs: Compute timing configuration from DT parsing
The Linux bindings of the AEMIF offer properties that specify the
transaction timings for each chips select.

Add parsing of these properties to calculate the chip select's
configuration from them and the rate of the AEMIF's reference clock.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
2024-10-29 18:45:22 -06:00
Bastien Curutchet
94e45f7b50 memory: ti-aemif: Add DM support
The AEMIF's bindings in the Linux tree have a node for the AEMIF
controller and then a node for each AEMIF's chip select. This CS node
doesn't have a compatible property but describes the timing parameters
used by a given chip select.
The U-Boot DM framework expects every node to have a 'compatible'
property. If no 'compatible' is present in a node, its children won't be
parsed by u-boot.

Add DM support to the ti-aemif driver.
Add a new ti-aemif-cs driver to comply with the Linux bindings and the
U-Boot's DM philosophy. This driver handles the timing parameters
of an AEMIF's chip select so move aemif_cs_configure() from ti-aemif.c
to ti-aemif-cs.c.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
2024-10-29 18:45:22 -06:00
Bastien Curutchet
4b43602c8b memory: ti-aemif: Wrap the CS configuration into a function
Wrap the CS configuration into a aemif_configure_cs() to ease its
migration to another driver when adding DM support.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
2024-10-29 18:45:22 -06:00
Bastien Curutchet
f437f786cd memory: ti-aemif: Add ARCH_DAVINCI to architectures that uses TI_AEMIF
TI_AEMIF configuration doesn't depend on ARCH_DAVINCI while the AEMIF
controller is present in the DaVinci SoCs.

Add ARCH_DAVINCI to the potential users of the TI_AEMIF driver
Add <asm/io.h> to driver's includes to fix build issue on ARCH_DAVINCI

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-29 18:45:22 -06:00
Bastien Curutchet
1ba44c8eed memory: ti-aemif: Make AEMIF driver architecture agnostic
AEMIF controller is present on other SoCs than the Keystone ones.

Remove Keystone specificities from the driver to be able to use it from
other architectures.
Adapt the ks2_evm/board.c to fit the new driver.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-29 18:45:22 -06:00
Bastien Curutchet
7a7b13838f memory: ti-aemif: Correct macro to ensure avoiding precedence issues
Fix following CHECK pointed out by checkpatch:

   CHECK: Macro argument 'cs' may be better as '(cs)' to avoid precedence issues
   #62: FILE: drivers/memory/ti-aemif.c:15:
   +#define AEMIF_CONFIG(cs)               (0x10 + (cs * 4))

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-29 18:45:22 -06:00
Tom Rini
e28e70e392 Merge patch series "Support Aspeed SGPIO controller"
Billy Tsai <billy_tsai@aspeedtech.com> says:

AST2600 SoC has 2 SGPIO master interfaces one with 128 pins another one
with 80 pins, AST2500/AST2400 SoC has 1 SGPIO master interface that
supports up to 80 pins.

Link: https://lore.kernel.org/r/20241016085955.314236-1-billy_tsai@aspeedtech.com
2024-10-29 16:17:47 -06:00
Tom Rini
2d42f7d901 test/hush: Add CONFIG_CONSOLE_RECORD where required
The "dollar" tests require CONFIG_CONSOLE_RECORD to be enabled so guard
with that.

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:47 -06:00
Tom Rini
a87884f880 test/cmd: Make some "ut dm" tests only available on sandbox
Currently, the "dm" suite in unit tests (ut) is only available on
sandbox. Make sure that all cmd tests that are part of this suite are
only available on sandbox and not attempted to be run on hardware (where
it will fail to be able to be started).

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:47 -06:00
Tom Rini
35d643018c Kconfig: Remove TARGET_TRICORDER references
These were missed when removing the rest of the tricorder platform.

Fixes: d137604c20 ("arm: Remove tricorder board")
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
4ea1deb4bf disk: Mark static functions in part_efi.c
Mark all the functions that are only defined locally as static and
quiesce W=1 warnings

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
[trini: Add __maybe_unused as it's now seen as unused in some cases]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
d4fa8da88c cmd: fat: Make do_fat_size static
This is only used locally,so make it static

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
ede2361998 lmb: Remove lmb_alloc_flags()
lmb_alloc_flags() & lmb_alloc_base_flags() are just a wrappers for
_lmb_alloc_base(). Since the only difference is the max address of the
allowed allocation which _lmb_alloc_base() already supports with the
LMB_ALLOC_ANYWHERE flag, remove one of them.

Keep the lmb_alloc_base_flags() which also prints an error on failures
and adjust efi_allocate_pages() to only use one of them.

While at it clean up the duplicate function description from the header
file.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
f6fb6a8851 lmb: Simplify lmb_should_notify usage
We never call lmb_map_update_notify() without checking the result of
lmb_should_notify(). Instead of running that function everytime fold it
in there and add the additional flags parameter

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
0f57b009e6 lmb: Fix lmb_add_region_flags() return codes and testing
The function description says this should return 0 or -1 on failures.
When regions coalesce though this returns the number of coalescedregions
which is confusing and requires special handling of the return code.
On top of that no one is using the number of coalesced regions.

So let's just return 0 on success and adjust our selftests accordingly

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-29 16:17:47 -06:00
Ilias Apalodimas
92e75ee47f board_r: Remove duplicate headers
efi_loader.h is included twice. Remove one and move the other in
alphabetical order

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-10-29 16:17:47 -06:00
Jonas Jelonek
8145d37918 cpu_func.h: provide noncached_set_region prototype to fix build
Due to the removal of weak functions in 7d6cee2cd0 ("cmd: cache: Remove
weak function"), U-Boot fails to compile after updating to v2024.10 for
mediatek target in OpenWrt with GCC-14 with error:
cmd/cache.c: In function 'do_dcache':
cmd/cache.c:57:25: error: implicit declaration of function
	'noncached_set_region' [-Wimplicit-function-declaration]

Thus, provide a prototype in include/cpu_func.h to fix a build
error in cmd/cache.c, since related prototypes are also located there.

The issue occurred after the update of uboot-mediatek in OpenWrt to
v2024.10, in combination with GCC-14 toolchain. It was reported and
discussed in https://github.com/openwrt/openwrt/issues/16697, and
temporarily fixed with
92ca322dd1.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/issues/16697
Link: 92ca322dd1
Fixes: 7d6cee2cd0 ("cmd: cache: Remove weak function")
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:32 -06:00
Tom Rini
17e476aa05 CONFIG_SYS_NONCACHED_MEMORY: Move prototypes to include/cpu_func.h for consistency
Currently, a number of generic cache related functions have their common
prototype declared in include/cpu_func.h. Move the current set of
noncached functions there as well to match.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-29 16:17:18 -06:00
Erik Schumacher
d88bcd6d24 net: dwc_eth_qos: Remove obsolete imx8 includes
They were added with commit 0e9d23945c ("net: eqos: implement callbaks
to get interface and set txclk rate") but were not removed with
commit 5fc783b5d9 ("net: dwc_eth_qos: move i.MX code out") when i.MX
specific code was moved to a separate file.

Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
2024-10-29 16:25:53 -03:00
Erik Schumacher
43b89455ea net: dwc_eth_qos_imx: Add platform specific reset for i.MX93
The EQOS on i.MX93 fails to finish the reset procedure in RMII mode.
This is described in errata ERR051683. This patch implements the
provided workaround which sets the PS and FES bits after the SWR is set
by using the eqos_fix_soc_reset function.

Adapted from linux-kernel commit b536f32b5b03 ("net: stmmac: dwmac-imx:
use platform specific reset for imx93 SoCs")

Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
2024-10-29 16:25:53 -03:00
Erik Schumacher
669e628d44 net: dwc_eth_qos: Add support for platform specific reset
This patch adds support for optional platform specific reset logic in
the dwc_eth_qos driver. This new function 'eqos_fix_soc_reset' is called
after the EQOS_DMA_MODE_SWR is set and before the driver waits for this
bit to clear.

Signed-off-by: Erik Schumacher <erik.schumacher@iris-sensing.com>
2024-10-29 16:25:53 -03:00
Gilles Talis
1beb665c50 board: emcraft: Add support for Emcraft Systems NavQ+
The Emcraft Systems NavQ+ kit is a mobile robotics platform
based on NXP i.MX8 MPlus SoC.

The following interfaces and devices are enabled:
- eMMC
- Gigabit Ethernet (through eQOS interface)
- SD-Card
- UART console

The device tree file is taken from upstream Linux Kernel
through OF_UPSTREAM

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-29 16:25:25 -03:00
Marek Vasut
196315d4af arm64: imx: Fix 0Xnn to 0xnn
Use lowercase 0x prefix for hexadecimal number to be consistent
No functional change.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-29 16:25:25 -03:00
Rasmus Villemoes
bfbbd8472e imx: hab: fix size of IVT+CSF blob tacked on to u-boot.itb
Loading flash.bin using uuu fails when flash.bin does not have the
right size.

When flash.bin is loaded from some storage medium (sd card/emmc), SPL
just loads some random garbage bytes from beyond what has been
populated when flash.bin was written, but when loaded via uuu, SPL
hangs waiting for the host to send the expected number of bytes. Which
is (size of FIT image aligned to 0x1000)+CONFIG_CSF_SIZE. The
alignment to 0x1000 is already done and is necessary in all cases
because that's the exact expected location of the 32 byte IVT
header. But the IVT+CSF blob tacked onto the end must be a total of
CONFIG_CSF_SIZE.

This is exactly the same fix as 89f19f45d6, except that this time
around I don't know how to cleanly get CONFIG_CSF_SIZE.

Fixes: bc6beae7c5 (binman: Add nxp_imx8mcst etype for i.MX8M flash.bin signing)
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Tested-by: Heiko Schocher <hs@denx.de>
2024-10-29 16:25:25 -03:00
Billy Tsai
4d5510774d ARM: dts: ast2600: Add SGPIO to device tree
Add SGPIO DTS node and enable them for AST2600 EVB.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
2024-10-29 12:12:04 -06:00
Billy Tsai
be298254be ARM: dts: ast2500: Add SGPIO to device tree
Add SGPIO DTS node and enable it for AST2500 EVB.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
2024-10-29 12:12:04 -06:00
Billy Tsai
0e53667d4f gpio: Add Aspeed SGPIO driver
The Aspeed SGPIO driver supports the SGPIO controllers found in the
AST2400, AST2500 and AST2600 BMC SoCs. The implementation is a cut-down
copy of the upstream Linux kernel driver, adapted for u-boot.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
2024-10-29 12:12:04 -06:00
Sughosh Ganu
827dee587b fdt: lmb: add reserved regions as no-overwrite
The boot_fdt_add_mem_rsv_regions() function reserves the memreserve and
reserved-memory regions. These regions are being set with the LMB_NONE
flag which allows overwriting and re-using the regions. This was fine
earlier when the LMB memory map was local and not enforced
globally. But that is no longer the case. Mark these regions as
LMB_NOOVERWRITE so that they cannot be used.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reported-by: Vaishnav Achath <vaishnav.a@ti.com>
2024-10-29 12:09:55 -06:00
Sughosh Ganu
c3cf0dc64f lmb: add a check to prevent memory overrun
When printing the LMB flags for a memory region, there is a need to
check that the array index that is computed is a sane value. Put a
noisy assert in case this check fails, as that implies something with
the LMB code is not working as expected.

Reported-by: Coverity (CID 510463)
Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-29 12:09:49 -06:00
Heinrich Schuchardt
0d0864acfc cmd: simplify network definitions in Makefile
/Makefile already adds lib include paths to UBOOTINCLUDE. There is no point
in adding the same paths again.

Clearly separate the lines relating to NET and to NET_LWIP.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-29 12:09:36 -06:00
Quentin Schulz
cfad2878b4 dm: core: downgrade some dm_warn messages to log_debug()
People complained that enabling (SPL_)DM_WARN was now totally unusable
due to the amount of messages printed on the console.

Let's downgrade the log level of some messages that are clearly not on
the error path.

Note that there's one pr_debug in there, because it is followed by
pr_cont so it made sense to reuse the same family of functions.

Reported-by: Alexander Dahl <ada@thorsis.com>
Fixes: 6afdb15851 ("dm: core: migrate debug() messages to use dm_warn")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-29 12:09:18 -06:00
Tom Rini
dfe9e29f83 Merge https://source.denx.de/u-boot/custodians/u-boot-sh 2024-10-29 10:05:30 -06:00
Tom Rini
b1967f66f8 Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23080

- board: migrate PolarFire to use OF_UPSTREAM
- dts: align DT with QEMU amd-microblaze-v-virt platform
- riscv: fix resume utility
2024-10-29 10:05:30 -06:00
Tom Rini
1466ff7d83 Merge patch series "boards: siemens: iot2050: SM variant, sysinfo support, fixes & cleanups"
Jan Kiszka <jan.kiszka@siemens.com> says:

This adds support for the new IOT2050 SM variant, introduces a sysinfo
driver which also permits SMBIOS support and switches the board to
OF_UPSTREAM. There are some further fixes for the boards included as well.

Not yet included is configuration support for DMA isolation via the PVU as
this depends on not yet merged DT bindings and another overlay.

[trini: This is just the first 10 patches in the series for now]

Link: https://lore.kernel.org/r/cover.1729577070.git.jan.kiszka@siemens.com
2024-10-29 10:05:30 -06:00
Baocheng Su
3acd534b73 board: iot2050: Support new IOT2050-SM variant
Main differences between the new variant and Advanced PG2:

1. Arduino interface is removed. Instead, an new ASIC is added for
   communicating with PLC 1200 signal modules.
2. USB 3.0 type A connector is removed, only USB 2.0 type A connector is
   available.
3. DP interface is tailored down. Instead, to communicate with the
   PLC 1200 signal modules, a USB 3.0 type B connector is added but the
   signal is not USB.
4. DDR size is increased to 4 GB.
5. Two sensors are added, one tilt sensor and one light sensor.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
[Jan: rebased over OF_UPSTREAM]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-29 10:05:25 -06:00
Conor Dooley
239e470509 riscv: dts: mpfs: migrate to OF_UPSTREAM
The U-Boot copy of the mpfs devicetree has, in general, been neglected
somewhat in comparison to the one in Linux. Moving to OF_UPSTREAM to
keep both in sync should serve to eliminate that discrepancy.

Additionally, moving to OF_UPSTREAM will let U-Boot automatically pick
up the devicetree rework that is in progress at [1].

Link: https://lore.kernel.org/all/20241002-private-unequal-33cfa6101338@spud/ [1]
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2024-10-29 19:58:22 +08:00
Conor Dooley
f23ecdddf1 board: mpfs_icicle: imply new clk driver dependencies
The clock driver for PolarFire SoC now requires syscon and regmap
features, so imply them to preserve implication of the clock driver.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-29 19:58:22 +08:00
Conor Dooley
084367be4d clk: microchip: mpfs: support new syscon based devicetree configuration
Why get a devicetree description wrong once when you can get it wrong
twice? The original mistake, which the driver supports was failing to
describe the main PLL that the "cfg" and "periph" clocks parented by.
The second mistake was describing the "cfg" and "periph" clocks a
reg region within the clock controller, rather as two registers within
a syscon region that also contains pinctrl, interrupt muxing controls
and other functions.

Make up for lost time and describe these regions as they should have
been originally, preserving support for the existing two configurations
for the sake of existing systems with firmware-provided devicetrees.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-29 19:58:22 +08:00
Anton Blanchard
8e1acda14e riscv: resume needs to be a global
If we take an exception before u-boot is relocated, there's a good
chance we will end up in an endless loop of exceptions because resume is
invalid until after relocation.

Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-29 19:58:14 +08:00
Michal Simek
9d688e6da5 riscv: mbv: Align DT with QEMU
Align U-Boot with QEMU amd-microblaze-v-virt platform to be able to wire
it with CI.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Padmarao Begari <padmarao.begari@amd.com>
2024-10-29 18:11:49 +08:00
Jan Kiszka
5341318165 board: siemens: iot2050: Migrate to OF_UPSTREAM
This requires some tweaking of the defconfig and
board_fit_config_name_match so that the new sources are taken into
account.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-28 20:54:23 -06:00
Jan Kiszka
486248c3a8 arm64: dts: ti: iot2050: Add overlays for M.2 used by firmware
To allow firmware to pick up all DTs from here, move the overlays that
are normally applied during DT fixup to the kernel source as well. Hook
then into the build nevertheless to ensure that regular checks are
performed.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Link: https://lore.kernel.org/r/91f8b825467651ebd51a4051f153ab136eeb1849.1724830741.git.jan.kiszka@siemens.com
Signed-off-by: Nishanth Menon <nm@ti.com>

[ upstream commit: dba27d026fc841d28a0ed373f617cc84ec0e4504 ]

(cherry picked from commit 741915246a92fc4c21537f9623a69612f7cef03a)
2024-10-28 20:54:23 -06:00
Li Hua Qian
aba10e33dc arm64: dts: ti: iot2050: Disable lock-step for all iot2050 boards
The PG1 A variant of the iot2050 series has been identified which
partially lacks support for lock-step mode. This implies that all
iot2050 boards can't support this mode. As a result, lock-step mode has
been disabled across all iot2050 boards for consistency and to avoid
potential issues.

Signed-off-by: Li Hua Qian <huaqian.li@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Link: https://lore.kernel.org/r/d1f5f84db7a1597cd29628a0b503e578367b7b40.1724830741.git.jan.kiszka@siemens.com
Signed-off-by: Nishanth Menon <nm@ti.com>

[ upstream commit: e0133f883cf115d9e97e704169a9fb6003caefb2 ]

(cherry picked from commit 4b4872feb66a9043741819a57af280ffb4a96608)
2024-10-28 20:54:23 -06:00
Jan Kiszka
90d1b4ae30 board: siemens: iot2050: Stop using special spl DT sources
We can simply use the default DT, Basic PG1, because no nodes that are
different between the variants play a role for SPL. Will help with the
migration to OF_UPSTREAM.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-28 20:54:23 -06:00
Baocheng Su
bb89e03dd4 board: siemens: iot2050: Generalize the fdt fixup
The fdt fixup logic actually also applies to other possible variants who
also have device tree overlays. So generalize this part by extracting
it from the m.2 specific function and make it a standalone one.

Since now we only have M.2 variant consuming the overlay, it may not
have immediate effect for other variant, however this makes the future
variant more easier to apply fdt fixups.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-28 20:54:23 -06:00
Baocheng Su
10cf194e49 board: siemens: iot2050: Pass DDR size from FSBL
Due to new DDR size introduction, the current logic of determining the
DDR size is not able to get the correct size.

Instead, the DDR size is determined by the FSBL(SEBOOT) then passed to
u-boot through the scratchpad info.

The SEBoot version must be >= D/V01.04.01.02 to support this change.

Also now for some variants, the DDR size may > 2GB, so borrow some code
from the TI evm to iot2050 to support more than 2GB DDR.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-28 20:54:23 -06:00
Baocheng Su
5b55635ee1 board: siemens: iot2050: Control pcie power for all variants
The power control pin of pcie interface not only works for M.2 interface
but also for miniPCIE, so promote this logic to all variants to
workaround the module hang issue.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-10-28 20:54:23 -06:00
Baocheng Su
abe383151a board: siemens: iot2050: Fix coding style
Add a space after the 'if'

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2024-10-28 20:54:23 -06:00
Jan Kiszka
23750f60fa board: siemens: iot2050: Fix mistake in list of writable env vars
This prevented to set m2_manual_config - as evaluated by
m2_connector_setup - under strict configurations for secure boot.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-10-28 20:54:23 -06:00
Tom Rini
bfdfc6c12e Revert "acpi_table: Fix coverity defect in acpi_write_spcr"
This commit introduces a number of failure to build issues. For now,
revert it and we will wait for v2 to address the issue and the build
problems as well.

This reverts commit e1c3c720e7.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-28 20:53:34 -06:00
Tom Rini
180d31ae94 Prepare v2025.01-rc1
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-28 17:26:30 -06:00
Patrick Rudolph
e1c3c720e7 acpi_table: Fix coverity defect in acpi_write_spcr
Fix "Integer handling issues  (SIGN_EXTENSION)" in newly added code:
Cast serial_info.reg_offset to u64 to prevent an integer overflow when
shifted too many bits to the left. Currently this never happens as the
shift is supposed to be less than 4.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Moritz Fischer <moritzf@google.com>
2024-10-28 16:50:26 -06:00
Paul Barker
400d06cb86 mmc: renesas-sdhi: Add compatible string for rzg2l-sdhi
After the recent dts/upstream subtree merge, the sdhi compatible string
used in the device tree for RZ/G2L family SoCs is "renesas,rzg2l-sdhi"
not "renesas,rcar-gen3-sdhi". This broke the ability to access the eMMC
and SD card devices on RZ/G2L boards.

Fix this by adding the new compatible string to the sdhi driver.

Fixes: 136b7b6d2e ("Subtree merge tag 'v6.11-dts' of dts repo [1] into dts/upstream")
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-10-28 16:27:34 +01:00
Marek Vasut
b7b1c544b7 ARM: renesas: Add top level board/renesas/ MAINTAINERS file
Add top level board/renesas/ MAINTAINERS file to catch all the common
Renesas file patterns and put people on CC via get_maintainer.pl script.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-10-28 16:27:34 +01:00
Marek Vasut
c2392bd456 ARM: renesas: Drop old unused power DT headers
Renesas R-Car systems use mainline Linux DTs for U-Boot via OF_UPSTREAM,
which also includes headers from dts/upstream/include/dt-bindings/power .
Remove unused legacy DT header files from include/dt-bindings/power .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2024-10-28 16:27:29 +01:00
Marek Vasut
f93059f68b ARM: renesas: Drop old unused clock DT headers
Renesas R-Car systems use mainline Linux DTs for U-Boot via OF_UPSTREAM,
which also includes headers from dts/upstream/include/dt-bindings/clock .
Remove unused legacy DT header files from include/dt-bindings/clock .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2024-10-28 16:27:29 +01:00
Tom Rini
f2533fb048 Merge https://source.denx.de/u-boot/custodians/u-boot-riscv
CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23051

- risc-v: Add Zicbom support
- board: Support RVVM board
- DTS: device tree fixes
- configs: Enable some configs
2024-10-28 09:20:56 -06:00
Mayuresh Chitale
9e859849e2 riscv: cache: Add CBO instructions
Define CBO inval and flush instructions and use those for the
dcache inval and flush operations respectively.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 18:56:54 +08:00
Mayuresh Chitale
bfc8ca3f7f riscv: Add support for defining instructions
Add insn-def.h which is similar to that in linux and contains the macros
to generate any instruction of type 'I' using the assembler's .insn
directive.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 18:56:54 +08:00
E Shattow
b8db88ab58 riscv64: dts: starfive: Mars ethernet0 phy delay values sync with upstream Linux
Milk-V Mars vendor board support package has value 0xa (multiplier=150) for both
rx and tx delay. Upstream Linux has this as 1500 for both rx and tx delay. There
is no documentation for why this should remain 1900 so correct it now. Mars CM
and Mars CM Lite follow the same network phy delay values as Mars in the vendor
board support package.

Fixes: 92db23f766
Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:44:56 +08:00
E Shattow
8d2a6d46d1 riscv64: dts: starfive: Star64 ethernet0 phy delay values sync with upstream Linux
Fix bad delay values copied from vendor board support package of Star64, improves
performance and reliability of bottom network port.

Fixes: 7ebf7e77c0
Signed-off-by: E Shattow <e@freeshell.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:44:56 +08:00
Heinrich Schuchardt
1e24a8de19 configs: visionfive2: enable CONFIG_CMD_ERASEENV
When moving from vendor U-Boot to the upstream U-Boot it is necessary to
reset the environment.

Provide the 'env erase' sub-command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
Heinrich Schuchardt
c1558743bf riscv: add missing linefeed in error message
* Messages written with log_err() should be terminated with linefeed.
* Spell device-tree with hyphen as elsewhere in U-Boot.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
LekKit
f5c6ac8aaf riscv: qemu: Explicitly advertise RVVM support
This patch series enables full RVVM virtual machine support which was
earlier inconveniently provided as out-of-tree patchset.

This should be cleaner than a separate board config, since both
emulators provide similar feature set.
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
LekKit
7d1f04baa0 riscv: qemu: Enable EFI framebuffer
Enable framebuffer for better virtual machine integration.
Some guests need EFI FB to work properly.
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
LekKit
aed8febc3d riscv: qemu: Enable booting from NVMe
QEMU supports NVMe devices, but U-Boot only tries to boot from Virtio.
This is problematic when explicitly using NVMe, so fix that.

Additionally, RVVM virtual machine is almost fully compatible with QEMU,
except it only implements NVMe drives instead of VirtIO.
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
Maksim Kiselev
8e3d94f771 configs: th1520_lpi4a: Enable CMD_GPIO, DM_GPIO and DWAPB_GPIO driver
Enable GPIO command and DWAPB_GPIO driver for LicheePi4A board.

Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
Maksim Kiselev
370806854e gpio: dw: Add ngpios DT-property support
Starting with Linux commit 7569486d79ae ("gpio: dwapb: Add ngpios
DT-property support") the "snps,nr-gpios" property was marked
as deprecated.

And since all newly added dw-apb-gpio nodes are described using generic
"ngpios" property, it's time to add support for it.

Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
Heinrich Schuchardt
faf82cc695 cmd: sbi: Add FWFT, MPXY extensions
The SBI 3.0 specification [1] adds the following extensions:

* Firmware Features Extension
* Message Proxy Extension

Let the sbi command detect their availability.

The Firmware Features Extension is already implemented in OpenSBI.

Correct the text for the DBTR extension and move it to the same position
as in the specification.

[1] https://github.com/riscv-non-isa/riscv-sbi-doc/releases/download/vv3.0-rc1/riscv-sbi.pdf

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-28 16:11:33 +08:00
Andrew Goodbody
3df6145db0 x86: Missed removal of CMD_BOOTEFI_HELLO_COMPILE
The config setting CMD_BOOTEFI_HELLO_COMPILE was removed in favour
of BOOTEFI_HELLO_COMPILE but the usage in this Makefile was not
updated. Fix it.

Fixes: 6fe80876dc ("efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-27 20:11:36 -06:00
Andrew Goodbody
467a84e012 test: efi_loader: Fix dependency for http test
The config setting CMD_BOOTEFI_HELLO_COMPILE was removed in favour
of BOOTEFI_HELLO_COMPILE but the dependency for
test_efi_helloworld_net_http was not updated and so is now incorrect
preventing the test from ever running. Fix it.

Fixes: 6fe80876dc ("efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-27 20:11:30 -06:00
Tom Rini
2800aecce0 Merge patch series "Implement ACPI on aarch64"
Patrick Rudolph <patrick.rudolph@9elements.com> says:

Based on the existing work done by Simon Glass this series adds
support for booting aarch64 devices using ACPI only.
As first target QEMU SBSA support is added, which relies on ACPI
only to boot an OS. As secondary target the Raspberry Pi4 was used,
which is broadly available and allows easy testing of the proposed
solution.

The series is split into ACPI cleanups and code movements, adding
Arm specific ACPI tables and finally SoC and mainboard related
changes to boot a Linux on the QEMU SBSA and RPi4. Currently only the
mandatory ACPI tables are supported, allowing to boot into Linux
without errors.

The QEMU SBSA support is feature complete and provides the same
functionality as the EDK2 implementation.

The changes were tested on real hardware as well on QEMU v9.0:

qemu-system-aarch64 -machine sbsa-ref -nographic -cpu cortex-a57 \
                    -pflash secure-world.rom \
                    -pflash unsecure-world.rom

qemu-system-aarch64 -machine raspi4b -kernel u-boot.bin -cpu cortex-a72 \
-smp 4 -m 2G -drive file=raspbian.img,format=raw,index=0 \
-dtb bcm2711-rpi-4-b.dtb -nographic

Tested against FWTS V24.03.00.

Known issues:
- The QEMU rpi4 support is currently limited as it doesn't emulate PCI,
  USB or ethernet devices!
- The SMP bringup doesn't work on RPi4, but works in QEMU (Possibly
  cache related).
- PCI on RPI4 isn't working on real hardware since the pcie_brcmstb
  Linux kernel module doesn't support ACPI yet.

Link: https://lore.kernel.org/r/20241023132116.970117-1-patrick.rudolph@9elements.com
2024-10-27 18:44:13 -06:00
Patrick Rudolph
25081abf08 CI: Enable qemu_sbsa
Add QEMU's SBSA ref board to azure pipelines and gitlab CI to run tests on it.
TEST: Run on Azure pipelines and confirmed that tests succeed.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
fa888d5319 configs: Add RPI4 ACPI defconfig
Allows to build the RPi4 with ACPI enabled.

TEST: - Boots on qemu-system-aarch64 -machine raspi4b
      - Boots on real hardware with arm_64bit=1 in config.txt

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
b36f629464 bloblist: Fix use of uninitialized variable
Initialize addr to zero which allows to build on the CI
which is more strict.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
3cc4123ed5 arm: mach-bcm283x: Enable ARMV8_MULTIENTRY
On FDT platforms the APs are brought out of reset using the spin-table
as defined in the DT. On ACPI enabled platforms there's no FDT, thus
enable the ARMV8_MULTIENTRY and BLOBLIST to use the ACPI parking
protocol instead.

TEST: - APs enter Linux when run on qemu-system-aarch64 -machine raspi4b
      -	APs on real hardware do not enter Linux, but continue spinning in
        their ACPI parking protocol spinloop. To be investigated.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
ceff6f478f arm: mach-bcm283x: Add ARMV8_MULTIENTRY support
When ACPI is enabled over FDT the APs cannot be brought out of reset
by the OS using the "FDT spin-table" mechanism, as no FDT is provided
to the OS. The APs must be released out of reset in u-boot and then
brought up in an ACPI compliant fashion.

When ARMV8_MULTIENTRY is specified, the APs are released from reset
and will enter U-Boot after it has been relocated as well.

By default ARMV8_MULTIENTRY is not selected, keeping existing behaviour.

TEST: All APs enter U-Boot when run on qemu-system-aarch64 and on
      real hardware.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
080be069f5 arm: Implement read_mpidr on armv7
Implement read_mpidr() on armv7 to make use of it in generic
code that compiles on both armv7 and armv8.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
92e02b01ec armv8: cpu: Enable ACPI parking protocol
Update the generic entry point code to support the ACPI parking protocol.
The ACPI parking protocol can be used when PSCI is not available to bring
up secondary CPU cores.

When enabled secondary CPUs will enter U-Boot proper and spin in their own
4KiB reserved memory page, which also acts as mailbox with the OS to
release the CPU.

TEST: Boots all CPUs on qemu-system-aarch64 -machine raspi4b

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
34bfe8eff8 arm: cpu: Add ACPI parking protocol support
On Arm platforms that use ACPI they cannot rely on the "spin-table"
CPU bringup usually defined in the FDT. Thus implement the
'ACPI Multi-processor Startup for ARM Platforms', also referred to as
'ACPI parking protocol'.

The ACPI parking protocol works similar to the spin-table mechanism, but
the specification also covers lots of shortcomings of the spin-table
implementations.

Every CPU defined in the ACPI MADT table has it's own 4K page where the
spinloop code and the OS mailbox resides. When selected the U-Boot board
code must make sure that the secondary CPUs enter u-boot after relocation
as well, so that they can enter the spinloop code residing in the ACPI
parking protocol pages.

The OS will then write to the mailbox and generate an IPI to release the
CPUs from the spinloop code.

For now it's only implemented on ARMv8, but can easily be extended to
other platforms, like ARMv7.

TEST: Boots all CPUs on qemu-system-aarch64 -machine raspi4b

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Simon Glass
2f3b679298 board: raspberrypi: Add ASL files from tianocore
Add the necessary DSDT files copied from tianocore to boot the RPi4.
In addition generate a board specific SSDT to dynamically enable/disable
ACPI devices based on FDT. This is required to support the various variants
and boot options. It also allows to test the code on QEMU 9.0 without
modifications, since it doesn't emulate PCIe yet.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
797b01cc0d arm: bcm283x: Generate ACPI tables
Generate SoC specific ACPI tables for BCM2711:
- FADT
- PPTT
- GTDT

Board specific tables like DSDT and SSDT are added in a separate patch.

MADT is already properly generated from the FDT.

When ACPI is enabled for a different SoC compliation will fail by
design, indicating the required functions that needs to be implemented.
When ACPI is not enabled the added code does nothing, keeping existing
behaviour.

TEST: Booted on RPi4 with only ACPI enabled, providing no FDT to the OS.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Simon Glass
69a5616f06 arm: mach-bcm283x: Bring in some header files from tianocore
These header files presumably duplicate things already in the U-Boot
devicetree. For now, bring them in to get the ASL code and ACPI table
code to compile.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Matthias Brugger <mbrugger@suse.com>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
019d21a0df arm: mach-bcm283x: Map the ARM local MMIO as well
Cover the "ARM local MMIO" range as well in the default MMU mapping in
order to allow future code to access the GIC-400 without crashing. For
now the GIC is not touched in u-boot, thus this change is a noop.

See [1](BCM2711 ARM Peripherals) for reference.

TEST: Enabled CONFIG_GICV2 and accessed the GIC in C code without crash.

1: https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Matthias Brugger <mbrugger@suse.com>
Cc: Matthias Brugger <mbrugger@suse.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
6d722894fd board: emulation: Add QEMU sbsa support
Add support for Arm sbsa [1] v0.3+ that is supported by QEMU [2].

Unlike other Arm based platforms the machine only provides a minimal
FDT that contains number of CPUs, ammount of memory and machine-version.
The boot firmware has to provide ACPI tables to the OS.
Due to this design a full DTB is added here as well that allows U-Boot's
driver to properly function. The DTB is appended at the end of the U-Boot
image and will be merged with the QEMU provided DTB.

In addition provide documentation how to use, enable binman to fabricate both
ROMs that are required to boot and add ACPI tables to make it full compatible
to the EDK2 reference implementation.

The board was tested using Fedora 40 Aarch64 Workstation. It's able
to boot from USB and AHCI or network.

Tested and found working:
- serial
- PCI
- xHCI
- Bochs display
- AHCI
- network using e1000e
- CPU init
- Booting Fedora 40

1: Server Base System Architecture (SBSA)
2: https://www.qemu.org/docs/master/system/arm/sbsa.html

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
6f9b015c13 common: Enable BLOBLIST_TABLES on arm
Allow to use BLOBLIST_TABLES on arm to store ACPI or other tables.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
142f92bf04 drivers/arm: Implement acpi_fill_madt
Fill the MADT table in the GIC driver and armv8 CPU driver to
drop SoC specific code. While the GIC only needs devicetree
data, the CPU driver needs additional information stored in
the cpu_plat struct.

While on it update the only board making use of the existing
drivers and writing ACPI MADT in mainboard code.

TEST: Booted on QEMU sbsa-ref using GICV3 driver model generated MADT.
      Booted on QEMU raspb4 using GICV2 driver model generated MADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
f116feadea drivers: misc: irq-uclass: Update irq_get_by_index
Support reading the "interrupts" property from the devicetree in case
the "interrupts-extended" property isn't found. As the "interrupts"
property is commonly used, this allows to parse all existing FDT and
makes irq_get_by_index() more useful.

The "interrupts" property doesn't contain a phandle as "interrupts-extended"
does, so implement a new method to locate the interrupt-parent called
irq_get_interrupt_parent().

TEST: Read the interrupts from the GIC node for ACPI MADT generation.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Moritz Fischer <moritzf@google.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
df8d759d9d arm: lib: Add GICV2 driver
Add a generic GICV2 driver that:
- parses the DT and generates the ACPI MADT subtables
- implement of_xlate() and allows irq_get_by_index() to return the
  correct interrupt mappings

Map DT interrupts to ARM GIC interrupts	as follows:

- Interrupt numbers ID32-ID1019 are used for SPIs
- ID0-ID15 are used for SGIs
- ID16-ID31 are used for PPIs

TEST: Booted on QEMU raspb4 using GICV2 driver model generated MADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
11a86874c0 arm: gic-v3-its: Implement of_xlate
Translate IRQs by implementing of_xlate() as required by
irq_get_by_index() to parse interrupt properties.

Map DT interrupts to ARM GIC interrupts as follows:

- Interrupt numbers ID32-ID1019 are used for SPIs
- ID0-ID15 are used for SGIs
- ID16-ID31 are used for PPIs

TEST: Booted on qemu sbsa-ref that has a GICV3.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Moritz Fischer <moritzf@google.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
581e0cac2d arm: gic-v3-its: Rename objects
The code accesses the gic-v3 node, but not the gic-v3-its node,
thus rename the objects to clarify which node it operates on.

The following commit will make use of the gic-v3-its node for real.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
83a2f4a8d2 drivers/cpu: Add generic armv8 cpu driver
Add a generic driver that binds to armv8 CPU nodes. The generic driver allows
- to enumerate CPUs present in a system, even when no other driver binds it
- generates ACPI SSDT code for each CPU
- Fill the ACPI MADT table (implemented in a follow up patch)

The newly introduced code could also be reused on other CPU drivers that are
compatible with armv8.

TEST: Booted on QEMU sbsa and verify the driver binds to CPU nodes.
      Confirmed with FWTS that all ACPI processor devices are present.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
1289c7ccba drivers: ata: Rename ahci_mvebu
Rename 'ahci_mvebu' to 'ahci_generic' and select it by default.
The AHCI driver contains no SoC specific code and only expects the
base address to be passed, thus rename it to ahci_generic and add the
DT compatible string "generic-ahci".

Update existing defconfigs to use the new Kconfig name as well.

TEST: Booted on QEMU sbsa using the generic-ahci node.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Stefan Roese <sr@denx.de>
Acked-by: Tony Dinh <mibodhi@gmail.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
b6fbcb0a56 drivers: usb: Add generic XHCI
Add support for the generic XHCI driver that contains no SoC
specific code. It can be used on platforms that simply work out
of the box, like on emulated platforms.

TEST: Booted on QEMU sbsa machine using the generic xhci driver.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Marek Vasut <marex@denx.de>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
4ac655cd1a acpi: Add processor device
Add a new method to write the processor device identified by _HID
ACPI0007, that is preferred over the Processor OpCode since ACPI 6.0.

Fixes booting arm using ACPI only since the Processor OpCode isn't
found valid by the Linux kernel.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
f570ab6361 acpi: Allocate and write ACPI tables
Allocate memory for ACPI tables in generic acpi code. When ACPI wasn't
installed in other places, install the ACPI table using BLOBLISTs.

This allows non x86 platforms to boot using ACPI only in case the
EFI loader is being used, since EFI is necessary to advertise the location
of the ACPI tables in memory.

TEST: Booted QEMU SBSA (no QFW) using EFI and ACPI only.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
5dc22f767c acpi_table: Support platforms with unusable RSDT
Since ACPI 2.0 the RSDT is deprecated and the XSDT should be preferred.
Until now the RSDT and XSDT entries were keept in sync as all platforms
that installed ACPI tables placed them below 4GiB and thus the address
would fit into the 32bit RSDT.

On platforms that do not have usable DRAM below 4GiB, like QEMU sbsa,
the RSDT cannot be used. Allow both RSDT and XSDT to be null and only
fill those tables that are present in acpi_add_table().

TEST: Fixes a crash on QEMU sbsa and allows to boot on QEMU sbsa.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
3451e03238 acpi: Move function prototype
Allow other architectures to use acpi_create_mcfg_mmconfig as well
by moving the function prototype to common code.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
bf5d37662d acpi: acpi_table: Add IORT support
The SoC can implement acpi_fill_iort to update the IORT table.
Add a helper function to fill out the NAMED_COMPONENT node.

TEST=Run FWTS V24.03.00 on RPi4 and round no problems.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
7f91bcac1e acpi: Add ACPITAB for PPTT and GTDT
Return the ACPI table revision in acpi_get_table_revision() for
PPTT and GTDT. Match both to ACPI 6.2.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
4b882f63d4 acpi: acpi_table: Bump revisions
The FADT structure found in U-Boot represents FADT revision 6 and the
GICC and GICD structures defined in U-Boot are based on ACPI revision
6.3.

Bump the table revision to fix FWTS failures seen on aarch64.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
763bad3e1c acpi: Add fill_madt to acpi_ops
Add a new method to acpi_ops to let drivers fill out ACPI MADT.
The code is unused for now until drivers implement the new ops.

TEST: Booted on QEMU sbsa using driver model generated MADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
f36e29e8da arm: acpi: Add generic ACPI methods
Add generic ACPI code to generate
- MADT GICC
- MADT GICD
- MADT GICR
- MADT GIC ITS
- PPTT processor
- PPTT cache

as commonly used on arm platforms.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:24:13 -06:00
Patrick Rudolph
04001adce1 acpi: Add define for GTDT
Add the interrupt flag used in ACPI GTDT table as define.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Moritz Fischer <moritzf@google.com>
2024-10-27 17:24:13 -06:00
Maximilian Brune
ea37e5064e serial: serial_pl01x: Implement .getinfo() for PL01
When ACPI is enabled on arm it will use the getinfo function to fill
the SPCR ACPI table.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Moritz Fischer <moritzf@google.com>
2024-10-27 17:24:12 -06:00
Patrick Rudolph
d016abb47f acpi: Fix typo
Rename ACPI tables MADR to MADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
2024-10-27 17:12:45 -06:00
Patrick Rudolph
4a3fc0f525 acpi: x86: Move MADT to common code
Write MADT in common code and let the SoC fill out the body by
calling acpi_fill_madt() which must be implemented at SoC level.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
2024-10-27 17:12:44 -06:00
Maximilian Brune
f5f7962091 acpi: x86: Write FADT in common code
Write the FADT in common code since it's used on all architectures.
Since the FADT is mandatory all SoCs or mainboards must implement the
introduced function acpi_fill_fadt() and properly update the FADT.

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
2024-10-27 17:12:44 -06:00
Maximilian Brune
1c03efc014 acpi: x86: Move SPCR and DBG2 into common code
This moves the SPCR and DBG2 table generation into common code, so that
they can be used by architectures other than x86.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
2024-10-27 17:12:44 -06:00
Tom Rini
568407fab5 Merge a patch series to improve dc2114x support
This patch series by Hanyuan Zhao <hanyuan-z@qq.com> provides a number of
improvements to the dc2114x driver.

Link: https://lore.kernel.org/r/tencent_BD4B002FC63A5F77969D9BD1FFF125371C08@qq.com
2024-10-27 17:04:02 -06:00
Tom Rini
98b9dd3387 Merge patch series "net: ksz9477: add support for KSZ GbE switches using SPI bus"
Romain Naour <romain.naour@smile.fr> says:

We are using a custom board where an ethernet switch device KSZ9896 is
available. This family of devices can use several types of serial bus
as management interface: mdio, i2c or SPI. Due to board design
constraints and because we initially planned to use this device only
from Linux, the SPI bus was used.

Luckily we are using a recent enough u-boot release where KSZ9477
driver is available... but only for the i2c interface. Indeed, unlike
the kernel driver, the KSZ9477 driver doesn't use the regmap API to
access the underlying bus since the regmap API is limited to direct
memory access [1].

Until regmap API with bus support is available in U-boot, we introduced
struct ksz_phy_ops to store low-level ksz bus operations (I2C or SPI).

This series has been tested on the current master branch (after v2024.10
release).

[1] https://source.denx.de/u-boot/u-boot/-/blob/v2024.10-rc5/drivers/core/Kconfig?ref_type=tags#L188

Link: https://lore.kernel.org/r/20241008075435.1572727-1-romain.naour@smile.fr
2024-10-27 17:03:40 -06:00
Tom Rini
3251da3864 Merge patch series "Add driver for Motorcomm YT8821 2.5G ethernet phy"
Frank Sae <Frank.Sae@motor-comm.com> says:

YT8531 as Gigabit transceiver uses bit15:14(bit9 reserved default 0) as phy
speed mask, YT8821 as 2.5 Gigabit transceiver uses bit9 bit15:14 as phy
speed mask.

Be compatible to YT8821, reform phy speed mask and phy speed macro.

Based on update above, add YT8821 2.5G phy driver.

Link: https://lore.kernel.org/r/20240912120225.28884-1-Frank.Sae@motor-comm.com
2024-10-27 17:03:40 -06:00
Jerome Forissier
63150710e3 net: recv(): return -EAGAIN instead of 0 when no cleanup is expected
Some drivers do not behave properly when free_pkt() is called with a
length of zero. It is an issue I observed when developing the lwIP
series [1] (see "QEMU CI tests for r2dplus_i82557c, r2dplus_rtl8139"
in the change log) and which I fixed incorrectly by not calling
free_pkt() when recv() returns 0. That turned out to be wrong for two
reasons:

1. The DM documentation [2] clearly requires it:

  "The **recv** function polls for availability of a new packet. [...]
   If there is an error [...], return 0 if you require the packet to
   be cleaned up normally, or a negative error code otherwise (cleanup
   not necessary or already done).

   If **free_pkt** is defined, U-Boot will call it after a received
   packet has been processed [...]. free_pkt() will be called after
   recv(), for the same packet [...]"

2. The imx8mp_evk platform will fail with OOM errors if free_pkt() is
   not called after recv() returns 0:

   u-boot=> tftp 192.168.0.16:50M
   Using ethernet@30be0000 device
   TFTP from server 192.168.0.16; our IP address is 192.168.0.48
   Filename '50M'.
   Load address: 0x40480000
   Loading: #######################fecmxc_recv: error allocating packetp
   fecmxc_recv: error allocating packetp
   fecmxc_recv: error allocating packetp
   ...

Therefore, make recv() return -EAGAIN instead of 0 when no packet is
available and the driver doesn't expect free_pkt() to be called
subsequently.

[1] https://lists.denx.de/pipermail/u-boot/2024-August/562861.html
[2] doc/develop/driver-model/ethernet.rst

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-27 17:03:40 -06:00
Romain Naour
6989f7ba16 net: ksz9477: add support for KSZ GbE switches using SPI bus
The Microchip KSZ Gigabit Ethernet Switches support
SGMII/RGMII/MII/RMII with register access via SPI, I2C, or MDIO.

Since this driver is now able to check the underlying bus type,
handle the case when the SPI bus is used.

The SPI bus is only used for 8/16/32 wide access of registers.

Reword Kconfig option to include SPI bus support.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
d164577fdb net: ksz9477: prepare ksz9477 without I2C support
With the upcoming ksz9477 SPI support added, the I2C support
will be optional. Either the I2C or the SPI bus will be used.

For now, DM_I2C is still mandatory.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
8a63113de0 net: ksz9477: rename ksz_i2c_probe() to ksz_probe()
In order to support management bus other than the I2C, rename
ksz_i2c_probe() to ksz_probe() since this function is no longer
specific to the I2C bus.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
9c4413b246 net: ksz9477: store ksz bus operations functions
The ksz9477 Linux kernel driver is based on regmap API to seamlessly
communicate to switch devices connected via different buses like SPI
or I2C. The current regmap implementation in U-Boot only supports
memory-mapped registers access [1].

Until regmap API with bus support is available in U-boot, introduce
struct ksz_phy_ops to store low-level ksz bus operations (I2C for now).

[1] https://lists.denx.de/pipermail/u-boot/2018-May/329392.html

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
b507f1a507 net: ksz9477: set i2c bus offset length only when needed
In order to add ksz9477 SPI bus support, check parent bus
is an I2C bus before calling i2c_set_offset_len().

Doing so, ksz_i2c_probe() will now return an error (-EINVAL) if
the parent bus is not the one expected by the ksz-switch u-boot
driver.

Indeed, the DSA KSZ devicetree binding doesn't specify anything
about the underlying bus between the SoC and the DSA switch, so
the same "compatible" string can be used wathever the management
interface used (SPI or I2C).

The ksz-switch u-boot driver currently only support I2C interface
but will match a compatible "microchip,ksz9xxx" located under
under an SPI bus node.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
04c183c542 net: ksz9477: rename udevice_id tab to ksz_ids
The DSA KSZ devicetree binding doesn't specify anything about the
underlying bus between the SoC and the DSA switch, so the same
"compatible" string can be used wathever the management interface
used. The driver must be able to access the underlying bus without
any help from the compatible string (like for TPM2 TIS devices).

So, rename udevice_id tab to ksz_ids since it's not specific to i2c
bus.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
2708c81672 net: ksz9477: add KSZ9896 switch support
Add support for the KSZ9896 6-port Gigabit Ethernet Switch to the
ksz9477 driver.

The KSZ9896 is similar to KSZ9897 but has only one configurable
MII/RMII/RGMII/GMII cpu port.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
5b87af441f net: ksz9477: remove dev_set_parent_priv() call
The ksz9477 is currently the only driver using dev_set_parent_priv()
outside of the driver model. Also, there was no explanation in the
commit adding ksz9477 driver and why dev_set_parent_priv() is
required.

Actually there is a typo in ksz_mdio_probe() while retrieving
the parent (switch@0) private data:

-	priv->ksz = dev_get_parent_priv(dev->parent);
+	priv->ksz = dev_get_priv(dev->parent);

Printing the address of struct ksz_dsa_priv *priv allows
to notice the slight difference:

ksz_i2c_probe: ksz_dsa_priv *priv 0xfdf45768 // address of the saved priv
ksz_mdio_bind: ksz_dsa_priv *priv 0xfdf45798 // address returned by dev_get_parent_priv(dev->parent)
ksz_mdio_bind: ksz_dsa_priv *priv 0xfdf45768 // address returned by dev_get_priv(dev->parent)

The ksz_mdio driver get the wrong data and without
dev_set_parent_priv() the mdio driver fail to access the underlying
bus.

While it doesn't cause any issue with I2C bus, it override the
per-child data used by the SPI bus (struct spi_slave) and prevent
further bus access (even with sspi command).

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Romain Naour
6df5c5aee3 net: ksz9477: move struct ksz_dsa_priv *priv declaration
struct ksz_dsa_priv *priv should be declared before dev_dbg()

Signed-off-by: Romain Naour <romain.naour@smile.fr>
2024-10-27 10:19:44 -06:00
Frank Sae
95adf607d3 net: phy: motorcomm: Add driver for Motorcomm YT8821 2.5G ethernet phy
Add a driver for the motorcomm YT8821 2.5G ethernet phy which works in
2500base-x mode.

Verify the driver on BPI-R3(with MediaTek MT7986(Filogic 830) SoC) evb.

Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
2024-10-27 10:19:02 -06:00
Frank Sae
a1211a5f6b net: phy: motorcomm: Optimize phy speed mask to be compatible to YT8821
YT8531 as Gigabit transceiver uses bit15:14(bit9 reserved default 0) as phy
speed mask, YT8821 as 2.5 Gigabit transceiver uses bit9 bit15:14 as phy
speed mask.

Be compatible to YT8821, reform phy speed mask and phy speed macro.

Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
2024-10-27 10:19:02 -06:00
Hanyuan Zhao
ba30f462a2 net: dc2114x: remove the pass all multicast flag in operation mode settings
Remove the OMR_PM flag and choose 16 perfect filtering mode since in
modern networks there're plenty of multicasts and set ORM_PM flag will
increase the dc2114x's workload and ask the U-Boot to handle packets
not related to itself. And most of the time, U-Boot does not need this
feature.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
c303f4a0dd net: dc2114x: allow users to decide how to tx packets according to IP core
Some IP cores of dc2114x or its variants do not comply so well with
the behaviors described by the official document. Originally this
driver uses only one tx descriptor and organizes it as a ring buffer,
which would lead to a problem that one packet would be sent twice.
This commit adds support to prevent this bug if you are using IP
cores with this issue, by using multiple tx descriptors and
organizing them as a real well-defined ring buffer.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
5fa3e10cec net: dc2114x: allow users to decide whether to detect the tx No Carrier errors
Some IP cores of dc2114x or its variants do not comply so well with
the behaviors described by the official document. A packet could be
sent successfully but reported with No Carrier error. Latest drivers
of this IP core have not detect this error anymore.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
8c18c53164 net: dc2114x: remove unused lines and change the var and print types
This commit fixes a problem that even though the network card does not report
any issues in transmitting a setup frame, the driver prints the error status
every time. Let's set it for debug use.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
23edc8f6a6 net: dc2114x: add support for CPUs that have cache between the memory and the card
This commit adds support for the MIPS and LoongArch CPUs, which would use cache
after they jump into U-Boot. This commit requests the CPU to return the
addresses in uncached windows and flushes the cache in need, to make sure the
memory between the CPU and the network card is in consistency.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
26d88de9e5 net: dc2114x: set the card number to start at zero
Otherwise the number might get kind of weird.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
a35aa5a0c1 net: dc2114x: get mac address from environment
Let this old driver work like the other newer network card drivers, loading the
MAC address from environment, which could be more flexible to set.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Hanyuan Zhao
76146b90e7 net: dc2114x: add support for platforms that don't have pci controllers
There're a few ethernet IP cores which have the same functions with dc2114x,
and can be connected to CPU by AXI or other buses. This commit adds support
for the platforms that do not have PCI controllers, using MMIO to communicate
with the dc2114x IP core.

Signed-off-by: Hanyuan Zhao <zhaohy22@mails.tsinghua.edu.cn>
2024-10-27 10:15:29 -06:00
Tom Rini
8963d433eb Merge tag 'u-boot-rockchip-20241026' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip
CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/22993

- New boards:
        rk3566: Hardkernel ODROID-M1S
        rk3588s: Hardkernel ODROID-M2
        rk3588: NanoPC-T6 LTS
- Migrate to use USB_DWC3_GENERIC for rk3328
- Other board level config and dts update
2024-10-26 08:10:31 -06:00
Jonas Karlman
7cec3e7019 rockchip: rk3588-nanopc-t6: Add support for NanoPC-T6 LTS
Update defconfig to enable features included in pending upstream DT and
implement board_fit_config_name_match() to load correct DT for LTS and
non-LTS version of the NanoPC-T6.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:48 +08:00
Jonas Karlman
6e751eed97 adc: rockchip-saradc: Use vdd-microvolts prop as fallback
Change to use vdd-microvolts prop value as voltage reference when the
supply regulator is missing or when DM_REGULATOR=n is used.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:48 +08:00
Jonas Karlman
bcbfd1bb37 adc: Allow use of adc with DM_REGULATOR disabled
When DM_REGULATOR=n is used the device_get_supply_regulator() function
always return -ENOSYS.

Change to treat missing support for regulators as a missing optional
vdd/vss-supply regulator to reduce error messages being logged.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:48 +08:00
Jonas Karlman
d1c38bb4a8 rockchip: rk3588-nanopc-t6: Drop upstream props from u-boot.dtsi
The SPI flash node has been added in upstream DT, drop all props beside
bootph-* props from the SPI flash related nodes from u-boot.dtsi.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:48 +08:00
Marcin Juszkiewicz
ea42f43c56 arm64: dts: rockchip: add SPI flash on NanoPC-T6
FriendlyELEC NanoPC-T6 has optional SPI flash chip on-board.
It is populated with 32MB one on LTS version.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20240829-friendlyelec-nanopc-t6-lts-v6-5-edff247e8c02@linaro.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: a22a629c63b1addcf2d81eaf30383c1deca5b7a9 ]

(cherry picked from commit 7588da65fdf09c7de9f903780c212a8ae96f2866)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Marcin Juszkiewicz
9a614e1b3d arm64: dts: rockchip: add NanoPC-T6 LTS
In the LTS (2310) version the miniPCIe slot got removed and USB 2.0
setup has changed. There are two external accessible ports and two ports
on the internal header.

There is an on-board USB hub which provides:
- one external connector (bottom one)
- two internal ports on pin header
- one port for m.2 E connector

The top USB 2.0 connector comes directly from the SoC.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Link: https://lore.kernel.org/r/20240829-friendlyelec-nanopc-t6-lts-v6-4-edff247e8c02@linaro.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: db1dcbe5f752d423421f77d54d246398b196f670 ]

(cherry picked from commit f4a834fbc8cdb40fddd63d083e8d1c6189ba62dc)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Marcin Juszkiewicz
a823d7fd79 arm64: dts: rockchip: move NanoPC-T6 parts to DTS
MiniPCIe slot is present only in first version of NanoPC-T6 (2301).

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Link: https://lore.kernel.org/r/20240829-friendlyelec-nanopc-t6-lts-v6-3-edff247e8c02@linaro.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: aea8d84070fe0846961deb23228d9dd3f8caefb3 ]

(cherry picked from commit 697963b1c22336a44ac2e33536c652aae1671b3d)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Marcin Juszkiewicz
48c0c5b00b arm64: dts: rockchip: prepare NanoPC-T6 for LTS board
FriendlyELEC introduced a second version of NanoPC-T6 SBC.

Create common include file and make NanoPC-T6 use it. Following
patches will add LTS version.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Link: https://lore.kernel.org/r/20240829-friendlyelec-nanopc-t6-lts-v6-2-edff247e8c02@linaro.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: d14f3a4f1feabb6bb5935bf3b275a1e6bf2208eb ]

(cherry picked from commit e8b52bdfe5a1444edd1b9bb7cc10b9781d72cc84)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Jonas Karlman
44c923e5a7 rockchip: rk3399-pinephone-pro: Drop upstream props from u-boot.dtsi
The SPI flash node has been added in upstream DT, drop all props beside
bootph-* props from the SPI flash related nodes in u-boot.dtsi.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Jonas Karlman
1308505974 rockchip: rk3588-rock-5b: Drop upstream props from u-boot.dtsi
The SPI flash node has been added in upstream DT, drop all props beside
bootph-* props from the SPI flash related nodes in u-boot.dtsi.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Alex Shumsky
ed4ae73862 rockchip: board: Increase rng-seed size to make it sufficient for modern Linux
Increase rng-seed size to make Linux happy and initialize rng pool instantly.
Linux 5.19+ requires 32 bytes of entropy to initialize random pool, but u-boot
currently provides only 8 bytes.
Linux 5.18 and probably some versions before it used to require 64 bytes.
Bump min value to 64 bytes to be on a safe side.

Boot with 8 byte rng-seed (Linux 6.11):
    # dmesg | grep crng
    [   12.089286] random: crng init done
Boot with 32 byte rng-seed (Linux 6.11):
    # dmesg | grep crng
    [    0.000000] random: crng init done

Linux source references:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c?h=v5.19#n551
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c?h=v5.18#n236

Signed-off-by: Alex Shumsky <alexthreed@gmail.com>
Fixes: d2048bafae ("rockchip: board: Add board_rng_seed() for all Rockchip devices")
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-26 10:46:47 +08:00
Tom Rini
47423b81c2 Merge tag 'u-boot-imx-master-20241025a' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22989

- Remove unneeded USB board code and fix reset on mx6ul_14x14_evk.
- Update fastboot buffer size/address for verdin-imx8m{m|p}.
- Fix imxrt1050-evk boot and convert it to standard boot.
- Fix imx8qxp-mek and imx8qm-mek boot.
- Add support for the i.MX93 9X9 QSB board.
- Make livetree API to work on i.MX.
- Set sane default value for i.MX8M SPL_LOAD_FIT_ADDRESS.
- Deduplicate DH i.MX8MP/i.MX6 DHSOM defconfigs.
- Select default TEXT_BASE for i.MX6/i.MX7.
- Several updates for DH i.MX8MP DRC02.
2024-10-25 18:51:05 -06:00
Marek Vasut
0ccff7f8dc ARM: imx: soc: Move default TEXT_BASE for i.MX7
Move i.MX7 TEXT_BASE/SPL_TEXT_BASE to Kconfig and common/spl/Kconfig
which is the best practice.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-25 20:22:01 -03:00
Marek Vasut
304eb6ceea ARM: imx: soc: Select default TEXT_BASE for i.MX6
Select default U-Boot and SPL text base for the i.MX6 SoC. The U-Boot
and SPL text base is picked as the one used by various i.MX6 boards.
Update all the boards.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-25 20:21:15 -03:00
Jesse Taube
4bc57d7f34 ARM: dts: imxrt1170: Fix default cells value warnings
Add #address-cells and #size-cells to the memory node to fix warnings

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2024-10-25 20:13:02 -03:00
Jesse Taube
9e5d462a37 configs: imxrt1050-evk: Enable standard boot
Enable standard boot support and add default environments for the
imxrt1050-evk board.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2024-10-25 20:12:15 -03:00
Jesse Taube
1a8d89b7ab imx: imxrt1050-evk: Fix missing clocks for mmc
Two of the clocks required by the usdhc1 controller are missing from the
clock controller node. A recent change enables all the clocks in the
esdhc node, which fails as they are not defined in the clock controller.

Fixes: 76332fae76 ("mmc: fsl_esdhc_imx: Enable AHB/IPG clk with clk bulk API")
Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
2024-10-25 20:11:24 -03:00
Jesse Taube
1ecbbdda5f imx: imxrt*: Fix binman breaking boot
The init_r parsing of U-Boot device tree to search the binman
information errors. set CONFIG_BINMAN_FDT to no to fix this.

Fixes: 7079eeb72f ("imx: imxrt1050-evk: Add support for SPI flash booting
s")
Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
2024-10-25 20:10:40 -03:00
Marek Vasut
4717f386af arm64: imx: Deduplicate DH i.MX6 DHSOM defconfig
Deduplicate defconfigs for all DH i.MX6 DHSOM by including common
configs/imx_dhsom_defconfig . This does introduce changes to the
board configuration, namely it enables commands used on all DHSOM
devices consistenty, the prompt is changed to u-boot=>, support for
booting non-Linux OS which was likely never used is disabled, GPT
partition table support is enabled, generic MTD support is enabled,
LED support is enabled, DM PHY, PMIC and regulator support is also
enabled, KASLR command is enabled.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-25 20:09:31 -03:00
Marek Vasut
b2a39e4cb8 arm64: imx: Deduplicate DH i.MX8MP DHSOM defconfigs
Deduplicate defconfigs for all DH i.MX8MP DHSOM by factoring out the
common parts into generic _dhsom_defconfig and including those using
the #include <configs/...> preprocessor macro, which is applicable to
defconfigs as well. This enables CMD_EXPORTENV on all iMX8MP DHSOM
systems to be consistent with other DHSOM systems.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-25 20:09:31 -03:00
Marek Vasut
1e99444958 arm64: imx: imx8mp: Disable PCA954x I2C mux on DH i.MX8MP DRC02 and PicoITX
Neither the DRC02 nor PicoITX carrier board contains the PCA954x I2C mux
chip, the chip is only present on PDK3 carrier board. Disable support for
the PCA954x mux chip and I2C mux altogether on both i.MX8MP DHCOM DRC02 and
PicoITX.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-25 20:09:31 -03:00
Marek Vasut
19aa2a73f1 arm64: imx: imx8mp: Disable PCI support on DH i.MX8MP DHCOM SoM on DRC02 board
The DRC02 carrier board does not expose PCIe in any way, disable PCIe support.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-25 20:09:31 -03:00
Marek Vasut
8447ded979 arm64: imx: imx8mp: Enable DM regulator on DH i.MX8MP DHCOM SoM on DRC02 board
Make sure DM regulator support is enabled on this board, just like on all
the other DH i.MX8MP DHCOM SoM based boards.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-25 20:09:31 -03:00
Tom Rini
deafcdc8e0 Merge patch series "Allow showing the memory map"
Simon Glass <sjg@chromium.org> says:

This little series adds a new 'memmap' command, intended to show the
layout of memory within U-Boot and how much memory is available for
loading images.

Link: https://lore.kernel.org/r/20241021081934.289473-1-sjg@chromium.org
2024-10-25 14:22:36 -06:00
Simon Glass
9252b7f867 meminfo: Show the lmb records
Add the lmb records onto the end of the memory map.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-25 14:22:24 -06:00
Simon Glass
1c30f7a844 lmb: Export the lmb data structure
Provide a way to access this data structure so that the meminfo command
can use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-25 14:22:24 -06:00
Simon Glass
f18c048e6e cmd: Update the meminfo command to show the memory map
U-Boot has a fairly rigid memory map which is normally not visible
unless debugging is enabled in board_f.c

Update the 'meminfo' command to show it. This command does not cover
arch-specific pieces but gives a good overview of where things are.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-25 14:22:24 -06:00
Simon Glass
8306c3b035 cmd: Move meminfo command into its own file
In preparation for expanding this command, move it into a separate file.
Rename the function to remove the extra underscore. Update the number of
arguments to 1, since 3 is incorrect.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-25 14:22:24 -06:00
Simon Glass
48008ec711 bootstage: Allow counting memory without strings
The bootstage array includes pointers to strings but not the strings
themselves. The strings are added when stashing, but including them in
the size calculation gives an inflated view of the amount of space used
by the array.

Update this function so it can return the amount of memory used by the
bootstage structures themselves, without the strings which they point
to.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-25 14:22:24 -06:00
Simon Glass
040ab117c7 global_data: Add some more accessors
Add accessors for bloblist, bootstage, trace and video to avoid needing
more #ifdefs in the C code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-25 14:22:24 -06:00
Simon Glass
41fecdc94e common: Tidy up how malloc() is inited
The call to malloc() is a bit strange. The naming of the arguments
suggests that an address is passed, but in fact it is a pointer, at
least in the board_init_r() function and SPL equivalent.

Update it to work as described. Add a function comment as well.

Note that this does adjustment does not extend into the malloc()
implementation itself, apart from changing mem_malloc_init(), since
there are lots of casts and pointers and integers are used
interchangeably.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-25 14:22:24 -06:00
Simon Glass
09f5be613a common: Fix up malloc() comment in reserve_noncached()
The function name has changed, so update it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-25 14:22:24 -06:00
Tom Rini
3fbc657669 Merge tag 'xilinx-for-v2025.01-rc1-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze
AMD/Xilinx changes for v2025.01-rc1 v2

.mailmap:
- Switch Padmarao's email to AMD one

zynq_spi:
- Make update_stripe static

xilinx:
- Update DT description for EMMCs

zynqmp:
- Update logic around RPUs and tcm handling
- Update bootmenu selection for Kria
- Add description for SC vm-p-b1369
- Fix comment about file location in zynqmp-p-a2197-00-revA.dts

versal:
- Fix logic around USB boot

versal2:
- Disable useless features for Mini configurations

versal-net:
- Get rid of current-speed DT property from mini configuration

microblaze:
- Fix scriptaddr location

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCZxuweAAKCRDKSWXLKUoM
# IY1iAKCH/GKJHEXFfLvr0OGuO6c1SX9+ZQCfTjRAHrL186X6LUgjOpmtmsrVK1c=
# =4gY0
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 25 Oct 2024 08:51:36 AM CST
# gpg:                using DSA key 1B3CD4CCBD79989413D1C31ECA4965CB294A0C21
# gpg: Good signature from "Michal Simek <monstr@monstr.eu>" [full]
# gpg:                 aka "Michal Simek (Xilinx) <michals@xilinx.com>" [full]
# gpg:                 aka "Michal Simek (Xilinx) <michal.simek@xilinx.com>" [full]
# gpg:                 aka "Michal Simek (AMD) <michal.simek@amd.com>" [unknown]
2024-10-25 11:55:23 -06:00
Tom Rini
e8a45b50bb Merge tag 'u-boot-dfu-20241025' of https://source.denx.de/u-boot/custodians/u-boot-dfu
CI: https://source.denx.de/u-boot/custodians/u-boot-dfu/-/pipelines/22962

Dfu:
- Rely on device tree for spi speed/mode on spi flash

Android Image:
- Fix booting on platforms having > 4GiB of memory
- Decompress boot image to kernel_addr_r when compression is enabled
- Honor CONFIG_SYS_LOAD_ADDR when mkbootimg uses default address

Bcb:
- Rework bcb command to use U_BOOT_LONGHELP
- Move ab_select cmd to bcb cmd
- Implement ab_dump command in bcb
- bcb: Write '_<slot>' instead of '<slot>' to misc partition
2024-10-25 08:35:56 -06:00
Padmarao Begari
b3d9c6c714 .mailmap: update e-mail address for Padmarao Begari
Update e-mail address.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20241023085127.3450680-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 16:21:00 +02:00
Venkatesh Yadav Abbarapu
874ea27392 spi: zynq_qspi: Add missing prototype for update_stripe
Add missing prototype to fix the sparse warning,
warning: no previous prototype for 'update_stripe'
[-Wmissing-prototypes].

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20241016044402.18052-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 16:19:55 +02:00
Jonas Karlman
352cec9a05 board: rockchip: Add Hardkernel ODROID-M1S
The Hardkernel ODROID-M1S is a single-board computer based on Rockchip
RK3566 SoC. It features e.g. 4/8 GB LPDDR4 RAM, 64 GB eMMC, SD-card,
GbE LAN, HDMI 2.0, M.2 NVMe and USB 2.0/3.0.

Features tested on a ODROID-M1S 8GB rev1.0 20230906:
- SD-card boot
- eMMC boot
- Ethernet
- PCIe/NVMe
- USB gadget
- USB host

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:50:47 +08:00
Jonas Karlman
6a5a1475b1 arm64: dts: rockchip: Add Hardkernel ODROID-M1S
The Hardkernel ODROID-M1S is a single-board computer based on Rockchip
RK3566 SoC. It features e.g. 4/8 GB LPDDR4 RAM, 64 GB eMMC, SD-card,
GbE LAN, HDMI 2.0, M.2 NVMe and USB 2.0/3.0.

Add initial support for eMMC, SD-card, Ethernet, HDMI, PCIe and USB.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20240827211825.1419820-5-jonas@kwiboo.se
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 10dc64fe0f980c47c7e747885ddf7a8c12780337 ]

(cherry picked from commit f811548e758b52896f725753086c42b49dc42c0d)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:50:47 +08:00
Jonas Karlman
74fec32ff7 arm64: dts: rockchip: Correct vendor prefix for Hardkernel ODROID-M1
The vendor prefix for Hardkernel ODROID-M1 is incorrectly listed as
rockchip. Use the proper hardkernel vendor prefix for this board, while
at it also drop the redundant soc prefix.

Fixes: fd3583267703 ("arm64: dts: rockchip: Add Hardkernel ODROID-M1 board")
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20240827211825.1419820-3-jonas@kwiboo.se
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: 735065e774dcfc62e38df01a535862138b6c92ed ]

(cherry picked from commit e7259a2c4a6f2ebdfc96b8bbffc77fe67604b11f)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:50:47 +08:00
Jonas Karlman
c099b246ee rockchip: Migrate to use USB_DWC3_GENERIC on RK3328
After the full convertion of usb gadget interrupt handling to
usb_gadget_generic_ops, it is now possible to use DM_USB_GADGET,
DWC2_OTG and DWC3_GENERIC together without causing a build error.

Change to use USB_DWC3_GENERIC instead of USB_XHCI_DWC3 to complte the
migration initiated in commit 1bc4e8eb1d ("rockchip: Migrate to use
DM_USB_GADGET on RK3328"). No functional change is intended.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:49:23 +08:00
Jonas Karlman
bcc7eefa4c board: rockchip: Add Hardkernel ODROID-M2
The Hardkernel ODROID-M2 is a single-board computer based on Rockchip
RK3588S2 SoC. It features e.g. 8/16 GB LPDDR5 RAM, 64 GB eMMC, SD-card,
GbE LAN, HDMI 2.0, M.2 NVMe and USB 2.0/3.0/Type-C.

Features tested on a ODROID-M2 16GB rev1.0 20240611:
- SD-card boot
- eMMC boot
- Ethernet
- PCIe/NVMe
- USB gadget
- USB host

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:49:12 +08:00
Jonas Karlman
1d557d28b6 arm64: dts: rockchip: Add Hardkernel ODROID-M2
The Hardkernel ODROID-M2 is a single-board computer based on Rockchip
RK3588S2 SoC. It features e.g. 8/16 GB LPDDR5 RAM, 64 GB eMMC, SD-card,
GbE LAN, HDMI 2.0, M.2 NVMe and USB 2.0/3.0/Type-C.

Add initial support for eMMC, SD-card, Ethernet, PCIe and USB.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20240901112020.3224704-3-jonas@kwiboo.se
Signed-off-by: Heiko Stuebner <heiko@sntech.de>

[ upstream commit: ce48b8c976ce439c336def6e06bf8224a8ff9125 ]

(cherry picked from commit 7ba62d8b4cb010c6fcb7077550b46d5f5fb5af6d)
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:49:12 +08:00
Daniel Semkowicz
3edf14413d rockchip: rk3399: Weaken dependency on SPL serial
Allow to disable serial console in SPL. Weak dependency is already used
with TPL serial.

Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:48:59 +08:00
Chris Morgan
55f6d05350 board: rockchip: Enable PD_VO before driver access
Enable the PD_VO power domain before driver access on the rk3568 SoC.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:48:41 +08:00
Chris Morgan
9119efab3f board: rockchip: Remove ARM SCMI Support from RGxx3
Remove config options for ARM SCMI. It is not required to boot the
board and when using the most recent mainline A-TF it actually causes
the device to freeze during boot due to missing SCMI support.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:48:41 +08:00
Chris Morgan
3f0c97be87 board: rockchip: Add vdd_cpu reg fixup for RGXX3 Series
Some of the Powkiddy devices switched to using a different vendor for
the vdd_cpu regulator. Unfortunately the device does not have a new
revision to denote this, so users have no way of knowing in advance.

Add code to detect if a device is present at addresses 0x1c or 0x40 on
the i2c0 bus and update the devicetree if needed.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:48:41 +08:00
Chris Morgan
7344fa41a2 board: rockchip: Convert Anbernic RGxx3 to OF_UPSTREAM
Refactor the board detection logic (again) to make it compatible with
the upstream device-trees, and switch to OF_UPSTREAM.

Now the device boots with the device-tree for the 353P, and then
loads the correct device tree (of 10) in the later stages of SPL.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:48:40 +08:00
Lukasz Czechowski
609e71e68e rockchip: px30: clk: add UART0 clock getter/setter
Add dedicated getter and setter for SCLK_UART0_PMU.
This allows the driver to correctly handle UART0 clocks, and thus
it fixes the issues with UART0 not working in case DEBUG_UART is
disabled.
Unlike other Rockchip SoCs, i.e. rk3399, in the PX30 the default
clock source for UART is GPLL, instead of external oscillator.
If the DEBUG_UART is enabled, the clock source is changed in
board_debug_uart_init function to 24Mhz oscillator, which also
matches the fallback value obtained from DT node.
In case the DEBUG_UART is disabled, the UART clock source remains
default, and the DM serial driver wrongly configures the baud rate,
resulting in broken communication.
By implementing the UART clock getter/setter, the serial driver
can probe the actual configuration and corectly configure itself.
The DEBUG_UART settings now should not affect it.

The driver supports GPLL and 24M oscillator. NPLL and USBPHY480M
sources, that are managed by CRU, are not yet handled, as likely
they won't be used in real scenarios.

Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:47:44 +08:00
FUKAUMI Naoki
698e5830aa arm: dts: rockchip: turn LEDs on at boot for Radxa boards
Basically, Radxa's boards are intended to turn LEDs on at U-Boot.
add `default-state = "on"` to u-boot.dtsi.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:46:40 +08:00
FUKAUMI Naoki
77b621f7fd configs: rockchip: enable gpio-leds driver for Radxa boards
Basically, Radxa's boards are intended to turn LEDs on at U-Boot.
enable gpio-leds driver and led command.

Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:46:40 +08:00
FUKAUMI Naoki
e59a6c5523 arm: dts: rockchip: fix dts for Radxa ROCK 4C+
ROCK Pi 4 series and ROCK 4C+ cannot share .dtsi file because 4C+ is
different board.

add rk3399-rock-pi-4-u-boot.dtsi contents and remove dependency of it.

no functional change is intended.

Fixes: 71a95e2efd ("arm: dts: rockchip: add Radxa ROCK 4C+")
Suggested-by: Dragan Simic <dsimic@manjaro.org>
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2024-10-25 20:43:29 +08:00
Michal Simek
93590a08e3 amd: Disable LMB, BOOTM, MTD and EFI loader for mini configurations
Mini configurations don't need these features that's why disable them.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6a263cf5f6b7c7f8e0bfc11649887f2760385d0e.1728286203.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Padmarao Begari
dcded57038 arm64: zynqmp: fix tcm initialization for mini u-boot
Fix the issue introduced by commit fed064477c2c
("arm64: zynqmp: Print an error for split to lock mode switch").
The mini u-boot is hanging, because of the tcm is not initialized.
The mini u-boot is using the tcm to reserve the mmu table and
currently it is not initialized, so allowing u-boot to initialize
the tcm.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20241011113435.1966604-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 14:10:31 +02:00
Michal Simek
5b3c460617 arm64: xilinx: Fix file location described in zynqmp-p-a2197-00-revA.dts
Fix pointers to incorrect file name described in DT.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409250603.7achimjs-lkp@intel.com/
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6e6017ad613d452d16ce0f7fba8a6ce32b174413.1727247725.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Michal Simek
359b640d6a arm64: versal-net: Remove current-speed from mini
U-Boot code is not reading this variable that's why remove it from DT.
PL011 code is automatically using CONFIG_BAUDRATE instead.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/3de28cc8bbf9571d24673a60809c2075fe2f44c3.1727247837.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Michal Simek
b62f095894 arm64: zynqmp: Add description for SC on vm-p-m1369 board
Board is very similar to vn-p-b2197 with subset of functinality.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/fbc6d56c4aaa33113e35a53520320f4050ed141e.1727247815.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Paul Alvin
20136d13a3 xilinx: Add cap-mmc-hw-reset and no-sd, no-sdio property to eMMC
Add "cap-mmc-hw-reset" property to the eMMC DT node to perform the
eMMC device hardware reset.
Also, add "no-sd", "no-sdio" properties to eMMC DT node to skip
unwanted sd, sdio related commands during initialization for eMMC
device as this may lead to unnecessary register dump.

Signed-off-by: Paul Alvin <alvin.paulp@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/b31554816a3378365143e9f5c266f6386af0a438.1727247785.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
John Vicky Vykuntapu
2f8a471231 xilinx: zynqmp: Remove conditional check for bootmenu_default variable
As per bootmenu support added default boot options to CC on AMD CCs and
default to SOM on others.
However, if no secondary boot device is enabled in the design,it should
be the default boot option for SOM when combined with AMD CCs because it
only contains SOM peripherals.
To address this issue, The conditional check for the bootmenu_default
variable was removed, and it has always been set to SOM as the default
boot option.
In this way, users can choose preferred boot options from the bootmenu
based on the boot devices configured in the design for AMD CCs.

Fixes: 61bf0fa866 ("xilinx: zynqmp: Add bootmenu support")
Signed-off-by: John Vicky Vykuntapu <johnvicky.vykuntapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0e30b44ce3b478fdec21edad8d896f4d438ce331.1727867715.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Padmarao Begari
5550a152ba xilinx: common: fix script address for Microblaze
Fix the issue introduced by commit 067e029480
("board: xilinx: Remove conditional check for Microblaze").
The scriptaddr should be physical location not really offset
from start of DDR. When U-Boot is not found boot.scr script
address in device tree, then it is assigned  based on script
address  and ram base address for Microblaze and i.e exceeding
DDR memory. To fix this, the script address is assigned
initially with offset instead of address. Later it is added
with ram base address and gets the physical address.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20241001082537.830286-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 14:10:31 +02:00
Michal Simek
f346dd67d0 arm64: versal: Wire USB0 in distro boot
For unknown reason USB host hasn't been described for distro boot that's
why wire it now.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/9715605c232ce38a36a200204c14208b9d76cd83.1727694230.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Michal Simek
88f43aa39c arm64: versal: Remove description for USB1
There is only one USB controller that's why remove description for USB1.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f148161ee489d19d708df1b4fa7477821e06bb55.1727694230.git.michal.simek@amd.com
2024-10-25 14:10:31 +02:00
Padmarao Begari
342ccba558 arm64: zynqmp: Fix tcminit mode value based on argv
The RPU pytest introduced by commit e894c10c04
("test/py: zynqmp_rpu: Add test for loading RPU apps") expects
3rd parameter as string not a number that's why extend command
to actually handle both. The issue with existing code is that
when any non number string is passed hextoul returns 0. For
backward compatibility zynqmp tcminit 0/1 can be still used but
it is recommended to use strings instead.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20240930043814.530181-3-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 14:10:31 +02:00
Padmarao Begari
0ac27a62f9 arm64: zynqmp: Print an error for split to lock mode switch
The zynqmp tcminit crashes the U-Boot when switching from
r5-mode "split" to "lockstep" instead it should throw an error.
When cpu is enabled, the check_tcm_mode() function checks
if the previous mode is "split", switch mode is "lockstep" then
it returns the error code and the initialize_tcm() function is not
updating the global control register of the RPU instead it prints
the error message. When cpu is disabled, the check_tcm_mode()
function returns the success code for switch split to lockstep mode.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20240930043814.530181-2-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-25 14:10:31 +02:00
Rasmus Villemoes
4f5c48d5fd imx8m: set sane default value for SPL_LOAD_FIT_ADDRESS
I enabled IMX_HAB on an imx8mp board, but even though I knew about the
implementation, I forgot that I had to provide a sane value for
SPL_LOAD_FIT_ADDRESS. The help text for IMX_HAB doesn't mention this
implicit requirement, and there's no build-time warning; the default
0x0 value just ends up being returned from
board_spl_fit_buffer_addr(), obviously resulting in a non-booting
board.

The existing imx8m* board configs that set a non-zero value currently
all use 0x44000000. The actual value doesn't matter too much, but 0 is
always wrong for imx8m platforms. So just use 0x44000000 as default
for those platforms.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2024-10-25 09:07:48 -03:00
Tim Harvey
d7f27a4fb3 mmc: fsl_esdhc: Convert to use livetree API for fdt access
Convert to using livetree API functions.

Without this if livetree is enabled (OF_LIVE) the fsl_esdhc_imx
driver will fail to read vendor-specific properties from the dt.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-10-25 09:07:43 -03:00
Tim Harvey
ad2aad701a i2c: mxc_i2c: Convert to use livetree API for fdt access
Convert to using livetree API functions.

Without this if livetree is enabled (OF_LIVE) the mxc-i2c
driver will fail to support scl-gpios and sda-gpios for
i2c bus recovery.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-10-25 09:07:39 -03:00
Tim Harvey
d279f5d3a8 imx: power-domain: Convert to use livetree API for fdt access
Convert to using livetree API functions.

Without this if livetree is enabled (OF_LIVE) the imx8m-power-domain
driver will (silently) fail to probe its children leaving you with
no power domain support causing issues with certain devices.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-10-25 09:07:35 -03:00
Tim Harvey
59382d2cb9 pinctrl: imx: Convert to use livetree API for fdt access
Convert to using livetree API functions.

Without this if livetree is enabled (OF_LIVE) the imx8mq-pinctrl
driver will (silently) fail to probe causing issues with multiple
devices.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-10-25 09:07:30 -03:00
Hiago De Franco
7f62b52305 verdin-imx8m{m|p}: defconfig: update fastboot buffer size/address
Remove FASTBOOT_BUF_SIZE from verdin-imx8mm_defconfig and
verdin-imx8mp_defconfig to use the default value of 0x7000000, aligning
with other Toradex boards.

Update FASTBOOT_BUF_ADDR to 0x44200000, consistent with the value in
previous downstream NXP U-Boot releases. This will make fastboot
applications continue working with upstream U-Boot by using the same
address.

Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-10-25 09:07:22 -03:00
Peng Fan
b16bd53ffa imx: Support i.MX93 9X9 QSB board
Add i.MX93 9x9 Quick Start Board support.
 - Two ddr scripts included w/o inline ecc feature.
 - SDHC/NETWORK/I2C/UART supported
 - PCA9450 supported, default over drive mode
 - Documentation added.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:07:16 -03:00
Peng Fan
7372536309 imx9: clock: Add 800MHz fracpll entry
Add 800MHz fracpll entry to support DDR 3200MTS.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:05:50 -03:00
Peng Fan
204a62c64c arm: dts: imx8qm-mek: fix boot
serial_init runs into panic because no serial device found.
Update the device tree to include bootph-some-ram for some critial
devices needed in pre-reloc stage

Also update usdhc related properties to avoid card initialization
failure.

Fixes: 8c103c33fb ("dm: dts: Convert driver model tags to use new schema")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:04:29 -03:00
Peng Fan
1010ea55ea arm: dts: imx8qxp-mek: fix boot
serial_init runs into panic because no serial device found.
Update the device tree to include bootph-some-ram for some critial
devices needed in pre-reloc tage

Fixes: 8c103c33fb ("dm: dts: Convert driver model tags to use new schema")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:04:25 -03:00
Fabio Estevam
a5383f4b6a mx6ul_14x14_evk: Convert to watchdog driver model
Commit 68dcbdd594 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:04:20 -03:00
Fabio Estevam
c39eb90f37 mx6ul_14x14_evk: Remove unneeded USB board code
With CONFIG_DM_USB, there is no longer the need for any USB board code
anymore.

Remove the unneeded USB board code.

While at it, also remove the uneeeded CONFIG_USB_MAX_CONTROLLER_COUNT
option.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-10-25 09:04:16 -03:00
Andy Shevchenko
08ae12be85 Mark a few functions static inline
The function prototypes that are defined in the header most likely has
to be marked as static inline. This helps avoiding the compiler warnings:

  include/mux.h:120:14: warning: no previous prototype for ‘mux_control_states’ [-Wmissing-prototypes]
  include/mux.h:125:18: warning: no previous prototype for ‘mux_control_select’ [-Wmissing-prototypes]
  include/mux.h:133:5: warning: no previous prototype for ‘mux_control_deselect’ [-Wmissing-prototypes]
  include/mux.h:138:21: warning: no previous prototype for ‘mux_control_get’ [-Wmissing-prototypes]
  include/mux.h:143:6: warning: no previous prototype for ‘mux_control_put’ [-Wmissing-prototypes]
  include/mux.h:147:21: warning: no previous prototype for ‘devm_mux_control_get’ [-Wmissing-prototypes]
  include/mux.h:153:5: warning: no previous prototype for ‘dm_mux_init’ [-Wmissing-prototype ]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2024-10-24 11:21:48 -06:00
Andy Shevchenko
e7dad2d37e cmd: nvedit: Mark a few functions static
Some functions are not used anywhere except the same file
where they are defined. Mark them static. This helps avoiding
the compiler warnings:

  cmd/nvedit.c:201:5: warning: no previous prototype for ‘do_env_ask’ [-Wmissing-prototypes]
  cmd/nvedit.c:315:5: warning: no previous prototype for ‘do_env_callback’ [-Wmissing-prototypes]
  cmd/nvedit.c:384:5: warning: no previous prototype for ‘do_env_flags’ [-Wmissing-prototype ]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-24 11:21:44 -06:00
Heinrich Schuchardt
db7e81154e block: make blk_create_device() static
There are no users of the blk_create_device() function outside the uclass.
Let's make it static. This will ensure that new block drivers will use
blk_create_devicef().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-24 11:20:58 -06:00
Heinrich Schuchardt
9c19c13bda rockchip: block: simplify rkmtd driver
By using blk_create_devicef() instead of blk_create_devicef() the driver
can be simplified and brought into line with other block device drivers.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Johan Jonker <jbx6244@gmail.com>
2024-10-24 11:20:45 -06:00
Vaishnav Achath
cfd03b9f5b arm: dts: k3-j722s-r5-evm: Add LPDDR4 4000 MT/s configs
Add the latest 4000 MT/s DDR config generated by
Jacinto7_DDRSS_RegConfigTool Rev 0.11 for J722S , make it the
default config and update A53 default clock to 1.4 GHz matching
the default speed grade (K).

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
2024-10-24 11:20:14 -06:00
Marek Vasut
f692cfeeb3 boot: Introduce BOOTSTD_MENU to control bootflow menu build
The bootflow_menu.c code depends on e.g. scene_txt_set_font(),
which is only built when CONFIG_EXPO is enabled. Introduce new
Kconfig symbol BOOTSTD_MENU which depends on EXPO to prevent
triggering errors like these in case e.g. CONFIG_VIDEO=n :

"
boot/bootflow_menu.c:158:(.text+0x8851): undefined reference to `scene_txt_set_font'
"

Make the symbol depend on BOOTSTD_FULL as well to get rid of
the Makefile dependency workaround. Since BOOTSTD_FULL is not
available in SPL, do not define SPL variant of BOOTSTD_MENU.

Fix up bootflow test accordingly.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-24 11:19:55 -06:00
Philip Balister
3cf94b6f41 mcp230xx_gpio.c: Add a missing include file.
* Fixes a warning about implicit declaration of udelay.

Signed-off-by: Philip Balister <philip@balister.org>
2024-10-24 11:19:31 -06:00
Tom Rini
a0e808dd0f Merge https://source.denx.de/u-boot/custodians/u-boot-spi
CI: https://source.denx.de/u-boot/custodians/u-boot-spi/-/pipelines/22949
2024-10-24 09:13:45 -06:00
Han Xu
a3384940ed mtd: spi-nor: Add mt35xu01gbba octal mode SPI NOR flash
Add SPI NOR flash id for mt35xu01gbba which supports 4 bytes address with
octal mode read.

Signed-off-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
2024-10-24 18:10:50 +05:30
Dmitry Dunaev
5c73c05f20 mtd: spi-nor-ids: Add Puya Semiconductor chips description
Added support for the Puya Semiconductor chips.

The datasheet can be found here:
https://www.puyasemi.com/h_xilie715.html

Signed-off-by: Dmitry Dunaev <dunaev@tecon.ru>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
2024-10-24 18:08:51 +05:30
Neil Armstrong
21e7fa0e3a image: android: handle ramdisk default address
The two tools that create android boot images, mkbootimg and the fastboot
client, set the kernel address by default to 0x11008000.

U-boot always honors this field, and will try to copy the ramdisk to
whatever value is set in the header, which won't be mapped to the actual
RAM on most platforms, resulting in the kernel obviously not booting.

All the targets in U-Boot right now will download the android boot image
to CONFIG_SYS_LOAD_ADDR, which means that it will already have been
downloaded to some location that is suitable to use the ramdisk in-place
for header version 0 to 2. For header version 3 and later, the ramdisk
can't be used in-place to use ramdisk_addr_r in this case.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241017-topic-fastboot-fixes-mkbootimg-v2-3-c3927102d931@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:48:14 +02:00
Neil Armstrong
d5a85e8e95 image: android: do not boot XIP when kernel is compressed
When trying to boot an android boot image with a compressed
kernel, if the kernel is used in-place because it was created
with mkbootimg, the space will be too small to properly
uncompress.

Take in account the compressed state, and if compressed
use the kernel_addr_r which should be big enough.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241017-topic-fastboot-fixes-mkbootimg-v2-2-c3927102d931@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:48:14 +02:00
Neil Armstrong
8f8e646d79 image: android: use ulong for kernel address
When booting with platforms having > 4GiB of memory,
the kernel physical address can be more than 32bits.

Use ulong like all the other addresses, and fix the
print to show the > 32bits address numbers.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Link: https://lore.kernel.org/r/20241017-topic-fastboot-fixes-mkbootimg-v2-1-c3927102d931@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:48:14 +02:00
Dmitry Rokosov
55c876c6f9 common: android_ab: fix slot suffix for abc block
To align with the official Android BCB (Bootloader Control Block)
specifications, it's important to note that the slot_suffix should start
with an underscore symbol.

For a comprehensive understanding of the expected slot_suffix format in
userspace, please refer to the provided reference [1].

Links:
[1] - https://source.android.com/docs/core/architecture/bootloader/updating#slots

Based-on: https://android-review.googlesource.com/c/platform/external/u-boot/+/1446439
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-6-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Dmitry Rokosov
a995084beb cmd: bcb: introduce 'ab_dump' command to print BCB block content
It's really helpful to have the ability to dump BCB block for debugging
A/B logic on the board supported this partition schema.

Command 'bcb ab_dump' prints all fields of bootloader_control struct
including slot_metadata for all presented slots.

Output example:
=====
> board# bcb ab_dump ubi 0#misc
> Read 512 bytes from volume misc to 000000000bf07580
> Read 512 bytes from volume misc to 000000000bf42f40
> Bootloader Control:       [misc]
> Active Slot:              _a
> Magic Number:             0x42414342
> Version:                  1
> Number of Slots:          2
> Recovery Tries Remaining: 0
> CRC:                      0x2c8b50bc (Valid)
>
> Slot[0] Metadata:
> 	- Priority:         15
> 	- Tries Remaining:  0
> 	- Successful Boot:  1
> 	- Verity Corrupted: 0
>
> Slot[1] Metadata:
> 	- Priority:         14
> 	- Tries Remaining:  7
> 	- Successful Boot:  0
> 	- Verity Corrupted: 0
====

The ab_dump command allows you to display ABC data directly on the
U-Boot console. During an A/B test execution, this test verifies the
accuracy of each field within the ABC data.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-5-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Dmitry Rokosov
b1bc9a2fc9 cmd: bcb: change strcmp() usage style in the do_bcb_ab_select()
In the entire cmd/bcb.c file, the return value of strcmp() is not
directly compared to 0. Therefore, it would be better to maintain this
style in the new do_bcb_ab_select() function as well.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-4-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Dmitry Rokosov
b523b4d2c3 treewide: bcb: move ab_select command to bcb subcommands
To enhance code organization, it is beneficial to consolidate all A/B
BCB management routines into a single super-command.
The 'bcb' command is an excellent candidate for this purpose.

This patch integrates the separate 'ab_select' command into the 'bcb'
group as the 'ab_select' subcommand, maintaining the same parameter list
for consistency.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-3-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Dmitry Rokosov
a8ca7d46ea cmd: bcb: rework the command to U_BOOT_LONGHELP approach
U_BOOT_LONGHELP and U_BOOT_CMD_WITH_SUBCMDS offer numerous advantages,
including:
- common argument restrictions checking
- automatic subcommand matching
- improved usage and help handling

By utilizing the U_BOOT_LONGHELP approach, we can reduce the amount of
command management code and describe commands more succinctly.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-2-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Dmitry Rokosov
01874ac7c0 include/android_ab: move ab_select_slot() documentation to @ notation
There are new function documentation requirements in U-Boot, so apply
these changes for android_ab.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # vim3_android
Link: https://lore.kernel.org/r/20241017-android_ab_master-v5-1-43bfcc096d95@salutedevices.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:45:55 +02:00
Neil Armstrong
97c29f868d dfu: sf: rely on DT for spi speed and mode
Align with cmd_sf, and try to rely on DT for spi speed and mode,
and still fallback on spi_flash_probe() if it fails.

With the current scheme, spi_flash_probe() will be called
with CONFIG_SF_DEFAULT_SPEED and CONFIG_SF_DEFAULT_MODE
with are set to 0 by default on DT platforms using DM_SPI_FLASH.

Like cmd_sf, keep the option to specify the speed and mode
from the dfu_alt_mode string, but rely on DT properties
if not specified.

Using CONFIG_SF_DEFAULT_SPEED and CONFIG_SF_DEFAULT_MODE
makes the SPIFC controller on Amlogic Meson G12B & SM1
hardware fail and is unable to recover until a system reboot.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241001-uboot-topic-dfu-sf-dt-v2-2-67f7acfa3ff5@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:42:00 +02:00
Neil Armstrong
0872ac098a spi: add DM_SPI_FLASH compatibility inline functions
To smoothly handle the transition from the legacy SPI FLASH
API to the driver model API, add the DM functions
as dummy inline functions.

Today, client code uses #if/#else conditionals, but it's better
to use if(IS_ENABLED()) to make sure all code builds fine
and avoid configuration hell, leaving the compiler remove
the dead code.

An example is cmd/sf, which could make use of those dummy
functions to drop the conditional compilation.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241001-uboot-topic-dfu-sf-dt-v2-1-67f7acfa3ff5@linaro.org
[mkorpershoek: removed duplicate "the" from commit msg]
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-24 09:41:52 +02:00
Tom Rini
7af813341d Merge https://source.denx.de/u-boot/custodians/u-boot-watchdog
CI: https://dev.azure.com/sr0718/u-boot/_build/results?buildId=378&view=results

* watchdog: gpio_wdt: add support for stoppable devices (Rasmus)
* watchdog: Add DaVinci's watchdog support (Bastien)
* cyclic: disentangling cyclic API from schedule() (Rasmus)
* watchdog: introduce separate SPL symbol for WDT_GPIO (Rasmus)
2024-10-23 08:33:56 -06:00
Rasmus Villemoes
ed3410ee60 watchdog: introduce separate SPL symbol for WDT_GPIO
Currently, enabling WDT_GPIO on a board which uses SPL, but does not
have SPL_WDT, SPL_DM_GPIO or SPL_OF_CONTROL enabled, breaks the build.

Make it possible to use the WDT_GPIO driver on such boards by
introducing a separate symbol controlling whether the driver is built
for SPL. Make it default to WDT_GPIO such that boards that already
have it enabled and all the SPL prerequisites satisfied will continue
to have it in SPL.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 07:02:25 +02:00
Rasmus Villemoes
6459964d73 global_data.h: remove unnecesary include of cyclic.h
Nothing in cyclic.h is needed to define struct global_data, so do not
include that header.

If any .c file relies on getting cyclic.h through asm/global_data.h,
it needs to include it itself.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 07:02:25 +02:00
Rasmus Villemoes
a21aed0597 boot: cedit: include u-boot/schedule.h
This TU currently relies on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
02e352f0da ddr: altera: include u-boot/schedule.h
These TUs currently rely on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
4da44fa646 i2c: rzg2l: include u-boot/schedule.h
This TU currently relies on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
ed8a807df8 lib/sha*: include u-boot/schedule.h instead of cyclic.h
These library routines obviously do not make use of the
cyclic_register() etc. API, but do need to call schedule(). Include
the proper header.

Eventually, their ifdef logic should be updated to avoid talking about
CONFIG_WATCHDOG.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
bd66575489 watchdog.h: change include of cyclic.h to u-boot/schedule.h
Nobody relies on getting the cyclic API declared by including the
watchdog.h header, but for historical reasons, many TUs include
watchdog.h to get a declaration of schedule(). Now that we have a
dedicated header for just that, include that header instead of
cyclic.h.

Eventually, all TUs that call schedule() should themselves include
u-boot/schedule.h, but this is a step towards getting rid of
unnecessary include statements in cyclic.h and global_data.h.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
307449de90 cyclic: make cyclic_run static
The only caller left is schedule(); everybody outside cyclic.c now
calls or references schedule().

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
e3bc477e80 test: dm: wdt: replace cyclic_run() by schedule()
This is the last place outside of cyclic.c that references
cyclic_run() directly. Replace by schedule(), so that cyclic_run() can
be made private. This also better matches what I believe commit
29caf9305b ("cyclic: Use schedule() instead of WATCHDOG_RESET()")
intended to do.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
92957de362 fs/cramfs: use schedule instead of cyclic_run as callback
Prior to commit 29caf9305b ("cyclic: Use schedule() instead of
WATCHDOG_RESET()") we had

/* Currently only needed for fs/cramfs/uncompress.c */
static inline void watchdog_reset_func(void)
{
       WATCHDOG_RESET();
}

and .outcb was set to that watchdog_reset_func().  Said commit changed
that .outcb to cyclic_run instead of schedule, which would otherwise
match all the other WATCHDOG_RESET replacements done. As the
HW_WATCHDOG case is not handled by cyclic_run, this seems to be an
oversight.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
b279aa505d m68k: asm/ptrace.h: include linux/types.h
Modifying a generic header like watchdog.h, removing not directly used
asm/ptrace.h header relies on whoever includes it to already have
included something that defines the type ulong.

Make the asm/ptrace.h header self-contained by including the proper
header.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
9e62892228 led: include cyclic.h in led_sw_blink.c
This makes use of the cyclic API but relies on implicitly getting the
appropriate declarations through some nested include. Include the
cyclic.h header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
4457e5c61d cyclic: introduce u-boot/schedule.h
I noticed an "unnecessary" include of <cyclic.h> in
global_data.h, in the sense that nothing in cyclic.h is needed in
order to define 'struct global_data'.

Well, it's not unnecessary, as it implicitly ensures that everybody
gets a declaration of schedule(), and schedule() is (obviously) called
all over the tree. Almost none of those places directly include
<cyclic.h>, but for historical reasons, many do include
<watchdog.h> (most schedule() instances are replacements of
WATCHDOG_RESET()).

However, very few TUs actually need the declarations of the
cyclic_register() and struct cyclic_info, and they also don't really
need anything from the watchdog.h header.

So introduce a new header which just contains a declaration of
schedule(), which can then be included from all the places that do
call schedule(). I removed the direct reference to cyclic_run(),
because we shouldn't have two public functions for doing roughly the
same without being very explicit about when one should call one or the
other.

Testing of later patches that explicitly include <schedule.h> when
schedule() is used revealed a problem with host tool build on win32,
which apparently picked up a host <schedule.h>. To avoid that problem,
put the new header in include/u-boot/ and hence make the include
statements say <u-boot/schedule.h>.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
6250945367 doc: cyclic: remove reference to WATCHDOG_RESET
WATCHDOG_RESET is no more. Replace the reference by schedule().

While here, rearrange the sentence a bit so that "cyclic_run()"
becomes the object and "the main function responsible for calling all
registered cyclic functions" a parenthetical rather than the other way
around, which at least to me makes it more readable.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Bastien Curutchet
f9318b067f drivers: watchdog: Add DaVinci's watchdog support
Add support for the DaVinci's watchdog timer

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Rasmus Villemoes
7f3d53c8bf watchdog: gpio_wdt: add support for stoppable devices
Back when I added this driver in commit 2ac8490412, I wrote

    The corresponding linux driver apparently has support for some
    watchdog circuits which can be disabled by tri-stating the gpio, but I
    have never actually encountered such a chip in the wild;

That has changed now; I have a board with just such a watchdog on my
desk currently. Add support for that.

- For a hw_algo="toggle" device, the gpio is requested as output if the
  always-running flag is set, otherwise as input.

- The ->start() method is updated to change the direction to output when
  required (i.e. it is not always-running).

- The ->stop() method is implemented, but of course reports failure if
  always-running.

As I still haven't met any hw_algo="level" devices, I'm not entirely
sure how they fit in, but I'm borrowing logic from the corresponding
linux driver:

- In ->probe(), such devices always request the gpio as GPIOD_IS_OUT.

- In ->stop(), the linux driver has an "eternal ping" comment and sets
  the gpio to (logic) high.

Stefan:
Added necessary changes in test/dm/wdt.c to fix CI build breakage, as
suggested by Rasmus.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-23 06:52:38 +02:00
Tom Rini
392ff1449f Merge tag 'video-20241022' of https://source.denx.de/u-boot/custodians/u-boot-video
CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/22907

* VNBYTES() comment fix
* add VIDEO dependency for FDT_SIMPLEFB
* fdt_simplefb: drop not needed CONFIG_VIDEO check
* am62x,evm: preserve splash screen while OS is booting
* simplefb: warning fix for CONFIG_FDT_64BIT=n
2024-10-22 14:11:20 -06:00
Eva Kurchatova
722073a065 video: simplefb: Fix build warn with CONFIG_FDT_64BIT=n
Fix compile warning with !CONFIG_FDT_64BIT by
casting the variable in the debug print.

Signed-off-by: Eva Kurchatova <lekkit@at.encryp.ch>
Reported-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-10-22 20:56:28 +02:00
Devarsh Thakkar
7aa6906dda board: ti: am62x: evm: Update simple-framebuffer node in device-tree
Update simple-framebuffer device-tree node by enumerating framebuffer
related information in existing simple-framebuffer node in Linux
device-tree file and enabling it.

In case there is no simple-framebuffer stub detected in Linux kernel
device-tree and video is still active, then update the device-tree to
reserve the framebuffer region for the active splash screen.

This helps preserve the splash screen till the display server takes over
after OS is booted.

Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
2024-10-22 19:55:28 +02:00
Devarsh Thakkar
944e515e75 boot: fdt_simplefb: Remove conditional compilation checks for VIDEO Kconfig
CONFIG_VIDEO conditional compilation checks are no longer needed since
FDT_SIMPLEFB Kconfig now depends on VIDEO Kconfig.

Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-22 19:54:08 +02:00
Devarsh Thakkar
c525423e5c boot/Kconfig: Add Video Kconfig as dependency for FDT_SIMPLEFB
The fdt_simplefb.c APIs rely on video-uclass APIs and structures to
fill/update framebuffer information, so compile it only when VIDEO
Kconfig is enabled, as otherwise below warning can be seen if VIDEO
Kconfig is disabled:

"boot/fdt_simplefb.c:96:12: warning: fdt_simplefb_enable_existing_node
defined but not used [-Wunused-function]
96 | static int fdt_simplefb_enable_existing_node(void *blob)"

Reported-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-22 19:52:59 +02:00
Miquel Raynal
b34849c5ac video: Fix VNBYTES() macro comment
The VNBYTES() macro has been updated to silence possible warnings
regarding authorized (but unusual) uses of this macro, but the comment
was kept unchanged. A year has passed so let's fix the comment now to
avoid confusions.

Fixes: cc05d352fb ("video: Add parentheses around VNBYTES() macro")
Suggested-by: Tom Rini <trini@konsulko.com>
Link: https://lore.kernel.org/u-boot/20240906183432.GG3879073@bill-the-cat/
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-22 19:51:23 +02:00
Rasmus Villemoes
6606a6adfa envtools: make them build again
In v2024.10, "make envtools" is broken for at least these defconfigs:

   am335x_evm_defconfig
   rpi_3_defconfig
   rpi_4_defconfig
   mx7dsabresd_defconfig
   wandboard_defconfig
   imx8mp_evk_defconfig

The only defconfig we use for which it is not broken is
stm32mp13_defconfig. They all work just fine in v2024.07.

The symptoms are slightly different, but all related to the fact that
some transitively included header uses IS_ENABLED or CONFIG_IS_ENABLED
without linux/kconfig.h having already been included.

A simple git bisect doesn't produce anything sensible, it ends up at
3a9f642ca9 (crypto: nuvoton: npcm_sha: Support SHA 384/512) which
clearly has nothing to do with this. But digging deeper, one
eventually finds 0f92fa4560 ("env: Remove <common.h> and add needed
includes").

So at first I tried adding "#include <linux/kconfig.h>" in
include/env_default.h and include/env_flags.h. That fixes it for some,
but not all, of the above. For example rpi_3_defconfig still fails,
then in log.h complaining about BIT() and u8 not being defined. At
least BIT() is should have gotten from bitops.h, except that that's
behind ifdef __KERNEL__, so not set for the envtools build.

It turns out that the envtools source code in fw_env_private.h already
has some hackery to deal with all this, in the form of the __ASSEMBLY__
games it plays before including config.h. It seems that if we just
make sure to do that include early enough, so that config.h is indeed
parsed with that __ASSEMBLY__ hackery in place, everything builds
fine.

Fixes: 0f92fa4560 ("env: Remove <common.h> and add needed includes")
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-21 20:51:23 -06:00
Tom Rini
a3709638ec Merge patch series "aspeed: ast2700: Add Caliptra ECDSA driver"
Chia-Wei Wang <chiawei_wang@aspeedtech.com> says:

Aspeed AST2700 SoCs integrates the Caliptra secure IP, where an ECDSA384
signature verification HW interface is exported for SoC crypto needs.

This patch series firstly extends the FIT image signing/verify common
code to support the ECDSA384 algorithm. For better convenience, the
device tree for ECDSA public key storage is also revised by referring
to RSA implementations.

After the FIT common code revision, the driver is implemented for
AST2700 to leverage the Caliptra ECDSA384 signature verification.

These are verified by signed FIT images with the algorithm "sha384,ecdsa384".

Link: https://lore.kernel.org/r/20241014095620.216936-1-chiawei_wang@aspeedtech.com
2024-10-21 17:53:11 -06:00
Chia-Wei Wang
936d4cb6eb drivers/crypto: aspeed: Add Caliptra ECDSA384 support
Aspeed AST27xx SoCs integrate the CPTRA 1.0 secure IP, which export
an ECDSA384_SIGNATURE_VERIFY mailbox command service for SoC to use.

This patch is verified by the FIT signature verification using the
"sha384,ecdsa384" algorithm.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-21 17:52:52 -06:00
Chia-Wei Wang
2e6cf57e8e image-fit-sig: Remove padding check
The padding algorithm is not mandatory for all signing algorithm.
For example, ECDSA does not require a padding method.

For RSA requiring PKCS padding, the belonging info->crypto(), assigned
with rsa_verify_key(), also has the check on the validity of info->padding().

Thus, remove the info->padding check from the upper, general layer.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-21 17:52:52 -06:00
Chia-Wei Wang
75068b1a2d lib: ecdsa: Add ECDSA384 support
Add ECDSA384 algorithm support for image signing and verification.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-21 17:52:52 -06:00
Tom Rini
63a3dbb7b9 Merge patch series "Add AVS support for J721S2"
Manorit Chawdhry <m-chawdhry@ti.com> says:

This series adds support for Adaptive voltage scaling on J721S2 device [0].

[0]: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.4.1 AVS Support)

AVS Test for J721S2: https://gist.github.com/manorit2001/b2fd9f6764a863294d4aa0755c83c84f
Boot Test results: https://gist.github.com/manorit2001/d44e035552cb19aadeb0d928d5cb5f26

Link: https://lore.kernel.org/r/20241015-b4-upstream-j721s2-avs-v5-0-5c8087387dc5@ti.com
2024-10-21 17:52:40 -06:00
Manorit Chawdhry
1b379f4a41 configs: j721s2_evm_r5_defconfig: Add AVS Configs
Add AVS and PMIC regulator configs

Also, disable it explicitly in am68_sk_r5_defconfig as it includes
j721s2_evm_r5_defconfig for re-usability.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
6965d8f1a6 arm: dts: j721s2: Add VTM node in R5
Also adds bootph-pre-ram property to VTM node and the pmic node.

vdd-supply is used to assign the buck regulator that the AVS driver can
use to program the proper voltage which it picked up from e-fuse.

Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
3ef28a6a93 arm: mach-k3: j721s2_init: Initialize AVS Class 0
Adaptive Voltage Scaling (AVS) Class 0 is a procedure for lowering the
voltage on certain device power rails. Initialize AVS Class 0.

Link: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.3.3.2.5 AVS-Class0)
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
96ef1f227d drivers: misc: k3_avs: Extract MPU clk and dev ID from DT
Different devices have different MPU clk and dev ID. Currently it had
been hardcoded. Move it to DT based extraction.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
8659144ae5 arm: dts: k3-*-r5: Add MPU clock in clocks property
MPU clock had been missing. Distinguish multiple clocks with clock-names
and add MPU clock as well.

Link: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html#clocks-for-a72ss0-core0-device
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
c530cd4fa1 drivers: misc: k3_avs: Check return code while programming AVS
Check if AVS could not be programmed and print a warning.

Fixes: 9d233b4e3e ("misc: k3_avs: add driver for K3 Adaptive Voltage Scaling Class 0")
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Manorit Chawdhry
48b45f131f power: pmic: tps65941: Add DM_PMIC dependency
This Kconfig depends on DM_PMIC but hadn't be explicitly stated which
could cause config related issues.

Adds the dependency in Kconfig for tps65941.

Fixes: 6b86dd0c1e ("power: pmic: tps65941: Add support for tps65941 family of PMICs")
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-21 17:52:31 -06:00
Tom Rini
33da135f7e Merge patch series "Add TI K3 PCIe Controller support for J7200"
Siddharth Vadapalli <s-vadapalli@ti.com> says:

Hello,

This series adds support for the Cadence PCIe controller on TI's K3
family of SoCs to which the J7200 SoC belongs. The driver is an adaptation
of the Linux driver (drivers/pci/controller/cadence/pci-j721e.c) and has
been implemented specifically for Root-Complex mode of operation on the
J7200 SoC. A minor set of changes will be sufficient to support other K3
SoCs as well with plans to implement it in the near future.

Link: https://lore.kernel.org/r/20241014053924.4027491-1-s-vadapalli@ti.com
2024-10-21 17:51:55 -06:00
Siddharth Vadapalli
f3e1aaddb4 configs: j7200_evm_a72_defconfig: Enable configs for PCI support
TI's J7200 SoC has a single instance of PCIe Controller namely PCIe1 which
is a Cadence PCIe Controller. To support PCIe functionality with the PCIe1
instance of PCIe, enable the corresponding configs.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2024-10-21 17:51:51 -06:00
Siddharth Vadapalli
59ad548009 pci: Add TI K3 Cadence PCIe Controller
Add support for the Cadence PCIe Controller present on TI's K3 SoCs.
This driver is an adaptation of the Linux driver.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-21 17:51:51 -06:00
Tom Rini
52254a3d3b Merge patch series "dwc3: gadget: properly fix cache operations"
Neil Armstrong <neil.armstrong@linaro.org> says:

We experience huge problems with cache handling on Qualcomm
systems, and it appears the dcache handling in the DWC3 gadget
code is quite wrong and causes operational issues.

This serie fixes the dcache operations on unaligned data,
and properly invalidate buffers when reading back data from
hardware.

Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-0-5f3498d8035b@linaro.org
2024-10-21 15:27:38 -06:00
Neil Armstrong
9214627f5e usb: dwc3: invalidate dcache on buffer used in interrupt handling
On Qualcomm systems, the setup buffer and even buffers are in
a bad state at interrupt handling, so invalidate the dcache lines
for the setup_buf and event buffer to make sure we read correct
data written by the hardware.

This fixes the following error:
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type -1
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type 4673109

and invalid situation in dwc3_gadget_giveback() because setup_buf content
is read at 0s and leads to fatal crash fixed by [1].

[1] https://lore.kernel.org/all/20240528-topic-sm8x50-dwc3-gadget-crash-fix-v1-1-58434ab4b3d3@linaro.org/

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-10-21 15:27:33 -06:00
Neil Armstrong
73ab819688 usb: dwc3: fix dcache flush range calculation
The current flush operation will omit doing a flush/invalidate on
the first and last bytes if the base address and size are not aligned
with CACHELINE_SIZE.

This causes operation failures Qualcomm platforms.

Take in account the alignment and size of the buffer and also
flush the previous and last cacheline.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-10-21 15:27:33 -06:00
Neil Armstrong
ef6f4f8e3c usb: dwc3: allocate setup_buf with dma_alloc_coherent()
Since setup_buf is also consumed by hardware DMA, aligns it's
allocation like other hardware buffers by introduce setup_buf_addr
populated by dma_alloc_coherent(), and use it to pass the physical
address of the buffer to the hardware.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-21 15:27:33 -06:00
Tom Rini
2f204bba68 Merge tag 'i2c-tag-v2025.01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-i2c
i2c updates for v2025.01-rc1

- Add support for the following Maxim chips using the existing PCA954x
  driver from Maxim:
  - MAX7356
  - MAX7357
  - MAX7358
  - MAX7367
  - MAX7368
  - MAX7369

- introduce "i2c-gpio,sda-output-only" functionality
  from Alex
2024-10-21 08:30:12 -06:00
Alex Shumsky
f315a48131 i2c: i2c-gpio: add support for i2c-gpio,sda-output-only
Some I2C slave devices are read-only and don't even answer with NACK.
For example FD65x segment LED controllers.
Make them usable with i2c-gpio,sda-output-only that are already supported
by Linux 6.3+.

Signed-off-by: Alex Shumsky <alexthreed@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-10-21 06:32:40 +02:00
Maksim Kiselev
f7c9839a61 i2c: muxes: pca954x: Add MAX735x/MAX736x support
Add support for the following Maxim chips using the existing PCA954x
driver:
- MAX7356
- MAX7357
- MAX7358
- MAX7367
- MAX7368
- MAX7369

All added Maxim chips behave like the PCA954x, where a single SMBUS byte
write selects up to 8 channels to be bridged to the primary bus.

Tested using the MAX7358.

Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-10-21 06:32:28 +02:00
Tom Rini
fa0ed06a74 Merge tag 'efi-2025-01-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-01-rc1-2

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

Documentation:

* Add document describing Ethernet boot on AM62x SoC
* Fix typo in blkmap command example

UEFI:

* Avoid #ifdef in efi_setup.c
* Reduce message noisiness if ESP is missing
* Remove ERROR:, WARNING: prefixes in messages
* Use blk_create_devicef() in block device driver

Others:

* Let CONFIG_CMD_WGET depend on CONFIG_CMD_NET
2024-10-20 08:27:15 -06:00
Tom Rini
7036abbd5c Merge tag 'dm-pull-17oct24-take2' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
A few new x86 commands and minor improvements
expo improvements
binman support for signing FIT images
2024-10-18 22:32:45 -06:00
Marek Vasut
f83e36fd83 mtd: spi-nor: Move SR3 WPS bit definition in the correct location
Move the SR3 bit definition in the right place. Fix
what is likely a rebase artifact. No functional change.

Fixes: 215f1d5794 ("mtd: spi-nor: Clear Winbond SR3 WPS bit on boot")
Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-18 14:18:33 -06:00
Raymond Mao
7f45377152 mbedtls: fix defects in coverity scan
Fixes of unreleased buffer, deadcode and wrong variable type detected
by coverity scan.

Addresses-Coverity-ID: 510809:  Resource leaks  (RESOURCE_LEAK)
Addresses-Coverity-ID: 510806:  Control flow issues  (DEADCODE)
Addresses-Coverity-ID: 510794 Control flow issues  (NO_EFFECT)

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-18 14:18:12 -06:00
Heinrich Schuchardt
b92a18e2b6 cmd: upl: correct printf code
Building on 32-bit results in a build failure:

    cmd/upl.c:75:51: warning: format ‘%lx’ expects argument of type
    ‘long unsigned int’, but argument 3 has type ‘size_t’
    {aka ‘unsigned int’} [-Wformat=]
    75 | printf("UPL handoff written to %lx size %lx\n", addr, abuf_size(&buf));
       |                                         ~~^           ~~~~~~~~~~~~~~~
       |                                           |           |
       |                                           |           size_t {aka unsigned int}
       |                                           long unsigned int
       |                                         %x

Fixes: 264f4b0b34 ("upl: Add a command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:18:05 -06:00
Caleb Connolly
491195769d lmb: notify when adjacent regions are added
lmb_add_region() returns a positive integer if the added regions causes
existing regions to be coalesced. We still want to notify the EFI
subsystem about these added regions though, so adjust lmb_add() to only
bail on errors.

This fixes EFI memory allocation on boards with adjacent memory banks as is the
case on several Qualcomm boards like the RB3 Gen 2.

Fixes: 2f6191526a (lmb: notify of any changes to the LMB memory map)
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-18 14:16:10 -06:00
Andy Shevchenko
44917d5866 x86: cpu: Add missing header inclusion
Without asm/cpu_x86.h inclusion a compiler is not happy:

  arch/x86/cpu/cpu_x86.c:14:5: warning: no previous prototype for ‘cpu_x86_bind’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:29:5: warning: no previous prototype for ‘cpu_x86_get_vendor’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:41:5: warning: no previous prototype for ‘cpu_x86_get_desc’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:55:5: warning: no previous prototype for ‘cpu_x86_get_count’ [-Wmissing-prototypes]

Add missing header inclusion.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Andy Shevchenko
c1614a4ef6 x86: cpu: Add a few prototypes to the header file
The compiler is not happy to have no prototypes for the functions that
are not defined static. Add them. This helps avoiding the compiler warnings:

  arch/x86/cpu/cpu.c:197:13: warning: no previous prototype for ‘board_final_init’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu.c:205:13: warning: no previous prototype for ‘board_final_cleanup’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu.c:307:5: warning: no previous prototype for ‘reserve_arch’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Andy Shevchenko
2fb5cc2ad8 x86: cpu: Mark a few functions static
Some functions are not used anywhere except the same file
where they are defined. Mark them static. This helps avoiding
the compiler warnings:

  arch/x86/cpu/cpu.c:343:6: warning: no previous prototype for ‘detect_coreboot_table_at’ [-Wmissing-prototypes]
  arch/x86/cpu/mtrr.c:90:6: warning: no previous prototype for ‘mtrr_write_all’ [-Wmissing-prototypes]
  arch/x86/cpu/i386/interrupt.c:240:6: warning: no previous prototype for ‘__do_irq’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Andy Shevchenko
c222dda2da x86: cpu: Use default print_cpuinfo() for all
Most of the copies of the print_cpuinfo() call the default method.
Remove all of those in order to have only the default one when
no `cpu` command is compiled.

This also helps avoiding compiler warning, e.g.:

  arch/x86/cpu/tangier/tangier.c:23:5: warning: no previous prototype for ‘print_cpuinfo’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
abb7780381 x86: Enable RTC command by default
The real-time clock is needed for most X86 systems and it is useful to
be able to read from it. Enable the rtc command by default.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
424d537e70 doc: Update coreboot's CI information
This is in the Dockerfile now, so update this section of the docs.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
1903aa72ec docker: Update coreboot
Update to a newer version which supports settings in CMOS RAM and
linear framebuffer.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-18 14:10:22 -06:00
Simon Glass
790687c988 expo: Add forward declaration for udevice to cedit
Some files may include this header file without first including dm.h
so add a forward declaration.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
96cbafb1d2 expo: Drop scene_title_set()
This function is really just an assignment, so serves no useful
purpose. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
fde707501f expo: Drop unneceesary calls to expo_str()
The scene_txt_str() function calls expo_str() so there is no need to
call it beforehand. Drop this unnecessary code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
55a9de574c expo: Support menu-item values in cedit
Update the cedit read/write functions to support menu items with
values.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
f698786cff expo: Add a little more cedit CMOS logging
Add some more logging in the CMOS read/write code. Tidy up a few
comments while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
012e1e8652 expo: Allow menu items to have values
At present menu items are stored according to their sequence number in
the menu. In some cases we may want to have holes in that sequence, or
not use a sequence at all.

Add a new 'value' property for menu items. This will be used for
reading and writing, if present. If there is no 'value' property, then
the normal sequence number will be used instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
d8ff97ce91 expo: Use standard numbering for save and discard
Set aside some expo IDs for 'save' and 'discard' buttons. This avoids
needing to store the IDs for these. Adjust the documentation and expo
tool for the new EXPOID_BASE_ID value.

Ignore these objects when saving and loading the cedit, since they do
not contain real data.

Adjust 'cedit run' to return failure when the user exits the expo
without saving. Update the test for this change as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
89f4f33c44 expo: Set the initial next_id to 1
If expo_set_dynamic_start() is never called, the first scene created
will have an ID of 0, which is invalid. Correct this by setting a
default value.

Add a test to check this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
54eca1d39b expo: Place menu items to the right of all labels
At present a fixed position is used for menu items, 200 pixels to the
right of the left side of the labels. This means that a menu item with
a very long label may overlap the items.

It seems better to calculate the maximum label width and then place the
items to the right of all of them.

To implement this, add a new struct to containing arrangement
information. Calculate it before doing the actual arrangement. Add a
new style item which sets the amount of space from the right side of
the labels to left side of the items.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
18a85cf7b5 video: Avoid starting a new line to close to the bottom
When starting a new text line, an assumption is made that the current
vertical position is a multiple of the character height. When this is
not true, characters can be written after the end of the framebuffer.

This can causes crashes and strange errors from QEMU.

Adjust the scrolling check when processing a newline character, to
avoid any problems.

Add some comments to make things a little clearer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
52c19173df video: Add a dark-grey console colour
This is useful for highlighting something with a black background, as
is needed with cedit when using a white-on-black console. Add this as
a new colour.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Marek Vasut
82c6ebae42 sandbox: dts: Add missing sandbox, emul phandle to sandbox-pmic
This phandle was missing in the sandbox DT, add it, otherwise sandbox-i2c
driver cannot look up the emulator via i2c_emul_find(). This fixes the
following i2c_emul_find() error:

"
$ ./u-boot -Dc ""
...
       i2c_emul_find() No emulators for device 'sandbox_pmic'
  sandbox_pmic_write() write error to device: 0000000018c568d0 register: 0x0!
       out_set_value() PMIC write failed: -5
       i2c_emul_find() No emulators for device 'sandbox_pmic'
  sandbox_pmic_write() write error to device: 0000000018c568d0 register: 0x0!
       out_set_value() PMIC write failed: -5
...
"

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
7f4e1ea00b binman: Add a tutorial on resolving test-coverage bugs
Provide a short description of how tests work, why they are so critical
and how to resolve gaps in Binman's test coverage.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-18 14:10:22 -06:00
Simon Glass
3473e1779c binman: Support getting test-coverage on just one test
Pass the arguments through to test_util so that a single test can be
used.

Update the docs and add some missing backquotes in the same section.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
c95a3c8890 u_boot_pylib: Support running coverage on selected functions
At present run_test_coverage() assumes you want code coverage for the
entire code base. This is the normal situation, but sometimes it is
useful to see the coverage provided by just a single test. Add support
for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
58918fa4f0 sandbox_spl: Restrict use of UPL when not enabled
With sandbox_spl we want to use the file-based boot in CI, so that this
flow is tested. The recent UPL change enabled booting via that method,
thus overriding the file-based boot.

Correct this by using UPL only when the --upl flag is given.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 91fde8e176 ("sandbox: Add an SPL loader for UPL")
2024-10-18 14:10:22 -06:00
Simon Glass
02eb9f1665 buildman: Correct some warnings about regex strings
With Python 3.12 some warnings have cropped up. Fix them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Alexander Kochetkov
133c000ca3 binman: implement signing FIT images during image build
The patch implement new property 'fit,sign' that can be declared
at the top-level 'fit' node. If that option is declared, fit tryies
to detect private keys directory among binman include directories.
That directory than passed to mkimage using '-k' flag and that enable
signing of FIT.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Renumbered files, moved new tests to end:
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Alexander Kochetkov
9e81f13dbb image-host: fix 'unknown error' error message
Fix error message like this:
Can't add verification data for node 'fdt-1' (<unknown error>)

We get unknown error because we decode error as fdt error
but actually it is system error.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Alexander Kochetkov
7c4e5223cb binman: fix passing loadables to mkimage on first run
FIT use mkimage from BuildSectionData() to build FIT entry contents.
BuildSectionData() get called several times during building FIT image.

Currently when fit inserts loadables, it use self._loadables property that
contain loadables computed during previuos BuildSectionData() invocation.
So for the first run it use empty list and pass no loadables to mkimage.

That makes problem for adding signature to FIT image because mkimage
fails to add signature and aborts building FIT if no loadables provided.

The patch fixes described behaviour in a way that BuildSectionData() uses
recently calculated loadables value, not previosly calculated.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
aa0b3e6ef4 bootstd: Avoid calling unavailable block functions
When BLK is not enabled but BOOTSTD is, some features of standard boot
become unavailable. Add a check for this in the only site that is
currently apparent.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:22 -06:00
Simon Glass
8c3e44d307 blk: Make functions available unconditionally
Some boards still don't enable BLK but we want to be able to at least
compile the code which relies on this. For example, bootstd includes
calls to blk_...() functions, albeit with a check for BLK so that the
code is eliminated by the compiler.

Reduce the scope of the BLK #ifdef to help with this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
a768742d65 x86: coreboot: Enable receiving timestamps from coreboot
Bring this information into bootstage.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
e1c0dd369d x86: coreboot: Add timestamps from coreboot to bootstage
Receiving timestamps from coreboot was unceremoniously dropped some time
ago. Add it back.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 8ad01ce36f ("x86: Remove x86 specific GD flags as they are...")
2024-10-18 14:10:21 -06:00
Simon Glass
734b0cbbca x86: coreboot: Update the timestamp code to use sysinfo
Rather than using a special variable, get the timestamp info from the
coreboot sysinfo struct. Return a proper error as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
c4e582654a x86: Add msr command
It is useful to obtain the results of MSR queries as well as to update
MSR registers, so add a command these tasks.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
557767f802 x86: Add a cpuid command
It is useful to obtain the results of cpuid queries, so add a command
for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
ecf31113f1 x86: Sync up tsc_timer with Linux
Since we are using the code from Linux, update it to the newer version
in v6.11

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
7c0f70b65b x86: Avoid timer-clock overflow
When the clock speed is above about 4GHz, e.g. on modern PC hardware,
the timer overflows, resulting in a much lower frequency than expected.
Deal with this by capping the clock speed.

It would be possible to move to a 64-bit value for the clock, but that
is a pain to deal with. A better approach might be to express the clock
in MHz but that is left for later consideration.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
3b2e4f542e x86: Ensure the CPU identity exists for timer init
When bootstage is used the timer can be inited before the CPU identity
is set up, resulting in the checks for the vendor not working.

Add a special call to work around this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
6ab545ba21 x86: Show the CPU vendor in bdinfo
Refactor the cpu code and use it to show the CPU vendor, e.g.
AuthenticAMD or GenuineIntel

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Dmitrii Merkurev
9fb768c27c virtio: blk: introduce virtio-block erase support
Co-developed-by: Cody Schuffelen <schuffelen@google.com>
Signed-off-by: Cody Schuffelen <schuffelen@google.com>
Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Cc: Simon Glass <sjg@chromium.org>
Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # sandbox
2024-10-18 14:10:21 -06:00
Tom Rini
b84d2f203e x86: Make default_print_cpuinfo be a weak alias for print_cpuinfo
While a few SoCs have a unique print_cpuinfo function, a number of them
just use default_print_cpuinfo. Make default_print_cpuinfo have a weak
alias to provie print_cpuinfo.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-18 14:10:21 -06:00
Simon Glass
f0feda9082 coreboot: Switch to a monospaced font
The default font is proportional, with different character widths.
Select a monospace font for coreboot so that the 'dm tree' output lines
up correctly.

Update the coreboot tests to match.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Simon Glass
112eb85c5a video: Allow querying the font size
All the font size to be queried using the 'font size' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-18 14:10:21 -06:00
Heinrich Schuchardt
640c6c6cba efi_driver: use blk_create_devicef()
The EFI block device driver is the only user of blk_create_device() outside
the block device uclass. Use blk_create_devicef() instead like other block
device drivers.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-18 17:05:19 +02:00
Heinrich Schuchardt
76a692a2ca efi_loader: remove ERROR:, WARNING: prefixes in messages
We should not write "ERROR:" or "WARNING:" when using log_err() or
log_warning(). These prefixed don't provide additional information.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-18 17:05:19 +02:00
Heinrich Schuchardt
640427c6ae efi_loader: add missing lf in error message
Messages written with log_err() should terminate with a linefeed.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-18 17:05:12 +02:00
Tom Rini
8ab2178de0 Merge tag 'u-boot-imx-master-20241018a' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22796

- Switch to using upstream DT on DH i.MX8MP DHCOM PDK2/PDK3.
- Add ability to build fallback DTBOs from arch/$(ARCH)/dts.
- Remove fdt_high and initrd_high env variables from imx6-dhcom.
- Add dummy clk for imx8.
- Fix DT corruption in imx8_cpu.
- Improve DDR stability on pico-imx7d.
2024-10-18 09:05:04 -06:00
Tom Rini
f8fe853a8d Merge tag 'u-boot-at91-fixes-2025.01-a' of https://source.denx.de/u-boot/custodians/u-boot-at91
First set of u-boot-at91 fixes for the 2025.01 cycle:

This small set includes the maintainer e-mail update and a missing
header that was causing some build issues.
2024-10-18 09:04:20 -06:00
Tom Rini
933d27e1c9 Azure: Update to latest containers
Soon Azure will be removing the macOS-12 container in following their
normal support schedule. Move us to macOS-14 so we won't have problems
there for a while. At the same time, our Windows container is the oldest
supported, so move to the newer option. Finally, Ubuntu 22.04 is the
middle option currently, but 24.04 should be fine.

Link: https://github.com/actions/runner-images/issues/10721
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-18 09:03:58 -06:00
Heinrich Schuchardt
bc4fe5666d efi_loader: reduce noisiness if ESP is missing
EFI variables can be stored in a file on the EFI system partition. If that
partition is missing we are writing two error messages per variable. This
is too noisy.

Just warn once about the missing ESP.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-18 16:17:29 +02:00
Heinrich Schuchardt
3d23dedd92 efi_loader: avoid #ifdef in efi_setup.c
We prefer `if` over `#ifdef` in our code.

Eliminate #ifdef statements in efi_setup.c.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-18 16:17:29 +02:00
Heinrich Schuchardt
82c98b9464 cmd: wget: CONFIG_CMD_WGET must depend on CONFIG_CMD_NET
do_wget is defined in cmd/net.c.
cmd/net.c is not compiled if CONFIG_CMD_NET=n.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-18 16:17:28 +02:00
Ken Kurematsu
8ac96c25e4 doc: blkmap: Fix typo in command example
Fixed a variable that was incorrect during the calculation of fileblks.

Signed-off-by: Ken Kurematsu <k.kurematsu@nskint.co.jp>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-10-18 16:17:28 +02:00
Chintan Vankar
4b5750aaee doc: board: ti: am62x_sk: Add document for Ethernet boot on AM62x SoC.
Document the procedure to enable Ethernet Boot on AM62x SoC.

Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-10-18 16:17:28 +02:00
Peng Fan
9b1cecdd9b cpu: imx8_cpu: Avoid revision to corrupt device tree
U-Boot device tree is padded just after U-Boot proper.
After the whole stuff loaded to DRAM space, the device tree
area is conflict with BSS region before U-Boot relocation.

So any write to BSS area before reloc_fdt will corrupt the
device tree. Without the fix, there is issue that “binman_init
failed:-2” on i.MX8MP-EVK board.

Drop 'revision' and use malloc area in cpu_imx_plat->rev.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-18 09:41:09 -03:00
Ray Chang
21cd724a54 pico-imx7d: Increase ODT resistor value
Increase ODT resistor value from 60 to 120 ohm to improve DRAM stability.

Based on the following commit from TechNexion U-Boot:
8a00e57b69

Signed-off-by: Ray Chang <ray.chang@technexion.com>
Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
2024-10-18 09:41:09 -03:00
Peng Fan
6846a5b23d clk: imx8: Add dummy clk
There is a dummy clk entry for i.MX8QM/QXP, so add the dummy clk enable
and get rate. Otherwise "__imx8_clk_enable(Invalid clk ID #0)".

Fixes: 76332fae76 ("mmc: fsl_esdhc_imx: Enable AHB/IPG clk with clk bulk API")
Reviewed-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Heiko Schocher <hs@denx.de>
2024-10-18 09:41:09 -03:00
Marek Vasut
4d49c5426f ARM: dts: imx6-dhcom: Remove fdt_high and initrd_high env variables
Remove both "fdt_high" and "initrd_high" environment variables
in favor of "bootm_size" to safely contain a kernel, device tree
and initrd for relocation inside of 256 MiB region of DRAM.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-18 09:41:09 -03:00
Marek Vasut
f566e94c8a arm64: dts: imx: Switch to using upstream DT on DH i.MX8MP DHCOM PDK2/PDK3
Enable OF_UPSTREAM to use upstream DT and add freescale/ prefix to the
DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
including *-u-boot.dtsi and DTBOs from arch/$(ARCH)/dts/ directory.

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-18 09:41:09 -03:00
Marek Vasut
a55c4836f3 dts: Add ability to build fallback DTBOs from arch/$(ARCH)/dts
Currently the enablement of OF_UPSTREAM results on the build system
searching for DTs only in dts/upstream/ . There are platforms which
use U-Boot specific DTBOs applied on top of U-Boot control DT during
SPL stage, and source DTs for these are located in arch/$(ARCH)/dtb.

Add dedicated 'dtbos' target which builds only .dtbos and not .dtbs and
in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is enabled, build
this target for arch/$(ARCH)/dtb to generate local U-Boot specific DTBOs.

Adjust top level Makefile so binman would search for .dtb and .dtbo in
both OF_UPSTREAM specific paths and arch/$(ARCH)/dtb for the .dtbo case
in case CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is enabled.

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-18 09:41:09 -03:00
Alexander Dahl
684939089a ARM: at91: clock: Add missing include of asm/io.h
In one inline function in this header `readl()` is used, but the
declaration was not found, so buildman gave this warning:

    w+include/asm/arch/clk.h: In function 'get_h32mxdiv':
    w+include/asm/arch/clk.h:65:16: warning: implicit declaration of function 'readl' [-Wimplicit-function-declaration]

Fixes: 927b901b47 ("ARM: atmel: add sama5d4ek board support")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
2024-10-18 10:10:41 +03:00
Tom Rini
f1de0b97d1 Merge patch series "Cleanup dma device in spl and move dma channel[0]"
Prasanth Babu Mantena <p-mantena@ti.com> says:

The channel allocation and deallocation for dma copy was happening on every
dma transfer. This is a overhead for transactions like NAND, which does
page reads recursively for complete data.

So, moving the dma allocation to probe and implement corresponding
remove function and cleanup dma device while exiting from spl.

Enable SPL_DM_DEVICE_REMOVE, for device removal capability in SPL.

Link: https://lore.kernel.org/r/20241009145703.1970034-1-p-mantena@ti.com
2024-10-17 18:21:20 -06:00
Santhosh Kumar K
f83076add0 dma: ti: k3-udma: Move DMA channel[0] allocation to probe and add udma_remove()
Currently, the allocation of DMA channel[0] for memcpy is happening
in udma_transfer() for every transfer, which leads to a huge overhead
for each transfer, especially in case of nand page reads. So, move this
allocation to udma_probe(), as a result, the allocation is done once
during probe.

Introduce udma_remove() for the cleanup of allocated channel during
probe.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
2024-10-17 18:21:19 -06:00
Santhosh Kumar K
7f069cc9fa dma: ti: k3-udma: Move udma_probe() below all APIs
The udma_probe() function was placed above many important APIs
related to bcdma, pktdma, which restricts these APIs to be accessed
during probe. So, move udma_probe() below all of them.

Signed-off-by: Santhosh Kumar K <s-k6@ti.com>
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
2024-10-17 18:21:19 -06:00
Prasanth Babu Mantena
fd74f38f95 configs: k3: Enable device removal in SPL
Enable CONFIG_SPL_DM_DEVICE_REMOVE in a72 and r5.

Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
2024-10-17 18:21:19 -06:00
Prasanth Babu Mantena
c4b00537dc mach-k3: common.c: Remove dma device in spl exit
While exiting from spl, remove any dma device active through
spl_board_prepare_for_boot(). This is required for cleaning up
any dma channels being used in spl and avoid issues with overlapping
channel allocation in the next stage bootloaders.

Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
2024-10-17 18:21:18 -06:00
Udit Kumar
0a504585d1 arm: dts: k3-j722s-binman: Add support for HS-SE
J722S SOC have two variants as HS-FS and HS-SE.
Add binman support for HS-SE variant.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
[j-choudhary@ti.com: Fix load-dm-data entry and indentation]
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-10-17 15:39:16 -06:00
Bhavya Kapoor
731c804b23 arm: mach-k3: j784s4: Add clk and power support for wkup_uart
Add clk and device data which can be used by wkup_uart driver
to configure clocks and PSC.

Signed-off-by: Bhavya Kapoor <b-kapoor@ti.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-10-17 15:39:16 -06:00
Andy Shevchenko
04efa7354f cmd: irq: Move do_irqinfo() prototype to a header file
Move do_irqinfo() prototype to a header file, otherwise compiler is not
happy:

  arch/x86/lib/interrupts.c:130:5: warning: no previous prototype for ‘do_irqinfo’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[trini: Add 'struct cmd_tbl;' to irq_func.h]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-17 15:38:50 -06:00
Parth Pancholi
c01d6934a7 arm: mach-k3: am62: fixup thermal cooling device cpus
AM62x devices now support CPU throttling based on thermal alerts
with a Linux commit 10e7bfd8114c ("arm64: dts: ti: k3-am62: Enable
CPU freq throttling on thermal alert"). However, this functionality
does not work correctly across all variants of the AM62x SoCs
which have different numbers of Cortex-A CPU cores: AM62x1 (1 core),
AM62x2 (2 cores), and AM62x4 (4 cores). On single-core and dual-core
AM62x devices, the following error is observed in the Linux kernel:

OF: /thermal-zones/main0-thermal/cooling-maps/map0: could not find
    phandle 94
OF: /thermal-zones/main1-thermal/cooling-maps/map0: could not find
    phandle 94

This commit adds a fixup to dynamically adjust the cooling-device
nodes in the thermal zones based on the actual number of CPU cores
available. This resolves the issue of CPU throttling not working
correctly on single-core and dual-core AM62x devices, while
maintaining the functionality for AM62x quad-core devices.

A similar approach is implemented for example on i.MX8MM SoC.

Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
2024-10-17 15:01:24 -06:00
Lad Prabhakar
22371048ed lib: fdtdec: Parse the gzip/lzo headers only when dependencies have met
It might happen that CONFIG_GZIP and CONFIG_LZO are enabled but we might
have CONFIG_MULTI_DTB_FIT_LZO enabled in this case in the code path of
uncompress_blob() we parse the gzip headers first which results in
`Error: Bad gzipped data` being printed. To avoid this parse the gzip/lzo
headers only when dependencies have met.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-17 15:01:14 -06:00
Jan Kiszka
3435486f36 Extend usage for OF_OVERLAY_LIST beyond SPL
Allow to use OF_OVERLAY_LIST also for the case that the overlays just
need be built, e.g. when they will be picked up by binman as artifacts
of the final U-Boot image. The IOT2050 boards have such a need when
switching to OF_UPSTREAM.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-17 15:01:01 -06:00
Marek Vasut
8efc954fc7 Makefile: Drop SPL_FIT_SOURCE support
The SPL_FIT_SOURCE is long superseded by SPL_FIT_GENERATOR which
is long superseded by binman, drop SPL_FIT_SOURCE support as there
are no more users.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-10-17 08:36:10 -06:00
Tom Rini
be708572c2 Merge tag 'u-boot-stm32-20241017' of https://source.denx.de/u-boot/custodians/u-boot-stm
CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/22732

- stm32mp: fix boot issue with OP-TEE
- stm32mp: Add script to install U-Boot from SD/eMMC to SPI NOR on DH STM32MP15xx
- stm32mp: Switch to using upstream DT on DH STM32 DHSOM
- stm32mp: Generate u-boot.itb using binman on DH STM32 DHSOM
2024-10-17 08:35:29 -06:00
Tom Rini
d17661a5ff Merge tag 'u-boot-dfu-20241017' of https://source.denx.de/u-boot/custodians/u-boot-dfu
u-boot-dfu-20241017

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

Usb Gadget:
- Fix cdns3 endpoint configuration by setting maxpacket
- Fix dwc3 cache handling when using DMA

Fastboot:
- Make AVB_VERIFY depends on FASTBOOT
2024-10-17 08:34:01 -06:00
Tom Rini
9e1cd2f2cb Merge https://source.denx.de/u-boot/custodians/u-boot-usb 2024-10-16 21:45:21 -06:00
Sebastian Reichel
6852a2c82e MAINTAINERS: add TCPM section
Add new section for USB TypeC Port Manager (TCPM) support, which
is needed to figure out cable orientation of USB-C plus and to do
USB PD communication.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: Marek Vasut <marex@denx.de>
2024-10-17 03:12:47 +02:00
Sebastian Reichel
f2a7a5cca2 rockchip: rock5b-rk3588: Enable USB-C PD support
Now that all code has been prepared update the default configuration to
make use of it.

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Soeren Moch <smoch@web.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2024-10-17 03:12:47 +02:00
Sebastian Reichel
12049db764 rockchip: rk3588-rock-5b: Add USB-C controller to u-boot.dtsi
Add USB-C controller (fusb302), which will be used by U-Boot to
initialize USB-PD. This is needed, because USB-PD communication
must happen within 5 seconds after the USB-C connector got plugged.
On my Rock 5B it often takes 5 seconds to jump to the Linux binary,
so it must happen before Linux is initialized.

This adds the DT node to the U-Boot specific file, since the Linux
kernel DT currently does not describe it to avoid a system reset.
The plan is to add it to the Linux DT with status = 'fail' and then
let U-Boot mark it as status = 'okay' if it properly dealt with
early USB-PD initialization. Until the Kernel DT has the node, let's
add it in U-Boot to get things going.

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Soeren Moch <smoch@web.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2024-10-17 03:12:47 +02:00
Sebastian Reichel
64002d0cb0 board: rock5b-rk3588: enable USB-C in operating system
Since older U-Boot releases do not negotiate USB PD, the kernel
DT may not enable the USB-C controller by default to avoid a
regression. The plan is to upstream it with 'status = "fail";'
instead. U-Boot should then mark it as 'status = "okay";' if
it negotiated USB PD. Currently existing upstream kernel DTs do
not yet have the USB-C controller at all, so we ignore any
failures.

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Soeren Moch <smoch@web.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2024-10-17 03:12:47 +02:00
Sebastian Reichel
43fdd31cfa usb: tcpm: fusb302: add driver
Now that the TCPM framework exists we can introduce fusb302
driver using it. This chip is a very common USB-C controller
chip with PD support, which can be found in the Radxa Rock 5B
among many other boards. Apart from Power Delivery, it also
handles detection of the cable orientation. That can be used
to control a mux for connecting the right USB3 lane pair to
the USB3 controller.

The driver is originally from the Linux kernel, but has been
adapted to the requirements of U-Boot and its TCPM framework.

Co-developed-by: Wang Jie <dave.wang@rock-chips.com>
Signed-off-by: Wang Jie <dave.wang@rock-chips.com>
Tested-by: Soeren Moch <smoch@web.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2024-10-17 03:12:47 +02:00
Sebastian Reichel
1db4c0ac77 usb: tcpm: add core framework
This adds TCPM framework in preparation for fusb302 support, which can
handle USB power delivery messages. This is needed to solve issues with
devices, that are running from a USB-C port supporting USB-PD, but not
having a battery.

Such a device currently boots to the kernel without interacting with
the power-supply at all. If there are no USB-PD message replies within
5 seconds, the power-supply assumes the peripheral is not capable of
USB-PD. It usually takes more than 5 seconds for the system to reach
the kernel and probe the I2C based fusb302 chip driver. Thus the
system always runs into this state. The power-supply's solution to
fix this error state is a hard reset, which involves removing the
power from VBUS. Boards without a battery (or huge capacitors) will
reset at this point resulting in a boot loop.

This imports the TCPM framework from the kernel. The porting has
originally been done by Rockchip using hardware timers and the Linux
kernel's TCPM code from some years ago.

I had a look at upgrading to the latest TCPM kernel code, but that
beast became a lot more complex due to adding more USB-C features.
I believe these features are not needed in U-Boot and with multiple
kthreads and hrtimers being involved it is non-trivial to port them.
Instead I worked on stripping down features from the Rockchip port
to an even more basic level. Also the TCPM code has been reworked
to avoid complete use of any timers (Rockchip used SoC specific
hardware timers + IRQ to implement delayed work mechanism). Instead
the delayed state changes are handled directly from the poll loop.

Note, that (in contrast to the original Rockchip port) the state
machine has the same hard reset quirk, that the kernel has - i.e.
it avoids disabling the CC pin resistors for devices that are not
self-powered. Without that quirk, the Radxa Rock 5B will not just
end up doing a machine reset when a hard reset is triggered, but will
not even recover, because the CPU will loose power and the FUSB302
will keep this state because of leak voltage arriving through the RX
serial pin (assuming a serial adapter is connected).

This also includes a 'tcpm' command, which can be used to get
information about the current state and the negotiated voltage
and current.

Co-developed-by: Wang Jie <dave.wang@rock-chips.com>
Signed-off-by: Wang Jie <dave.wang@rock-chips.com>
Tested-by: Soeren Moch <smoch@web.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2024-10-17 03:12:47 +02:00
Tom Rini
98a36deb9a Merge patch series "some serial rx buffer patches"
Rasmus Villemoes <ravi@prevas.dk> says:

Some small improvements to the serial rx buffer feature.

CI seems happy: https://github.com/u-boot/u-boot/pull/674

Link: https://lore.kernel.org/r/20241003141029.920035-1-ravi@prevas.dk
2024-10-16 15:54:38 -06:00
Rasmus Villemoes
6cc6a2f699 serial: embed the rx buffer in struct serial_dev_priv
The initialization of upriv->buf doesn't check for a NULL return. But
there's actually no point in doing a separate, unconditional malloc()
in post_probe; we can just make serial_dev_priv contain the rx buffer
itself, and let the (larger) allocation be handled by the driver core
when it allocates the ->per_device_auto. The total run-time memory
used is mostly the same, we reduce the code size a little, and as a
bonus, struct serial_dev_priv does not contain the unused members when
!SERIAL_RX_BUFFER.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 15:54:31 -06:00
Rasmus Villemoes
3282298230 serial: add build-time sanity check of CONFIG_SERIAL_RX_BUFFER_SIZE
The help text says it must be a power of 2, and the implementation
does rely on that. Enforce it.

A violation gives a wall of text, but the last few lines should be
reasonably obvious:

drivers/serial/serial-uclass.c:334:9: note: in expansion of macro ‘BUILD_BUG_ON_NOT_POWER_OF_2’
  334 |         BUILD_BUG_ON_NOT_POWER_OF_2(CONFIG_SERIAL_RX_BUFFER_SIZE);

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 15:54:31 -06:00
Rasmus Villemoes
f4e7a39948 serial: do not overwrite not-consumed characters in rx buffer
Before the previous patch, pasting a string of length x >
CONFIG_SERIAL_RX_BUFFER_SIZE results in getting the
last (x%CONFIG_SERIAL_RX_BUFFER_SIZE) characters from that string.

With the previous patch, one instead gets the last
CONFIG_SERIAL_RX_BUFFER_SIZE characters repeatedly until the ->rd_ptr
catches up.

Both behaviours are counter-intuitive, and happen because the code
that checks for a character available from the hardware does not
account for whether there is actually room in the software buffer to
receive it. Fix that by adding such accounting. This also brings the
software buffering more in line with how most hardware FIFOs
behave (first received characters are kept, overflowing characters are
dropped).

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 15:54:31 -06:00
Rasmus Villemoes
e698608680 serial: fix circular rx buffer edge case
The current implementation of the circular rx buffer falls into a
common trap with circular buffers: It keeps the head/tail indices
reduced modulo the buffer size. The problem with that is that it makes
it impossible to distinguish "buffer full" from "buffer empty",
because in both situations one has head==tail.

This can easily be demonstrated: Build sandbox with RX_BUFFER enabled,
set the RX_BUFFER_SIZE to 32, and try pasting the string

  01234567890123456789012345678901

Nothing seems to happen, but in reality, all characters have been read
and put into the buffer, but then tstc ends up believing nothing is in
the buffer anyway because upriv->rd_ptr == upriv->wr_ptr.

A better approach is to let the indices be free-running, and only
reduce them modulo the buffer size when accessing the array. Then
"empty" is head-tail==0 and "full" is head-tail==size. This does rely
on the buffer size being a power-of-two and the free-running
indices simply wrapping around to 0 when incremented beyond the
maximal positive value.

Incidentally, that change from signed to unsigned int also improves
code generation quite a bit: In C, (signed int)%(signed int) is
defined to have the sign of the dividend (so (-35) % 32 is -3, not
29), and hence despite the modulus being a power-of-two, x % 32 does
not actually compile to the same as a simple x & 31 - on x86 with -Os,
it seems that gcc ends up emitting an idiv instruction, which is quite
expensive.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 15:54:31 -06:00
Patrick Delaunay
4aa8b9ede9 stm32mp: cosmetic: remove empty comment block in configs file
This is cosmetic change.

Remove the empty comment blocks remaining after conversion to Kconfig
of CONFIG_SYS_MAX_NAND_DEVICE and CONFIG_SERVERIP.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:35:33 +02:00
Marek Vasut
acc781a37e ARM: stm32: Add script to install U-Boot from SD/eMMC to SPI NOR on DH STM32MP15xx DHSOM
Make the dh_update_sd_to_sf script generic, rename it to dh_update_block_to_sf
and implement two specific dh_update_sd_to_sf and dh_update_emmc_to_sf scripts
which load U-Boot from either SD or eMMC and install it into SPI NOR.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:25:43 +02:00
Patrick Delaunay
f10fc277dc stm32mp: fix name of optee reserved memory node
In OP-TEE, the "optee_core@" node is reserved, appended in non secure
device tree (see mark_tzdram_as_reserved() function under CFG_DT) so
this name must be checked in optee_get_reserved_memory().
We keep the check on /reserved-memory/optee@ node to have backward
compatibility with STMT32Image booting, when the reserved node is
already present in U-Boot or SPL device tree with name "optee@".

This patch solves a boot issue on board with OP-TEE for U-Boot
compiled with stm32mp15_defconfig and without secure configuration
device tree (stm32mp157c-dk2.dts for example).

Fixes: 5fe9e0deab ("stm32mp: allow calling optee_get_reserved_memory()
from U-Boot")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:18:57 +02:00
Patrick Delaunay
4ce39923ee doc: clarify scmi device tree for stm32mp15 boards
Clarify the usage of SCMI specific device tree to use with
stm32mp15_defconfig and with OP-TEE.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:18:56 +02:00
Patrick Delaunay
f9e94edab4 ARM: stm32mp: enable data cache after LMB configuration for STM32MP1
Move the stm32mp1 data cache reconfiguration after the lmb init call
board_r::initr_lmb to allow parsing of the reserved region with
no-map tag.

After this patch the DDR is not fully mapped up to arch_early_init_r()
call, only the relocation region is mapped, but it is enough for
the first board_r initialization phases; later, when arch_early_init_r()
is called, the LMB is already initialized and the function
lmb_is_reserved_flags() function is functional, this LMB function
is called in the weak function dram_bank_mmu_setup() when
dcache_enable() is executed.

Without this change, as LMB is not initialized when it is used in
dram_bank_mmu_setup, the OP-TEE region is mapped cache-able by U-Boot
and we have some firewall violation since "LMB memory map global and
persistent" series.

Fixes: ed17a33fed ("lmb: make LMB memory map persistent and global")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:18:56 +02:00
Patrick Delaunay
5cb33c70b2 stm32mp: compute ram_top based on the optee base address only for STM32MP1
Reserved memory for OP-TEE is located at end of DDR for STM32MP1 SoC only
(STM32MP13 and STM32MP15) and the OP-TEE reserved memory is located at the
beginning of DDR for STM32MP25 SoC, before CONFIG_TEXT_BASE and
with reserved memory for companion coprocessor. So the ram_top is limited
by OP-TEE reserved memory only for STM32MP1 SoC.

This patch solves an issue for ram_top value on STM32MP25 SoC because the
generic reserved memory management, based on LMB, is no more used before
relocation.

Fixes: 8242f14a3e ("stm32mp: compute ram_top based on the optee base address")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:18:56 +02:00
Marek Vasut
5fccc2891e ARM: dts: stm32: Generate u-boot.itb using binman on DH STM32 DHSOM
Describe the u-boot.its generation in stm32mp15xx-dhsom-u-boot.dtsi
binman {} DT node as a replacement for current CONFIG_SPL_FIT_SOURCE
use, dispose of both u-boot-dhcom.its and u-boot-dhcor.its.

Use fdt-SEQ/config-SEQ to generate a list of fdt-N fitImage images {} and
matching configuration {} node entries. The configuration node entry names
no longer encode _somrevN_boardrevN suffix, which was never really used, so
drop this functionality by default. Rework board_fit_config_name_match() to
match on the new configuration node entry names.

Users who do need the match on _somrevN_boardrevN can either replace the
fdt-SEQ/config-SEQ with fixed fdt-N/config-N nodes which each encode the
matching 'description = "NAME_somrevN_boardrevN"' to restore the old
behavior verbatim, or better use SPL DT overlays for U-Boot control DT
the same way e.g. i.MX8MP DHCOM does to support multiple SoM and board
variants.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:12:35 +02:00
Marek Vasut
cccb29fc12 ARM: dts: stm32: Switch to using upstream DT on DH STM32 DHSOM
Enable OF_UPSTREAM to use upstream DT and add st/ prefix to the
DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
including *-u-boot.dtsi from arch/$(ARCH)/dts/ directory.

The previous setup used generic SoC prefix like stm32mp15xx-dhco* for
generic DTs which could be used on any STM32MP15xx DHSOM variant. The
new setup uses specific SoC prefix stm32mp157c-dhco* to match Linux DT
names. Since the hardware present on STM32MP153 and STM32MP157 is not
enabled in the board configuration and not supported by U-Boot except
for the DSI host, using the existing Linux DTs poses no issue even on
plain STM32MP151A based SoMs.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:12:35 +02:00
Marek Vasut
241518cfce ARM: dts: stm32: Duplicate cpu0-opp-table node into stm32mp15-u-boot.dtsi
The cpu0-opp-table {} node does not exist in upstream Linux stm32mp151.dtsi
file, in order to enable conversion to OF_UPSTREAM, duplicate the node from
current U-Boot stm32mp151.dtsi into stm32mp15-u-boot.dtsi. This makes STM32
DTs buildable even with OF_UPSTREAM enabled. No functional change, since the
current U-Boot stm32mp151.dtsi already contains the cpu0-opp-table {} node,
stm32mp15-u-boot.dtsi is applied at the end, and does not bring in any new
content.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:12:35 +02:00
Marek Vasut
6b57634d26 ARM: stm32: Update MAINTAINERS file globs for STM32MP DHSOM
Update the MAINTAINERS file glob to cover all of STM32MP DHSOM related files.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2024-10-16 20:12:35 +02:00
Tom Rini
608a31bdec Merge patch series "Introduce the lwIP network stack"
Jerome Forissier <jerome.forissier@linaro.org> says:

This is a rework of a patch series by Maxim Uvarov: "net/lwip: add lwip
library for the network stack" [1]. The goal is to introduce the lwIP TCP/IP
stack [2] [3] as an alternative to the current implementation in net/,
selectable with Kconfig, and ultimately keep only lwIP if possible. Some
reasons for doing so are:
- Make the support of HTTPS in the wget command easier. Javier T. and
Raymond M. (CC'd) have some additional lwIP and Mbed TLS patches to do
so. With that it becomes possible to fetch and launch a distro installer
such as Debian etc. using a secure, authenticated connection directly
from the U-Boot shell. Several use cases:
  * Authentication: prevent MITM attack (third party replacing the
binary with a different one)
  * Confidentiality: prevent third parties from grabbing a copy of the
image as it is being downloaded
  * Allow connection to servers that do not support plain HTTP anymore
(this is becoming more and more common on the Internet these days)
- Possibly benefit from additional features implemented in lwIP
- Less code to maintain in U-Boot

Prior to applying this series, the lwIP stack needs to be added as a
Git subtree with the following command:

 $ git subtree add --squash --prefix lib/lwip/lwip \
   https://github.com/lwip-tcpip/lwip.git  STABLE-2_2_0_RELEASE

Notes

1. A number of features are currently incompatible with NET_LWIP:
DFU_TFTP, FASTBOOT, SPL_NET, ETH_SANDBOX, ETH_SANDBOX_RAW, DM_ETH. They
all make assumptions on how the network stack is implemented and/or
pull sybols that are not trivially exported from lwIP. Some interface
rework may be needed.

2. Due to the above, and in order to provide some level of testing of the
lwIP code in CI even when the legacy NET is the default, a new QEMU
configuration is introduced (qemu_arm64_lwip_defconfig) which is
based on qemu_arm64_defconfig with NET_LWIP and CMD_*_LWIP enabled.
In addition to that, this series has some [TESTING] patches
which make NET_LWIP the default.

[1] https://lore.kernel.org/all/20231127125726.3735-1-maxim.uvarov@linaro.org/
[2] https://www.nongnu.org/lwip/
[3] https://en.wikipedia.org/wiki/LwIP

Link: https://lore.kernel.org/r/cover.1729070678.git.jerome.forissier@linaro.org
2024-10-16 11:11:57 -06:00
Jerome Forissier
4820cb4b16 MAINTAINERS: net: lwip: add myself as a maintainer
Add myself as a maintainer for the lwIP network stack integration code
and network commands as well as the sandbox ethernet driver for lwIP.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:57 -06:00
Jerome Forissier
fd10d156db CI: add qemu_arm64_lwip to the test matrix
Build and run qemu_arm64_lwip_defconfig in CI. This tests the lightweight
IP (lwIP) implementation of the dhcp, tftpboot and ping commands.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-10-16 11:11:57 -06:00
Jerome Forissier
e65c5e3e73 net: lwip: add TFTP_BLOCKSIZE
Add support for setting the TFTP block size. The default value (1468)
is fine for Ethernet and allows a better throughput than the TFTP
default (512), if the server supports the blksize option of course.

I tested this change with qemu_arm64_lwip_defconfig. The throughput is
now 875 KiB/s vs. 313 KiB/s before. That is still a low number, but I
think we can't expect more without implementing the windowsize option.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:57 -06:00
Jerome Forissier
27d7ccda94 net: lwip: tftp: add support of blksize option to client
The TFTP protocol uses a default block size of 512 bytes. This value is
sub-optimal for ethernet devices, which have a MTU (Maximum Transmission
Unit) of 1500 bytes. When taking into acount the overhead of the IP and
UDP layers, this leaves 1468 bytes for the TFTP payload.

This patch introduces a new function: tftp_client_set_blksize() which
may be used to change the block size from the default. It has to be
called after tftp_client_init() and before tftp_get(). If the server
does not support the option, the client will still accept to receive
512-byte blocks.

Submitted upstream: https://savannah.nongnu.org/patch/index.php?10462

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:57 -06:00
Jerome Forissier
c8d19c53b6 configs: add qemu_arm64_lwip_defconfig
Add qemu_arm64_lwip_defconfig which #include's qemu_arm64_defconfig and
selects NET_LWIP instead of NET. This config has all the supported net
commands enabled.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:57 -06:00
Jerome Forissier
625d40ab12 test: boot: fix bootflow_cmd_label for when DSA_SANDBOX is disabled
When DSA_SANDBOX is not set, the sandbox tests fail as follows:

 $ ./test/py/test.py --build-dir=$(pwd) -k bootdev_test_any
 [...]
 Scanning for bootflows with label '9'
 [...]
 Cannot find '9' (err=-19)

This is due to the device list containing two less entries than
expected. Therefore, look for label '7' when DSA_SANDBOX is disabled.

The actual use case is NET_LWIP=y (to be introduced in later patches)
which implies DSA_SANDBOX=n for the time being.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
95744d2527 cmd: bdinfo: enable -e when CONFIG_CMD_NET_LWIP=y
Support "bdinfo -e" when lwIP is selected.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-16 11:11:56 -06:00
Jerome Forissier
69aee0c802 test: boot: fix bootdev_test_any for when DSA_SANDBOX is disabled
When DSA_SANDBOX is not set, the sandbox tests fail as follows:

 $ ./test/py/test.py --build-dir=$(pwd) -k bootdev_test_any
 [...]
 Test: bootdev_test_any: bootdev.c
 test/boot/bootdev.c:156, bootdev_test_any(): "mmc2" = media->name: Expected "mmc2", got "mmc0"
 [...]

This is due to the device list containing two less entries than
expected. Therefore, adjust the expected index to be two less when
DSA_SANDBOX is disabled.

The actual use case is NET_LWIP=y (to be introduced in later patches)
which implies DSA_SANDBOX=n for the time being.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
3c656c928b net: lwip: add wget command
Add support for the wget command with NET_LWIP. The command normally
expects a URL: wget [loadaddr] url, but it also accepts the legacy
syntax: wget [loadaddr] [server:]file.
The server IP may alternatively be supplied via ${httpserverip} which
has higher priority than ${serverip}.

Based on code initially developed by Maxim U.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Co-developed-by: Maxim Uvarov <muvarov@gmail.com>
Cc: Maxim Uvarov <muvarov@gmail.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
ce70056206 sandbox: add dummy driver ETH_SANDBOX_LWIP
Introduce ETH_SANDBOX_LWIP which enables a mock driver similar to
ETH_SANDOX but without the dependencies on the legacy network stack
(NET) so that it may be enabled when the lwIP stack (NET_LWIP) is
introduced. The driver does nothing at this stage but its presence
will allow dm_test_iommu_noiommu [1] to pass.

[1] ./u-boot -T -c "ut dm dm_test_iommu_noiommu"

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
3135b9a916 net: split cmd/net.c into cmd/net.c and cmd/net-common.c
Extract some code from cmd/net.c that will be useful in a subsequent
commit to implement wget with NET_LWIP.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
aedcfec9ed net: lwip: add dns command
Add CMD_DNS when NET_LWIP is enabled to provide the dns command using
lwIP.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
7a5e00d5c3 net: lwip: add ping command
Add support for the the ping command with NET_LWIP. The implementation
is derived from lwIP's contrib/apps/ping/ping.c.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
4d4d783812 net: lwip: add TFTP support and tftpboot command
Implement do_tftpb(). This implementation of the tftp command
supports an optional port number. For example:

 tftp 192.168.0.30:9069:file.bin

It also supports taking the server IP from ${tftpserverip} if
defined, before falling back to ${serverip}.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
5634ecc88e net: lwip: tftp: bind to TFTP port only when in server mode
The TFTP app should not bind to the TFTP server port when configured as
a client. Instead, the local port should be chosen from the dynamic
range (49152 ~ 65535) so that if the application is stopped and started
again, the remote server will not consider the new packets as part of
the same context (which would cause an error since a new RRQ would be
unexpected).

Submitted upstream: https://savannah.nongnu.org/patch/?10480

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
98ad145db6 net: lwip: add DHCP support and dhcp commmand
Add what it takes to enable NETDEVICES with NET_LWIP and enable DHCP as
well as the dhcp command. CMD_TFTPBOOT is selected by BOOTMETH_EFI due
to this code having an implicit dependency on do_tftpb().

Note that PXE is likely non-fonctional with NET_LWIP (or at least not
100% functional) because DHCP option 209 is not supported by the lwIP
library. Therefore, BOOTP_PXE_DHCP_OPTION cannot be enabled.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
1c41a7afaa net: lwip: build lwIP
Build the lwIP library when NET_LWIP is enabled. The following files
are adaptation layers written specially for U-Boot:

 lib/lwip/u-boot/arch/cc.h
 lib/lwip/u-boot/arch/sys_arch.h (empty)
 lib/lwip/u-boot/limits.h (empty)
 lib/lwip/u-boot/lwipopts.h

They were initially contributed by Maxim in a previous RFC patch series.

The lwIP stack needs to be added as a Git subtree with the following
command:

 $ git subtree add --squash --prefix lib/lwip/lwip \
   https://github.com/lwip-tcpip/lwip.git  STABLE-2_2_0_RELEASE

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Co-developed-by: Maxim Uvarov <muvarov@gmail.com>
Cc: Maxim Uvarov <muvarov@gmail.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
7ad5e878cd net: eth-uclass: add function eth_start_udev()
Add a function to start a given network device, and update eth_init()
to use it.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
1d5d292b79 net: split net into net{,-common,-legacy,-lwip}
Make net.h a wrapper which includes net-common.h and either
net-legacy.h or net-lwip.h based on NET_LWIP. The function
copy_filename() can be useful when NET_LWIP is enabled, therefore
move it out of net/net.c which is built only when networking choice
is NET and create a new file net/net-common.c.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
8cb330355b net: introduce alternative implementation as net/lwip/
Prepare the introduction of the lwIP (lightweight IP) TCP/IP stack by
adding a new net/lwip/ directory and the NET_LWIP symbol. Network
support is either NO_NET, NET (legacy stack) or NET_LWIP. Subsequent
commits will introduce the lwIP code, re-work the NETDEVICE integration
and port some of the NET commands and features to lwIP.

SPL_NET cannot be enabled when NET_LWIP=y. SPL_NET pulls some symbols
that are part of NET (such as arp_init(), arp_timeout_check(),
arp_receive(), net_arp_wait_packet_ip()). lwIP support in SPL may be
added later.

Similarly, DFU_TFTP and FASTBOOT are not compatible with NET_LWIP
because of dependencies on net_loop(), tftp_timeout_ms,
tftp_timeout_count_max and other NET things. Let's add a dependency on
!NET_LWIP for now.

SANDBOX can select NET_LWIP but doing so will currently disable the eth
dm tests as well as the wget tests which have strong dependencies on the
NET code.

Other adjustments to Kconfig files are made to fix "unmet direct
dependencies detected" for USB_FUNCTION_SDP and CMD_FASTBOOT when
the default networking stack is set to NET_LWIP ("default NET_LWIP"
instead of "default NET" in Kconfig).

The networking stack is now a choice between NO_NET,
NET and NET_LWIP. Therefore '# CONFIG_NET is not set' should be
'CONFIG_NO_NET=y'. Adjust the defconfigs accordingly.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-16 11:11:56 -06:00
Jerome Forissier
c2cd7bd3ec configs: use syntax CONFIG_FOO=n in tools-only_defconfig
The tools-only defconfig causes troubles on MacOSX due to the default
C compiler being Clang (LLVM) rather than GCC and more specifically
due to [1]. Therefore replace "# CONFIG_FOO is not set" with the
equivalent "CONFIG_FOO=n" using the following command:

 $ sed -i -e 's/# \(CONFIG_[^ ]*\) is not set/\1=n/' \
       configs/tools-only_defconfig

This fixes the tools_only_macOS CI job on GitHub [2].

[1] https://github.com/llvm/llvm-project/issues/78778
[2] https://dev.azure.com/u-boot/u-boot/_build/results?buildId=9105&view=results

Suggested-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-16 11:11:55 -06:00
Tom Rini
1ca0ddb643 Merge commit 'f3f86fd1fe0fb288356bff78f8a6fa2edf89e3fc' as 'lib/lwip/lwip' 2024-10-16 08:10:14 -06:00
Tom Rini
f3f86fd1fe Squashed 'lib/lwip/lwip/' content from commit 0a0452b2c39b
git-subtree-dir: lib/lwip/lwip
git-subtree-split: 0a0452b2c39bdd91e252aef045c115f88f6ca773
2024-10-16 08:10:14 -06:00
Eugen Hristev
274bc1e6bd .mailmap: update e-mail address for Eugen Hristev
Update e-mail address.

Signed-off-by: Eugen Hristev <eugen.hristev@linaro.org>
2024-10-16 15:33:23 +03:00
Tom Rini
d5cab0d6ad Revert "Makefile: Drop SPL_FIT_GENERATOR / SPL_FIT_SOURCE support" changes
:hile we had hoped to be able to remove these options finally, it was
missed that zynq still requires these currently.

This reverts commit 5b9261fb0b and
commit 099b6df556.

Reported-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-15 20:35:07 -06:00
Tom Rini
83362ce1f5 Merge https://source.denx.de/u-boot/custodians/u-boot-usb 2024-10-15 16:40:23 -06:00
Tom Rini
77072f9efd Merge patch series "Make EFI memory allocations synchronous with LMB"
Sughosh Ganu <sughosh.ganu@linaro.org> says:

This is part two of the series to have the EFI and LMB modules have a
coherent view of memory. Part one of this goal was to change the LMB
module to have a global and persistent memory map. Those patches have
now been applied to the next branch.

These patches are changing the EFI memory allocation API's such that
they rely on the LMB module to allocate RAM memory. This fixes the
current scenario where the EFI memory module has no visibility of the
allocations/reservations made by the LMB module. One thing to note
here is that this is limited to the RAM memory region, i.e. the
EFI_CONVENTIONAL_MEMORY type. Any other memory type that is to be
added to the EFI memory map, still gets handled by the EFI memory
module.

Changes since V3:
* Add comments for the LMB_NOOVERWRITE and LMB_NONOTIFY flags
* Drop use of is_addr_in_ram() function
* Drop use of CONFIG_MEM_MAP_UPDATE_NOTIFY symbol to check if the
  notification needs to be sent.
* s/lmb_notify/lmb_should_notify
* Put a check for EFI_LOADER in the lmb_should_notify() function

Some test logs to highlight the issue that is being fixed by the series.

Without patch series
--------------------

lmb_dump_all:
 memory.count = 0x1
 memory[0]	[0x40000000-0x820fffff], 0x42100000 bytes flags: none
 reserved.count = 0x3
 reserved[0]	[0xe100000-0xeffffff], 0x00f00000 bytes flags: no-map
 reserved[1]	[0x42000000-0x421fffff], 0x00200000 bytes flags: no-map
 reserved[2]	[0x7f77da00-0x820fffff], 0x02982600 bytes flags: no-overwrite

=> efidebug memmap -- does not show regions allocated by lmb

Missing TPMv2 device for EFI_TCG_PROTOCOL
Type             Start            End              Attributes
================ ================ ================ ==========
CONVENTIONAL     0000000040000000-000000007f751000 WB
BOOT DATA        000000007f751000-000000007f756000 WB
RUNTIME DATA     000000007f756000-000000007f757000 WB|RT
BOOT DATA        000000007f757000-000000007f758000 WB
RUNTIME DATA     000000007f758000-000000007f77a000 WB|RT
BOOT DATA        000000007f77a000-000000007f781000 WB
BOOT CODE        000000007f781000-00000000807b5000 WB
RUNTIME DATA     00000000807b5000-00000000807b6000 WB|RT
BOOT CODE        00000000807b6000-00000000817c0000 WB
RUNTIME CODE     00000000817c0000-00000000817d0000 WB|RT
BOOT CODE        00000000817d0000-0000000082100000 WB
=>

Trying to allocate EFI memory with already allocated region succeeds(should fail)
---------------------------------------------------------------------------------

=> efi_mem alloc 2000 42000000
Address returned 0x42000000

=> efidebug memmap
Type             Start            End              Attributes
================ ================ ================ ==========
CONVENTIONAL     0000000040000000-0000000042000000 WB
BOOT DATA        0000000042000000-0000000042002000 WB
CONVENTIONAL     0000000042002000-000000007f751000 WB
BOOT DATA        000000007f751000-000000007f756000 WB
RUNTIME DATA     000000007f756000-000000007f757000 WB|RT
BOOT DATA        000000007f757000-000000007f758000 WB
RUNTIME DATA     000000007f758000-000000007f77a000 WB|RT
BOOT DATA        000000007f77a000-000000007f781000 WB
BOOT CODE        000000007f781000-00000000807b5000 WB
RUNTIME DATA     00000000807b5000-00000000807b6000 WB|RT
BOOT CODE        00000000807b6000-00000000817c0000 WB
RUNTIME CODE     00000000817c0000-00000000817d0000 WB|RT
BOOT CODE        00000000817d0000-0000000082100000 WB
=>

With patch series
-----------------

lmb_dump_all:
 memory.count = 0x1
 memory[0]	[0x40000000-0x820fffff], 0x42100000 bytes flags: none
 reserved.count = 0x4
 reserved[0]	[0xe100000-0xeffffff], 0x00f00000 bytes flags: no-map
 reserved[1]	[0x42000000-0x421fffff], 0x00200000 bytes flags: no-map
 reserved[2]	[0x7f74f000-0x7f77dfff], 0x0002f000 bytes flags: no-notify, no-overwrite
 reserved[3]	[0x7f77ea00-0x820fffff], 0x02981600 bytes flags: no-overwrite

=> efidebug memmap
Type             Start            End              Attributes
================ ================ ================ ==========
BOOT DATA        000000000e100000-000000000f000000 WB
CONVENTIONAL     0000000040000000-0000000042000000 WB
BOOT DATA        0000000042000000-0000000042200000 WB
CONVENTIONAL     0000000042200000-000000007f74e000 WB
BOOT DATA        000000007f74e000-000000007f753000 WB
RUNTIME DATA     000000007f753000-000000007f754000 WB|RT
BOOT DATA        000000007f754000-000000007f755000 WB
RUNTIME DATA     000000007f755000-000000007f777000 WB|RT
BOOT DATA        000000007f777000-00000000807b6000 WB
RUNTIME DATA     00000000807b6000-00000000807b7000 WB|RT
BOOT DATA        00000000807b7000-00000000817c0000 WB
RUNTIME CODE     00000000817c0000-00000000817d0000 WB|RT
BOOT DATA        00000000817d0000-0000000082100000 WB

Trying to allocate EFI memory with already allocated region fails
-----------------------------------------------------------------

=> efi_mem alloc 2000 42000000
efi_allocate_pages failed 800000000000000e
=>

Trying to allocate EFI memory with non-allocated region succeeds
----------------------------------------------------------------

=> efi_mem alloc 2000 42200000
Address returned 0x42200000

=> efidebug memmap
Type             Start            End              Attributes
================ ================ ================ ==========
BOOT DATA        000000000e100000-000000000f000000 WB
CONVENTIONAL     0000000040000000-0000000042000000 WB
BOOT DATA        0000000042000000-0000000042202000 WB
CONVENTIONAL     0000000042202000-000000007f74d000 WB
BOOT DATA        000000007f74d000-000000007f752000 WB
RUNTIME DATA     000000007f752000-000000007f753000 WB|RT
BOOT DATA        000000007f753000-000000007f754000 WB
RUNTIME DATA     000000007f754000-000000007f776000 WB|RT
BOOT DATA        000000007f776000-00000000807b5000 WB
RUNTIME DATA     00000000807b5000-00000000807b6000 WB|RT
BOOT DATA        00000000807b6000-00000000817c0000 WB
RUNTIME CODE     00000000817c0000-00000000817d0000 WB|RT
BOOT DATA        00000000817d0000-0000000082100000 WB
=>

lmb_dump_all:
 memory.count = 0x1
 memory[0]	[0x40000000-0x820fffff], 0x42100000 bytes flags: none
 reserved.count = 0x5
 reserved[0]	[0xe100000-0xeffffff], 0x00f00000 bytes flags: no-map
 reserved[1]	[0x42000000-0x421fffff], 0x00200000 bytes flags: no-map
 reserved[2]	[0x42200000-0x42201fff], 0x00002000 bytes flags: no-notify, no-overwrite
 reserved[3]	[0x7f74e000-0x7f77cfff], 0x0002f000 bytes flags: no-notify, no-overwrite
 reserved[4]	[0x7f77da00-0x820fffff], 0x02982600 bytes flags: no-overwrite

Link: https://lore.kernel.org/r/20241015153717.401371-1-sughosh.ganu@linaro.org
2024-10-15 13:46:08 -06:00
Sughosh Ganu
8d0df5fde3 lmb: replace the double-underscore with single-underscore for all functions
A bunch of static functions in the LMB module have used a
double-undersore for the function names. It was suggested to use a
single-underscore instead, as the double-underscore is usually used
by library functions. Replace the double-underscore with
single-underscore for all functions.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Suggested-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:30 -06:00
Sughosh Ganu
f3fe3232a5 efi_memory: rename variable to highlight overlap with free memory
The variable overlap_only_ram is used to specify that the new memory
region that is being created needs to come from the free memory pool
-- this is done by carving out the memory region from the free
memory. The name is a bit confusing though, as other allocated memory
regions, like boot-services code and data are also part of the RAM
memory. Rename the variable to overlap_conventional to highlight the
fact that it is the free/conventional memory that is being referred to
in this context.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:30 -06:00
Sughosh Ganu
596516d330 lmb: remove call to efi_lmb_reserve()
The EFI memory allocations are now being done through the LMB
module. With this change, there is no need to get the EFI memory map
and set aside EFI allocated memory.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:30 -06:00
Sughosh Ganu
e1b6822d65 efi_memory: do not add RAM memory to the memory map
The EFI_CONVENTIONAL_MEMORY type, which is the usable RAM memory is
now being managed by the LMB module. Remove the addition of this
memory type to the EFI memory map. This memory now gets added to the
EFI memory map as part of the LMB memory map update event handler.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-15 13:45:30 -06:00
Sughosh Ganu
ad33ce2e6c x86: e820: use the lmb API for adding RAM memory
The EFI_CONVENTIONAL_MEMORY type is now being managed through the LMB
module. Add a separate function, lmb_arch_add_memory() to add the RAM
memory to the LMB memory map. The efi_add_known_memory() function is
now used for adding any other memory type to the EFI memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:30 -06:00
Sughosh Ganu
9ec4065557 layerscape: use the lmb API's to add RAM memory
The EFI memory allocations are now being done through the LMB module,
and hence the memory map is maintained by the LMB module. Use the
lmb_arch_add_memory() API function to add the usable RAM memory to the
LMB's memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
497da0c5ce lmb: allow for boards to specify memory map
Some architectures have special or unique aspects which need
consideration when adding memory ranges to the list of available
memory map. Enable this config in such scenarios which allow
architectures and boards to define their own memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
695dbd5fae stm32mp: remove efi_add_known_memory() function definition
The efi_add_known_memory() function for the stm32mp platforms is adding
the EFI_CONVENTIONAL_MEMORY type. This memory is now being handled
through the LMB module -- the lmb_add_memory() adds this memory to the
memory map. Remove the definition of the now superfluous
efi_add_known_memory() function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
d83a763799 ti: k3: remove efi_add_known_memory() function definition
The efi_add_known_memory() function for the TI K3 platforms is adding
the EFI_CONVENTIONAL_MEMORY type. This memory is now being handled
through the LMB module -- the lmb_add_memory() adds this memory to the
memory map. Remove the definition of the now superfluous
efi_add_known_memory() function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
a68c9ac5d8 efi_memory: do not add U-Boot memory to the memory map
The memory region occupied by U-Boot is reserved by LMB, and gets
added to the EFI memory map through a call from the LMB module. Remove
this superfluous addition to the EFI memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
2f6191526a lmb: notify of any changes to the LMB memory map
In U-Boot, LMB and EFI are two primary modules who provide memory
allocation and reservation API's. Both these modules operate with the
same regions of memory for allocations. Use the LMB memory map update
event to notify other interested listeners about a change in it's
memory map. This can then be used by the other module to keep track of
available and used memory.

There is no need to send these notifications when the LMB module is
being unit-tested. Add a flag to the lmb structure to indicate if the
memory map is being used for tests, and suppress sending any
notifications when running these unit tests.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
22f2c9ed9f efi: memory: use the lmb API's for allocating and freeing memory
Use the LMB API's for allocating and freeing up memory. With this, the
LMB module becomes the common backend for managing non U-Boot image
memory that might be requested by other modules.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
eb052cbb89 lmb: add and reserve memory above ram_top
U-Boot does not use memory above ram_top. However, this memory does
need to get registered as part of the memory map, so that subsystems
like EFI pass it on to the operating system as part of the EFI memory
map. Add memory above ram_top and reserve it with the LMB_NOOVERWRITE
flag so that it does not get allocated or re-used.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Suggested-by: Mark Kettenis <kettenis@openbsd.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
3c6896ad2f lmb: add a flag to allow suppressing memory map change notification
Add a flag LMB_NONOTIFY that can be passed to the LMB API's for
reserving memory. This will then result in no notification being sent
from the LMB module for the changes to the LMB's memory map.

While here, also add a description of the memory attributes that the
flags signify.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-10-15 13:45:29 -06:00
Sughosh Ganu
c8a8f0196b lmb: add versions of the lmb API with flags
The LMB module is to be used as a backend for allocating and freeing
up memory requested from other modules like EFI. These memory requests
are different from the typical LMB reservations in that memory
required by the EFI module cannot be overwritten, or re-requested. Add
versions of the LMB API functions with flags for allocating and
freeing up memory. The caller can then use these API's for specifying
the type of memory that is required. For now, these functions will be
used by the EFI memory module.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 13:45:29 -06:00
Simon Glass
29502f6a34 test: Drop mention of old flags in a comment
A comment in test-main.c was not updated with the recent rename. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-15 12:30:07 -06:00
Marek Vasut
5b9261fb0b Makefile: Drop SPL_FIT_GENERATOR support
The SPL_FIT_GENERATOR is long superseded by binman, drop SPL_FIT_GENERATOR
support as there are no more users.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 12:30:07 -06:00
Marek Vasut
099b6df556 Makefile: Drop SPL_FIT_SOURCE support
The SPL_FIT_SOURCE is long superseded by SPL_FIT_GENERATOR which
is long superseded by binman, drop SPL_FIT_SOURCE support as there
are no more users.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-10-15 12:30:07 -06:00
Andrew Goodbody
2438203728 test: Fix skip check for sleep command test
When the config option CMD_MISC was renamed to CMD_SLEEP the check
in the test for the sleep command was not updated. Do that now.

Fixes: 1606085409 ("cmd: Rename CMD_MISC to CMD_SLEEP")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 12:30:07 -06:00
Tom Rini
08128f05a6 CI: Do not test "sleep" in QEMU
When we have platforms being emulated by QEMU we cannot rely on the
"sleep" command running for the expected wall-clock amount of time. Even
with our current allowance for deviation from expected time, it will
still fail from time to time. Exclude the sleep test here.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-15 12:30:07 -06:00
Heinrich Schuchardt
ea2515fdb8 net: correct wget_connected debug messages
* Remove duplicate debug message in wget_connected()
* Correct typo 'Connctd'

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-15 11:38:44 -06:00
Heinrich Schuchardt
8014fabb5d net/wget: set filesize
After downloading a file with wget the file size may be needed in follow up
actions, e.g.

* write file to device
* calculate hash

Let wget set the environment variable filesize.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-15 11:38:44 -06:00
Jonas Karlman
bbfa4587b5 Revert "mmc: dw_mmc: Extract FIFO data transfer into a separate routine"
The commit 0252924ac6 ("mmc: dw_mmc: Extract FIFO data transfer into a
separate routine") unintentionally changed behavior of the FIFO data
transfer routine.

When data is read and size reaches 0 the original loop would wait on
DWMCI_INTMSK_DTO or timeout. The remaining size to read and buf position
is no longer tracked across dwmci_data_transfer_fifo() calls and because
of this an extra call to fifo() and dwmci_fifo_ready() may now trigger a
FIFO underflow timeout error and slows down FIFO reading.

  Buswidth = 4, clock: 50000000
  Sending CMD16
  Sending CMD17
  dwmci_fifo_ready: FIFO underflow timeout
  Sending CMD16
  Sending CMD18
  dwmci_fifo_ready: FIFO underflow timeout
  Sending CMD12
  ## Checking hash(es) for config config-1 ... OK

This reverts commit 0252924ac6 to restore
the old working behavior.

Fixes: 0252924ac6 ("mmc: dw_mmc: Extract FIFO data transfer into a separate routine")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Tiger
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 11:38:44 -06:00
Tom Rini
a198e8bb6c Merge patch series "test: Minor fixes to test.py"
Simon Glass <sjg@chromium.org> says:

This series collects together the patches from the Labgrid series which
are not related to Labgrid, or at least can be applied independently of
using Labgrid to run the lab.

Link: https://lore.kernel.org/r/20241010002907.19383-1-sjg@chromium.org
2024-10-15 11:38:44 -06:00
Tom Rini
4378732d56 Merge patch series to add a "fallback" keyword to extlinux.conf parsing
This series from Martyn Welch <martyn.welch@collabora.com> adds the
ability to have a "fallback" option in extlinux.conf parsing, which can
be in turn used in A/B style update mechanisms.

Link: https://lore.kernel.org/u-boot/20241009131548.929439-1-martyn.welch@collabora.com/
2024-10-15 11:38:44 -06:00
Martyn Welch
87980311fb test: Add tests for the bootmeth set command
We have added a "set" sub command to bootmeth, add some tests to check
it's operation.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 11:38:43 -06:00
Simon Glass
3f6a0c890b test: Fix mulptiplex_log typo
Fix a typo in a comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Martyn Welch
3809fd35a5 bootstd: Add command to enable setting of bootmeth specific properties
We have previously added logic to allow a "fallback" option to be
specified in the extlinux configuration. Provide a command that allows
us to set this as the preferred default option when booting.

Combined with the bootcount functionality, this allows the "altbootcmd"
to provide a means of falling back to a previously known good state
after a failed update. For example, if "bootcmd" is set to:

    bootflow scan -lb

We would set "altbootcmd" to:

    bootmeth set extlinux fallback 1; bootflow scan -lb

Causing the boot process to boot from the fallback option.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
2024-10-15 10:24:27 -06:00
Simon Glass
9fa4be6598 test: Tidy up remaining exceptions
Use the new handle_exception() function from ConsoleBase also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Martyn Welch
8ba82a91b3 boot: Add logic to enable booting from fallback option
The "fallback" extlinux config option allows us to set an alternative
default boot option for when it has been detected that the default is
failing. Implement the logic required to boot from this option when
desired.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
85d7dae377 test: Detect dead connections
When the connection to a board dies, assume it is dead forever until
some user action is taken. Skip all remaining tests. This avoids CI
runs taking an hour, with hundreds of 30-second timeouts all to no
avail.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Martyn Welch
d2faad3ff3 boot: pxe_utils: Add fallback support
When configured correctly, we can detect when boot fails after the boot
process has been handed over to the kernel through the use of U-Boot's
bootcount support. In some instances, such as when we are performing
atomic updates via a system such as OSTree, it is desirable to provide a
fallback option so that we can return to a previous (hopefully working)
state.

Add a "fallback" option to the supported extlinux configuration options
that points to a label like "default" so that we can utilise this in
later commits.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
681b8f86e4 test: Separate out the exception handling
The tests currently catch a very broad Exception in each case. This is
thrown even in the event of a coding error.

We want to handle exceptions differently depending on their severity,
so that we can avoid hour-long delays waiting for a board that is
clearly broken.

As a first step, create some new exception types, separating out those
which are simply an unexpected result from executed a command, from
those which indicate some kind of hardware failure.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
e4ad90149c test: Move the receive code into a function
There is quite a bit of code to deal with receiving data from the target
so move it into its own receive() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
40a1ed1e76 test: Create a common function to get the config
The settings are decoded in two places. Combine them into a new
function, before (in a future patch) expanding the number of items.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
4018a08e42 test: Avoid failing skipped tests
When a test returns -EAGAIN this should not be considered a failure.
Fix what seems to be a problem case, where the pytests see a failure
when a test has merely been skipped.

We cannot squash the -EAGAIN error in ut_run_test() since the failure
count is incremented by its caller, ut_run_test_live_flat()

The specific example here is on snow, where a test is compiled into the
image but cannot run, so returns -EAGAIN to skip:

    test/py/tests/test_ut.py sssnow # ut bdinfo bdinfo_test_eth
    Test: bdinfo_test_eth: bdinfo.c
    Skipping: Console recording disabled
    test/test-main.c:486, ut_run_test_live_flat(): 0 == ut_run_test(uts,
    test, test->name): Expected 0x0 (0), got 0xfffffff5 (-11)
    Test bdinfo_test_eth failed 1 times
    Skipped: 1, Failures: 1
    snow # F+u-boot-test-reset snow snow

The fix is simply to respect the return code from ut_run_test(), so do
that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-15 10:24:27 -06:00
Simon Glass
189c4d9f5c test: Use a constant for the test timeout
Declare a constant rather than open-coding the same value twice.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-15 10:24:27 -06:00
Tom Rini
4f777c2ef2 Merge patch series "mtd: Make sure UBIFS does not do multi-pass page programming on flashes that don't support it"
Takahiro Kuwano <Takahiro.Kuwano@infineon.com> says:

This series is equivalent to the one for Linux MTD submitted by
Pratyush Yadav.

https://patchwork.ozlabs.org/project/linux-mtd/list/?series=217759&state=*

Changes in v3:
  - Rebase

Changes in v2:
  - Fix an issue in setting macronix_octal_fixups
  - Rework fixup hooks

Takahiro Kuwano (6):
  mtd: ubi: Do not zero out EC and VID on ECC-ed NOR flashes
  mtd: spi-nor: Allow flashes to specify MTD writesize
  mtd: spi-nor: Check nor->info before setting macronix_octal_fixups
  mtd: spi-nor: Replace default_init() hook with late_init()
  mtd: spi-nor: Call spi_nor_post_sfdp_fixups() only after
    spi_nor_parse_sfdp()
  mtd: spi-nor: Set ECC unit size to MTD writesize in Infineon SEMPER
    flashes

drivers/mtd/spi/spi-nor-core.c | 88 +++++++++++++++++++++-------------
 drivers/mtd/ubi/build.c        |  4 +-
 drivers/mtd/ubi/io.c           |  9 +++-
 include/linux/mtd/spi-nor.h    |  1 +
 4 files changed, 65 insertions(+), 37 deletions(-)

Link: https://lore.kernel.org/r/cover.1728964655.git.Takahiro.Kuwano@infineon.com
2024-10-15 09:32:40 -06:00
Takahiro Kuwano
10e75dd0bc mtd: spi-nor: Set ECC unit size to MTD writesize in Infineon SEMPER flashes
The Infineon SEMPER NOR flash family uses 2-bit ECC by default with each
ECC block being 16 bytes. Under this scheme multi-pass programming to an
ECC block is not allowed. Set the writesize to make sure multi-pass
programming is not attempted on the flash.

Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-15 08:57:49 -06:00
Takahiro Kuwano
20f1383bad mtd: spi-nor: Call spi_nor_post_sfdp_fixups() only after spi_nor_parse_sfdp()
This patch follows the upstream linux commit:
5273cc6df984("mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only
when SFDP is defined")

spi_nor_post_sfdp_fixups() was called regardless of if
spi_nor_parse_sfdp() had been called or not. late_init() should be
instead used to initialize the parameters that are not defined in SFDP.

Ideally spi_nor_post_sfdp_fixups() is called only after successful parse
of SFDP. However, in case SFDP support is disabled by .config, that can
break current functionality. Therefore, we would call it after
spi_nor_parse_sfdp() regardless of its return value.

Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-15 08:57:49 -06:00
Takahiro Kuwano
0267cfa857 mtd: spi-nor: Replace default_init() hook with late_init()
default_init() is wrong, it contributes to the maze of initializing
flash parameters. We'd like to get rid of it because the flash
parameters that it initializes are not really used at SFDP parsing time,
thus they can be initialized later.

Ideally we want SFDP to initialize all the flash parameters. If (when)
SFDP tables are wrong, we fix them with the post_sfdp/bfpt hooks, to
emphasize that SFDP is indeed wrong. When there are parameters that are
not covered by SFDP, we initialize them in late_init() - these
parameters have nothing to do with SFDP and they are not needed earlier.
With this we'll have a clearer view of who initializes what.

There are six default_init() hooks implemented just for initializing
octal_dtr_enable() and/or setup() hooks that called later on.
Just moving those to late_init() does not change functionality.

Suggested-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-15 08:57:49 -06:00
Takahiro Kuwano
b8b610e7d4 mtd: spi-nor: Check nor->info before setting macronix_octal_fixups
The macronix_octal_fixups should be set only when mfr and flags match.

Fixes: df3d5f9e41 ("mtd: spi-nor: add support for Macronix Octal flash")
Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Cc: JaimeLiao <jaimeliao.tw@gmail.com>
2024-10-15 08:57:49 -06:00
Takahiro Kuwano
88057dab2c mtd: spi-nor: Allow flashes to specify MTD writesize
Some flashes like the Infineon SEMPER NOR flash family use ECC. Under
this ECC scheme, multi-pass writes to an ECC block is not allowed.
In other words, once data is programmed to an ECC block, it can't be
programmed again without erasing it first.

Upper layers like file systems need to be given this information so they
do not cause error conditions on the flash by attempting multi-pass
programming. This can be done by setting 'writesize' in 'struct
mtd_info'.

Set the default to 1 but allow flashes to modify it in fixup hooks. If
more flashes show up with this constraint in the future it might be
worth it to add it to 'struct flash_info', but for now increasing its
size is not worth it.

This patch replicates the following upstream linux commit:
afd473e85827 ("mtd: spi-nor: core: Allow flashes to specify MTD writesize")

Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-15 08:57:49 -06:00
Takahiro Kuwano
6d7a8bf8c0 mtd: ubi: Do not zero out EC and VID on ECC-ed NOR flashes
For NOR flashes EC and VID are zeroed out before an erase is issued to
make sure UBI does not mistakenly treat the PEB as used and associate it
with an LEB.

But on some flashes, like the Infineon Semper NOR flash family,
multi-pass page programming is not allowed on the default ECC scheme.
This means zeroing out these magic numbers will result in the flash
throwing a page programming error.

Do not zero out EC and VID for such flashes. A writesize > 1 is an
indication of an ECC-ed flash.

This patch replicates the following upstream linux commit:
f669e74be820 ("ubi: Do not zero out EC and VID on ECC-ed NOR flashes")

Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Acked-by: Pratyush Yadav <pratyush@kernel.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com>
2024-10-15 08:57:49 -06:00
Neil Armstrong
3e47302dd7 usb: dwc3: invalidate dcache on buffer used in interrupt handling
On Qualcomm systems, the setup buffer and even buffers are in
a bad state at interrupt handling, so invalidate the dcache lines
for the setup_buf and event buffer to make sure we read correct
data written by the hardware.

This fixes the following error:
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type -1
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type 4673109

and invalid situation in dwc3_gadget_giveback() because setup_buf content
is read at 0s and leads to fatal crash fixed by [1].

[1] https://lore.kernel.org/all/20240528-topic-sm8x50-dwc3-gadget-crash-fix-v1-1-58434ab4b3d3@linaro.org/

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-3-5f3498d8035b@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-15 11:03:57 +02:00
Neil Armstrong
502a50ab1f usb: dwc3: fix dcache flush range calculation
The current flush operation will omit doing a flush/invalidate on
the first and last bytes if the base address and size are not aligned
with CACHELINE_SIZE.

This causes operation failures Qualcomm platforms.

Take in account the alignment and size of the buffer and also
flush the previous and last cacheline.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-2-5f3498d8035b@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-15 11:03:57 +02:00
Neil Armstrong
1f12fc7e33 usb: dwc3: allocate setup_buf with dma_alloc_coherent()
Since setup_buf is also consumed by hardware DMA, aligns it's
allocation like other hardware buffers by introduce setup_buf_addr
populated by dma_alloc_coherent(), and use it to pass the physical
address of the buffer to the hardware.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-1-5f3498d8035b@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-15 11:03:56 +02:00
Marek Vasut
d2061828a4 dts: Deduplicate dtbs target
The dtbs: target is almost identical in all architecture Makefiles.
All architecture Makefiles include scripts/Makefile.dts . Deduplicate
the dtbs: target into scripts/Makefile.dts . No functional change.

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #qcom, OF_UPSTREAM
2024-10-14 19:32:04 -06:00
Tom Rini
d467f359c4 Merge patch series "Integrate MbedTLS v3.6 LTS with U-Boot"
Raymond Mao <raymond.mao@linaro.org> says:
Integrate MbedTLS v3.6 LTS (currently v3.6.0) with U-Boot.

Motivations:
------------

1. MbedTLS is well maintained with LTS versions.
2. LWIP is integrated with MbedTLS and easily to enable HTTPS.
3. MbedTLS recently switched license back to GPLv2.

Prerequisite:
-------------

This patch series requires mbedtls git repo to be added as a
subtree to the main U-Boot repo via:
    $ git subtree add --prefix lib/mbedtls/external/mbedtls \
          https://github.com/Mbed-TLS/mbedtls.git \
          v3.6.0 --squash
Moreover, due to the Windows-style files from mbedtls git repo,
we need to convert the CRLF endings to LF and do a commit manually:
    $ git add --renormalize .
    $ git commit

New Kconfig options:
--------------------

`MBEDTLS_LIB` is for MbedTLS general switch.
`MBEDTLS_LIB_CRYPTO` is for replacing original digest and crypto libs with
MbedTLS.
`MBEDTLS_LIB_CRYPTO_ALT` is for using original U-Boot crypto libs as
MbedTLS crypto alternatives.
`MBEDTLS_LIB_X509` is for replacing original X509, PKCS7, MSCode, ASN1,
and Pubkey parser with MbedTLS.
By default `MBEDTLS_LIB_CRYPTO_ALT` and `MBEDTLS_LIB_X509` are selected
when `MBEDTLS_LIB` is enabled.
`LEGACY_CRYPTO` is introduced as a main switch for legacy crypto library.
`LEGACY_CRYPTO_BASIC` is for the basic crypto functionalities and
`LEGACY_CRYPTO_CERT` is for the certificate related functionalities.
For each of the algorithm, a pair of `<alg>_LEGACY` and `<alg>_MBEDTLS`
Kconfig options are introduced. Meanwhile, `SPL_` Kconfig options are
introduced.

In this patch set, MBEDTLS_LIB, MBEDTLS_LIB_CRYPTO and MBEDTLS_LIB_X509
are by default enabled in qemu_arm64_defconfig and sandbox_defconfig
for testing purpose.

Patches for external MbedTLS project:
-------------------------------------

Since U-Boot uses Microsoft Authentication Code to verify PE/COFFs
executables which is not supported by MbedTLS at the moment,
addtional patches for MbedTLS are created to adapt with the EFI loader:
1. Decoding of Microsoft Authentication Code.
2. Decoding of PKCS#9 Authenticate Attributes.
3. Extending MbedTLS PKCS#7 lib to support multiple signer's certificates.
4. MbedTLS native test suites for PKCS#7 signer's info.

All above 4 patches (tagged with `mbedtls/external`) are submitted to
MbedTLS project and being reviewed, eventually they should be part of
MbedTLS LTS release.
But before that, please merge them into U-Boot, otherwise the building
will be broken when MBEDTLS_LIB_X509 is enabled.

See below PR link for the reference:
https://github.com/Mbed-TLS/mbedtls/pull/9001

Miscellaneous:
--------------

Optimized MbedTLS library size by tailoring the config file
and disabling all unnecessary features for EFI loader.
From v2, original libs (rsa, asn1_decoder, rsa_helper, md5, sha1, sha256,
sha512) are completely replaced when MbedTLS is enabled.
From v3, the size-growth is slightly reduced by refactoring Hash functions.
From v6, smaller implementations for SHA256 and SHA512 are enabled and
target size reduce significantly.
Target(QEMU arm64) size-growth when enabling MbedTLS:
v1: 6.03%
v2: 4.66%
v3 - v5: 4.55%
v6: 2.90%

Tests done:
-----------

EFI Secure Boot test (EFI variables loading and verifying, EFI signed image
verifying and booting) via U-Boot console.
EFI Secure Boot and Capsule sandbox test passed.

Known issues:
-------------

None.

Link: https://lore.kernel.org/u-boot/20241003215112.3103601-1-raymond.mao@linaro.org/
2024-10-14 17:59:04 -06:00
Raymond Mao
e65dcfe6bb configs: enable MbedTLS as default setting
Enable MbedTLS as default setting for qemu arm64 and sandbox.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:53 -06:00
Raymond Mao
4e1ca0416b test: Remove ASN1 library test
With MBEDTLS_LIB_X509 enabled, we don't build the original ASN1 lib,
So remove it from test.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:52 -06:00
Raymond Mao
ab58c46584 asn1_decoder: add build options for ASN1 decoder
When building with MbedTLS, we are using MbedTLS to decode ASN1 data
for x509, pkcs7 and mscode.
Introduce _LEGACY and _MBEDTLS kconfigs for ASN1 decoder legacy and
MbedTLS implementations respectively.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:51 -06:00
Raymond Mao
e9b681a347 lib/rypto: Adapt rsa_helper to MbedTLS
Previous patch has introduced MbedTLS porting layer for RSA helper,
here to adjust the makefile accordingly.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:50 -06:00
Raymond Mao
1df80a4f5f mbedtls: add RSA helper layer on MbedTLS
Add RSA helper layer on top on MbedTLS PK and RSA library.
Introduce _LEGACY and _MBEDTLS kconfigs for RSA helper legacy and
MbedTLS implementations respectively.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:50 -06:00
Raymond Mao
513a15db0d lib/crypto: Adapt mscode_parser to MbedTLS
Previous patch has introduced MbedTLS porting layer for mscode parser,
here to adjust the header and makefiles accordingly.
Adding _LEGACY Kconfig for legacy mscode implementation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:49 -06:00
Raymond Mao
65a7b48d5a mbedtls: add MSCode parser porting layer
Add porting layer for MSCode on top of MbedTLS ASN1 library.
Introduce _MBEDTLS kconfigs for MSCode MbedTLS implementation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:48 -06:00
Raymond Mao
c47bbf9a57 lib/crypto: Adapt PKCS7 parser to MbedTLS
Previous patch has introduced MbedTLS porting layer for PKCS7 parser,
here to adjust the header and makefiles accordingly.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:47 -06:00
Raymond Mao
7de0d155cc mbedtls: add PKCS7 parser porting layer
Add porting layer for PKCS7 parser on top of MbedTLS PKCS7 library.
Introduce _LEGACY and _MBEDTLS kconfigs for PKCS7 parser legacy and
MbedTLS implementations respectively.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:46 -06:00
Raymond Mao
3741abfe86 lib/crypto: Adapt x509_cert_parser to MbedTLS
Previous patch has introduced MbedTLS porting layer for x509 cert parser,
here to adjust the header and makefiles accordingly.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:46 -06:00
Raymond Mao
70002cec5f mbedtls: add X509 cert parser porting layer
Add porting layer for X509 cert parser on top of MbedTLS X509
library.
Introduce _LEGACY and _MBEDTLS kconfigs for X509 cert parser legacy
and MbedTLS implementations respectively.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:44 -06:00
Raymond Mao
f7586471e7 lib/crypto: Adapt public_key header with MbedTLS
Previous patch has introduced MbedTLS porting layer for public key,
here to adjust the header and makefiles accordingly.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:44 -06:00
Raymond Mao
bfbf3ab615 mbedtls: add public key porting layer
Add porting layer for public key on top of MbedTLS X509 library.
Introduce _LEGACY and _MBEDTLS kconfigs for public key legacy and
MbedTLS implementations respectively.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:43 -06:00
Raymond Mao
aed1c9a20e pkcs7: move common functions to PKCS7 helper
Move pkcs7_get_content_data as a helper function that can be
shared by legacy crypto lib and MbedTLS implementation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:42 -06:00
Raymond Mao
fa1289c5d0 x509: move common functions to x509 helper
Move x509_check_for_self_signed as a common helper function
that can be shared by legacy crypto lib and MbedTLS implementation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:41 -06:00
Raymond Mao
b36a8b8911 public_key: move common functions to public key helper
Move public_key_free and public_key_signature_free as helper
functions that can be shared by legacy crypto lib and MbedTLS
implementation.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:40 -06:00
Raymond Mao
6b0d26caf1 mbedtls/external: update MbedTLS PKCS7 test suites
Update the PKCS7 test suites for multiple certs.

The PR for this patch is at:
https://github.com/Mbed-TLS/mbedtls/pull/9001

For enabling EFI loader PKCS7 features with MbedTLS build,
we need this patch on top of MbedTLS v3.6.0 before it is merged into
the next MbedTLS LTS release.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:39 -06:00
Raymond Mao
6e7acd36de mbedtls/external: support decoding multiple signer's cert
Support decoding multiple signer's cert in the signed data within
a PKCS7 message.

The PR for this patch is at:
https://github.com/Mbed-TLS/mbedtls/pull/9001

For enabling EFI loader PKCS7 features with MbedTLS build,
we need this patch on top of MbedTLS v3.6.0 before it is merged into
the next MbedTLS LTS release.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:37 -06:00
Raymond Mao
540bd26b82 mbedtls/external: support PKCS9 Authenticate Attributes
Populate PKCS9 Authenticate Attributes from signer info if it exists
in a PKCS7 message.
Add OIDs for describing objects using for Authenticate Attributes.

The PR for this patch is at:
https://github.com/Mbed-TLS/mbedtls/pull/9001

For enabling EFI loader PKCS7 features with MbedTLS build,
we need this patch on top of MbedTLS v3.6.0 before it is merged into
the next MbedTLS LTS release.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:35 -06:00
Raymond Mao
9acdd5339a mbedtls/external: support Microsoft Authentication Code
Populate Microsoft Authentication Code from the content data
into PKCS7 decoding context if it exists in a PKCS7 message.
Add OIDs for describing objects using for Microsoft Authentication
Code.

The PR for this patch is at:
https://github.com/Mbed-TLS/mbedtls/pull/9001

For enabling EFI loader PKCS7 features with MbedTLS build,
we need this patch on top of MbedTLS v3.6.0 before it is merged into
the next MbedTLS LTS release.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:33 -06:00
Raymond Mao
c60e99ff62 mbedtls: Enable smaller implementation for SHA256/512
Smaller implementation for SHA256 and SHA512 helps to reduce the
ROM footprint though it has a certain impact on performance.
As a trade-off, enable it as a default config when MbedTLS is
enabled can reduce the target size significantly with acceptable
performance loss.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:32 -06:00
Raymond Mao
bdc3f44a6b mbedtls: add digest shim layer for MbedTLS
Implement digest shim layer on top of MbedTLS crypto library.
Introduce <alg>_MBEDTLS kconfig for MbedTLS crypto implementations.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:31 -06:00
Raymond Mao
988e749d97 sha1: Remove sha1 non-watchdog API
We don't need an API specially for non-watchdog since sha1_csum_wd
supports it by disabling CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG.
Set 0x10000 as default chunk size for SHA1.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:30 -06:00
Raymond Mao
2b6f572958 md5: Remove md5 non-watchdog API
We don't need an API specially for non-watchdog since md5_wd supports
it by disabling CONFIG_HW_WATCHDOG and CONFIG_WATCHDOG.
Set 0x10000 as default chunk size for MD5.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Michal Simek <michal.simek@amd.com>
2024-10-14 17:58:28 -06:00
Raymond Mao
5d1d98399f lib: Adapt digest header files to MbedTLS
Adapt digest header files to support both original libs and MbedTLS
by switching on/off MBEDTLS_LIB_CRYPTO.
Introduce <alg>_LEGACY kconfig for legacy hash implementations.
sha256.o should depend on SHA256 kconfig only but not SUPPORT_EMMC_RPMB,
SHA256 should be selected when SUPPORT_EMMC_RPMB is enabled instead.

`IS_ENABLED` or `CONFIG_IS_ENABLED` is not applicable here, since
including <linux/kconfig.h> causes undefined reference on schedule()
with sandbox build, as <linux/kconfig.h> includes <generated/autoconf.h>
which enables `CONFIG_HW_WATCHDOG` and `CONFIG_WATCHDOG` but no schedule()
are defined in sandbox build,
Thus we use `#if defined(CONFIG_MBEDTLS_LIB_CRYPTO)` instead.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:23 -06:00
Raymond Mao
13de848338 mbedtls: add mbedtls into the build system
Port mbedtls with adapted libc header files.
Add mbedtls default config header file.
Optimize mbedtls default config by disabling unused features to
reduce the target size.
Add mbedtls kbuild makefile.
Add Kconfig skeleton and config submenu entry for selecting
crypto libraries between mbedtls and legacy ones.
Add the mbedtls include directories into the build system.
Port u-boot hash functions as MbedTLS crypto alternatives and set
it as default.

Subsequent patches will separate those Kconfigs into pairs of
_LEGACY and _MBEDTLS for controlling the implementations of legacy
crypto libraries and MbedTLS ones respectively.

The motivation of moving and adapting *INT* macros from kernel.h
to limits.h is to fulfill the MbedTLS building requirement.
The conditional compilation statements in MbedTLS expects the
*INT* macros as constant expressions, thus expressions like
`((int)(~0U >> 1))` will not work.

Prerequisite
------------

This patch series requires mbedtls git repo to be added as a
subtree to the main U-Boot repo via:

$ git subtree add --prefix lib/mbedtls/external/mbedtls \
      https://github.com/Mbed-TLS/mbedtls.git \
      v3.6.0 --squash

Moreover, due to the Windows-style files from mbedtls git repo,
we need to convert the CRLF endings to LF and do a commit manually:

$ git add --renormalize .
$ git commit

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2024-10-14 17:58:12 -06:00
Raymond Mao
25ce987bb9 CI: Exclude MbedTLS subtree for CONFIG checks
Since MbedTLS is an external repo with its own coding style,
exclude it from Azure and gitlab CI CONFIG checks.

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-14 17:58:11 -06:00
Bhupesh Sharma
3794bbf9e0 usb: xhci: Define 'XHCI_MAX_HALT_USEC' macro only once
Right now xhci header file defines XHCI_MAX_HALT_USEC macro
twice. Fix the same.

Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-10-14 22:17:51 +02:00
Godfrey Mwangi
fe91450a59 usb: xhci: pet watchdog during transfers
On some platforms with low USB throughput, tranfers
of huge files take a long time and watchdog timer can
expire resulting in hardware reset. Avoid this by
petting the watchdog as long as we have pending transfers.

Signed-off-by: Godfrey Mwangi <godmwan@microsoft.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-10-14 22:17:17 +02:00
Tom Rini
c7aafb20ce Merge tag 'u-boot-ufs-next-20241014' of https://source.denx.de/u-boot/custodians/u-boot-ufs
- Set of fixes/updated on UFS core
 - Fix dcache/flush
 - Update & Sync Quirks
 - Backport fixes from Linux
 - Add missing memory barriers
 - Remove link_startup_again logic
 - Add Neil to UFS maintainers
- Add UFS DesignWare Controller for AMD vers2 platforms
- Add UFS Qualcomm controller driver
2024-10-14 08:15:15 -06:00
Tom Rini
c676fc3710 Merge tag 'u-boot-amlogic-next-20241014' of https://source.denx.de/u-boot/custodians/u-boot-amlogic
- Add Libre Computer boards into proper libre-computer board directory
- Add new Boards:
 - Libre Computer aml-s905d3-cc
 - Libre Computer aml-a311d-cc
- Add capsule update to libretech-ac and the new boards since they have an onboard SPI nor flash
- Fix HDMI support after sync to v6.11 and regulator enable from Marek
- Fix khadas-vim3 android config for android-mainline kernel
- Disable meson64 boot targets when configs are not eavailable
2024-10-14 08:14:46 -06:00
Tom Rini
e87c5dfbaa Merge branch 'u-boot-nand-20241012' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash
This merge request add support for BCMBCA raw nand driver for bcm96846
board that switch using OF_UPSTREAM and allow use onfi ecc params when
they are available in the atmel nand controller

The patches pass the pipeline CI:
https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/22638
2024-10-14 08:13:23 -06:00
Callum Parsey
315cad97a5 configs: meson64: Ensure commands for boot targets are available
When populating BOOT_TARGET_DEVICES on Amlogic Meson platforms, verify
that the shell commands for accessing the relevant media have been
enabled in the build configuration.

This was already being done for USB, NVME and SCSI devices, but not
for MMC devices or network boot. This meant that configuring U-Boot
without the networking or MMC subsystems/drivers would cause an error
to be thrown during preprocessing.

Signed-off-by: Callum Parsey <callum@neoninteger.au>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241012080340.2596-1-callum@neoninteger.au
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Mattijs Korpershoek
0b063d6640 configs: meson64_android: Remove dtbo support
The device tree overlays are not part of the
Android Common Kernel code [1]

Historically, they existed to enable some Android specific
features but they have been removed.

Remove the dtbos logic since these files do no longer exist.

[1] ac2ea0bb91/arch/arm64/boot/dts/amlogic/

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241011-yukawa-aosp-parts-v1-2-7d74aa13ff8e@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Mattijs Korpershoek
ce138d9742 configs: khadas-vim3{l}: Increase boot/recovery partition size
The Android Common Kernel is over 34MiB now [1]. This does not
include any kernel modules nor the Android ramdisk.

To make sure we are future proof, increase both recovery
and boot partitions to 64 MiB.

[1] https://source.android.com/docs/core/architecture/kernel/gki-android15-6_6-release-builds

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20241011-yukawa-aosp-parts-v1-1-7d74aa13ff8e@baylibre.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
bfa89c503f power/domain: meson-ee-pwrc: make sure to not enable a domain twice
The upstream Device Tree for GXBB/GXL/G12A was updated with VPU domain
shared between the VPU and HDMI node, causing a double enable.

Simply store the enable state and avoid enabling twice, fixing
HDMI output on all platforms.

Link: https://lore.kernel.org/r/20241009-u-boot-topic-fix-hdmi-v1-2-2479cd90c4ea@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
53a9baeefb clk: meson: gxbb: add HDMI clocks
Align with g12a driver to handle the CLKID_HDMI, CLKID_HDMI_SEL
and CLKID_HDMI_DIV clocks since they were added to the upstream
GXBB/GXL Devicetree on v6.11 with [1]

[1] https://lore.kernel.org/all/20240626152733.1350376-1-jbrunet@baylibre.com/

Link: https://lore.kernel.org/r/20241009-u-boot-topic-fix-hdmi-v1-1-2479cd90c4ea@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
8c914e5364 video: meson: dw-hdmi: do not fail probe if HDMI regulator is already enabled
If the regulator is already enabled, this happens if the regulator
is set in regulator-always-on, regulator_set_enable() return -EALREADY.

Ignore the -EALREADY return since it's not an error.

Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Link: https://lore.kernel.org/r/20241009-u-boot-video-fix-hdmi-supply-already-on-v2-1-4478a28d1f49@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
b52364b942 dts: meson-g12-common-u-boot: do not disable canvas
We were disabling canvas, which causes meson vpu probe failure,
just stop and leave canvas alone.

Fixes: ce9fa7bffc ("ARM: dts: meson-g12a: add U-Boot specific DT for graphics")
Link: https://lore.kernel.org/r/20241008-u-boot-topic-g12-do-not-disable-canvas-v1-1-b89659370012@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
12ea40d29d ARM: meson: add support for Libre Computer aml-s905d3-cc
Add support for the Libre Computer aml-s905d3-cc "Solitude" board:
https://libre.computer/products/aml-s905d3-cc/

The Solitude board has a Credit Card form factor, similar to the
the previous "Le Potato" card, but with the Amlogic A311D SoC,
MIPI DSI and CSI connectors. PoE header and a single USB2 Type-C
connector replacing the microUSB one for power and USB 2.0.

The board has an embedded SPI NOR flash, and EFI Capsule support
is added.

The GUID is dynamically generated for the board, to get it:
=> efidebug capsule esrt
========================================
ESRT: fw_resource_count=1
ESRT: fw_resource_count_max=1
ESRT: fw_resource_version=1
[entry 0]==============================
ESRT: fw_class=4302C3CB-2502-5EFE-87E0-894A8A322893
ESRT: fw_type=unknown
ESRT: fw_version=0
ESRT: lowest_supported_fw_version=0
ESRT: capsule_flags=0
ESRT: last_attempt_version=0
ESRT: last_attempt_status=success
========================================

On the host (with the aml_encrypt_g12a result binary):
$ eficapsule --guid 4302C3CB-2502-5EFE-87E0-894A8A322893 -i 1 u-boot.bin u-boot.cap

On the board (from USB disk containing u-boot.cap at root):
=> load usb 0:1 $kernel_addr_r u-boot.cap
=> efidebug capsule update $kernel_addr_r

The binary will then be flashed on the SPI.

Link: https://lore.kernel.org/r/20240920-u-boot-topic-libre-computer-solitude-alta-v1-2-8915b108840b@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
9e6e6b034b ARM: meson: add support for Libre Computer aml-a311d-cc
Add support for the Libre Computer aml-a311d-cc "Alta" board:
https://libre.computer/products/aml-a311d-cc/

The Alta board has a Credit Card form factor, similar to the
the prvevious "Le Potato" card, but with the Amlogic A311D SoC,
MIPI DSI and CSI connectors. PoE header and a single USB2 Type-C
connector replacing the microUSB one for power and USB 2.0.

The board has an embedded SPI NOR flash, and EFI Capsule support
is added.

The GUID is dynamically generated for the board, to get it:
=> efidebug capsule esrt
========================================
ESRT: fw_resource_count=1
ESRT: fw_resource_count_max=1
ESRT: fw_resource_version=1
[entry 0]==============================
ESRT: fw_class=17E07D9D-4D91-53F4-8780-1D91F279C1A5
ESRT: fw_type=unknown
ESRT: fw_version=0
ESRT: lowest_supported_fw_version=0
ESRT: capsule_flags=0
ESRT: last_attempt_version=0
ESRT: last_attempt_status=success
========================================

On the host (with the aml_encrypt_g12a result binary):
$ eficapsule --guid 17E07D9D-4D91-53F4-8780-1D91F279C1A5 -i 1 u-boot.bin u-boot.cap

On the board (from USB disk containing u-boot.cap at root):
=> load usb 0:1 $kernel_addr_r u-boot.cap
=> efidebug capsule update $kernel_addr_r

The binary will then be flashed on the SPI.

Link: https://lore.kernel.org/r/20240920-u-boot-topic-libre-computer-solitude-alta-v1-1-8915b108840b@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
75c87c6cbc board: libre-computer: aml-s805x-cc: Enable capsule updates
Since the aml-s805-cc works well using EFI, and now the capsule updates
backend has been merged, let's enable the missing configs and add
the required structures to support it.

The GUID is dynamically generated for the board, to get it:
=> efidebug capsule esrt
========================================
ESRT: fw_resource_count=1
ESRT: fw_resource_count_max=1
ESRT: fw_resource_version=1
[entry 0]==============================
ESRT: fw_class=B8079027-9B2C-57D4-86AA-CC782ADA598C
ESRT: fw_type=unknown
ESRT: fw_version=0
ESRT: lowest_supported_fw_version=0
ESRT: capsule_flags=0
ESRT: last_attempt_version=0
ESRT: last_attempt_status=success
========================================

On the host (with the aml_encrypt_gxl result binary):
$ eficapsule --guid B8079027-9B2C-57D4-86AA-CC782ADA598C -i 1 u-boot.bin u-boot.cap

On the board (from USB disk containing u-boot.cap at root):
=> load usb 0:1 $kernel_addr_r u-boot.cap
=> efidebug capsule update $kernel_addr_r

The binary will then be flashed on the SPI.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Link: https://lore.kernel.org/r/20240917-u-boot-topic-dynamic-uuid-v2-2-416e39c6e271@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Neil Armstrong
f5b9f8900c board: libretech-ac: move board support into dedicated directory
The libretech-ac aka aml-s805x-ac supports mainline U-boot
from a dedicated SPI flash, move the board support into
a dedicated vendor/board subdirectory in order to support
vendor specific customization.

It also aligns with the vendor downstream changes.

Link: https://lore.kernel.org/r/20240917-u-boot-topic-dynamic-uuid-v2-1-416e39c6e271@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 09:06:16 +02:00
Bhupesh Sharma
0c9c501a87 ufs: Add Support for Qualcomm UFS HC driver
Add Support for the Host Controller driver for UFS HC
present on Qualcomm Snapdragon SoCs.

It has been successfully tested on SDM845, SM8250,
SM8550 ant SM8650 SoCs.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #rb3gen2
Link: https://lore.kernel.org/r/20240910-topic-ufs-qcom-controller-v1-4-54c0d2231b10@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:56:03 +02:00
Neil Armstrong
690db792cf ufs: allow UFSHCI version 4.0
Add UFSHCI version 4.0 found on the recent Qualcomm UFS Controllers.

Tested-by: Julius Lehmann <lehmanju@devpi.de>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #rb3gen2
Link: https://lore.kernel.org/r/20240910-topic-ufs-qcom-controller-v1-3-54c0d2231b10@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:56:03 +02:00
Neil Armstrong
b3f89c1d6e ufs: add get_max_pwr_mode callback
Add a new get_max_pwr_mode callback to permit the UFS controller
driver manipulate the max_pwr_mode struct right before setting
the new pwr_mode to the UFS device.

It can be used to limit the HS Gear with errata and hardware
limitations on some UFS controllers.

Tested-by: Julius Lehmann <lehmanju@devpi.de>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #rb3gen2
Link: https://lore.kernel.org/r/20240910-topic-ufs-qcom-controller-v1-2-54c0d2231b10@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:56:03 +02:00
Neil Armstrong
182e19225b ufs: add device_reset callback
Add device_reset op to permit resetting the UFS device if
the UFS controller drivers supports the operation.

Tested-by: Julius Lehmann <lehmanju@devpi.de>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #rb3gen2
Link: https://lore.kernel.org/r/20240910-topic-ufs-qcom-controller-v1-1-54c0d2231b10@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:56:03 +02:00
Venkatesh Yadav Abbarapu
d3c32f2c76 configs: versal2: Add support for AMD UFS platform driver
Enable AMD UFS platform driver.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240920041651.18173-4-venkatesh.abbarapu@amd.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:35 +02:00
Venkatesh Yadav Abbarapu
b5ac5f0307 ufs: ufs-amd-versal2: Add support for AMD UFS controller
Add UFS AMD platform support on top of the UFS DWC
and UFS platform driver. UFS AMD platform requires
some platform specific configurations like M-PHY/RMMI/UniPro
and vendor specific registers programming before doing the LINKSTARTUP.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240920041651.18173-3-venkatesh.abbarapu@amd.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:35 +02:00
Venkatesh Yadav Abbarapu
4b0ea24b42 ufs: add support for DesignWare Controller
This patch has the goal to add support for DesignWare UFS Controller
specific operations.

This is based on linux kernel commit:
"drivers/scsi/ufs/ufshcd-dwc.c: ufs: add support for DesignWare
Controller" (sha1: 4b9ffb5a353bdee49f1f477ffe2b95ab3f9cbc0c)
It is ported from linux kernel 6.11-rc1.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240920041651.18173-2-venkatesh.abbarapu@amd.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:35 +02:00
Neil Armstrong
67e291d147 ufs: core: remove link_startup_again logic
The link_startup_again logic was added in Linux to handle device
that were set in LinkDown state, which should not be the case since U-boot
doesn't set LinkDown state are init, and Linux sets the device active
in ufshcd_init() for the first link startup.

ufshcd_set_ufs_dev_active(hba) is called at ufshcd_init() right before
scheduling an ufshcd_async_scan that will call ufshcd_device_init() then ufshcd_link_startup().

The comment in probe says:
    /*
     * We are assuming that device wasn't put in sleep/power-down
     * state exclusively during the boot stage before kernel.
     * This assumption helps avoid doing link startup twice during
     * ufshcd_probe_hba().
     */
we can assume the same from U-Boot.

While it worked to far, it breaks link startup for Qualcomm Controllers v5,
let's just remove the logic.

Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-12-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Neil Armstrong
fd6ce5a50d MAINTAINERS: Add myself to the list of UFS maintainers
Adding myself to continue Bhupesh's work to enhance and fix UFS
support in U-Boot, especially for Qualcomm SoCs, and help review
patches and maintain the UFS subsystem.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-13-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Bhupesh Sharma
966d3bf431 ufs: Fix debug message in 'ufs_start'
Minor typo fix and rewording of printf message
inside 'ufs_start' which announces the availability
of the UFS device.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-11-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Bhupesh Sharma
5ce1a2c7de ufs: Add missing memory barriers
Add missing wmb() and mb() barriers in the u-boot UFS core
framework driver to allow registers updates to happen before
follow-up read operations.

This makes the barrier placement similar to the Linux UFS driver,
synced from the Linux v6.9 release.

Starting from the v6.10 release, the barriers were replaced with a register
read-back in [1], this will ported to u-boot in a second time.

[1] https://lore.kernel.org/all/20240329-ufs-reset-ensure-effect-before-delay-v5-0-181252004586@redhat.com/

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-10-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Bhupesh Sharma
00c54af3ad ufs: Sync possible UFS Quirks with Linux UFS driver
Sync u-boot UFS driver to add all possible UFS Quirks
as supported by Linux UFS driver as well.

Synced with include/ufs/ufshcd.h from Linux v6.11 release

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-9-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Bhupesh Sharma
002afccdaf ufs: Clear UECPA once due to LINERESET has happened during LINK_STARTUP
Clear UECPA once in u-boot UFS driver due to LINERESET has happened
during LINK_STARTUP. This makes the u-boot ufs driver behavior related
to UECPA similar to Linux UFS driver.

Ported from Linux kernel commit:
2355b66ed20c ("scsi: ufs: Handle LINERESET indication in err handler")

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-8-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Bhupesh Sharma
fdd33a7f14 ufs/ufs.h: Add definition of 'ufshcd_rmwl()'
Add definition of 'ufshcd_rmwl()' helper function
which would be later used by Qualcomm UFS driver
to read-modify-write registers.

Ported from Linux kernel commits:
e785060ea3a1 ("ufs: definitions for phy interface")
cff91daf52d3 ("scsi: ufs: Fix kernel-doc syntax in ufshcd.h")

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-7-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Marek Vasut
03c6f9b6bf ufs: Add UFSHCD_QUIRK_HIBERN_FASTAUTO
Add UFSHCD_QUIRK_HIBERN_FASTAUTO quirk for host controllers which supports
auto-hibernate the capability but only FASTAUTO mode.

Ported from Linux kernel commit
2f11bbc2c7f3 ("scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO")

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-6-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Marek Vasut
31f1615890 ufs: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS
Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS for host controllers which do not
support 64-bit addressing.

Ported from Linux kernel commit
6554400d6f66 ("scsi: ufs: core: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS")
with ufs_scsi_buffer_aligned() based on U-Boot generic bounce buffer.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-5-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Neil Armstrong
589a7bf0fe ufs: use dcache helpers for scsi_cmd data and only invalidate if necessary
Now we have proper flush and invalidate helpers, we can use them
directly to operate on the scsi_cmd data.

Likewise, we do not need to flush then invalidate, just flush _or_
invalidate depending on the data direction.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-4-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Neil Armstrong
4139e5680b ufs: split flush and invalidate to only invalidate when required
There is no need to flush and invalidate all data updated by the
driver, mainly because on ARM platforms flush also invalidates
the cachelines.

Split the function in two and add the appropriate cacheline
invalidates after the UFS DMA operation finishes to make sure
we read from memory.

Flushing then invalidating cacheline unaligned data causes data
corruption issues on Qualcomm platforms, and is largely unnecessary
anyway, so let's cleanup the cache operations.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-3-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Neil Armstrong
c64d22b57d ufs: fix dcache flush and invalidate range calculation
The current calculation will omit doing a flush/invalidate on the last
cacheline if the base address is not aligned with DMA_MINALIGN.

This causes commands failures and write corruptions on Qualcomm
platforms.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-2-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Neil Armstrong
9c223d8d8b ufs: allocate descriptors with size aligned with DMA_MINALIGN
Align the allocation size with DMA_MINALIGN to make sure we do not
flush/invalidate data from following allocations.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Tested-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Tested-by: Julius Lehmann <lehmanju@devpi.de>
Link: https://lore.kernel.org/r/20240930-topic-ufs-enhancements-v3-1-58234f84ab89@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-14 08:55:28 +02:00
Tom Rini
29e5dbc55c Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi
This switches all boards with the Allwinner H616/H618/H313/H700 SoCs over to
use OF_UPSTREAM. We are doing it for this SoC family only since the DTs
between the U-Boot and the kernel repo are exactly identical, whereas other
families have one compatibility fix in U-Boot to allow booting older kernels.
Other will follow if this plays out well.

The biggest chunk otherwise is adding support for an Anbernic game console,
using the H700 SoC. For that we need to enhance the DRAM support code, and
pick two DT commits from the mainline kernel/DT rebasing repo, followed
by the defconfig patch.

On top of that two small fixes for the old Allwinner A80.

Gitlab CI passed, and I booted that briefly on some boards, including an
H616 and an H618 one (with LPDDR4).
2024-10-13 20:25:41 -06:00
Tom Rini
96573a1312 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh 2024-10-13 20:25:22 -06:00
Tom Rini
580fb57736 Merge tag 'u-boot-imx-master-20241013' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22644

- Add fast authentication method for i.MX8M signing.
- Migrate imx8mp-debix-model-a to OF_UPSTREAM.
- Update MAINTAINERS file globs for i.MX6/i.MX8MP DHSOM.
- Improve ELE driver.
- Add i.MX8MP Dummy clk to fix regression.
2024-10-13 16:25:01 -06:00
Marek Vasut
edcb15c583 clk: renesas: Synchronize R-Car R8A779H0 V4M clock tables with Linux 6.10.9
Synchronize R-Car R8A779H0 V4M clock tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:26 +02:00
Marek Vasut
47fc273ee2 clk: renesas: Synchronize R-Car R8A779G0 V4H clock tables with Linux 6.10.9
Synchronize R-Car R8A779G0 V4H clock tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:26 +02:00
Marek Vasut
8c417ceaed clk: renesas: Synchronize R-Car R8A779F0 S4 clock tables with Linux 6.10.9
Synchronize R-Car R8A779F0 S4 clock tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:26 +02:00
Marek Vasut
d46a040e73 clk: renesas: Synchronize R-Car R8A779A0 V3U clock tables with Linux 6.10.9
Synchronize R-Car R8A779A0 V3U clock tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:26 +02:00
Marek Vasut
04395af28f pinctrl: renesas: Synchronize R-Car R8A779H0 V4M PFC tables with Linux 6.10.9
Synchronize R-Car R8A779H0 V4M PFC tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:19 +02:00
Marek Vasut
4d84508177 pinctrl: renesas: Synchronize R-Car R8A779G0 V4H PFC tables with Linux 6.10.9
Synchronize R-Car R8A779G0 V4H PFC tables with Linux 6.10.9,
commit 1611860f184a2c9e74ed593948d43657734a7098 .

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-10-13 23:21:19 +02:00
Marek Vasut
0034edc2f4 sh: cache: Fill in invalidate_icache_all()
Implement invalidate_icache_all() by clearing all V bits in
IC and OC. This is done by setting CCR cache control register
ICI and OCI bits.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: u-boot@lists.denx.de
2024-10-13 23:20:07 +02:00
Tom Rini
82686e678e Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra
Assorted Tegra enhancements. Merged with the recent XPL_BUILD changes,
resolve some whitespace issues and fix the name of the new apalis-tk1
env file by Tom.

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-13 10:43:24 -06:00
Svyatoslav Ryhel
711fcd3bda video: panel: add Sharp LQ101R1SX01 MIPI DSI panel driver
This module is a color active matrix LCD module incorporating
Oxide TFT (Thin Film Transistor). It is composed of a color TFT-LCD
panel, driver ICs, a control circuit and power supply circuit, and
a backlight unit. Graphics and texts can be displayed on a 2560×1600
dots panel with (16,777,216) colors by using MIPI DUAL DSI interface,
supplying +3.3V DC supply voltage for TFT-LCD panel driving and
supplying DC supply voltage for LED Backlight.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:33:46 +03:00
Svyatoslav Ryhel
744bce5123 video: tegra20: dsi: add ganged mode support
Implement ganged mode support for the Tegra DSI driver. The DSI host
controller to gang up with is specified via a phandle in the device tree
and the resolved DSI host controller used for the programming of the
ganged-mode registers.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:33:46 +03:00
Svyatoslav Ryhel
68ebc7c86b video: tegra20: dc: remove DECLARE_GLOBAL_DATA_PTR use
It seems that DECLARE_GLOBAL_DATA_PTR use is not needed and video system
works perfectly fine without it.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:33:46 +03:00
Svyatoslav Ryhel
43800d7f6d usb: host: tegra: get usb phy configuration from phy node
Obtain USB phy configuration from phy node if such exists
and is enabled. If no, set default values.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:33:39 +03:00
Ion Agorria
539633805d arm: tegra: add AP20 and AP20H SKU
Add previously undocumented SKU - AP20H found in LG Optimus 2X (P990).
Correct existing T20_7 name as it's proper name is AP20.

Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:24:15 +03:00
Ion Agorria
2b323dce57 arm: tegra: fix typo in logging functions
Change %02X to %02x since it always displayed 00 otherwise.

Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:24:15 +03:00
Svyatoslav Ryhel
8768ade2b5 board: asus: transformer: implement multi-DTB support
Use board revision detection mechanism to choose correct DTB.
Adjust documentation and build setup accordingly.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:24:03 +03:00
Svyatoslav Ryhel
1c1608e0c7 board: asus: grouper: implement multi-DTB support
Use board revision detection mechanism to choose correct DTB.
Adjust documentation and build setup accordingly.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
1f7a575615 board: htc: endeavoru: simplify RCM hook
Use SPL GPIO functions to simplify RCM hook on HTC One X.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
37f85ab4ae board: asus: grouper: dynamically detect correct SPL configuration
Use PMIC detection mechanism to find correct configuration.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
2ff444d07d drivers: tegra_gpio: add early SPL functions
In some cases access to GPIOs is needed so early that DM
is not ready even nearly. These functions are exactly for
this case.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
d7c98f2030 ARM: tegra-u-boot: add recipe for multi-dtb image
Buildman has difficulties with constructing multi-dtb images, so
let's add a temporary custom recipe for it.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
539800bf92 ARM: tegra: board2: add common dtb reselect logic
Add common logic for dynamic dtb switch and DM reload if board
features multi-dtb support.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Jonas Schwöbel
b515d7ae0d Tegra30: Add funcmux for UART over SD slot
Tegra 3 has UART-E exposable via SD card slot which may be
handy for debugging. This change only adds funcmux part, to
use UART-E on the device you additionally would need:
- set stdout-path to serial@70006400 (uarte)
- configure sdmmc1_dat3_py4 and sdmmc1_dat2_py5 pinmux for
  uarte
- disable or remove sdhci@7800000 node
- enable CONFIG_TEGRA_ENABLE_UARTE in defconfig
- set CFG_SYS_NS16550_COM to NV_PA_APB_UARTE_BASE in device
  header

Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
5e13730fc6 board: tegra: convert boards to text env
Convert boards to use text based env. This is the first stage of
conversion, common inclusions should be converted next.

Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com> # Toradex Apalis TK1
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Svyatoslav Ryhel
83b5f63679 disk: add TegraPT support
TegraPT is compatible with EFI part but it can't pass Protective MBR check.
Skip this check if CONFIG_TEGRA_PARTITION is enabled, storage uclass is MMC
and devnum is 0. Note, eMMC on supported devices MUST be aliased to mmc0.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
2024-10-13 17:20:26 +03:00
Peng Fan
19c0e50a69 clk: imx8mp: Add i.MX8MP Dummy clk
i.MX8MP SDHC use CLK_IMX8MP_DUMMY clk entry. Without the clk, the bulk
api will return failure.

The correct entry should be replaced with IMX8MP_IPG_ROOT clk in device
tree. This will be done in Kernel device tree and sync to U-Boot in
future:
https://lore.kernel.org/all/20241012025221.1728438-1-peng.fan@oss.nxp.com/

Fixes: 76332fae76 ("mmc: fsl_esdhc_imx: Enable AHB/IPG clk with clk bulk API")
Reported-by: Gilles Talis <gilles.talis@nxp.com>
Tested-by: Gilles TALIS <gilles.talis@gmail.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:46:05 -03:00
Gilles Talis
b970b73e1e arm64: imx: imx8mp-debix-model-a: Migrate to OF_UPSTREAM
Device tree for this board can be deleted. Device tree location
now points to the freescale/ directory.

Use absolute path to PMIC node entry and its regulators as
device tree in kernel does not provide corresponding labels

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:45:36 -03:00
Peng Fan
03b415d753 imx8: Correct the SCU API return value check
The SCU API alreay has been converted to return Linux error code,
using SCU error code is not correct here, although SC_ERR_NONE is value
as 0.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:45:16 -03:00
Brian Ruley
cd31c72872 binman: add fast authentication method for i.MX8M signing
Using the PKI tree with SRKs as intermediate CA isn't necessary or even
desirable in some situations (boot time, for example). Add the possibility
to use the "fast authentication" method where the image and CSF are both
signed using the SRK [1, p.63].

[1] https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/202591/1/CST_UG.pdf

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-13 09:44:00 -03:00
Brian Ruley
784f84d5d8 binman: cosmetic: refactor `nxp_imx8mcst' etype code
Simplify code and conform to the style guide used in the project by
making the following changes:
* Capitalize global constants
* Use single quotes for multiline strings (except docstrings)
* Fix line width to 79 cols
* Use f-string instead of formatting a regular string or using a
  complicated concatenation
* Move common suffix used in keys to a global variable "KEY_NAME"
  to reduce the likelihood of typos and making future changes
  easier

Signed-off-by: Brian Ruley <brian.ruley@gehealthcare.com>
Cc: Marek Vasut <marex@denx.de>
2024-10-13 09:44:00 -03:00
Marek Vasut
e612d5c2b2 ARM: imx: Update MAINTAINERS file globs for i.MX8MP DHSOM
Update the MAINTAINERS file glob to cover all of i.MX8MP DHSOM related files.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-13 09:43:05 -03:00
Marek Vasut
d947b78a1e ARM: imx: Update MAINTAINERS file globs for i.MX6 DHSOM
Update the MAINTAINERS file glob to cover all of i.MX6 DHSOM related files.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-13 09:43:05 -03:00
Ye Li
6f446ccc1f misc: fuse: Update fuse driver
When OSCCA is enabled, FSB fuse shadow (offset 0x8000)
access is disabled for SOC. So update the driver to read fuse
from ELE API. The ELE has supported to read all shadow fuses like
FSB, reuse the table of FSB for the word index used by ELE API.

Add ELE shadow fuse read and write to current ELE fuse driver.
But when LC is OEM closed, the ELE read/write shadow fuse APIs are
forbidden. Reading from any fuse will return error. This causes
problem to u-boot which must read out some fuse no matter whatever LC.
So we have to change back to read from FSB and ELE common fuse read API.
For using ELE shadow read API for development purpose like checking
the ELE shadow fuse write result, user can set env variable
"enable_ele_shd" to y to switch it.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:43:05 -03:00
Ye Li
b1fc93b95e misc: fuse: Fix FSB redundancy fuse word check and clear res
There is a bug when checking fuse word with redundancy fuse in FSB
table. The redundancy fuses are combined into 4 words, so we can't
directly use word index to do the check, otherwise the high 4 words
will fail to match.

And When calling ELE API, res parameter will pass to ELE API to get ELE
response value for failure. So most of usage does not initialize
this variable and print it after calling ELE API.
However, when ELE API returns failure, we can't ensure this res is
always set because there may be other failure like MU failure.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:43:05 -03:00
Ye Li
e6bdb8dfde misc: ele_api: Add read/write shadow fuse APIs
Add ELE APIs to support read and write shadow fuses

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:43:05 -03:00
Peng Fan
929dc83b73 misc: ele_api: Update ELE read common fuse API
On iMX8ULP, the word index 1 is used to read OTP_UNIQ_ID with 4 words
data responsed. However this special index does not apply others.
So restrict the check to i.MX8ULP to avoid problem when reading from
fuse word 1 for others, such as i.MX93.

Also update header order

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:43:05 -03:00
Peng Fan
e743134074 misc: ele_mu: Clear RR when initialize MU
When OS is doing ELE API call, before OS get the response, OS is force
reseted, then it is possible that MU RR has data during initialization
in SPL stage. So clear the RR registers, otherwise SPL ELE API call will
work abnormal.

Cc: Alice Guo <alice.guo@nxp.com>
Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-13 09:43:05 -03:00
Ye Li
2630ceecef misc: ele_mu: Update ELE MU to get TR/RR number from HW
The MU parameter register can provide the TR and RR number.
For i.MX95 which has 8 RR is different with i.MX93 and i.MX8ULP,
so update the driver to read the PAR for exact TR and RR number.

Also update compatible string for i.MX95 ELE MU.

Cc: Alice Guo <alice.guo@nxp.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
2024-10-13 09:43:05 -03:00
Linus Walleij
25e46f8281 board: bcm96846: Switch to using OF_UPSTREAM
This board clearly develops first in Linux which had more
hardware listed, so let's start to use OF_UPSTREAM.
This makes the NAND driver work.

Suggested-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-12 18:10:57 +02:00
Linus Walleij
4c6f2ab29a board: bcm96846: Enable NAND options
This adds reasonable NAND options to the BCM96846 reference design:

- CMD_NAND, MTD_RAW_NAND
- Disable SYS_NAND_ONFI_DETECTION as this just give error messages
- MTD, MTDPARTS with DM and related config options
- CMD_UBI and CMD_UBIFS as this is likely used with ubi/ubifs

What I didn't add was something like the following:

CONFIG_MTDPARTS_DEFAULT="nand0:256k(cfi),257024k(image)"

Because I don't actually have a BCM96846 reference design. These
are only available to Broadcom and their customers  I think,
but perhaps the people at Broadcom can provide the detail of
the flash layout for BCM96846 so we can add this too so the
bcm96846_config is usable out of the box.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-12 18:10:56 +02:00
Linus Walleij
8439ab9b3d drivers: nand: bcmbca: Enable on BCM6846
The BCM6846 has the BRCMBCA NAND controller so enable
it.

Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-12 18:10:56 +02:00
Linus Walleij
a49519539a mtd: rawnand: brcmnand: Add BCMBCA RAW NAND driver
The Broadcom BCA platforms are broadband access SoCs.
This is a port of the upstream Linux driver to U-Boot.
It was based on drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c
from Linux v6.11.

Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-12 18:10:44 +02:00
Zixun LI
1db2aadd84 mtd: nand: raw: atmel: Use ONFI ECC params if available
When ECC parameters are not specified in DT, first try ONFI ECC parameters
before fallback to maximum strength.

It's the Linux driver behavior since the driver rewriting in f88fc12.

From then 2 nand system refactors have been done in 6a1b66d6 and 53576c7b,
chip->ecc_strength_ds and chip->ecc_step_ds became
nanddev_get_ecc_requirements(). U-Boot didn't follow the refactor and
always use these 2 fields.

v2: Fix formatting, add upstream commit hash.

Signed-off-by: Zixun LI <zli@ogga.fr>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Balamanikandan Gunasundar
2024-10-12 18:10:21 +02:00
Tom Rini
47e544f576 Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD"
Simon Glass <sjg@chromium.org> says:

When the SPL build-phase was first created it was designed to solve a
particular problem (the need to init SDRAM so that U-Boot proper could
be loaded). It has since expanded to become an important part of U-Boot,
with three phases now present: TPL, VPL and SPL

Due to this history, the term 'SPL' is used to mean both a particular
phase (the one before U-Boot proper) and all the non-proper phases.
This has become confusing.

For a similar reason CONFIG_SPL_BUILD is set to 'y' for all 'SPL'
phases, not just SPL. So code which can only be compiled for actual SPL,
for example, must use something like this:

   #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD)

In Makefiles we have similar issues. SPL_ has been used as a variable
which expands to either SPL_ or nothing, to chose between options like
CONFIG_BLK and CONFIG_SPL_BLK. When TPL appeared, a new SPL_TPL variable
was created which expanded to 'SPL_', 'TPL_' or nothing. Later it was
updated to support 'VPL_' as well.

This series starts a change in terminology and usage to resolve the
above issues:

- The word 'xPL' is used instead of 'SPL' to mean a non-proper build
- A new CONFIG_XPL_BUILD define indicates that the current build is an
  'xPL' build
- The existing CONFIG_SPL_BUILD is changed to mean SPL; it is not now
  defined for TPL and VPL phases
- The existing SPL_ Makefile variable is renamed to SPL_
- The existing SPL_TPL Makefile variable is renamed to PHASE_

It should be noted that xpl_phase() can generally be used instead of
the above CONFIGs without a code-space or run-time penalty.

This series does not attempt to convert all of U-Boot to use this new
terminology but it makes a start. In particular, renaming spl.h and
common/spl seems like a bridge too far at this point.

The series is fully bisectable. It has also been checked to ensure there
are no code-size changes on any commit.
2024-10-11 12:23:25 -06:00
Simon Glass
0220a68c25 qconfig: Update tool for new Makefile variables
Take account of the new XPL_ and PHASE_ instead of the old SPL_ and
SPL_TPL_

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
96ed5b0e3e spl: Rename SPL_TPL_NAME and SPL_TPL_PROMPT
Rename these to use the word PHASE instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
5c10c8badf global: Rename SPL_TPL_ to PHASE_
Use PHASE_ as the symbol to select a particular XPL build. This means
that SPL_TPL_ is no-longer set.

Update the comment in bootstage to refer to this symbol, instead of
SPL_

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
c46760d596 global: Rename SPL_ to XPL_
Use XPL_ as the symbol to indicate an SPL build. This means that SPL_ is
no-longer set.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
53abdda2f6 kconfig: binman: Check for SPL instead of XPL
Now that SPL means SPL (only) and is not defined for other phases,
update kconfig rules.

This is done in one patch since otherwise many Binman tests fail.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
9280a948b1 xpl: Define CONFIG_SPL_BUILD only for the SPL build
Make this define mean SPL only, not TPL, VPL, etc.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
1d6132e2a2 global: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD
Complete this rename for all directories outside arch/ board/ drivers/
and include/

Use the new symbol to refer to any 'SPL' build, including TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
f38956a687 include: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD
Use the new symbol to refer to any 'SPL' build, including TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
371dc068bb drivers: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD
Use the new symbol to refer to any 'SPL' build, including TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
dac3ce976a board: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD
Use the new symbol to refer to any 'SPL' build, including TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:48 -06:00
Simon Glass
bef9fdbed2 arch: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD
Use the new symbol to refer to any 'SPL' build, including TPL and VPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
ac644df9a4 doc: Update init docs for the xPL changes
Update the documentation here to cover the meaning of xPL

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
64746bfdff doc: Move init-related things out of README
Move this section to rst, changing it just enough so that it builds.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
8651eb1f25 README: Drop SoC-specific comment about SPL
This should not be in the generic README file, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
e16bfd9e58 doc: Update SPL docs for the xPL changes
Update the various references to SPL in this document. Make sure to
refer to 'phases' instead of 'stages', which is not a U-Boot term.

Fix a few U-boot typos and try to improve grammar a little while we are
here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
a64e7d73d6 log: global: Rename warn_non_spl()
This should now refer to xPL rather than SPL, so update it throughout
the tree.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
80580cd981 xpl: Rename spl_phase_prefix() and spl_phase_name()
Use simpler names for these functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
6c49fc5882 xpl: Rename spl_next_phase() and spl_prev_phase()
Rename this to use the xpl prefix.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
44a4c8e93f xpl: Add a function to indicate when in xPL
Add the opposite function to not_xpl() for completeness.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
f86580fc70 xpl: Rename spl_in_proper() to not_xpl()
Give this function a slightly easier name.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
456bdb70de xpl: Rename spl_phase() to xpl_phase()
Rename this function to indicate that it refers to any xPL phase.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
41ea75aa00 xpl: Rename spl_phase to xpl_phase_t
This name fits better with the new naming scheme, so update it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
713bfc58f9 xpl: Rename u_boot_first_phase to xpl_is_first_phase()
This is a better name for this function, so update it.

Tidy up the function comment to mention VPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
90fb55e042 qconfig: Add XPL_BUILD to ignored symbols
This now appears in the code base, so add it to the list of ignored
symbols in qconfig

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
1daf5b839a scripts: Define CONFIG_XPL_BUILD for all xPL builds
The new name 'xPL' is intended to indicate a build of any phase which is
not U-Boot proper. Define it for all such phases.

Note that we also define CONFIG_SPL_BUILD for all xPL builds. This
preserves existing behaviour, but future patches will adjust that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
d90b3d9559 scripts: Add some comments about autoconf.mk
Now that the conversion of all CONFIG options to Kconfig is complete,
these files only contain the xPL_BUILD defines. Add a comment to make
this clear.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
c6efb7a42d scripts: Rename Makefile.spl to Makefile.xpl
Rename this file to indicate that it refers to any non-U-Boot-proper
phase, not just SPL, which is the phase immediately before U-Boot
proper.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
d7f1672cf7 stdio: Make use of the SERIAL define
This is always enabled for U-Boot proper, so simplify the condition
in the common Makefile.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-11 11:44:47 -06:00
Simon Glass
47bd48048f serial: Make use of the SERIAL define
This is always enabled for U-Boot proper, so simplify the condition
in the common Makefile.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:47 -06:00
Simon Glass
09eaa406f6 net: freescale: Drop use of SPL_BUILD dependency
SPL_BUILD is not a Kconfig symbol. Perhaps the intent here is to use
SPL instead. However, this causes build errors, e.g. with T1024RDB_NAND

So drop the dependency on !SPL_BUILD since it does nothing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:46 -06:00
Simon Glass
0e01334fc1 tegra: Drop dependency on SPL_BUILD
SPL_BUILD is not a Kconfig symbol so perhaps the intent here is to
use SPL instead. But that changes the output size.

So drop the dependency on !SPL_BUILD since it does nothing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-11 11:44:46 -06:00
Simon Glass
95a720e054 boot: Drop unnecessary ifdef for LOAD_FIT
Use the normal SPL_TPL_ approach for this option.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-11 11:44:46 -06:00
Simon Glass
01ab644ebc Makefile: Add a u-boot.cfg file for VPL
Create this file for VPL as well, for consistency.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-11 11:44:46 -06:00
Tom Rini
5d899fc58c Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-usb 2024-10-11 09:35:49 -06:00
Siddharth Vadapalli
c54c72dec7 usb: gadget: cdns3: Fix cdns3_ep_config() by setting ep.maxpacket
The function cdns3_ep_config() calculates the maximum packet size based
on the Endpoint Type and the Gadget Speed and stores it in the variable
"max_packet_size". This value is then programmed in the USB Controller
for the corresponding Endpoint. This may result in a mismatch between
the maximum packet size programmed in the USB controller and the maximum
packet size seen by the UDC Core via "maxpacket" member of "struct usb_ep".
Additionally, since TD_SIZE is calculated in cdns3_ep_run_transfer() on the
basis of the maximum packet size stored in the "maxpacket" member of
"struct usb_ep", it may lead to an incorrect value of TD_SIZE when compared
with what the USB controller actually expects (max_packet_size).

Fix this.

Fixes: 7e91f6ccdc ("usb: Add Cadence USB3 host and gadget driver")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20241007121927.1680039-1-s-vadapalli@ti.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-11 14:32:38 +02:00
Jerome Forissier
ce1023de73 Make AVB_VERIFY depend on FASTBOOT
AVB_BUF_ADDR, which is under "if AVB_VERIFY", defaults to
FASTBOOT_BUF_ADDR. Therefore AVB_VERIFY should depend on FASTBOOT.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Tom Rini <trini@konsulko.com> # Raspberry Pi 3 (32b, 64b,
Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/r/20241002144845.1439316-1-jerome.forissier@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-11 14:31:25 +02:00
Jan Kiszka
c69ba5a4fe usb: dwc3-generic: fix CONFIG_DM_REGULATOR-off case
When DM_REGULATOR is disabled, all calls will return -ENOSYS. Account
for that so that targets like the IOT2050 will work again.

Fixes: de451d5d5b ("usb: dwc3-generic: support external vbus regulator")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-11 05:11:06 +02:00
Tom Rini
c264a5940e Merge patch series "led: introduce LED boot and activity function"
Christian Marangi <ansuelsmth@gmail.com> says:

This series is a reworked version of the previous seried:
misc: introduce STATUS LED activity function

This series port and expand the legacy concept of LED boot from
the legacy Status LED API to new LED API.

One thing that many device need is a way to communicate to the
user that the device is actually doing something.

This is especially useful for recovery steps where an
user (for example) insert an USB drive, keep a button pressed
and the device autorecover.

There is currently no way to signal the user externally that
the bootloader is processing/recoverying aside from setting
a LED on.

A solid LED on is not enough and won't actually signal any
kind of progress.
Solution is the good old blinking LED but uboot doesn't
suggest (and support) interrupts and almost all the LED
are usually GPIO LED that doesn't support HW blink.

Additional Kconfg are also introduced to set the LED boot and
activity. Those are referenced by label.

A documentation for old and these new LED API is created.
2024-10-10 16:02:37 -06:00
Christian Marangi
aadf575050 test: dm: Expand ofnode options test with new helper
Expand ofnode options test with new generic helper for bool, int and
string.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
9046279d92 test: dm: Add tests for LED boot and activity
Add tests for LED boot and activity feature and add required property in
sandbox test DTS.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
051c448c8b doc: introduce led.rst documentation
Introduce simple led.rst documentation to document all the additional
Kconfig and the current limitation of LED_BLINK and GPIO software blink.

Also add missing definition for sw_blink in led_uc_plat struct.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
990f726ce7 ubi: implement support for LED activity
Implement support for LED activity. If the feature is enabled,
make the defined ACTIVITY LED to signal ubi write operation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
0319bae9e7 mtd: implement support for LED activity
Implement support for LED activity. If the feature is enabled,
make the defined ACTIVITY LED to signal mtd operations.

LED activity is implemented HERE and not in the subsystem side to limit
any performance degradation in case multiple call to MTD subsystem read/write
are done.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
5d162bbb20 tftp: implement support for LED activity
Implement support for LED activity. If the feature is enabled,
make the defined ACTIVITY LED to signal traffic.

Also turn the ACTIVITY LED OFF if a CTRL-C is detected in the main
net loop function.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
aad8cfa3ca led: implement LED activity API
Implement LED activity API similar to BOOT LED API.

Usual activity might be a file transfer with TFTP, a flash write...

User of this API will call led_activity_on/off/blink() to signal these
kind of activity.

New Kconfig is implemented similar to BOOT LED, LED_ACTIVITY to
enable support for it.

It's introduced a new /options/u-boot property "activity-led" and
"activity-led-period" to define the activity LED label and the
default period when the activity LED is set to blink mode.

If "activity-led-period" is not defined, the value of 250 (ms) is
used by default.

If CONFIG_LED_BLINK or CONFIG_LED_SW_BLINK is not enabled,
led_boot_blink call will fallback to simple LED ON.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
fc55ae03fd common: board_r: rework BOOT LED handling
Rework BOOT LED handling. There is currently one legacy implementation
for BOOT LED from Status Led API.

This work on ancient implementation used by BOOTP by setting the LED
to Blink on boot and to turn it OFF when the firmware was correctly
received by network.

Now that we new LED implementation have support for LED boot, rework
this by also set the new BOOT LED to blink and also set it to ON before
entering main loop to confirm successful boot.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
914fd75a5d led: implement LED boot API
Implement LED boot API to signal correct boot of the system.

led_boot_on/off/blink() are introduced to turn ON, OFF and BLINK the
designated boot LED.

New Kconfig is introduced, CONFIG_LED_BOOT to enable the feature.
This makes use of the /options/u-boot property "boot-led" to the
define the boot LED.
It's also introduced a new /options/u-boot property "boot-led-period"
to define the default period when the LED is set to blink mode.

If "boot-led-period" is not defined, the value of 250 (ms) is
used by default.

If CONFIG_LED_BLINK or CONFIG_LED_SW_BLINK is not enabled,
led_boot_blink call will fallback to simple LED ON.

To cache the data we repurpose the now unused led_uc_priv for storage of
global LED uclass info.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
30f6ea5138 dm: core: implement ofnode_options helpers
Implement ofnode_options helpers to read options in /options/u-boot to
adapt to the new way to declare options as described in [1].

[1] dtschema/schemas/options/u-boot.yaml

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-10 16:02:20 -06:00
Christian Marangi
9e3d83301e led: toggle LED on initial SW blink
We currently init the LED OFF when SW blink is triggered when
on_state_change() is called. This can be problematic for very short
period as the ON/OFF blink might never trigger.

Toggle the LED (ON if OFF, OFF if ON) on initial SW blink to handle this
corner case and better display a LED blink from the user.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-10-10 16:02:20 -06:00
Joy Zou
a404065479 power: pmic: pca9450: Add missing newline
Add newline character in log info end.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-10 12:17:46 -06:00
Joy Zou
a857e47263 power: pmic/regulator: Support pca9452
Add PCA9452 PMIC/Regulator support.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-10 12:17:46 -06:00
Joy Zou
cd63c4a79a power: regulator: pca9450: Update the BUCK1 voltage range
The pmic could be trimed with updated BUCK1 range, so update the range
for trimed pmic. The default value of Toff_Deb is used to distinguish
the non-trimed and trimed pmic.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-10 12:17:46 -06:00
Sidharth Prabukumar
6417ee7ec5 power: mp5416: Fix LDO SVAL for MP5416 PMIC
The MP5416 PMIC's LDO set-value formula is incorrect. This patch fixes
it by using the correct formula.

Signed-off-by: Sidharth Prabukumar <sidharth.prabukumar@gmail.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-10-10 11:59:50 -06:00
Takahiro Kuwano
db11dfdac5 mtd: spi-nor-ids: Add support for S28HS256T
Infineon S28HS256T is 256Mb Octal SPI device which has same
functionalities with 512Mb and 1Gb parts.

Link:https://www.infineon.com/dgdl/Infineon-S28HS256T_S28HL256T_256Mb_SEMPER_Flash_Octal_interface_1_8V_3-DataSheet-v02_00-EN.pdf?fileId=8ac78c8c8fc2dd9c018fc66787aa0657

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2024-10-10 08:13:23 -06:00
Tom Rini
113b1a86ce Merge patch series "mtd: spi-nor-ids: Add NO_CHIP_ERASE flag to Infineon 2Gb parts"
Takahiro Kuwano <Takahiro.Kuwano@infineon.com> says:

S25HS02GT, S25HL02GT, and S28HS02GT are dual-die package parts and do
not support chip erase.

In v2, split the patch and add fixes tag.

Takahiro Kuwano (2):
  mtd: spi-nor-ids: Add NO_CHIP_ERASE flag to Infineon s25hl02Gt and
    s25hs02gt
  mtd: spi-nor-ids: Add NO_CHIP_ERASE flag to Infineon s28hs02gt
2024-10-10 08:13:02 -06:00
Takahiro Kuwano
abb8213b4b mtd: spi-nor-ids: Add NO_CHIP_ERASE flag to Infineon s28hs02gt
S28HS02GT is dual-die package parts and do not support chip erase.

Fixes: 16dd109510 ("mtd: spi-nor-ids: Add Infineon(Cypress) s28hs02gt ID")
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-10 08:12:58 -06:00
Takahiro Kuwano
ae391a2c87 mtd: spi-nor-ids: Add NO_CHIP_ERASE flag to Infineon s25hl02Gt and s25hs02gt
S25HL02GT and S25HS02GT are dual-die package parts and do not support
chip erase.

Fixes: c95a914aed ("mtd: spi-nor-ids: Add Cypress s25hl-t/s25hs-t")
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
2024-10-10 08:12:58 -06:00
Tom Rini
fbab6b3b9a Merge patch series "mtd: spi-nor: Add support for S25FS-S family"
tkuw584924@gmail.com <tkuw584924@gmail.com> says:

From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>

The S25FS064S, S25FS128S, and S25FS256S are the same family of SPI NOR
Flash devices with S25FS512S.

Datasheets:
https://www.infineon.com/dgdl/Infineon-S25FS064S_64_Mb_8_MB_FS-S_Flash_SPI_Multi-I_O_1-DataSheet-v10_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ed526b25412
https://www.infineon.com/dgdl/Infineon-S25FS128S_S25FS256S_1.8_V_Serial_Peripheral_Interface_with_Multi-I_O_MirrorBit(R)_Non-Volatile_Flash-DataSheet-v15_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ed6b5ab5758
2024-10-10 08:12:18 -06:00
Takahiro Kuwano
f42e72972f mtd: spi-nor-id: Add S25FS064S, S25FS128S, S25FS256S IDs
The S25FS064S, S25FS128S, and S25FS256S are the same family of SPI NOR
Flash devices with S25FS512S. Some difference depending on the device
densities are taken care in post SFDP fixup.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
2024-10-10 08:12:13 -06:00
Takahiro Kuwano
021015ac3d mtd: spi-nor-id: Use INFO6 macro for S25FL-S
The 6th ID byte is needed to distiguish S25FL-S and S25FS-S families.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
2024-10-10 08:12:13 -06:00
Takahiro Kuwano
2d7a35d90e mtd: spi-nore-core: Fix 4KB erase opcode for s25fs-s
The correct 4KB erase opcode should be selected based on the address width
currently used.

Fixes: 562d166a13 ("mtd: spi-nor-core: Add fixups for s25fs512s")
Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
2024-10-10 08:12:12 -06:00
Marek Vasut
3c5dcde699 mtd: spi-nor-ids: Extend w25q16cl entry with locking support
The w25q16cl does support locking the same way w25q16dw does,
fill in the missing flags.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-10 08:11:27 -06:00
Marek Vasut
aa7d0f575f mtd: spi-nor-ids: Deduplicate mx25u25635f entry
The mx25u25635f entry exists twice in spi_nor_ids, remove the less
complete variant of the entry and keep only one copy of it.

Fixes: f0084f1dfd ("drivers/mtd/spi/spi-nor-ids.c: add mx25u25635f support")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2024-10-10 08:11:21 -06:00
Marek Vasut
f52ec82fa0 mtd: spi-nor-ids: Deduplicate w25q16dw entry
The w25q16dw entry exists twice in spi_nor_ids, remove the less
complete variant of the entry and keep only one copy of it.

Fixes: baef13ec9d ("mtd: spi-nor-ids: Add support for flashes tested by xilinx")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2024-10-10 08:11:11 -06:00
Marek Vasut
215f1d5794 mtd: spi-nor: Clear Winbond SR3 WPS bit on boot
Some Winbond SPI NORs have special SR3 register which is
used among other things to control whether non-standard
"Individual Block/Sector Write Protection" (WPS bit)
locking scheme is activated. This non-standard locking
scheme is not supported by either U-Boot or Linux SPI
NOR stack so make sure it is disabled, otherwise the
SPI NOR may appear locked for no obvious reason.

This SR3 WPS appears e.g. on W25Q16FW which has the same ID as
W25Q16DW, but the W25Q16DW does not implement the SR3 WPS bit.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-10-10 08:10:12 -06:00
Tom Rini
1ff60b1f0a Merge tag 'efi-2025-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2025-01-rc1

Documentation:

* Move the generic memory-documentation to doc/
* Fix typo boormethod

UEFI:

* Delete rng-seed if having EFI RNG protocol
* Don't call restart_uboot in EFI watchdog test
* Simplify building EFI binaries in Makefile
* Show FirmwareVendor and FirmwareRevision in helloworld
* Add debug output for efi bootmeth

Other:

* CONFIG_CMD_CLK should depend on CONFIG_CLK
* simplify clk command
* enable clk command on the sandbox
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
5ba825194a sandbox: enable clk command on the sandbox
Enabling the clk command on the sandbox will allow us to write tests
for it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
6015f59086 cmd: clk: simplify clk command
CONFIG_DM is always true.
The clk command is only built if CONFIG_CLK=y.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
56efea8805 cmd/Kconfig: CONFIG_CMD_CLK should depend on CONFIG_CLK
The clk command cannot provide useful output without a clock driver.
So let it depend on CONFIG_CLK.

Since commit 258c100238 ("cmd: clk: Use dump function from clk_ops")
the remark about deprecation is obsolete. Remove it.

Since commit 7ab418fbe6 ("clk: add support for setting clk rate from
cmdline") the clk command can be used to set clock frequencies. Mention
it.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
d25a10401d boot: typo boormethod
%s/boormethod/bootmethod/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
ee34507f70 test: don't call restart_uboot in EFI watchdog test
Calling u_boot_console.restart_uboot() in
test_efi_selftest_watchdog_reboot() may lead to incorrect results.

While the watchdog triggered reboot is running thee test environment may
need some time before triggering a reboot itself. This may lead to
duplicate output of the U-Boot greeter which is recorded as an error.

Reported-by: Tom Rini <trini@konsulko.com>
Fixes: df172e117d ("test/py: test reboot by EFI watchdog")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-09 22:04:56 -06:00
Simon Glass
4e97d9b259 bootstd: Add debugging for efi bootmeth
Add a little debugging so we can see what is happening.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-09 22:04:56 -06:00
Simon Glass
3899e3f0ba efi_loader: Show FirmwareVendor and FirmwareRevision in helloworld
Show the firmware vendor and revision to make it clear which firmware is
used, e.g. whether U-Boot is providing the boot services.

The output will look like

    Firmware vendor: Das U-Boot
    Firmware revision: 20241000

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Simon Glass
3697344866 efi_loader: Shorten the app rules further
Add a way to factor out the CFLAGS changes for each app, since they are
all the same.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-09 22:04:56 -06:00
Simon Glass
0cee367848 efi_loader: Shorten the app rules
We have quite a few apps now, so create a way to specify them as a list
rather than repeating the same rules again and again.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-09 22:04:56 -06:00
Simon Glass
69616cec72 efi: arm: x86: riscv: Drop crt0/relocal extra- rules
The link rule (for $(obj)/%_efi.so) in scripts/Makefile.lib handles
pulling in efi_crt0.o and efi_reloc.o so drop the 'extra' rules.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-10-09 22:04:56 -06:00
Simon Glass
6fe80876dc efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILE
This is not actually a command so the name is confusing. Use
BOOTEFI_HELLO_COMPILE instead. Put it in the efi_loader directory
with the other such config options.

The link rule (for $(obj)/%_efi.so) in scripts/Makefile.lib handles
pulling in efi_crt0.o and efi_reloc.o so drop the 'extra' rules.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-09 22:04:56 -06:00
Simon Glass
77a93ae681 doc: Move the generic memory-documentation to doc/
Move this section of the README into doc/ with some minor updates to
mention SPL and user lower-case hex.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Heinrich Schuchardt
b03b2a45f9 efi_leader: delete rng-seed if having EFI RNG protocol
For measured be boot we must avoid any volatile values in the device-tree.
We already delete /chosen/kaslr-seed if we provide and EFI RNG protocol.

Additionally remove /chosen/rng-seed provided by QEMU or U-Boot.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-10-09 22:04:56 -06:00
Chris Morgan
2f7ab49644 sunxi: Add support for Anbernic RG35XX-2024
The Anbernic RG35XX series of devices are based around an Allwinner
H700 SoC with 1GB of RAM, 2 SD cards, and multiple input buttons.

This bootloader has been tested on the Anbernic RG35XX-2024 and
RG35XX-H, but should be suitable for the entire lineup of H700 based
devices.

A future series of updates will add board selection logic to identify
and load the correct device tree automatically.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
2024-10-10 00:43:51 +01:00
Chris Morgan
c9fbe861a2 arm64: dts: allwinner: h616: Add r_i2c pinctrl nodes
Add pinctrl nodes for the r_i2c node. Without the pinmux defined the
r_i2c bus may fail to work, possibly if the bootloader uses rsb mode
for the PMIC.

Fixes: 0d17c8651188 ("arm64: dts: allwinner: Add Allwinner H616 .dtsi file")

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Fixes: 0d17c8651188 ("arm64: dts: allwinner: Add Allwinner H616 .dtsi file")
Link: https://lore.kernel.org/r/20240710231718.106894-3-macroalpha82@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@csie.org>

[ upstream commit: 7c9ea4ab76176f65f4f55aa144f9145a4bccaacb ]

(cherry-picked from commit 1665557aa57c2140d014d68dfe1a1f92f9baac82)
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:43:51 +01:00
Chris Morgan
46ada3d42e arm64: dts: allwinner: h616: Change RG35XX Series from r_rsb to r_i2c
Change the Anbernic RG35XX series to use the r_i2c bus for the PMIC
instead of the r_rsb bus. This is to keep the device tree consistent
as there are at least 3 devices (the RG35XX-SP, RG28XX, and RG40XX-H)
that have an external RTC on the r_i2c bus.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Tested-by: Ryan Walklin <ryan@testtoast.com>
Link: https://lore.kernel.org/r/20240710231718.106894-4-macroalpha82@gmail.com
Signed-off-by: Chen-Yu Tsai <wens@csie.org>

[ upstream commit: c712e5d0985628b1df13930489b49b740e610a2b ]

(cherry picked from commit 43c3a035746af3c8cad5b65055d88f1de8406823)
Reviewed-by-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:43:51 +01:00
Jernej Skrabec
6c49270960 sunxi: H616: dram: Update mbus priorities
CSI1 channel (22) is missing and IOMMU (25) has priority flag set in
vendor bootloader. Fix that.

While at it, replace bandwidth flag with priority since original flag has
always value "true".

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:23:42 +01:00
Jernej Skrabec
b37edefc20 sunxi: H616: DRAM: Adjust size scan procedure
It's safer to start scanning for columns first and then rows. Columns
reside on LSB address pins, which means that second configuration will
already have all needed row pins active.

This is also preparation for introducing DDR4 support, which need scan
for banks and bank groups too.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
2024-10-10 00:23:42 +01:00
Jernej Skrabec
d88668f913 sunxi: H616: DRAM: Adjust configuration procedure
When comparing configuration procedure to vendor driver, I noticed that
one command was out of order and that some delays were missing.

Fix that.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
2024-10-10 00:23:42 +01:00
Chris Morgan
30011d767e sunxi: H616: DRAM: Add alternative pin mapping
It seems that different dies need different PHY pin mapping. Select
alternatives at compile time.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
[adapted to switch from runtime to compile time config]
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
2024-10-10 00:23:42 +01:00
Jernej Skrabec
bc20c3ed24 sunxi: H616: dram: LPDDR4: adjust settings
Adjust H616 LPDDR4 DRAM settings to be in line with vendor driver.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
2024-10-10 00:23:41 +01:00
Andre Przywara
d75fa8c80d sunxi: power: axp809: Fix DCDC4 programming
When trying to set the DCDC4 regulator, the code was accidentally
setting the voltage register for DCDC5 (VCC-DRAM). The higher voltage
doesn't harm the DRAM chips, but upsets the Linux regulator driver: when
it tried to correct that, it tripped over a separate DT bug.
The DCDC5 DT limits are 1.425 and 1.575V, which cannot bet set with the
rail's resolution of 50mV. The kernel driver gave up, and made in turn
the system hang, as the PMIC powers essential devices.

Fix the copy&paste bug by using the correct PMIC voltage register.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:23:41 +01:00
Andre Przywara
7db2f11eb0 clk: sunxi: a80: Fix reset description
Clock gates and reset lines share a common structure in the sunxi clock
driver descriptions, but use different flags to tell them apart.

The description of the Allwinner A80 MMC clock reset lines was
erroneously using the "GATE" macro, which made the reset driver ignore
that entry, complaining with:
sunxi_set_reset: (RST-reset:#0) unhandled

Change that to the correct "RESET" macro, to make the reset driver
happy.

Fixes e0c7ce7e52 ("sunxi: clk: A80: add MMC clock support")
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:23:41 +01:00
Andre Przywara
9c4b44d1e3 sunxi: H616: switch to OF_UPSTREAM
With the recent "old-style sunxi" sync and the penultimate OF_UPSTREAM DT
update, both directories were based on the same v6.10 kernel tree.
And while there is one subtle difference in many Allwinner SoC's DT
files, the H616 ones turn out to be identical.

Remove the old copies of the H616 related .dts and .dtsi files, and
switch the whole H616 SoC over to use OF_UPSTREAM. This immediately
benefits from the recent upstream DT update, to kernel v6.11.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2024-10-10 00:23:41 +01:00
Heinrich Schuchardt
93b9cd7920 mtd: simplify CONFIG_DM_SPI_FLASH dependencies
CONFIG_DM_SPI depends on CONFIG_DM. There is no need to list CONFIG_DM
explicitly as dependency for CONFIG_DM_SPI_FLASH

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Link: https://lore.kernel.org/r/20240604044039.27795-1-heinrich.schuchardt@canonical.com
2024-10-09 14:52:44 -06:00
Tom Rini
2156bec98e Merge patch series "spi: Various Kconfig fixes"
John Watts <contact@jookia.org> says:

I'm doing some SPI work so I tried to compile all the drivers on my
sunxi board to try and avoid some regressions. This failed, so here are
some fixes for this.

Link: https://lore.kernel.org/r/20240427-spikconfig-v1-0-8a54772522f4@jookia.org
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-09 14:52:44 -06:00
John Watts
c4e69ab052 spi: rockchip_sfc: Select BOUNCE_BUFFER
This is required for compiling.

Signed-off-by: John Watts <contact@jookia.org>
2024-10-09 14:52:43 -06:00
John Watts
c90a172d91 spi: ca_sflash: Add missing dm include
This code uses dev_err which is defined in dm/device_compat.h

Signed-off-by: John Watts <contact@jookia.org>
2024-10-09 14:52:43 -06:00
John Watts
11a3e6754d spi: mtk_spim: Remove completion.h include
This created a conflict when linking.

Signed-off-by: John Watts <contact@jookia.org>
2024-10-09 14:52:42 -06:00
John Watts
7128d41427 spi: Kconfig: Add some required arch depends for drivers
These dependencies are required for building the drivers and create
compile errors if not enabled.

Signed-off-by: John Watts <contact@jookia.org>
[trini: Add ARCH_MVEBU to KIRKWOOD_SPI]
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-09 14:52:15 -06:00
Tom Rini
f8efc68b30 Merge patch series "spi-nor: Add parallel and stacked memories support"
Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com> says:

This series adds support for Xilinx qspi parallel and
stacked memeories.

In parallel mode, the current implementation assumes that a maximum
of two flashes are connected. The QSPI controller splits the data
evenly between both the flashes so, both the flashes that are connected
in parallel mode should be identical.
During each operation SPI-NOR sets 0th bit for CS0 & 1st bit for CS1 in
nor->flags.

In stacked mode the current implementation assumes that a maximum of two
flashes are connected and both the flashes are of same make but can differ
in sizes. So, except the sizes all other flash parameters of both the flashes
are identical.

Spi-nor will pass on the appropriate flash select flag to low level driver,
and it will select pass all the data to that particular flash.

Write operation in parallel mode are performed in page size * 2 chunks as
each write operation results in writing both the flashes. For doubling the
address space each operation is performed at addr/2 flash offset, where addr
is the address specified by the user.

Similarly for read and erase operations it will read from both flashes, so
size and offset are divided by 2 and send to flash.
2024-10-09 09:02:22 -06:00
Venkatesh Yadav Abbarapu
8be3beef44 config: xilinx: Enable the SPI_ADVANCE config option
Enable the SPI_ADVANCE config option for all xilinx platforms, as
this is required for parallel-memories.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Venkatesh Yadav Abbarapu
1e36d34b52 spi: zynq_qspi: Add parallel memories support in QSPI driver
Add support for parallel memories in zynq_qspi.c driver. In case of
parallel memories STRIPE bit is set and sent to the qspi ip, which will
send data bits to both the flashes in parallel. However for few commands
we should not use stripe, instead send same data to both the flashes.
Those commands are exclueded by using zynqmp_qspi_update_stripe().

Also update copyright info for this file.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Venkatesh Yadav Abbarapu
217b0a28b6 spi: zynqmp_gqspi: Add parallel memories support in GQSPI driver
Add support for parallel memories in zynqmp_gqspi.c driver. In case of
parallel memories STRIPE bit is set and sent to the qspi ip, which will
send data bits to both the flashes in parallel. However for few commands
we should not use stripe, instead send same data to both the flashes.
Those commands are exclueded by using zynqmp_qspi_update_stripe().

Also update copyright info for this file.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Venkatesh Yadav Abbarapu
34da258bb0 spi: spi-uclass: Read chipselect and restrict capabilities
Read chipselect properties from DT which are populated using 'reg'
property and save it in plat->cs[] array for later use.

Also read multi chipselect capability which is used for
parallel-memories and return errors if they are passed on using DT but
driver is not capable of handling it.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Ashok Reddy Soma
c480ec2c45 mtd: spi-nor: Add parallel and stacked memories support in read_bar and write_bar
Add support for parallel memories and stacked memories configuration
in read_bar and write_bar functions.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Ashok Reddy Soma
92e0ae42b4 mtd: spi-nor: Add parallel memories support for read_sr and read_fsr
Add support for parallel memories flash configuration in read status
register and read flag status register functions.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Venkatesh Yadav Abbarapu
5d40b3d384 mtd: spi-nor: Add parallel and stacked memories support
In parallel mode, the current implementation assumes that a maximum of
two flashes are connected. The QSPI controller splits the data evenly
between both the flashes so, both the flashes that are connected in
parallel mode should be identical.
During each operation SPI-NOR sets 0th bit for CS0 & 1st bit for CS1 in
nor->flags.

In stacked mode the current implementation assumes that a maximum of two
flashes are connected and both the flashes are of same make but can
differ in sizes. So, except the sizes all other flash parameters of both
the flashes are identical

Spi-nor will pass on the appropriate flash select flag to low level
driver, and it will select pass all the data to that particular flash.

Write operation in parallel mode are performed in page size * 2 chunks as
each write operation results in writing both the flashes. For doubling
the address space each operation is performed at addr/2 flash offset,
where addr is the address specified by the user.

Similarly for read and erase operations it will read from both flashes,
so size and offset are divided by 2 and send to flash.

Adding the config option SPI_ADVANCE for non SPL code.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:54 -06:00
Venkatesh Yadav Abbarapu
8a64a88a78 config: mx6sabresd: Default don't enable the flash lock
By default flash lock option is enabled, enable this option only
when it is required. By disabling the lock config will save some
amount of memory.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-10-09 09:01:53 -06:00
Tom Rini
12f1212e95 Merge commit '0344c602eadc0802776b65ff90f0a02c856cf53c' as 'lib/mbedtls/external/mbedtls' 2024-10-08 13:57:10 -06:00
Tom Rini
0344c602ea Squashed 'lib/mbedtls/external/mbedtls/' content from commit 2ca6c285a0dd
git-subtree-dir: lib/mbedtls/external/mbedtls
git-subtree-split: 2ca6c285a0dd3f33982dd57299012dacab1ff206
2024-10-08 13:56:50 -06:00
Udit Kumar
fbe16bc280 arch: arm: dts: k3-j7200-r5-evm: Enable AVS feature
During DT sync with kernel 6.6, AVS feature was removed by mistake.
So adding back AVS feature.

Fixes: df73e791ce09("arm: dts: j7200: dts sync with Linux 6.6-rc1")

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-10-08 10:23:36 -06:00
Tom Rini
d892702080 configs: Resync with savedefconfig
Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
2024-10-08 09:28:10 -06:00
Daniel Palmer
080bb8480a cmd: Make bootvx independent of bootelf
There are lots of usecases for running baremetal ELF
binaries via bootelf but if you enable bootelf you
get bootvx as well and you probably don't want or need
it.

Hide bootvx behind it's own configuration option.

Signed-off-by: Daniel Palmer <daniel@0x0f.com>
2024-10-07 21:31:22 -06:00
Matthias Pritschet
c623bce70c mkimage: ecdsa: add nodes to signature/key node
Add the "required", "algo", and "key-name-hint" nodes to the
signature/key node if ecdsa256 is used.

This change is mainly copy&paste from rsa_add_verify_data which already
adds these nodes.

Signed-off-by: Matthias Pritschet <matthias.pritschet@itk-engineering.de>
2024-10-07 21:31:20 -06:00
Matthias Pritschet
b67436d319 mkimage: ecdsa: add signature/key nodes to dtb if missing
If the signature/key node(s) are not yet present in the U-Boot device
tree, ecdsa_add_verify_data simply fails if it can't find the nodes.
This behaviour differs from rsa_add_verify_data, wich does add the missing
nodes and proceeds in that case.

This change is mainly copy&paste from rsa_add_verify_data to add the
same behaviour to ecdsa_add_verify_data.

Signed-off-by: Matthias Pritschet <matthias.pritschet@itk-engineering.de>
2024-10-07 21:30:50 -06:00
Wadim Egorov
57668b0135 configs: am64x*_r5_defconfig: Drop BOOTCOMMAND
There is no need to define a default for bootcmd in R5 u-boot because
the R5 is directly booting into the next stage A53 bootloader.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-10-07 15:10:13 -06:00
Jonas Karlman
556ea53c83 serial: ns16550: Try get serial clock rate from DT before CLK
Initializing a clock driver to read a known static clock rate can take
some time at U-Boot proper pre-reloc phase.

Change to first try and read clock rate from DT to speed up boot time,
fall back to getting the clock rate from clock driver.

This help reduce boot time by around:
- ~35ms on a Radxa ROCK Pi 4 (RK3399)
- ~15ms on a Radxa ZERO 3W (RK3566)
Time that is wasted getting a static rate known at compile time.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-07 15:10:05 -06:00
Chris Webb
f4df9f53b7 pinctrl: mediatek: Bind gpio while binding pinctrl
Mediatek pinctrl drivers call mtk_gpiochip_register() to bind the child
gpio controller as part of mtk_pinctrl_common_probe(). This breaks
gpiohog support because the gpio controller is bound too late for
DM_FLAG_PROBE_AFTER_BIND (set while binding hogs) to work.

Move the mtk_gpiochip_register() to mtk_pinctrl_common_bind() and call
this as the .bind method of each of the mediatek pinctrl drivers.

Signed-off-by: Chris Webb <chris@arachsys.com>
2024-10-07 15:09:55 -06:00
Tom Rini
c530f6079c Merge branch 'next' 2024-10-07 09:06:49 -06:00
Tom Rini
28dc47038e Merge branch 'u-boot-nand-20241005' of https://gitlab.denx.de/u-boot/custodians/u-boot-nand-flash into next
These are a number of assorted upstream Linux fixes to the
BRCMNAND driver.

This patch set lowers the hamming distance between the Linux
and U-Boot drivers a bit as well, while we deviate quite
a bit it is still possible to bring fixes over thanks to
exercises like this.

The patches pass the pipeline CI:
https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/22535
2024-10-05 11:19:24 -06:00
William Zhang
7ed8bcdcfb mtd: rawnand: brcmnand: Add support for getting ecc setting from strap
Backport from the upstream Linux kernel
commit c2cf7e25eb2a3c915a420fb8ceed8912add7f36c
"mtd: rawnand: brcmnand: Add support for getting ecc setting from strap"

Note: the upstream kernel introduces a new
bool brcmnand_get_sector_size_1k() function because the int
version in U-Boot has been removed in Linux. I kept the old
int-returning version that is already in U-Boot as we depend
on that in other code.

BCMBCA broadband SoC based board design does not specify ecc setting in
dts but rather use the SoC NAND strap info to obtain the ecc strength
and spare area size setting. Add brcm,nand-ecc-use-strap dts propety for
this purpose and update driver to support this option. However these two
options can not be used at the same time.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: David Regan <dregan@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20240301173308.226004-1-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
Tested-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
William Zhang
337cf1ce0d mtd: rawnand: brcmnand: Support write protection setting from dts
Backport of upstream Linux
commit 8e7daa85641c9559c113f6b217bdc923397de77c
"mtd: rawnand: brcmnand: Support write protection setting from dts"

Augmented to also support the "write-protect" boolean property.

The write protection feature is controlled by the module parameter wp_on
with default set to enabled. But not all the board use this feature
especially in BCMBCA broadband board. And module parameter is not
sufficient as different board can have different option.  Add a device
tree property and allow this feature to be configured through the board
dts on per board basis.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Kamal Dasu <kamal.dasu@broadcom.com>
Reviewed-by: David Regan <dregan@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20240223034758.13753-14-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
Linus Walleij
c65730b5b1 mtd: rawnand: brcmnand: Add read data bus interface
This is a port of the read data bus interface from the Linux
brcmnand driver, commit 546e425991205f59281e160a0d0daed47b7ca9b3
"mtd: rawnand: brcmnand: Add BCMBCA read data bus interface"

This is needed for the BCMBCA RAW NAND driver.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
William Zhang
84d1a73d8f mtd: rawnand: brcmnand: Fix mtd oobsize
Backport from upstream Linux
commit 60177390fa061c62d156f4a546e3efd90df3c183
"mtd: rawnand: brcmnand: Fix mtd oobsize"

brcmnand controller can only access the flash spare area up to certain
bytes based on the ECC level. It can be less than the actual flash spare
area size. For example, for many NAND chip supporting ECC BCH-8, it has
226 bytes spare area. But controller can only uses 218 bytes. So brcmand
driver overrides the mtd oobsize with the controller's accessible spare
area size. When the nand base driver utilizes the nand_device object, it
resets the oobsize back to the actual flash spare aprea size from
nand_memory_organization structure and controller may not able to access
all the oob area as mtd advises.

This change fixes the issue by overriding the oobsize in the
nand_memory_organization structure to the controller's accessible spare
area size.

Fixes: a7ab085d7c16 ("mtd: rawnand: Initialize the nand_device object")
Signed-off-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-6-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
William Zhang
32bcf7c1ee mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
Backport of upstream Linux
commit 5d53244186c9ac58cb88d76a0958ca55b83a15cd
"mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write"

When the oob buffer length is not in multiple of words, the oob write
function does out-of-bounds read on the oob source buffer at the last
iteration. Fix that by always checking length limit on the oob buffer
read and fill with 0xff when reaching the end of the buffer to the oob
registers.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-5-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
William Zhang
29777ec374 mtd: rawnand: brcmnand: Fix potential false time out warning
Backport from the Linux kernel:
commit 9cc0a598b944816f2968baf2631757f22721b996
"mtd: rawnand: brcmnand: Fix potential false time out warning"

If system is busy during the command status polling function, the driver
may not get the chance to poll the status register till the end of time
out and return the premature status.  Do a final check after time out
happens to ensure reading the correct status.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-3-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
William Zhang
16101726e8 mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
Backport from the Linux kernel
commit 2ec2839a9062db8a592525a3fdabd42dcd9a3a9b
"mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller"

v7.2 controller has different ECC level field size and shift in the acc
control register than its predecessor and successor controller. It needs
to be set specifically.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230706182909.79151-2-william.zhang@broadcom.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: William Zhang <william.zhang@broadcom.com>
2024-10-05 11:19:24 -06:00
Tom Rini
7321b7dd36 Merge tag 'u-boot-imx-next-20241005' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22526

- Add DA9063 watchdog support for the imx6q-lxr2 board.
- Add support for DH electronics i.MX8M Plus DHCOM PicoITX
- Add DH i.MX8MP DHCOM SoM on DRC02 carrier board
- Several fsl_esdhc_imx improvements.
- Pas no-mmc-hs400 to mmc2 on imx8mm-cl-iot-gate.
2024-10-05 11:18:16 -06:00
Tom Rini
be99d3cba6 Merge branch 'qcom-next' of https://source.denx.de/u-boot/custodians/u-boot-snapdragon into next
* Initial UFS PHY driver
* Support for SM8150 (clock and pinctrl)
* Allow writing configuration to PMIC GPIOs again
* Support for configuring "special" pins (e.g. UFS reset or sdhc pins)
* Support for "clk dump" command to decode various clocks.
2024-10-04 09:01:44 -06:00
Jonas Karlman
7fea4f2114 rockchip: Provid SPL control over otp presence
The series "rockchip: Add efuse and otp support to more SoCs" [1],
merged in v2023.04, refactored and extended the Rockchip efuse and otp
driver to support reading eFUSE/OTP for all supported Rockchip SoCs.

Due to use of different licenses the drivers were never combined into a
single driver, however anything non SoC specific should be applied to
both drivers.

The commit fe38b88453 ("rockchip: Provided SPL control over efuse
presence") changed Makefile options for only one of the two drivers,
apply same change to keep these two drivers in sync.

[1] https://lore.kernel.org/r/20230222224436.1570224-1-jonas@kwiboo.se/

Fixes: fe38b88453 ("rockchip: Provided SPL control over efuse presence")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2024-10-04 08:59:30 -06:00
Caleb Connolly
04584089e1 clk/qcom: sm8250: add debug data
Drop in the RCG and GPLL data for debugging these clocks.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:04 +02:00
Caleb Connolly
9b93eb4049 clk/qcom: sm6115: add debug data
Add "clk dump" support for SM6115.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:04 +02:00
Caleb Connolly
7605db1809 clk/qcom: sdm845: add dump data
Add debug data to dump PLL and RCG clocks.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:03 +02:00
Caleb Connolly
ba0598bdc8 clk/qcom: implement clk dump
Add support for dumping a few of the clocks used on Qualcomm platforms.
Naming the Global PLL's, Root Clock Generators, and gate clocks.

This helps a lot with platform bringup and feature enablement by making
it easy to sanity check that the clocks are programmed correctly.

== Usage ==

Enable CONFIG_CMD_CLK and "#define LOG_DEBUG" at the top of
qcom-<soc>.c.

The "clk dump" command should print the states of all the gates, GPLLs
and RCGs for your SoC.

== Glossary ==

RCG: Root Clock Generator
* Takes in some fairly arbitrary high freq clock (configurable clock
source and options for taking just even pulses and other things)
* Output frequency = input_freq * (m/n) * (1/d) where m/n are arbitrary
8 or 16-bit values (depending on the RCG), and d is a number (with
support for .5 offsets).

GPLL: Global Phase Locked Loop
* Crystal as input
* integer multiplier + exponent part (2^-40)

Gate: Simple on/off clock
* Put between RCGs and the peripherals they power
* Required to allow for correct power sequencing

If you do the maths manually using the equations from "clk dump", the
numbers should roughly line up by they're likely to be out by a handful
of MHz. They output is formatted so that it can be pasted directly into
the python interpreter.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:03 +02:00
Caleb Connolly
dc554a07ea Revert "gpio: qcom_pmic: add a quirk to skip GPIO configuration"
This reverts commit 19f000b72b.

The bug in writing was caused by a long-standing error in the SPMI
driver which has since been fixed - c2de620d64 ("spmi: msm: fix
version 5 support"). We can safely enable writing GPIO configuration
now.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:03 +02:00
Neil Armstrong
58fa520424 pinctr: qcom: sm8250: add special pins pins configuration data
Add the special pins configuration data to allow setup the bias
of the UFS and SDCard pins on the SM8250 SoC.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:03 +02:00
Neil Armstrong
f9bb539460 gpio: msm: add support for special pins
Leverage the data introduced in the struct msm_special_pin_data to allow
setting the gpio direction and value if supported by the pin data.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-10-04 14:57:02 +02:00
Bhupesh Sharma
62130bc0cb phy: qcom: Add QMP UFS PHY driver
Add Qualcomm QMP UFS PHY driver which is available on the following
Snapdragon SoCs - SDM845, SM8250, SM8550 and SM8650 SoCs.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-04 14:57:02 +02:00
Bhupesh Sharma
b4256b5dca phy: qcom: Import QMP phy related header files from Linux
Import Qualcomm QMP phy related header files from Linux v6.11-rc7,
limit to headers needed to setup QMP v2 to v6 UFS PHYs.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-04 14:57:02 +02:00
Julius Lehmann
c2c7498445 config: qcom: add sm8150 to qcom_defconfig
Enable clk and pinctrl for sm8150

Signed-off-by: Julius Lehmann <lehmanju@devpi.de>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-04 14:57:01 +02:00
Julius Lehmann
a9a8f97e00 pinctrl: qcom: add driver for SM8150 SoC
Add pinctrl and GPIO driver for SM8150. Driver code is based on the
similar U-Boot drivers. All constants are taken from the corresponding
Linux driver. This drivers differs from the similar U-Boot drivers,
because SM8150 SoC have different function IDs for the same functions
on different pins.

Co-authored-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Julius Lehmann <lehmanju@devpi.de>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-04 14:57:01 +02:00
Julius Lehmann
035e29c4c8 clk: qcom: add driver for SM8150 SoC
Add clock, reset and power domain driver for SM8150. Driver code is
based on the similar U-Boot drivers. All constants are taken from the
corresponding Linux driver.

This driver supports clock rate setting only debug UART,
RGMII/Ethernet modules and USB controller.

Co-authored-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Julius Lehmann <lehmanju@devpi.de>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-10-04 14:57:01 +02:00
Fabio Estevam
ef815d7551 lxr2: Add DA9063 watchdog support
The LXR2 board has a DA9063 that can provide watchdog functionality.

The DA9063 watchdog can cause a full POR reset, which is preferred
over the built-in i.MX6 watchdog.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-10-04 09:55:26 -03:00
Fabio Estevam
52612185af da9063: Add watchdog support
The DA9063 PMIC is a multi-function device that provides
regulator, watchdog, RTC, and ON key functionalities.

Add support for the DA9063 PMIC watchdog functionality.

Based on the 6.11 kernel drivers/watchdog/da9063_wdt.c driver.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
2024-10-04 09:51:39 -03:00
Marek Vasut
edb2e27530 ARM: imx: Drop bogus newline
This shows up in 'help' output and introduces bogus gap:
"
mfgprot   - Manufacturing Protection

mii       - MII utility commands
"
Drop the newline to fix this.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:17:02 -03:00
Ying-Chun Liu (PaulLiu)
1c2feef8e1 arch: arm: dts: imx8mm-cl-iot-gate.dts: add no-mmc-hs400 to mmc2
The eMMC device on imx8mm-cl-iot-gate seems not support hs400.
When booting 6.1.0 kernel we got the following error.

    mmc2: mmc_select_hs400es failed, error -110
    mmc2: error -110 whilst initialising MMC card

Add no-mmc-hs400 to mmc2 node solves the problem.

Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP i.MX U-Boot Team <uboot-imx@nxp.com>
2024-10-04 09:15:53 -03:00
Vitor Soares
8fae44897f arm: imx: imx8m: soc: Fix VPU fdt disable fixup
With the introduction of downstream Linux 6.6, the iMX8MP VPU block
control node in DTS was renamed "blk-ctl@38330000" and will not match
the ones found in `node_path_imx8mp` resulting in the node not being
disabled on the VPU-less variants.

Add an extra node_path entry for imx8mp VPU block control that match
with downstream Linux.

Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:33 -03:00
Peng Fan
c24dcfa0c5 mmc: fsl_esdhc_imx: Reset tuning logic
When supporting partition reset for SoC such as i.MX95 , the Linux
Kernel may have configured the tuning, while after force reset by
wdog or else, uboot CMD0 will never pass unless config RSTT to reset
tuning logic.

Since RSTA and RSTT are independent, so need both to be reseted in the
controller.

Acked-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:15 -03:00
Ye Li
876f6de20a mmc: fsl_esdhc_imx: Avoid resource leak
The memory of priv and plat are leaked if max_bus_width is wrong.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:15 -03:00
Ye Li
c820d33068 mmc: fsl_esdhc_imx: Fix host_caps issue for non-DM driver
The plat->cfg is wrongly memset to 0, so the host_caps value configured
in fsl_esdhc_initialize is reset. Remove the unnecessary memset since
plat is allocated via calloc.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:15 -03:00
Ye Li
51e7c1f822 mmc: fsl_esdhc_imx: Send 80 clocks before IDLE command
According to SD and MMC spec, 74 clocks must be sent to device after
power stable. This is need in reinit ops for DM MMC or init ops for
non-DM MMC after power cycle.

So set the INTIA to send 80 clocks in esdhc_init_common and move
its calling from probe to reinit.

However, on 8MQ EVK and 8QXP MEK with some brands of SD cards, sending
80 clocks may not work well.

The root cause is related with power up time.  According to spec, after
power stable, host shall supply at least 74 SD clocks to the SD card with
the maximum of 1ms. However, the power ram up time is related with the
characteristic of SD card. At the moment of sending 74 SD clocks, the
power probably not ram up to the operating level on the problematic
cards. Then cause the cards not ready.

This patch changes to send SD clock with 1ms duration to replace 80
SD clocks (0.2ms at 400Khz clock).
This way meets the spec requirement as well, and adds the margin for
power ram up time to be compatible with the problematic SD cards.
This is also aligned with implementation which has FORCE clock
always on.

Reviewed-and-tested-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:15 -03:00
Peng Fan
76332fae76 mmc: fsl_esdhc_imx: Enable AHB/IPG clk with clk bulk API
With partition reset supported for i.MX8QM/QXP/95 and etc, when linux
mmc runtime suspended, the mmc clks are gated off. While at same time
system controller reset Cortex-A cores because of various reasons(
WDOG timeout and etc), with SPL run again, only enable PER clk is not
enough, also need to enable AHB/IPG clk, here use clk bulk API to enable
all the clocks.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-10-04 09:15:15 -03:00
Ye Li
dd95eefb3a gpio: adp5585: Add SPL config for ADP5585 driver
So we can disable to build ADP5585 in SPL to save size

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-04 09:14:29 -03:00
Marek Vasut
f97f7f9966 arm64: dts: imx8mp: Add DH i.MX8MP DHCOM SoM on DRC02 carrier board
Add support for DH electronics i.MX8MP DHCOM SoM on DRC02 carrier board.
This system is populated with two ethernet ports, two CANs, RS485 and RS232,
USB, capacitive buttons and an OLED display.

Matching Linux kernel patch has been posted:
https://lore.kernel.org/imx/20240925160343.84388-2-marex@denx.de/

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-04 09:14:29 -03:00
Marek Vasut
c93c40e7f6 arm64: dts: imx8mp: Add support for DH electronics i.MX8M Plus DHCOM PicoITX
Add support for DH electronics i.MX8M Plus DHCOM SoM on PicoITX carrier board.
This system is populated with serial console, EQoS ethernet, eMMC, SD, SPI NOR,
LEDs and USB 3.0 host used in USB 2.0 mode on PicoITX.

Matching Linux kernel patch has been posted:
https://lore.kernel.org/imx/20240928234949.357893-2-marex@denx.de/

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-10-04 09:14:29 -03:00
Tom Rini
00292c6b39 Merge tag 'u-boot-dfu-next-20241003' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next
u-boot-dfu-next-20241003

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

DFU:
- Reinitialize only if dfu_alt_info changed

USB Gadget:
- New usb gadget driver for Renesas USBHS
- Simplify kconfig deps for CMD_USB_MASS_STORAGE

Android:
- Provide bootloader version to android via kernel commandline
2024-10-03 16:09:40 -06:00
Tom Rini
0d28900dd1 Merge patch series "vbe: Series part D"
Simon Glass <sjg@chromium.org> says:

This includes various patches towards implementing the VBE abrec
bootmeth in U-Boot.
2024-10-03 11:52:42 -06:00
Simon Glass
fe38b88453 rockchip: Provided SPL control over efuse presence
This driver should not generally be present in SPL, even if misc devices
are enabled. Update the Makefile rule accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
877bae24b0 rockchip: mmc: Fix a missing colon and newline
Add a missing colon and newline in rk3399_emmc_get_phy().

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
b2f571fe71 mmc: rockchip: Allow clocks to be missing
Allow MMC init when clock support is not enabled in a particular phase.

Refactor the setting of priv->emmc_clk so it is a bit clearer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
e59e50217a mmc: rockchip: Log some error returns
Add a little logging to some places in this driver, to aid debugging
when something goes wrong.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
e771a9db4e mmc: Log the error when init fails
Add an error-return log to the call in mmc_init_device()

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
69bd517eeb mmc: Add more debugging for SPL
When MMC booting fails it is sometimes hard to figure out what went
wrong as there is no error code. It isn't even clear which MMC device
was chosen, since SPL can have its own numbering.

Add some debugging to help with this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:17 -06:00
Simon Glass
db59f0bcb6 mmc: Support driver model in TPL
Some boards want to use DM_MMC in TPL so add an option for that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
4f9c15185d arm: Fix up a stale comment in sections.c
There are currently four symbols here, so drop the word 'two'.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-03 11:52:16 -06:00
Simon Glass
861df831d3 arm: cache: Drop a stale comment
This header includes more than just dummy functions, so drop this
comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
a3403e6fbf armv8: Support not having separate BSS
Separate BSS is current mandatory on armv8 but this is not useful for
early boot phases. Add support for the combined BSS.

Use an #ifdef to avoid using CONFIG_SPL_BSS_START_ADDR which is not
valid in this case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-10-03 11:52:16 -06:00
Simon Glass
5d93d8137d serial: Support debug UART in TPL
Some boards want to use the debug UART in TPL so add an option for that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
752fb69af6 ram: Support driver model in VPL
Some boards want to use RAM in VPL so add an option for that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
cb75110137 tpl: Support numbered aliases in device tree
Add an option so that this feature can be enabled in TPL for boards
which need it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
e2d96ac9ee tiny-printf: Correct return values
The sprintf() etc. functions are supposed to return the length of the
string written, but do not. Fix this by checking the amount of buffer
space used.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
eb08abc293 fdtdec: Support separate BSS for all XPL builds
Adjust the condition so that separate BSS can be deselected for TPL and
VPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
13f5535bdb gzip: Correct function comment for gunzip()
This doesn't describe the length parameter correctly. Fix it and
zunzip() too.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
71b1ae4db1 bootstd: Add stub for bootdev_setup_for_sibling_blk()
When bootstd is not enabled, bootdevs should not be set up. Add a
static inline function to see to this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Simon Glass
99344c847d sandbox: Add missing header file
This file uses __aligned so should include the header which defines
that.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-10-03 11:52:16 -06:00
Tom Rini
08990e2254 Merge patch series "arm: Initial support for Analog Devices SC5xx boards"
Oliver Gaskell <Oliver.Gaskell@analog.com> says:

ADSP-SC5xx is a series of ARM-based DSPs.
This comprises the armv7 based SC57x, SC58x and SC594 series, and the
armv8 based SC598.

This patch series includes configurations, init code, and minimal DTs
to enable Analog Devices' evaluation boards for these SoCs to boot
through SPL and into U-Boot Proper, as well as devicetree schemas for
the added DTs.

This patch series depends on ("arm: Add Analog Devices SC5xx Machine
Type") (https://lists.denx.de/pipermail/u-boot/2024-April/552043.html)
2024-10-03 09:30:37 -06:00
Oliver Gaskell
1083fa7577 arm: SC573-EZKIT initial support
Adds support for Analog Devices' SC573-EZKIT board. Includes:
- SoC specific configs in mach-sc5xx/Kconfig
- Memory Map for SPL
- Necessary board-specific init functions
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
0370f30619 arm: SC589-MINI initial support
Adds support for Analog Devices' SC589-MINI board. Includes:
- Board specific configs in mach-sc5xx/Kconfig
- Board-specific Kconfig and environment in board/adi/

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
03ef0adceb arm: SC589-EZKIT initial support
Adds support for Analog Devices' SC589-EZKIT board. Includes:
- Board specific configs in mach-sc5xx/Kconfig
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
07735eee98 arm: SC584-EZKIT initial support
Adds support for Analog Devices' SC584-EZKIT board. Includes:
- SoC specific configs in mach-sc5xx/Kconfig
- Memory Map for SPL
- SPL config options in common/spl/Kconfig
- Necessary board-specific init functions
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
9e24d9a615 arm: SC594-SOM-EZLITE initial support
Adds support for Analog Devices' SC594-SOM-EZLITE board. Includes:
- Board specific configs in mach-sc5xx/Kconfig
- Board-specific Kconfig and environment in board/adi/

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
e91d85e8fb arm: SC594-SOM-EZKIT initial support
Adds support for Analog Devices' SC594-SOM-EZKIT board. Includes:
- SoC specific configs in mach-sc5xx/Kconfig
- Memory Map for SPL
- SPL config options in common/spl/Kconfig
- Necessary board-specific init functions
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Ian Roberts <ian.roberts@timesys.com>
Signed-off-by: Ian Roberts <ian.roberts@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
dd9baf0bbd arm: SC598-SOM-EZLITE initial support
Adds support for Analog Devices' SC598-SOM-EZLITE board. Includes:
- Board specific configs in mach-sc5xx/Kconfig
- Board-specific Kconfig and environment in board/adi/

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
38742c7485 arm: SC598-SOM-EZKIT initial support
Adds support for Analog Devices' SC598-SOM-EZKIT board. Includes:
- CONFIG options common to all SC5xx SoCs
- SoC specific configs in mach-sc5xx/Kconfig
- SPL config options in common/spl/Kconfig
- Memory Map for SPL
- Necessary board-specific init functions
- Board-specific Kconfig and environment in board/adi/
- Memory configuration

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:23 -06:00
Oliver Gaskell
170b8e9ced arm: mach-sc5xx: clean up Kconfig
Moves common options between all SC5xx series boards to the ARCH_SC5XX
option instead of duplicating them.

Also, it was possible to select multiple of the SoC support options.
Given a U-Boot binary can only support a single platform, this moves
the SoC selection to a `choice`, making them mutually exclusive.

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
3e724aab2f dt-bindings: timer: Add SC5xx Timer bindings
Add devicetree schema for the timer peripheral on Analog Devices SC5xx
series SoCs.

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
cc522cc6ed dt-bindings: clock: Add SC5xx clock tree bindings
Add devicetree schema for the clock tree on Analog Devices SC5xx series
SoCs.

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
ff464f904d dt-bindings: arm: Add SC5xx Series binding
Add devicetree schema for Analog Devices SC5xx series SoCs.

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
91f98bb48a arm: dts: Support SC598-SOM-EZLITE
Add minimal device tree for Analog Devices' SC598-SOM-EZLITE board.

This patch depends on Patches 01 and 07, for sc5xx.dtsi and
sc598-som.dtsi respectively.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
f90cccfa86 arm: dts: Support SC598-SOM-EZKIT
Add minimal device tree for Analog Devices' SC598-SOM-EZKIT board, and
the SC598 SoM.

This patch depends on patch 01, for sc5xx.dtsi.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
e40ea29d27 arm: dts: Support SC594-SOM-EZLITE
Add minimal device tree for Analog Devices' SC594-SOM-EZLITE board.

This patch depends on Patches 01 and 05, for sc5xx.dtsi and
sc594-som.dtsi respectively.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
d57dd03af9 arm: dts: Support SC594-SOM-EZKIT
Add minimal device tree for Analog Devices' SC594-SOM-EZKIT board, and
the SC594 SoM.

This patch depends on patch 01, for sc5xx.dtsi.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
0cfc2bfde1 arm: dts: Support SC589-EZKIT
Add minimal device tree for Analog Devices' SC589-EZKIT board.

This patch depends on Patches 01 and 02, for sc5xx.dtsi and sc58x.dtsi.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
79fcfc3aa1 arm: dts: Support SC589-MINI
Add minimal device tree for Analog Devices' SC589-MINI board.

This patch depends on Patches 01 and 02, for sc5xx.dtsi and sc58x.dtsi.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
8eb510049e arm: dts: Support SC584-EZKIT
Add minimal device tree for Analog Devices' SC584-EZKIT board, and
common files for the SC58x family.

This patch depends on Patch 01, for sc5xx.dtsi.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Oliver Gaskell
aabca1569c arm: dts: Support SC573-EZKIT
Adds minimal device tree for Analog Devices' SC573-EZKIT board and
common files for the SC57x/SC5xx family.

This also adds all sc5* devicetrees to ARM SC5XX in MAINTAINERS, and
adds the ADSP Linux mailing list as the list for ARM SC5XX.

Co-developed-by: Greg Malysa <greg.malysa@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
2024-10-03 09:29:22 -06:00
Heinrich Schuchardt
c74758ccc0 cmd: simplify CONFIG_CMD_USB_MASS_STORAGE dependencies
CONFIG_USB_GADGET_DOWNLOAD depends on CONFIG_USB_GADGET.
It is sufficient to depend on the prior.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20240921092050.9260-1-heinrich.schuchardt@canonical.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-03 10:01:35 +02:00
Arturo Buzarra
718c225cbc rtc: rv3028: add support to manage VDD regulator
This commit adds support to manage an external regulator to enable the main
power supply VDD.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-10-02 13:41:26 -06:00
Alexander Kochetkov
f27e830629 Makefile: pass external DTB provided by make variable EXT_DTB to binman
Yocto build is using EXT_DTB to repack U-Boot during signed
FIT kernel creation. First, it takes the DTB from U-Boot, then
it creates signed FIT kernel image and places kernel key into
the DTB. After that it executes:
    make EXT_DTB=/path/to/dtb/with/kernel/key

Despite the fact that in the documentation all examples with EXT_DTB
use only single DTB, the patch allows pass many DTB files separated
by spaces, e.g.:
    make EXT_DTB="/path1/to/1.dtb /path2/to/2.dtb"

The first DTB from the list become default configuration.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-02 13:38:59 -06:00
Bastien Curutchet
983fd3d06d spi: davinci: Drop the preload of TX buffer before read/writes operations
A write to the TX buffer is performed before entering the loop to "avoid
clock starvation". This sometimes results in subsequent writes in
davinci_spi_xfer_data() to occur while the TXFULL bit is asserted,
leading to write failures.

Remove the preload of the TX buffer.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
2024-10-02 13:38:37 -06:00
Joakim Tjernlund
7bc5f66f55 Add mkimage secp521r1 ECDSA curve support
Adds support for the secp521r1 ECDSA algorithm to mkimage.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-10-02 13:35:56 -06:00
Hiago De Franco
a280368b48 fs: Fix SPL build if SPL_FS_LOADER is enabled and FS_LOADER is disabled
When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build
fails with the following errors:

  AR      spl/boot/built-in.o
  LD      spl/u-boot-spl
arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function
`fw_get_filesystem_firmware':
/u-boot/drivers/misc/fs_loader.c:162: undefined reference to
`fs_set_blk_dev'
arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/
fs_loader.c:185: undefined reference to `fs_read'
arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function
`select_fs_dev':
/u-boot/drivers/misc/fs_loader.c:89: undefined reference to
`fs_set_blk_dev_with_part'
make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1
make: *** [Makefile:2055: spl/u-boot-spl] Error 2

Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so
the fs.c with the necessary function definitions are compiled.

Fixes: b071a07743 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level")
Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-10-02 13:35:31 -06:00
Vaishnav Achath
eeeb35bfb6 board: ti: j722s: Update Resource Management configs
Update J722S Resource Management configs to the latest output
generated by K3 Resource Partitioning tool. Main change includes
allocating more BCDMA channels to A53 for CSI2RX to support
4 x CSIRX capture instance simultaneously.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Reviewed-by: Jayesh Choudhary <j-choudhary@ti.com>
2024-10-02 13:35:21 -06:00
Tom Rini
2e8dfef46c Merge patch series "Add Android 14 bootflow support for AM62X and AM62P board"
Guillaume La Roque <glaroque@baylibre.com> says:

Ths patchset add support of Android 14 with boot image version 4
for :
- AM62X-SK EVM: https://www.ti.com/tool/SK-AM62B
- BeaglePlay: https://beagleplay.org/
- AM62PX-SK EVM: https://www.ti.com/tool/SK-AM62P-LP

Android Images use to test this series are on the Official TI website:
- AM62x/BeaglePlay: https://www.ti.com/tool/PROCESSOR-SDK-AM62X
- AM62PX: https://www.ti.com/tool/PROCESSOR-SDK-AM62P
2024-10-02 13:34:35 -06:00
Mattijs Korpershoek
ce68e2be7e board: ti: am62px: Add android bootflow support
When CONFIG_BOOTMETH_ANDROID is set, enable Android boot flow support.

To build for AM62Px for Android, we can re-use
the am62x_a53_android.config fragment when building A53 bootloaders:

  $ make am62px_evm_a53_defconfig
  $ make am62x_a53_android.config
  $ make

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-10-02 13:33:54 -06:00
Mattijs Korpershoek
07a8ffc56d board: beagle: beagleplay: Add android bootflow support
Beagle Play has a different boot flow than the AM62x SK EVM.

AM62x SK EVM:
1. Boot rom reads UDA (User Data Area), looking for tiboot3
2. Boot rom finds tiboot3 and loads it

Beagle Play:
1. Boot rom looks for tiboot3 in mmc0boot0
2. Boot rom finds tiboot3 and loads it

Because of this difference, we need to have a different
partitioning table than the generic TI one.

Include generic TI android support and override the partitioning table
to boot Android.

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-10-02 13:33:54 -06:00
Guillaume La Roque
0be5309ee4 board: ti: am62x_evm: Add android bootflow
Add Android bootflow support for AM62X SK EVM board with
new android boot method.

To build for AM62x for Android, we use the
am62x_a53_android.config fragment when building A53 bootloaders:

  $ make am62x_evm_a53_defconfig
  $ make am62x_a53_android.config
  $ make

Co-developed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Bryan Brattlof <bb@ti.com>
2024-10-02 13:33:53 -06:00
Dario Binacchi
8aee4c8111 cmd: booti: adjust the print format
All three addresses printed are in hexadecimal format, but only the
first two have the "0x" prefix. The patch aligns the format of the
"end" address with the other two by adding the "0x" prefix.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2024-10-02 13:32:56 -06:00
Dario Binacchi
4f98e23b7a bootm: adjust the print format
All three addresses printed are in hexadecimal format, but only the
first two have the "0x" prefix. The patch aligns the format of the
"end" address with the other two by adding the "0x" prefix.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-10-02 13:32:56 -06:00
Tom Rini
136b7b6d2e Subtree merge tag 'v6.11-dts' of dts repo [1] into dts/upstream
[1] https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git
2024-10-01 12:24:21 -06:00
Tom Rini
6b642aca7f Squashed 'dts/upstream/' changes from 20e0f0897ea2..3347eecf3408
3347eecf3408 Merge tag 'v6.11-dts-raw'
5bb56ffedf48 Merge tag 'net-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
619f5c643338 Merge tag 'arm-fixes-6.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
5bac927c583a Merge tag 'riscv-soc-fixes-for-v6.11-final' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes
e31fe01521ce dt-bindings: net: tja11xx: fix the broken binding
a7aca18a3d22 Merge tag 'v6.11-rc7-dts-raw'
480225022b08 riscv: dts: starfive: jh7110-common: Fix lower rate of CPUfreq by setting PLL0 rate to 1.5GHz
1c3660a28495 Merge tag 'char-misc-6.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
5e0b40cbabba Merge tag 'drm-misc-fixes-2024-09-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
0439c86751a6 Merge tag 'v6.11-rockchip-dtsfixes' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
4fb92795fc50 dt-bindings: display: panel: Rename WL-355608-A8 panel to rg35xx-*-panel
40405e54cc35 dt-bindings: nvmem: Use soc-nvmem node name instead of nvmem
1bdd75307f4b Merge tag 'v6.11-rc6-dts-raw'
7e84ede34cab Merge tag 'usb-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
44956584aec0 Merge tag 'arm-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
f7c4f38337bc arm64: dts: rockchip: Fix compatibles for RK3588 VO{0,1}_GRF
bb6814abbd4b dt-bindings: soc: rockchip: Fix compatibles for RK3588 VO{0,1}_GRF
75ecf0f6d46b Merge tag 'qcom-arm64-fixes-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
14b79236aa28 Merge tag 'imx-fixes-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
d4dbfe926736 Merge tag 'omap-for-v6.11/fixes-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into arm/fixes
d353cfae2402 Merge tag 'v6.11-rc5-dts-raw'
be22f803942a Merge tag 'input-for-v6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
a37a2546451d dt-bindings: usb: microchip,usb2514: Fix reference USB device schema
7b6df908399a Merge tag 'v6.11-rc4-dts-raw'
c8630efb9727 Merge tag 'devicetree-fixes-for-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
7a97bd02ff05 Merge tag 'drm-fixes-2024-08-16' of https://gitlab.freedesktop.org/drm/kernel
4840d8d2d4f3 Merge tag 'drm-misc-fixes-2024-08-15' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
f67fcb2addfd Merge tag 'net-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
03dcdf2790ae arm64: dts: qcom: x1e80100: Fix Adreno SMMU global interrupt
85047e87e32b arm64: dts: qcom: disable GPU on x1e80100 by default
5820b7b4dcc7 arm64: dts: imx8mm-phygate: fix typo pinctrcl-0
749c661ee5cf arm64: dts: imx95: correct L3Cache cache-sets
3c156d225d96 arm64: dts: imx95: correct a55 power-domains
92461bb4238e arm64: dts: freescale: imx93-tqma9352-mba93xxla: fix typo
2a50949ffeb9 arm64: dts: freescale: imx93-tqma9352: fix CMA alloc-ranges
c117cb807821 dt-bindings: net: fsl,qoriq-mc-dpmac: add missed property phys
f05f5c64166c ARM: dts: imx6dl-yapp43: Increase LED current to match the yapp4 HW design
ca3deea38b30 Merge tag 'v6.11-rc3-dts-raw'
d7281200d611 arm64: dts: imx93: update default value for snps,clk-csr
587db5b5a316 arm64: dts: freescale: tqma9352: Fix watchdog reset
5f2894b246a9 arm64: dts: imx8mp-beacon-kit: Fix Stereo Audio on WM8962
3044a84d0bd6 Merge tag 'usb-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
c3f6670f71b0 Merge tag 'drm-fixes-2024-08-10' of https://gitlab.freedesktop.org/drm/kernel
8f739ba31967 Merge tag 'arm-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
4acbf538e297 Merge tag 'asoc-fix-v6.11-rc2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
42dace775595 Merge tag 'drm-misc-fixes-2024-08-08' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
360abf66559b ASoC: dt-bindings: qcom,wcd939x: Correct reset GPIO polarity in example
86abe8a4d359 ASoC: dt-bindings: qcom,wcd938x: Correct reset GPIO polarity in example
d3c8bda33435 ASoC: dt-bindings: qcom,wcd934x: Correct reset GPIO polarity in example
f09c114db2f1 ASoC: dt-bindings: qcom,wcd937x: Correct reset GPIO polarity in example
f64acdf7ef94 dt-bindings: display: panel: samsung,atna45dc02: Fix indentation
8dc5413a7458 dt-bindings: display: panel: samsung,atna45dc02: Document ATNA45DC02
4b69ebe2916c arm64: dts: ti: k3-j784s4-main: Correct McASP DMAs
ccc4534faf10 arm64: dts: ti: k3-j722s: Fix gpio-range for main_pmx0
8a9c5c189689 arm64: dts: ti: k3-am62p: Fix gpio-range for main_pmx0
bac04d23616f arm64: dts: ti: k3-am62p: Add gpio-ranges for mcu_gpio0
3def7ba73e81 ARM: dts: omap3-n900: correct the accelerometer orientation
55288a83587d arm64: dts: ti: k3-am62-verdin-dahlia: Keep CTRL_SLEEP_MOCI# regulator on
ef58c8d54750 arm64: dts: layerscape: fix thermal node names length
a5ebf3657448 Merge tag 'v6.11-rc2-dts-raw'
62770feed75b dt-bindings: input: touchscreen: edt-ft5x06: Document FT8201 support
217414ba33b8 arm: dts: arm: versatile-ab: Fix duplicate clock node name
519301f594f0 dt-bindings: eeprom: at25: add fujitsu,mb85rs256 compatible
bda2e3834d6f arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma
6d0715567669 arm64: dts: rockchip: fix eMMC/SPI corruption when audio has been used on RK3399 Puma
aa26ae7f77fe dt-bindings: usb: microchip,usb2514: Add USB2517 compatible
213794e5d068 arm64: dts: qcom: x1e80100-crd: Fix backlight
3a38ff353f86 arm64: dts: qcom: x1e80100-yoga-slim7x: fix missing PCIe4 gpios
03f34441e6a5 arm64: dts: qcom: x1e80100-yoga-slim7x: disable PCIe6a perst pull down
a8876bf12d57 arm64: dts: qcom: x1e80100-yoga-slim7x: fix up PCIe6a pinctrl node
6451ef8fad85 arm64: dts: qcom: x1e80100-yoga-slim7x: fix PCIe4 PHY supply
56384c22391a arm64: dts: qcom: x1e80100-vivobook-s15: fix missing PCIe4 gpios
745d8ce1ce1e arm64: dts: qcom: x1e80100-vivobook-s15: disable PCIe6a perst pull down
e97ccf5b3ee8 arm64: dts: qcom: x1e80100-vivobook-s15: fix up PCIe6a pinctrl node
b1cf30e5dcfe arm64: dts: qcom: x1e80100-vivobook-s15: fix PCIe4 PHY supply
f27d55f03ac8 arm64: dts: qcom: x1e80100-qcp: fix missing PCIe4 gpios
d52e8759a838 arm64: dts: qcom: x1e80100-qcp: disable PCIe6a perst pull down
9d4f0da4ce12 arm64: dts: qcom: x1e80100-qcp: fix up PCIe6a pinctrl node
cec0cc67788f arm64: dts: qcom: x1e80100-qcp: fix PCIe4 PHY supply
02b954c58b51 arm64: dts: qcom: x1e80100-crd: fix missing PCIe4 gpios
5055674c73cf arm64: dts: qcom: x1e80100-crd: disable PCIe6a perst pull down
d1c6b8a21ee9 arm64: dts: qcom: x1e80100-crd: fix up PCIe6a pinctrl node
0152d01a9265 arm64: dts: qcom: x1e80100: add missing PCIe minimum OPP
464dcc65dd2d arm64: dts: qcom: x1e80100: fix PCIe domain numbers
9f807a8bb15b arm64: dts: qcom: x1e80100-crd: fix PCIe4 PHY supply
2bc5c7e61142 dt-bindings: Batch-update Konrad Dybcio's email
3b63fd14d093 arm64: dts: rockchip: fix PMIC interrupt pin in pinctrl for ROCK Pi E
a6a0c2f971d1 arm64: dts: rockchip: Remove broken tsadc pinctrl binding for rk356x
a0d37a587f15 Merge tag 'ti-k3-dt-for-v6.11-part2' into ti-k3-dts-next
90a18b80197e Merge tag 'v6.11-rc1-dts-raw'
b80e9a3ace2b arm64: dts: qcom: ipq5332: Fix interrupt trigger type for usb
5e90e967124f arm64: dts: qcom: x1e80100-yoga: add wifi calibration variant
aa73674edf44 dt-bindings: ata: rockchip-dwc-ahci: add missing power-domains
ea8865c8cc3f Merge tag 'devicetree-fixes-for-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
aabce14e3722 Merge tag 'spi-fix-v6.11-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
337aa3c3bc5e Merge tag 'i3c/for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
c27e1085e9bf Merge tag 'mm-hotfixes-stable-2024-07-26-14-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
9a815962df95 dt-bindings: arm: update James Clark's email address
c0127d664ed7 dt-bindings: iio: adc: ad7192: Fix 'single-channel' constraints
0d97d195bca9 Merge tag 'drm-next-2024-07-26' of https://gitlab.freedesktop.org/drm/kernel
a20d6e70734f dt-bindings: i3c: add header for generic I3C flags
bdfe4450d0a5 dt-bindings: i3c: dw: Add apb clock binding
ba22c24c4bac Merge tag 'drm-misc-next-fixes-2024-07-25' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
ea60892a6c65 Merge tag 'linux-watchdog-6.11-rc1' of git://www.linux-watchdog.org/linux-watchdog
f73222b55701 dt-bindings: watchdog: add support for Amlogic A4 SoCs
6ace3fddf4a5 Merge tag 'phy-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
01f9a51421da Merge tag 'dmaengine-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
b0f24450c019 Merge tag 'rproc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
3e84429f5c5e Merge tag 'i2c-for-6.11-rc1-second-batch' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
44fa07e48cfb Merge tag 'mailbox-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
cc65d0c3de99 Merge tag 'for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
03bcf75eb7ac Merge tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
a17cfb322a8a dt-bindings: display: panel: samsung,atna33xc20: Document ATNA45AF01
c3fa902543bd Merge tag 'rtc-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
c4a0998f4bc2 Merge tag 'pinctrl-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
0b068b90d282 Merge tag 'mtd/for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
69746dd71087 Merge tag 'riscv-for-linus-6.11-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
1adaf1a685cb Merge tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
ac887b95ad83 Merge tag 'powerpc-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
54b414ac072a Merge tag 'pci-v6.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
e88c4d19a05a dt-bindings: i2c: mux-gpio: Add 'settle-time-us' property
fff653abe510 dt-bindings: i2c: qcom-cci: Document sm8650 compatible
eefdb916959d dt-bindings: i2c: qcom-cci: Document sm8550 compatible
c0d33525511a Merge tag 'input-for-v6.11-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
0960d6c8b60d Merge tag 'i2c-for-6.11-rc1-try2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
f1e125cc3e54 Merge tag 'char-misc-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
05623d215dcc Merge tag 'usb-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
6c388d77f29d Merge tag 'tty-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
96d526190b1a Merge tag 'sound-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
080addb6a692 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
ebb5b0419336 Merge tag 'iommu-updates-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
f660948c4d13 Merge tag 'v6.11-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
1e5ca920b9ef Merge branch 'pci/controller/qcom'
edc7c0f7215c Merge branch 'pci/controller/microchip'
ee6b5746d32c dt-bindings: watchdog: dlg,da9062-watchdog: Drop blank space
449c3fadf1a8 Merge tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel
8a514c621e65 dt-bindings: trivial-devices: fix Rohm BH2228FV compatible string
fb2f4acf7cfb Merge tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
15e0751887c5 Merge tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
0758750d9956 Merge tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
c956399e479a Merge tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
bdb5b5ffd7ef Merge tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
da3613dc9471 Merge tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
abcf4a7783c3 Merge tag 'ata-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
2e90feb83cbf dt-bindings: mtd: qcom,nandc: Define properties at top-level
70c817bb69b3 Merge tag 'net-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
91bcbafdc7f6 Merge tag 'thermal-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
0d95f6e97a8b Merge tag 'soc-arm-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
e1f316d55de2 Merge tag 'soc-dt-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
5dc50aa53bfc Merge tag 'soc-drivers-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
0f0953ddbf68 Merge branches 'clk-qcom', 'clk-rockchip', 'clk-sophgo' and 'clk-thead' into clk-next
aea817373f59 Merge branches 'clk-renesas', 'clk-amlogic', 'clk-allwinner' and 'clk-samsung' into clk-next
0c5561302b53 Merge branches 'clk-stm', 'clk-cleanup', 'clk-kunit' and 'clk-mediatek' into clk-next
0c8c67bc72f9 Merge tag 'spi-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
b9883d24eb5c Merge tag 'regulator-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
88a987d5866c Merge tag 'gpio-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
5546acbd4a84 Merge tag 'mmc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
cfc0def12053 Merge tag 'pmdomain-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
322ee8cb4588 Merge tag 'pwm/for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
9598175206bd Merge tag 'hwmon-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
7c20b6c14845 Merge tag 'tag-chrome-platform-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
ad0983b2c4f6 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
7623c7b68fe4 Merge tag 'timers-core-2024-07-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
eea65eec77dc Merge tag 'for-net-next-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
f71a876df418 dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
ee2846cf9bcc dt-bindings: net: bluetooth: convert MT7622 Bluetooth to the json-schema
f897103fdd2b dt-bindings: net: bluetooth: qualcomm: describe regulators for QCA6390
9e52cca17cda dt-bindings: thermal: Drop 'trips' node as required
4c1656c5110c dt-bindings: thermal: qoriq: reference thermal-sensor schema
2107ba465288 dt-bindings: thermal: cleanup examples indentation
109554cbc281 dt-bindings: thermal: simplify few bindings
bb533c9e6741 dt-bindings: thermal: ti,j72xx: reference thermal-sensor schema
976aa4d6623d dt-bindings: thermal: ti,am654: reference thermal-sensor schema
06e17858ddc6 dt-bindings: thermal: st,stm32: reference thermal-sensor schema
37cd6d8f27eb dt-bindings: thermal: sprd: reference thermal-sensor schema
22a0bbf233c0 dt-bindings: thermal: socionext,uniphier: reference thermal-sensor schema
a8c1c6bc1d10 dt-bindings: thermal: rzg2l: reference thermal-sensor schema
5de9c463fec4 dt-bindings: thermal: rockchip: reference thermal-sensor schema
d6f22a26eeb8 dt-bindings: thermal: rcar-gen3: reference thermal-sensor schema
ebb766b41205 dt-bindings: thermal: qcom-tsens: reference thermal-sensor schema
6f69cab24f96 dt-bindings: thermal: qcom-spmi-adc-tm5: reference thermal-sensor schema
1f2e549e0895 dt-bindings: thermal: qcom-spmi-adc-tm-hc: reference thermal-sensor schema
356179c92fca dt-bindings: thermal: nvidia,tegra30-tsensor: reference thermal-sensor schema
1817a65b65bb dt-bindings: thermal: nvidia,tegra186-bpmp: reference thermal-sensor schema
c0f1371b51cd dt-bindings: thermal: imx8mm: reference thermal-sensor schema
3bab4a9b239c dt-bindings: thermal: generic-adc: reference thermal-sensor schema
5835635e090b dt-bindings: thermal: brcm,avs-ro: reference thermal-sensor schema
9ddd34a4ff81 dt-bindings: thermal: allwinner,sun8i-a83t-ths: reference thermal-sensor schema
1027b024a995 dt-bindings: thermal: amlogic: reference thermal-sensor schema
c52d5196b553 dt-bindings: thermal: samsung,exynos: specify cells
3c2be8e74d44 dt-bindings: thermal: correct thermal zone node name limit
ea6770a25f9c dt-bindings: thermal: qcom-tsens: Document the X1E80100 Temperature Sensor
c072e7893527 dt-bindings: thermal: convert hisilicon-thermal.txt to dt-schema
d271cd767f09 dt-bindings: thermal: mediatek: Fix thermal zone definitions for MT8188
ad91b715c526 dt-bindings: thermal: mediatek: Fix thermal zone definition for MT8186
5464b4fe51d3 dt-bindings: timer: sprd-timer: convert to YAML
90618e31a70e dt-bindings: ethernet-phy: add optional brr-mode flag
6889b4ef77b2 dt-bindings: net: bluetooth: nxp: Add firmware-name property
13aa6e07f01b dt-bindings: net: airoha: Add EN7581 ethernet controller
ca77bda01643 Merge tag 'i2c-host-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
5e50d45eeb19 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
6d743073241d dt-bindings: ata: ahci-fsl-qoriq: add fsl,ls1046a-ahci and fsl,ls1012a-ahci
f535d30d4531 dt-bindings: incomplete-devices: document devices without bindings
8ecead389362 Merge branch 'iommu/pci/ats' into iommu/next
30f464ede0f8 Merge patch series "riscv: Apply Zawrs when available"
d036f23cbd00 Merge branch 'iommu/qualcomm/msm' into iommu/next
53b904f0a4fe Merge branch 'iommu/arm/smmu' into iommu/next
200bce7a03b2 dt-bindings: timer: Add schema for realtek,otto-timer
91c1a4de0542 dt-bindings: timer: Add SOPHGO SG2002 clint
b193d9e3485c dt-bindings: timer: renesas,tmu: Add R-Car Gen2 support
0eceaab1c220 dt-bindings: timer: renesas,tmu: Add RZ/G1 support
05620051e082 dt-bindings: timer: renesas,tmu: Add R-Mobile APE6 support
732aac95d77a arm64: dts: ti: k3-j784s4-evm: Consolidate serdes0 references
4ef24145dcff arm64: dts: ti: k3-j784s4-evm: Assign only lanes 0 and 1 to PCIe1
73f9bfa35cb6 mips: dts: realtek: Add RTL9302C board
49e634f60bf1 dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
6b7aa158869a dt-bindings: mips: realtek: Add rtl930x-soc compatible
79aa5a0e867d dt-bindings: vendor-prefixes: Add Cameo Communications
6d64f20b94fe mips: dts: realtek: add device_type property to cpu node
6e35c3f7bfdf mips: dts: realtek: use "serial" instead of "uart" in node name
ab0ff84fea05 dt-bindings: riscv: Add Zawrs ISA extension description
fd82d997a73f Merge tag 'wireless-next-2024-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
93fcc938b3aa dt-bindings: i2c: amlogic,meson6-i2c: add optional power-domains
bac9ec8f2e0a spi: dt-bindings: at91: Add sama7d65 compatible string
5e04cedbeafe ASoC: dt-bindings: cirrus,cs42xx8: Convert to dtschema
e781d430025a dt-bindings: input: touchscreen: exc3000: add EXC81W32
339921ac3b56 dt-bindings: mmc: sdhci-sprd: convert to YAML
0e57616a72cc dt-bindings: i2c: at91: Add sama7d65 compatible string
43feb442c61a dt-bindings: trivial-devices: document the Sierra Wireless mangOH Green SPI IoT interface
76d06843edae dt-bindings: pwm: at91: Add sama7d65 compatible string
3fd0deb873eb dt-bindings: net: convert enetc to yaml
a57701aa6329 dt-bindings: net: realtek,rtl82xx: Document RTL8211F LED support
529c1490da71 ASoC: dt-bindings: convert qcom sound bindings to
4103874cd483 dt-bindings: clock: Document T-Head TH1520 AP_SUBSYS controller
b0d422f0aefe Merge tag 'sunxi-dt-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
381ea1f4fa7b dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings
57d98a68ea13 dt-bindings: remoteproc: qcom,sa8775p-pas: Document the SA8775p ADSP, CDSP and GPDSP
4e1c20b923c6 dt-bindings: mailbox: Add mediatek,gce-props.yaml
1829a119f10b dt-bindings: watchdog: renesas,wdt: Document RZ/G3S support
1a8fe36d1048 ASoC: dt-bindings: cirrus,cs4270: Convert to dtschema
871b797ecaa7 ASoC: dt-bindings: qcom,apq8096-sndcard: use dtschema
3d45b14318e6 ASoC: dt-bindings: qcom,msm8916-wcd-digital-codec: convert to dtschema
f57329948a7b arm64: dts: allwinner: h616: add crypto engine node
d4d65cf8ff9d dt-bindings: pwm: imx: remove interrupt property from required
b880f57cb103 dt-bindings: pwm: Add pwm-gpio
fc7360d698ce dt-bindings: pwm: Add AXI PWM generator
0e86cd56f472 dt-bindings: pwm: fsl-ftm: Convert to yaml format
28131cd4748b dt-bindings: rtc: stm32: introduce new st,stm32mp25-rtc compatible
c92b8f8a3e5a dt-bindings: iommu: Convert msm,iommu-v0 to yaml
035f47e4aeb1 dt-bindings: fsl-qdma: fix interrupts 'if' check logic
59bad4759495 dt-bindings: dma: sprd,sc9860-dma: convert to YAML
4a1cd4e7cec1 Merge tag 'at24-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
169e00ed0606 dt-bindings: i2c: dw: Document compatible thead,th1520-i2c
d0926118234e Merge tag 'qcom-arm64-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
20659aa64f8c Merge tag 'qcom-arm32-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
46ae978b7287 dt-bindings: net: fsl,fman: add ptimer-handle property
5c6ab5747c93 dt-bindings: net: fsl,fman: allow dma-coherent property
9680dba7899e dt-bindings: soc: fsl: Add fsl,ls1028a-reset for reset syscon node
f33895642d9a dt-bindings: soc: fsl: cpm_qe: convert to yaml format
6fbf523ac6a6 dt-bindings: i2c: i2c-fsi: Convert to json-schema
392a840473a9 dt-bindings: fsi: Document the FSI Hub Controller
fdf888daf381 dt-bindings: fsi: Document the AST2700 FSI controller
73804fcd91b4 dt-bindings: fsi: ast2600-fsi-master: Convert to json-schema
c912fa7bca24 dt-bindings: fsi: ibm,i2cr-fsi-master: Reference common FSI controller
a90a822fde8b dt-bindings: fsi: Document the FSI controller common properties
9ab33dde116b dt-bindings: fsi: Document the IBM SBEFIFO engine
b5eacaa465f8 dt-bindings: fsi: p9-occ: Convert to json-schema
743a9e982afa dt-bindings: fsi: Document the IBM SCOM engine
f1f16badc1f1 dt-bindings: fsi: fsi2spi: Document SPI controller child nodes
f8dc11767ba3 dt-bindings: interrupt-controller: convert fsl,ls-scfg-msi to yaml
2e49a5622d39 dt-bindings: soc: fsl: Convert q(b)man-* to yaml format
d5b522de4a5f dt-bindings: misc: fsl,qoriq-mc: convert to yaml format
212fc40f6419 dt-bindings: drop stale Anson Huang from maintainers
3ac20731e851 dt-bindings: clock: drop obsolete stericsson,abx500.txt
85e4e039e332 Merge tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
09dec25d56c3 dt-bindings: gpio: convert Atmel GPIO to json-schema
dcf8d6732216 dt-bindings: power: add Amlogic A5 power domains
85b811f6a19a Merge tag 'memory-controller-drv-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
61b9c27aadbf Merge tag 'sunxi-drivers-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers
37c192fb4bde Merge tag 'reset-for-v6.11-2' of git://git.pengutronix.de/pza/linux into soc/drivers
9a28158cf3ec Merge tag 'qcom-drivers-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
8d40ccd8ad72 Merge tag 'ti-driver-soc-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers
40e8daa21274 Merge tag 'riscv-cache-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers
8907a17573f0 Merge tag 'riscv-sophgo-dt-for-v6.11' of https://github.com/sophgo/linux into soc/dt
50c6d5bd28c1 Merge tag 'v6.11-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
6d6fb05277c3 riscv: dts: add clock generator for Sophgo SG2042 SoC
166af42541a3 dt-bindings: arm: cpus: Add new Cortex and Neoverse names
a682748f9de4 dt-bindings: interrupt-controller: qcom,pdc: Add sc8180x PDC
e962a717c4c4 dt-bindings: dma: qcom,gpi: document the SDX75 GPI DMA Engine
6a801e79e041 dt-bindings: watchdog: img,pdc-wdt: Convert to dtschema
aa7eda35344c dt-bindings: timer: renesas,tmu: Make interrupt-names required
f9dc8c1f970c dt-bindings: interrupt-controller: fsl,irqsteer: Add imx8mp/imx8qxp support
56f07a6f1339 dt-bindings: input: touchscreen: himax,hx83112b: add HX83100A
ff23e0f3817d dt-bindings: input/touchscreen: imagis: Document ist3038
a25ad65ed136 dt-bindings: i2c: nxp,lpc1788-i2c: convert to dt schema
b325040fda9f dt-bindings: i2c: adjust indentation in DTS example to coding style
90618bcc8538 dt-bindings: i2c: ti,omap4: reference i2c-controller.yaml schema
a588565768e5 dt-bindings: i2c: samsung,s3c2410: drop unneeded address/size-cells
e2d628a070f9 dt-bindings: i2c: nvidia,tegra20: drop unneeded address/size-cells
f1f6651026e0 dt-bindings: i2c: atmel,at91sam: drop unneeded address/size-cells
9defe71f2674 arm64: dts: rockchip: Add Xunlong Orange Pi 3B
7ecdb6cb0de0 dt-bindings: arm: rockchip: Add Xunlong Orange Pi 3B
5416329b387d arm64: dts: rockchip: Add Radxa ROCK 3B
b7f11dc06c71 dt-bindings: arm: rockchip: Add Radxa ROCK 3B
f13889be9094 dt-bindings: clock: airoha: Add reset support to EN7581 clock binding
b870448fd388 dt-bindings: clock: mediatek: Document reset cells for MT8188 sys
397708714de7 dt-bindings: clock: mediatek: add syscon compatible for mt7622 pciesys
7e4096e9fb65 dt-bindings: clock: sprd,sc9860-clk: convert to YAML
018ccc1edce8 dt-bindings: clock: qoriq-clock: convert to yaml format
7ffd4a91a563 dt-bindings: input: ti,nspire-keypad: convert to YAML format
396458d269b7 Merge branch '20240430064214.2030013-3-quic_varada@quicinc.com' into clk-for-6.11
62f4e84a2336 dt-bindings: clock: qcom: Add AHB clock for SM8150
2e8eb07621fb Merge tag 'v6.11-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2a64b79ccfd7 Merge tag 'v6.11-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
45dfc87dbe5a ASoC: dt-bindings: update fsl-asoc-card bindings after imx-spdif merge
58c9c1ccf03b Merge tag 'riscv-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
3fdb6bced49b dt-bindings: gpio: vf610: Allow gpio-line-names to be set
f7844ec66005 Merge tag 'qcom-arm64-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
6954ce51e6db Merge tag 'mvebu-dt64-6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
75b29f27ea84 Merge tag 'mvebu-dt-6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
676410799b80 Merge tag 'ti-k3-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
0c4032f41e87 Merge tag 'stm32-dt-for-v6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
6103a22a3d12 Merge tag 'qcom-arm32-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
916530010708 ARM: dts: ixp4xx: nslu2: beeper uses PWM
0c54efbf58ea Merge tag 'sunxi-dt-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
4c715e97ba11 Merge tag 'imx-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
8d263f1d338e Merge tag 'imx-dt-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
ed6d6b7f8f90 Merge tag 'imx-bindings-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
f7db5a942335 Merge tag 'dt-cleanup-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
9cff9fef0a29 arm64: dts: rockchip: add ROCK 5 ITX board
7e46de278e0a dt-bindings: arm: rockchip: Add ROCK 5 ITX board
a00bdba24234 arm64: dts: rockchip: Add dma-names to uart1 on Pine64 rk3566 devices
02e749a00324 arm64: dts: rockchip: Add avdd supplies to hdmi on rock64
5bc47a15d674 Merge tag 'dt64-cleanup-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
7a6a4e53c5ae Merge tag 'samsung-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
16237eee1086 Merge tag 'tegra-for-6.11-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
8963d7243322 spi: dt-bindings: fsl-dspi: add compatible string 'fsl,lx2160a-dspi'
7c50939c9f09 spi: dt-bindings: fsl-dspi: add dmas and dma-names properties
fe93031f93dc regulator: dt-bindings: pca9450: Make interrupt optional
0c49d7f0e319 arm64: dts: qcom: msm8916-lg-c50: add initial dts for LG Leon LTE
25a68f4ce880 arm64: dts: qcom: msm8916-lg-m216: Add initial device tree
1ad8ed547640 dt-bindings: arm: qcom: Add msm8916 based LG devices
c2a158926b34 ARM: dts: qcom: msm8960: correct memory base
e2f1020338fd arm64: dts: qcom: ipq9574: Add icc provider ability to gcc
50c5d252c323 Merge branch '20240430064214.2030013-3-quic_varada@quicinc.com' into arm64-for-6.11
885a7e671637 dt-bindings: interconnect: Add Qualcomm IPQ9574 support
991ea9193259 arm64: dts: qcom: sm8150: Add video clock controller node
5fcbf1c2194f arm64: dts: qcom: pm6150: Add vibrator
d5c5748cd0d1 arm64: dts: qcom: sc7280: Enable download mode register write
8d8cf0c49e85 arm64: dts: qcom: sm7225-fairphone-fp4: Add PM6150L thermals
7184998dc765 arm64: dts: qcom: sm7225-fairphone-fp4: Add PMK8003 thermals
5d523c428df9 arm64: dts: qcom: sm6350: Add missing qcom,non-secure-domain property
d45dffbdeb99 arm64: dts: qcom: sdm845: Disable SS instance in Parkmode for USB
928626df4e4b arm64: dts: qcom: msm8996: Disable SS instance in Parkmode for USB
c4947103d8c0 arm64: dts: qcom: sm6350: Disable SS instance in Parkmode for USB
acd74ac0ce76 arm64: dts: qcom: sm6115: Disable SS instance in Parkmode for USB
8c5e03576478 arm64: dts: qcom: sdm630: Disable SS instance in Parkmode for USB
11abd9dcbab3 arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
82f9ec8740c5 arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
0493efca055e arm64: dts: qcom: ipq6018: Disable SS instance in Parkmode for USB
0d082fef72d7 arm64: dts: qcom: x1e80100: add Lenovo Thinkpad Yoga slim 7x devicetree
4be6ff6058b7 dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x
26cdbcf701ab dt-bindings: crypto: sun8i-ce: Add compatible for H616
003f1715ce24 dt-bindings: pwm: describe the cells in #pwm-cells in pwm.yaml
9048d89f3576 arm64: dts: add description for solidrun cn9132 cex7 module and clearfog board
a0b8fa3e3a7c arm64: dts: add description for solidrun cn9131 solidwan board
48bf845b6c15 arm64: dts: add description for solidrun cn9130 som and clearfog boards
7b16cb394a85 dt-bindings: arm64: marvell: add solidrun cn9132 CEX-7 evaluation board
19f143e3adf1 dt-bindings: arm64: marvell: add solidrun cn9130 som based boards
ed32d5d2798a arm64: dts: armada-3720: align LED node name with bindings
f5c8545460ad arm64: dts: armada-3720: align GPIO keys node name with bindings
e99419a98d76 ARM: dts: turris-omnia: Add GPIO key node for front button
1fc6569deae2 ARM: dts: turris-omnia: Add MCU system-controller node
7ce891813450 arm64: dts: st: describe power supplies for stm32mp257f-ev1 board
0c74c4dcbd7d arm64: dts: st: add scmi regulators on stm32mp25
95317624c48e regulator: Add STM32MP25 regulator bindings
d2a9e9561644 ARM: dts: stm32: omit unused pinctrl groups from stm32mp13 dtb files
ec37b02156d4 arm64: dts: st: enable Ethernet2 on stm32mp257f-ev1 board
607a4bdb2441 arm64: dts: st: add eth2 pinctrl entries in stm32mp25-pinctrl.dtsi
832bd9ddbed6 arm64: dts: st: add ethernet1 and ethernet2 support on stm32mp25
364e77fa690e arm64: dts: st: add HPDMA nodes on stm32mp251
102ffbcf581c ARM: dts: stm32: Add ethernet support for DH STM32MP13xx DHCOR DHSBC board
81fe1c60d5fe ARM: dts: stm32: order stm32mp13-pinctrl nodes
c9d39bb8fac5 ARM: dts: stm32: add ethernet1 for STM32MP135F-DK board
0b2f62247393 ARM: dts: stm32: add ethernet1/2 RMII pins for STM32MP13F-DK board
c2db8b3a0b41 ARM: dts: stm32: add ethernet1 and ethernet2 support on stm32mp13
61c1b896cce2 ARM: dts: stm32: Document output pins for PWMs on stm32mp135f-dk
cce2ad19ee98 ARM: dts: stm32: OP-TEE async notif interrupt for ST STM32MP15x boards
571c0f6f9f51 ARM: dts: marvell: orion: align LED node name with bindings
c656f939fa93 ARM: dts: marvell: orion5x-lswsgl: use 'gpios' property for LEDs
e923b78f5e93 ARM: dts: marvell: orion: drop incorrect address/size-cells in GPIO keys
37a2c149e9f2 ARM: dts: marvell: orion: align GPIO keys node name with bindings
13c5d364c787 ARM: dts: marvell: kirkwood: align LED node name with bindings
abbf4e4e73af ARM: dts: marvell: kirkwood: drop incorrect address/size-cells in GPIO keys
bb5d011e2426 ARM: dts: marvell: kirkwood: align GPIO keys node name with bindings
6310e6d19eab ARM: dts: armada-{370-xp,375,38x,39x}: Drop #size-cells from mpic node
95bc7703faa4 ARM: dts: marvell: Add 7-segment LED display on x530
5bde4c2dfaaf dt-bindings: regulator: sprd,sc2731-regulator: convert to YAML
d251a2b6977a Merge tag 'drm-msm-next-2024-07-04' of https://gitlab.freedesktop.org/drm/msm into drm-next
017d00aa427a Merge tag 'drm-misc-next-2024-07-04' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
d8a1b9753e9e ARM: dts: stm32: Missing clocks for stm32f429's syscfg.
96139b1495f0 ARM: dts: stm32: Add support for STM32MP13xx DHCOR SoM and DHSBC board
ad020995069f ARM: dts: stm32: Add pinmux nodes for DH electronics STM32MP13xx DHCOR SoM and DHSBC board
af88c9c14505 Merge tag 'mediatek-drm-next-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
645ce8dcc8f5 Merge v6.10-rc6 into drm-next
088cd17e4117 dt-bindings: net: Add Synopsys DW xPCS bindings
f9f617157dbd dt-bindings: nvmem: mediatek: efuse: add support for MT7988
7649d5be02c6 dt-bindings: nvmem: amlogic,meson-gx-efuse: add optional power-domains
1c6b97edfec1 dt-bindings: nvmem: mediatek: efuse: add support for MT7981
c78020e9e16a dt-bindings: net: Define properties at top-level
0017572a2a6f Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
410637326c73 Merge branch 'icc-rpmh-qos' into icc-next
e261d09d8162 Merge branch 'icc-msm8953' into icc-next
12eab66dc672 arm64: dts: rockchip: fixes PHY reset for Lunzn Fastrhino R68S
a6f5f66a6ecb arm64: dts: rockchip: disable display subsystem for Lunzn Fastrhino R6xS
963cc1782a88 arm64: dts: rockchip: remove unused usb2 nodes for Lunzn Fastrhino R6xS
2e501626c1aa arm64: dts: rockchip: fix pmu_io supply for Lunzn Fastrhino R6xS
d1c53b897cdf arm64: dts: rockchip: fix usb regulator for Lunzn Fastrhino R6xS
eea7e8b6e78d arm64: dts: rockchip: fix regulator name for Lunzn Fastrhino R6xS
f57b1b04499c arm64: dts: rockchip: Add dma-names to uart1 on quartz64-b
cd56feed3f77 arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi
59eed2be863e arm64: dts: rockchip: Add GPU OPP voltage ranges to RK356x SoC dtsi
c18dd0c3aa84 arm64: dts: rockchip: Drop ethernet-phy-ieee802.3-c22 from PHY compatible string on all RK3588 boards
e911eeda5b33 arm64: dts: rockchip: Add missing power-domains for rk356x vop_mmu
94e24eb26013 dt-bindings: clock: rk3188-cru-common: remove CLK_NR_CLKS
4a2da3337148 ARM: dts: rockchip: Drop ethernet-phy-ieee802.3-c22 from PHY compatible string on edgeble-neu2
f7a20549280b dt-bindings: mfd: syscon: Add APM poweroff mailbox
9876c0b72841 dt-bindings: mfd: syscon: Split and enforce documenting MFD children
bdd39fcf6b9c dt-bindings: mfd: rk817: Merge support for RK809
b247892b34ee dt-bindings: mfd: rk817: Fixup clocks and reference dai-common
7a6071d60652 dt-bindings: mfd: syscon: Add TI's opp table compatible
05ed08c85116 dt-bindings: mfd: Explain lack of child dependency in simple-mfd
c4ccb5d873fb dt-bindings: mfd: Dual licensing for st,stpmic1 bindings
9744deeab207 dt-bindings: mfd: syscon: Add more simple compatibles
31467be88d15 dt-bindings: mfd: qcom,spmi-pmic: Document PMC8380
d08ee62df724 dt-bindings: mfd: qcom-spmi-pmic: Document SMB2360 PMIC
b1ec25874c43 dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt8365-scpsys
74b8b8fcfefe dt-bindings: mfd: mediatek,mt8195-scpsys: Add support for MT8188
085ab6c21bb6 dt-bindings: mfd: syscon: Add ti,am625-dss-oldi-io-ctrl compatible
5452c6776c96 Merge branch 'ib-mfd-regulator-watchdog-6.11' into ibs-for-mfd-merged
0f3f78f1254e Merge branch 'ib-mfd-regulator-pm8008-6.11' into ibs-for-mfd-merged
50a3510b62b6 Merge branch 'ib-mfd-input-regulator-6.11' into ibs-for-mfd-merged
f7aceb4e1b7b Merge branch 'ib-mfd-firmware-input-sound-soc-6.11' into ibs-for-mfd-merged
4f1ba4c8d0cb dt-bindings: PCI: qcom: x1e80100: Make the MHI reg region mandatory
fe640fe19fd5 dt-bindings: PCI: generic: Add ats-supported property
805587edd690 dt-bindings: PCI: mediatek,mt7621-pcie: Add PCIe host topology ASCII graph
b25240bd2166 dt-bindings: PCI: qcom: Add OPP table
11fe9c98119b dt-bindings: PCI: xilinx-cpm: Fix overlapping of bridge register and 32-bit BAR addresses
2b03c724d6f2 dt-bindings: PCI: rockchip: Add DesignWare based PCIe Endpoint controller
619d54d269fc arm64: dts: fvp: Enable PCIe ATS for Base RevC FVP
482228799d57 dt-bindings: PCI: generic: Add ats-supported property
2dd7095f8cf6 dt-bindings: regulator: ti,tps65132: document VIN supply
0aa62a03b527 dt-bindings: sound: fsl,qmc-audio: Add support for multiple QMC channels per DAI
50487e005de9 dt-bindings: vcpu_stall_detector: Add a PPI interrupt to the virtual device
29adce4044f8 Merge tag 'iio-for-6.11b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
4c40eb07f1a1 dt-bindings: power: supply: add support for MAX17201/MAX17205 fuel gauge
5c411e7da361 dt-bindings: mfd: twl: Fix example
2285aae66753 MIPS: mobileye: eyeq5: add OLB system-controller node
335d3a5b24aa dt-bindings: soc: mobileye: add EyeQ OLB system controller
6645347e5f82 arm64: dts: ti: k3-am62a7-sk: Reserve 576MiB of global CMA
2efc050e8b45 arm64: dts: ti: k3-am62x-sk-common: Reserve 128MiB of global CMA
1d5623999a2d dt-bindings: usb: Convert fsl-usb to yaml
3096ed508c9c Merge tag 'ath-next-20240702' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath
6e076e43f5ee Merge tag 'counter-updates-for-6.11' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-next
b2edaa031b7b dt-bindings: display/msm: dsi-controller-main: Add SM7150
027210cbdce2 dt-bindings: pinctrl: pinctrl-single: Fix pinctrl-single,gpio-range description
40f10e0d6461 dt-bindings: pinctrl: npcm8xx: add missing pin group and mux function
d72883d7ea25 dt-bindings: pinctrl: pinctrl-single: fix schmitt related properties
a7a4199d372f dt-bindings: gpio: fsl,qoriq-gpio: Add compatible string fsl,ls1046a-gpio
74c05b2ec8ed dt-bindings: eeprom: at24: Add compatible for ONSemi N24S64B
4d9173e6db16 dt-bindings: eeprom: at24: Move compatible for Belling BL24C16A to proper place
564493bc5bee dt-bindings: eeprom: at24: Add Microchip 24AA025E48/24AA025E64
dff8bbf52fb5 arm64: dts: renesas: rz-smarc: Replace fixed regulator for USB VBUS
3ed2c5389bdc dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document USB VBUS regulator
abd7c05bb744 ARM: dts: qcom: qcom-msm8226-samsung-ms013g: Add initial device tree
080806d00c1f dt-bindings: arm: qcom: Document samsung,ms013g
a5f9aa63eab9 arm64: dts: qcom: Add device tree for ASUS Vivobook S 15
eea1cc9bacd4 dt-bindings: arm: qcom: Add ASUS Vivobook S 15
e5e4173be34f arm64: dts: qcom: qrb4210-rb2: Correct max current draw for VBUS
96770847be86 dt-bindings: hwmon: Add MPS mp5920
08c18d10f7b8 Add master clock handling for nau8824
172d4c69fb5c ASoC: dt-bindings: realtek,rt5645: Convert to dtschema
8658ffe6b403 dt-bindings: arm-smmu: Add X1E80100 GPU SMMU
0b4bd04507af arm64: dts: qcom: msm8998: add venus node
7e70bce432a3 dt-bindings: net: dwmac: Validate PBL for all IP-cores
5d4901df4d30 dt-bindings: phy: airoha: Add dtime and Rx AEQ IO registers
b22b7295b9f5 dt-bindings: phy: rockchip-emmc-phy: Convert to dtschema
27327d312773 dt-bindings: phy: qcom,qmp-usb: fix spelling error
82040f36552e dt-bindings: phy: samsung,usb3-drd-phy: add gs101 compatible
ac9fc91f6d13 ASoC: dt-bindings: nau8824: Add master clock handling
8b0c9a364553 ASoC: simple-audio-mux: add state-labels
616dc1cf83be ASoC: codecs: wsa88xx: add support for static port
89366366293a arm64: dts: imx8mp: Remove 'snps,rx-sched-sp'
61fec67efe66 arm64: dts: qcom: sa8775p-ride-r3: add new board file
46cb83e3b1ed arm64: dts: qcom: move common parts for sa8775p-ride variants into a .dtsi
4fd1e981a329 dt-bindings: arm: qcom: add sa8775p-ride Rev 3
ad885407d1d9 arm64: dts: qcom: sm8550-qrd: add port mapping to speakers
d6a037bae62b arm64: dts: qcom: sm8550-mtp: add port mapping to speakers
5f125210af75 arm64: dts: qcom: sm8550-hdk: add port mapping to speakers
f6f9f2c115e7 arm64: dts: qcom: sm8650-qrd: add port mapping to speakers
d52b58a90b48 arm64: dts: qcom: sm8650-mtp: add port mapping to speakers
cb00f5d9cf4e arm64: dts: qcom: sm8650-hdk: add port mapping to speakers
7dfbdcd85447 arm64: dts: qcom: sm7225-fairphone-fp4: Name the regulators
3b63242112eb ARM: dts: qcom: apq8064: drop incorrect ranges from QFPROM
43df76fdb553 arm64: dts: qcom: pm8916: correct thermal zone name
4b9adefc1253 arm64: dts: qcom: x1e80100: Add gpu support
ed2e5ec93e96 arm64: dts: qcom: x1e80100: Fix USB HS PHY 0.8V supply
22f87ddcf53f dt-bindings: iio: adc: Add MediaTek MT6359 PMIC AUXADC
2c8afbc754c3 spi: dt-bindings: snps,dw-apb-ssi.yaml: update compatible property
bef687918b1a ASoC: dt-bindings: realtek,rt5677: Convert to dtschema
873ee911e8c8 arm64: dts: ti: k3-am62x-sk-common: Fix graph_child_address warns
c72ca122fbee arm64: dts: ti: k3-am62p5-sk: fix graph_child_address warnings
4f02610dcef0 arm64: dts: ti: k3-j722s: Add gpio-ranges properties
fa8a0e487c6f arm64: dts: ti: k3-am62p: Add gpio-ranges properties
0c2db20a2c3a arm64: dts: ti: k3-pinctrl: Define a generic GPIO MUX Mode
232953a87976 arm64: dts: ti: k3-am62: Add cpsw-mac-efuse node to wkup_conf
fa13307a70a2 arm64: dts: ti: k3-am62a: Add cpsw-mac-efuse node to wkup_conf
9f32cdf881d6 arm64: dts: ti: k3-j784s4: Add cpsw-mac-efuse node to mcu_conf
c1677680c837 arm64: dts: ti: k3-j721s2: Add cpsw-mac-efuse node to mcu_conf
852348dcd5cd arm64: dts: ti: k3-j721e: Add cpsw-mac-efuse node to mcu_conf
f0a37fce397c arm64: dts: ti: k3-j7200: Add cpsw-mac-efuse node to mcu_conf
9094067e5148 arm64: dts: ti: k3-am65: Add cpsw-mac-efuse node to mcu_conf
992080a19bcb arm: dts: k3-am642-evm-nand: Add bootph-all to NAND related nodes
52a139b2a2d7 arm64: dts: ti: Add basic support for phyBOARD-Lyra-AM62Ax
b659096fb072 dt-bindings: arm: ti: Add bindings for PHYTEC AM62Ax based hardware
8fffc78474d2 arm64: dts: ti: Add am62x-phyboard-lyra carrier board
ad2898c48be6 arm64: dts: ti: k3-am62a: Enable AUDIO_REFCLKx
bf2056403b68 arm64: dts: ti: k3-j784s4-evm: Enable analog audio support
e9d597d9a35e arm64: dts: ti: k3-j784s4-main: Add audio_refclk node
cee08b7de44b arm64: dts: ti: k3-j784s4-main: Add McASP nodes
aea3ca8f5af2 arm64: dts: ti: am62-lp-sk: Add overlay for NAND expansion card
954a6fff27ca arm64: dts: ti: k3-am62: Add GPMC and ELM nodes
127da96ddec0 arm64: dts: ti: k3-j722s-evm: Enable analog audio support
c3bd49374718 arm64: dts: ti: k3-j722s-main: Add audio_refclk node
94e50d6c0bac arm64: dts: ti: k3-am68-sk-som: Add support for OSPI flash
ca3bab294142 arm64: dts: ti: k3-am6xx-phycore-qspi-nor: Add overlay to enable QSPI NOR
8c1f1898dc7d arm64: dts: ti: k3-am64-tqma64xxl: relicense to GPL-2.0-only OR MIT
4b8c791e6a59 arm64: dts: k3-am625-verdin: enable nau8822 pll
643db78b02a3 dt-bindings: perf: fsl-imx-ddr: Add i.MX95 compatible
9dc5c376b8f6 arm64: dts: imx8mm-verdin: add TPM device
ad74190753a6 arm64: dts: imx8mp-evk: Add audio XCVR sound card
1d9b6559ba4e arm64: dts: imx8mp: Add audio XCVR device node
225071a9b006 arm64: dts: imx8mp: Update Fast ethernet PHY MDIO addresses to match DH i.MX8MP DHCOM rev.200
8ff7d0e47c4c arm64: dts: imx8mp: Do not reconfigure Audio PLL2 on DH i.MX8M Plus DHCOM SoM
f0cfa0ee27db arm64: dts: layerscape: rename b(q)man-portals to b(q)man-portals-bus
92a7ae37a895 arm64: dts: fsl-ls1046a: rename thermal node name
94fbc974e8e1 arm64: dts: fsl-ls1043a: remove unused clk-name at watchdog node
4ca05f8e7d80 arm64: dts: layerscape: rename aux_bus to aux-bus
f7642e8d2771 arm64: dts: layerscape: change pcie interrupt order
b34412775adb arm64: dts: layerscape: rename node name "wdt" to "watchdog"
b5125b74ef80 arm64: dts: layerscape: add #dma-cells for qdma
560c63c495ec arm64: dts: layerscape: remove compatible string 'fsl,fman-xmdio' for fman3
a87c6cb26508 arm64: dts: layerscape: replace node name 'nor' with 'flash'
4e5f09fba0c2 arm64: dts: fsl-ls1012a: remove property 'snps,host-vbus-glitches'
5ea89b1a0b68 arm64: dts: fsl-lx2160a: fix #address-cells for pinctrl-single
b36ba5aa009f arm64: dts: layerscape: add platform special compatible string for gpio
bac76afe060c arm64: dts: layerscape: rename node 'timer' as 'rtc'
baab942a40ef arm64: dts: imx8qxp-mek: Pass memory-region to the DSP node
110549448eca arm64: dts: imx95-19x19-evk: add PCIe[0,1] support
c243785d150a arm64: dts: imx95-19x19-evk: add lpi2c7 and expander gpio pcal6524
6f1965780648 arm64: dts: imx95: add pcie[0,1] and pcie-ep[0,1] support
5fa42612ff40 arm64: dts: imx95: add '#address-cells' and '#size-cells' for all i2c
219f1f05eb4f arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns
fff6574f40fd arm64: dts: imx93-11x11-evk: reorder lpi2c2, lpi2c3, mu1 and mu2 label
786ca0f57ff6 arm64: dts: imx93-11x11-evk: fix duplicated lpi2c3 labels
75dec843d08c Merge tag 'imx-fixes-6.10' into imx/dt64
d26df61f97fd arm64: dts: imx8mp: Fix pgc vpu locations
3737b005a4a3 arm64: dts: imx8mp-venice-gw74xx: add DP83867 configuration
3044d329b92f arm64: dts: imx8mp-venice-gw702x: add support for PHY LED's
f182d73a2626 arm64: dts: imx8mm-venice-gw700x: add support for PHY LED's
d3db1dc8839a arm64: dts: freescale: imx8m*-venice-*: fix gw,gsc dt-schema warnings
9c2deab85d38 arm64: dts: imx8mp: Fix pgc_mlmix location
6896a8965e07 arm64: dts: imx8dxl-evk: add imx8dxl_cm4, lsio mu5, related memory region
404e19dc4843 arm64: dts: freescale: add TQMa8MPQL on MBa8MP-RAS314
351776b51351 dt-bindings: arm: pmu: Add new Cortex and Neoverse cores
13e0277614be ASoC: dt-bindings: wsa8840: Document port mapping property
64fbaceb813b ASoC: dt-bindings: wsa883x: Document port mapping property
196cd9f46b12 Merge tag 'amlogic-arm64-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
7a5851618f58 arm/arm64: dts: arm: Use generic clock and regulator nodenames
74b264fb6eab Merge tag 'microchip-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
4a5beeb6c23e ARM: dts: turris-omnia: Add GPIO key node for front button
535946d93f93 ARM: dts: turris-omnia: Add MCU system-controller node
b8d58c4b1978 dt-bindings: firmware: add cznic,turris-omnia-mcu binding
12771b2b9bd2 Merge tag 'renesas-dts-for-v6.11-tag2-v2' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
d6c6b66c1c38 ASoC: dt-bindings: simple-audio-mux: add state-labels property
6ef635553b4a dt-bindings: soc: ti: Move ti,j721e-system-controller.yaml to soc/ti
e61fd937cb60 arm64: dts: exynos850: Enable TRNG
064bd3f4239e riscv: dts: starfive: add PCIe dts configuration for JH7110
69340b4580b6 Merge 6.10-rc6 into tty-next
487dc59c9594 spi: dt-bindings: fsl-dspi: Convert to yaml format
44648d5137af ASoC: dt-bindings: realtek,rt5659: Convert to dtschema
cb12f2b5d9e7 ASoC: dt-bindings: fsl_rpmsg: Add compatible string for i.MX95
305bea0b9eb0 Merge 6.10-rc6 into usb-next
f84eff05b6e9 Merge 6.10-rc6 into char-misc-next
6c5ae53f0fac dt-bindings: mtd: gpmi-nand: Add 'fsl,imx8qxp-gpmi-nand' compatible string
f3a93107760d arm64: dts: renesas: r8a779h0: R-Car Sound support
2f6509f24c66 arm64: dts: renesas: r8a779g0: Tidy up sound DT settings
32cd14b55dda arm64: dts: renesas: Add interrupt-names to arch timer nodes
ca43e03db36f ARM: dts: renesas: Add interrupt-names to arch timer nodes
283131cc4f4f arm64: dts: renesas: r9a08g045: Add missing hypervisor virtual timer IRQ
e6f864193159 arm64: dts: renesas: r9a07g054: Add missing hypervisor virtual timer IRQ
11014c614d4e arm64: dts: renesas: r9a07g044: Add missing hypervisor virtual timer IRQ
6d776e3ebaef arm64: dts: renesas: r9a07g043u: Add missing hypervisor virtual timer IRQ
ed7a29796e05 arm64: dts: renesas: r8a779g0: Add missing hypervisor virtual timer IRQ
5038f5a3c1c0 arm64: dts: renesas: r8a779f0: Add missing hypervisor virtual timer IRQ
467d04215747 arm64: dts: renesas: r8a779a0: Add missing hypervisor virtual timer IRQ
f6bccc274aa2 arm64: dts: renesas: r8a779h0: Drop "opp-shared" from opp-table-0
377bca17d6d6 arm64: dts: apm: Add dedicated syscon poweroff compatibles
b66d2d6fdff2 dt-bindings: input: cros-ec-keyboard: Add keyboard matrix v3.0
870d6cc60a92 dt-bindings: counter: Add new ti,am62-eqep compatible
c5c1c10869cf riscv: dts: allwinner: Add ClockworkPi and DevTerm devicetrees
ed51d4d99092 riscv: dts: allwinner: d1s-t113: Add system LDOs
2828a5484b9d dt-bindings: sram: sunxi-sram: Add regulators child
b34bd9487c4e dt-bindings: media: add qcom,msm8998-venus
fc655c8fe42c dt-bindings: display/msm/gmu: Add Adreno X185 GMU
010f66482c60 dt-bindings: iio: adc: adi,ad7606: comment and sort the compatible names
2ee434652388 dt-bindings: iio: adc: adi,ad7606: add missing datasheet link
2e9ffe4fbb14 media: dt-bindings: rc: add rc-mygica-utv3
b5607bdf5e8e dt-bindings: iio: stm32: dfsdm: fix dtbs warnings on dfsdm audio port
1136c28c1755 dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
8ccc302c8c10 dt-bindings: hwmon: Add MPS mp2891
d8fa38847e5f Add audio support for LPC32XX CPUs
04d6bf0bb912 Merge tag 'v6.11-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
ee6e9d4ccfab Merge tag 'v6.11-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2aa52a6f9ef1 Merge tag 'renesas-dt-bindings-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
ba7665edc433 Merge tag 'mtk-dts32-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
188d0d5b331b Merge tag 'mtk-dts64-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
37670585dc84 arm64: tegra: Restructure Orin NX/Nano device tree
7ca8b73978b7 Merge tag 'sti-dt-for-v6.11-round1' of https://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti into soc/dt
456d250dc03e arm: dts: arm: Drop redundant fixed-factor clocks
daae1a59728e dt-bindings: interrupt-controller: convert marvell,mpic binding to YAML
15c6548c562b ARM: dts: armada-{370-xp,375,38x,39x}: Drop #size-cells from mpic node
0c2e5b300e37 dt-bindings: mfd: Add entry for Marvell 88PM886 PMIC
a854f8f67c73 dt-bindings: input: cirrus,cs40l50: Add initial DT binding
d6f00c57bd3b Merge tag 'vexpress-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/arm
39b2f3f647f9 ASoC: dt-bindings: fsl,xcvr: Adjust the number of interrupts
ca1bb52238fb ASoC: dt-bindings: lpc32xx: Add lpc32xx i2s DT binding
4949841b7477 powerpc/boot: Remove all 40x platforms from boot
fab375d8841c arm64: dts: rockchip: Delete the SoC variant dtsi for RK3399Pro
85b6c1408b66 arm64: dts: rockchip: Fix mic-in-differential usage on rk3568-evb1-v10
3c489ed6deef arm64: dts: rockchip: Fix mic-in-differential usage on rk3566-roc-pc
cc7e43ed2598 arm64: dts: rockchip: Drop invalid mic-in-differential on rk3568-rock-3a
55ef14c4c6a7 arm64: dts: rockchip: Add rock5b overlays for PCIe endpoint mode
753bed405c90 arm64: dts: rockchip: Add PCIe endpoint mode support
a4f97cf2b618 dt-bindings: display: add STM32 LVDS device
86b2223ec66e dt-bindings: display: panel: Add compatible for kingdisplay-kd101ne3
0c81a2122696 dt-bindings: display: simple: Add AUO G104STN01 panel
c8d32152a973 ARM: dts: sti: add thermal-zones support on stih418
7a7b6d6c7dfa ARM: dts: st: add thermal property on stih410.dtsi and stih418.dtsi
40ad84d82c0d dt-bindings: gpio: fsl,qoriq-gpio: add common property gpio-line-names
1b1e9fc36974 arm64: dts: amlogic: setup hdmi system clock
7ca9d3ced29f arm64: dts: amlogic: gx: correct hdmi clocks
81ab2e224016 dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as compatible strings
545fc746daf5 dt-bindings: rng: Add Exynos850 support to exynos-trng
f1553d1d3919 dt-bindings: ti: fix TISCI protocol URL link
62abb0b64149 dt-bindings: rtc: Convert rtc-fsl-ftm-alarm.txt to yaml format
78b18026c5d9 Merge tag 'drm-misc-next-2024-06-27' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
edd469ee8db4 arm64: dts: qcom: qcs6490-rb3gen2: enable hdmi bridge
1376606fced0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
698498427587 ARM: dts: rockchip: add #sound-dai-cells to hdmi node on rk3128
4377b57e47d5 ARM: dts: rockchip: add #sound-dai-cells to hdmi node no rk3036
f827d5f3292f Merge branch 'ib/ads7846-hsync' into next
93ddb60e9a48 Merge tag 'scmi-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
cc95d35f9506 Merge tag 'socfpga_dts_updates_for_v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt
c4aec9bbc766 Merge tag 'zynqmp-soc-for-6.11' of https://github.com/Xilinx/linux-xlnx into soc/dt
f88d837623de Merge tag 'juno-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
08b8d1fc5639 Merge tag 'renesas-dts-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
dc42361c2c5d Merge tag 'platform-drivers-x86-ib-lenovo-c630-v6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 into usb-next
1d5538193fac dt-bindings: usb: dwc2: switch to unevaluatedProperties
d7c2ed2e18bc arm64: dts: allwinner: h616: add IOMMU node
d254d60da336 ASoC: simple-card / audio-graph:
19a1947b34c4 media: dt-bindings: Add bindings for Raspberry Pi PiSP Back End
88c03013b6d6 arm64: dts: mediatek: Declare drive-strength numerically
8c62531bf50e dt-bindings: mips: brcm: Document brcm,bmips-cbr-reg property
470a5b004a29 dt-bindings: mfd: bd96801 PMIC core
8f64da089f3e dt-bindings: ROHM BD96801 PMIC regulators
aa2fc5b0543f dt-bindings: soc: ti: am654-serdes-ctrl: Move to dedicated schema
33a05bd1c573 dt-bindings: soc: microchip: sparx5-cpu-syscon: Move to dedicated schema
efc9ed749d42 dt-bindings: soc: intel: lgm-syscon: Move to dedicated schema
ec5149fc1b6a dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A syscon
8b80b096361f dt-bindings: mfd: syscon: Drop hwlocks
0ff59f68591e arm64: dts: mt7622: fix switch probe on bananapi-r64
72e6177cd7c9 arm64: dts: mediatek: Add MT8186 Voltorb Chromebooks
aeb315d974d3 dt-bindings: arm: mediatek: Add MT8186 Voltorb Chromebooks
819ec4a5029f arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add ports node for anx7625
787b5f1bd2b6 arm64: dts: mediatek: mt8183-pico6: Fix wake-on-X event node names
9f7d5f0f2550 arm64: dts: mt8173: Add G2Touch touchscreen node
126068b350d0 arm64: dts: mediatek: mt8183-kukui: Fix the value of `dlg,jack-det-rate` mismatch
b227018c089b arm64: dts: mediatek: mt8188: Add support for Mali GPU on Panfrost
193c6ed6242f arm64: dts: mediatek: mt8188: Add support for SoC power domains
1478d67a8557 arm64: dts: mediatek: mt8188: Add VDOSYS0/1 support for multimedia
1c24affc4fcc arm64: dts: mediatek: mt8188: Add Global Command Engine mailboxes
00dac5646992 arm64: dts: mediatek: mt8173-elm: drop PMIC's syscon node
54734e39a065 arm64: dts: mediatek: mt8365: use a specific SCPSYS compatible
a361706dff4e arm64: dts: mediatek: mt8365: drop incorrect power-domain-cells
528f37e62ec9 arm64: dts: mediatek: mt7981: add I2C controller
c9b2f35b365c arm64: dts: mediatek: mt7622: fix "emmc" pinctrl mux
fb9223474f55 arm64: dts: mediatek: mt7988: add I2C controllers
7808927c3e96 arm64: dts: mediatek: mt7988: add PWM controller
d9eab74f7c37 arm64: dts: mediatek: Add OpenWrt One
94108f5432a0 dt-bindings: arm64: dts: mediatek: Add OpenWrt One
632e88156c28 dt-bindings: vendor-prefixes: add OpenWrt
1a92c723525c arm64: dts: mediatek: Add mt7986 based Bananapi R3 Mini
223f8d2f314c dt-bindings: arm64: mediatek: add BananaPi R3 Mini
a96520eba088 arm64: dts: mediatek: mt7981: add efuse block
a4ed2ad3e74d arm64: dts: mediatek: mt7981: fix code alignment for PWM clocks
44e82b0f9745 arm64: dts: mediatek: mt7986a: bpi-r3: Convert to sugar syntax
3abed6d417dd arm64: dts: mediatek: mt8192-asurada: Add off-on-delay-us for pp3300_mipibrdg
f64f4e64160a arm64: dts: mediatek: add Kontron 3.5"-SBC-i1200
9957dd74d804 dt-bindings: arm64: mediatek: add Kontron 3.5"-SBC-i1200
fb62e898f72e arm64: dts: mediatek: mt8395-genio-1200-evk: add u3port1 for xhci1
bc5c7f58972b arm64: mediatek: mt8195-cherry: Introduce the MT8195 Dojo Chromebook
cf6f8953da39 dt-bindings: arm: mediatek: Add MT8195 HP Chromebook x360 13b-ca0002sa
a5f701258b4f arm64: dts: mediatek: mt8186-corsola: Specify sound DAI links and routing
feb3bffdeaf0 arm64: dts: mediatek: mt8195-cherry: Specify sound DAI links and routing
0ddc46d4be1f arm64: dts: mediatek: Drop mediatek,drive-strength-adv usage
6ec5b75f0620 arm64: dts: mediatek: mt8183-kukui: Drop bogus output-enable property
a6eed05e905c arm64: dts: mediatek: mt8395-nio-12l: Add power supplies for CPU/GPU scaling
28977a36a196 arm64: dts: mediatek: mt8395-nio-12l: Enable PHYs and USB role switch
8dee1cb52db0 arm64: dts: mediatek: mt8395-nio-12l: Define RSEL in microamperes
f68d804ff56c arm64: dts: medaitek: mt8395-nio-12l: Set i2c6 pins to bias-disable
9d4bb09ec836 arm64: dts: mediatek: mt8183: Refactor thermal zones
6124c6b665ad arm64: dts: mediatek: mt8192: Fix GPU thermal zone name for SVS
4f439642d3a9 arm64: dts: mediatek: mt8195: Fix GPU thermal zone name for SVS
8a8977166c97 arm64: dts: mediatek: add device-tree for Genio 700 EVK board
c5e90f4dfb63 dt-bindings: arm64: mediatek: add mt8390-evk board
dd3d95f33634 arm64: dts: mediatek: mt7981: add watchdog & WiFi controllers
246a854fd0c8 arm64: dts: mediatek: mt7988: add XHCI controllers
adc83b8e553f dt-bindings: soc: mediatek: Add support for MT8188 VPPSYS
3e7b225d188f arm64: dts: mediatek: Add missing chassis-type to MT8192 Chromebooks
af8afef83b25 arm64: dts: mediatek: Complete chassis-type for MT8183 Chromebooks
73c03d411592 arm64: dts: Add Airoha EN7581 SoC and EN7581 Evaluation Board
7fc3fd0bec17 dt-bindings: arm64: dts: airoha: Add en7581 entry
eda1887f8079 arm64: dts: mediatek: Add Cudy WR3000 V1
2d8291e5cefc arm64: dts: mediatek: mt7981: add pinctrl
372299a87d7b dt-bindings: arm64: dts: mediatek: Add Cudy WR3000 V1 router
9a9886e4afac dt-bindings: vendor-prefixes: add Cudy
352e7f750233 dt-bindings: net: add STM32MP25 compatible in documentation for stm32
644c4460e534 arm64: dts: amlogic: Add Amlogic S4 PWM
19990c89c3f8 ARM: dts: imx6qdl-kontron-samx6i: add actual device trees
6df92f0af21e ARM: dts: imx6qdl-kontron-samx6i: remove wake-up-gpio property
b852a14f153a ARM: dts: imx6qdl-kontron-samx6i: fix PCIe reset polarity
7c85a51af8e4 ARM: dts: imx6qdl-kontron-samx6i: fix node names
925e9778e323 ARM: dts: imx6qdl-kontron-samx6i: add SDIO_PWR_EN support
966d4b622923 ARM: dts: imx6qdl-kontron-samx6i: always enable eMMC
195f2e7f0b6f ARM: dts: imx6qdl-kontron-samx6i: fix product name
164fae57cbd3 ARM: dts: imx6qdl-kontron-samx6i: fix SPI0 chip selects
7a2075c73ab7 ARM: dts: imx6qdl-kontron-samx6i: cleanup the PMIC node
62b495b85d50 ARM: dts: imx6qdl-kontron-samx6i: fix board reset
478402a54bf9 ARM: dts: imx6qdl-kontron-samx6i: fix PHY reset
a31fcd5d47cf ARM: dts: imx6qdl-kontron-samx6i: fix phy-mode
45a59e221918 dt-bindings: arm: fsl: document Kontron SMARC-sAMX6i boards
75c2ed320920 dt-bindings: arm: add MBa8MP-RAS314 SBC
01b7a69de22c arm64: dts: imx8dxl-ss-conn: add gpmi nand
bcd156277fc5 arm64: dts: imx8-ss-conn: add gpmi nand node
748a0049c0c5 ARM: dts: nxp: imx6: convert NVMEM content to layout syntax
16a44584610c Add USB VBUS regulator for RZ/G2L
4631c20c54a0 ASoC: dt-bindings: amlogic,gx-sound-card: drop minItems for audio-widgets
3bc2603c91d5 ARM: dts: omap am5729-beagleboneai: drop unneeded ti,enable-id-detection
b0e5b80f3bf0 ASoC: audio-graph-port: add link-trigger-order
9346501d630e dt-bindings: display: panel: add Ilitek ili9806e panel controller
ca207e091629 dt-bindings: panel-simple-dsi: add lincoln LCD197 panel bindings
057b67caa65a dt-bindings: leds-lp55xx: Add new ti,lp5569 compatible
ee19acb5a353 dt-bindings: leds-lp55xx: Limit pwr-sel property to ti,lp8501
316b5f71197f dt-bindings: leds: Add Silergy SY7802 flash LED
130c091be77f Merge patch series "Add support for a few Zc* extensions, Zcmop and Zimop"
a7209e836d76 dt-bindings: riscv: add Zcmop ISA extension description
32ce188d78dd dt-bindings: riscv: add Zca, Zcf, Zcd and Zcb ISA extension description
39ae6cce759b dt-bindings: riscv: add Zimop ISA extension description
e4c8f65c7431 dt-bindings: soc: sti: st,sti-syscon: document codec node
8ac6e7a66084 ARM: dts: ti: align panel timings node name with dtschema
5af3947725b5 dt-bindings: pinctrl: aspeed,ast2600-pinctrl: add NCSI groups
f48ebd09f1cd dt-bindings: pinctrl: qcom: Add SM4250 pinctrl
f9f1f868a8c1 arm64: dts: amlogic: add power domain to hdmitx
2c51810f613f dt-bindings: display: meson-dw-hdmi: add missing power-domain
9b9a9de50743 arm64: dts: qcom: sm6115: add resets for sdhc_1
adfda2bbb957 arm64: dts: qcom: x1e80100: Add fastrpc nodes
c04df91b08ca arm64: dts: qcom: x1e80100: Add BWMONs
d8866de0e3ff dt-bindings: interconnect: qcom,msm8998-bwmon: Add X1E80100 BWMON instances
62e953885ec2 dt-bindings: interconnect: qcom,msm8998-bwmon: Remove opp-table from the required list
b2924dd329e7 arm64: dts: qcom: ipq6018: add sdhci node
e04e56b9224a ARM: dts: qcom: msm8926-motorola-peregrine: Add framebuffer supplies
77c0bdb9d1c6 ARM: dts: qcom: msm8926-motorola-peregrine: Update temperature sensor
0f52b044f3f3 ARM: dts: qcom: msm8926-motorola-peregrine: Add accelerometer, magnetometer, regulator
9bae13c1d79c arm64: dts: qcom: sc7280: Add clocks for QOS configuration
2b04714a636d arm64: dts: qcom: sm8650: Add video and camera clock controllers
c1efe58f5fb7 Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into arm64-for-6.11
d105e553ba66 Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into clk-for-6.11
4abbdce50568 dt-bindings: net: dsa: mediatek,mt7530: Minor wording fixes
11cbb8beabe6 dt-bindings: clock: qcom: Add SM8650 camera clock controller
cb715078fd07 dt-bindings: clock: qcom: Update the order of SC8280XP camcc header
395038364ccf dt-bindings: clock: qcom: Add SM8650 video clock controller
31e70f29efce dt-bindings: clock: qcom: Update SM8450 videocc header file name
2c38b81efa40 arm64: dts: qcom: pm8916: add temp-alarm thermal zone
bd749dc41ae6 arm64: dts: qcom: x1e80100-qcp: add audio support
129ecb168ea7 dt-bindings: iio: st-sensors: add LIS2DS12 accelerometer
1180d8e6b709 dt-bindings: iio: adf4350: add clk provider prop
f381ea112b46 dt-bindings: iio: adc: add ti,ads1119
2b4f01519d41 dt-bindings: display/msm/gpu: fix the schema being not applied
a41af83abe57 dt-bindings: display/msm/gpu: simplify compatible regex
94a274b4643e dt-bindings: display/msm/gpu: define reg-names in top-level
a788afae3dc5 dt-bindings: display/msm/gpu: constrain clocks in top-level
25d4870979fe regulator: Add bindings for MediaTek DVFSRC Regulators
4a75481a2582 arm64: dts: amlogic: g12: bump spdif output drive strength
2fb17caa577b arm64: dts: amlogic: sm1: fix spdif compatibles
ab6638f664dd dt-bindings: iommu: qcom,iommu: Add MSM8953 GPU IOMMU to SMMUv2 compatibles
ba6161c50d6a dt-bindings: iommu: add new compatible strings
7ca93a891e15 dt-bindings: net: cdns,macb: Deprecate magic-packet property
c502450f4868 dt-bindings: msm: dsi-phy-28nm: Document msm8937 compatible
84dd061f2740 dt-bindings: display/msm: qcom, mdp5: Add msm8937 compatible
bdf10c92f89f Merge patch series "dt-bindings: interrupt-controller: riscv,cpu-intc"
8c6c55383365 dt-bindings: riscv: cpus: add ref to interrupt-controller
c5b368bcc2dd dt-bindings: interrupt-controller: riscv,cpu-intc: convert to dtschema
bb4384c93fc9 dt-bindings: display/msm/dsi: allow specifying TE source
bedca719ed2b arm64: dts: rockchip: Increase VOP clk rate on RK3328
8b26cf42ba0c arm64: dts: rockchip: add gpio-line-names to radxa-zero-3
d808d9fee606 arm64: dts: rockchip: Split GPU OPPs of RK3588 and RK3588j
bc692467bbaf arm64: dts: rockchip: Add OPP data for CPU cores on RK3588j
04d2736a1df9 arm64: dts: rockchip: Add OPP data for CPU cores on RK3588
cb79ce85d6ac arm64: dts: rockchip: Add CPU/memory regulator coupling for 2 RK3588 boards
8324bc7493e4 arm64: dts: rockchip: fix mmc aliases for Radxa ZERO 3E/3W
431048c50e9f arm64: dts: rockchip: Add Neardi LBA3368 board
6a86c7f4eba1 dt-bindings: arm: rockchip: Add Neardi LBA3368
30e1185c5e84 dt-bindings: vendor-prefixes: Add Neardi Technology
f0caeb5a26b6 arm64: dts: rockchip: Enable PinePhone Pro vibrator
0b3420a3fab5 arm64: dts: rockchip: Enable PinePhone Pro IMU sensor
8d3d4f026872 arm64: dts: rockchip: Add Pinephone Pro support for GPIO LEDs
60f8d7de9cf9 arm64: dts: rockchip: Enable SPI flash on PinePhone Pro
dd40945a1d0e arm64: dts: rockchip: change spi-max-frequency for Radxa ROCK 3C
fde218de3133 arm64: dts: rockchip: add (but disabled) SFC node for Radxa ROCK 5A
5b50d73d3715 arm64: dts: rockchip: add SFC support for Radxa ROCK 5B
bc23c00c89d9 arm64: dts: rockchip: enable automatic fan control on Rock 5B
b527a384dce9 arm64: dts: rockchip: add passive GPU cooling on RK3588
14e5add5fcf0 arm64: dts: rockchip: enable thermal management on all RK3588 boards
33e7079543d5 arm64: dts: rockchip: add thermal zones information on RK3588
bf8f631f6202 arm64: dts: rockchip: Prepare RK3588 SoC dtsi files for per-variant OPPs
c1a8bf31d96d arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board
f3e130bcb853 dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS
3dd1653655c5 ARM: dts: rockchip: enable hdmi_sound and i2s0 for mk808 hdmi
e00282a99e81 media: dt-bindings: i2c: add GalaxyCore GC05A2 image sensor
5eaba2f16ce3 media: dt-bindings: i2c: add GalaxyCore GC08A3 image sensor
d80fcc67e81c dt-bindings: fuse: Document R-Car E-FUSE / OTP_MEM
108bf800bbcc dt-bindings: fuse: Document R-Car E-FUSE / PFC
a237b15be401 dt-bindings: serial: sc16is7xx: add reset-gpios
b0a2f330a33e dt-bindings: serial: vt8500-uart: convert to json-schema
4424fa1d93f8 dt-bindings: serial: mediatek,uart: add MT7988
4c0e43503ad2 dt-bindings: serial: Add documentation for Renesas RZ/V2H(P) (R9A09G057) SCIF support
8ec7c4dd4d54 dt-bindings: serial: renesas,scif: Make 'interrupt-names' property as required
05f061e77fdd dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'
61ac8c293830 dt-bindings: serial: renesas,scif: Move ref for serial.yaml at the end
a5355d52aa6a riscv: dts: starfive: jh7110: Add the core reset and jh7110 compatible for uarts
6ee809eee4b8 dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for StarFive JH7110 SoC
00938ca6b2cc dt-bindings: clock: rcar-gen2: Remove obsolete header files
93a2f90e5dae dt-bindings: clock: r8a7779: Remove duplicate newline
1c69648c3783 dt-bindings: interconnect: add clock property to enable QOS on SC7280
ae139066fd8a arm: dts: mediatek: Declare drive-strength numerically
df57b6016f20 arm64: dts: amlogic: ad402: fix thermal zone node name
5cdc16864c6e media: dt-bindings: Add Imagination E5010 JPEG Encoder
5eafadac3e6c arm64: dts: meson: add initial support for Dreambox One/Two
fb79dfb8abd5 dt-bindings: arm: amlogic: add support for Dreambox One/Two
760b80dc91b7 dt-bindings: add dream vendor prefix
3479297ef6e2 arm64: dts: meson: add support for OSMC Vero 4K
c3aca1695c51 dt-bindings: arm: amlogic: add OSMC Vero 4K
6059d5f5847e arm64: dts: qcom: sa8775p: add a dedicated memory carveout for TZ
57ae452a2fc8 dt-bindings: firmware: qcom,scm: add memory-region for sa8775p
c56e5741c444 arm64: dts: qcom: msm8976: Use mboxes in smsm node
2dd1561dbf08 arm64: dts: qcom: msm8953: Use mboxes in smsm node
5256d8af1685 arm64: dts: qcom: msm8939: Use mboxes in smsm node
95f17c0e881d arm64: dts: qcom: msm8916: Use mboxes in smsm node
08eeac2d578f ARM: dts: qcom: msm8974: Use mboxes in smsm node
792ac321ad35 arm64: dts: qcom: x1e80100: Enable tsens and thermal zone nodes
80edf3f389aa arm64: dts: qcom: qcm6490-fairphone-fp5: Configure PM8008 regulators
3170c49585b9 arm64: dts: qcom: sm7225-fairphone-fp4: Configure PM8008 regulators
b227df42c3ea arm64: dts: qcom: msm8916-gplus-fl8005a: Add BMS
2006c3130d2f dt-bindings: arm: qcom: Add Sony Xperia Z3 Compact
8e02c2cafb60 ARM: dts: qcom: msm8974-sony-shinano: increase load on l21 for sdhc2
d9b3dfcbdf76 ARM: dts: qcom: Add Sony Xperia Z3 Compact smartphone
6c680bb916ff ARM: dts: rockchip: Add SFC for RK3128
6afa1b71fb66 ARM: dts: qcom: use generic node names for Adreno and QFPROM
325e20f25b82 dt-bindings: clock: rk3128: Add HCLK_SFC
59e22bd1d054 dt-bindings: clock: rk3128: Drop CLK_NR_CLKS
fd734c5b3c4b ARM: dts: rockchip: add hdmi-sound node to rk3066a
bffb9e742cce ARM: dts: rockchip: Add spdif node for RK3128
8a45b75aac35 ARM: dts: rockchip: Add i2s nodes for RK3128
9eba8f5224bf ARM: dts: rockchip: Add DSI for RK3128
d3da4f5ce24c ARM: dts: rockchip: Add D-PHY for RK3128
9be7e4accf83 arm64: dts: hisilicon: hi3660: add dedicated hi3660-usb3-otg-bc compatible
3c2e65da34d4 dt-bindings: soc: hisilicon: document hi3660-usb3-otg-bc
e8fb7d7f8f9f arm: dts: aspeed: Use standard 'i2c' bus node name
317c638fdd01 arm: dts: nuvoton: Use standard 'i2c' bus node name
6cf23b45e43f spi: add devm_spi_optimize_message() helper
ebbcbfac14a6 ASoC: Add ak4619 codec support
c592005f8a1b ASoC: add compatible for ti,pcm5242
5178ee1e2814 ASoC: dt-bindings: convert everest,es7134.txt &
e87302bde56f tlv320adc3xxx: Allow MICBIAS pins to be used as
d12808dbea30 ARM: dts: nspire: Add full compatible for watchdog node
5e4e5faa2c3d ARM: dts: nspire: Add unit name addresses to memory nodes
f4ce0c4a4d06 dt-bindings: display/msm: Add SM7150 MDSS
cf3b09a69b9b dt-bindings: display/msm: Add SM7150 DPU
78c44c9f355d regulator: Merge up v6.10-rc4
889353999b73 arm64: dts: allwinner: rg35xx: Enable DVFS CPU frequency scaling
adce636b2919 arm64: dts: allwinner: h616: add additional CPU OPPs for the H700
6274dfe55e8d ASoC: dt-bindings: add ti,pcm5242 to pcm512x
c6ebe72f9e47 arm64: dts: allwinner: anbernic-rg35xx-h: Add ADC joysticks
a790c7004216 arm64: dts: allwinner: h616: Add GPADC device node
f7c9294626ce Merge branch 'sunxi/shared-clk-ids-for-6.11' into sunxi/dt-for-6.11
11f9b88a5caa dt-bindings: clock: sun50i-h616-ccu: Add GPADC clocks
be4ddf349915 ASoC: dt-bindings: cirrus,cs530x: Add initial DT binding
408c316d0e02 dt-bindings: adc: ad7173: add support for ad411x
5e495cea05cd dt-bindings: iio: adc: Add common-mode-channel property
10a66c61636b dt-bindings: input: touchscreen: edt-ft5x06: Add ft5426
3fdbb4dd165a dt-bindings: touchscreen: elan,ektf2127: Add EKTF2232
f082528be8b5 dt-bindings: touchscreen: convert elan,ektf2127 to json-schema
ce4f3b9bc536 arm64: dts: ti: k3-am62*-main: Remove unwanted properties from crypto
d01ba1f927d2 arm64: dts: ti: k3-am62a-main: Enable crypto accelerator
8627ae8b2884 Merge tag 'linux-can-next-for-6.11-20240621' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
50157490d29c dt-bindings: ads7846: Add hsync-gpios
c701fbb9fee5 dt-bindings: PCI: rockchip-dw-pcie: Fix description of legacy IRQ
8dd41a2486ec dt-bindings: PCI: rockchip-dw-pcie: Prepare for Endpoint mode support
d0fa31ccdd66 dt-bindings: PCI: snps,dw-pcie-ep: Add tx_int{a,b,c,d} legacy IRQs
3ad49d47ba4e dt-bindings: PCI: snps,dw-pcie-ep: Add vendor specific interrupt-names
99796abcd4d1 dt-bindings: PCI: snps,dw-pcie-ep: Add vendor specific reg-name
0776dc67d190 dt-bindings: display: bridge: tc358767: Keep enum sorted
17321de43320 dt-bindings: display: mediatek: rdma: add compatible for MT8365 SoC
3656eb92fcdb dt-bindings: display: mediatek: ovl: add compatible for MT8365 SoC
83f48793bae0 dt-bindings: display: mediatek: gamma: add compatible for MT8365 SoC
1defcb89a90c dt-bindings: display: mediatek: dpi: add compatible for MT8365
fc07a319b544 dt-bindings: display: mediatek: dsi: add compatible for MT8365 SoC
3c919b9e7ec6 dt-bindings: display: mediatek: dither: add compatible for MT8365 SoC
c37c9ee3999b dt-bindings: display: mediatek: color: add compatible for MT8365 SoC
bf2f5fafbbe3 dt-bindings: display: mediatek: ccorr: add compatible for MT8365 SoC
b01fea9984f0 dt-bindings: display: mediatek: aal: add compatible for MT8365 SoC
2d0d65354acf dt-bindings: net: mscc-miim: Add resets property
ca2f67d95c9f dt-bindings: net: remove arc_emac.txt
a69d7f400759 ARM: dts: rockchip: rk3xxx: fix emac node
cd4ab0e16f3d MIPS: dts: loongson: Add ISA node
685ed24e0b0b MIPS: dts: loongson: Fix GMAC phy node
948ccbf1fd11 MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
8ceb1ba9386e MIPS: dts: loongson: Fix liointc IRQ polarity
b30647b42010 MIPS: Loongson64: Remove memory node for builtin-dtb
52e4613cf1c7 arm64: dts: qcom: sc8280xp-x13s: enable pm8008 camera pmic
40b6dbfd1474 arm64: dts: qcom: aim300: add AIM300 AIoT
ec793e8abf4d arm64: dts: qcom: add base AIM300 dtsi
ce30807fa92e arm64: dts: qcom: qcs8550: introduce qcs8550 dtsi
f4aca717f5ec dt-bindings: arm: qcom: Document QCS8550 SoC and the AIM300 AIoT board
997d115b5e22 arm64: dts: qcom: qdu1000: fix usb interrupts properties
b83e2896ac9b arm64: dts: qcom: qrb5165-rb5: add the Wifi node
ca4c4cb89a39 arm64: dts: qcom: sm8650-hdk: add the Wifi node
6a5ac37e660b arm64: dts: qcom: sm8650-qrd: add the Wifi node
4248d5813149 arm64: dts: qcom: sm8550-qrd: add the Wifi node
8abd32c9a81d arm64: dts: qcom: msm8916-gplus-fl8005a: Add sound and modem
bbe6414baff1 arm64: dts: qcom: qcm6490-shift-otter: Name the regulators
182195a9f261 arm64: dts: qcom: qcm6490-fairphone-fp5: Name the regulators
6ec1f9686feb arm64: dts: qcom: qdu1000: Add secure qfprom node
29a85d8a358e arm64: dts: qcom: sc7180-trogdor: Disable pwmleds node where unused
94f2c5ca780a arm64: dts: qcom: sm8650: drop second clock name from clock-output-names
1a57b098e81f arm64: dts: qcom: sm8550: drop second clock name from clock-output-names
ca2c5d4bab61 arm64: dts: qcom: sm8450: drop second clock name from clock-output-names
e26cafb1af5f arm64: dts: qcom: c630: Add Embedded Controller node
d8b26eed8c55 arm64: dts: qcom: sdm845: describe connections of USB/DP port
fb749a1f68c2 dt-bindings: net: Convert fsl-fman to yaml
c4169f1752ae dt-bindings: ptp: Convert ptp-qoirq to yaml format
6324d808bbd3 Merge tag 'drm-misc-next-2024-06-20' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
6d1a0d289bc0 Merge tag 'drm-misc-next-2024-06-13' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
7f6ef00716b4 Merge tag 'drm-misc-next-2024-06-06' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
d2a65dbba1fd Merge tag 'drm-misc-next-2024-05-30' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
4aab25438827 dt-bindings: display: synopsys, dw-hdmi: Mark ddc-i2c-bus as deprecated
515d27993dda dt-bindings: display: synopsys, dw-hdmi: Document ddc-i2c-bus in core
a17fa871d999 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
10251c2cacd8 arm64: dts: amlogic: Used onboard usb hub reset on odroid n2
61a4af344668 dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub
ed729e84f514 dt-bindings: usb: gpio-sbu-mux: Add an entry for TMUXHS4212
73c61be4c5bc dt-bindings: usb: qcom,dwc3: Add SC8180X compatibles
a449732742c4 dt-bindings: usb: cdns,usb3: use common usb-drd yaml
b654397b8cf6 dt-bindings: phy: airoha: Add PCIe PHY controller
139a406a93f8 regulator: dt-bindings: mt6315: Document MT6319 PMIC
699f790b1f36 dt-bindings: mmc: Convert fsl-esdhc.txt to yaml
f83527300cc0 dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
58c442806ba5 ASoC: dt-bindings: convert everest,es7134.txt to dt-schema
1eb581bb5458 ASoC: dt-bindings: convert everest,es7241.txt to dt-schema
0f5e7b5eecdb ASoC: dt-bindings: add missing vender prefix on filename
b995e82825fe dt-bindings: can: xilinx_can: Modify the title to indicate CAN and CANFD controllers are supported
55883d726a02 dt-bindings: media: mediatek: mdp3: Add support for MT8188 RDMA
304484744892 dt-bindings: mmc: meson-gx: add optional power-domains
985fdfc5ad82 dt-bindings: mmc: sdhci-msm: Document the SDX75 compatible
e0d89f15afae dt-bindings: mmc: Add support for BCM2712 SD host controller
e79ed47fec7a dt-bindings: arm: bcm: Add BCM2712 SoC support
f70e145bb72b arm64: dts: juno: Enable GPU
359adcff5dc0 arm64: dts: juno: add dedicated FPGA syscon compatible
b840da1e1e88 dt-bindings: arm: arm,juno-fpga-apb-regs: document FPGA syscon
167b2c2a8482 arm64: dts: exynos: gs101-oriole: add placeholder regulators for USB phy
fadf0b16f21f arm64: dts: ti: k3-am642-evm: Enable "SYNC_OUT0" output
c640d4e96794 arm64: dts: ti: k3-am62x-sk-common: Add bootph-all for I2C1 instance pinmux
ea5ddbe89a02 arm64: dts: ti: k3-am62p-j722s: Move SoC-specific node properties
db2a03bca3b5 arm64: dts: ti: k3-j722s: Enable PCIe and USB support on J722S-EVM
4a99d88640be arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support
1773fdfb045a arm64: dts: ti: k3-serdes: Add SERDES0/SERDES1 lane-muxing macros for J722S
876d825fa26b arm64: dts: ti: k3-j722s: Switch to k3-am62p-j722s-common-{}.dtsi includes
5aa393fbf373 arm64: dts: ti: k3-j722s: Add main domain peripherals specific to J722S
2a578d10250a arm64: dts: ti: k3-am62p-j722s: Move AM62P specific USB1 to am62p-main.dtsi
720cabda521b arm64: dts: ti: am62p: Rename am62p-{}.dtsi to am62p-j722s-common-{}.dtsi
abcd0ed7e4f5 arm64: dts: ti: am642-evm: Add overlay for NAND expansion card
878e31bcaf0d arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable spi nor
379a2241db06 arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable rtc
ecb45e649430 arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable eth phy
c479c618458d arm64: dts: ti: k3-am64-phycore-som: Add serial_flash label
0a3b97d6bc29 arm64: dts: ti: k3-j721e: Add overlay for J721E Infotainment Expansion Board
c6550bccb361 arm64: dts: ti: am642-phyboard-electra: Add overlay to enable PCIe
e25824f14c10 arm64: dts: ti: am642-phyboard-electra: Remove PCIe pinmuxing
1618170d0807 arm64: dts: ti: k3-j784s4-main: Add node for EHRPWMs
f267be63dad1 ASoC: dt-bindings: ak4619: Add initial DT binding
c5076e654465 dt-bindings: gpu: mali-bifrost: Add compatible for MT8188 SoC
7bc8f6864ba0 riscv: dts: microchip: add an initial devicetree for the BeagleV Fire
7cdcc4ac7711 dt-bindings: riscv: microchip: document beaglev-fire
dd1fdf7eb9cc riscv: dts: starfive: Update flash partition layout
7c4d312b6840 riscv: dts: thead: th1520: Add PMU event node
119b05c2e749 riscv: dts: starfive: add Star64 board devicetree
3341bb3fb72b dt-bindings: riscv: starfive: add Star64 board compatible
aaf2e70da439 arm64: dts: ti: iot2050: Add IEP interrupts for SR1.0 devices
a39cec36c47e dt-bindings: net: Add IEP interrupt
3659bc02ff15 ASoC: dt-bindings: audio-graph-card2: add support for aux devices
ef7d6a907c39 dt-bindings: hwmon: ti,tmp108: document V+ supply, add short description
d2b1d8e084b3 ASoC: dt-bindings: tlv320adc3xxx: Add MICBIAS-as-GPO properties
b58e3051e374 dt-bindings: net: ethernet-controller: add 10g-qxgmii mode
57e8183fb001 dt-bindings: ata: ahci-fsl-qoriq: convert to yaml format
990a7c1fc03c Merge tag 'v6.10-rc4' into usb-next
119ab66456c2 dt-bindings: remoteproc: imx_rproc: Add minItems for power-domain
6cc9425706c0 dt-bindings: interrupt-controller: Add support for Microchip LAN966x OIC
e0fae4182277 ASoC: dt-bindings: realtek,rt5514: Convert to dtschema
e87c982f1cc5 ASoC: dt-bindings: realtek,rt5631: Convert to dtschema
4e5d4dbbc6ce dt-bindings: net: wireless: describe the ath12k PCI module
d7e7dcf400b2 dt-bindings: net: wireless: qcom,ath11k: describe the ath11k on QCA6390
3c24435cffbd dt-bindings: pinctrl: xilinx: Add support for function with pins
e3d47fd65403 dt-bindings: pinctrl: aspeed,ast2600-pinctrl: Describe I3C, USB
1d59b0e49ddb dt-bindings: pinctrl: aspeed,ast2500-pinctrl: Describe SGPM
ba66f806aad3 dt-bindings: pinctrl: aspeed: Use block syntax for function and groups
f3a30d7130a3 Merge tag 'renesas-pinctrl-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
733cbf67ccef dt-bindings: firmware: arm,scmi: Add properties for i.MX95 Pinctrl OEM extensions
ffb8cefd9609 dt-bindings: pinctrl: qcom,pmic-gpio: Document PMC8380
23fc1a9433eb dt-bindings: pinctrl: Document nuvoton ma35d1 pin control
29c058ae8c68 dt-bindings: reset: Add syscon to nuvoton ma35d1 system-management node
c06bfbaeecfb dt-bindings: pinctrl: imx: Support i.MX91 IOMUXC
1659b629bffc arm64: zynqmp: Add pwm-fan node and fix ttc0 pwm-cells property
fd422e85ed65 arm64: zynqmp: Add support for K26 rev2 boards
873369daf816 arm64: zynqmp: Describe DisplayPort connector for Kria
c3755f380484 arm64: zynqmp: Add description for ina260 on kv260
97feab5ddf8e arm64: zynqmp: Add compatible string for kv260
61f97d0ba3dc arm64: zynqmp: Disable Tri-state for SDIO
ef3a26defce8 arm64: zynqmp: Remove address/size-cells from ams node
aebb2b83d644 arm64: zynqmp: Describe OCM controller
6bd3eb73303d arm64: zynqmp: Describe USB wakeup interrupt
7ca89154364f arm64: zynqmp: Add missing description for efuses
af2645a8c194 arm64: zynqmp: Use fpga-region as node name
f9837025af30 arm64: zynqmp: Align nvmem node with dt schema
53c15c5d452b Merge tag 'v6.10-rc4' into char-misc-next
6212d7a1b8f5 dt-bindings: memory: fsl: replace maintainer
de5a1550eb70 dt-bindings: arm: fsl: add i.MX93 9x9 QSB board
d3619cdf618f dt-bindings: arm: fsl: add i.MX95 19x19 EVK board
1955097b3773 dt-bindings: arm: fsl: Document Compulab IOT-GATE-iMX8
55ffe3e5634c arm64: dts: freescale: Support i.MX93 9x9 Quick Start Board
1951f593756d arm64: dts: freescale: add i.MX95 19x19 EVK minimal board dts
eaa2a07febab arm64: dts: freescale: add i.MX95 basic dtsi
b81ec85c8abb arm64: dts: imx8mm-iot-gateway: Add initial support
e9ecfb5e38e6 arm64: dts: layerscape: change thermal node name
562fe1dee8ac arm64: dts: layerscape: Change node name from 'esdhc' to 'mmc'
e56ea78e8d1e arm64: dts: imx8mp-msc-sm2s: Add HDMI output
ccb08e0483a5 arm64: dts: freescale: imx8mp-verdin: add HDMI support
05cb7dddf363 arm64: dts: imx8mp-debix-model-a: Enable HDMI output
be3cbb833806 arm64: dts: imx8: use defines for interrupts
58dfad47d913 arm64: dts: ls208xa: use defines for timer interrupts
bd6b12575c8a arm64: dts: freescale: use defines for interrupts
86c3ea025894 ARM: dts: e60k02: fix aliases for mmc
0f9c50976106 dt-bindings: Drop Li Yang as maintainer for all bindings
1b99acc8b7d3 arm64: dts: ls1028a-rdb: Add EEPROM nodes to I2C bus
f81534a2c9c4 Merge tag 'iio-for-6.11a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-testing
7e7dd5698d21 arm64: dts: imx8mp-beacon-kit: Fix errors found from CHECK_DTBS
070fadb49f83 arm64: dts: ls2160a: Change I2C clock name to ipg to fix DTB_CHECK warning
67da0accffca arm64: dts: ls208xa: Change I2C clock name to ipg to fix DTB_CHECK warning
502667bafb92 arm64: dts: ls1043a: Change I2C clock name to ipg to fix DTB_CHECK warning
166ccbfdddb3 arm64: dts: ls1012a: Reorder sai dma-names to clean up DTB_CHECK warning
8921c5b4f5ac dt-bindings: rng: meson: add optional power-domains
29a749153169 arm64: dts: imx8mp: Add imx8mp-specific irqsteer compatible
afaa14f38330 arm64: dts: freescale: imx8mp-verdin: don't limit i2c2 max. clock
1fff20a01ff9 arm64: dts: freescale: imx8mm-verdin: don't limit i2c2 max. clock
344e95378d10 arm64: dts: phygate-tauri-l: add overlays for RS232 and RS485
e5a9f1fa678f arm64: dts: phygate-tauri-l: enable pcie phy
0529751de381 ASoC: codecs: lpass: add support for v2.5 rx macro
3af35c085601 dt-bindings: phy: Add i.MX8Q HSIO SerDes PHY binding
f4666239b145 dt-bindings: phy: Add starfive,jh7110-dphy-tx
6c5e7bf76b43 dt-bindings: phy: qcom,usb-hs-phy: Add compatible
a0af0d584e2e dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: drop second output clock name
af0f9e759e82 arm64: dts: exynos: gs101: reorder properties as per guidelines
5d755abb3ee7 ARM: dts: imx: Add LVDS port data mapping on M53 Menlo
1e5c284f8857 arm64: dts: freescale: ls1028a: Reorder sai dma-names to fix warning
5de1e33517ec arm64: dts: freescale: ls1028a: Remove undocumented 'fsl,ls-pcie-ep'
cd94daf47dc8 arm64: dts: imx8mq-librem5: Don't wake up on volume key press
977a6878ba14 arm64: dts: imx8mp-tqma8mpql-mba8mpxl: Remove unused ocram node
bcbcacd295ec arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
7e843da6d36b ARM: dts: imx28-tx28: drop redundant 'panel-name' property
cef3cd609336 ARM: dts: imx: drop redundant 'u-boot,panel-name' property
c3f6e7a7649f ARM: dts: imx6dl-aristainetos2_4: drop redundant 'power-on-delay' property
bc0dc13d4dc5 ARM: dts: imx: correct choice of panel native mode
93295300d928 ARM: dts: imx: align panel timings node name with dtschema
ec5a3090ae92 arm64: dts: imx8mp-evk: add bt-sco sound card support
1f9e2b057242 arm64: dts: imx8mp: Initialize audio PLLs from audiomix subsystem
e73ffa25cb29 dt-bindings: display: panel-edp-legacy: drop several eDP panels
cffe97832866 dt-bindings: sound: Convert max98088 to dtschema
31e6af346a28 ASoC: dt-bindings: convert tas571x.txt to dt-schema
29e70041cab6 dt-bindings: platform: Add Lenovo Yoga C630 EC
239aa1b26c12 dt-bindings: net: add STM32MP13 compatible in documentation for stm32
8154ba410b86 dt-bindings: firmware: arm,scmi: Add support for notification completion channel
5cf692edf49e dt-bindings: clock: sophgo: add clkgen for SG2042
d5c4b75e0b79 dt-bindings: clock: sophgo: add RP gate clocks for SG2042
8887902f69e7 dt-bindings: clock: sophgo: add pll clocks for SG2042
88fef3d9ee45 dt-bindings: net: dsa: lantiq,gswip: convert to YAML schema
bdc7fa4efbb1 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
05a7173cebac dt-bindings: iio: chemical: add ENS160 sensor
331df191d990 dt-bindings: vendor-prefixes: add ScioSense
b736352b1c28 dt-bindings: iio: light: add VEML6040 RGBW-LS
985c065b3020 dt-bindings: iio: adc: amlogic,meson-saradc: add optional power-domains
630da2896987 dt-bindings: iio: adc: ti,ads1015: add compatible for tla2021
4dcc08b8a6e7 mfd: pm8008: Rework to match new DT binding
893c50674025 dt-bindings: mfd: pm8008: Rework binding
dac8a6d7605e dt-bindings: mfd: pm8008: Drop redundant descriptions
83cbbd1eae56 dt-bindings: mfd: pm8008: Add reset gpio
915eed047caf dt-bindings: media: convert Mediatek consumer IR to the json-schema
8fda0b783313 dt-bindings: interconnect: Add MediaTek EMI Interconnect bindings
a7b27f102b00 arm64: dts: ti: k3-am642-sk: Add power supply temperature sensors
305fadd8a31b ARM: dts: qcom: motorola-falcon: add accelerometer, magnetometer
fc07a1dabdf8 arm64: dts: qcom: msm8916-acer-a1-724: Add sound and modem
c9bdb3194387 dt-bindings: soc: qcom,smsm: Allow specifying mboxes instead of qcom,ipc
1f1cc8fbc609 arm64: dts: qcom: qrb2210-rb1: Enable the GPU
e23b904d8220 arm64: dts: qcom: qcm2290: Add GPU nodes
577241491f84 Merge branch '20240606-topic-rb1_gpu-v4-1-4bc0c19da4af@linaro.org' into arm64-for-6.11
45a808074b35 Merge branch '20240606-topic-rb1_gpu-v4-1-4bc0c19da4af@linaro.org' into clk-for-6.11
0cfd0fbfe96f dt-bindings: clock: Add Qcom QCM2290 GPUCC
382492121a97 arm64: dts: qcom: qcm6490-fairphone-fp5: Use .mbn firmware for IPA
4614658a59a9 dt-bindings: clock: add qca8386/qca8084 clock and reset definitions
332e02304f2b dt-bindings: clock: qcom,sm8450-gpucc: reference qcom,gcc.yaml
a3cea8b5a2ca dt-bindings: clock: qcom,sm8550-dispcc: reference qcom,gcc.yaml
a7a6def17dfd dt-bindings: clock: qcom,sm8450-dispcc: reference qcom,gcc.yaml
bdfce787b460 dt-bindings: clock: qcom,sm6115-dispcc: reference qcom,gcc.yaml
f15963354917 dt-bindings: clock: qcom,sdm845-dispcc: reference qcom,gcc.yaml
95f614882df0 dt-bindings: clock: qcom,sc7280-dispcc: reference qcom,gcc.yaml
b44db77755ca dt-bindings: clock: qcom,sc7180-dispcc: reference qcom,gcc.yaml
ccb1fec013b0 dt-bindings: clock: qcom,qcm2290-dispcc: reference qcom,gcc.yaml
a8bec1f2a54e dt-bindings: clock: qcom,msm8998-gpucc: reference qcom,gcc.yaml
5162009ad4aa dt-bindings: clock: qcom,gpucc: reference qcom,gcc.yaml
bb75626b2c83 dt-bindings: clock: qcom,gpucc-sdm660: reference qcom,gcc.yaml
57a576f1c336 dt-bindings: clock: qcom,dispcc-sm8x50: reference qcom,gcc.yaml
e3fc6473d500 dt-bindings: clock: qcom,dispcc-sm6350: reference qcom,gcc.yaml
3a4e695e0c10 dt-bindings: clock: qcom,dispcc-sc8280xp: reference qcom,gcc.yaml
9ba119e9f2b5 dt-bindings: clock: qcom,videocc: reference qcom,gcc.yaml
34c55054c456 dt-bindings: clock: qcom,sm8450-videocc: reference qcom,gcc.yaml
5c0cb24eda45 dt-bindings: phy: g12a-usb2-phy: add optional power-domains
c95e52177530 ASoC: dt-bindings: wlf,wm8804: Convert to dtschema
461612dc145c ASoC: dt-bindings: wlf,wm8782: Convert to dtschema
5c208f256b7c arm64: dts: ti: k3-am69-sk: Add PCIe support
c5515f74fa96 arm64: dts: ti: k3-j784s4-evm: Add overlay for PCIe0 and PCIe1 EP Mode
b678dd09adcb arm64: dts: ti: k3-j784s4-evm: Enable PCIe0 and PCIe1 in RC Mode
c09a48bdb085 arm64: dts: ti: k3-j784s4-main: Add PCIe nodes
2a7a220ac4c2 arm64: dts: ti: k3-am62p: use eFuse MAC Address for CPSW3G Port 1
74a7a6627fef arm64: dts: ti: am62-phyboard-lyra: Add overlay to increase cpu frequency to 1.4 GHz
9bcf12672fe9 arm64: dts: ti: k3-am62p5-sk: Fix pinmux for McASP1 TX
99f08cf5687b arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Drop McASP AFIFOs
77021f8c68f7 arm64: dts: ti: k3-am62-verdin: Drop McASP AFIFOs
edfe215e5eb1 arm64: dts: ti: k3-am625-beagleplay: Drop McASP AFIFOs
2468161b9182 arm64: dts: ti: k3-am62p5: Drop McASP AFIFOs
bc6492cf3cb5 arm64: dts: ti: k3-am62a7: Drop McASP AFIFOs
5f15c2aeb32c arm64: dts: ti: k3-am62x: Drop McASP AFIFOs
c64d6859de48 arm64: dts: ti: k3-am642-evm-icssg1-dualemac: add overlay for mii mode
99e036b39c5d arm64: dts: ti: k3-am65-main: Add PRU system events for virtio
7971fbc45c23 arm64: dts: ti: k3-am64-main: Add PRU system events for virtio
2dd002bcaf89 arm64: dts: ti: k3-j784s4-evm: Add TPS62873 node
d8db584a7575 arm64: dts: ti: k3-am69-sk: Add TPS62873 node
24b91360b6b3 arm64: dts: ti: k3-am68-sk-base-board: Add LP8733 and TPS6287 nodes
11ba190d31c7 arm64: dts: ti: k3-j784s4-evm: Enable USB3 support
e7f9f45716f3 arm64: dts: ti: k3-j784s4-main: Add support for USB
b3082f17a8b3 arm64: dts: ti: k3-j784s4-evm: Add support for multiple CAN instances
d2673756fb83 arm64: dts: ti: k3-am62a-wakeup: Enable RTC node
a026ba37e2bb arm64: dts: ti: k3-j721e-sk: Add support for multiple CAN instances
f968d337ab2b arm64: dts: ti: k3-j722s: Fix main domain GPIO count
371bbb2a8ae9 arm64: boot: dts: ti: k3-*: Add memory node to bootloader stage
f4412aaa2d25 arm64: dts: ti: k3-am642-hummingboard-t: correct rs485 rts polarity
e0688a865347 arm64: dts: ti: phycore-am64: Add PMIC
1b041d76850f arm64: dts: ti: k3-am62p-main: Fix the reg-range for main_pktdma
aecfb02d18a8 arm64: dts: ti: k3-am62a-main: Fix the reg-range for main_pktdma
7f37b3e2a39e arm64: dts: ti: k3-am62-main: Fix the reg-range for main_pktdma
fa3f77211b96 arm64: dts: ti: k3-j784s4: Add overlay for dual port USXGMII mode
7c195babb25a arm64: dts: ti: k3-j784s4: Add overlay to enable QSGMII mode with CPSW9G
747d3454b071 arm64: dts: ti: k3-j784s4-evm: Enable Main CPSW2G node and add aliases for it
59e9ae78a716 arm64: dts: ti: k3-j784s4-main: Add CPSW2G and CPSW9G nodes
39c8ae909406 arm64: dts: ti: k3-j784s4-evm: Add alias for MCU CPSW2G
2bdd1743a9f6 arm64: dts: ti: k3-am62x-sk-common: Add bootph-all property in phy_gmii_sel node
139283d46420 dt-bindings: hwmon: Add MPS mp9941
041b1655a6e1 dt-bindings: hwmon: Add MPS mp2993
b793bad7fedb dt-bindings: hwmon: ti,ina2xx: Add ti,alert-polarity-active-high property
0cd781c25275 ARM: dts: cirrus: align panel timings node name with dtschema
2341fb1462c1 dt-bindings: phy: armada-cp110-utmi: add optional swap-dx-lanes property
220e2517cef6 ARM: dts: vt8500: align panel timings node name with dtschema
d0d47ee2c516 ARM: dts: vt8500: replace "uhci" nodename with generic name "usb"
95b9c9d6eb7e arm64: dts: sprd: Split PMU nodes for heterogeneous CPUs
538c692d38e3 dt-bindings: fsl-qdma: Convert to yaml format
58c75d7caa20 dt-bindings: dma: Document STM32 DMA3 controller bindings
e1a4b1d5b656 dt-bindings: dma: New directory for STM32 DMA controllers bindings
53b97b689238 ASoC: dt-bindings: linux,spdif: Convert spdif-reciever.txt to dtschema
ebdea7428c51 MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
f59a288638f5 MIPS: Loongson64: DTS: Fix msi node for ls7a
bf6a7375f5e8 MIPS: mobileye: Add EyeQ6H device tree
9aff9bb463cd dt-bindings: mips: Add bindings for a new Mobileye SoC EyeQ6H
19489c5d1dee dt-bindings: pinctrl: renesas: Document RZ/V2H(P) SoC
3122491781e8 dt-bindings: clock: renesas,rzg2l-cpg: Update description for #reset-cells
fd5baac16357 Merge tag 'wireless-next-2024-06-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
29f4de0ef4bb ASoC: dt-bindings: ak4554: Convert to dtschema
2105bb90d7b5 ASoC: codecs: wcd937x: add wcd937x audio codec
8b422dccbf51 dt-bindings: remoteproc: k3-dsp: Correct optional sram properties for AM62A SoCs
becf39ef8242 dt-bindings: trivial-devices: Add jedec,spd5118
3b382742f3d9 ASoC: dt-bindings: omap-mcpdm: Convert to DT schema
1a4199d44cfe ASoC: dt-bindings: document wcd937x Audio Codec
fc210f62f555 dt-bindings: clock: meson: a1: peripherals: support sys_pll input
5fe6503ba2ef dt-bindings: clock: meson: a1: pll: introduce new syspll bindings
7615509f5b20 Merge tag 'v6.10-rc3'
6ef1f4991e29 arm64: dts: qcom: sm8650: Throttle the GPU when overheating
599b1d660821 arm64: dts: qcom: sm8550: Throttle the GPU when overheating
49383e2ea3ad arm64: dts: qcom: sm8450: Throttle the GPU when overheating
31a484bcc749 arm64: dts: qcom: sm8350: Throttle the GPU when overheating
a935767c2752 arm64: dts: qcom: sm8250: Throttle the GPU when overheating
7fbeeedea92f arm64: dts: qcom: sm8150: Throttle the GPU when overheating
37fdeeadea59 arm64: dts: qcom: sm6350: Update GPU thermal zone settings
2537ffc90af6 arm64: dts: qcom: sm6115: Update GPU thermal zone settings
0da2b571e4f6 arm64: dts: qcom: sdm845: Throttle the GPU when overheating
bee498747075 arm64: dts: qcom: sdm630: Throttle the GPU when overheating
1b125a7146f2 arm64: dts: qcom: sc8280xp: Throttle the GPU when overheating
9d7c478acf92 arm64: dts: qcom: sc8180x: Throttle the GPU when overheating
c8e42fa645c1 arm64: dts: qcom: sm8650-*: Remove thermal zone polling delays
17bdcb160919 arm64: dts: qcom: sm8550-*: Remove thermal zone polling delays
ff00a733d2e9 arm64: dts: qcom: sm8450-*: Remove thermal zone polling delays
7f4c5e0fddf8 arm64: dts: qcom: sm8350-*: Remove thermal zone polling delays
dfb4acdb3665 arm64: dts: qcom: sm8250-*: Remove thermal zone polling delays
61b6f264f4a3 arm64: dts: qcom: sm8150-*: Remove thermal zone polling delays
54ee32713b1e arm64: dts: qcom: sm6375-*: Remove thermal zone polling delays
479d03ac8a18 arm64: dts: qcom: sm6350-*: Remove thermal zone polling delays
1d4ed206cc28 arm64: dts: qcom: sm6125-*: Remove thermal zone polling delays
7035d051ff3c arm64: dts: qcom: sm6115-*: Remove thermal zone polling delays
13062d235368 arm64: dts: qcom: sdm845-*: Remove thermal zone polling delays
1888c9728dd8 arm64: dts: qcom: sdm660-*: Remove thermal zone polling delays
2a15fb8d8a62 arm64: dts: qcom: sc8280xp-*: Remove thermal zone polling delays
1134e982a840 arm64: dts: qcom: sc8180x-*: Remove thermal zone polling delays
3ed654568782 arm64: dts: qcom: sc7280-*: Remove thermal zone polling delays
1dd543828473 arm64: dts: qcom: sc7180-*: Remove thermal zone polling delays
2fcc79649672 arm64: dts: qcom: sa8775p-*: Remove thermal zone polling delays
27f09f1d554f arm64: dts: qcom: qcs404-*: Remove thermal zone polling delays
b20ab65f0a5a arm64: dts: qcom: qcm2290-*: Remove thermal zone polling delays
1dec333ca252 arm64: dts: qcom: pmx75: Remove thermal zone polling delays
22e2d4c0408e arm64: dts: qcom: pms405: Remove thermal zone polling delays
92af0281e1b1 arm64: dts: qcom: pm7550ba: Remove thermal zone polling delays
41f906bdcabe arm64: dts: qcom: msm8998-*: Remove thermal zone polling delays
ae8c15eb2d2a arm64: dts: qcom: msm8996-*: Remove thermal zone polling delays
ce91afdee333 arm64: dts: qcom: msm8976-*: Remove thermal zone polling delays
3add3528ed70 arm64: dts: qcom: msm8953-*: Remove thermal zone polling delays
2c35a502d60a arm64: dts: qcom: msm8939-*: Remove thermal zone polling delays
a02be0981581 arm64: dts: qcom: msm8916-*: Remove thermal zone polling delays
abc8ce45e3dd arm64: dts: qcom: ipq9574-*: Remove thermal zone polling delays
45b69dd8c830 arm64: dts: qcom: ipq8074-*: Remove thermal zone polling delays
1cab7137168d arm64: dts: qcom: ipq6018-*: Remove thermal zone polling delays
e5935bec76c8 dt-bindings: dma: fsl,imx-dma: Convert to dtschema
4c5abccdb299 dt-bindings: display: panel: mipi-dbi-spi: Add a pixel format property
ed04286d197a arm64: dts: renesas: r8a779h0: Add video capture nodes
a4b93b2e76a5 arm64: dts: amlogic: gxbb-odroidc2: fix invalid reset-gpio property
f3e168853af5 arm64: dts: amlogic: a1: drop the invalid reset-name for usb@fe004400
f9198c5264f4 arm64: dts: amlogic: a1: use correct node name for mmc controller
49c4ee32e05a arm64: dts: amlogic: c3: use correct compatible for gpio_intc node
835e4b10b629 arm64: dts: amlogic: axg: fix tdm audio-controller clock order
de9d0bc3ff03 arm64: dts: amlogic: g12a-u200: add missing AVDD-supply to acodec
f4d38ef65719 arm64: dts: amlogic: g12a-u200: drop invalid sound-dai-cells
4b00f86b36d1 arm64: dts: amlogic: sm1: fix tdm controllers compatible
b363f64cf5ab arm64: dts: amlogic: sm1: fix tdm audio-controller clock order
f4f6bcf6c74f arm64: dts: amlogic: move ao_pinctrl into aobus
33663a76e0a1 arm64: dts: amlogic: meson-g12b-bananapi: remove invalid fan on wrong pwm_cd controller
effc7fa2e177 arm64: dts: qcom: sc7180-trogdor: Make clamshell/detachable fragments
6c31317523e4 arm64: dts: qcom: sc7180: pazquel: Add missing comment header
1e4bb7817b84 arm64: dts: qcom: sc7180: quackingstick: Disable instead of delete usb_c1
d8ad591f6d43 arm64: dts: qcom: sm8450-sony-xperia: correct touchscreen interrupt flags
5465b871ba23 arm64: dts: qcom: sm8250-sony-xperia: correct touchscreen interrupt flags
56d0c19dc455 arm64: dts: qcom: sm6375-pdx225: correct touchscreen interrupt flags
89efb295e0d3 arm64: dts: qcom: sm6350-pdx213: correct touchscreen interrupt flags
143a2600e46b arm64: dts: qcom: x1e80100-qcp: Add pmic-glink node with all 3 connectors
6c973a72ce2d arm64: dts: qcom: x1e80100-crd: Add pmic-glink node with all 3 connectors
9de79776c656 arm64: dts: qcom: x1e80100: Add remote endpoints between PHYs and DPs
a03abc110b0c Merge branch 'arm64-fixes-for-6.10' into arm64-for-6.11
0ae86529e1d3 media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G2UL CRU block
d54c8bb4d243 media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G2UL CSI-2 block
f9623232ee1e dt-bindings: display: panel: constrain 'reg' in DSI panels (part two)
c801f2d2fbda dt-bindings: ufs: qcom,ufs: drop source clock entries
eb8edd876343 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
590425480541 arm64: dts: sm8650-hdk: add support for the Display Card overlay
085dcba7307c arm64: dts: qcom: pm660: Add rradc, charger
b2f5ae69325b dt-bindings: display: simple: Add PrimeView PM070WL4 panel
f6fb10e1f813 dt-bindings: vendor-prefixes: Add PrimeView
56a5ef33a14c dt-bindings: regulator: twl-regulator: convert to yaml
94899bfc48d4 ASoC: dt-bindings: convert amlogic,g12a-tohdmitx to dt-schema
8cc60d6feb40 arm64: dts: amlogic: a4: add power domain controller node
35212b72624e Merge branch 'dt' of https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm into v6.11/arm64-dt
9274368c8fe8 arm64: dts: meson: radxa-zero2: add pwm-fan support
99dcb5d253a0 arm64: dts: meson: add GXLX/S905L/p271 support
c1ed206fd2c5 dt-bindings: arm: amlogic: add GXLX/S905L/p271 reference board
6cb5bcf9e424 arm64: dts: amlogic: ad402: move thermal-zones to top node
4a3ecb47ce34 arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add PMIC and charger
9914c77cad47 arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add S3FWRN5 NFC
fdcf701145c2 arm64: dts: qcom: msm8916-samsung-gprimeltecan: Add NFC
65bc77d179f3 dt-bindings: arm: qcom: add HTC One (M8)
ea2a839a9245 arm64: dts: qcom: x1e80100: Disable the SMB2360 4th instance by default
dcba93d10d82 arm64: dts: qcom: sc7280: Disable SuperSpeed instances in park mode
902bb8e5c438 arm64: dts: qcom: sc7180: Disable SuperSpeed instances in park mode
a5b491af8e09 ARM: dts: qcom: Add initial support for HTC One (M8)
0db00103797e arm64: dts: qcom: qrb4210-rb2: make L9A always-on
e811a4ab9a40 arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio
daf2fb0cb0c0 arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio
d37e99da7d63 arm64: dts: qcom: sm8650-hdk: allow more IOMMU SID for the first QUP instance
3a9597394c8a arm64: dts: qcom: use defines for interrupts
3b4f4e7a8e7e Merge tag 'ath-next-20240605' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
0873cebaed77 dt-bindings: spi: amlogic,a1-spifc: add missing power-domains
fc0262c9385e dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/Five SoC
916caeb909fd dt-bindings: arm-smmu: Fix Qualcomm SC8180X binding
06455c836073 regulator: dt-bindings: describe the PMU module of the WCN7850 package
758bccd66fd2 regulator: dt-bindings: describe the PMU module of the QCA6390 package
0d0bcaff1247 dt-bindings: power: add Amlogic A4 power domains
0ac4dd294c3d dt-bindings: arm: stm32: Add compatible string for DH electronics STM32MP13xx DHCOR DHSBC board
a3fc04d49ba9 dt-bindings: dsa: Rewrite Vitesse VSC73xx in schema
a6d186145f03 ARM: dts: stm32: osd32: move pwr_regulators to common
be0b6f9df78c ARM: dts: stm32: osd32: move usb phy power to common
28f4e3c74eb8 ARM: dts: stm32: Add arm,no-tick-in-suspend to STM32MP15xx STGEN timer
bd837880455e ARM: dts: stm32: add goodix touchscreen on stm32mp135f-dk
de88162fe80f ARM: dts: stm32: enable camera support on stm32mp135f-dk board
94d90e4fc870 ARM: dts: stm32: add DCMIPP pinctrl on STM32MP13x SoC family
6ad12c256e46 arm64: dts: st: add power domain on stm32mp25
d796d2f8b53e arm64: dts: st: add usart6 on stm32mp257f-ev1 board
be0495aab66a arm64: dts: st: add usart6 pinctrl used on stm32mp257f-ev1 board
3bd208725504 arm64: dts: st: add usart nodes on stm32mp25
4235109a0821 arm64: dts: st: enable STM32 access controller for RCC
1d0000e109cf arm64: dts: st: OP-TEE async notif on PPI 15 for stm32mp25
bb7d71f33c44 arm64: dts: qcom: msm8994: Use mboxes properties for APCS
3b951f505b65 arm64: dts: qcom: msm8976: Use mboxes properties for APCS
3835a6aea0d5 arm64: dts: qcom: msm8953: Use mboxes properties for APCS
af228fa17558 arm64: dts: qcom: msm8939: Use mboxes properties for APCS
5b3698f9feb1 arm64: dts: qcom: msm8916: Use mboxes properties for APCS
8f0d3f6c7f96 ARM: dts: qcom: msm8974: Use mboxes properties for APCS
c957952de6cc ASoC: fsl_xcvr: Support i.MX95 platform
c55291f04714 dt-bindings: iio: imu: Add ADIS16545/47 compatibles
ba34a5b1b524 dt-bindings: iio: imu: Add ADIS1657X family devices compatibles
c04814ae95af dt-bindings: iio: imu: Add ADIS16501 compatibles
3f96a8a3d2a2 dt-bindings: iio: adc: ad7380: add support for ad738x-4 4 channels variants
25530465404d dt-bindings: iio: adc: ad7380: add pseudo-differential parts
990f914ae055 dt-bindings: iio: adc: Add binding for AD7380 ADCs
9b6b99823fc3 dt-bindings: iio: dac: add ad35xxr single output variants
82d0cda413d1 dt-bindings: iio: dac: fix ad3552r gain parameter names
25b6dbcca68f dt-bindings: iio: adc: ad7192: Add AD7194 support
c94de4880cbd dt-bindings: iio: adc: Add single-channel property
9b57c6047a72 dt-bindings: iio: adc: ad7192: Add aincom supply
4d536d5adb63 arm64: dts: microchip: sparx5_pcb135: move non-MMIO nodes out of axi
9a8801345c09 arm64: dts: microchip: sparx5_pcb134: move non-MMIO nodes out of axi
2726d3c48fc2 dt-bindings: hwmon: g76x: Add support for g761
4b80d328a733 dt-bindings: hwmon: g762: Convert to yaml schema
53be82f295bc dt-bindings: usb: gpio-sbu-mux: Make 'enable-gpios' optional
f4aa28acacaf dt-bindings: musb: mpfs: add ULPI external vbus support
1c88cc358358 arm64: zynqmp: Add coresight cpu debug support
2a0cd72ede1b ASoC: dt-bindings: tlv320adc3xxx: Fix incorrect GPIO description
2ee0c84effe5 dt-bindings: clock: add Amlogic C3 peripherals clock controller
a8a79f4fdbd3 dt-bindings: clock: add Amlogic C3 SCMI clock controller support
bdd2d54dddef dt-bindings: clock: add Amlogic C3 PLL clock controller
8695e2f5b225 dt-bindings: media: add Maxim MAX96714 GMSL2 Deserializer
b36bb4558636 dt-bindings: media: add Maxim MAX96717 GMSL2 Serializer
fe7a91633ca8 media: dt-bindings: media: Add bindings for IMX283
0d8cb091fcf4 dt-bindings: media: imx258: Add alternate compatible strings
950285832004 dt-bindings: media: imx258: Rename to include vendor prefix
8365d73a2994 dt-bindings: clock: milbeaut: Drop providers and consumers from example
25e271c1fa8b ASoC: dt-bindings: fsl,xcvr: Add compatible string for i.MX95
2734c83b1a1d dt-bindings: phy: qcom,ipq8074-qmp-pcie: Document the IPQ9574 QMP PCIe PHYs
495c9f32f704 dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add sc8180x USB3 compatible
e3e48ececf60 spi: Merge up fixes
948a62dc7c7e dt-bindings: clock: meson: Convert axg-audio-clkc to YAML format
088f8352d3e3 regulator: Merge up fixes
08363c2ef6e3 ASoC: Merge up fixes
53290fa26162 dt-bindings: display: panel: Add WL-355608-A8 panel
fbb4c6c6ff37 dt-bindings: gpio: aspeed,sgpio: Specify #interrupt-cells
34f8d0e8e958 dt-bindings: gpio: aspeed,sgpio: Specify gpio-line-names
ac3a205005a5 dt-bindings: gpio: mpc8xxx: Convert to yaml format
12d87fda8d86 dt-bindings: gpio: pca95xx: Document the TI TCA9535 variant
ea6eb8ddc31b arm64: dts: renesas: r9a08g045: Update fallback string for SDHI nodes
dc400949faa5 arm64: dts: renesas: rzg2l: Update fallback string for SDHI nodes
d628f1622ea4 arm64: dts: renesas: r9a09g011: Update fallback string for SDHI nodes
513988f81ecd arm64: dts: imx8mp-evk: Add MX8-DLVDS-LCD1 display module support
768b346dc37d arm64: dts: imx8qm: Add GPU nodes
72dfdd9d7cbf arm64: dts: imx8qm-mek: add fec2 support
07d20b7d2be0 arm64: dts: imx8qm: add ocopt and fec_mac[0,1]
4206c9e6eb8f arm64: dts: imx8qm-mek: add lsio mu5 and mu6
f9c5ba8e668f arm64: dts: imx8qm-mek: add flexcan support
f68ad7e6aa7c arm64: dts: imx8qm-mek: add cm41_i2c and children devices
5a32399aac7c arm64: dts: imx8qm-mek: add i2c0 and children devices
2caebfc7f2b2 arm64: dts: imx8x: add cm41 subsystem dtsi
72451ba1cd61 arm64: dts: imx8qm-mek: add sai and wm8960 support
e19ca52edf47 arm64: dts: imx8qm-ss-audio: add audio nodes
5a6be8f8b980 arm64: dts: imx8-ss-audio: remove memory-region = <&dsp_reserved>;
b19c79b98650 arm64: dts: imx8dxl-evk: add audio nodes
a6b324ac108f arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number
36ac044b846b arm64: dts: imx8dxl-ss-adma: delete unused node
f20ed0d70eb1 arm64: dts: freescale: tqma8xx: Add partitions subnode to spi-nor
b534f14f944e arm64: dts: freescale: tqma8mq: Add partitions subnode to spi-nor
fed28361018f arm64: dts: freescale: tqma8mpql: Add partitions subnode to spi-nor
1197d8fd9cb9 arm64: dts: freescale: tqma8mqnl: Add partitions subnode to spi-nor
14ee312730b9 arm64: dts: freescale: tqma8mqml: Add partitions subnode to spi-nor
2a468e3c97de arm64: dts: freescale: tqma9352: Add partitions subnode to spi-nor
838e4c9e1246 arm64: dts: mba93xxca: Add USB support
eaf3fcbaeb4b arm64: dts: mba93xxla: Add USB support
a23f0a0b5b71 arm64: dts: imx8mp-beacon-kit: Enable HDMI bridge HPD
7a7edb673114 arm64: dts: qcom: ipq8074: fix GCC node name
6ce61c07406e arm64: dts: qcom: ipq6018: fix GCC node name
7aac39798db6 arm64: dts: qcom: ipq9574: drop #power-domain-cells property of GCC
e4e5b5a82c7c arm64: dts: qcom: ipq5332: drop #power-domain-cells property of GCC
b392c64e38ea arm64: dts: qcom: ipq5018: drop #power-domain-cells property of GCC
d0bb7100e818 arm64: dts: qcom: sm8650-hdk: remove redundant properties
98422122d874 arm64: dts: qcom: sm7225-fairphone-fp4: Enable USB role switching
715dfdedd720 arm64: dts: qcom: pm7250b: Add a TCPM description
06bfb16205dc arm64: dts: qcom: pm7250b: Add node for PMIC VBUS booster
4020035b90ac arm64: dts: qcom: x1e80100: Describe the PCIe 6a resources
3778df0b858d arm64: dts: qcom: x1e80100-qcp: Fix the PHY regulator for PCIe 6a
5f7ada1d0e93 arm64: dts: qcom: x1e80100-crd: Fix the PHY regulator for PCIe 6a
adb13d9a84ba arm64: dts: qcom: x1e80100-qcp: Fix USB PHYs regulators
4469c08c7e9e ARM: dts: qcom: mdm9615: drop #power-domain-cells property of GCC
72165a870c02 ARM: dts: qcom: ipq8064: drop #power-domain-cells property of GCC
0d3aee760764 ARM: dts: qcom: ipq4019: drop #power-domain-cells property of GCC
7fdca61ac704 ARM: dts: qcom: msm8960: drop #power-domain-cells property of GCC
5b7587d02195 ARM: dts: qcom: msm8660: drop #power-domain-cells property of GCC
ea0cfecfe192 ARM: dts: qcom: apq8064: drop #power-domain-cells property of GCC
b144c7547a04 dt-bindings: clock: add schema for qcom,gcc-mdm9615
552ede935747 dt-bindings: clock: qcom,gcc: sort out power-domains support
9a39a855da51 dt-bindings: clock: qcom,gcc-other: rename to qcom,mdm-mdm9607
f49b5f7591dc arm64: dts: qcom: x1e80100-crd: Fix USB PHYs regulators
0552a947eb38 arm64: dts: qcom: sm8550: Remove usb default dr_mode
fe491e7a3b05 arm64: dts: qcom: sm8550: Move usb-role-switch to SoC dtsi
651e142a3047 arm64: dts: qcom: sa8775p: Add IMEM and PIL info region
e7baa041e108 dt-bindings: soc: qcom: add qcom,sa8775p-imem compatible
f28f4cdd346c arm64: dts: qcom: sm8550-samsung-q5q: fix typo
15d2e0ec0c1a arm64: dts: qcom: sm8650: Add Broadcast_AND register in LLCC block
bea94109880d arm64: dts: qcom: sm8550: Add Broadcast_AND register in LLCC block
c3a5436657a4 arm64: dts: qcom: sm8450: Add Broadcast_AND register in LLCC block
054753e165cb dt-bindings: arm: msm: Add llcc Broadcast_AND register
ee63c2cd308d arm64: dts: socfpga: stratix10: add L2 cache info
a54fac66c90a Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
670c3b008dd9 dt-bindings: backlight: Add Texas Instruments LM3509
54ac49fc4e93 dt-bindings: media: rockchip-rga: add rockchip,rk3588-rga
d499d46562e1 dt-bindings: net: ti: icssg_prueth: Add documentation for PA_STATS support
9ad1466248dd dt-bindings: riscv: add Zve32[xf] Zve64[xfd] ISA extension description
f32130672c19 arm64: dts: n5x: socdk: drop unneeded flash address/size-cells
b897b97f6ed2 arm64: dts: agilex: socdk: drop unneeded flash address/size-cells
569fc0f91b31 arm64: dts: stratix10: socdk_nand: drop unneeded flash address/size-cells
a165aed27a7c arm64: dts: stratix10: socdk: drop unneeded flash address/size-cells
c59af1dfef6e dt-bindings: net: wireless: ath11k: Drop "qcom,ipq8074-wcss-pil" from example
aa8c168cc509 arm64: dts: qcom: sa8775p: Add llcc support for the SA8775p platform
006eee87bd9e arm64: dts: qcom: add QCM6490 SHIFTphone 8
b8ad03a5eef6 dt-bindings: cache: qcom,llcc: Add SA8775p description
6cb4f7cb2ef2 dt-bindings: arm: qcom: Add QCM6490 SHIFTphone 8
74a3a8346e22 dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible
4eba3a25a5c9 dt-bindings: hwmon: Add max6639
641b3d453328 dt-bindings: arm: Remove obsolete RTSM DCSCB binding
ea6f99fbbea2 Fix issue when using devm_of_regulator_put_matches and
ecdd9c65f73c ASoC: samsung: midas-audio: Add GPIO-based headset
d23a13743818 arm64: dts: allwinner: Add cache information to the SoC dtsi for H616
738ce71c8824 ASoC: codecs: add support for everest-semi es8311
c78935291b30 ASoC: fsl_mqs: Add i.MX95 platform support
5a472ba815a0 regulator: dt-bindings: rtq2208: Add specified fixed LDO VOUT property
374cffc90434 arm64: dts: qcom: x1e80100-pmics: Add the missing PMICs
345219e3d517 ASoC: dt-bindings: samsung,midas-audio: Add GPIO-based headset jack detection
b1a69658c0b6 ASoC: dt-bindings: samsung,midas-audio: Add headset mic bias supply
d1d083d2d183 dt-bindings: net: xilinx_gmii2rgmii: Add clock support
721a4f83490b Add support for GPIO based CS
c24fc05f09e2 Add optional reset control for Cadence SPI
07d6ce746d18 arm64: dts: qcom: sm8550: Add support for Samsung Galaxy Z Fold5
621429ed7b94 dt-bindings: arm: qcom: Add Samsung Galaxy Z Fold5
b1c524d0564e arm64: dts: qcom: sc7280: Add DT nodes for the TBUs
0758c7314648 arm64: dts: qcom: sdm845: Add DT nodes for the TBUs
5f04fe1b3510 arm64: dts: qcom: sm8450: Add OPP table support to PCIe
0baab1b9e8d6 arm64: dts: qcom: sm8450: Add interconnect path to PCIe node
583c02317b2a arm64: dts: qcom: sa8775p: mark ethernet devices as DMA-coherent
558fbd50739c dt-bindings: clock: Add PCIe pipe related clocks for IPQ9574
b3e9c1704787 arm64: dts: qcom: msm8998: set qcom,no-msa-ready-indicator for wifi
82aa75d2d0b4 dt-bindings: soc: qcom,smp2p: Mark qcom,ipc as deprecated
b2e9d4afec2c arm64: dts: qcom: sdm632-fairphone-fp3: Enable vibrator
4b59323f71de arm64: dts: qcom: pmi632: Add vibrator
f73d2dd03611 arm64: dts: qcom: Split PMU nodes for heterogeneous CPUs
05de7055b89d ASoC: dt-bindings: fsl,mqs: Add i.MX95 platform support
3f5fe41c3804 dt-bindings: PCI: Add StarFive JH7110 PCIe controller
9f4eb7abd49b dt-bindings: PCI: Add PLDA XpressRICH PCIe host common properties
e4f387b89376 arm64: dts: allwinner: Add cache information to the SoC dtsi for A64
3dc204acc142 arm64: dts: allwinner: Correct the model names for Pine64 boards
96ca047c9f12 dt-bindings: arm: sunxi: Correct the descriptions for Pine64 boards
d90a7c829946 arm64: dts: allwinner: Add cache information to the SoC dtsi for H6
0349fc2fc24b ARM: dts: sun50i: Add LRADC node
57a944ffa979 dt-bindings: input: sun4i-lradc-keys: Add H616 compatible
a2700f790e47 ARM: dts: qcom: msm8974: Use proper compatible for APCS syscon
6de30e631104 arm64: dts: qcom: qcs404: Use qcs404-hfpll compatible for hfpll
ef2352333793 ARM: dts: qcom: msm8974-hammerhead: Update gpio hog node name
f3defc076160 arm64: dts: qcom: Add Motorola Moto G 2015 (osprey)
425bf3ac31bd arm64: dts: qcom: Add Motorola Moto E 2015 LTE (surnia)
e16162bb2340 arm64: dts: qcom: Add device tree for Motorola Moto G4 Play (harpia)
64e69bc4d223 arm64: dts: qcom: msm8916-samsung-rossa: Add LIS2HH12 accelerometer
b0d0feffb5fd arm64: dts: qcom: msm8916-samsung-fortuna: Add LSM303C accelerometer/magnetometer
aff7f23bfdeb arm64: dts: qcom: msm8916-samsung-fortuna: Add BMC150 accelerometer/magnetometer
907c57e1ad45 dt-bindings: arm: qcom: Add msm8916 based Motorola devices
29f5eaa19cb7 arm64: dts: qcom: pmi8950: add pwm node
b4b7f8adfdcd arm64: dts: rockchip: add rfkill node for M.2 Key E Bluetooth on Rock 5B
80dc8efa40be dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC
2e5ef051a7e1 dt-bindings: clock: rk3128: Add PCLK_MIPIPHY
704207bba594 dt-bindings: arm: qcom,ids: Add SoC ID for SDM670
9aee1f0d362e dt-bindings: arm: qcom: Add Lenovo Smart Tab M10 (WiFi)
2310f413fe97 arm64: dts: qcom: apq8016: Add Schneider HMIBSC board DTS
2ee38a07919c dt-bindings: arm: qcom: Add Schneider Electric HMIBSC board
658636c1c354 dt-bindings: vendor-prefixes: Add Schneider Electric
2da0ecd43d6c arm64: dts: qcom: msm8996: drop source clock entries from the UFS node
59127bfa0eac arm64: dts: qcom: msm8996: set GCC_UFS_ICE_CORE_CLK freq directly
be511ff0b6fa arm64: dts: qcom: msm8996: specify UFS core_clk frequencies
df6ed6d82d77 arm64: dts: qcom: msm8996: add fastrpc nodes
edcd37b582e3 arm64: dts: qcom: msm8996: add glink-edge nodes
60039957ec16 dt-bindings: cache: Add docs for StarFive Starlink cache controller
907b4719ead1 dt-bindings: display: rockchip,dw-mipi-dsi: Document RK3128 DSI
49f99127d76a arm64: dts: renesas: s4sk: Add aliases for I2C buses
9f88c8d8fbfe arm64: dts: renesas: spider-cpu: Add aliases for I2C buses
486661773d16 arm64: dts: renesas: white-hawk-cpu: Add aliases for I2C buses
7c68dab6e183 arm64: dts: renesas: condor-i: Add I2C EEPROM
5a50fa13c7fc arm64: dts: renesas: gray-hawk-single: Add aliases for I2C buses
8a6f471179e9 ARM: dts: renesas: r9a06g032: Describe GMAC1
3a88ef3c55ee arm64: dts: renesas: white-hawk: ethernet: Describe AVB1 and AVB2
2009b3502a18 arm64: dts: renesas: r8a779g0: Use MDIO node for all AVB devices
96a6be188d49 dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Remove the check from the object
1a9279d1435c Merge tag 'v6.9' into next
e291d457b037 arm64: dts: rockchip: Add Radxa ROCK S0
c44dbfb45c6a dt-bindings: arm: rockchip: Add Radxa ROCK S0
caba73747c92 arm64: dts: rockchip: Update WIFi/BT related nodes on rk3308-rock-pi-s
f93b22435927 arm64: dts: rockchip: Add io-domains to rk3308-rock-pi-s
cebde305971e arm64: dts: rockchip: Add rk3308 IO voltage domains
db11d284200d arm64: dts: rockchip: Add OTP device node for RK3308
703b8eae20ee arm64: dts: rockchip: Add mdio and ethernet-phy nodes to rk3308-rock-pi-s
9c72cd5fa9f9 arm64: dts: rockchip: Add pinctrl for UART0 to rk3308-rock-pi-s
39110e4bec51 arm64: dts: rockchip: Add sdmmc related properties on rk3308-rock-pi-s
1476c5882f8a arm64: dts: rockchip: Add Radxa ZERO 3W/3E
66214a01c03d dt-bindings: arm: rockchip: Add Radxa ZERO 3W/3E
e2824fe5f496 arm64: dts: qcom: add TP-Link Archer AX55 v1
09d7dbde14f4 dt-bindings: arm: qcom: add TP-Link Archer AX55 v1
f6bac4156959 dt-bindings: arm: qcom,ids: Add SoC ID for IPQ5321
f2fe4b8d1c36 ARM: dts: qcom: msm8974: Add Samsung Galaxy Note 3
865710c9af68 dt-bindings: arm: qcom: Add Samsung Galaxy Note 3
783a6b1de0c7 arm64: dts: qcom: sa8775p: Mark PCIe EP controller as cache coherent
3147eded41a8 ARM: dts: qcom: msm8974-hammerhead: Hook up backlight
569566cdfe75 ARM: dts: qcom: Add support for Samsung Galaxy Tab 4 8.0 Wi-Fi
cbb1f30a9645 dt-bindings: arm: qcom: Document samsung,milletwifi device
720778a825a6 dt-bindings: clock: qcom: Add SM7150 VIDEOCC clocks
c8e9ac3c01b1 dt-bindings: clock: qcom: Add SM7150 CAMCC clocks
7454f4f4c660 dt-bindings: clock: qcom: Add SM7150 DISPCC clocks
81db77510082 arm64: dts: qcom: ipq9574: add MDIO bus
7b2edca4e52a arm64: dts: qcom: msm8976: Add WCNSS node
504474a06001 arm64: dts: qcom: msm8976: Add Adreno GPU
bd7e96ebb574 arm64: dts: qcom: msm8976: Add MDSS nodes
3b539c88a63f arm64: dts: qcom: msm8976: Add IOMMU nodes
4d66adf01466 arm64: dts: qcom: sc7280: Add APR nodes for sound
6120cd5b722f arm64: dts: qcom: sm8150-hdk: rename Type-C HS endpoints
b87d0f5208c4 arm64: dts: qcom: x1e80100: describe USB signals properly
5721094b3cc6 arm64: dts: qcom: sc8280xp: describe USB signals properly
e7918b3b507b arm64: dts: qcom: sc8180x: describe USB signals properly
f89efa4697d8 arm64: dts: qcom: sc8180x: switch USB+DP QMP PHYs to new bindings
9ef4eecfea49 arm64: dts: qcom: sm8250: add a link between DWC3 and QMP PHY
596265e5861f arm64: dts: qcom: sm8250: describe HS signals properly
00d6216e2b85 arm64: dts: qcom: sc8180x: correct dispcc clocks
4ea499263f5c dt-bindings: clk: qcom,dispcc-sm8x50: describe additional DP clocks
b5bd1921187b arm64: dts: qcom: msm8998: enable adreno_smmu by default
541bdc922afc arm64: dts: qcom: sdx75: Support for I2C and SPI
90dad263f277 arm64: dts: qcom: Add coresight nodes for SA8775p
0aab77d21b01 arm64: dts: qcom: sdm450: add Lenovo Smart Tab M10 DTS
32fed7bac153 arm64: dts: qcom: sdx75-idp: add SDHCI for SD Card
59d8e8b8e0fa arm64: dts: qcom: sdx75: Add SDHCI node
7ad4b9e2e2ce arm64: dts: qcom: sdm670: add smem region
8efb28a76b8f arm64: dts: qcom: sdm850-lenovo-yoga-c630: add WiFi calibration variant
1b642829941a arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix IPA firmware path
dc6c838dccc5 dt-bindings: gpio: lsi,zevio-gpio: convert to dtschema
59a4a67afc05 arm64: dts: amlogic: ad402: setup thermal-zones
6a236b3c2551 arm64: dts: amlogic: a1: introduce cpu temperature sensor
aa46822a4efd arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
e0b90f42928c dt-bindings: mtd: amlogic,meson-nand: support fields for boot ROM code
18164f2232ed dt-bindings: riscv: Add T-HEAD C908 compatible
ef4a90a4a4ef dts: zynqmp: add properties for TCM in remoteproc
6b7030b490a0 Merge drm/drm-next into drm-misc-next
d4e6dcb8c457 dt-bindings: iio: imu: bmi160: add bmi120
81f1d7e94463 arm64: dts: qcom: sm8650: Enable download mode register write
b16c77bd4b71 arm64: dts: qcom: qru1000-idp: enable USB nodes
711ac96f7b68 arm64: dts: qcom: qdu1000-idp: enable USB nodes
2e24b568f9cc arm64: dts: qcom: qdu1000: Add USB3 and PHY support
144b53af3287 arm64: dts: qcom: msm8996-xiaomi-common: drop excton from the USB PHY
ca2712d8912e arm64: dts: qcom: sda660-ifc6560: document missing USB PHY supplies
b4c3b4033bfd arm64: dts: qcom: sm8450: add power-domain to UFS PHY
03f65e0c4a88 arm64: dts: qcom: sm8350: add power-domain to UFS PHY
bb5098336d8a arm64: dts: qcom: sm8250: add power-domain to UFS PHY
a4d865f9e5f8 arm64: dts: qcom: sm6350: add power-domain to UFS PHY
e3c4ddbc94f0 arm64: dts: qcom: sm6115: add power-domain to UFS PHY
fbdf56e0da1b arm64: dts: qcom: sdm845: add power-domain to UFS PHY
e9f4a0a681f0 arm64: dts: qcom: sc8180x: add power-domain to UFS PHY
c9fe47108e88 arm64: dts: qcom: sc7180: drop extra UFS PHY compat
c681a980e875 arm64: dts: qcom: sa8775p: Add ep pcie1 controller node
b105bc60880d arm64: dts: qcom: sa8775p: Add ep pcie0 controller node
9028d47180b0 arm64: dts: qocm: sdx75: align smem node name with coding style
0767c2ee580c arm64: dts: qcom: sdx75: Add modem SMP2P node
11c8bfb4993d arm64: dts: qcom: sdx75: Add AOSS node
3615cb069ea2 arm64: dts: qcom: sdx75: Add TCSR register space
18205aeef5ab arm64: dts: qcom: sdx75: Add IPCC node
4c34024bfef1 dt-bindings: soc: qcom,aoss-qmp: Document the SDX75 AOSS channel
3cfcc5fe49ff spi: dt-bindings: Document the IBM FSI-attached SPI controller
e6248d4713f3 spi: dt-bindings: brcm,bcm2835-spi: convert to dtschema
df39d67e0ae0 spi: dt-bindings: marvell,mmp2-ssp: Merge PXA SSP into schema
8accece8989c spi: dt-bindings: Add num-cs property for mpfs-spi
488eb460844f spi: dt-bindings: spi-cadence: Add optional reset control
7e8e41cbe258 regulator: st,stm32mp1-pwr-reg: add compatible for STM32MP13
15c27d0f3810 ASoC: dt-bindings: ak4104: convert to dt schema
a8f3fcc457a0 ASoC: es8311: dt-bindings: add everest es8311 codec
2e1b2090ff9e arm64: dts: qcom: sm8650-hdk: enable GPU
3ae690a0a00c ARM: dts: qcom: msm8226-microsoft-common: Enable smbb explicitly
d5228aa0d99d arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add connector for MUIC
6c8106f83555 arm64: dts: qcom: msm8916/39-samsung-a2015: Add PMIC and charger
f766ad851246 arm64: dts: qcom: sm4450: Add cpufreq support
189ba8d32992 arm64: dts: qcom: sc7280: Remove CTS/RTS configuration
084f86949955 arm64: dts: qcom: qcm6490-rb3: Enable gpi-dma and qup node
5552273993e2 arm64: dts: qcom: sm8650: add support for the SM8650-HDK board
cbd32842a3b6 dt-bindings: arm: qcom: Document the HDK8650 board
3c648dd53ba7 arm64: dts: qcom: sm8650: Use "pcie" as the node name instead of "pci"
48a444b645c3 arm64: dts: qcom: sm8650: remove pcie-1-phy-aux-clk and add pcie1_phy pcie1_phy_aux_clk
6da3b5727444 arm64: dts: qcom: sm8550: remove pcie-1-phy-aux-clk and add pcie1_phy pcie1_phy_aux_clk
ebfcc1ae52db arm64: dts: qcom: sm8450: correct pcie1 phy clocks inputs to gcc
d77c7fe78ba9 arm64: dts: qcom: x1e80100: drop wrong usb-role-switch properties
68f587b34987 arm64: dts: qcom: delete wrong usb-role-switch properties
4d55e70cba5c arm64: dts: qcom: sm8650-mtp: connect USB-C SS port to QMP PHY
35810a5b295b arm64: dts: qcom: sm8650: move PHY's orientation-switch to SoC dtsi
47573776a6ca arm64: dts: qcom: sm8550: move PHY's orientation-switch to SoC dtsi
4ea39df7f741 arm64: dts: qcom: sm8450: move PHY's orientation-switch to SoC dtsi
f79cde078c44 arm64: dts: qcom: sm8350: move PHY's orientation-switch to SoC dtsi
3327c7573865 arm64: dts: qcom: sm8650: move USB graph to the SoC dtsi
177082987039 arm64: dts: qcom: sm8550: move USB graph to the SoC dtsi
16f6fa4337d4 arm64: dts: qcom: sm8450: move USB graph to the SoC dtsi
37b237724a9e arm64: dts: qcom: sm8350: move USB graph to the SoC dtsi
f10a66711750 arm64: dts: qcom: sm8150: move USB graph to the SoC dtsi
6f9132424676 arm64: dts: qcom: msm8996: add reset for display subsystem
e690ae398a3d arm64: dts: qcom: sc8180x: Correct PCIe slave ports
1bbb5ac0ca87 arm64: dts: qcom: sc8180x: Fix aoss_qmp node
1fa1f82b6edd arm64: dts: qcom: sc8180x: Drop ipa-virt interconnect
dae22a13972b arm64: dts: qcom: qcs6490-rb3gen2: Enable PMK8350 RTC module
53d71dd2bb8e dt-bindings: display: Reorganize legacy eDP panel bindings
0846180e8d14 dt-bindings: display: panel: Add compatible for IVO t109nw41
9819c979fa01 dt-bindings: display: panel: Add compatible for BOE nv110wum-l60
c7a981ad89ab dt-bindings: display: panel: Add himax hx83102 panel bindings
6854ce1f9562 dt-bindings: display: simple: Add Microtips & Lincolntech Dual-LVDS Panels
d7ae51b5189c dt-bindings: vendor-prefixes: Add lincolntech
ea5f2fcae3c2 dt-bindings: vendor-prefixes: Add microtips
110fc55106a8 dt-bindings: net: wireless: ath10k: add qcom,no-msa-ready-indicator prop

git-subtree-dir: dts/upstream
git-subtree-split: 3347eecf3408998fa7136c8789322cc99646ceab
2024-10-01 12:20:28 -06:00
Tom Rini
667a671cca Merge patch series "env: mmc: fix use of two separate partitions with proper type GUID"
Rasmus Villemoes <rasmus.villemoes@prevas.dk> says:

I always define a disk layout with two separate partitions for the two
copies of the U-Boot environment and, being the one who introduced the
type GUID for such partitions, of course also set those partitions'
type GUID appropriately.

This has worked just fine, but, it turns out, only because I've never
had CONFIG_PARTITION_TYPE_GUID enabled on any of my boards; I've
always just set the offsets of the two partitions via the config
variables CONFIG_ENV_OFFSET(,_REDUND).

I didn't even know that env/mmc.c had learnt to look for the env
partition based on the type GUID, or that that would overrule the
ENV_OFFSET config variables, until I experienced weird random
corruption while doing bringup for an stm32 board, where
PARTITION_TYPE_GUID is automatically set because it is select'ed by
CMD_STM32PROG.

These patches try to fix the code to fit my scheme, while not changing
anything for existing setups that use the two-copies-one-partition
scheme, other than complaining loudly if the system is misconfigured
and avoiding such random corruption of neighbouring partitions.
2024-10-01 08:46:01 -06:00
Rasmus Villemoes
c1131aca9a env: mmc: rework mmc_env_partition_by_guid() to work with two separate partitions
Having two separate partitions for use in a redundant environment
setup works just fine, if one only relies on setting CONFIG_ENV_OFFSET
and CONFIG_ENV_OFFSET_REDUND. However, if CONFIG_PARTITION_TYPE_GUID
is enabled, the current logic in mmc_env_partition_by_guid() means
that only the first partition will ever be considered, and prior to
the previous commit, lead to silent data corruption.

Extend the logic so that, when we are looking for the location for the
second copy of the environment, we keep track of whether we have
already found one matching partition. If a second match is found,
return that, but also modify *copy so that the logic in the caller
will use the last ENV_SIZE bytes of that second partition - in my
case, and I suppose that would be typical, both partitions have been
created with a size of exactly the desired ENV_SIZE.

When only a single matching partition exists, the behaviour is
unchanged: We return that single partition, and *copy is left as-is,
so the logic in the caller will either use the last (copy==0) or
second-to-last (copy==1) ENV_SIZE bytes.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2024-10-01 08:44:39 -06:00
Rasmus Villemoes
9402e3bb8c env: mmc: do not return an offset before the start of the partition
I have an GPT layout containing two partitions with the type GUID for
U-Boot environment:

        partition U-Boot-env-1 {
                offset = 0x1fc000
                size = 0x2000
                partition-type-uuid = "3de21764-95bd-54bd-a5c3-4abe786f38a8"
        }

        partition U-Boot-env-2 {
                offset = 0x1fe000
                size = 0x2000
                partition-type-uuid = "3de21764-95bd-54bd-a5c3-4abe786f38a8"
        }

and have set CONFIG_ENV_OFFSET=0x1fc000,
CONFIG_ENV_OFFSET_REDUND=0x1fe000 and CCONFIG_ENV_SIZE=0x2000.

This usually works just fine, but on an stm32mp, I was seeing weird
behaviour. It turns out that can be tracked down to that board setting
CONFIG_PARTITION_TYPE_GUID, so the logic in mmc.c ends up only finding
the first of the two partitions, but then in the copy=1 case ends up
computing 0x1fa000 as the *val returned (that is, the end of the
partition minus two times the environment size). That is of course
outside the found partition and leads to random corruption of the
partition preceding U-Boot-env-1.

Add a sanity check that the partition found is at least as large as
needed for the "one or two copies from the end of the partition" logic
to at least produce something within that partition. That will also
catch a bug where the partition is too small for even one copy of the
environment.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2024-10-01 08:44:39 -06:00
Rasmus Villemoes
d7c59bfc3b env: mmc: refactor mmc_offset_try_partition()
In preparation for fixing the handling of a the case of redundant
environment defined in two separate partitions with the U-Boot env
GUID, refactor the

  for ()
    if (str)
      ...
  #ifdef CONFIG_FOO
    if (!str)
      ..
  #endif

to

  if (str)
    for ()
  else if (CONFIG_FOO && !str)
    for ()

and put those for loops in separate functions.

No functional change intended, but I did change the direct access of
info.type_guid into using the disk_partition_type_guid() helper, so
that I could avoid the #ifdef and use IS_ENABLED() in the if() statement.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2024-10-01 08:44:39 -06:00
Vitaliy Vasylskyy
50bb758c1e usb: gadget: usbhs: Add Renesas USBHS device driver
Add UDC driver for Renesas USBHS controller found in R-Car Gen3 SoCs.
This is mostly ported from the Linux kernel, with additional porting
glue. The code has been synchronized with 1b4861e32e46 ("Linux 6.9.3")
and cleaned up and ported to DM since the original implementation by
Vitaliy.

Signed-off-by: Vitaliy Vasylskyy <vitaliy.vasylskyy@globallogic.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240908230654.286062-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-01 16:21:29 +02:00
Mattijs Korpershoek
3af5b851b4 bootstd: android: Add U-Boot version to cmdline
When booting into Android fastbootd (a subset of recovery), the default
UI shows the bootloader version in the screen [1].
This is done via the ro.bootloader property which should come from the
bootloader.

Provide the U-Boot version via a kernel commandline argument so that
fastbootd can show it properly on the screen.

[1] https://android.googlesource.com/platform/bootable/recovery/+/refs/heads/main/fastboot/fastboot.cpp#42

Reviewed-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/r/20240912-bootmeth-bootloader-version-v2-1-76d4c0b45024@baylibre.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-01 10:57:05 +02:00
Rasmus Villemoes
4b17845529 dfu: define a callback function for the dfu_alt_info environment variable
I'm trying to use dfu-util for bootstrapping an stm32mp board. It
mostly works fine, but something goes horribly wrong as soon as I make
use of the ability to run arbitrary u-boot shell commands. The shell
commands themselves work fine, but the heuristic "dfu_alt_info may
have changed, we have to reinit" seems to cause the board and/or my
host machine to go into some bad state, and further dfu-util commands
fail.

U-Boot already has a mechanism whereby C code can be told about
changes to specific environment variables. So instead of always doing
re-init, add a hook to the dfu_alt_info variable so that we only do
set dfu_reinit_needed if the commands actually did modify that
variable.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240911133900.1444083-1-rasmus.villemoes@prevas.dk
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-10-01 10:55:09 +02:00
Marek Vasut
6f52feee28 power: regulator: Drop regulators_enable_boot_on/off()
Both regulators_enable_boot_on/off() are unused and superseded by
regulator uclass regulator_post_probe(). Remove both functions.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-09-30 19:19:07 -06:00
Marek Vasut
ba0faba52a power: regulator: Drop regulator_unset()
This function is never called, drop it.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-09-30 19:19:07 -06:00
Marek Vasut
332e0a0148 power: regulator: Convert regulators_enable_boot_on/off() to regulator_post_probe
Turn regulators_enable_boot_on() and regulators_enable_boot_off() into
empty functions. Implement matching functionality in regulator_post_probe()
instead. The regulator_post_probe() is called for all regulators after they
probe, and regulators that have regulator-always-on or regulator-boot-on DT
properties now always probe due to DM_FLAG_PROBE_AFTER_BIND being set on
such regulators in regulator_post_bind().

Finally, fold regulator_unset() functionality into regulator_autoset().

Signed-off-by: Marek Vasut <marex@denx.de>
2024-09-30 19:19:07 -06:00
Marek Vasut
51c4679d2f power: regulator: Trigger probe of regulators which are always-on or boot-on
In case a regulator DT node contains regulator-always-on or regulator-boot-on
property, make sure the regulator gets correctly configured by U-Boot on start
up. Unconditionally probe such regulator drivers. This is a preparatory patch
for introduction of .regulator_post_probe() which would trigger the regulator
configuration.

Parsing of regulator-always-on and regulator-boot-on DT property has been
moved to regulator_post_bind() as the information is required early, the
rest of the DT parsing has been kept in regulator_pre_probe() to avoid
slowing down the boot process.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-09-30 19:19:07 -06:00
Tom Rini
3a0b829efc Merge tag 'v2024.10-rc6' into next
Prepare v2024.10-rc6
2024-09-30 17:48:12 -06:00
Tom Rini
ddbcafeb53 Merge tag 'dm-next-26sep24' of https://source.denx.de/u-boot/custodians/u-boot-dm into next
CI: https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/22430
CI: https://dev.azure.com/simon0972/u-boot/_build/results?buildId=68&view=results
2024-09-26 17:18:34 -06:00
Simon Glass
ac0876c890 binman: Make a start on an iMX8 test
This patch is for Marek, to provide a starting point.

To try it, use 'binman test -T' and see the missing coverage.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:31 +02:00
Simon Glass
a96dda1a70 binman: Allow image_pos to be None when writing symbols
Some images do not have an image_pos value, for example an image which
is part of a compressed section and therefore cannot be accessed
directly.

Handle this case, returning None as the value.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
b73d0bb584 binman: Unwind the end-at-4gb special-case a little
Move the check for this further out, so that base_addr is computed in
Entry.WriteSymbols() rather than at lower levels.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
bce055338e binman: Provide a way to set the symbol base address
The base address of the ELF containing symbols is normally added to
any symbols written, so that the value points to the correct address in
memory when everything is loaded. When the binary resides on disk, a
different offset may be needed, typically 0. Provide a way to specify
this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
01a609930b binman: Add minor improvements to symbol-writing
Add a clarification to the documentation and add a missing comment. Also
update the test so that when it fails it is easier to see what is going
on, rather than having to decode hex strings.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
f2154c30f6 binman: Adjust naming for reading symbols
These functions get the value of a symbol. The reference to ELF files
is confusing since they are reading the position/size of entries, not
ELF symbols. Rename the functions and adjust the comments also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
c8b7d72b43 binman: fit: Refine handling of devicetrees for OF_UPSTREAM
With OF_UPSTREAM the dts files are in an SoC-specific subdirectory,
meaning that the resulting dtb files all end up in a similar
subdirectory.

We don't want the subdirectory name to appear as a node name in the FIT,
so handle this as a special case.

Also the default devicetree may have a directory-name prefix, so handle
that when searching through the available devicetree files.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
6fac8e4883 binman: fit: Set the image_pos attributes only once
The section etype has its own implementation of SetImagePos(), most of
which is not useful since the code is included here. So call
Entry.SetImagePos() which has the only piece of this which we actually
want.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
a1fe67a58c binman: fit: Avoid assuming that a FIT member is a section
Use the more generic variable name 'entry' to avoid confusion.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
52983ff54b binman: Update fdt-list-dir to use the provided directory
Since the files are known to be in the provided directory, use that
instead of requiring it to be added to the list of input directories.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
8498d550c5 binman: Avoid setting the image_pos attribute directly
Two places set this attribute directly. Update them to use the function
provided.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
fb428a63c1 binman: Tidy up comments and pylint warnings in fit
Update this entry type to resolve some pylint warnings and make sure
that functions and members are fully commented.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
be45bb941a binman: Tidy up comments for Entry.GetEntryArgsOrProps()
Improve the comments for this function.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
548e86198b binman: Correct the comment for fdtgrep
This returns stdout, not a CommandResult so update the comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
7d77ad9061 binman: Fix up test coverage for mkeficapsule
Add tests for missing tools to complete the test coverage for this
etype.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
ba134c3531 buildman: Allow skipping the dtc build
For most boards, the device-tree compiler is built in-tree, ignoring the
system version. Add a special option to skip this build. This can be
useful when the system dtc is up-to-date, as it speeds up the build.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Simon Glass
bf984a6a00 buildman: Retry the build for current source
Buildman retries a failed build when processing a branch, but does not
do this when building current source. It is useful to do this retry in
both cases, so add the logic for it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-26 12:40:30 +02:00
Jonas Karlman
4386ab9118 power: regulator: Consistently return -ENOSYS when ops is unimplemented
dev_get_driver_ops() may return NULL when the udevice is invalid.

Move the ops check to top of functions to consistently return -ENOSYS
when ops is unimplemented and prevent trying to access uclass plat data,
also add missing NULL checks to suspend ops.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2024-09-25 08:54:03 -06:00
Jonas Karlman
f417c14d88 power: regulator: Do not call set_suspend_value with -ENODATA
On some boards a PMIC regulator is flagged with regulator-on-in-suspend
and does not define any suspend or max microvolt, e.g. on Radxa ROCK 3A:

  vcc_ddr: DCDC_REG3 {
	regulator-name = "vcc_ddr";
	regulator-always-on;
	regulator-boot-on;
	regulator-initial-mode = <0x2>;

	regulator-state-mem {
		regulator-on-in-suspend;
	};
  };

This result in suspend_uV having the value -ENODATA after probe.

This negative voltage, -ENODATA, gets missinterpreted and result in an
unexpected voltage being set by autoset.

E.g. on Radxa ROCK 3A the vcc_ddr regulator by default have a normal and
suspend voltage value of 0.5v. However, due to this missinterpretation
the suspend voltage end up beind set to 0.5625v instead.

Fix this by skip calling regulator_set_suspend_value() in autoset and
also protect calling set value ops when input value is -ENODATA.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2024-09-25 08:54:03 -06:00
Tom Rini
49e3b574ed Merge tag 'u-boot-imx-next-20240925' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22406

- i.MX93 FEC fixes.
- Always name the generated fitImage u-boot.itb to keep compatibility
  with pr-buildman behavior.
-----------------------
2024-09-25 08:21:40 -06:00
Ye Li
99abeaa648 net: fec_mxc: Skip recv packet process when fec is halted
After FEC is halted by calling fec_halt callback, we should not continue
receiving packet. Otherwise it will process previous pending interrupts
on EIR register and uses wrong rbd index as this has been reset to 0.

The GRA interrupt which is triggered by issuing graceful stop command to
FEC transmitter in fec_halt is processed in this case. It causes wrong
receive buffer descriptors be used by FEC in next time.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-24 16:55:14 -03:00
Peng Fan
94d02f13db net: fec_mxc: Fix clk_ref rate on iMX93
i.MX93 FEC ENET port supports two mode: RGMII and RMII. For RGMII,
there is an internal /2 divider, so the freq needs to set with (*2),
otherwise the speed will not reach 1G and cause communication error
in some network environments. For RMII, the clk path is
ccm -> enet tx_clk pin -> pad loop back to enet, no /2 divider.

So fix for RGMII mode with freq multiplied by 2.

Fixes: 09de565f76 ("net: fec_mxc: support i.MX93")
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-24 16:55:14 -03:00
Marek Vasut
be847fafa7 arm64: dts: imx8m: Always name the generated fitImage u-boot.itb
Maintain backward compatibility with pre-binman u-boot file naming,
the U-Boot fitImage used to be named u-boot.itb before, restore the
file name after binman conversion.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-09-24 16:54:49 -03:00
Tom Rini
2add54d496 Merge patch series "Miscellaneous fixes"
Jerome Forissier <jerome.forissier@linaro.org> says:

Miscellaneous fixes made when developing the lwIP series [1]. They are
posted separately since they make sense on their own. Subsequent
versions of the lwIP series will contain a squashed version of this one.

[1] http://patchwork.ozlabs.org/project/uboot/list/?series=420712&state=%2A&archive=both
2024-09-24 13:41:21 -06:00
Jerome Forissier
1582e438ba cmd: pxe: CMD_PXE implies CMD_TFTPBOOT
cmd/pxe.c (CMD_PXE) calls do_get_tftp() (CMD_TFTPBOOT) therefore add
an "imply" to cmd/Kconfig.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-09-24 13:41:21 -06:00
Jerome Forissier
bd6b3baa5e common: update: UPDATE_COMMON implies CMD_TFTPBOOT
common/update.c (UPDATE_COMMON) depends on tftp_timeout_ms which is
defined in cmd/tftp.c (CMD_TFTPBOOT). Therefore add the appropriate
imply statement to Kconfig.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-09-24 13:41:21 -06:00
Jerome Forissier
d2056e2ed0 test/py: test_efi_loader: add HTTP (wget) test for the EFI loader
Add a test to test_efi_loader.py similar to the TFTP test but for HTTP
with the wget command.

Suggested-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-09-24 13:41:21 -06:00
Jerome Forissier
9f8c10c7ab test/py: test_efi_loader: add missing dependency on cmd_tftpboot
test_efi_helloworld_net() and test_efi_grub_net() depend on
cmd_tftpboot so add the missing annotations.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
a95e99f2df test/py: net_boot: fix comment
If env__pxe_boot_test_skip is not present, it defaults to True not
False. Therefore fix the comment.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
104e890fc0 net: fec_mxc_init(): do not ignore return status of fec_open()
The fec_mxc_init() function currently always returns 0. This does not
allow the callers to detect when for instance the PHY initialization
failed due to the port being unconnected. Fix that by returning the
status of fec_open().

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
0ebbed66b0 net: wget: allow EFI boot
wget followed by bootefi currently fails as follows:

 U-Boot> wget 200000 192.168.0.30:helloworld.efi
 Waiting for Ethernet connection... done.
 HTTP/1.0 200 OK
 Packets received 13, Transfer Successful
 Bytes transferred = 12720 (31b0 hex)
 U-Boot> bootefi 200000
 No UEFI binary known at 200000
 U-Boot>

Fix the problem by adding the missing efi_set_bootdev() call.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
620c02eee1 net: ftgmac100: depend on NET
FTGMAC100 enables drivers/net/ftgmac100.c which uses
PHY_INTERFACE_MODE_NCSI, which is defined only when PHY_NCSI is enabled.
Therefore FTGMAC100 depends on PHY_NCSI. However adding such a
dependency causes a "recursive dependency detected!" message, so
add a dependency on NET instead (PHY_NCSI depends on NET).
All in all, either the stack is NET and FTGMAC100 can be enabled,
or it is NET_LWIP (or NO_NET) and it cannot.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
ec571cd4e2 net: phy: ncsi: depend on NET
PHY_NCSI enables drivers/net/phy/ncsi.c which calls net_loop() and
net_set_timeout_handler(). That's the legacy NET stack (as opposed to
NET_LWIP). Therefore add the dependency to Kconfig.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
719f6f1d9b net: wget: removed unused function wget_success()
wget_success() is used nowhere so remove it.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-09-24 13:41:21 -06:00
Jerome Forissier
fd23e80165 net: fm: call dtsec_init_phy() only when it is defined
dtsec_init_phy() is defined only with MII so add the proper conditional
in the caller code.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
99f90fcb12 arm: omap2: add missing #include <netdev.h>
emac.c implements cpu_eth_init() so it needs to pull the corresponding
header file.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-24 13:41:21 -06:00
Jerome Forissier
effe97d49c at91: rename mem_init() to at91_mem_init()
The AT91-based platforms have a mem_init() function declared in
arch/arm/mach-at91/include/mach/at91_common.h and implemented in various
places. In preparation of the introduction of the lwIP networking library
which also has a global mem_init() function, rename the AT91 one to
at91_mem_init().

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Hari Prasath Gujulan Elango <hari.prasathge@microchip.com>
2024-09-24 13:41:21 -06:00
Jerome Forissier
9aa7e531f6 flash: prefix error codes with FL_
Prefix the flash status codes (ERR_*) with FL_ in order to avoid clashes
with third-party libraries. Case in point: including the lwIP library
header file <lwip/err.h> which defines err_enum_t as an enum with values
being ERR_*.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
2024-09-24 13:41:20 -06:00
Jerome Forissier
0c2d7ad3e0 buildman/toolchain.py: do not set CROSS_COMPILE for sandbox
When building for sandbox, self.cross is empty.

In MakeEnvironment(), CROSS_COMPILE is defined to be self.cross (with
or without a full path), optionally prefixed by the toolchain wrapper
defined in ~/.buildman. This is fine when self.cross is not empty, but
it doesn't make sense when it is:
- Either there is no wrapper and we end up with an empty CROSS_COMPILE
which is the same as not defining it (the host compiler will be used),
- Or there is a wrapper and CROSS_COMPILE will contain only the wrapper
which obviously is not a valid compiler, hence an error.

Test case:

 $ sudo apt install ccache
 $ grep -q toolchain-wrapper ~/.buildman || \
     printf "[toolchain-wrapper]\nwrapper = ccache\n" >>~/.buildman
 $ make mrproper
 $ ./tools/buildman/buildman sandbox_noinst
 $ ./tools/buildman/buildman sandbox_noinst
 Building current source for 1 boards (1 thread, 24 jobs per thread)
    sandbox:  +   sandbox_noinst
 +arch/sandbox/lib/reloc_sandbox_efi.c:10:15: error: operator '==' has no left operand
 +   10 | #if HOST_ARCH == HOST_ARCH_X86_64
 +      |               ^~
[...]

The GetEnvArgs function is modified too, since the VAR_CROSS_COMPILE
case has the same issue.

In tools/buildman/test.py, testGetEnvArgs is extended and
testMakeEnvironment is added. They check the 'arm' and 'sandbox'
toolchains, with and without a wrapper.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-24 13:41:20 -06:00
Tom Rini
8a5ef6effb test/py/tests/test_bootstage.py: Combine stash/unstash tests
When running the bootstage tests currently we get a warning like:
tests/test_bootstage.py::test_bootstage_stash
...PytestReturnNotNoneWarning: Expected None, but tests/test_bootstage.py::test_bootstage_stash returned (37748736, 4096), which will be an error in a future version of pytest.  Did you mean to use `assert` in stead of `return`?

This is because the unstash test will run the stash test and fetch the
addr / size from that. Rework the test to be stash and unstash and then
run the unstash command at the end of the current stash test.

Acked-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Love Kumar <love.kumar@amd.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-09-24 10:10:18 -06:00
Jerome Forissier
ab50741121 spl: ram: hide SPL_RAM_SUPPORT
Make SPL_RAM_SUPPORT a hidden Kconfig symbol, automatically selected
by SPL_RAM_DEVICE or SPL_DFU. Avoids the situation where SPL_RAM_SUPPORT
may be enabled without the other two being enabled, which results in the
following build warning:

common/spl/spl_ram.c:19:14: warning: ‘spl_ram_load_read’ defined but not used [-Wunused-function]
   19 | static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector,
      |              ^~~~~~~~~~~~~~~~~

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-09-24 10:07:36 -06:00
Tom Rini
0aea8264f6 Merge tag 'xilinx-for-v2025.01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next
AMD/Xilinx changes for v2025.01-rc1

kbuild:
- Add rules for automatically applying DT overlays

Microblaze:
- Enable bootscript location via DT

AMD/Xilinx
- Enable SIMPLE_PM_BUS by default

ZynqMP:
- DT updates and alignments with dt-schema
- Call fdtoverlay via make directly
- Enable non-invasive CCI-400 PMU debug
- Disable secure access for boot devices
- Add new zynqmp reboot command

Versal NET:
- Cleanup spi_get_env_dev()

Kria:
- Add bootmenu support

sdhci:
- Do not call device_is_compatible everywhere

net:
- Remove is-internal-pcspma DT flag
2024-09-23 08:11:01 -06:00
Marek Vasut
90cc07fd78 mmc: Poll CD in case cyclic framework is enabled
In case the cyclic framework is enabled, poll the card detect of already
initialized cards and deinitialize them in case they are removed. Since
the card initialization is a longer process and card initialization is
done on first access to an uninitialized card anyway, avoid initializing
newly detected uninitialized cards in the cyclic callback.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-21 11:49:20 -06:00
Tom Rini
d8bbe44456 Merge patch series "lmb: rework logic to validate load address for network commands"
Sughosh Ganu <sughosh.ganu@linaro.org> says:

Rework the logic to verify the load address so that address re-use is
not an issue.
2024-09-20 17:38:16 -06:00
Prasad Kummari
33a4dfc703 cmd: sf: prevent overwriting the reserved memory
Added LMB API to prevent SF command from overwriting reserved
memory areas. The current SPI code does not use LMB APIs for
loading data into memory addresses. To resolve this, LMB APIs
were added to check the load address of an SF command and ensure it
does not overwrite reserved memory addresses. Similar checks are
used in TFTP, serial load, and boot code to prevent overwriting
reserved memory.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Suggested-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-09-20 17:38:16 -06:00
Sughosh Ganu
51ebd514ec wget: rework the logic to validate the load address
Use the lmb_read_check() function to verify if it is safe to use a
region of memory to load data from the wget command. The current logic
checks the amount of free memory available, starting from the 'load
address'. This call fails if the same region of memory has been used
earlier. This used to work earlier as the LMB memory map had a local
scope and was not persistent. Fix this issue by using the
lmb_read_check() call instead which only returns an error in case the
memory region has been marked for not allowing re-use.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Vaishnav Achath <vaishnav.a@ti.com>
2024-09-20 17:37:30 -06:00
Sughosh Ganu
af45c84871 tftp: rework the logic to validate the load address
Use the lmb_read_check() function to verify if it is safe to use a
region of memory to load data from a tftp command. The current logic
checks the amount of free memory available, starting from the 'load
address'. This call fails if the same region of memory has been used
earlier. This used to work earlier as the LMB memory map had a local
scope and was not persistent. Fix this issue by using the
lmb_read_check() call instead which only returns an error in case the
memory region has been marked for not allowing re-use.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Vaishnav Achath <vaishnav.a@ti.com>
2024-09-20 17:37:30 -06:00
John Vicky Vykuntapu
61bf0fa866 xilinx: zynqmp: Add bootmenu support
Popup the bootmenu for 5 sec with default boot options to CC on AMD CCs and
default to SOM on others.
Users can anytime disable the bootmenu by setting the variable
enable_bootmenu=0 in zynqmp_kria.env or setup it up at run time and save
variables to NV memory.

The patch is also fixing issue created by commit 4c73630686 ("cmd:
setexpr: fix no matching string in gsub return empty value") which has
changed return value from setexpr command (Before this commit when
matching string wasn't found command return 1 that's why was possible to
use with if).

Signed-off-by: John Vicky Vykuntapu <johnvicky.vykuntapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6193d95a9c0f3ae319a900b46d6212f7ab16aba4.1726041851.git.michal.simek@amd.com
2024-09-20 15:33:01 +02:00
Michal Simek
f6bcd32760 arm64: zynqmp: Rename ina226-vccint-io-bram-ps nodes
Remove -ps suffix to avoid issues with dt-schema where -ps is allocated in
property-units.yaml for pico seconds.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/88cc8423db6726fb1f3d1ffc0ad0262611c0fed5.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
c4e261638b arm64: zynqmp: Use generic spi@ name in zcu111-revA
DT schema requires to use spi@ name for SPI devices that's why fix it.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/394cc43935d41eea3cfa4e3745edf495009b98d9.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
b2eab11eb7 arm64: zynqmp: Define phy-mode in zcu1275-revB
Add missing required phy-mode property.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/fdd98ebd217e005fedde6aa2175449f7ad5555eb.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
4a276d3297 arm64: zynqmp: Align mini-qspi DT with dt-schema
fixed-clock can't be described on the bus because it is missing reg
property. Also remove additional compatible string for flash. Mini qspi
configuration is used with multiple different flashes that's why describing
only one is not correct but also not required based on DT schema.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0e4721eda8d0f23a9d9f0c15cf887f0bba639cd4.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
50e84a7efd arm64: zynqmp: fix i2c mux bus description for m-a2197 platforms
Uncomment reg property for bus 3 in i2c mux. It is better option than
removing the whole node.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/f28ff644fd2c6bdf5f2e646f6bc0e1ad0c92e8be.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
70642df619 arm64: zynqmp: Fix comment style around gpio line-names
Just fix description to be aligned with other comments.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/938a2658edf68665ef9e34d2584adacfa83dd01f.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
b065b28333 arm64: zynqmp: Fix gpio-line-name size for m-a2197 platforms
There were 3 additional empty strings which shouldn't be there.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/33290fcbcd3ef19cae8ef036dca0f6dcc8080d5b.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
99d240e8fb xilinx: Fix axi and mmc node names in mini configuration
amba is not approved node name for simple-bus that's why use axi instead to
be aligned with other xilinx boards. Node reference is not changed that's
why there is no impact but also mini configuration will never gets to OS
that's why nothing should be affected from OS perspective (paths in /proc/
for example).

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/1b18a69ae47bdcb1a0795af7621d13bfecfc9861.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:41 +02:00
Michal Simek
57c2a6364e arm64: zynqmp: Align gpio hogs with dt-schema
As was done in past for zcu102 append -hog to node name to pass dt-schema.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/112e36e2578c84f30c3c038440405069671d2853.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:40 +02:00
Michal Simek
2455af4c8b arm64: zynqmp: Fix status property for m-a2197 boards
Status property should be missing or okay or disabled but not just disable.
dt-validate is reporting it too.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/bbf62f5911fcb356d1467b3979b4ff3c485124ad.1726219714.git.michal.simek@amd.com
2024-09-20 15:31:40 +02:00
Padmarao Begari
067e029480 board: xilinx: Remove conditional check for Microblaze
U-Boot is not picking boot.scr script address from device tree
rather it's using default address for Microblaze platform,
and it's picking for other platforms. Remove conditional check
for Microblaze platform, so that u-boot pick up boot.scr script
address for all platforms from device tree.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20240913093231.2343528-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-09-20 15:31:19 +02:00
Michal Simek
dc8eeca348 arm64: zynqmp: Define only one revision in zcu106-rev1.0
zcu106 rev1.0 is sw compatible with revA but only one revision should be
listed in compatible string that's why remove revA and keep only rev1.0.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c5214b1a01032b88a394104a57624e0d91a22f29.1726221517.git.michal.simek@amd.com
2024-09-20 15:31:19 +02:00
Padmarao Begari
bde2e728ce mmc: zynq_sdhci: Remove device_is_compatible() function
There are lot of device_is_compatible() present in the driver.
Remove them and replace with a variables "SDHCI_COMPATIBLE_SDHCI_89A"
and "SDHCI_COMPATIBLE_VERSAL_NET_EMMC" with match data.
This change saves the space and reduce the execution time.

Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
Link: https://lore.kernel.org/r/20240913093157.2343476-1-padmarao.begari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-09-20 15:31:19 +02:00
Michal Simek
6161eaf057 net: gem: Remove undocumented is-internal-pcspma dt flag
Generic understanding/consideration is that phy-mode as sgmi means that the
internal PCS(Physical Coding Sublayer) should be enabled by default.
Xilinx GEM implementation allows configuration GEM (gmii mode) + PL PCS PMA
(sgmii mode, Physical Medum Attachment) but in this case phy-mode should be
setup as gmii.
The reason for this assumption is that phy-mode should be described based
on GEM configuration not based on mode coming out of PHY.

Also Linux kernel automatically setting up PCSSEL bit when phy mode is
sgmii without a need to specified additional DT propety.
All our DTSes with sgmii phy mode have this flag enabled that's why there
is no need/reason to just duplicate information.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/2ecdbcc4ce692e2f8b3e7054a2abab35f6c03a69.1726213052.git.michal.simek@amd.com
2024-09-20 15:31:19 +02:00
Michal Simek
8ef2deefc5 xilinx: Enable SIMPLE_PM_BUS
Enable simple-pm-bus driver to handle case where axi bus coming between PS
(fixed) part to PL (programmable) part has own clock or power domain.
That's why enable driver to be ready for this configuration.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/b9f4bb85be502616edf3be2b79e52a0e2c03e821.1725349691.git.michal.simek@amd.com
2024-09-20 08:31:57 +02:00
Prasad Kummari
290385f374 arm64: zynqmp: Remove overlays and add new dtb entries for ZynqMP
Remove device tree overlay (DTBO) entries for the ZynqMP target
from the Makefile. Add new device tree binaries (DTBs) for the
zynqmp-sm-k24-revA and zynqmp-smk-k24-revA configurations.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240906070808.1045991-3-prasad.kummari@amd.com
2024-09-20 08:31:57 +02:00
Prasad Kummari
10de9b5a6a kbuild: cherry-pick kbuild fdtoverlay changes from linux
Linux commits:
15d16d6dadf6 kbuild: Add generic rule to apply fdtoverlay
44f87191d105 kbuild: parameterize the .o part of suffix-search

The Linux commit 15d16d6dadf6 adds a generic rule in Makefile.lib
to automatically apply fdtoverlay, so that each platform doesn't
need to include a complex rule. This also automatically appends
DTC_FLAGS_foo_base += -@ to all base files

The platform's Makefile only needs to have this now:

foo-dtbs := foo_base.dtb foo_overlay1.dtbo foo_overlay2.dtbo
dtb-y := foo.dtb

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240906070808.1045991-2-prasad.kummari@amd.com
2024-09-20 08:31:57 +02:00
Michal Simek
a268b53be0 arm64: zynqmp: Add missing vc7_xin fixed clock to sc-vpk180-revA
Add missing vc7_xin fixed clock as clock input for some clock generators.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/4904f5e0aab8a0b0c2fcc1912be493d4185e6173.1725881047.git.michal.simek@amd.com
2024-09-20 08:31:57 +02:00
Sean Anderson
afe2df3157 arm: zynqmp: Enable non-invasive CCI-400 PMU debug
Set NIDEN, enabling non-invasive debug for the CCI-400 PMU. Otherwise,
the PMU is effectively disabled.

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240905171833.325548-3-sean.anderson@linux.dev
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-09-20 08:31:57 +02:00
Sean Anderson
35142be560 zynqmp: Disable secure access for boot devices
Boot devices (QSPI, MMC, NAND, and Ethernet) use secure access for DMA
by default. As this causes problems when using the SMMU [1], configure
them for normal access instead.

[1] https://support.xilinx.com/s/article/72164

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Link: https://lore.kernel.org/r/20240905171833.325548-2-sean.anderson@linux.dev
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-09-20 08:31:57 +02:00
Prasad Kummari
fc001432e5 arm64: zynqmp: Add u-boot command to boot into recovery image
To boot into the firmware recovery tool, the user currently
needs to press a button on the board while powering the
system up. To simplify this process, a U-Boot command
was added to allow booting directly into the recovery tool.

For example:
ZynqMP> zynqmp reboot <multiboot offset in hex>

Co-develop-by: Prasad Kummari <prasad.kummari@amd.com>
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Co-develop-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20240827115529.2931334-1-prasad.kummari@amd.com
2024-09-20 08:31:56 +02:00
Prasad Kummari
76197b6abb xilinx: versal-net: fix no previous prototype for function warning.
Included the SPI header to resolve the no previous prototypes
for function. Removed unused mode variable.
sparse warnings
warning: no previous prototype for 'spi_get_env_dev'
[-Wmissing-prototypes]
warning: variable 'mode' set but not used
[-Wunused-but-set-variable]

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Link: https://lore.kernel.org/r/20240905115758.999936-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-09-20 08:31:56 +02:00
Venkatesh Yadav Abbarapu
948616894c mtd: spi-nor: scale up timeout for full-chip erase
This patch fixes timeout issues seen on large NOR flash.
For full-chip erase, where we use the SPINOR_OP_CHIP_ERASE (0xc7)
opcode. Use a different timeout for full-chip erase than for other
commands.

 [Ported from Linux kernel commit
                09b6a377687b ("mtd: spi-nor: scale up timeout for
                               full-chip erase") ]

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-09-19 16:42:31 -06:00
Tom Rini
146be6f036 Merge tag 'u-boot-imx-next-20240919' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22363

- Several updates to i.MX9 SOC and i.MX93 EVK.
- Power domain fixes.
- TRDC cleanup and update.
- MAC address layout update.
- Add support for the i.MX9301/9302 variants.
- Add runtime detection of voltage mode.
- Generalize some code for i.MX8M and i.MX9.
- Add support for Comvetia imx6q-lxr board.
2024-09-19 11:26:18 -06:00
Tom Rini
2ac0a302ad Merge tag 'fwu-next-19092024' of https://source.denx.de/u-boot/custodians/u-boot-tpm into next
This PR contains various improvements in the A/B update logic for EFI

- Read both copies of metadata, in case one of the is corrupted
- Check the metadata version against the running firmware to make sure it's
  allowed
- Limit the use of a revert capsule if the board is on a trial state and
  make sure it's not applied if the max counter has expired
2024-09-19 11:25:26 -06:00
Sughosh Ganu
6f933aa963 fwu: print a message if empty capsule checks fail
When dealing with processing of the empty capsule, the capsule gets
applied only when the checks for the empty capsule pass. Print a
message to highlight if empty capsule checks fail, and return an error
value, similar to the normal capsules.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Sughosh Ganu
be281eccb0 fwu: do not allow capsule processing on exceeding Trial Counter threshold
When in Trial State, the platform keeps a count of the number of times
it has booted in the Trial State. Once the threshold of the maximum
allowed count exceeds, the platform reverts to boot from a different
bank on subsequent boot, thus coming out of the Trial State. It is
expected that all the updated images would be accepted or rejected
while the platform is in Trial State. Put in checks so that it is not
possible to apply an empty capsule once the max Trial Count exceeds.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Sughosh Ganu
1049dc7e91 fwu: add dependency checks for selecting FWU metadata version
The FWU code supports both versions of the FWU metadata, i.e. v1 and
v2. A platform can then select one of the two versions through a
config symbol. Put a dependency in the FWU metadata version selection
config symbol to ensure that both versions of the metadata cannot be
enabled.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Sughosh Ganu
03392f1eb8 fwu: check all images for transitioning out of Trial State
The platform transitions out of Trial State into the Regular State
only when all the images in the update bank have been accepted. Check
for this condition before transitioning out of Trial State.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Sughosh Ganu
36811ff827 fwu: v1: do a version check for the metadata
Do a sanity check that the version of the FWU metadata that has been
read aligns with the version enabled in the image. This allows to
indicate an early failure as part of the FWU module initialisation.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Sughosh Ganu
5e9feeed8a fwu: v2: try reading both copies of metadata
In the version 2 of the FWU metadata, the metadata is broken into two
parts, a top-level structure, which provides information on the total
size of the structure among other things. Try reading the primary
partition first, and if that fails, try reading the secondary
partition. This will help in the scenario where the primary metadata
partition has been corrupted, but the secondary partition is intact.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-19 10:52:50 +03:00
Fabio Estevam
effe934e50 imx6q-lxr: Add board support
Add support for the Comvetia i.MX6Q LXR2 board, which is
uses the Phytec PFLA02 SoM.

Based on the original work from Stefano Babic <sbabic@denx.de>.

The Phytec PFLA02 devicetrees are taken from kernel 6.11-rc7.

The imx6q-lxr.dts has been submitted upstream:

https://lore.kernel.org/linux-devicetree/20240913200906.1753458-3-festevam@gmail.com/

After it gets accepted in mainline (most likely in kernel 6.13),
the lxr2 board can then be switched to OF_UPSTREAM and these device trees
can be removed from U-Boot.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-09-19 00:13:20 -03:00
Peng Fan
29b053216f imx93_evk: add back Low drive mode ddr timing file
Add back low drive mode 1866mts ddr timing file, no need
CONFIG_IMX9_LOW_DRIVE_MODE anymore, using runtime selection.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:42 -03:00
Peng Fan
c9efcad237 imx93_evk: Remove CONFIG_IMX9_LOW_DRIVE_MODE and ld defconfig
Remove unused CONFIG_IMX9_LOW_DRIVE_MODE kconfig and
imx93_11x11_evk_ld_defconfig.
Remove the ld timing file.
The LD mode support will be added back with runtime detection later.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:42 -03:00
Peng Fan
1d0d257043 imx93_evk: spl: update pmic settings
1. Use runtime voltage selection for LD/OD/ND mode.
2. According to latest PE/TE report, the voltages of VDD_SOC for
   LD and ND mode need add 50mv margin, so LD voltage is 0.75v->0.8v,
   ND voltage is 0.8v->0.85v.
3. Use TOFF_DEB to differentiate new trimmed pmic and old pmic

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:42 -03:00
Peng Fan
0c2f9cbbb5 imx9: trdc: introduce trdc_mbc_blk_num
Add trdc_mbc_blk_num to get num blks in a MBC mem slot, then drop
the hardcoded value '40' for NIC OCRAM configuration.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
5da0629d13 imx9: trdc: cleanup code
Replace magic number with meaningful macros.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
d0fe80890a imx: Generalize fixup_thermal_trips
i.MX8M and i.MX9 have duplicated fixup_thermal_trips, so move it
to arch/arm/mach-imx/fdt.c to avoid duplicated code.

The critial temperature point for i.MX9 set to "maxc - 5" back to give
some margin.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
5ee773e60b imx93: Add Low performance parts 9302/9301 support
Add support for iMX93 low performance parts 9302 and 9301 which
restrict to low drive voltage only.
The parts run A55 max speed at 900Mhz and M33 at 133Mhz, have NPU
and A55 core1 (9301) disabled.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
98f948ec53 imx9: soc: Disable cpu1 for variants that only has one A55 core
Disale CPU1 for i.MX93 variants that only has one A55 core and update
cooling maps.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
cd9b3de763 imx: Generalize disable_cpu_nodes
disable_cpu_nodes could be reused by i.MX9, so move disable_cpu_nodes
out from mach-imx/imx8m/soc.c to mach-imx/fdt.c and update
disable_cpu_nodes to make it easy to support different socs.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
16fc64b553 imx8m: soc: Drop disable_pmu_cpu_nodes
i.MX8M use PPI for PMU interrupts, there is no reason to update
interrupt-affinity for PMU even interrupt-affinity was wrongly added
to device tree before.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
1b631589d4 imx9: Add 233Mhz DDR PLL frequency
To support 1.866GTS LPDDR4x timing script, need to add 233Mhz freq
to DDR PLL for second mission point at 933MTS. Otherwise DDR training
will fail.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Jacky Bai
ab7566d78b imx9: soc: Mask the wdog reset in src by default on i.mx9
Normally, the wdog will be used for trigger external PMIC reset
through the WDOG_ANY pin. If the PMIC chip has debounce logic for
the reset signal, in some corner case the wdog can NOT trigger
external PMIC reset if the SoC has been reset internal before the
PMIC captures the WDOG_ANY pin reset, so need to keep the WDOG3-5
reset masked in the SRC to let the PMIC to do the reset safely.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
7872a986e5 imx9: clock: Update clock init function and sequence
Since we use SPEED GRADE fuse to set A55 frequency, remove the
set_arm_core_low_drive_clk function which has hard coded frequency.
And adjust clock_init called sequence and split it to early and late
functions.
Set the authen register in early function, because CCF driver checks
NS bit.
Set bus and core clock in late function, because the fuse read and
SoC type/rev depend on ELE.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
46f72ebad9 imx9: soc: Add function to get target voltage mode
Replace the static CONFIG_IMX9_LOW_DRIVE_MODE with runtime target
voltage mode by checking the part's SPEED GRADE fuse.
SPL will configure to highest A55 speed which is indicated by the SPEED
fuse and select corresponding voltage mode.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
3166537ae4 imx9: soc: Print ELE information
The boot image includes Edgelock Enclave(ELE) Firmware. Print the
information out to let user know which version firmware is being used.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
44541def31 imx9: soc: Change second Ethernet MAC fuse layout
The second Ethernet MAC (eQOS) fuse layout is changed since i.MX93 A1
following other i.MX platforms, for example i.MX8MP.

Order for A0:
MAC1_ADDR[15:0]
MAC1_ADDR[31:16]
MAC1_ADDR[47:32]
MAC2_ADDR[47:32]
MAC2_ADDR[15:0]
MAC2_ADDR[31:16]

Order since A1:
MAC1_ADDR[15:0]
MAC1_ADDR[31:16]
MAC1_ADDR[47:32]
MAC2_ADDR[15:0]
MAC2_ADDR[31:16]
MAC2_ADDR[47:32]

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
2f00c3e493 imx9: soc: Change FSB directly access to fuse API
To support OSCCA enabled part which has disabled FSB access from SOC,
change directly read from FSB to use fuse_read API.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
e06ca06207 imx9: soc: Print UID in big endian format for EL2GO
Print UID in big endian format and as one buffer of bytes, so customer
can directly use it for EdgeLock 2GO.

Before:
UID: 0xf6c8ae93 0x0f46b326 0x10d61eb3 0x0583c2d2

Become:
UID: 93aec8f626b3460fb31ed610d2c28305

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Frank Li
0c2fbbaa1c imx9: soc: imx9: soc: Align UID endianness with ROM
ROM use UID[0] and UID[1] as serial number with big endian when usb serial
download.

After update this, uuu(>1.6) can use below command to filter out devices
when multi boards connected.

uuu -ms <serial#> ...

[sudo] uuu -lsusb can list known devices with serial# informaiton.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Ye Li
7ddb2c91c1 imx9: soc: Configure TRDC for M33 TCM access
On OSCCA part, M33 TCM is used for ROM PATCH and protected by ELE ROM.
So after release TRDC, we need to configure TRDC for M33 TCM,
otherwise A55 can't access the TCM.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
2024-09-19 00:12:41 -03:00
Peng Fan
4b34da4322 imx9: soc: wait ssar when power on power domain
SSAR handshake done means power on finished, not ISO done. so correct
the waiting mask.

Fixes: 0256577a83 ("imx: imx9: Add MIX power init")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
2024-09-19 00:12:41 -03:00
Tom Rini
c17805e19b Merge patch series "Fix various bugs"
Simon Glass <sjg@chromium.org> says:

This series includes the patches needed to make make the EFI 'boot' test
work. That test has now been split off into a separate series along with
the EFI patches.

This series fixes these problems:
- sandbox memory-mapping conflict with PCI
- the fix for that causes the mbr test to crash as it sets up pointers
  instead of addresses for its 'mmc' commands
- the mmc and read commands which cast addresses to pointers
- a tricky bug to do with USB keyboard and stdio
- a few other minor things
2024-09-18 13:07:19 -06:00
Simon Glass
017b441b2e test: mbr: Drop a duplicate test
The test currently runs twice as it is declared twice. Unwind this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
6cfc777b96 test: mbr: Use RAM for the buffers
The normal approach with sandbox is to use a fixed memory address in the
RAM, to avoid needing to create a map for transient local variables.

Update this test to use this approach.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
e9d899591c test: mbr: Use a constant for the block size
It isn't that important to factor out constants in tests, but in this
case we have 0x200 and 512 used. The commands don't use the constant
as they use a block count ('1'). It doesn't create more code to use a
constant, so create one.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
705cc13ce7 test: mbr: Unmap the buffers after use
This tests maps some local variables into sandbox's address space. Make
sure to unmap them afterwards.

Note that the normal approach with sandbox is to use a fixed memory
address in the RAM, to avoid needing to create a map for transient local
variables.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 04291ee0ab ("cmd: mbr: Allow 4 MBR partitions without need...")
2024-09-18 13:01:00 -06:00
Simon Glass
7086a894f0 cmd: Fix memory-mapping in cmp command
This unmaps a different address from what was mapped. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
42f5ffb239 read: Tidy up use of map_sysmem() in the read command
Rename the variable to 'ptr' since it is a pointer, not an address. Make
sure to unmap the pointer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
cc6a1b6902 mmc: Use map_sysmem() with buffers in the mmc command
The current implementation casts an address to a pointer. Make it more
sandbox-friendly by using map_sysmem().

Rename the variable to 'ptr' since it is a pointer, not an address.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
f452e8f092 sandbox: Implement reference counting for address mapping
An address may be mapped twice and unmapped twice. Delete the mapping
only when the last user unmaps it.

Fix a missing comment while here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
505b21b607 sandbox: Add some debugging to pci_io
Add a little debugging to this driver. Convert the existing debugging to
use logging.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
e82baf0801 sandbox: Unmap old tags
So far unmapping has not been implemented. This means that if one test
maps a pointer to an address with map_sysmem(), then a second test can
use that same pointer, by mapping the address back to a pointer with
map_to_sysmem(). This is not really desirable, even if it doesn't
cause any problems at the moment.

Implement unmapping, to clean this up.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
58f26a17b4 sandbox: Update cpu to use logging
Use log_debug() instead of including the function name in the string.
Add one more debug for PCI.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
df2c5941a6 sandbox: Change the range used for memory-mapping tags
Sandbox keeps a table of addresses which map to pointers which are
outside its emulated DRAM. The current range from 10000000 conflicts
with the PCI range, meaning that if PCI mapping is on, that particular
address can be decoded by PCI instead of the table.

Fix this by moving the range up to the top of memory. Update the docs
while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
e7474ac689 test: mbr: Adjust test to drop 0x
U-Boot commands typically don't need 0x to specify hex, since they use
hex by default. Adding 0x in this test is confusing since it suggests
that it is necessary. Drop it from the file.

Also use the %#x construct to get the 0x when needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
1c9b37ec03 test: mbr: Adjust test to use lower-case hex
Switch to lower-case hex which is more commonly used in U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
bc624321dc dm: usb: Deal with USB keyboard persisting across tests
Clear any USB-keyboard devices before running a unit test, to avoid
using a stale udevice pointer in stdio. Add a long comment to explain
this situation and why this solution seems best, at least for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
010c449263 usb: Add DEV_FLAGS_DM to stdio for USB keyboard
This device contains a pointer to struct udevice so set the flag
indicating that, just to be tidy.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:01:00 -06:00
Simon Glass
90afded462 log: Add a new log category for the console
Add a new category which covers the console, including the stdio
drivers.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
4048219957 usb: Drop old non-DM code
The driver model deadline for USB was in 2019, so drop the old USB
keyboard code, to avoid needing to deal with the extra code path.

Drop the unnecessary #ifdef around USB_KBD_BOOT_REPORT_SIZE while we
are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
a3fab7d1fb bootstd: Create a function to reset USB
Set up a function for this, since it needs to be used from multiple test
files.

This test file is only used on sandbox, where USB is enabled, so drop
the local declaration of usb_started

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
13a29ec40c scripts: Update pylint.base
There have been quite a few changes in the Python scripts, so update the
pylint baseline.

This was created using:

   make pylint
   cp pylint.cur scripts/pylint.base

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
b6ef3382e8 test/py: Fix some pylint warnings in test_ut.py
Tidy up most of these warnings. Remaining are four of these:

   R0914: Too many local variables

which can only by fixed by splitting things into functions, so that is
left for another time.

Part of this change was done by the flynt tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
ec811ab654 nvmxip: Avoid probing on boot
Devices should be probed when they are used, not before. Drop this
boot-time probing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Simon Glass
48fef88f94 nvmxip: Drop the message on probe
We should not need to announce this device. Drop the message.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-18 13:00:59 -06:00
Marek Vasut
650883a568 cmd: osd: Depend on OSD
The OSD command calls functions from video_osd-uclass.o ,
which is built only when CONFIG_OSD is enabled. Add the
missing dependency into Kconfig.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-09-16 16:46:16 -06:00
Tomas Paukrt
6c0943ff54 cmd: mmc: Allow using partition name in mmc erase command
The mmc erase command currently requires blk# and cnt parameters
which can be obtained using the part start and part size commands
if the entire partition needs to be erased.

Simplify the use of the mmc erase command by allowing the partition
name to be specified directly.

Signed-off-by: Tomas Paukrt <tomaspaukrt@email.cz>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-09-16 16:45:55 -06:00
Marek Vasut
39aa94a5c3 mmc: Hide mmc speed command under mmc command
The mmc speed command configuration option keeps showing up in
Kconfig directly in 'Command line interface'. Move MMC_SPEED_MODE_SET
under CMD_MMC to make it show up alongside the MMC command.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-09-16 16:44:15 -06:00
Tom Rini
773f138632 Merge patch series "Arm: npcm: modify npcm8xx boot setting"
Jim Liu <jim.t90615@gmail.com> says:

Modify npcm8xx new boot design.
Correct memory setting and set gpio default value.
2024-09-16 16:43:53 -06:00
Stanley Chu
3aa2eac4f0 pinctrl: npcm8xx: clear all gpio events
Clear all gpio events to avoid unexpected interrupts
during kernel booting.

Signed-off-by: Stanley Chu <yschu@nuvoton.com>
2024-09-16 16:43:35 -06:00
Jim Liu
28fe59e7d3 configs: arbel_evb: change env offset and boot address
Change env offset and boot address for new design.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-09-16 16:43:35 -06:00
Jim Liu
d01ba96a8c board: arbel: correct the dram bank size
If CONFIG_SYS_MEM_TOP_HIDE is defined, gd->ram_size is reduced by
CONFIG_SYS_MEM_TOP_HIDE. Need to correct the actual ram size in
dram_init_banksize.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-09-16 16:43:35 -06:00
Chia-Wei Wang
fca70d6181 drivers/crypto: aspeed: Add Caliptra SHA ACC support
Aspeed AST27xx SoCs integrate the CPTRA 1.0 secure IP, which
export a SHA accelerator interface for SoC to use.

Note that CPTRA 1.0 supports only SHA384 and SHA512 and this
patch is verified by the 'hash test sha384/sha512' commands.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2024-09-16 16:37:17 -06:00
Tom Rini
19dbc09405 Merge tag 'v2024.10-rc5' into next
Prepare v2024.10-rc5
2024-09-16 14:48:13 -06:00
Tom Rini
979207ed6b Merge patch series "Bump new hush commits and fix old hush test behavior"
Francis Laniel <francis.laniel@amarulasolutions.com> says:

Hi!

With this series, I bumped the new hush to get the latest commits from upstream.

Also, I added back a reverted commit which goal was to fix a bad behavior in
old hush test.
I had to tweak a bit this commit, but everything worked both locally and in the
CI.
2024-09-13 13:44:00 -06:00
Francis Laniel
874be948de cli: modern_hush: Add upstream commits up to 13 July 2024
This commit adds the following hush busybox upstream commits:
23da5c4b716b ("hush: do not exit interactive shell on some redirection errors")
14e28c18ca1a ("hush: fix "exec 3>FILE" aborting if 3 is exactly the next free fd")
6c38d0e9da2d ("hush: avoid duplicate fcntl(F_SETFD, FD_CLOEXEC) during init")
758b21402abc ("hush: detect when terminating "done"/"fi" is missing")
2639f3bc72ac ("hush: set G.ifs sooner (prevents segfault)")

Adding specific ifdef and endif guard was needed for 2639f3bc72ac.

Signed-off-by: Francis Laniel <francis.laniel@amarulasolutions.com>
2024-09-13 13:43:56 -06:00
Ion Agorria
80ef176ac1 test: hush: dollar: fix bugous behavior
The dollar test was merged with bugous console behavior, and
instead of fixing it, this behavior was just workarounded.
This was done to keep compatibility with the existing behavior.

It seems like without the fix the ut_assert_skipline(); didn't clear
console and running ut_assert_skipline(); many times would give always
OK. With e58bafc35f ("lib: membuff: fix readline not returning line in case of overflow")
the line is cleared correctly and next assert fails because now there
is nothing to clean which is correct if we look the this a bit above
the failing assert:

    if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
         /*
          * For some strange reasons, the console is not empty after
          * running above command.
          * So, we reset it to not have side effects for other tests.
          */
         console_record_reset_enable();
    } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
         ut_assert_console_end();
    }

Which further confirms that tests workaround the old problem and now
that problem is fixed we can remove the whole if blocks and simply
place ut_assert_console_end() right after ut_assert_skipline() without
any conditional and will pass green.

So this part of code goes from:
    ut_assert_skipline();
    ut_assert_skipline();

    if (gd->flags & GD_FLG_HUSH_MODERN_PARSER) {
        /* See above comments. */
        console_record_reset_enable();
    } else if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
        ut_assert_console_end();
    }

to become:
    ut_assert_skipline();
    if (gd->flags & GD_FLG_HUSH_OLD_PARSER) {
        ut_assert_skipline();
    }
    ut_assert_console_end();

The if block mentioned above that calls console_record_reset_enable() is
completely removed as fixed by e58bafc35f.

[flaniel: adapt second if]

Signed-off-by: Ion Agorria <ion@agorria.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240105072212.6615-8-clamor95@gmail.com
[mkorpershoek: reworded commit title]
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
[flaniel: remove console_record_reset_enable() if]
Signed-off-by: Francis Laniel <francis.laniel@amarulasolutions.com>
2024-09-13 13:43:56 -06:00
Tom Rini
35394e1ea7 Merge tag 'efi-next-20241024' of https://source.denx.de/u-boot/custodians/u-boot-efi into next
Pull request efi-next-20241024

UEFI:

* Use generated UUIDs in UEFI capsules:
  - efi: define struct efi_guid
  - lib: uuid: add UUID v5 support
  - efi: add a helper to generate dynamic UUIDs
  - doc: uefi: document dynamic UUID generation
  - sandbox: switch to dynamic UUIDs
  - lib: uuid: supporting building as part of host tools
  - include: export uuid.h
  - tools: mkeficapsule: use u-boot UUID library
  - tools: mkeficapsule: support generating dynamic GUIDs
  - test: lib/uuid: add unit tests for dynamic UUIDs
  - test: lib/uuid: add tests for UUID version/variant bits

* Minor code clean-up
  - shorten efi_bootmgr_release_uridp_resource()
  - rename efi_bootmgr_image_return_notify
  - return the correct error in efi_bootmgr_release_uridp()
  - Kconfig: clean up the efi configuration status
  - Use puts() in cout so that console recording works
  - Put back copyright message in helloworld.c
2024-09-13 08:20:25 -06:00
Simon Glass
7de51622a2 efi_loader: Put back copyright message
This was lost in a later commit, so add it back.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-12 17:36:27 +02:00
Simon Glass
250f69274b efi_loader: Use puts() in cout so that console recording works
At present EFI output to the console uses fputs() which bypasses the
console-recording feature. This makes it impossible for tests to check
the output of an EFI app.

There doesn't seem to be any need to do this bypass, so adjust it to
simply use the puts() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-09-12 17:36:24 +02:00
Caleb Connolly
22d3d3cd49 test: lib/uuid: add tests for UUID version/variant bits
Add a test to check the version/variant bits of v4 and v5 UUIDs.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:38 +02:00
Caleb Connolly
26e16a850e test: lib/uuid: add unit tests for dynamic UUIDs
Add some basic unit tests to validate that the UUID generation behaves
as expected. This matches the implementation in efi_loader for sandbox
and a Qualcomm board and should catch any regressions.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:38 +02:00
Caleb Connolly
7558385e48 tools: mkeficapsule: support generating dynamic GUIDs
Add support for generating GUIDs that match those generated internally
by U-Boot for capsule update fw_images when using dynamic UUIDs.

Dynamic UUIDs in U-Boot work by taking a namespace UUID and hashing it
with the board compatible and fw_image name. This feature just provides
a way to determine the UUIDs for a particular board without having to
actually boot U-Boot on it.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
f102e0d08d tools: mkeficapsule: use u-boot UUID library
Replace the use of libuuid with U-Boot's own UUID library. This prepares
us to add support for generating v5 GUIDs.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
58d825fb18 include: export uuid.h
Move this header to include/u-boot/ so that it can be used by external
tools.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
22c48a92cd lib: uuid: supporting building as part of host tools
Adjust the UUID library code so that it can be compiled as part of a
host tool.

This removes the one redundant log_debug() call, as well as the
incorrectly defined LOG_CATEGORY.

In general this is a fairly trivial change, just adjusting includes and
disabling list_guid.

This will be used by a new genguid tool to generate v5 GUIDs that match
those generated by U-Boot at runtime.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
2bf0a87ae3 sandbox: switch to dynamic UUIDs
Migrate sandbox over to generating it's capsule update image GUIDs
dynamically from the namespace and board/image info. Update the
reference and tests to use the new GUIDs.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
3c52951bda doc: uefi: document dynamic UUID generation
Document how platforms can generate GUIDs at runtime rather than
maintaining a list of UUIDs per-board.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
788cf33315 efi: add a helper to generate dynamic UUIDs
Introduce a new helper efi_capsule_update_info_gen_ids() which populates
the capsule update fw images image_type_id field. This allows for
determinstic UUIDs to be used that can scale to a large number of
different boards and board variants without the need to maintain a big
list.

We call this from efi_fill_image_desc_array() to populate the UUIDs
lazily on-demand.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
4c5e1ff31b lib: uuid: add UUID v5 support
Add support for generating version 5 UUIDs, these are determistic and work
by hashing a "namespace" UUID together with some unique data. One intended
usecase is to allow for dynamically generate payload UUIDs for UEFI
capsule updates, so that supported boards can have their own UUIDs
without needing to hardcode them.

In addition, move the common bit twiddling code from gen_ran_uuid into a
separate function and rewrite it not to use clrsetbits (which is not
available when building as part of host tools).

Tests for this are added in an upcoming patch.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Caleb Connolly
3cc3bc08f4 efi: define struct efi_guid
This let's us forward declare efi_guid_t in the UUID code without
pulling in efi.h

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-12 17:35:37 +02:00
Ilias Apalodimas
775f7657ba Kconfig: clean up the efi configuration status
The EFI_LOADER and EFI config options are randomly scattered under lib/
making it cumbersome to navigate and enable options, unless you really
know what you are doing. On top of that the existing options are in
random order instead of a logical one.

So let's move things around a bit and move them under boot/. Present a
generic UEFI entry where people can select Capsules, Protocols,
Services,  and an option to compile U-Boot as an EFI for X86

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-12 17:33:52 +02:00
Ilias Apalodimas
063b4ed07d efi_loader: return the correct error in efi_bootmgr_release_uridp()
There's currently a chance for this function to overwrite an error if
one occurred and the subsequent call to
efi_uninstall_multiple_protocol_interfaces() succedded. Although this
is an EFI event and we can't do much let's at least set and return
the correct error

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-12 17:32:18 +02:00
Ilias Apalodimas
4a1eeccde6 efi_loader: rename efi_bootmgr_image_return_notify
We use this event when returning from an EFI HTTP booted image.
The name is a bit confusing since it suggests we always run it,
rename it to make it clearer

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-12 17:32:18 +02:00
Ilias Apalodimas
292a4a4c7b efi_loader: shorten efi_bootmgr_release_uridp_resource()
We use this function to clean up leftover resources when booting an
EFI HTTP boot image, but the name is unnecessary long.

Shorten it to efi_bootmgr_release_uridp()

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-12 17:32:18 +02:00
Tom Rini
9eb0d731d8 Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv into next
CI result shows no issue:
https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/22315
----------------------------------------------------------------
- Aspeed: Add AST2700 board (Ibex RISC-V core) support
        - Add timer, dram controller, network support
- Sophgo: Add clock controller support for Milk-V Duo
2024-09-12 09:03:40 -06:00
Tom Rini
2857b983f8 Merge tag 'u-boot-imx-next-20240911' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22320

- Improve i.MX8M boot time by enabling MMU and D-cache very early.
- Don't drop the enable bit once set on the i.MX PWM driver.
- Enable DM_RNG so that the kaslr-seed property is set in the dt
  allowing Linux KASLR.
2024-09-11 19:07:53 -06:00
Miquel Raynal
5748aa1e37 pwm: imx: Don't drop the enable bit once set
Changing the duty-cycle should not blindly override (and clear) the
enable (EN) bit if it has already been set. For instance, a PWM
backlight can be enabled and set to a specific intensity using two
operations. The order of these operations should not matter.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-09-11 17:02:36 -03:00
Tim Harvey
4aea3110ab configs: venice: enable DM_RNG
Enable DM_RNG so that the kaslr-seed property is set in the dt allowing
Linux KASLR.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-09-11 16:43:40 -03:00
Marek Vasut
ac9153c74f ARM: imx: Enable MMU and dcache very early on i.MX8M
Enable MMU and caches very early on in the boot process on i.MX8M
in U-Boot proper. This allows board_init_f to run with icache and
dcache enabled, which saves some 700 milliseconds of boot time on
i.MX8M Plus based device.

The 'bootstage report' output is below:

Before:
```
Timer summary in microseconds (8 records):
       Mark    Elapsed  Stage
          0          0  reset
    961,363    961,363  board_init_f
  1,818,874    857,511  board_init_r
  1,921,474    102,600  eth_common_init
  2,013,702     92,228  eth_initialize
  2,015,238      1,536  main_loop

Accumulated time:
                32,775  dm_r
               289,165  dm_f
```

After:
```
Timer summary in microseconds (8 records):
       Mark    Elapsed  Stage
          0          0  reset
    989,466    989,466  board_init_f
  1,179,100    189,634  board_init_r
  1,281,456    102,356  eth_common_init
  1,373,857     92,401  eth_initialize
  1,375,396      1,539  main_loop

Accumulated time:
                12,630  dm_f
                32,635  dm_r
```

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-09-11 16:43:24 -03:00
Chia-Wei Wang
2db018d2ca configs: ibex-ast2700: Enable DRAM and timer driver
Enable the driver support for the DRAM and timer devices.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:04 +08:00
Chia-Wei Wang
a1ad11ce52 ram: ast2700: Add DRAM controller initialization
Add driver for AST2700 to initialize DRAM in SPL.

This patch also refactors the Kconfig dependency of
Aspeed DRAM drivers as some of them are shared among
the file structures of RV and ARM ISAs.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
73f802ac95 board: ibex_ast2700: Add FMC header support
Define and parse the header of the First Mutable Code (FMC)
of AST2700 SoCs at runtime phase.

The FMC header contains the information to load prebuilt binaries
required for device initialization such as DRAM and VGA.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
4b0129e810 timer: Add AST2700 IBEX timer support
Add the driver for the AST2700 Ibex timer, which uses CPU
cycles as the timer count running at 200MHz.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
9efcb10a09 riscv: Add AST2700 SoC initial platform support
AST2700 SoCs integrates a Ibex 32-bits RISC-V core as the boot MCU
for the first stage bootloader execution, namely SPL.

This patch implements the preliminary base to successfully run SPL
on this RV32-based MCU to the console banner message.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
717002f8ff riscv: u-boot-spl.lds: Remove _image_binary_end alignment
The _image_binary_end symbol was aligned to the 8-bytes boundary.
However, the SPL device tree (u-boot-spl.dtb) is concatenated right
after the binary (u-boot-spl-nodtb.bin) wihtout the consideration of
the 8-bytes alignment restriction.

After then, for the SPL_SEPARATE_BSS case, fdtdec_setup() searching
for the DTB by _image_binary_end will return the "Missing DTB" error.
As the real DTB starting point does not align to a 8-bytes address
like _image_binary_end does.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
248292f499 riscv: Make stack size shift configurable
Add prompt for STACK_SIZE_SHIFT to make it configurable.
The default value remains 14 as usual.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Chia-Wei Wang
9c0ed72142 riscv: Make A ISA extension selectable
Make the Atomic (A) ISA extension selectable. Thus CPUs such as
Ibex without the A extension can be supported.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:35:03 +08:00
Jacky Chou
db378b0f18 driver: net: Add Aspeed AST2700 MDIO support
The AST2700 is the 7th generation SoC from Aspeed.
And use the driver to support clause 22 access.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:34:48 +08:00
Jacky Chou
c724f3ed74 net: ftgmac100: Add Aspeed AST2700 support
Add support of Aspeed AST2700 SoC.  AST2700 is based on ARM64 so modify
the DMA address related code to fit both ARM and ARM64.  Besides, the
RMII/RGMII mode control register is moved from SCU500 to MAC50 so
initialize the register in ftgmac100_start correspondingly.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:34:43 +08:00
Jacky Chou
40c45a5797 net: ftgmac100: Modify desc. size to cache line
The TX/RX descriptor size is 16 byte.
When the cache line size is larger than 16 bytes, descriptors
flushed to RAM will flush more than one descriptor.
It is possible that it may mistakenly flush to other descriptor
that has been updated by MAC in RAM.

To avoid this issue, align the descriptors to cache line size.
Only one desc will be flushed or invalidated at a time.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:34:39 +08:00
Jacky Chou
a0f4e43c59 net: ftgmac100: Fixed NC-SI PHY device cannot get
The NC-SI interface does not need the MDIO bus and the
NC-SI PHY device cannot get from dm_eth_phy_connect.
Therefore, use phy_connect directly here.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:34:35 +08:00
Jacky Chou
21d5d5e55b net: ftgmac100: Fixed the cache coherency issues of rx memory
When executing TFTP, the ARP will be replied to after receiving
the ARP. U-boot's ARP routine modifies the data in the receive
packet in response to the ARP packet and then copies it
into the transmit packet.
At this point, the received packet cache is inconsistent.
It is possible that the cache will perform a writeback action to
affect the MAC receiving packets.

Avoid the same problem that occurs in other networking protocols.
In the free_pkt function, ensure cache and memory consistency.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:34:31 +08:00
Kongyang Liu
aa4a03f2e2 riscv: dts: sophgo: Replace device clocks with real clocks.
Replace device clocks with real clocks from the clock controller, and
remove dummy clocks.

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:32:06 +08:00
Kongyang Liu
78c04aea8c configs: milkv_duo: Enable clock controller
Add configs to enable clock controller for Sophgo Milk-V Duo board

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:32:06 +08:00
Kongyang Liu
5f364e072e clk: sophgo: cv1800b: Add clock controller driver for cv1800b SoC
Add clock controller driver for sophgo cv1800b SoC

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:32:06 +08:00
Kongyang Liu
bd2f42230e dt-bindings: clk: import header for clock controller of sophgo CV1800B
Import header file of sophgo cv1800b clock controller from kernel

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Link: https://lore.kernel.org/all/IA1PR20MB4953637E7A6C121D7A700F1CBB8BA@IA1PR20MB4953.namprd20.prod.outlook.com/
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2024-09-11 20:32:06 +08:00
Tom Rini
78d898eec0 Merge patch series "phycore-am62/4: Add more boot sources"
Daniel Schultz <d.schultz@phytec.de> says:

This patch stack extends the phyCORE-AM62x/AM64x U-Boot by following boot
sources:

  - Load U-Boot with USB DFU
  - Load a Linux and initramfs from OSPI/QSPI NOR flash
  - Load a Linux and rootfs from Network

Moreover, it adds required changes to the environment to boot an A/B
system with RAUC and includes some minor fixes.
2024-09-10 14:56:12 -06:00
Daniel Schultz
ef7a3f16a2 configs: phycore_am62x_*_defconfig: Set PHYTEC as Manufacturer
Commit 371b379edb ("configs: Make USB_GADGET_MANUFACTURER
consistent over all PHYTEC boards") made the USB_GADGET_MANUFACTURER
value consistent over all PHYTEC boards.

Update the phyCORE-AM62x defconfigs to make this config consistent
as well.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:02 -06:00
Daniel Schultz
1bd194f1ff configs: phycore_am62x_a53_defconfig: Fix CONFIG_ENV_SIZE
The environment should have a size of 0x20000 instead 0x2000.
Update to have the same environment size for all PHYTEC K3 products.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:02 -06:00
Daniel Schultz
4d197fab9b configs: Add phycore_am62x_r5_usbdfu_defconfig
This config includes the phycore_am62x_r5_defconfig file as well as
the am62x_r5_usbdfu.config fragment. We need another defconfig
because the AM62x has not enough internal SRAM to support all boot
sources. The normal phycore_am62x_r5_defconfig should allow to boot
from MMC and OSPI while this new defconfig allows to boot from USB.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
529ddb6053 configs: phycore_am62x_a53_defconfig: Merge am62x_a53_usbdfu.config
Merge the am62x_a53_usbdfu.config into the phyCORE-AM62x A53 defconfig to
properly support USB DFU boot.

This config was made with the following command:

    make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- \
        phycore_am62x_a53_defconfig am62x_a53_usbdfu.config

However, CONFIG_USB_GADGET_MANUFACTURER was not merged to keep Phytec
as manufacturer.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
8b4a72f513 configs: phycore_am64x_a53_defconfig: Make BOOTCMD generic
The phyCORE-AM64x board code sets an environment variable 'boot'
with the device U-Boot booted from. Use this variable in
CONFIG_BOOTCOMMAND to boot Linux from the same boot device by
default.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
9624465384 configs: phycore_am62x_a53_defconfig: Make BOOTCMD generic
The phyCORE-AM62x board code sets an environment variable 'boot'
with the device U-Boot booted from. Use this variable in
CONFIG_BOOTCOMMAND to boot Linux from the same boot device by
default.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
11b8fa0095 board: phytec: phycore_am64x: Add Network/SPI Boot
Include the boot logic to boot via Network or from a OSPI/QSPI
NOR flash. Moreover, set all required variables to both boot
methods to the environment.

Note: The phyBOARD-Electra AM64x is not able to load the U-Boot
via Network. However, it's still possible to load the kernel.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
a48cbaeecb board: phytec: phycore_am62x: Add Network/SPI Boot
Include the boot logic to boot via Network or from a OSPI/QSPI
NOR flash. Moreover, set all required variables to both boot
methods to the environment.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
92ff68b298 include: env: phytec: Add K3 boot logic for OSPI/QSPI flashes
This boot logic allows to boot a Kernel image, Device-Tree blob
and a initramfs from an external OSPI/QSPI NOR flash.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
d87842cd3d include: net: phytec: Add K3 network boot logic
This boot logic allows to boot a Kernel image, Device-Tree blob
and overlays via tftp/dhcp (configurable with 'net_fetch_cmd').
Additionally, it loads a rootfs via NFS.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
8cafb21215 include: env: phytec: Add raucinit to k3_mmc environment
Initialize the environment for booting an RAUC image when
'doraucboot' is set to 1.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Schultz
80c4f6f9f2 include: env: phytec: k3_mmc: Rename variables
Add a mmc prefix to 'loadimage' and 'loadfdt' because we need
similar variables for other boot sources. This will prevent
name clashes and allows to implement similar boot logic.

Also switch from loadaddr to kernel_addr_r.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Wadim Egorov
d0bc2ac2bd configs: phycore_am64x_a53_defconfig: Enable CONFIG_OF_BOARD_SETUP
Enable CONFIG_OF_BOARD_SETUP to fixup kernel device tree with mtd
partitions.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
2024-09-10 13:16:01 -06:00
Daniel Palmer
c6eba28c46 spl: spl_load: fix comparison between negative error code and unsigned size
read could be a negative error value but size in spl_image is unsigned
so when they are compared read is used as if it's a unsigned value
and if it's negative it'll most likely be bigger than size and the
result will be true and _spl_load() will return 0 to the caller.

This results in the caller to _spl_load() not seeing that an error happened
as it should and continuing as if the load was completed when it might
not have been.

Check if read is negative and return it's value if it is before comparing
against size in spl_image.

Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-10 13:15:13 -06:00
Love Kumar
2349cc00d9 test/py: spi: Set the expected error message
If erase/write/read size is 0 then it throws the mentioned error message
when debug message ie enabled as per 899fb5aa8b ("cmd: sf/nand: Print
and return failure when 0 length is passed"), setting it to None as
debug message is not enabled by default for testing.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-09-10 13:15:06 -06:00
Rasmus Villemoes
52ec7b7c89 treewide: drop redundant "type string" for SYS_SOC and friends
The Kconfig symbols SYS_ARCH, SYS_CPU, SYS_SOC, SYS_VENDOR and
SYS_BOARD are defined in arch/Kconfig as having type string, and most
board files simply amend those definition with suitable

  default "foo"

or

  default "foo" if BAR

stanzas. But some also include a redundant repetition of the type.

Homogenize the code base by removing those lines.

Generated by

  find arch/*/ board -name Kconfig | xargs perl -i -g -pe 's/(config SYS_(ARCH|CPU|SOC|VENDOR|BOARD)\n)\s*string\n/\1/gs'

with the trailing slash in arch/*/ ensuring that arch/Kconfig itself
is not found.

This does not change boards which add a prompt string, e.g.

  string "Board name"

because I think those change the semantics of the symbol into being
user-settable.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-09-10 13:14:59 -06:00
Tom Rini
2def0df217 arm: Remove ethernut5 board
As per the maintainers at egnite GmbH, they are no longer interested in
supporting this board. Go and remove the platform here. Furthermore,
this is the only AT91SAM9XE platform in-tree so remove supporting code
for that as well.

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-09-10 13:12:32 -06:00
Jerome Forissier
278e9ac8aa net: guard call to tftp_start() with IS_ENABLED(CONFIG_CMD_TFTPBOOT)
net_auto_load() cannot call tftp_start() if CONFIG_CMD_TFTPBOOT is
disabled.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
2024-09-10 13:08:24 -06:00
Tom Rini
ca55cf8104 Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-usb into next 2024-09-09 15:54:56 -06:00
Tom Rini
48038bfb4d Merge branch 'qcom-next' of https://gitlab.denx.de/u-boot/custodians/u-boot-snapdragon into next
Various improvements to Snapdragon support:

* Bumped up the pagetable size to handle newer SoCs with much more RAM
* Made memory map parsing more robust, fixing chainloading on
  SM8550/SM8650
* Populate fdt_addr_r with U-Boot's FDT by default, and set $loadaddr to
  prevent
  crashes with some commands which expect it
* Added initial support for SC7280/QCM6490 and the new RB3 Gen 2 board
* Add debug config fragments to enable debug UART on some SoCs.
* Enable RPMh regulators on SM8550/SM8650
* Map the cmd-db memory explicitly since it may not be in the memory map

CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/22255
2024-09-09 10:52:55 -06:00
Marek Vasut
e72e683e36 phy: test: Implement sandbox PHY .set_mode and DM test
Implement trivial extension to the sandbox PHY, which makes it pretend
to support selecting USB Host mode and nothing else. Any other mode is
rejected with -EINVAL. Any submode except for default submode 0 is
rejected with -EOPNOTSUPP . The implementation behaves in this trivial
way to permit easy unit testing using test which is also added in this
commit.

To run the test, use e.g. sandbox64_defconfig and run U-Boot as follows:
$ ./u-boot -Tc 'ut dm phy_setup'

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-09-09 17:18:04 +02:00
Marek Vasut
a1f841a33c phy: rcar: Split init and set_mode operations
The current init operation also sets the PHY into USB host mode.
Split the mode configuration into set_mode callback instead and
implement support for device and OTG modes as well.

The OTG mode performs auto-detection and selects either host or
device mode. In case the OTG mode is configured, submode field
can be used to select full PHY (re)initialization or only mode
auto-detection. The full (re)initialization is only necessary
once, on start up.

Since the OTG mode may enable IRQ generation in the PHY, disable
that IRQ generation in the exit callback again.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-09-09 17:18:04 +02:00
Marek Vasut
35941d3a96 phy: Extend generic_setup_phy() with PHY mode and submode
Extend generic_setup_phy() parameter list with PHY mode and submode and
call generic_phy_set_mode() in generic_setup_phy(), so the generic PHY
setup function can configure the PHY into correct mode before powering
the PHY up.

Update all call sites of generic_setup_phy() as well, all of which are
USB host related, except for DM test which now behaves as a USB host
test.

Note that if the PHY driver does not implement the .set_mode callback,
generic_phy_set_mode() call returns 0 and does not error out, so this
should not break any existing systems.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-09-09 17:18:04 +02:00
Simon Glass
d0f74bd417 buildman: Support building within a Python venv
The Python virtualenv tool sets up a few things in the environment,
putting its path first in the PATH environment variable and setting up
a sys.prefix different from the sys.base_prefix value.

At present buildman puts the toolchain path first in PATH so that it can
be found easily during the build. For sandbox this causes problems since
/usr/bin/gcc (for example) results in '/usr/bin' being prepended to the
PATH variable. As a result, the venv is partially disabled.

The result is that sandbox builds within a venv ignore the venv, e.g.
when looking for packages.

Correct this by detecting the venv and adding the toolchain path after
the venv path.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-09-06 12:45:54 -06:00
Caleb Connolly
41864bb2b6 board/qualcomm: add debug config fragments for some SoCs
We already have some documentation describing how to enable debug UART
for Qualcomm SoCs. However the UART address varies per-soc... Add some
config fragments to enable debug UART for few well supported SoCs.

These can be used like:

$ make qcom_defconfig debug-sdm845.config

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 11:59:51 +02:00
Caleb Connolly
224c90ede4 doc: board/qualcomm: document rb3gen2 building/flashing
The process here is almost identical to the Dragonboard 410c, we've come
full circle!

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 11:59:51 +02:00
Caleb Connolly
adc310c7af configs: add qcm6490_defconfig
Introduce a defconfig for the RB3 Gen 2 and other QCM6490 boards with a
dedicated uefi partition. These can replace EDK2 entirely with U-Boot.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 11:59:51 +02:00
Caleb Connolly
3176b5a2b2 qcom_defconfig: enable SC7280 clocks
Enable clocks on SC7280

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:47 +02:00
Caleb Connolly
2bb90ac29f iommu: qcom-smmu: add sc7280-smmu-500 compatible
This soc doesn't have the generic compatible.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:47 +02:00
Caleb Connolly
39e0e9fd19 dts: qcs6490-rb3gen2-u-boot: USB host mode
Adjust DTS so USB runs in host mode. The type-c port is the only
supported port (since the others need PCIe). Booting from USB is
possible with a powered type-c dock.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:47 +02:00
Caleb Connolly
259dba80dc dts: qcs6490-rb3gen2-u-boot: add override dtsi
For running U-Boot as primary bootloader we must define the memory
layout statically.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:47 +02:00
Caleb Connolly
f50e7be6bb clk/qcom: add initial clock driver for sc7280
We don't actually need any clocks to get UFS up and running, resets are
useful though.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Neil Armstrong
3e36ada42e regulator: qcom-rpmh-regulator: add support for PM8550 & related regulators
Add the PM8550 & related regulators found on the SM8550 and SM8650 platforms.
The tables are imported from the Linux driver.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Neil Armstrong
fdbd2fa400 soc: qcom: rpmh-rsc: add back __tcs_set_trigger() for SM8550/SM8650
The TCS writes has no effect after the removal of the __tcs_set_trigger()
call, obviously it seems the RSC version 3 requires it to complete the transactions.

Fixes: 80c5be164a ("soc: qcom: rpmh-rsc: drop unused multi-threading and non-active TCS support")
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Caleb Connolly <caleb.connolly@linaro.org> # sm8250 rb5
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
a01ed791c9 qcom_defconfig: bump CONFIG_NR_DRAM_BANKS
Some newer boards end up with a bunch of holes in the memory map due to
how Qualcomm's hypervisor and ABL work. The end result is 14+ memory
regions.

Bump CONFIG_NR_DRAM_BANKS to 24 so we can handle these and any future
expansion easily.

Yes, this is ridiculous, but there is no other way.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
a9cbf76e4d soc: qcom: cmd-db: map cmd-db region
On at least SM8650 this region might not be included in the memory map.
Use the new mmu_map_region() helper to map it during bind().

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
75acc51189 soc: qcom: cmd-db: use strncmp() instead of memcmp()
memcmp() can cause aborts on some platforms and generally seems to be
the wrong approach here. Use strncmp() instead which is more correct.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
9f2d456146 armv8: mmu: add a way to map additional regions
In some cases we might want to map some memory region after enabling
caches. Introduce a new helper for this.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
a9337c6651 mach-snapdragon: set loadaddr
This variable is used by default in some commands, set it to the same as
kernel_addr_r.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:46 +02:00
Caleb Connolly
f05b69e1c4 mach-snapdragon: populate fallback FDT
Set the fdt_addr_r environment variable to a region of LMB allocated
memory, and populate it by default with a copy of U-Boots FDT. This will
be used for Linux if no other DT is provided.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
Caleb Connolly
8bf5cadcb4 mach-snapdragon: allocate fastboot buffer dynamically
We don't know at build time where a sensible place for this is, allocate
it at runtime like the other variables.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
Caleb Connolly
3819a6d167 mach-snapdragon: set serial number
In the typical case where we chainload from ABL, the serial number is
available in the DT bootargs. Read it out and set the serial#
environment variable so that it can be used by fastboot.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
Neil Armstrong
d57a6da542 mach-snapdragon: use 1MiB for get_page_table_size()
With 14+ entries in the memory map, we need quite a bit more space for
the page tables.

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
Caleb Connolly
2f99cea71d mach-snapdragon: parse memory ourselves
The generic memory parsing code in U-Boot lacks a few things that we
need on Qualcomm:

1. It sets gd->ram_size and gd->ram_base to represent a single memory
   block.
2. setup_dest_addr() later relocates U-Boot to ram_base + ram_size, the
   end of that first memory block.

This results in all memory beyond U-Boot being unusable in Linux when
booting with EFI.

Since the ranges in the memory node may be out of order, the only way
for us to correctly determine the relocation address for U-Boot is to
parse all memory regions and find the highest valid address.

We can't use fdtdec_setup_memory_banksize() since it stores the result
in gd->bd which is not yet allocated.

Hence, this commit, which implements an optimised parser to read the
memory blocks and store them in the .data section where they will
survive relocation.

We set ram_base and ram_size to describe the entire address space of
memory, with the assumption that the last memory region is big enough
for U-Boot, its DTB, and heap. On all boards tested so far this seems
to be a reasonable assumption.

As a nice side effect, our fdt parsing also winds up being faster since
we avoid the overhead of checking address/size-cells or populating
struct resource. We can safely make these optimisations since we only
support ARM64, and trust the reg property to be populated correctly.

After relocation, we then populate gd->bd->bi_dram with the data we
parsed earlier.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
Caleb Connolly
82efffc38f mach-snapdragon: refactor board_fdt_blob_setup()
If U-Boot has a DTB built in (appended to the image directly) then this
was likely intentional, we should prioritise it over one provided by ABL
(if there was one).

Make this behaviour explicit, and panic if no valid DTB could be found
anywhere. Returning an error is not useful in this case as U-Boot would
just crash later in a more confusing way.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-06 10:47:45 +02:00
John Keeping
a5d990854f regulator: fixed: fix regulator-fixed-clock
For regulator-fixed-clock, the device's private data is never set so in
fixed_clock_regulator_set_enable() is null and the function cannot
complete successfully.

Rename the _plat structure to _priv to better represent its role and set
this as the private data.  As shown by the set_enable() function and by
using the same .of_to_plat hook as regulator-fixed, the platform data is
regulator_common_plat so also set .plat_auto correctly.

Finally, set up the private data by adding a .probe function to look up
the clock and set the member variable.

Fixes: f3b5100aff ("regulator: fixed: add possibility to enable by clock")
Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-05 21:06:17 -06:00
Keerthy
07c12525bb power: regulator: tps6287x: Add driver for TPS6287x step down convertors
Add driver for TPS6287x step down convertors

Data sheet: https://www.ti.com/lit/ds/slvsgc5a/slvsgc5a.pdf

Signed-off-by: Keerthy <j-keerthy@ti.com>
2024-09-05 21:06:17 -06:00
Heinrich Schuchardt
cbaf53fdf1 mmc: consider cd-gpios in Synopsys DesignWare driver
The JH7110 SoC uses a GPIO for card detect.

* In the of_to_plat function check if a cd-gpios definition exists and
  request the GPIO.
* In the getcd function return the GPIO value in this case.

Reported-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-09-05 19:08:14 -06:00
Caleb Connolly
e24c8cc658 mmc: msm_sdhci: program core_vendor_spec
After resetting the host controller, program in the POR val for this
register just like the Linux driver does.

This seems to help with initialization when running U-Boot as the primary
bootloader on some boards.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2024-09-05 19:08:14 -06:00
Venkatesh Yadav Abbarapu
efddda8f03 mmc: Change the frequency to MMC_HS_52 when selecting hs400
Per JESD84-B51 P47, host need to change frequency to <=52MHz
after setting HS_TIMING to 0x1, and host need to set the
8-bit DDR buswidth. Currently setting the frequency to 26MHz
and trying to switch 8-bit DDR buswidth resulting timeouts.

mmc dev 1 0
Select HS400 failed -110
switch to partitions #0, OK
mmc1(part 0) is current device

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
2024-09-05 16:18:39 -06:00
Kuan Lim Lee
fe11aa0b8c mmc: sdhci-cadence: Add support for Cadence sdmmc v6
Cadence SDMMC v6 controller has a lot of changes on initialize
compared to v4 controller. PHY is needed by v6 controller.

Signed-off-by: Kuan Lim Lee <kuanlim.lee@starfivetech.com>
Co-developed-by: Alex Soo <yuklin.soo@starfivetech.com>
Signed-off-by: Wei Liang Lim <weiliang.lim@starfivetech.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2024-09-05 16:18:38 -06:00
Tom Rini
208fc7a9f9 Merge patch series "provide names for emmc hardware partitions"
Tim Harvey <tharvey@gateworks.com> says:

Modern eMMC v4+ devices have multiple hardware partitions per the JEDEC
specification described as:
 Boot Area Partition 1
 Boot Area Partition 2
 RPMB Partition
 General Purpose Partition 1
 General Purpose Partition 2
 General Purpose Partition 3
 General Purpose Partition 4
 User Data Area

These are referenced by fields in the PARTITION_CONFIG register
(Extended CSD Register 179) which is defined as:
bit 7: reserved
bit 6: BOOT_ACK
  0x0: No boot acknowledge sent (default
  0x1: Boot acknowledge sent during boot operation Bit
bit 5:3: BOOT_PARTITION_ENABLE
  0x0: Device not boot enabled (default)
  0x1: Boot Area partition 1 enabled for boot
  0x2: Boot Area partition 2 enabled for boot
  0x3-0x6: Reserved
  0x7: User area enabled for boot
bit 2:0 PARTITION_ACCESS
  0x0: No access to boot partition (default)
  0x1: Boot Area partition 1
  0x2: Boot Area partition 2
  0x3: Replay Protected Memory Block (RPMB)
  0x4: Access to General Purpose partition 1
  0x5: Access to General Purpose partition 2
  0x6: Access to General Purpose partition 3
  0x7: Access to General Purpose partition 4

Note that setting PARTITION_ACCESS to 0x0 results in selecting the User
Data Area partition.

You can see above that the two fields BOOT_PARTITION_ENABLE and
PARTITION_ACCESS do not use the same enumerated values.

U-Boot uses a set of macros to access fields of the PARTITION_CONFIG
register:
EXT_CSD_BOOT_ACK_ENABLE                 (1 << 6)
EXT_CSD_BOOT_PARTITION_ENABLE           (1 << 3)
EXT_CSD_PARTITION_ACCESS_ENABLE         (1 << 0)
EXT_CSD_PARTITION_ACCESS_DISABLE        (0 << 0)

EXT_CSD_BOOT_ACK(x)             (x << 6)
EXT_CSD_BOOT_PART_NUM(x)        (x << 3)
EXT_CSD_PARTITION_ACCESS(x)     (x << 0)

EXT_CSD_EXTRACT_BOOT_ACK(x) (((x) >> 6) & 0x1)
EXT_CSD_EXTRACT_BOOT_PART(x) (((x) >> 3) & 0x7)
EXT_CSD_EXTRACT_PARTITION_ACCESS(x) ((x) & 0x7)

There are various places in U-Boot where the BOOT_PARTITION_ENABLE field
is accessed via EXT_CSD_EXTRACT_PARTITION_ACCESS and converted to a
hardware partition consistent with the definition of the
PARTITION_ACCESS field used by the various mmc_switch incarnations.

To add some sanity to the distinction between BOOT_PARTITION_ENABLE
(used to specify the active device on power-cycle) and PARTITION_ACCESS
(used to switch between hardware partitions) create two enumerated types
and use them wherever struct mmc * part_config is used or the above
macros are used.

Additionally provide arrays of the field names and allow those to be
used in the 'mmc partconf' command and in board support files.

The first patch adds enumerated types and makes use of them which
represents no compiled code change.

The 2nd patch adds the array of names and uses them in the 'mmc
partconf' command.

The 3rd patch uses the array of hardware partition names in a board
support file to show what emmc hardware partition U-Boot is being loaded
from.
2024-09-05 12:13:24 -06:00
Tim Harvey
1f239b6feb venice: show emmc boot hardware partition
To aid in understanding what emmc hardware partition is being
used to boot on power-up, display the hardware partition name in the
SPL.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-09-05 12:12:51 -06:00
Tim Harvey
150481e5ba mmc: allow use of hardware partition names for mmc partconf
eMMC v4+ devices have hardware partitions that are accessed via the
PARTITION_CONFIG (Extended CSD Register 179) PARTITION_ACCESS
and BOOT_PARTITION_ENABLE fields defined as:
bit 5:3: BOOT_PARTITION_ENABLE
  0x0: Device not boot enabled (default)
  0x1: Boot Area partition 1 enabled for boot
  0x2: Boot Area partition 2 enabled for boot
  0x3-0x6: Reserved
  0x7: User area enabled for boot
bit 2:0 PARTITION_ACCESS
  0x0: No access to boot partition (default)
  0x1: Boot Area partition 1
  0x2: Boot Area partition 2
  0x3: Replay Protected Memory Block (RPMB)
  0x4: Access to General Purpose partition 1
  0x5: Access to General Purpose partition 2
  0x6: Access to General Purpose partition 3
  0x7: Access to General Purpose partition 4

Add char arrays to provide names for these values.

Use these names which displaying or setting the PARTITION_CONFIG
register via the 'mmc partconf' command.

Before:
u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x2
PARTITION_ACCESS: 0x0

After:
u-boot=> mmc partconf 2 1 1 0 && mmc partconf 2
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x1 (boot0)
PARTITION_ACCESS: 0x0 (user)
u-boot=> mmc partconf 2 1 boot1 0 && mmc partconf 2
EXT_CSD[179], PARTITION_CONFIG:
BOOT_ACK: 0x1
BOOT_PARTITION_ENABLE: 0x2 (boot1)
PARTITION_ACCESS: 0x0 (user)

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-09-05 12:12:51 -06:00
Tim Harvey
8746aa0f5d mmc: use an enumerated type to represent PARTITION_CONFIG fields
Modern eMMC v4+ devices have multiple hardware partitions per the JEDEC
specification described as:
  Boot Area Partition 1
  Boot Area Partition 2
  RPMB Partition
  General Purpose Partition 1
  General Purpose Partition 2
  General Purpose Partition 3
  General Purpose Partition 4
  User Data Area

These are referenced by fields in the PARTITION_CONFIG register
(Extended CSD Register 179) which is defined as:
bit 7: reserved
bit 6: BOOT_ACK
  0x0: No boot acknowledge sent (default
  0x1: Boot acknowledge sent during boot operation Bit
bit 5:3: BOOT_PARTITION_ENABLE
  0x0: Device not boot enabled (default)
  0x1: Boot Area partition 1 enabled for boot
  0x2: Boot Area partition 2 enabled for boot
  0x3-0x6: Reserved
  0x7: User area enabled for boot
bit 2:0 PARTITION_ACCESS
  0x0: No access to boot partition (default)
  0x1: Boot Area partition 1
  0x2: Boot Area partition 2
  0x3: Replay Protected Memory Block (RPMB)
  0x4: Access to General Purpose partition 1
  0x5: Access to General Purpose partition 2
  0x6: Access to General Purpose partition 3
  0x7: Access to General Purpose partition 4

Note that setting PARTITION_ACCESS to 0x0 results in selecting the User
Data Area partition.

You can see above that the two fields BOOT_PARTITION_ENABLE and
PARTITION_ACCESS do not use the same enumerated values.

U-Boot uses a set of macros to access fields of the PARTITION_CONFIG
register:

There are various places in U-Boot where the BOOT_PARTITION_ENABLE field
is accessed via EXT_CSD_EXTRACT_PARTITION_ACCESS and converted to a
hardware partition consistent with the definition of the
PARTITION_ACCESS field which is also the value used to specify the
hardware partition of the various mmc_switch incarnations.

To add some sanity to the distinction between BOOT_PARTITION_ENABLE
(used to specify the active device on power-cycle) and PARTITION_ACCESS
(used to switch between hardware partitions) create two enumerated types
and use them wherever struct mmc * part_config is used or the above
macros are used.

This represents no code changes.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2024-09-05 12:12:51 -06:00
Tom Rini
360aaddd9c Merge patch series "Make LMB memory map global and persistent"
Sughosh Ganu <sughosh.ganu@linaro.org> says:

This is a follow-up from an earlier RFC series [1] for making the LMB
and EFI memory allocations work together. This is a non-rfc version
with only the LMB part of the patches, for making the LMB memory map
global and persistent.

This is part one of a set of patches which aim to have the LMB and EFI
memory allocations work together. This requires making the LMB memory
map global and persistent, instead of having local, caller specific
maps. This is being done keeping in mind the usage of LMB memory by
platforms where the same memory region can be used to load multiple
different images. What is not allowed is to overwrite memory that has
been allocated by the other module, currently the EFI memory
module. This is being achieved by introducing a new flag,
LMB_NOOVERWRITE, which represents memory which cannot be re-requested
once allocated.

The data structures (alloced lists) required for maintaining the LMB
map are initialised during board init. The LMB module is enabled by
default for the main U-Boot image, while it needs to be enabled for
SPL. This version also uses a stack implementation, as suggested by
Simon Glass to temporarily store the lmb structure instance which is
used during normal operation when running lmb tests. This does away
with the need to run the lmb tests separately.

The tests have been tweaked where needed because of these changes.

The second part of the patches, to be sent subsequently, would work on
having the EFI allocations work with the LMB API's.

[1] - https://lore.kernel.org/u-boot/20240704073544.670249-1-sughosh.ganu@linaro.org/T/#t

Notes:

1) These patches are on next, as the alist patches have been
   applied to that branch.
2) I have tested the boot on the ST DK2 board, but it would be good to
   get a T-b/R-b from the ST maintainers.
3) It will be good to test these changes on a PowerPC platform
   (ideally an 85xx, as I do not have one).
2024-09-03 14:09:30 -06:00
Sughosh Ganu
f8ffc6f3cc lmb: add logic to print lmb flag strings
Instead of printing the LMB flags as numerical values, print them as
strings. This makes it easier to understand what flags are associated
with the lmb region. Also make corresponding changes to the bdinfo
command's test code.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:51 -06:00
Sughosh Ganu
8242f14a3e stm32mp: compute ram_top based on the optee base address
The value of ram_top address currently gets computed in an indirect
manner. The boot_fdt_add_mem_rsv_regions() function gets called first
to reserve the memory region occupied by OP-TEE in the LMB memory
map. This is followed by a call to the lmb_alloc() API, which returns
an address which is below the OP-TEE base address. This address is the
value of ram_top returned by the board_get_usable_ram_top() function.

This has now changed, as the LMB memory map, which is no longer local,
gets set up after relocation. Get the OP-TEE base address by reading
the device tree, and set the ram_top from this value.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
5fe9e0deab stm32mp: allow calling optee_get_reserved_memory() from U-Boot
The optee_get_reserved_memory() function returns the OP-TEE base
address and size. The function gets these values from the
FDT. Currently, this function is defined only to be called in the SPL
phase. Move this function to a place where it can be invoked from the
main U-Boot phase, where it will be used to compute the ram_top
address.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
cef34baad1 zynq: lmb: do not add to lmb map before relocation
The LMB memory is typically not needed very early in the platform's
boot. Do not add memory to the LMB map before relocation. Reservation
of common areas and adding of memory is done after relocation.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
727c4348d3 sandbox: iommu: remove lmb allocation in the driver
The sandbox iommu driver uses the LMB module to allocate a particular
range of memory for the device virtual address(DVA). This used to work
earlier since the LMB memory map was caller specific and not
global. But with the change to make the LMB allocations global and
persistent, adding this memory range has other side effects. On the
other hand, the sandbox iommu test expects to see this particular
value of the DVA. Use the DVA address directly, instead of mapping it
in the LMB memory map, and then have it allocated.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
5c146457c7 sandbox: spl: enable lmb config for SPL
Enable the LMB config in SPL. This helps in testing the LMB code in
SPL on sandbox.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
d4ab7cde0c spl: sandbox: initialise the ram banksize in spl
Initialise the ram bank information for sandbox in SPL. The ram bank
information gets initialised as part of the SPL initialisation
sequence in board_init_r(), which is then used for adding available
memory to the LMB memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
fa6333afdf spl: call spl_board_init() at the end of the spl init sequence
The spl_board_init() function on sandbox invokes the unit
tests. Invoking the tests should be done once the rest of the system
has been initialised. Call the spl_board_init() function at the very
end, once the rest of the initilisation functions have been called,
including the setting up of the LMB memory map.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
9b19e207a9 sandbox: move the TCG event log to the start of ram memory
The TCG event log buffer is being set at the end of ram memory. This
region of memory is to be reserved as LMB_NOMAP memory in the LMB
memory map. The current location of this buffer overlaps with the
memory region reserved for the U-Boot image, which is at the top of
the usable memory. This worked earlier as the LMB memory map was not
global but caller specific, but fails now because of the overlap.

Move the TCG event log buffer to the start of the ram memory region
instead. Move the location of the early trace buffer and the load
buffer for U-Boot(spl boot) accordingly.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
b58caada60 lmb: remove the unused board_lmb_reserve() function
The board_lmb_reserve() function is not being used, and currently
there is only an empty weak function defined. Remove this unused
function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
6534d26ee9 lmb: do away with arch_lmb_reserve()
All of the current definitions of arch_lmb_reserve() are doing the
same thing -- reserve the region of memory occupied by U-Boot,
starting from the current stack address to the ram_top. Introduce a
function lmb_reserve_uboot_region() which does this, and do away with
the arch_lmb_reserve() function.

Instead of using the current value of stack pointer for starting the
reserved region, have a fixed value, considering the stack size config
value.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
17f695dd1b ppc: lmb: move arch specific lmb reservations to arch_misc_init()
All the current function definitions of arch_lmb_reserve() are doing
the same thing -- reserve the U-Boot memory region. The powerpc(ppc)
architecture, in addition, is making some LMB reservations for the
bootm related image loading. Move these ppc specific reservations to
the arch_misc_init() function. This allows to move the U-Boot memory
region reservation to a different function, and remove
arch_lmb_reserve() in a subsequent commit.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
b6400de7e0 lmb: init: initialise the lmb data structures during board init
The memory map maintained by the LMB module is now persistent and
global. This memory map is being maintained through the alloced list
structure which can be extended at runtime -- there is one list for
the available memory, and one for the used memory. Allocate and
initialise these lists during the board init.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
c2c50d52d9 lmb: bootm: remove superfluous lmb stub functions
Remove a couple of superfluous LMB stub functions, and instead put a
check for calling the lmb_reserve() function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
30ffdd61de lmb: remove lmb_init_and_reserve_range() function
With the move to make the LMB allocations persistent and the common
memory regions being reserved during board init, there is no need for
an explicit reservation of a memory range. Remove the
lmb_init_and_reserve_range() function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
c7ce26cb36 lmb: remove the lmb_init_and_reserve() function
With the changes to make the LMB reservations persistent, the common
memory regions are being added during board init. Remove the
now superfluous lmb_init_and_reserve() function.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
f4fb154f0a lmb: reserve common areas during board init
The LMB module provides API's for allocating and reserving chunks of
memory which is then typically used for things like loading images for
booting. Reserve the portion of memory that is occupied by the U-Boot
image itself, and other parts of memory that might have been marked as
reserved in the board's DTB. When executing in SPL, reserve the
sections that get relocated to the ram memory, the stack and
the global data structure and also the bss.

Mark these regions of memory with the LMB_NOOVERWRITE flag to indicate
that these regions cannot be re-requested or overwritten.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
8a9fc30f16 lmb: introduce a function to add memory to the lmb memory map
Introduce a function lmb_add_memory() to add available memory to the
LMB memory map. Call this function during board init once the LMB data
structures have been initialised.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
6942bdb42a lmb: allow lmb module to be used in SPL
With the introduction of separate config symbols for the SPL phase of
U-Boot, the condition checks need to be tweaked so that platforms that
enable the LMB module in SPL are also able to call the LMB API's. Use
the appropriate condition checks to achieve this.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
8281fdeec1 lmb: config: add lmb config symbols for SPL
Add separate config symbols for enabling the LMB module for the SPL
phase. The LMB module implementation now relies on alloced list data
structure which requires heap area to be present. Add specific config
symbol for the SPL phase of U-Boot so that this can be enabled on
platforms which support a heap in SPL.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
e32bdd91f2 lmb: remove config symbols used for lmb region count
The LMB memory maps are now being maintained through a couple of
alloced lists, one for the available(added) memory, and one for the
used memory. These lists are not static arrays but can be extended at
runtime. Remove the config symbols which were being used to define the
size of these lists with the earlier implementation of static arrays.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
5e9553cc72 lmb: allow for resizing lmb regions
Allow for resizing of LMB regions if the region attributes match. The
current code returns a failure status on detecting an overlapping
address. This worked up until now since the LMB calls were not
persistent and global -- the LMB memory map was specific and private
to a given caller of the LMB API's.

With the change in the LMB code to make the LMB reservations
persistent, there needs to be a check on whether the memory region can
be resized, and then do it if so. To distinguish between memory that
cannot be resized, add a new flag, LMB_NOOVERWRITE. Reserving a region
of memory with this attribute would indicate that the region cannot be
resized.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
2024-09-03 14:08:50 -06:00
Sughosh Ganu
ed17a33fed lmb: make LMB memory map persistent and global
The current LMB API's for allocating and reserving memory use a
per-caller based memory view. Memory allocated by a caller can then be
overwritten by another caller. Make these allocations and reservations
persistent using the alloced list data structure.

Two alloced lists are declared -- one for the available(free) memory,
and one for the used memory. Once full, the list can then be extended
at runtime.

[sjg: Use a stack to store pointer of lmb struct when running lmb tests]

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
[sjg: Optimise the logic to add a region in lmb_add_region_flags()]
2024-09-03 14:08:50 -06:00
Sughosh Ganu
a368850ae2 lmb: use the BIT macro for lmb flags
Use the BIT macro for assigning values to the LMB flags instead of
assigning random values to them.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2024-09-03 14:08:49 -06:00
Sughosh Ganu
3d679aed62 lmb: staticize __lmb_alloc_base()
The __lmb_alloc_base() function is only called from within the lmb
module. Moreover, the lmb_alloc() and lmb_alloc_base() API's are good
enough for the allocation API calls. Make the __lmb_alloc_base()
function static.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:49 -06:00
Sughosh Ganu
f506ca00d6 lmb: remove the unused lmb_is_reserved() function
The lmb_is_reserved() API is not used. There is another API,
lmb_is_reserved_flags() which can be used to check if a particular
memory region is reserved. Remove the unused API.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:49 -06:00
Sughosh Ganu
c4eced2ec0 alist: add a helper to check if the list is full
Add a helper function to check if the alist is full. This can then be
used to extend the alist.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 14:08:49 -06:00
Tom Rini
2c832abc73 Merge patch series "net: dwc_eth_qos: Add glue driver for Intel MAC"
Philip Oberfichtner <pro@denx.de> says:

This patch series implements the dwc_eth_qos glue driver for Intel SOCs.
Before doing that, a few general adaptions to the dwc_eth_qos.c main
driver are required. Most notably, the preparation for PCI based driver
instances, which do not necessarily use a device tree.
2024-09-03 09:12:06 -06:00
Philip Oberfichtner
49d8fe07f9 net: dwc_eth_qos: Add glue driver for Intel MAC
Add dwc_eth_qos glue driver for the Intel Elkhart-Lake SOC.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
2024-09-03 09:12:00 -06:00
Philip Oberfichtner
2689b14ef3 net: dwc_eth_qos: Implement bind() for PCI devices
PCI devices do not necessarily use a device tree. Implement a bind()
function to assign unique device names in that case.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
2024-09-03 09:12:00 -06:00
Philip Oberfichtner
beabef6511 net: dwc_eth_qos: Adapt probe() for PCI devices
PCI devices do not necessarily use a device tree. In that case, the
driver currently fails to find eqos->config and eqos->regs.

This commit factors out the respective functionality. Device tree usage
remains default, but board specific implementations will be possible as
well.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
2024-09-03 09:12:00 -06:00
Philip Oberfichtner
14b237a8bd net: dwc_eth_qos: Fix header to be self-contained
Before this commit, usage of this header relied on a specific include
order. Fix it by including all dependencies.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-09-03 09:12:00 -06:00
Philip Oberfichtner
3eb7f46a3c x86: provide mb() macro
Implement a x86 memory barrier mb(). Furthermore, remove the previously
used mfence() function, which does the same thing.

The mb() macro is now equivalent to Linux (v6.9):
linux/arch/x86/include/asm/barrier.h

Signed-off-by: Philip Oberfichtner <pro@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-09-03 09:12:00 -06:00
Tom Rini
11beb9fe0f Merge tag 'u-boot-imx-next-20240902' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22211

- Enable SPI NOR flash support and MTD partitions for phycore_imx8mp.
- Convert mx6slevk to OF_UPSTREAM and watchdog DM.
- Cleanup some mx5/mx6 USB options.
- Make PLL settings configurable at board level.
- Set CONFIG_SPL_LOAD_FIT_ADDRESS for verdin-imx8m/p.
- Make the mxc-gpio reading state of GPIO pins in output mode to be
  consistent with the Linux kernel.
- Add HUK derivation support for ELE AHAB.
2024-09-02 16:03:02 -06:00
Tom Rini
b977af178f Merge tag 'u-boot-amlogic-next-20240902' of https://source.denx.de/u-boot/custodians/u-boot-amlogic into next
- meson_nand: R/W support for pages used by boot ROM
2024-09-02 16:02:37 -06:00
Tom Rini
8c069df8dd Merge tag 'v2024.10-rc4' into next
Prepare v2024.10-rc4
2024-09-02 14:13:57 -06:00
Marek Vasut
d134909722 ARM: imx: Wrap i.MX config options in MACH_IMX
Wrap all the i.MX specific options in MACH_IMX, otherwise they keep
showing up in other SoC vendor configurations. No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-09-02 13:23:36 -03:00
Marek Vasut
412a6f3973 ARM: imx: Make PLL settings configurable at board level
Staticize intpll_configure(). Add weak board_imx_intpll_override()
function which can be defined at board level to override specific
PLL frequency settings early during boot. This can be used to for
example force faster CPU core clock frequency if the hardware can
handle it.

Example of increasing CPU core clock to 1600 MHz on i.MX8M Plus:
```
int board_imx_intpll_override(enum pll_clocks pll, ulong *freq)
{
       if (pll == ANATOP_ARM_PLL)
               *freq = MHZ(1600);
       return 0;
}
```

Signed-off-by: Marek Vasut <marex@denx.de>
2024-08-30 22:53:05 -03:00
Fabio Estevam
b16f6db637 imx: Remove CFG_MXC_USB_PORTSC
The definition of CFG_MXC_USB_PORTSC as (PORT_PTS_UTMI | PORT_PTS_PTW)
can be removed from mx5/mx6/mx7/mx8m board config files as it is the
default in drivers/usb/host/ehci-mx5.c and drivers/usb/host/ehci-mx6.c.

Suggested-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Tim Harvey <tharvey@gateworks.com>
2024-08-30 22:47:04 -03:00
Fabio Estevam
183c218a80 mx5: Remove CFG_MXC_USB_PORT
CFG_MXC_USB_PORT is not used anywhere, so remove this unused symbol.

Suggested-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-08-30 22:46:58 -03:00
Fabio Estevam
c17739f94f usb: ehci-mx5: Add a default for CFG_MXC_USB_PORTSC
Just like drivers/usb/host/ehci-mx6.c, add a default for
drivers/usb/host/ehci-mx5.c.

The motivation for doing this is to remove CFG_MXC_USB_PORTSC
from board config files.

All the mx5 boards, with the exeption of mx51evk, define
CFG_MXC_USB_PORTSC as:

 #define CFG_MXC_USB_PORTSC	(PORT_PTS_UTMI | PORT_PTS_PTW)

So move this definition as a default into ehci-mx5.c.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-08-30 22:46:52 -03:00
Fabio Estevam
14e6fcf462 imx: Remove CFG_MXC_USB_FLAGS
CFG_MXC_USB_FLAGS is only used for drivers/usb/host/ehci-mx5.c, so it
can be removed from all the imx6/imx7/imx8m board config files.

mx51evk.h is the only place CFG_MXC_USB_FLAGS is not set to 0.

Suggested-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-08-30 22:46:45 -03:00
Rogerio Guerra Borin
4707913ebe configs: verdin-imx8m[mp]: set CONFIG_SPL_LOAD_FIT_ADDRESS
Set the CONFIG_SPL_LOAD_FIT_ADDRESS for both verdin-imx8mm and
verdin-imx8mp configurations to specify the load address for FIT images
loaded by the SPL.

As per lastest instructions from NXP, the generation of a HABv4 CSF
(Command Sequence File) requires the U-Boot FIT image (u-boot.itb) load
address to be set to a fixed value when binman is used. The address is
defined by CONFIG_SPL_LOAD_FIT_ADDRESS.

Here we set CONFIG_SPL_LOAD_FIT_ADDRESS to an address 64MB past the
start of the DDR memory leaving plenty of room for the various DDR-
residing artifacts to be moved to their usual load addresses which are
close to the start of the DDR.

Signed-off-by: Rogerio Guerra Borin <rogerio.borin@toradex.com>
Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-08-30 22:32:35 -03:00
Tomas Paukrt
75e8b677b7 gpio: mxc_gpio: fix reading state of GPIO pins in output mode
The PSR register works correctly for GPIO pins in input mode,
but always returns 0 for GPIO pins in output mode unless the SION
bit is set.

The DR register should be used for GPIO pins in output mode
to allow correct getting of previously set output value.

Please note that the Linux gpio-mxc driver and the NXP U-Boot mxc_gpio
driver already use the DR register for all GPIO pins in output mode:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=442b2494b17d1a4f0a14721580271eb23ebffd42
4afc3f9094

Signed-off-by: Tomas Paukrt <tomaspaukrt@email.cz>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
2024-08-30 22:32:29 -03:00
Tom Rini
f0ec3e6089 Merge patch series "Add support for Ethernet Boot on SK-AM62"
Chintan Vankar <c-vankar@ti.com> says:

This series enables Ethernet Boot on SK-AM62 device.

This series is based on commit 'f4f845b85926' of origin/next branch of
U-Boot.

Logs for Ethernet Boot for AM625-SK:
https://gist.github.com/chintanv133/464782796a9a60b9f5a49e674c5fc31a
2024-08-30 15:55:06 -06:00
Chintan Vankar
d9de999ed5 arm64: dts: ti: k3-am62x-sk-common: Add bootph-all property in phy_gmii_sel node
Add missing bootph-all property for CPSW MAC's PHY node
phy_gmii_sel.

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
Link: https://lore.kernel.org/r/20240430085048.3143665-1-c-vankar@ti.com
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>

[ upstream commit: ba50141137fae205a731005e70687f4a52289050 ]

(cherry picked from commit 2bdd1743a9f6515efe7c3648a25d63b4a9ce4a10)

Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2024-08-30 13:57:40 -06:00
Siddharth Vadapalli
bdf6900fd6 arm: dts: k3-am625-r5-sk: Enable DM services for main_pktdma
Enable DM services for main_pktdma during R5 SPL stage.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:40 -06:00
Kishon Vijay Abraham I
3b210e8069 configs: am62: Enable configs required for Ethboot
Enable config options needed to support Ethernet boot on AM62x SK.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:40 -06:00
Kishon Vijay Abraham I
b4e0d3a62d configs: am62: Add configs for enabling ETHBOOT in R5SPL
Add configs for enabling ETHBOOT in R5SPL.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:40 -06:00
Kishon Vijay Abraham I
35bddf8896 arm: mach-k3: am62x: am625_init: Probe AM65 CPSW NUSS
In order to support Ethernet boot on AM62x, probe AM65 CPSW NUSS
driver in board_init_f().

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:39 -06:00
Kishon Vijay Abraham I
c78af98720 dma: ti: k3-udma: Add support for native configuration of chan/flow
In absence of Device Manager (DM) services such as at R5 SPL stage,
driver will have to natively setup TCHAN/RCHAN/RFLOW cfg registers.
Existing UDMA driver performed the above mentioned configuration
for UDMA. Add similar configuration for PKTDMA here.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:39 -06:00
Chintan Vankar
eedfbb86c2 soc: ti: k3-navss-ringacc: Fix reconfiguration of qmode API
Function "k3_ringacc_ring_reconfig_qmode_raw()" should reset qmode to
requested value and should not update other fields in ring configuration
register.

Signed-off-by: Chintan Vankar <c-vankar@ti.com>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
2024-08-30 13:57:39 -06:00
Vignesh Raghavendra
963c13d133 soc: ti: k3-navss-ringacc: Fix reset ring API
Expectation of k3_ringacc_ring_reset_raw() is to reset the ring to
requested size and not to 0. Fix this.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
2024-08-30 13:57:39 -06:00
Kishon Vijay Abraham I
40710d3388 soc: ti: k3-navss-ringacc: Initialize base address of ring cfg registers
Initialize base address of ring config registers required to natively
setup ring cfg registers in the absence of Device Manager (DM) services
at R5 SPL stage. Since register property is defined as "ring" for PKTDMA
and "cfg" for UDMA, configure base address of ring configuration register
accordingly.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:39 -06:00
Kishon Vijay Abraham I
48ea310771 firmware: ti_sci: Add No-OP for "RX_FL_CFG"
RX_FL_CFG message should not be forwarded to TIFS and should be
handled within R5 SPL (when DM services are not available). Add
a no-op function to not handle RX_FL_CFG messages.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:39 -06:00
Chintan Vankar
62b096d907 common: spl: spl: Init DRAM size in R5/A53 SPL
Initialize DRAM size in SPL stage since networking requires DDR
to be initialized.

Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Chintan Vankar <c-vankar@ti.com>
2024-08-30 13:57:39 -06:00
Tomas Paukrt
ccda0ba461 lib: crypto: fix ASYMMETRIC_KEY_TYPE dependency
Fix the dependency to avoid a warning if RSA_VERIFY_WITH_PKEY is enabled.

Fixes: b7463f198d ("Make ASYMMETRIC_KEY_TYPE depend on FIT_SIGNATURE")
Signed-off-by: Tomas Paukrt <tomaspaukrt@email.cz>
2024-08-30 13:57:05 -06:00
Sughosh Ganu
be222ac029 list: use list_count_nodes() to count list entries
Use the API function list_count_nodes() to count the number of list
entries.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-30 13:51:38 -06:00
Fabio Estevam
61f64757ac mx6slevk: Convert to OF_UPSTREAM
Instead of using the local imx6sl-evk, imx6sl-pinfunc.h and
imx6sl.dtsi devicetree copies from U-Boot, convert the imx6sl-evk board
to OF_UPSTREAM so that the upstream kernel devicetree can be used instead.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-30 15:50:36 -03:00
Fabio Estevam
9521515405 mx6slevk: Keep a single defconfig
Remove mx6slevk_spinor_defconfig and mx6slevk_spl_defconfig in
favor of having a single mx6slevk_defconfig to help reducing
the maintenance effort.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-30 15:50:36 -03:00
Fabio Estevam
8c42241eb9 mx6slevk: Fix the boot device number
The SD card is registered as mmc device 0.

Fix it accordingly so that the board can boot to Linux
from the SD card.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-30 15:50:36 -03:00
Fabio Estevam
3344b68fdc mx6slevk: Convert to watchdog driver model
Commit 68dcbdd594 ("ARM: imx: Add weak default reset_cpu()") caused
the 'reset' command in U-Boot to not cause a board reset.

Fix it by switching to the watchdog driver model via sysreset, which
is the preferred method for implementing the watchdog reset.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-30 15:50:36 -03:00
Benjamin Hahn
8412acec95 board: phytec: phycore_imx8mp: Add mtd spi partitions
Depending on if a SPI-NOR flash is populated add the mtd partition
table to the device tree. For this we have to also probe the
flash before booting.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
2024-08-30 15:50:36 -03:00
Benjamin Hahn
94d5cad4ec configs: phycore-imx8mp_defconfig: Enable SPI NOR flash support
Enable SPI NOR flash support in U-Boot.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
2024-08-30 15:50:36 -03:00
Mathieu Othacehe
ef53c77595 imx: ele_ahab: Add HUK derivation support
Add a new ahab_derive command that derives the hardware unique key (HUK)
into a 16 or 32 bytes key and stores it at the given address.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Reviewed-by: Ye Li <ye.li@nxp.com>
2024-08-30 15:50:36 -03:00
Jonas Karlman
e83ced1a24 bootstage: Fix unstash of records from SPL
The commit b81e31a1e6 ("bootstash: Do not provide a default address
for all") changed a bootstage unstash call to bootstage stash, this
has resulted in bootstage records stashed in SPL no longer get unstaged
in U-Boot proper. Fix this by changing back to a unstage call.

Fixes: b81e31a1e6 ("bootstash: Do not provide a default address for all")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-08-28 10:07:59 -06:00
Arseniy Krasnov
35ff967a99 mtd: rawnand: meson: read/write access for boot ROM pages
Boot ROM on Meson needs some pages to be read/written in a special mode:
384 byte ECC mode (so called "short" by Amlogic) and with scrambling
enabled. Such pages are located on the chip in the following way (for
example):

[ p0 ][ p1 ][ p2 ][ p3 ][ p4 ][ p5 ][ p6 ][ p7 ] ... [ pN ]
  ^           ^           ^           ^

pX is page number "X". "^" means "special" page used by boot ROM - e.g.
every 2nd page in the range of [0, 7]. Step (2 here) and last page in
range is read from the device tree.

Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Link: https://lore.kernel.org/r/20240826131710.29746-4-avkrasnov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-08-28 16:05:45 +02:00
Arseniy Krasnov
33acfbf418 mtd: rawnand: meson: refactor use of 'meson_nfc_cmd_access()'
Move call 'meson_nfc_cmd_seed()' and check for 'NAND_NEED_SCRAMBLING'
to 'meson_nfc_cmd_access()', thus removing code duplication.

Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Link: https://lore.kernel.org/r/20240826131710.29746-3-avkrasnov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-08-28 16:05:45 +02:00
Arseniy Krasnov
9905e77eda mtd: rawnand: nand_base: support for 'NAND_IS_BOOT_MEDIUM' flag
Based on Linux kernel:
commit f922bd798bb9 ("mtd: rawnand: add an option to specify NAND chip as a boot device")

Allow to define a NAND chip as a boot device. This can be helpful
for the selection of the ECC algorithm and strength in case the boot
ROM supports only a subset of controller provided options.

Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Link: https://lore.kernel.org/r/20240826131710.29746-2-avkrasnov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2024-08-28 16:05:45 +02:00
Franco Venturi
cf85cd84aa mmc: fix signed vs unsigned compare in read check in _spl_load()
Fix signed vs unsigned compare in read check in _spl_load()

Issue: when info->read() returns a negative value because of an error,
       the comparison of 'read' (signed) with 'sizeof(*header)'
       (unsigned silently converts the negative value into a very
       large unsigned value and the check on the error condition
       always return false, i.e. the error is not detected
Symptoms: if spl_load_image_fat() is unable to find the file 'uImage',
          the SPL phase of the boot process just hangs after displaying
          the following line:
          Trying to boot from MMC1
Fix: cast 'sizeof(*header)' to int so the compare is now between
     signed types
Reference: https://stackoverflow.com/questions/17293749/sizeof-operator-in-if-statement

Signed-off-by: Franco Venturi <fventuri@comcast.net>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2024-08-27 18:04:05 -06:00
Billy Tsai
7c2c235a27 gpio: Add G7 Aspeed gpio controller driver
In the 7th generation of the SoC from Aspeed, the control logic of the
GPIO controller has been updated to support per-pin control. Each pin now
has its own 32-bit register, allowing for individual control of the pin’s
value, direction, interrupt type, and other settings.

Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com>
2024-08-27 18:01:38 -06:00
Hiago De Franco
1bf048f21b tools/scripts/Kconfig: Update references from kconfig-language.txt to rst
The Linux kernel documentation has transitioned from using
kconfig-language.txt to kconfig-language.rst. Therefore update all
occurrences of kconfig-language.txt.

Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
2024-08-27 18:01:32 -06:00
Gaskell, Oliver
716ab3fb23 dm: core: Make SPL_DM_SEQ_ALIAS select SPL_STRTO
Enabling CONFIG_DM_SEQ_ALIAS enables code which relies on
`trailing_strtol()` - which is only linked in SPL when CONFIG_SPL_STRTO
is enabled.

CONFIG_SPL_STRTO is not enabled by default - to ensure this function is
available in SPL, CONFIG_SPL_DM_SEQ_ALIAS should select
CONFIG_SPL_STRTO.

Signed-off-by: Oliver Gaskell <Oliver.Gaskell@analog.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 18:01:28 -06:00
Jim Liu
df5286e82d arm: dts: nuvoton: add dts support for npcm845 yosemite4
Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-08-27 18:01:24 -06:00
Maxim Moskalets
d8503a45df lib: move phdr increment to for loop heading
Shifting this pointer in the loop will be more logical when working
with the code later, because you can see at a glance what exactly
changes at each iteration. Moreover, the code remains equivalent
because this variable is not used after the loop.

Signed-off-by: Maxim Moskalets <maximmosk4@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 18:01:21 -06:00
Tom Rini
314fdd2e73 Merge patch series "dm: core: Avoid multiple calls to fdt_parent_offset()"
Jonas Karlman <jonas@kwiboo.se> says:

Use of fdt_parent_offset() is very expensive as detailed by the function
documentation:

  NOTE: This function is expensive, as it must scan the device tree
  structure from the start to nodeoffset, *twice*.

This series remove multiple calls to fdt_parent_offset() or
ofnode_get_parent() when instead a single call can be made and the
returned value can be reused.

This series help reduce boot time by around:
- ~137ms on a Radxa ROCK Pi 4 (RK3399)
- ~33ms on a Radxa ZERO 3W (RK3566)
2024-08-27 15:37:19 -06:00
Jim Liu
b70865e6b9 timer: npcm: Change counter source
The counter value read from TDR register may not be correct.
Read SECCNT and CNTR25M instead to get the correct timestamp.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-08-27 15:37:18 -06:00
Jonas Karlman
6f5b168661 dm: core: regmap: Avoid multiple calls to ofnode_get_parent()
Until a live tree is used in U-Boot proper after relocation, use of
ofnode_get_parent() will trigger a call to the very expensive
fdt_parent_offset(), as detailed by the function documentation:

  NOTE: This function is expensive, as it must scan the device tree
  structure from the start to nodeoffset, *twice*.

Re-use the returned value from a single call instead of having to make
multiple calls for same node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 14:32:49 -06:00
Jonas Karlman
445406afbb dm: core: ofnode: Avoid multiple calls to ofnode_get_parent()
Until a live tree is used in U-Boot proper after relocation, use of
ofnode_get_parent() will trigger a call to the very expensive
fdt_parent_offset() as detailed by the function documentation:

  NOTE: This function is expensive, as it must scan the device tree
  structure from the start to nodeoffset, *twice*.

Re-use the returned value from a single call instead of having to make
multiple calls for same node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 14:32:49 -06:00
Jonas Karlman
d6330529a5 dm: core: fdtaddr: Avoid multiple calls to fdt_parent_offset()
Use of fdt_parent_offset() is very expensive as detailed by the function
documentation:

  NOTE: This function is expensive, as it must scan the device tree
  structure from the start to nodeoffset, *twice*.

Re-use the returned value from a single call instead of having to make
multiple calls for same nodeoffset.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 14:32:49 -06:00
Jim Liu
7c17f02283 gpio: npcm: Add SGPIO support for Nuvoton NPCM SoCs
Add Nuvoton BMC NPCM7xx/NPCM8xx sgpio driver.
BMC can use this driver to increase 64 GPI pins and 64 GPO pins to use.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
2024-08-27 14:31:55 -06:00
Love Kumar
ce6895dd12 test/py: spi: Add tests for SPI flash device
Add test cases for sf commands to verify various SPI flash operations
such as erase, write and read. It also adds qspi lock unlock cases.
This test relies on boardenv_* configurations to run it for different
SPI flash family such as single SPI, QSPI, and OSPI.

Signed-off-by: Love Kumar <love.kumar@amd.com>
2024-08-27 14:31:08 -06:00
Zixun LI
56274888fc cmd: bind: Use device sequence instead for driver bind/unbind
Currently uclass index is used for bind/unbind which ignores alias
sequence numbering. Use device sequence number instead as it's
the number explicitly set in the DT.

Also update documentation to use sequence number.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 14:30:14 -06:00
Zixun LI
2d76e724b4 dm: core: Show device sequence instead in dm_dump_tree()
Currently uclass index is shown in DM tree dump which ignores alias
sequence numbering. The result could be confusing since these 2 numbers
could be different. Show device sequence number instead as it's more
meaningful.

Also update documentation to use sequence number.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 14:30:02 -06:00
Vignesh Raghavendra
8a5642fa84 mtd: nand: raw: omap_gpmc: Check return value of gpmc_nand_init
If the function is called with no NAND device attached, then this
function can return error value, proceeding further ignoring the same
can cause system crash. This is seen when "mtd list" is run with no NAND
addon cards connected.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Acked-by: Roger Quadros <rogerq@kernel.org>
2024-08-27 14:27:44 -06:00
Derald D. Woods
f85dafa9af omap3: omap3evm: Migrate to OF_UPSTREAM
This commit brings the omap3evm inline with the remaining OMAP3XXX variants.

Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-27 11:17:39 -06:00
Sean Anderson
274e0c7299 sandbox: Fix pinmux warnings with non-test devicetrees
The sandbox pinmux driver is used in the non-test devicetree as well as
the test one. I didn't realize this when I modified the driver for
tests, and so broke the regular use case (which only resulted in
warnings). First, making the pinmux and the UART group available
pre-relocation to avoid ENODEV errors. Then, convert the pin groups and
functions to the new style, adding onewire group as well.

Fixes: 7f0f1806e3 ("test: pinmux: Add test for pin muxing")
Closes: https://source.denx.de/u-boot/u-boot/-/issues/2
Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 11:17:39 -06:00
Heinrich Schuchardt
101d9a6a53 ata: sata_rescan must scan for block devices
A system may have multiple SATA controller. Removing the controller with
the lowest sequence number before probing all SATA controllers makes no
sense.

In sata_rescan we remove all block devices which are children of SATA
controllers. We also have to remove the bootdev devices as they will be
created when scanning for block devices.

After probing all SATA controllers we must scan for block devices otherwise
we end up without any SATA block device.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tony Dinh <mibodhi@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-27 11:17:39 -06:00
Christian Marangi
a60c20bda8 pci: mediatek: add support for upstream split PCIe node
Add support for upstream linux split PCIe node.

Upstream linux have an alternative way to declare PCIe nodes that splits
them in dedicated nodes for each line instead of putting them all in one
node.

Detect this by checking if the mediatek,generic-pciecfg node is passed
as it's used to reference the common address for all the PCIe lines.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-27 11:17:39 -06:00
MD Danish Anwar
6dd95456f7 remoteproc: uclass: Modify uc_pdata->name to use combination of device name and device's parent name
uc_pdata->name is populated from device tree property "remoteproc-name".
For those devcices that don't set "remoteproc-name", uc_pdata->name
falls back to dev->name.

If two devices have same name, this will result into uc_pdata->name not
being unique and rproc_init() will fail.

Fix this by using combination of dev->name and dev->parent->name instead
of using just the dev->name to populate uc_pdata->name.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Andrew Davis <afd@ti.com>
2024-08-27 11:17:39 -06:00
Heinrich Schuchardt
a7026b0003 ata: dwc_ahsata: create boot device
For each block device we must create a sibling boot device.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-08-27 11:17:39 -06:00
Tom Rini
a41c1aeefb Merge patch series "bootstd: Try again to resolve infinite-loop bug"
Simon Glass <sjg@chromium.org> says:

This little series tries to resolve a problem found with an earlier
fix.
2024-08-27 11:17:39 -06:00
Tom Rini
e5a6ce5d33 Merge patch series "arch: arm: dts: ti: Add missing fss range"
Jonathan Humphreys <j-humphreys@ti.com> says:

Upstream DTS added explicit ranges to the fss node. It did not include
the 32 bit memory space needed by the R5 to access OSPI. With the
upstream DTS sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, these patches can be removed.

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")
2024-08-27 11:17:39 -06:00
Simon Glass
cae1ad02f7 bootstd: Make bootdev_next_prio() continue after failure
When a device fails to probe, the next device should be tried, until
either we find a suitable device or run out of devices. A device
should never be tried twice.

When we run out of devices of a particular priority, the hunter should
be used to generate devices of the next priority. Only if all attempts
fail should this function return an error.

Update the function to use the latent 'found' boolean to determine
whether another loop iteration is warranted, rather than setting 'dev'
to NULL, which creates confusion, suggesting that no devices have been
scanned and the whole process is starting from the beginning.

Note that the upcoming bootflow_efi() test is used to test this
behaviour.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/17
2024-08-27 10:09:07 -06:00
Simon Glass
aad8b18a52 Revert "bootdev: avoid infinite probe loop"
This turns out to be insufficient to fix the problem, since when
bootdev_next_prio() exits, the caller has no idea that this really
is the end. Nor is it, since there may be other devices which should
be checked.

The caller iterates which calls iter_incr() which calls
bootdev_next_prio() again, which finds the same device and the loop
continues.

We never did create a test for this[1], which makes it hard to be
sure which problem was fixed.

The original code had the virtue of staying in the loop looking for a
bootdev, so let's go back to that and try to fix this another way.

A future patch will make bootdev_next_prio() continue after failure
which should provide same effect.

This reverts commit 9d92c418ac.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-27 10:09:07 -06:00
Jonathan Humphreys
f36432a8c8 arch: arm: dts: k3-j721e-r5-sk: Add missing fss range
Upstream DTS added explicit ranges to the fss node.  It did not include the
32 bit memory space needed by the R5 to access OSPI.  With the upstream DTS
sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, this patch can be removed.  See
0c0e03ec22 (arm64: dts: ti: k3-j721e: Use exact ranges for FSS node)

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
2024-08-27 10:02:35 -06:00
Jonathan Humphreys
4b91ded762 arch: arm: dts: k3-j721e-r5-evm: Add missing fss range
Upstream DTS added explicit ranges to the fss node.  It did not include the
32 bit memory space needed by the R5 to access OSPI.  With the upstream DTS
sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, this patch can be removed.  See
0c0e03ec22 (arm64: dts: ti: k3-j721e: Use exact ranges for FSS node)

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
2024-08-27 10:02:35 -06:00
Jonathan Humphreys
0bc48353fa arch: arm: dts: k3-j7200-r5-evm: Add missing fss range
Upstream DTS added explicit ranges to the fss node.  It did not include the
32 bit memory space needed by the R5 to access OSPI.  With the upstream DTS
sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, this patch can be removed. See
f00e626085 (arm64: dts: ti: k3-j7200: Use exact ranges for FSS node)

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2024-08-27 10:02:35 -06:00
Jonathan Humphreys
0f116942b8 arch: arm: dts: k3-am69-r5-sk: Add missing fss range
Upstream DTS added explicit ranges to the fss node.  It did not include the
32 bit memory space needed by the R5 to access OSPI.  With the upstream DTS
sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, this patch can be removed. See
f062a015f4 (arm64: dts: ti: k3-j784s4: Use exact ranges for FSS node)

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
2024-08-27 10:02:35 -06:00
Jonathan Humphreys
9151844547 arch: arm: dts: k3-j784s4-r5-evm: Add missing fss range
Upstream DTS added explicit ranges to the fss node.  It did not include the
32 bit memory space needed by the R5 to access OSPI.  With the upstream DTS
sync, OSPI boot no longer works.

Adding the missing range here. It is also being added in the upstream DTS,
so after the next upstream DTS sync, this patch can be removed. See
f062a015f4 (arm64: dts: ti: k3-j784s4: Use exact ranges for FSS node)

Fixes: 5024a96db8 ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
2024-08-27 10:02:35 -06:00
Tom Rini
9735cfaf90 Merge patch series "Tidy up console recording in tests"
Simon Glass <sjg@chromium.org> says:

This series started as a small fix for checking for an empty line,
but in the process several other problems were found and fixed:

- fix tests which use console recording but don't set the flag
- drop unnecessary resetting of the console in tests
- drop unnecessary blank line before MMC output
- update the docs a little
- fix buildman test failure on newer Pythons
- a few other minor things

This series also renames the confusing flag names, so that they are
easier to remember - just a UTF_ (unit-test flags) prefix.
2024-08-26 18:52:18 -06:00
Simon Glass
e6f498e70b test: Tidy up checking for console end
Use the ut_assert_console_end() function provided, rather than doing it
separately.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
675fde825a test: dm: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
695b464532 doc: Add a few notes about how to use console checking
Tidy up the existing docs in line with current conventions.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
d3ac70aac4 test: Use UTF_CONSOLE in remaining tests
Set this flag rather than doing things manually in the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
0af38d12d9 test: cmd: Drop unnecessary console_record_reset_enable()
It is seldom necessary to call this function. Drop its use in the
command tests.

Add a few extra checks to the wget test so that resetting is not
needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
75c535c37d test: log: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
0e77c2b611 test: cmd: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
d77519652a test: hush: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-26 18:51:49 -06:00
Simon Glass
2b60f8c8b1 test: fdt: Move common code into the setup functions
Quite a lot of tests have the same two lines of code at the start. Move
this into the two setup functions to reduce redundancy.

Add a line to check the output from set_working_fdt_addr() since this is
always emitted.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
b8133039fb test: fdt: Check internal-function return values
Some functions are using asserts but the result of the functions
themselves is not checked. This means that if a test fails, the result
is not noticed until later, which can be confusing to debug.

Add the missing asserts.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
a6a80b3b29 test: boot: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Drop unnecessary calls to console_record_reset_enable()

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-26 18:51:49 -06:00
Simon Glass
f034becd06 test: bloblist: Use UTF_CONSOLE in tests
Set this flag rather than doing things manually in the test.

Drop the code which is now unnecessary.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
5c27fd7ef9 test: Update NAND test to avoid extra macros
Write out the tests in full to allow the test to be found more easily
when there is a failure. We could use a single test function with a
for() loop but this would stop at the first failure, and some variations
might while other pass.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
eccd4ca387 mmc: Drop the blank line before accesses
Several mmc subcommand print a blank line before starting and after
finishing. It isn't necessary to do both, so drop the first one.

It is questionable whether these command should produce any output at
all, but leave it for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
9b99762eff test: Rename UTF_CONSOLE_REC to UTF_CONSOLE
The _REC suffix doesn't add much. Really what we want to know is whether
the test uses the console, so rename this flag.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-26 18:51:49 -06:00
Simon Glass
b073d48e8d test: Drop the blank line before test macros
Most tests don't have this. It helps to keep the test declaration
clearly associated with the function it relates to, rather than the next
one in the file. Remove the extra blank line and mention this in the
docs.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:49 -06:00
Simon Glass
725c438c62 test: Rename unit-test flags
The UT_TESTF_ macros read as 'unit test test flags' which is not right.
Rename to UTF ('unit test flags').

This has the benefit of being shorter, which helps keep UNIT_TEST()
declarations on a single line.

Give the enum a name and reference it from the UNIT_TEST() macros while
we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:48 -06:00
Simon Glass
88ae69f3b7 test: Fail when an empty line is expected but not present
The existing implementation of ut_assert_nextline_empty() cannot
distinguish between an empty line and no line at all. It can in fact be
called at the end of the recorded output and will happily return
success.

Adjust the logic so that this condition is detected. Show a failure
message in this case.

Fix the one test which falls foul of this fix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 400175b0a7 ("test: Add a way to check each line of console...")
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-26 18:51:48 -06:00
Simon Glass
ab84ffccd6 buildman: Make test_process_limit handle time.monotonic()
Newer versions of filelock use time.monotonic() instead of time.time().
Update the test the handle this.

It would be better if filelock had support for writing unit tests which
use locking.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 18:51:48 -06:00
Tom Rini
02d587a447 Merge patch series "global_data: Reduce size of struct global_data"
Simon Glass <sjg@chromium.org> says:

The global data structure has grown quite a lot over the years, being
the best place to put an important pointer or something that must be
accessed before and after relocation.

This series attempts to reduce the size a little, by moving some things
out and shrinking and aligning some fields.

Some fields are needed during init but not afterwards. To deal with this
a new 'boardf' structure is created, which sits on the stack and is only
present during board_init_f(). It is possible that more fields could
move to this struct, but for now only 4 are moved.

An assumption is made that an int is 32-bits wide on all architectures,
which seems to be true, but maintainers should be able to confirm.

Mostly the code-size impact is neutral, but the patch
'Use less space for environment fields' does increase U-Boot's size by
about 30 bytes on aarch64.

For firefly-rk3399 (64-bit) the size of global reduces from 456 to 368
bytes. For SPL it reduces from 416 to 272 bytes.

There are other things which could be attempted, for example:
- Using hlist instead of list for some lists
- Checking that only necessary fields are present in SPL
2024-08-26 14:06:16 -06:00
Simon Glass
cafaa1a17f doc: Add some guidelines about global data
Update the documentation to provide a bit more information about how to
use global data.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
09c58e0263 doc: Move generic-board documentation into rst
This information is useful for people looking at how U-Boot has changed
over the years and the design decisions which led to it. Move it into
doc/ in an 'historical' section.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
66ca5b7864 global_data: Remove environment members if not used
If the environment is not enabled we don't need these fields in
global_data. Make them conditional.

Make these fields conditional. Move env_buf up one so it can share
an #ifdef.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
d990210702 global_data: Remove jump table in SPL
SPL builds don't use the jump table since they cannot run apps. Drop
it, moving it together with boardf.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
b9c396ca49 global_data: Move pointer members together
Collect the pointer members near the top of global_data to help with
alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
bab88e8329 global_data: Move ulong fields together
Move all the always-present ulong fields next to the others at the top
of global_data

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
de869f7c58 global_data: Put phys_addr fields near the top
Put these fields near the top and together, since they have the same
alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
6120d45b70 global_data: Move env_addr field higher
Move this field to be with others of the same alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
97c17e4ca9 global_data: Move baud_rate field lower
Move this field to be with others of the same alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
92aa3ec321 global_data: Reduce size of early-malloc vars
The early malloc region is normally quite small and is certainly less
than 4GB, so use a 32-bit value for the limit and pointer. Update the
comments for clarity while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:06:08 -06:00
Simon Glass
30e331e9cb global_data: Drop fb_base
This value mirrors information recorded by driver model video drivers,
so can be removed to save space. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
c283a2664e global_data: log: Reorder and shrink fields
Some of the logging fields are larger than they need to be. Shrink them
and adjust the ordering to improve alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
32c24a1705 video: Avoid setting global_data fb_base in video setup
This field is not used, so don't set it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
5aa828e3c6 global_data: Reduce the size of mon_len
This is the length of the U-Boot binary, which is typically 200-800KB
and certainly not larger than 4GB. Use a 32-bit value to save space in
global_data and move it up to be with fields of the same alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
3430a62568 video: Avoid setting global_data fb_base from SPL handoff
This field is not used, so don't set it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
80166ea20b global_data: Reduce the size of bus_clk and mem_clk
The bus clock and memory clock are unlikely to go above 4GHz for now, so
reduce the field size to 32 bits.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
3876abbbfc zynqmp: Avoid setting the framebuffer address
This is handled by driver model so this driver should not be setting the
framebuffer address. Drop the assignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
cd4f9eb514 global_data: Collect common fields at the top
Move all the fields which are always present to the top of the struct,
so we can potentially save some space by taking note of alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
4b39b56c3a arm: ronetix: Avoid accessing global_data fb_base
Use the new video function to get the framebuffer base.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
2e9313179a global_data: Drop spl_handoff
Provide a function to locate this information, rather than doing it
automatically on startup, to save space in global_data.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
54a221d2cd arm: friendlyarm: Avoid accessing global_data fb_base
Use the new video function to get the framebuffer base.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
e821897622 board_f: Move new_bloblist to boardf
This value is only used before relocation. Move it to the new boardf
struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
1a36338e68 video: mxs: Avoid setting global_data fb_base
This is not used, so don't set it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
8941972854 board_f: Move new_bootstage to boardf
This value is only used before relocation. Move it to the new boardf
struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
5019d3282c board_f: Move fdt_size to board
This value is only really used before relocation. There is not much use
to showing its value in bdinfo, so drop it. Move it to the new boardf
struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
6abd992ada board_f: Add a new struct to hold pre-relocation info
Quite a few of the members of struct global_data are only used before
reloction, or have little meaning afterwards, yet they hang around in
struct global_data for the lifetime of U-Boot. This uses up precious
pre-relocation SRAM on many boards.

To help with this, start a new struct which exists only before
relocation. Move new_fdt into this new struct. Drop the display of it
in the 'bdinfo' command as it is probably not very useful.

Note that the field does not exist in SPL builds.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
52cd51c02f global_data: Use less space for environment fields
Use shorter types for some of these fields to save space. Reorder to put
fields with like alignment together.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
423bdf6690 global_data: Drop pci_bootdelay
This is not used. Drop the field and the environment code which uses it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
a6616bac98 global_data: Drop global_data hose
This is set on one x86 boards, but is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
7d08262ec3 global_data: Remove pci_ram_top
This field is set but not used. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
f44fded236 global_data: Convert have_console into a flag
We don't need a full word for this boolean value. Convert it into a flag
to save space in global_data.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:38 -06:00
Simon Glass
60fa5e9eff video: mxc: Avoid setting global_data fb_base
This is not used, so don't set it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:37 -06:00
Simon Glass
b5c5923e4e video: Add a function to obtain the framebuffer address
Add a new function which returns the framebuffer address of the first
video device. This will allow the global_data field top be dropped.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:37 -06:00
Simon Glass
26d3faae29 x86: Drop use of global_data fb_base
This value is set by not used on x86 so there is no point in setting it.
Drop the assignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:37 -06:00
Simon Glass
5f32aac98e global_data: Move pci_clk to m68k and powerpc
Only m68k and powerpc use this field, so move it to the arch-specific
info, to reduce the size for other archs.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-26 14:05:37 -06:00
Tom Rini
7670200d4b Merge patch series "test/overlay: Make this depend on SANDBOX"
Tom Rini <trini@konsulko.com> says:

Update a few things so that CONFIG_UNIT_TEST will compile for more
hardware platforms.
2024-08-23 15:59:44 -06:00
Tom Rini
2191c11733 test/cmd: Move wget test to under a sandbox guard
This test is sandbox-centric, so guard it so.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-08-23 15:59:39 -06:00
Tom Rini
916a4704fc test/boot: Make BOOTSTD tests depend on UT_BOOTSTD
While we have a symbol for controlling if we will be testing BOOTSTD or
not, and it depends on SANDBOX, we do not control the building of
test/boot/ content correctly. Guard the current bootstd tests with
a check for UT_BOOTSTD and leave the measurement test available.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-08-23 15:59:39 -06:00
Tom Rini
636e07915f test/overlay: Make this depend on SANDBOX
As the overlays are sandbox specific, mark the whole test as depending
on sandbox.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-08-23 15:59:39 -06:00
Tom Rini
5948fd0ae7 Merge patch series "spl: mmc: Some tweaks for SPL, particularly with MMC"
Simon Glass <sjg@chromium.org> says:

This series includes various minor fixes and tweaks found when trying
to reduce the size of MMC code in SPL.
2024-08-23 15:59:03 -06:00
Simon Glass
d938743d15 blk: Correct comment for blk_get_devnum_by_uclass_idname()
Update the comment to match the function. Fix the indentation while we
are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:42 -06:00
Simon Glass
3fd11278ff spl: Create a function to init spl_load_info
Rather than having every caller set this up individually, create a
common init function. This allows new fields to be added without the
risk of them being left uninited.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
2024-08-23 15:58:42 -06:00
Simon Glass
c5cb9e5489 spl: mmc: Adjust args of spl_mmc_find_device()
At present spl_mmc_load() is the only caller of this function, passing
it a boot_device, an index into the available MMC devices. Pass the
device number instead, since it is known by the caller and simplifies
the code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
bf85af66c0 spl: Remove remaining #ifdef in spl_parse_image_header()
Define spl_set_header_raw_uboot() always so we can drop the last #ifdef
in this function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
50a1ed4335 spl: Use unified inline functions for spl_load_info
Rather than declaring completely separate functions, put the code for
each case into the same function. This makes it easier to read.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
8a369de6ff spl: mmc: Handle error codes consistently
Use 'ret' as the return code, since it may not be an error and this is
the common name in U-Boot. Make sure to return the error code when
given, rather than transforming it into -1 (-EPERM).

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-23 15:58:41 -06:00
Simon Glass
af4ff286ae spl: Remove some #ifdefs in spl_parse_image_header()
This function has a number of unnecessary #ifdefs so remove them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
2a00d73d08 spl: mmc: Try to clean up raw-mode options
Make the raw-mode options depend on SPL_SYS_MMCSD_RAW_MODE in a more
direct way. This makes it easier to understand the options with
'make menuconfig'.

There are three different ways of specifying the offset:

- sector offset
- partition number
- partition type

So make these a choice, so it is more obvious what is going on.

Update existing boards to enable SPL_SYS_MMCSD_RAW_MODE where needed.

Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-23 15:58:41 -06:00
Simon Glass
1847129025 spl: mmc: Drop checks for CONFIG_SPL_LIBCOMMON_SUPPORT
This check is not needed now, since printf() resolved to nothing if not
available. Drop the #ifdefs

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
5f64c0c03a spl: Correct use of CMD_BOOTI and CMD_BOOTZ
These should have a CONFIG_ prefix. Add it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 7a0d88076b ("Add in the ability to load and boot an uncompr...")
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
dfc0acd0cc log: Avoid including function names by default
Unless function names are requested, the logging system should not
compile these into the code. Adjust the macros to handle this.

This means that turning on function names at runtime won't work unless
CONFIG_LOGF_FUNC is enabled. We could perhaps split this into a
separate option if that is a problem.

Enable CONFIG_LOGF_FUNC logging for sandbox since the tests expect the
function names to be included. Fix up the pinmux test which checks a
logging statement.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
001b3109da rockchip: Move the default timer init to a common file
Rather than repeating the same code in two files (SPL and TPL), move it
to a shared filed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
99b23d45cb mmc: Use logging instead of pr_err()
Use the log subsystem instead of dev, to avoid including function names
in the code.

The CONFIG_LOGF_FUNC option can be used to enable the function name.

Update 'enhanced size' to use hex since this is the U-Boot default and
more natural for the large numbers involved.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Simon Glass
3aa8c443b2 mmc: Use logging instead of printf()
The code makes quite a few uses of __func__ which puts the function
name into the resulting SPL image. Use the log subsystem instead, to
reduce size.

The CONFIG_LOGF_FUNC option can be used to enable the function name.

Use lower-case hex for the status output in sdhci_transfer_data(), to
match sdhci_send_command()

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-23 15:58:41 -06:00
Tom Rini
b8f0f8db23 Merge tag 'u-boot-imx-next-20240823' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/22098

- Add BOOTAUX support for apalis and colibri imx8 boards.
- Cleanup tqma6 board by removing unneeded board code.
- Add support for booting from ecspi3 via bmode command on imx6.
- Add a script to ease updating flash.bin on imx8mm phytec board.
- Enable cat and xxd commands on Data Modul i.MX8M Mini/Plus eDM SBC and
  use USB SDPS as fallback option.
- Fix critical temperature on imx9.
- Add Cortex M and bootaux support for phycore-imx8mp.
2024-08-23 15:00:29 -06:00
Marek Vasut
dda8444832 ARM: imx: Enable cat and xxd commands on Data Modul i.MX8M Mini/Plus eDM SBC
Enable 'cat' command to print file from filesystem to stdout.
Enable 'xxd' command to hexdump file from filesystem to stdout.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-08-23 14:53:53 -03:00
Marek Vasut
2b9e9588d0 ARM: imx: Use USB SDPS as fallback option on Data Modul i.MX8M Plus eDM SBC
The Data Modul i.MX8M Plus eDM SBC does have USB gadget capable port
accessible via USB A-A cable plugged into the bottom USB 3.0 port.
Use USB SDPS as the fallback boot device, so USB SDPS loading can
be performed using e.g. uuu tool.

Signed-off-by: Marek Vasut <marex@denx.de>
2024-08-23 14:53:27 -03:00
Yashwanth Varakala
d037ef40e9 configs: phycore-imx8mp_defconfig: Enabled bootaux command
To start the mcore binary from u-boot, bootaux command is
needed.

Signed-off-by: Yashwanth Varakala <y.varakala@phytec.de>
2024-08-23 14:53:07 -03:00
Yashwanth Varakala
f0f5ab50c2 board: phytec: phycore_imx8mp: Add mcore support
Added m7 core support in uboot for imx8mp by adding
the boot variable prepare_mcore.

Based on commit 0ed32cc8568a ("LF-6555 imx8m[m/n/p/q]_evk: add
bootargs to support mcore")

Signed-off-by: Yashwanth Varakala <y.varakala@phytec.de>
2024-08-23 14:53:07 -03:00
Fabio Estevam
8ad6ac9fbd mx6: Expand bmode to support ecspi3 boot
Currently, the bmode command only supports booting from ecspi1.

Expand it to also support booting from ecspi3.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Peng Fan <peng.fan@nxp.com>
2024-08-23 14:50:15 -03:00
Fabio Estevam
d6173d0655 gw_ventana: Remove unneeded comments
Remove several comments that do not apply anymore to
the current file content.

While at it, write 'PMIC' into a single line for consistency.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-23 14:49:57 -03:00
Fabio Estevam
3c72b81200 tqma6_mba6: Remove UART board code
With DM_SERIAL in place, there is no need to setup the UART pins
in the board code.

The UART pins are setup via devicetree, thanks to DM.

Remove the unneeded code.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-23 14:49:44 -03:00
Fabio Estevam
2798e4a5b4 tqma6_mba6: Remove unused defines
The PAD_CTRL definitions are not used anywhere.

Remove them to make the code cleaner.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-23 14:49:44 -03:00
Fabio Estevam
93552cc442 tqma6: Remove non-DM board code
CONFIG_DM_MMC and CONFIG_DM_SPI are alway selected so the mmc
and spi board code can be safely removed.

Remove it to make the code cleaner.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2024-08-23 14:49:44 -03:00
Primoz Fiser
8827ec575e imx: imx9: Set correct critical temperature
Commit 3233349fa6 ("imx: imx9: fixup thermal trips from fuses")
wrongly set critical temperature to (maxc - 5) instead of maxc.

Fixes: 3233349fa6 ("imx: imx9: fixup thermal trips from fuses")
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
2024-08-23 14:49:26 -03:00
Lukasz Majewski
4c0b5639f1 config: Add 'update_bootimg' command to update flash.bin on Phytec's imx8mm
This command allows easy update on SD card or eMMC of the flash.bin
generated (with binman) during u-boot build.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Benjamin Hahn <B.Hahn@phytec.de>
Tested-by: Teresa Remmet <t.remmet@phytec.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-08-23 14:49:02 -03:00
Andrejs Cainikovs
a97edb7b34 colibri-imx8x: enable i.MX specific SNVS configuration
commit 242d1cd69b ("imx8: Configure SNVS")
implemented IMX_SNVS_SEC_SC. Enable it.

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-08-23 14:48:43 -03:00
Andrejs Cainikovs
d27057a7a0 colibri-imx8x: enable i.MX specific BOOTAUX
commit e8cd1f60d9 ("imx: imx8: bootaux: Add i.MX8 M4 boot support")
implemented IMX_BOOTAUX. Enable it.

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-08-23 14:48:43 -03:00
Andrejs Cainikovs
a1ed8c7ca0 apalis-imx8: enable i.MX specific BOOTAUX
commit e8cd1f60d9 ("imx: imx8: bootaux: Add i.MX8 M4 boot support")
implemented IMX_BOOTAUX. Enable it.

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-08-23 14:48:43 -03:00
Andrejs Cainikovs
e0555f43dd board: apalis-imx8: add reset code
With commit 922d4504bc ("imx: scu_api: update to version 1.16 and
add more APIs") added the reboot API.

Add the board code to use that.

Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-08-23 14:48:43 -03:00
Tom Rini
e93d343cc7 Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsung into next 2024-08-22 08:15:04 -06:00
Tom Rini
d2067c3ea5 Merge tag 'u-boot-dfu-next-20240820' of https://source.denx.de/u-boot/custodians/u-boot-dfu into next
u-boot-dfu-next-20240820

- Migrate Atmel usb gadget to DM_USB_GADGET
- More small cleanups/improvements on the atmel UDC driver
- Change udc uclass name from "usb" -> "usb_gadget"
2024-08-20 08:08:52 -06:00
Zixun LI
73f5b54a58 usb: gadget: udc: Fix duplicate uclass name
Currently both USB host uclass and USB gadget uclass are using the same
name "usb" which break uclass functions like uclass_get_by_name().

Rename the uclass to "usb_gadget" to fix, also makes bind/unbind by class
index (or sequence) working.

This breaks the capacity of using "usb" as DT alias sequence numbering
which needs a fix afterwards.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/all/20240802092820.917450-1-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-20 09:36:36 +02:00
Tom Rini
158cf0270c Merge tag 'v2024.10-rc3' into next
Prepare v2024.10-rc3
2024-08-19 18:24:58 -06:00
Tom Rini
aa2efb0873 Merge patch series "clk: mediatek: mt7622: clk migration for OF_UPSTREAM"
Christian Marangi <ansuelsmth@gmail.com> says:

These are all the required patches to migrate clk and correctly support
OF_UPSTREAM. This will align the clk index to upstream to support the same
clk implementation with downstream and upstream DTS.
2024-08-19 16:15:51 -06:00
Christian Marangi
a73dce6c82 clk: mediatek: mt7622: add missing A1/2SYS clock ID
Add missing A1/2SYS clock ID just as a reference for OF_UPSTREAM
support. These clocks are not defined and are not usable as current
clock topckgen OPs doesn't support gates.

These special node won't ever be used by uboot hence just add them for
reference.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
2024-08-19 16:15:26 -06:00
Christian Marangi
105c78844a clk: mediatek: mt7622: add missing clock PERIBUS_SEL clock
Add missing PERIBUS_SEL clock to match upstream linux clk ID order. Also
convert pericfg to mux + gate implementation as now we have also mux on
top of gates.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
a776493f4b clk: mediatek: mt7622: add missing clock PERI_UART4_PD
Add missing clock PERI_UART4_PD for peri clock gates. This is needed to
match upstream linux clk ID in preparation for OF_UPSTREAM.
Also convert infracfg to mux + gate implementation as now we have mux on
top of gates.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
a942c0c3f5 clk: mediatek: mt7622: add missing clock MUX1_SEL
Add missing infra clock MUX1_SEL needed for CPU clock. This is needed to
match the upstream clk ID order in preparation for OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
6dfa991204 clk: mediatek: mt7622: add missing clock define for MAIN_CORE_EN
Add missing clock for MAIN_CORE_EN. This is a special clock as it's a
gate for the APMIXED clocks required as a parent for CPU clocks.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
7246138958 clk: mediatek: mt7622: move INFRA_TRNG to the bottom
Move INFRA_TRNG clock to the bottom of the clk ID to match upstream
linux order. This is in preparation of OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
bae88e7692 clk: mediatek: mt7622: rename AUDIO_AWB3 to AUDIO_AWB2
Rename AUDIO_AWB3 to AUDIO_AWB2 to match upstream linux naming in
preparation for OF_UPSTREAM support.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Christian Marangi
c7978fd395 clk: mediatek: mt7622: fix broken peri_cgs clk with XTAL parents
Fix broken peri_cgs clock with XTAL parents as they have wrong
definition of the parent type.

Correctly fix them and use CLK_PARENT_XTAL for them.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:15:26 -06:00
Tom Rini
f9e45be1a1 Merge patch series "clk: mediatek: mt7986: clk migration for OF_UPSTREAM"
Christian Marangi <ansuelsmth@gmail.com> says:

These are all the required patches to migrate clk and correctly support
OF_UPSTREAM. This will align the clk index to upstream to support the same
clk implementation with downstream and upstream DTS.
2024-08-19 16:15:13 -06:00
Christian Marangi
54f8ba658f clk: mediatek: mt7986: rename CK to CLK
Rename each entry from CK to CLK to match the include in upstream kernel
linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
2024-08-19 16:14:44 -06:00
Christian Marangi
ba7969c5fb clk: mediatek: mt7986: convert to unified infracfg gates + muxes
Convert to infracfg gates + muxes implementation now that it's
supported.

Drop infracfg-ao nodes and rename all infracfg-ao clocks to infracfg.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:44 -06:00
Christian Marangi
efc82b035f clk: mediatek: mt7986: replace infracfg ID with upstream linux
Replace infracfg clk ID with upstream linux version.

The same format is used here with the factor first, then mux and then
gates.

To correctly reference the gates in clk_gate function, define the
gates_offs value in clk_tree now that they are at an offset from mux and
factor.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:44 -06:00
Christian Marangi
6636017ad3 clk: mediatek: mt7986: move INFRA_TRNG_CK to the bottom of the list
Move INFRA_TRNG_CK to the bottom of the list to have a 1:1 match with
upstream linux clock ID.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:44 -06:00
Christian Marangi
e4bdf9b004 clk: mediatek: mt7986: comment out CK_TOP_A_TUNER as not used
Comment out CK_TOP_A_TUNER as not used and not defined in upstream
kernel linux. This is to permit support of OF_UPSTREAM and have a 1:1
match with upstream linux clock ID.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:44 -06:00
Christian Marangi
7124b9928a clk: mediatek: mt7986: drop 1/1 spurious factor for topckgen
Now that we can have advanced parent handling for mux, we can drop
spurious topckgen 1/1 factor. This is in preparation to make the clk
ID match the ID in upstream include for mt7986.

Drop the factor entry from mt7986-clk.h and reference to them in
mt7981.dtsi. Muxes and gates are updated to reference the apmixed clk
following how it's done in upstream kernel linux. Add relevant clk type
flag in clk_tree for apmixed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
8cf99baf99 clk: mediatek: mt7986: reorder TOPCKGEN factor ID
Reorder TOPCKGEN factor ID to put TOP_FACTOR first and then PLL. This is
to match how it's done in upstream kernel linux and in preparation for
OF_UPSTREAM support.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
1062187a4b clk: mediatek: mt7986: rename TOPCKGEN factor clock to upstream naming
Rename TOPCKGEN factor clock to upstream neaming.
Upstream kernel linux reference the factor clock for apmixedpll with the
"pll" suffix. Align the naming to the upstream naming format in
preparation for OF_UPSTREAM support.

Also rename rtc clock to drop the CB_ as upstream doesn't have that.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
b87f40fb7e clk: mediatek: mt7986: fix typo for infra_i2c0_ck
Fix a typo for infra_i2c0_ck where 0 was misspelled as O.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
a6c0761f65 clk: mediatek: mt7986: add missing entry for IPCIE_PIPE_CK infra gate
Add missing entry for IPCIE_PIPE_CK infra gate clock. Renumber the clock
order to match the expected offset in the gate array.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
6df8029c9e clk: mediatek: mt7986: drop 1/1 infracfg spurious factor
Now that we can have advanced parent handling for mux, we can drop
spurious infracfg 1/1 factor. This is in preparation to make the clk
ID match the ID in upstream include for mt7986.

Drop the factor entry from mt7986-clk.h and reference to them in
mt7981.dtsi. Muxes and gates are updated to reference the topckgen clk
following how it's done in upstream kernel linux. Add relevant clk type
flag in clk_tree for infracfg and topckgen.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
6267725ccc clk: mediatek: mt7986: fix wrong parent for INFRA_ADC_26M_CK
Fix wrong parent for INFRA_ADC_26M_CK as should be INFRA_ADC_FRC_CK
instead of INFRA_CK_F26M. This is to match implementation on upstream
kernel linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
5e4ee4b354 clk: mediatek: mt7986: rename 66M_MCK to SYSAXI_D2
Upstream kernel linux clock include use SYSAXI_D2 instead of 66M_MCK.
Rename this clock to the upstream kernel in preparation for support of
OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
e69a1fed16 clk: mediatek: mt7986: rename CB_CKSQ_40M to TOP_XTAL
Upstream kernel linux clock include use TOP_XTAL instead of CB_CKSQ_40M.
Rename this clock to the upstream kernel in preparation for support of
OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Christian Marangi
5dd509788d clk: mediatek: mt7986: fix wrong shift for PCIe clocks
Fix wrong shift for PCIe clocks. This cause the PCIe port to malfunction
as the gate clocks weren't correctly enabled.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:43 -06:00
Tom Rini
2f71d6ef32 Merge patch series "clk: mediatek: mt7988: clk migration for OF_UPSTREAM"
Christian Marangi <ansuelsmth@gmail.com> says:

These are all the required patches to migrate clk and correctly support
OF_UPSTREAM. This will align the clk index to upstream to support the same
clk implementation with downstream and upstream DTS.
2024-08-19 16:14:29 -06:00
Christian Marangi
99c5fa184b clk: mediatek: mt7988: rename CK to CLK
Rename each entry from CK to CLK to match the include in upstream kernel
linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
2024-08-19 16:14:09 -06:00
Christian Marangi
ef4a648587 clk: mediatek: mt7988: convert to unified infracfg gates + muxes
Convert to infracfg gates + muxes implementation now that it's
supported.

Drop infracfg-ao nodes and rename all infracfg-ao clocks to infracfg.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
4f100a0c70 clk: mediatek: mt7988: replace clock ID with upstream linux
Replace infracfg clk ID with upstream linux version.

The same format is used here with the factor first, then mux and then
gates.

To correctly reference the gates in clk_gate function, define the
gates_offs value in clk_tree now that they are at an offset from mux and
factor.

Drop any comment that reference the clock ID as we now have a 1:1 match
with upstream kernel linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
6e54f037df clk: mediatek: mt7988: comment out infracfg clk not defined
Comment out infracfg clk not defined in upstream kernel linux clock ID
include. These clock are not used and can be safely commented. Keep them
just to have a reference of their existence.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
d061f73a92 clk: mediatek: mt7988: drop 1/1 spurious factor for topckgen
Now that we can have advanced parent handling for mux, we can drop
spurious topckgen 1/1 factor. This is in preparation to make the clk
ID match the ID in upstream include for mt7988.

Drop the factor entry from mt7988-clk.h and reference to them in
mt7988.dtsi. Muxes and gates are updated to reference the apmixed clk
following how it's done in upstream kernel linux. Add relevant clk type
flag in clk_tree for apmixed and topckgen.

Also move TOP_XTAL to the fixed clock table following how it's done in
upstream linux kernel.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
1bafda9851 clk: mediatek: mt7988: reorder TOPCKGEN factor ID
Reorder TOPCKGEN factor ID to put TOP_FACTOR first and then PLL. This is
to match how it's done in upstream kernel linux and in preparation for
OF_UPSTREAM support.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
8b75c2c479 clk: mediatek: mt7988: rename TOPCKGEN factor clock to upstream naming
Rename TOPCKGEN factor clock to upstream neaming.
Upstream kernel linux reference the factor clock for apmixedpll with the
"pll" suffix. Align the naming to the upstream naming format in
preparation for OF_UPSTREAM support.

Also rename rtc clock to drop the CB_ as upstream doesn't have that.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
78507c3a9f clk: mediatek: mt7988: drop 1/1 infracfg spurious factor
Now that we can have advanced parent handling for mux, we can drop
spurious infracfg 1/1 factor. This is in preparation to make the clk
ID match the ID in upstream include for mt7988.

Drop the factor entry from mt7988-clk.h and reference to them in
mt7988.dtsi. Muxes and gates are updated to reference the topckgen clk
following how it's done in upstream kernel linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
caa5f27382 clk: mediatek: mt7988: fix wrong parent for INFRA_PCIE_PERI_26M_CK_P2
Fix wrong parent for INFRA_PCIE_PERI_26M_CK_P2 as should be
INFRA_PCIE_PERI_26M_CK_P3 instead of INFRA_F26M_O0. This is to match
implementation on upstream kernel linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
49d11169f7 clk: mediatek: mt7988: move INFRA_PCIE_PERI_26M_CK_Px clock at top
Move INFRA_PCIE_PERI_26M_CK_Px clock at top of the infracfg gates
in preparation for support of OF_UPSTREAM to have a 1:1 match with
upstream clock ID.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
603585892f clk: mediatek: mt7988: rename TOP_CK_NPU_SEL_CM_TOPS_SEL to TOP_NPU_SEL
Upstream kernel linux clock include use TOP_NPU_SEL instead of
TOP_CK_NPU_SEL_CM_TOPS_SEL.
Rename this clock to the upstream kernel in preparation for support of
OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
e7ecdd5a46 clk: mediatek: mt7988: rename TOP_DA_SELM_XTAL_SEL to TOP_DA_SEL
Upstream kernel linux clock include use TOP_DA_SEL instead of
TOP_DA_SELM_XTAL_SEL.
Rename this clock to the upstream kernel in preparation for support of
OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Christian Marangi
b76b75bfc6 clk: mediatek: mt7988: rename CB_CKSQ_40M to TOP_XTAL
Upstream kernel linux clock include use TOP_XTAL instead of CB_CKSQ_40M.
Rename this clock to the upstream kernel in preparation for support of
OF_UPSTREAM.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:14:09 -06:00
Tom Rini
98cccbd680 Merge patch series "clk: mediatek: mt7981: clk migration for OF_UPSTREAM"
Christian Marangi <ansuelsmth@gmail.com> says:

These are all the required patches to migrate clk and correctly support
OF_UPSTREAM. This will align the clk index to upstream to support the same
clk implementation with downstream and upstream DTS.
2024-08-19 16:13:57 -06:00
Christian Marangi
02de3b9f04 clk: mediatek: mt7981: rename CK to CLK
Rename each entry from CK to CLK to match the include in upstream kernel
linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
99da5bbd80 clk: mediatek: mt7981: convert to unified infracfg gates + muxes
Convert to infracfg gates + muxes implementation now that it's
supported.

Drop infracfg-ao nodes and rename all infracfg-ao clocks to infracfg.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
2d20cc4064 clk: mediatek: mt7981: fix support for pwm3 clock
Add and fix support for pwm3 clock. In the pwm DTSI node we were
actually using PWM2 clock for PWM3. Now that we have correct ID also add
the missing entry of gate and mux to support PWM3 clock.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
2967f21182 clk: mediatek: mt7981: replace infracfg ID with upstream linux
Replace infracfg clk ID with upstream linux version.

Add some missing clk for PWM3 and for PCIe. The same format is used here
with the factor first, then mux and then gates.

To correctly reference the gates in clk_gate function, define the
gates_offs value in clk_tree now that they are at an offset from mux and
factor.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
78487cd093 clk: mediatek: mt7981: drop 1/1 spurious factor
Now that we can have advanced parent handling for mux, we can drop
spurious infracfg 1/1 factor. This is in preparation to make the clk
ID match the ID in upstream include for mt7981.

Drop the factor entry from mt7981-clk.h and reference to them in
mt7981.dtsi. Muxes and gates are updated to reference the topckgen clk
following how it's done in upstream kernel linux. Add relevant clk type
flag in clk_tree for infracfg and topckgen.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
807624c1e1 clk: mediatek: mt7981: implement sgmii0/1 clock
Implement missing sgmii0/1 clock and update the compatible the DTS to
match upstream kernel linux and in preparation for OF_UPSTREAM support
since the ethernet node define these additional clocks.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
e568997faa clk: mediatek: mt7981: fix wrong parent list for INFRA_PWM1_SEL mux
Fix wrong parent list for INFRA_PWM1_SEL mux. The list is incorrect and
the parents are just 2. This also match the upstream linux
implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
02af9cad70 clk: mediatek: mt7981: fix wrong parent for TOP_FAUD clock
Fix wrong parent for TOP_FAUD clock. Upstream linux sets the parent for
TOP_FAUD to TOP_AUD_SEL instead of CB_CKSQ_40M.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
f8a58bb2b5 clk: mediatek: mt7981: swap wrong clock-names for spi nodes
Swap wrong clock-names for spi nodes as they were wrong and the spi-clk
was referencing the sel-clk and the sel-clk was referencing the spi-clk.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
37476e7eae clk: mediatek: mt7981: add missing clock for spi1 node
Add missing clock for spi1 node. Clocks taken from upstream clock
definition and clock mux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
99bd00a97c clk: mediatek: mt7981: fix wrong clock definition for spi2
Fix wrong clock definition for spi2 node as they reference spi0 clock
instead of spi2.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
a3cc4a4810 clk: mediatek: mt7981: fix wrong mux width for pwm2 and pwm1 clock
Fix wrong mux width for pwm2 and pwm1. Upstream have width 1 but U-Boot
have width set to 2. Change the value to follow upstream implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
99d3da81bd clk: mediatek: mt7981: fix typo for infra_i2c0_ck
Fix a typo for infra_i2c0_ck where 0 was misspelled as O.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Christian Marangi
7c732d09f9 clk: mediatek: mt7981: add missing clock for infra_ipcie_pipe
Add missing clock for infra_ipcie_pipe to make PCIe correctly work. This
clock is a parent of the fixed clock from topckgen cb_cksq_40m.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:13:13 -06:00
Tom Rini
f5703ceeb9 Merge patch series "clk: mediatek: mt7623: clk migration for OF_UPSTREAM"
Christian Marangi <ansuelsmth@gmail.com> says:

These are all the required patches to migrate clk and correctly support
OF_UPSTREAM. This will align the clk index to upstream to support the same
clk implementation with downstream and upstream DTS.
2024-08-19 16:13:01 -06:00
Christian Marangi
5c15548f7d clk: mediatek: mt7623: remap peri clock ID and add MUX
Upstream kernel linux makes use of peri clock MUX to setup UART.

Add definition for these and add remap table as in the upstream clock ID
order gates are before MUX but we require MUX first and then clocks in
our downstream driver.

Convert the peri clk tree to MUX + GATE implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Tested-by: Frank Wunderlich <frank-w@public-files.de>
2024-08-19 16:12:51 -06:00
Christian Marangi
57f7ddd1b2 clk: mediatek: mt7623: remap apmixedsys clock ID
Define remap table also for apmixedsys clock ID. The clock ID starts
from 1 instead of 0 in upstream kernel linux.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:12:51 -06:00
Christian Marangi
108a62b57e clk: mediatek: mt7623: define id_offs_map and import clk ID from upstream
Define id_offs_map and use clk ID form upstream linux kernel to have a
1:1 match for the TOPCKGEN clock and permit usage of OF_UPSTREAM with
upstream dtsi.

For all the gate clock, the clk ID starts from 1 instead of zero. Define
an additional clock tree for them and set the .gates_offs to 1 to
account for this.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:12:51 -06:00
Christian Marangi
efd35fa07b clk: mediatek: mt7623: split clk tree to dedicated topckgen and apmixed
Split clk tree to dedicated topckgen and apmixed in preparation for
remap table.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:12:51 -06:00
Christian Marangi
c721d5a92a clk: mediatek: mt7623: fix broken peri_cgs clk with XTAL parents
Fix broken peri_cgs and infra_cgs clock with XTAL parents as they have
wrong definition of the parent type.

Correctly fix them and use CLK_PARENT_XTAL for them.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19 16:12:51 -06:00
Sam Protsenko
25a972368c doc: samsung: Mention enabled eMMC in E850-96 board doc
eMMC is enabled on E850-96 board now. Mention that in the board
documentation.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
e6abbb6012 configs: e850-96: Enable MMC
Enable MMC subsystem and DW MMC driver support to make eMMC functional.
Also enable a couple of related commands so the user can make use of
eMMC from U-Boot shell.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
4a29c0d36b arm: dts: exynos: Remove outdated DW MMC properties in all Exynos dts
Upstream properties were added to device trees to follow current Linux
kernel. DW MMC driver was updated accordingly. Safely remove outdated
MMC properties. Details on removed properties are as follows:

* samsung,removable: replaced by non-removable
* samsung,bus-width: replaced by bus-width
* samsung,timing:
  - replaced by samsung,dw-mshc-ciu-div and samsung,dw-mshc-sdr-timing
    in dw_mmc nodes
  - removed from sdhci nodes (it's neither described in bindings, nor
    it's used in s5p_sdhci.c driver)
* fifoth_val: replaced by fifo-depth
* bus_hz: replaced by clock-frequency
* div: the fixed CIU clock divider value was moved to the chip data in
  exynos_dw_mmc.c driver

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
9bedead15a mmc: exynos_dw_mmc: Improve coding style
Fix most of checkpatch warnings and other obvious style issues.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
549afd7f32 mmc: exynos_dw_mmc: Use dev->name as driver's displayed name
Reduce U-Boot footprint by reusing dev->name as a driver's displayed
name. This changes boot device name (and "mmc info" output) from "EXYNOS
DWMMC" to something like "mmc@12100000".

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
06663c917f mmc: exynos_dw_mmc: Don't call dwmci_setup_cfg() after add_dwmci()
add_dwmci() is already calling dwmci_setup_cfg() internally, there is no
needed to call dwmci_setup_cfg() again in case when add_dwmci() is used
(for non-DM cases). Fix it by calling dwmci_setup_cfg() only in DM
cases, when add_dwmci() wasn't called. Also, this assignment:

    host->mmc = &plat->mmc;

is wrong in non-DM case when add_dwmci() was called, as it's creating
mmc object internally. Fix that by pulling that assignment into DM case,
when add_dwmci() isn't called.

While at it, add also this missing assignment:

    host->mmc->dev = dev;

Fixes: 3537ee879e ("mmc: exynos_dw_mmc: support the Driver mode for Exynos")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
0d5e81717e mmc: exynos_dw_mmc: Pull all init code into probe function
There is no logical sense to split the initialization code between
multiple functions. Pull both do_dwmci_init() and
exynos_dwmci_core_init() into exynos_dwmmc_probe() to make the code more
simple and obvious.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
9780ca6539 mmc: exynos_dw_mmc: Add support for ARM64 Exynos chips
Add the compatible entry and corresponding chip data for Exynos7
compatible chips, which covers modern ARM64 based Exynos chips. They
have some differences w.r.t. old ARM32 Exynos chips:
  - CLKSEL register offset is different
  - 64-bit IDMAC descriptor and 64-bit IDMAC registers are used
    (implemented in dw_mmc core driver)

In terms of the driver implementation, the CIU clock is obtained via CCF
framework (as opposed to ad-hoc clock driver implementation for ARM32
chips).

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
97e7d1c1f0 mmc: exynos_dw_mmc: Set requested freq in get_mmc_clk() callback
By now exynos_dw_mmc driver was relying on the correct CIU clock
frequency being set on driver init. But dw_mmc core is actually trying
to change CIU clock rate dynamically, on init and in set_ios() callback,
which it's requesting via host->get_mmc_clk() callback (the name is
misleading: although it's called "get_mmc_clk()", it can actually
request both get and set operations). Implement setting the requested
rate for CIU clock in Exynos driver to achieve the correct dw_mmc core
driver operation at all times. DDR mode requires the clock to be twice
as fast (when 8 bit bus is used), so handle this too, to make DDR
function properly.

This change makes the eMMC throughput on E850-96 board twice as fast.
That's because "clock-frequency" is set to 800 MHz in E850-96 device
tree, but for DDR52 mode it should be 416 MHz (and TRM states it should
be 400 MHz for DDR50/8bit mode). The dw_mmc core is requesting 52 MHz
bus_hz for DDR52 mode, and DDR+8bit mode means it should be x2 fast, so:

    f_ciu = 2 * ciu_div * f_bus = 2 * 4 * 52e6 = 416 MHz,

where f_ciu   - freq of clock fed to DW MMC block from CMU (SDCLKIN), Hz
      f_bus   - freq of clock fed to the card (CCLKIN), Hz
      ciu_div - value of internal divider (in DW MMC block).

Another way to work that around would be overriding the
"clock-frequency" property in corresponding dts. But setting the clock
frequency dynamically as it's done here looks much neater.

This implementation follows what's done in Linux kernel dw_mmc-exynos
driver in .set_ios() callback for MMC_TIMING_MMC_DDR52 case.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
4f89f6029a mmc: exynos_dw_mmc: Read and use DDR timing when available
DDR timing values should be defined in "samsung,dw-mshc-ddr-timing" dts
property, and used when DDR MMC mode is selected. Read that value from
dts and use it. If it's not available, use SDR timing values instead.
This change is following upstream Linux kernel implementation.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
b8ea3810aa mmc: exynos_dw_mmc: Move quirks from struct dwmci_host to chip data
host->quirks field is only used internally in exynos_dw_mmc.c driver.
To avoid cluttering the scope of struct dwmci_host, move quirks field
into Exynos driver's chip data, where it can be statically defined.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
897e96c5a8 mmc: exynos_dw_mmc: Read common clock-frequency property
Instead of using non-standard "bus_hz" dts property, read common
"clock-frequency" property used in upstream Linux kernel. It's safe to
do so, as "clock-frequency" property was already added to corresponding
nodes in all affected Exynos device tree files.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
d355c1cf61 mmc: exynos_dw_mmc: Read common bus-width property
Instead of using non-standard "samsung,bus-width" dts property, read
common "bus-width" property used in upstream Linux kernel. It's safe to
do so, as "bus-width" property was already added to corresponding nodes
in all affected Exynos device tree files.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
56ba9455a5 mmc: exynos_dw_mmc: Refactor fixed CIU clock divider
Some chips like Exynos4412 have fixed internal CIU clock divider.
Instead of reading it from non-standard "div" dts property, store its
value in the driver internally, in static chip data associated with
corresponding compatible. This makes it possible to avoid using
host->div for storing it, so the latter can be removed safely. Also
create a helper function called exynos_dwmmc_get_ciu_div() for getting
the current div value: in case the fixed div is provided in the chip
data it will be used, otherwise the current div value is being read from
CLKSEL register.

The insights for this change were taken from dw_mmc-exynos.c driver in
Linux kernel.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
a95b726e2e mmc: exynos_dw_mmc: Abstract CLKSEL register
CLKSEL register offset may vary between different Exynos chips, e.g. on
ARM64 vs ARM32 chips. Provide a way to specify its offset value for each
compatible instead of hard-coding its value in read/write calls.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
b55f03ee04 mmc: exynos_dw_mmc: Read upstream SDR timing properties
The obsolete "samsung,timing" dts property is now split into
"samsung,dw-mshc-ciu-div" (for holding the internal DW MMC divider
value) and "samsung,dw-mshc-sdr-timing" (for actual timing values) in
upstream Linux kernel. Rework the driver to make use of new properties
instead of the old one. All affected dts files were already updated
accordingly.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
516f152d08 mmc: exynos_dw_mmc: Convert to use livetree API
Update the driver to use livetree API instead of FDT one.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
658a1b873a mmc: exynos_dw_mmc: Use .of_to_plat for device tree parsing
exynos_dwmci_get_config() is called from the probe function and used to
read data from device tree. Make use of .of_to_plat driver callback
instead, and convert exynos_dwmci_get_config() to match its signature.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
8303fd6f57 mmc: exynos_dw_mmc: Obtain and use CIU clock via CCF API
New Exynos chips should implement clock drivers using CCF framework. In
that case corresponding CCF functions can be used to get/set the clock
rates. Moreover, already existing get_mmc_clk() and set_mmc_clk() calls
are only implemented for CONFIG_CPU_V7A (i.e. ARM32 chips). In case of
ARM64 chips that config option is not defined, so build will crash on
linking stage, with errors like these:

    ld: drivers/mmc/exynos_dw_mmc.o:
      in function `exynos_dwmci_get_sclk':
      undefined reference to `get_mmc_clk'
    ld: drivers/mmc/exynos_dw_mmc.o:
      in function `exynos_dwmci_set_sclk':
      undefined reference to `set_mmc_clk'

Fix that issue by using CCF clocks API on ARM64 platforms for getting
and setting the source clock (sclk = SDCLKIN = CIU) rate. To implement
this, first extract the existing ARM32 clock control code into helper
functions with more generic signatures to abstract getting/setting the
sclk rate. Then add CCF clock support to those functions for ARM64
platforms.

Fixes: a082a2dde0 ("EXYNOS5: DWMMC: Added FDT support for DWMMC")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
f6b7f9e7bf mmc: exynos_dw_mmc: Don't call pinmux functions on ARM64 chips
Pinmux configuration on ARM64 platforms must be performed during startup
in pinctrl driver using info from device tree. exynos_pinmux_config()
and pinmux_decode_periph_id() are only available on ARM32 platforms, so
don't call those functions on ARM64 platforms. Instead of the latter
function, use "non-removable" property from device tree to derive the
dev_index value.

This fixes next linking errors on ARM64 platforms:

    ld: drivers/mmc/exynos_dw_mmc.o:
      in function `exynos_dwmci_get_config':
      undefined reference to `pinmux_decode_periph_id'
    ld: drivers/mmc/exynos_dw_mmc.o:
      in function `do_dwmci_init':
      undefined reference to `exynos_pinmux_config'

Fixes: a082a2dde0 ("EXYNOS5: DWMMC: Added FDT support for DWMMC")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
c61f92eeb6 mmc: exynos_dw_mmc: Fix getting private data in exynos_dwmci_board_init()
In case of CONFIG_DM_MMC, host->priv actually holds (struct udevice *),
and not (struct dwmci_exynos_priv_data *). This makes *priv pointer
invalid and may lead to Synchronous Abort during its dereference later
in exynos_dwmci_board_init(). Fix it by extracting
exynos_dwmmc_get_priv() helper from exynos_dwmci_clksel() and using it
for getting the private data in exynos_dwmci_board_init()

Fixes: 3537ee879e ("mmc: exynos_dw_mmc: support the Driver mode for Exynos")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
ff2b88365d mmc: exynos_dw_mmc: Fix obtaining the base address of controller
Getting the base address with outdated fdtdec_get_addr() API and further
casting it to (void *) leads to next build warning on ARM64 platforms:

    In function 'exynos_dwmci_get_config':
        warning: cast to pointer from integer of different size
        [-Wint-to-pointer-cast]
            host->ioaddr = (void *)base;

Use livetree API instead (dev_read_addr_ptr()), which handles this
correctly.

Fixes: a082a2dde0 ("EXYNOS5: DWMMC: Added FDT support for DWMMC")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
29b4ff362a arm: exynos: Add header guard for dwmmc.h
Add missing header guard to prevent possible build errors.

Fixes: 77b55e8cfc ("ARM: exynos: move SoC sources to mach-exynos")
Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
0e29d6608e dt-bindings: exynos: Update bindings doc for DW MMC controller
Update the bindings doc for Exynos DW MMC block to follow the upstream
example and reflect the latest changes made in corresponding Linux
kernel bindings.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
d1c057fd49 arm: dts: exynos: Add upstream DW MMC properties to all Exynos dts
Some device tree properties for DW MMC block were updated in Linux
kernel. Let's follow its example and rework corresponding properties in
all Exynos device trees. Don't remove outdated properties yet, it'll be
done later once DW MMC driver is updated accordingly to read the updated
properties instead of outdated ones.

Next properties are added:

* samsung,dw-mshc-ciu-div and samsung,dw-mshc-sdr-timing:

  They were derived from outdated samsung,timing property.

* fifo-depth (generic replacement for fifoth_val):

  FIFO depth was calculated from fifoth_val (using expressions from
  FIFOTH register description in TRM):

      fifo-depth = ((fifoth_val >> 16) + 1) * 2

* bus-width: generic replacement for samsung,bus-width
* clock-frequency: generic replacement for bus_hz
* non-removable: generic replacement for samsung,removable = <0>

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
84d5bd070c mmc: dw_mmc: Improve coding style
Fix most of checkpatch warnings and other obvious style issues.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
5a9a0e42bc mmc: dw_mmc: Fix kernel-doc comments in dwmmc.h
Rework kernel-doc comments in dwmmc.h header so it's actually possible
to generate a proper documentation from it usin scripts/kernel-doc
script, with no errors.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
ffd62e051b mmc: dw_mmc: Replace fifoth_val property with fifo-depth
Replace fifoth_val property with its fifo-depth counterpart in all DW
MMC drivers. fifo-depth is a common property used in upstream Linux
kernel. The FIFOTH register value will be calculated using fifo-depth
value in DW MMC core (dw_mmc.c). This change reduces code duplication in
platform drivers, and pulls common FIFOTH register value calculation
into core dw_mmc driver where it belongs.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
e760a245e2 mmc: dw_mmc: Add support for 64-bit IDMAC
Some DW MMC blocks (e.g. those on modern Exynos chips) support 64-bit
DMA addressing mode. 64-bit DW MMC variants differ from their 32-bit
counterparts:
  - the register layout is a bit different (because there are additional
    IDMAC registers present for storing upper part of 64-bit addresses)
  - DMA descriptor structure is bigger and different from 32-bit one

Introduce all necessary changes to enable support for 64-bit DMA capable
DW MMC blocks. Next changes were made:

  1. Check which DMA address mode is supported in current IP-core
     version. HCON register (bit 27) indicates whether it's 32-bit or
     64-bit addressing. Add boolean .dma_64bit_address field to struct
     dwmci_host and store the result there. dwmci_init_dma() function is
     introduced for doing so, which is called on driver's init.

  2. Add 64-bit DMA descriptor (struct dwmci_idmac64) and use it in
     dwmci_prepare_desc() in case if .dma_64bit_address field is true.
     A new dwmci_set_idma_desc64() function was added for populating that
     descriptor.

  3. Add registers for 64-bit DMA capable blocks. To make the access to
     IDMAC registers universal between 32-bit / 64-bit cases, a new
     struct dwmci_idmac_regs (and corresponding host->regs field) was
     introduced, which abstracts the hardware by being set to
     appropriate offset constants on init. All direct calls to IDMAC
     registers were correspondingly replaced by accessing host->regs.

  4. Allocate and use 64-bit DMA descriptors buffer in case when IDMAC
     is 64-bit capable. Extract all the code (except for the IDMAC
     descriptors buffer allocation) from dwmci_send_cmd() to
     dwmci_send_cmd_common(), so that it's possible to keep IDMAC
     buffer (either 32-bit or 64-bit) on stack during send_cmd routine.

The insights for this implementation were taken from Linux kernel DW MMC
driver.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
61f47c81a9 mmc: dw_mmc: Improve 32-bit IDMAC descriptor namings
Prepare for adding 64-bit IDMAC descriptors by renaming current 32-bit
descriptor and its fields accordingly. While at it, make use of
virt_to_phys() to make it more obvious in which places the physical
addresses have to be used.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
6e17517b5c mmc: dw_mmc: Extract setting the DMA descriptor into a separate routine
Make dwmci_prepare_data() function easier to read by extracting the
preparation of IDMAC descriptor into a dedicated function.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
95e42a5465 mmc: dw_mmc: Extract DMA transfer handling code into a separate routine
Make dwmci_send_cmd() easier to read by moving the DMA transfer handling
code into a dedicated function.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
0252924ac6 mmc: dw_mmc: Extract FIFO data transfer into a separate routine
FIFO data transfer is implemented as quite a massive chunk of code.
Extract it into a dedicated function to make dwmci_data_transfer()
easier to read and reduce the indentation level of the code.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
454fda956c mmc: dw_mmc: Extract divider update to a separate function
Extract the clock divider update into dwmci_update_div() function. It's
a procedure recommended in TRM, so it's better to keep it in a dedicated
function to make the code clearer.

While at it also extract the clock control code into a separate routine
to avoid code duplication in dwmci_setup_bus().

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
1db6dd1fef mmc: dw_mmc: Extract FIFO init into a separate routine
Move FIFO threshold initialization into a separate function to make
dwmci_init() more readable.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
2015f24f78 mmc: dw_mmc: Extract waiting for data busy into a separate routine
Waiting for data busy is a logically separate operation and should be
implemented as a separate routine. Follow Linux kernel example and
extract it from dwmci_send_cmd(). This way it doesn't clutter
dwmci_send_cmd() function, and can be reused later in other cases.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
96ea89000f mmc: dw_mmc: Move struct idmac to dw_mmc.c
struct idmac is only used in dw_mmc.c, so move it there from dwmmc.h to
avoid cluttering the interface in the header.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Sam Protsenko
4302e65647 mmc: dw_mmc: Remove unused version field from struct dwmci_host
Nobody seems to use it, so just remove it.

No functional change.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2024-08-19 16:09:06 +09:00
Richard Weinberger
107ed84602 ext4: Fix zalloc()
Currently, zalloc() calls uncondtionally memset(),
if the allocation failes, memset() will write to a null pointer.

Fix by using kzalloc().

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2024-08-15 16:14:36 -06:00
Richard Weinberger
a29805d822 compiler: Ensure __builtin_*_overflow() support
Both gcc and clang support this for a long time.
Make sure the feature is present.

Signed-off-by: Richard Weinberger <richard@nod.at>
2024-08-15 16:14:36 -06:00
Richard Weinberger
35f75d2a46 ext4: Fix integer overflow in ext4fs_read_symlink()
While zalloc() takes a size_t type, adding 1 to the le32 variable
will overflow.
A carefully crafted ext4 filesystem can exhibit an inode size of 0xffffffff
and as consequence zalloc() will do a zero allocation.

Later in the function the inode size is again used for copying data.
So an attacker can overwrite memory.

Avoid the overflow by using the __builtin_add_overflow() helper.

Signed-off-by: Richard Weinberger <richard@nod.at>
2024-08-15 16:14:36 -06:00
Richard Weinberger
048d795bb5 squashfs: Fix heap corruption in sqfs_search_dir()
res needs to be large enough to store both strings rem and target,
plus the path separator and the terminator.
Currently the space for the path separator is not accounted, so
the heap is corrupted by one byte.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2024-08-15 16:14:36 -06:00
Richard Weinberger
4f5cc096bf squashfs: Fix stack overflow while symlink resolving
The squashfs driver blindly follows symlinks, and calls sqfs_size()
recursively. So an attacker can create a crafted filesystem and with
a deep enough nesting level a stack overflow can be achieved.

Fix by limiting the nesting level to 8.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2024-08-15 16:14:36 -06:00
Richard Weinberger
3fb1df1e57 squashfs: Check sqfs_find_inode() return value
The function can fail and return NULL.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2024-08-15 16:14:36 -06:00
Richard Weinberger
c8e929e575 squashfs: Fix integer overflow in sqfs_inode_size()
A carefully crafted squashfs filesystem can exhibit an extremly large
inode size and overflow the calculation in sqfs_inode_size().
As a consequence, the squashfs driver will read from wrong locations.

Fix by using __builtin_add_overflow() to detect the overflow.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2024-08-15 16:14:36 -06:00
Richard Weinberger
233945eba6 squashfs: Fix integer overflow in sqfs_resolve_symlink()
A carefully crafted squashfs filesystem can exhibit an inode size of 0xffffffff,
as a consequence malloc() will do a zero allocation.
Later in the function the inode size is again used for copying data.
So an attacker can overwrite memory.
Avoid the overflow by using the __builtin_add_overflow() helper.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
2024-08-15 16:14:36 -06:00
Richard Weinberger
9b9368b5c4 dlmalloc: Make sure allocation size is within malloc area
Since U-Boot does not support memory overcommit we can
enforce that the allocation size is within the malloc area.
This is a simple and efficient hardening measure to mitigate
further integer overflows in dlmalloc.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 16:14:36 -06:00
Richard Weinberger
0a10b49206 dlmalloc: Fix integer overflow in sbrk()
Make sure that the new break is within mem_malloc_start
and mem_malloc_end before making progress.
ulong new = old + increment; can overflow for extremely large
increment values and memset() can get wrongly called.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 16:14:36 -06:00
Richard Weinberger
8642b2178d dlmalloc: Fix integer overflow in request2size()
req is of type size_t, casting it to long opens the door
for an integer overflow.
Values between LONG_MAX - (SIZE_SZ + MALLOC_ALIGN_MASK) - 1 and LONG_MAX
cause and overflow such that request2size() returns MINSIZE.

Fix by removing the cast.
The origin of the cast is unclear, it's in u-boot and ppcboot since ever
and predates the CVS history.
Doug Lea's original dlmalloc implementation also doesn't have it.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 16:14:36 -06:00
Richard Weinberger
c17b2a05dd x86: Fix ptrdiff_t for x86_64
sbrk() assumes ptrdiff_t is large enough to enlarge/shrink the heap
by LONG_MIN/LONG_MAX.
So, use the long type, also to match the rest of the Linux ecosystem.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 16:14:36 -06:00
Richard Weinberger
1779a58c66 bootstage: Fix out-of-bounds read in reloc_bootstage()
bootstage_get_size() returns the total size of the data structure
including associated records.
When copying from gd->bootstage, only the allocation size of gd->bootstage
must be used. Otherwise too much memory is copied.

This bug caused no harm so far because gd->new_bootstage is always
large enough and reading beyond the allocation length of gd->bootstage
caused no problem due to the U-Boot memory layout.

Fix by using the correct size and perform the initial copy directly
in bootstage_relocate() to have the whole relocation process in the
same function.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 14:35:31 -06:00
Richard Weinberger
faf73fb70d ext4: Improve feature checking
Evaluate the filesystem incompat and ro_compat bit fields to judge
whether the filesystem can be read or written.
For the read side only a scary warning is shown so far.
I'd love to abort mounting too, but I fear this will break some setups
where the driver works by chance.

Signed-off-by: Richard Weinberger <richard@nod.at>
2024-08-15 14:35:15 -06:00
JianfengA.Zhu@sony.com
37dc8c2e98 lib: elf: Fix bootelf -p crash issue
Do not load and flush segments whose program header type is not
PT_LOAD to avoid crash happen.

bootelf will load all program headers and then flush cache.
Since PT_GNU_STACK start address is 0x0, crash happens when
it flushes PT_GNU_STACK area for target that memory cannot be
accessed from address 0x0.

crash call stack:
====================================================================
bootelf -p
|-> do_bootelf (cmd/elf.c)
 |-> load_elf_image_phdr (lib/elf.c) /* Load each program header */
  |-> for (i = 0; i < ehdr->e_phnum; ++i) { /* e_phnum is 2 */
   |-> flush_cache(start=0, size=0) (arch/arm/lib/cache.c) (*1)
    |-> flush_dcache_range(start=0, 0); (arch/arm/cpu/armv8/cache_v8.c)
     |-> __asm_flush_dcache_range(start=0, 0) (arch/arm/cpu/armv8/cache.S)
      |-> /* clean & invalidate data or unified cache */
      |-> dc      civac, x0       <<== crash happen x0:start=0
====================================================================
*1 Here the p_paddr and p_filesz of the GNU_STACK program are 0.

hello_world elf image program headers
====================================================================
Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  LOAD           0x0000000000000000 0x0000000080ff0000 0x0000000080ff0000
                 0x0000000000010390 0x0000000000010390  R E    0x10000
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10

 Section to Segment mapping:
  Segment Sections...
   00     .text .rodata .eh_frame
   01
====================================================================

bootelf -p crash error log
====================================================================
bootelf -p 0x80f00000
"Synchronous Abort" handler, esr 0x96000147, far 0x0
elr: 000000008f6035bc lr : 000000008f66ff54 (reloc)
elr: 00000000bd9475bc lr : 00000000bd9b3f54
x0 : 0000000000000000 x1 : 0000000000000000
x2 : 0000000000000040 x3 : 000000000000003f
x4 : 0000000081000390 x5 : 00000000bd12da98
x6 : 0000000000000010 x7 : 0000000000000010
x8 : 000000000000000a x9 : 00000000bd156b30
x10: 00000000bd1526e0 x11: 0000000000000000
x12: 0000000000000004 x13: 00000000bda00000
x14: 00000000ffffffff x15: 00000000bd12dab7
x16: 00000000bd957b14 x17: 0000000000000000
x18: 00000000bd13fd90 x19: 0000000080f000b0
x20: 0000000080f00000 x21: 0000000000000002
x22: 0000000000000000 x23: 0000000000000003
x24: 00000000bd9eacc0 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000bd154c80 x29: 00000000bd12da70

Code: d2800082 9ac32042 d1000443 8a230000 (d50b7e20)
====================================================================

Signed-off-by: Jianfeng Zhu <JianfengA.Zhu@sony.com>
Reviewed-by: Jacky Cao <Jacky.Cao@sony.com>
Reviewed-by: Toyama, Yoshihiro <Yoshihiro.Toyama@sony.com>
2024-08-15 14:26:59 -06:00
Andrew Davis
b39248732a arm: dts: keystone: Move to OF_UPSTREAM
Enable OF_UPSTREAM for Keystone boards. Remove DT files that
are now available in dts/upstream.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Neha Malcom Francis <n-francis@ti.com>
2024-08-15 14:26:59 -06:00
Sean Anderson
6a087c0182 pinmux: generic: Use ENOENT instead of ENOSYS
ENOSYS should only be used when a subsystem is completely absent.
Convert its use in pinctrl-generic to ENOENT, which better reflects the
error condition (that a function/group/pin is missing).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 14:26:59 -06:00
Ravi Minnikanti
2a521d01e6 env: remove vars that are not in default env
current env_set_default_vars() doesn't delete
var that are not in the imported env. hashtable
removes vars that are not in the imported
env but present in the current env only if H_NOCLEAR
flag is not set.

This change is to avoid passing H_NOCLEAR flag if
specific vars are passed to env_set_default_vars()

Without this change:
Marvell>> env default boot_mode
Marvell>>

With the change:
Marvell>> env default boot_mode
WARNING: 'boot_mode' not in imported env, deleting it!

Signed-off-by: Ravi Minnikanti <rminnikanti@marvell.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2024-08-15 11:50:47 -06:00
Yasuharu Shibata
dbb6b5a010 sandbox: fix wget test failure after fixing wget issue
After applying the following patch, wget test on sandbox failed[1].

  Commit: cab7867cff ("net: wget: Support retransmission a dropped packet")

Here are two reasons why the test is failed and how to fix it:

1. tcp_ack is calculated by the wrong value.
   tcp_ack needs to be calculated by the received TCP payload size.
2. wget command may have a problem that HTTP response from server
   must be divided into more than two packets.
   In this commit, HTTP response is divided into two packets.

In addition, I fixed the HTTP response returned at the correct timing.

[1] https://lore.kernel.org/u-boot/CAFLszThEbk2Jr8OZ6Hj21wPSnJjgJhaDe037RqwHvwt1KjB3_A@mail.gmail.com/

Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
Reported-by: Simon Glass <sjg@chromium.org>
2024-08-15 11:32:12 -06:00
Yasuharu Shibata
4f64730f8d sandbox: Enable wget command
Enable this so that the tests run.

Fix a few warnings in the code so that CI passes.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
2024-08-15 11:32:12 -06:00
Mikhail Kshevetskiy
c964f331be cmd: led: fix led command usage for the LED_SW_BLINK enabled case
CONFIG_LED_BLINK and CONFIG_LED_SW_BLINK can be defined independently.
Led blinking works if any (or both) of them is enabled. Unfortunately
the led command help does not display blinking option if only
CONFIG_LED_SW_BLINK is enabled. This is definitely wrong.

This patch fix an issue.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Alexander Dahl <ada@thorsis.com>
2024-08-15 11:30:41 -06:00
Michael Polyntsov
3d7f194597 spi: soft_spi: Parse cs-gpios only if num-chipselects is not <0>
Some boards don't have chipselect lines for leds so cs-gpios is not
specified in the dts leading to probing error. Fix it by making
behavior similar to the one in Linux, parse num-chipselects and
if it is zero, ignore cs-gpios.

Signed-off-by: Michael Polyntsov <michael.polyntsov@iopsys.eu>
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2024-08-15 11:28:47 -06:00
Mikhail Kshevetskiy
1d662a64a7 spi: soft_spi: fix miso gpio property name
The patch fix a missprint introduced in commit 2e9fe73a88 ("spi: soft_spi:
Support the recommended soft spi properties").

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-08-15 11:28:47 -06:00
Tom Rini
638ecd85b3 Merge tag 'i2c-dm-updates-for-v2024-10-next' of https://source.denx.de/u-boot/custodians/u-boot-i2c into next
i2c DM updates for v2024.10 next

- Add series from Simon, which removes old content in i2c.h
  so that we can move towards having just the dm API.

  It does not remove any boards, but instead removes functionality.
2024-08-13 10:09:45 -06:00
Simon Glass
710b9c89f2 i2c: Remove CFG_SYS_I2C_DIRECT_BUS
Now that this is always 1, remove it and the associated dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:23:15 +02:00
Simon Glass
7fca1ae860 i2c: Remove CFG_SYS_I2C_MAX_HOPS
Now that this is always 0, remove it and the associated dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:23:05 +02:00
Simon Glass
a48ecabaea i2c: Drop i2c_get_bus_num_fdt() and i2c_reset_port_fdt()
These functions are 11 years old and are only used by one board. Drop
them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:17:42 +02:00
Simon Glass
edccbae4b4 i2c: Drop CFG_SYS_MAX_I2C_BUS
Only one board uses this option and it is very old. Let's drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:16:08 +02:00
Simon Glass
4b8d78cb79 i2c: Remove I2C_GET_BUS()
This is very old, predating even the legacy I2C support, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:16:01 +02:00
Simon Glass
986ef77061 i2c: Remove I2C_SET_BUS()
This is very old, predating even the legacy I2C support, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:14:55 +02:00
Simon Glass
b76f37ce63 octeon: Drop OCTEON_I2C_FDT dead code
This option is not defined by any board, so drop the code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:14:44 +02:00
Simon Glass
56ec7a69d8 i2c: Drop reference to SYS_I2C_INIT_BOARD
This is not now used by any boards, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:14:36 +02:00
Simon Glass
98dfa70f84 fsl: mxc: Drop legacy I2c
Drop some old code from the mxc_i2c and ddr/fsl drivers. This will allow
removal of very old common I2C code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:12:48 +02:00
Simon Glass
12d38c5a70 date: Drop the legacy I2C code
Drop two generations of old code in this command. All boards should use
driver model for I2C from 2021.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:12:40 +02:00
Simon Glass
9baa31ab09 rtc: Drop CFG_SYS_RTC_BUS_NUM
This option is very old and the migration deadline was years ago. Drop
it so that the I2C system can be simplified.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:12:33 +02:00
Simon Glass
08f0a33330 MPC837XERDB: ethernut5: work_92105: Drop CMD_DATE
These use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:10:36 +02:00
Simon Glass
9ac3efc960 mx28 / mx51: Drop CMD_DATE
These use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:10:28 +02:00
Simon Glass
02481b8a5d armv8: ls2085a: Drop CMD_DATE
These boards use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:09:13 +02:00
Simon Glass
6394f713cc mips: malta: Drop CMD_DATE
These boards use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:09:05 +02:00
Simon Glass
a1e8cd22c8 i2c: Remove CFG_I2C_MULTI_BUS
This is used by a few boards but we are years past the migration date,
so let's drop it now.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:07:31 +02:00
Simon Glass
2109c6c178 i2c: Remove IC2_xxx enum
This is only used by devkit3250 which is being removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:06:02 +02:00
Simon Glass
ec1778ea81 i2c: Remove board_i2c_init()
This function is not used, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-13 06:05:52 +02:00
Tom Rini
f4f845b859 Merge patch series "Universal Payload initial series"
Simon Glass <sjg@chromium.org> says:

Universal Payload (UPL) is an Industry Standard for firmware
components[1]. UPL is designed to improve interoperability within the
firmware industry, allowing mixing and matching of projects with less
friction and fewer project-specific implementations. UPL is
cross-platform, supporting ARM, x86 and RISC-V initially.

This series provides some initial support for this, targeting 0.9.1 and
sandbox only.

Features still to come include:
- Support for architectures
- FIT validation
- Handoff validation
- Interoperability tests
2024-08-09 16:03:21 -06:00
Simon Glass
3403422767 upl: Add an end-to-end test
Now that sandbox_vpl supports UPL, add a test that checks that the
payload can be loaded by SPL and the handoff information passed through
to U-Boot proper.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
91fde8e176 sandbox: Add an SPL loader for UPL
Add support for loading a UPL image from SPL. This uses the simple FIT
implementation, but also loads the full FIT just to permit more testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
dadd23ebab sandbox: Add a flag to enable UPL
UPL significantly alters the boot flow for sandbox. Add a flag to enable
this so that it can be enabled only on tests which need it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
3a1a3d549b upl: Add initial documentation
Add some documentation to explain the basic concept along with a link
to the full spec.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
b3cb1c4c0b sandbox_vpl: Enable Universal Payload
Use the sandbox_vpl build to test UPL since it supports a real devicetree
in SPL. The sandbox_spl build uses OF_PLATDATA.

Enable writing the UPL handoff in SPL and reading it in U-Boot proper.
Provide a test to check that this handoff works.

Note that the test uses the standard devicetree rather than the test one,
since it is a lot smaller and fits in the existing bloblist.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
0fc406ab20 upl: Plumb in universal payload to the init process
Read the UPL early in boot so that it is available. For now none of the
information is used.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
ec2186acbc spl: Plumb in the Universal Payload handoff
Specify the FIT and include information about each loaded image, as
required by the UPL handoff.

Write the UPL handoff into the bloblist before jumping to the next phase.

Control this using a runtime flag to avoid conflicting with other
handoff mechanisms.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
dbe0424d4c spl: Set SPL_FIT_FOUND for full FIT also
This flag is set for simple FIT, so set it for full FIT too.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
fefb53492f upl: Add support for Universal Payload in SPL
Add the basic code to create a handoff structure in SPL, so it can be
passed to the next phase. For now this is not plumbed in.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
264f4b0b34 upl: Add a command
Add a 'upl' command to work with Universal Payload features. For now it
only supports reading and writing a handoff structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
637be2e53f upl: Add basic tests
Add some unit tests to check that we can write a UPL handoff and read it
back.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
3848e97c5c upl: Add support for writing a upl handoff
Universal Payload provides a standard way of handing off control between
two firmware phases. Add support for writing the handoff information from
a structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:20 -06:00
Simon Glass
90469da3da upl: Add support for reading a upl handoff
Universal Payload provides a standard way of handing off control between
two firmware phases. Add support for reading the handoff information into
a structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
16b9c64caf sandbox: Set up global_data earlier
It is possible for U-Boot functions such as printf() to be called
within state_init(). This can end up checking gd->flags (e.g. in putc())
before global_data is set up.

Move the setup earlier to avoid this. This fixes the suppression of some
debug output in memory allocation (when enabled).

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
5b33660c54 sandbox: Add ELF file to VPL u-boot.img
At present sandbox builds package up u-boot.bin in the .img file. This
cannot actually be executed, since it is not an ELF file.

For sandbox_vpl we want to be able to run the full boot flow.

Adjust the build rule for sandbox_vpl to package the ELF file and
thereby allow full testing of the sandbox transition from SPL to U-Boot
proper.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
b254a8359e sandbox: Return error code from read/write/seek
The existing API for these functions is different from the rest of
U-Boot, in that any error code must be obtained from the errno variable
on failure. This variable is part of the C library, so accessing it
outside of the special 'sandbox' shim-functions is not ideal.

Adjust the API to return an error code, to avoid this. Update existing
uses to check for any negative value, rather than just -1.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
d8289e7dfe sandbox: fdt: Avoid overwriting an existing fdt
Since the removal of OF_HOSTFILE logic in board_fdt_blob_setup(), the
logic for obtaining the DT is handled in the OF_BOARD option. If a
devicetree comes from a bloblist it is immediately overwritten by this
function.

Fix this by skipping the function if a devicetree is already present.

This is sort-of a fix for e7fb7896 ("sandbox: Remove OF_HOSTFILE") but
it has only come to light since bloblist was added, so I have not added
a Fixes tag.

Unfortunately it is not possible to report the correct FDT source with
the current code. It might be best to use an error-return code for
board_fdt_blob_setup() so that an error can be reported if the board
does not provide the DT.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
9767c668a5 fdt: Don't overwrite bloblist devicetree
When the devicetree comes from a bloblist, it is currently overwritten
by the appended one, if present. It should be preserved.

Adjust the logic to support this.

Fixes: 70fe238594 ("fdt: Allow the devicetree to come from a bloblist")

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
615d84b6ce test: Move some SPL-loading test-code into sandbox common
This code is useful for loading an image in sandbox_spl so move it into
a place where it can be called as needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-09 16:03:19 -06:00
Simon Glass
d9f1b00bc7 sandbox: Fix a comment in os_find_u_boot()
Fix a missing dot in a comment, since '..' is confusing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-09 16:03:19 -06:00
Simon Glass
46ef4e8220 sandbox: Use const in os_jump_to_file()
The argument array is not changed by the callee, so mark it const.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-09 16:03:19 -06:00
Tom Rini
49d7b206fb Merge tag 'i2cupdates-for-v2024-10-next' of https://source.denx.de/u-boot/custodians/u-boot-i2c into next
i2c updates for v2024.10 next

- DM_I2C conversion for some remaining boards
  from Anatolij
2024-08-09 08:22:50 -06:00
Anatolij Gustschin
b08ee931ba board: vining_2000: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:27:27 +02:00
Anatolij Gustschin
3b3421771e board: cm_fx6: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C to fix board
removal warning. Convert EEPROM access to use DM_I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2024-08-09 06:26:35 +02:00
Anatolij Gustschin
f1aacad168 board: vf610twr: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:26:28 +02:00
Anatolij Gustschin
763e406c4e board: novena: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning. Convert EEPROM
and IT6251 access to use DM_I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
2024-08-09 06:26:22 +02:00
Anatolij Gustschin
b913ba95c7 board: rut: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:26:16 +02:00
Anatolij Gustschin
2fa0cbd08b board: sl50: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:26:10 +02:00
Anatolij Gustschin
bcfb8873cc board: igep003x: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:26:05 +02:00
Anatolij Gustschin
58e6b61cb5 board: cm-t43: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:26:00 +02:00
Anatolij Gustschin
5a025f0543 board: chiliboard: convert to DM_I2C
Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2024-08-09 06:25:54 +02:00
Anatolij Gustschin
62ce9f7fff board: shc: convert to DM_I2C
Conversion to DM_I2C is mandatory, rework to remove
use of legacy I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
2024-08-09 06:25:48 +02:00
Tom Rini
2078abaf00 Merge patch series "alist: Implement a pointer list / array of structs"
Simon Glass <sjg@chromium.org> says:

This data structure provides a list of pointers / array of structures.
I was planning to use it for the lmb restructure, to allow it to
support any number of entries, but then I gave up on it.

There are quite a few places in U-Boot where such a list would be
useful, since it supports growing the array.

[...]
Example:

 struct my_struct obj;
 struct my_struct *ptr = alist_add(&lst, &obj, struct my_struct);

 // now ptr is in the list

[trini: Reword the cover letter slightly, do not merge the RFC portion]
2024-08-07 08:51:25 -06:00
Simon Glass
75581e419a alist: Add support for an allocated pointer list
In various places it is useful to have an array of structures, but allow
it to grow. In some cases we work around it by setting maximum number of
entries, using a Kconfig option. In other places we use a linked list,
which does not provide for random access and can complicate the code.

Introduce a new data structure, which is a variable-sized list of structs
each of the same, pre-set size. It provides O(1) access and is reasonably
efficient at expanding linearly, since it doubles in size when it runs out
of space.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-07 08:49:10 -06:00
Simon Glass
947aafdebc lib: Handle a special case with str_to_list()
The current implementation can return an extra result at the end when
the string ends with a space. Fix this by adding a special case.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-07 08:49:10 -06:00
Simon Glass
04894f5ad5 malloc: Support testing with realloc()
At present in tests it is possible to cause an out-of-memory condition
with malloc() but not realloc(). Add support to realloc() too, so code
which uses that function can be tested.

Signed-off-by: Simon Glass <sjg@chromium.org>
2024-08-07 08:49:10 -06:00
Paul Kocialkowski
54920df1c5 omap3: sniper: Convert to device-tree control and DM I2C
This converts the sniper board (LG P970) to device-tree control
and DM I2C, both for SPL and U-Boot.

Note that we lose the call to board_mmc_power_init to enable power
for MMC2. This is now expected to take place through proper
regulators, which are not yet available with the twl4030 driver.
The call to twl4030_power_mmc_init is moved to spl_board_init for now.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
2024-08-06 18:33:17 -06:00
Paul Kocialkowski
b6dfc2c007 am33xx: Use regular spl_board_init instead of am33xx_spl_board_init
The am33xx_spl_board_init function was introduced as a way to add
board-specific SPL init for AM33xx devices since the spl_board_init
function was already used for SoC-specific init.

Now that the SoC-specific SPL init was moved to spl_soc_init, we can
use spl_board_init for this purpose and get rid of
am33xx_spl_board_init.

Rename the function in board files and enable the related config
option for concerned boards.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-08-06 18:33:17 -06:00
Paul Kocialkowski
a52a95c2a1 omap: Use spl_soc_init instead of spl_board_init
Both spl_board_init and spl_soc_init are available as ways to run
specific code in the SPL's board_init_r. Use the former for init
code that is specific to the SoC and leave spl_board_init available
for boards to use.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Tom Rini <trini@konsulko.com>
2024-08-06 18:33:17 -06:00
Tom Rini
2383b8ef0e Merge patch series "omap configuration cleanups"
Paul Kocialkowski <paulk@sys-base.io> says:

Here is a bunch of configuration cleanups for OMAP boards, mostly
unifying and moving common configuration from board-specific defconfigs
to Kconfig definitions.

There's also a cleanup of the sniper (LG Optimus Black) defconfig,
prior to migrating it to DM/DT in a future follow-up series.
2024-08-06 18:33:08 -06:00
Paul Kocialkowski
e902ac8d3b omap3: sniper: Streamline defconfig
Remove custom config options that are not particularly necessary.
Align them with OMAP3 defaults used on other boards (especially for
memory locations).

Also enable Thumb build to reduce the SPL size and remove the custom
prompt text.

This makes the config a lot more minimalistic, maintainable and easier
to read.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:46 -06:00
Paul Kocialkowski
2e148cb0b4 dra7xx: Remove explicit DRAM banks number from defconfigs
The common EMIF init code used for DRA7xx does not explicitly fill
the gd->bd->bi_dram entries (like OMAP3 does), so there is no reason
to set an explicit number of DRAM banks which doesn't correspond to
anything in particular.

Remove the CONFIG_NR_DRAM_BANKS option from the concerned defconfigs.
The dram_init_banksize default implementation will be fine with the
default value for the config option.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:46 -06:00
Paul Kocialkowski
5e0620f0ca omap3: Define DRAM banks number in Kconfig instead of defconfigs
The number of DRAM banks was defined to the same value in each OMAP3
board defconfig, which is expected and hardcoded in the code. Move the
common definition to the Kconfig option declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
90312be17e omap3: Define maximum SPL size in Kconfig instead of defconfigs
The maximum SPL size was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
0844ed3219 omap3: Define maximum U-Boot size in Kconfig instead of defconfigs
The maximum U-Boot size was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
2bedbf56a1 dra7xx: Define common init stack pointer address in Kconfig
The init stack pointer was defined to the same value in each DRA7xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
60f34f3e92 dra7xx: Unify init stack pointer address across boards
The DRA7xx EVM board use a slightly different init stack pointer
address compared to the AM57xx EVM board, for no particular reason.

Align the address with the AM57xx EVM board (which matches the usual
offset to the end of SRAM used by other OMAP devices) prior to removing
it as a per-board option in a later commit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
e7f605816a am43xx: Define common init stack pointer address in Kconfig
The init stack pointer was defined to the same value in each AM43xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
7cf8ded76c am33xx: Define common init stack pointer address in Kconfig
The init stack pointer was defined to the same value in each AM33xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
5b98b0e904 am33xx: Unify init stack pointer address across boards
The AM33xx chiliboard and guardian boards use a slightly different
init stack pointer address compared to other AM33xx boards, for no
particular reason.

Align the address with other AM33xx boards prior to removing it as a
per-board option in a later commit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
b979fd5e30 omap3: Define common init stack pointer address in Kconfig
The init stack pointer was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Paul Kocialkowski
2f92cf6b93 omap3: Define common SPL text base in Kconfig instead of defconfigs
The SPL text base was defined to the same value in each OMAP3 board
defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Tested-by: Adam Ford <aford173@gmail.com> #am3517-evm
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
2024-08-06 18:32:45 -06:00
Zixun LI
d6376f7ed8 usb: gadget: atmel: Add DM_USB_GADGET support
Add driver model support by using the uclass UCLASS_USB_GADGET_GENERIC.

Disable local usb_gadget_register_driver()/usb_gadget_unregister_driver()
implementation which is implemented in udc-core.c when DM_USB_GADGET
is enabled.

Replace dm_usb_gadget_handle_interrupts() with handle_interrupts ops
when DM_USB_GADGET is enabled.

Disable legacy struct usba_udc controller as controller point is extracted
from udevice private data with DM.

Disable legacy usba_udc_probe() to avoid conflict with DM when it's
enabled.

Compared to Linux driver only supported devices' DT bindings are included
(sorted as Linux driver)

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240725153204.358925-8-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
ef5e1d1f97 usb: gadget: atmel: Add attach/detach support
Add controller attach/detach support by using
usb_gadget_ops.pullup() function.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240725153204.358925-7-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
7a448c8f38 usb: gadget: atmel: Rename atmel_usba_start()/_stop() to usba_udc_enable()/_disable()
Rename atmel_usba_start() / atmel_usba_stop() to usba_udc_enable()
/ usba_udc_disable(), remove atmel_ prefix to be inline with other
functions. Also avoid confusion with DM start() / stop() functions.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240725153204.358925-6-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
9b97a354bd usb: gadget: atmel: Move usba_udc_pdata() with other static functions
To make all static functions in the top, no functional change.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240725153204.358925-5-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
dbbacf19d6 usb: gadget: atmel: Fix typo in usb gadget driver register and unregister
Replace "paramter" by "parameter".

Signed-off-by: Zixun LI <admin@hifiphile.com>
Link: https://lore.kernel.org/r/20240725153204.358925-4-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
9ec3b70b21 usb: gadget: atmel: Replace printf() and pr_err() by log_err()
To have a uniform printing function, also drop linux/printk.h as no
longer used.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Link: https://lore.kernel.org/r/20240725153204.358925-3-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
Zixun LI
9cfee49022 usb: gadget: atmel: Sort includes
Sort includes in alphabetical order.

Signed-off-by: Zixun LI <admin@hifiphile.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/20240725153204.358925-2-admin@hifiphile.com
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2024-08-06 14:58:14 +02:00
11208 changed files with 1250399 additions and 178944 deletions

View File

@@ -1,8 +1,8 @@
variables:
windows_vm: windows-2019
ubuntu_vm: ubuntu-22.04
macos_vm: macOS-12
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20240808-21Aug2024
windows_vm: windows-2022
ubuntu_vm: ubuntu-24.04
macos_vm: macOS-14
ci_runner_image: trini/u-boot-gitlab-ci-runner:jammy-20240911.1-08Dec2024
# Add '-u 0' options for Azure pipelines, otherwise we get "permission
# denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer",
# since our $(ci_runner_image) user is not root.
@@ -76,7 +76,8 @@ stages:
# have no matches.
- script: git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_'
:^doc/ :^arch/arm/dts/ :^scripts/kconfig/lkc.h
:^include/linux/kconfig.h :^tools/ :^dts/upstream/ &&
:^include/linux/kconfig.h :^tools/ :^dts/upstream/
:^lib/mbedtls/external :^lib/mbedtls/mbedtls_def_config.h &&
exit 1 || exit 0
- job: docs
@@ -88,6 +89,7 @@ stages:
options: $(container_option)
steps:
- script: |
set -e
virtualenv -p /usr/bin/python3 /tmp/venvhtml
. /tmp/venvhtml/bin/activate
pip install -r doc/sphinx/requirements.txt
@@ -238,10 +240,12 @@ stages:
cd \${WORK_DIR}
git config --global --add safe.directory \${WORK_DIR}
git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
# qemu_arm64_lwip_defconfig is the same as qemu_arm64 but with NET_LWIP enabled.
# The test config and the boardenv file from qemu_arm64 can be re-used so create symlinks
ln -s conf.qemu_arm64_na /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
ln -s u_boot_boardenv_qemu_arm64_na.py /tmp/uboot-test-hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
ln -s travis-ci /tmp/uboot-test-hooks/bin/\`hostname\`
ln -s travis-ci /tmp/uboot-test-hooks/py/\`hostname\`
grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
if [[ "\${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
@@ -250,6 +254,11 @@ stages:
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin;
fi
if [[ "\${TEST_PY_BD}" == "qemu-arm-sbsa" ]]; then
wget -O /tmp/bl1.bin https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/latest/tf-a/bl1.bin;
wget -O /tmp/fip.bin https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/latest/tf-a/fip.bin;
export BINMAN_INDIRS=/tmp
fi
# the below corresponds to .gitlab-ci.yml "script"
cd \${WORK_DIR}
export UBOOT_TRAVIS_BUILD_DIR=/tmp/\${TEST_PY_BD}
@@ -258,8 +267,8 @@ stages:
fi
pip install -r tools/buildman/requirements.txt
tools/buildman/buildman -o \${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e --board \${TEST_PY_BD} \${OVERRIDE}
cp ~/grub_x86.efi \${UBOOT_TRAVIS_BUILD_DIR}/
cp ~/grub_x64.efi \${UBOOT_TRAVIS_BUILD_DIR}/
cp /opt/grub/grub_x86.efi \${UBOOT_TRAVIS_BUILD_DIR}/
cp /opt/grub/grub_x64.efi \${UBOOT_TRAVIS_BUILD_DIR}/
cp /opt/grub/grubriscv64.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_riscv64.efi
cp /opt/grub/grubaa64.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_arm64.efi
cp /opt/grub/grubarm.efi \${UBOOT_TRAVIS_BUILD_DIR}/grub_arm.efi
@@ -287,7 +296,7 @@ stages:
export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:\${PATH}
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci
# "\${var:+"-k \$var"}" expands to "" if \$var is empty, "-k \$var" if not
./test/py/test.py -ra -o cache_dir="\$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd \${TEST_PY_BD} \${TEST_PY_ID} \${TEST_PY_TEST_SPEC:+"-k \${TEST_PY_TEST_SPEC}"} --build-dir "\$UBOOT_TRAVIS_BUILD_DIR" --report-dir "\$UBOOT_TRAVIS_BUILD_DIR" --junitxml=\$(System.DefaultWorkingDirectory)/results.xml
./test/py/test.py -ra -o cache_dir="\$UBOOT_TRAVIS_BUILD_DIR"/.pytest_cache --bd \${TEST_PY_BD} \${TEST_PY_ID} \${TEST_PY_EXTRA} \${TEST_PY_TEST_SPEC:+"-k \${TEST_PY_TEST_SPEC}"} --build-dir "\$UBOOT_TRAVIS_BUILD_DIR" --report-dir "\$UBOOT_TRAVIS_BUILD_DIR" --junitxml=\$(System.DefaultWorkingDirectory)/results.xml
# the below corresponds to .gitlab-ci.yml "after_script"
rm -rf /tmp/uboot-test-hooks /tmp/venv
EOF
@@ -310,6 +319,7 @@ stages:
matrix:
sandbox:
TEST_PY_BD: "sandbox"
TEST_PY_EXTRA: "--timing"
sandbox_asan:
TEST_PY_BD: "sandbox"
OVERRIDE: "-a ASAN"
@@ -399,12 +409,15 @@ stages:
evb_ast2500:
TEST_PY_BD: "evb-ast2500"
TEST_PY_ID: "--id qemu"
TEST_PY_TEST_SPEC: "not sleep"
evb_ast2600:
TEST_PY_BD: "evb-ast2600"
TEST_PY_ID: "--id qemu"
TEST_PY_TEST_SPEC: "not sleep"
vexpress_ca9x4:
TEST_PY_BD: "vexpress_ca9x4"
TEST_PY_ID: "--id qemu"
TEST_PY_TEST_SPEC: "not sleep"
integratorcp_cm926ejs:
TEST_PY_BD: "integratorcp_cm926ejs"
TEST_PY_ID: "--id qemu"
@@ -415,6 +428,12 @@ stages:
qemu_arm64:
TEST_PY_BD: "qemu_arm64"
TEST_PY_TEST_SPEC: "not sleep"
qemu_arm64_lwip:
TEST_PY_BD: "qemu_arm64_lwip"
TEST_PY_TEST_SPEC: "test_net_dhcp or test_net_ping or test_net_tftpboot"
qemu_arm_sbsa_ref:
TEST_PY_BD: "qemu-arm-sbsa"
TEST_PY_TEST_SPEC: "not sleep"
qemu_m68k:
TEST_PY_BD: "M5208EVBE"
TEST_PY_ID: "--id qemu"
@@ -463,21 +482,27 @@ stages:
r2dplus_i82557c:
TEST_PY_BD: "r2dplus"
TEST_PY_ID: "--id i82557c_qemu"
TEST_PY_TEST_SPEC: "not sleep"
r2dplus_pcnet:
TEST_PY_BD: "r2dplus"
TEST_PY_ID: "--id pcnet_qemu"
TEST_PY_TEST_SPEC: "not sleep"
r2dplus_rtl8139:
TEST_PY_BD: "r2dplus"
TEST_PY_ID: "--id rtl8139_qemu"
TEST_PY_TEST_SPEC: "not sleep"
r2dplus_tulip:
TEST_PY_BD: "r2dplus"
TEST_PY_ID: "--id tulip_qemu"
TEST_PY_TEST_SPEC: "not sleep"
sifive_unleashed_sdcard:
TEST_PY_BD: "sifive_unleashed"
TEST_PY_ID: "--id sdcard_qemu"
TEST_PY_TEST_SPEC: "not sleep"
sifive_unleashed_spi-nor:
TEST_PY_BD: "sifive_unleashed"
TEST_PY_ID: "--id spi-nor_qemu"
TEST_PY_TEST_SPEC: "not sleep"
xilinx_zynq_virt:
TEST_PY_BD: "xilinx_zynq_virt"
TEST_PY_ID: "--id qemu"
@@ -486,6 +511,7 @@ stages:
TEST_PY_BD: "xilinx_versal_virt"
TEST_PY_ID: "--id qemu"
TEST_PY_TEST_SPEC: "not sleep"
OVERRIDE: "-a ~CONFIG_USB_DWC3"
xtfpga:
TEST_PY_BD: "xtfpga"
TEST_PY_ID: "--id qemu"

5
.gitignore vendored
View File

@@ -75,6 +75,9 @@ fit-dtb.blob*
/keep-syms-lto.*
/*imx8mimage*
/*imx8mcst*
/drivers/video/u_boot_logo.S
/test/overlay/test-fdt-overlay.dtbo.S
/test/overlay/test-fdt-overlay-stacked.dtbo.S
#
# Generated include files
@@ -83,6 +86,8 @@ fit-dtb.blob*
/include/config.h
/include/config/
/include/generated/
/include/bmp_logo.h
/include/bmp_logo_data.h
# stgit generated dirs
patches-*

View File

@@ -1,36 +1,48 @@
# SPDX-License-Identifier: GPL-2.0+
variables:
DEFAULT_TAG: ""
DEFAULT_ALL_TAG: "all"
DEFAULT_ARM64_TAG: "arm64"
DEFAULT_FAST_ARM64_TAG: "fast arm64"
DEFAULT_AMD64_TAG: "amd64"
DEFAULT_FAST_AMD64_TAG: "fast amd64"
MIRROR_DOCKER: docker.io
SJG_LAB: ""
PLATFORM: linux/amd64,linux/arm64
default:
tags:
- ${DEFAULT_TAG}
- ${DEFAULT_ALL_TAG}
workflow:
rules:
- when: always
# Grab our configured image. The source for this is found
# in the u-boot tree at tools/docker/Dockerfile
image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20240808-21Aug2024
image: ${MIRROR_DOCKER}/trini/u-boot-gitlab-ci-runner:jammy-20240911.1-08Dec2024
# We run some tests in different order, to catch some failures quicker.
stages:
- testsuites
- test.py
- sjg-lab
- world build
.buildman_and_testpy_template: &buildman_and_testpy_dfn
stage: test.py
retry: 2 # QEMU may be too slow, etc.
rules:
- when: always
needs: [ "Run binman, buildman, dtoc, Kconfig and patman testsuites" ]
before_script:
# Clone uboot-test-hooks
- git config --global --add safe.directory "${CI_PROJECT_DIR}"
- git clone --depth=1 https://source.denx.de/u-boot/u-boot-test-hooks /tmp/uboot-test-hooks
# qemu_arm64_lwip_defconfig is the same as qemu_arm64 but with NET_LWIP enabled.
# The test config and the boardenv file from qemu_arm64 can be re-used so create symlinks
- ln -s conf.qemu_arm64_na /tmp/uboot-test-hooks/bin/travis-ci/conf.qemu_arm64_lwip_na
- ln -s u_boot_boardenv_qemu_arm64_na.py /tmp/uboot-test-hooks/py/travis-ci/u_boot_boardenv_qemu_arm64_lwip_na.py
- ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
- ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
- grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
- grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
- if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
@@ -39,6 +51,11 @@ stages:
wget -O - https://github.com/riscv-software-src/opensbi/releases/download/v1.3.1/opensbi-1.3.1-rv-bin.tar.xz | tar -C /tmp -xJ;
export OPENSBI=/tmp/opensbi-1.3.1-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin;
fi
- if [[ "${TEST_PY_BD}" == "qemu-arm-sbsa" ]]; then
wget -O /tmp/bl1.bin https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/latest/tf-a/bl1.bin;
wget -O /tmp/fip.bin https://artifacts.codelinaro.org/artifactory/linaro-419-sbsa-ref/latest/tf-a/fip.bin;
export BINMAN_INDIRS=/tmp;
fi
after_script:
- cp -v /tmp/${TEST_PY_BD}/*.{html,css,xml} .
@@ -52,8 +69,8 @@ stages:
fi
- tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
--board ${TEST_PY_BD} ${OVERRIDE}
- cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/
- cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/
- cp /opt/grub/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/
- cp /opt/grub/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/
- cp /opt/grub/grubriscv64.efi $UBOOT_TRAVIS_BUILD_DIR/grub_riscv64.efi
- cp /opt/grub/grubaa64.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi
- cp /opt/grub/grubarm.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi
@@ -80,7 +97,7 @@ stages:
# "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
- export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH};
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID}
./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID} ${TEST_PY_EXTRA}
${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"}
--build-dir "$UBOOT_TRAVIS_BUILD_DIR"
--junitxml=/tmp/${TEST_PY_BD}/results.xml
@@ -89,58 +106,25 @@ stages:
paths:
- "*.html"
- "*.css"
- results.xml
reports:
junit: results.xml
expire_in: 1 week
.world_build:
build all platforms in a single job:
stage: world build
rules:
- when: always
build all 32bit ARM platforms:
extends: .world_build
dependencies: []
parallel:
matrix:
- HOST: "fast arm64"
- HOST: "fast amd64"
tags:
- ${HOST}
script:
- ret=0;
git config --global --add safe.directory "${CI_PROJECT_DIR}";
pip install -r tools/buildman/requirements.txt;
./tools/buildman/buildman -o /tmp -PEWM arm -x aarch64 || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
fi;
build all 64bit ARM platforms:
extends: .world_build
script:
- virtualenv -p /usr/bin/python3 /tmp/venv
- . /tmp/venv/bin/activate
- ret=0;
git config --global --add safe.directory "${CI_PROJECT_DIR}";
pip install -r tools/buildman/requirements.txt;
./tools/buildman/buildman -o /tmp -PEWM aarch64 || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
fi;
build all PowerPC platforms:
extends: .world_build
script:
- ret=0;
git config --global --add safe.directory "${CI_PROJECT_DIR}";
./tools/buildman/buildman -o /tmp -P -E -W powerpc || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
fi;
build all other platforms:
extends: .world_build
script:
- ret=0;
git config --global --add safe.directory "${CI_PROJECT_DIR}";
./tools/buildman/buildman -o /tmp -PEWM -x arm,powerpc || ret=$?;
./tools/buildman/buildman -o /tmp -PEWM -x xtensa || ret=$?;
if [[ $ret -ne 0 ]]; then
./tools/buildman/buildman -o /tmp -seP;
exit $ret;
@@ -148,8 +132,6 @@ build all other platforms:
.testsuites:
stage: testsuites
rules:
- when: always
check for new CONFIG symbols outside Kconfig:
extends: .testsuites
@@ -159,7 +141,8 @@ check for new CONFIG symbols outside Kconfig:
# have no matches.
- git grep -E '^#[[:blank:]]*(define|undef)[[:blank:]]*CONFIG_'
:^doc/ :^arch/arm/dts/ :^scripts/kconfig/lkc.h
:^include/linux/kconfig.h :^tools/ :^dts/upstream/ &&
:^include/linux/kconfig.h :^tools/ :^dts/upstream/
:^lib/mbedtls/external :^lib/mbedtls/mbedtls_def_config.h &&
exit 1 || exit 0
# build documentation
@@ -188,6 +171,8 @@ Build tools-only and envtools:
Run binman, buildman, dtoc, Kconfig and patman testsuites:
extends: .testsuites
tags:
- ${DEFAULT_AMD64_TAG}
script:
- git config --global user.name "GitLab CI Runner";
git config --global user.email trini@konsulko.com;
@@ -247,22 +232,47 @@ Check packing of Python tools:
# Test sandbox with test.py
sandbox test.py:
parallel:
matrix:
- HOST: "fast arm64"
- HOST: "fast amd64"
tags:
- ${HOST}
variables:
TEST_PY_BD: "sandbox"
TEST_PY_EXTRA: "--timing"
<<: *buildman_and_testpy_dfn
sandbox with clang test.py:
parallel:
matrix:
- HOST: "fast arm64"
- HOST: "fast amd64"
tags:
- ${HOST}
variables:
TEST_PY_BD: "sandbox"
OVERRIDE: "-O clang-17"
<<: *buildman_and_testpy_dfn
sandbox64 test.py:
parallel:
matrix:
- HOST: "fast arm64"
- HOST: "fast amd64"
tags:
- ${HOST}
variables:
TEST_PY_BD: "sandbox64"
<<: *buildman_and_testpy_dfn
sandbox64 with clang test.py:
parallel:
matrix:
- HOST: "fast arm64"
- HOST: "fast amd64"
tags:
- ${HOST}
variables:
TEST_PY_BD: "sandbox64"
OVERRIDE: "-O clang-17"
@@ -305,16 +315,20 @@ sandbox trace_test.py:
evb-ast2500 test.py:
variables:
TEST_PY_BD: "evb-ast2500"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
<<: *buildman_and_testpy_dfn
evb-ast2600 test.py:
variables:
TEST_PY_BD: "evb-ast2600"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
<<: *buildman_and_testpy_dfn
sandbox_flattree test.py:
tags:
- ${DEFAULT_AMD64_TAG}
variables:
TEST_PY_BD: "sandbox_flattree"
<<: *buildman_and_testpy_dfn
@@ -322,6 +336,7 @@ sandbox_flattree test.py:
vexpress_ca9x4 test.py:
variables:
TEST_PY_BD: "vexpress_ca9x4"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
<<: *buildman_and_testpy_dfn
@@ -344,6 +359,18 @@ qemu_arm64 test.py:
TEST_PY_TEST_SPEC: "not sleep"
<<: *buildman_and_testpy_dfn
qemu_arm64_lwip test.py:
variables:
TEST_PY_BD: "qemu_arm64_lwip"
TEST_PY_TEST_SPEC: "test_net_dhcp or test_net_ping or test_net_tftpboot"
<<: *buildman_and_testpy_dfn
qemu_arm_sbsa test.py:
variables:
TEST_PY_BD: "qemu-arm-sbsa"
TEST_PY_TEST_SPEC: "not sleep"
<<: *buildman_and_testpy_dfn
qemu_m68k test.py:
variables:
TEST_PY_BD: "M5208EVBE"
@@ -426,41 +453,49 @@ qemu-xtensa-dc233c test.py:
variables:
TEST_PY_BD: "qemu-xtensa-dc233c"
TEST_PY_TEST_SPEC: "not sleep and not efi"
tags:
- ${DEFAULT_AMD64_TAG}
<<: *buildman_and_testpy_dfn
r2dplus_i82557c test.py:
variables:
TEST_PY_BD: "r2dplus"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id i82557c_qemu"
<<: *buildman_and_testpy_dfn
r2dplus_pcnet test.py:
variables:
TEST_PY_BD: "r2dplus"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id pcnet_qemu"
<<: *buildman_and_testpy_dfn
r2dplus_rtl8139 test.py:
variables:
TEST_PY_BD: "r2dplus"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id rtl8139_qemu"
<<: *buildman_and_testpy_dfn
r2dplus_tulip test.py:
variables:
TEST_PY_BD: "r2dplus"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id tulip_qemu"
<<: *buildman_and_testpy_dfn
sifive_unleashed_sdcard test.py:
variables:
TEST_PY_BD: "sifive_unleashed"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id sdcard_qemu"
<<: *buildman_and_testpy_dfn
sifive_unleashed_spi-nor test.py:
variables:
TEST_PY_BD: "sifive_unleashed"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id spi-nor_qemu"
<<: *buildman_and_testpy_dfn
@@ -476,6 +511,7 @@ xilinx_versal_virt test.py:
TEST_PY_BD: "xilinx_versal_virt"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
OVERRIDE: "-a ~CONFIG_USB_DWC3"
<<: *buildman_and_testpy_dfn
xtfpga test.py:
@@ -483,6 +519,8 @@ xtfpga test.py:
TEST_PY_BD: "xtfpga"
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
tags:
- ${DEFAULT_AMD64_TAG}
<<: *buildman_and_testpy_dfn
coreboot test.py:
@@ -491,3 +529,167 @@ coreboot test.py:
TEST_PY_TEST_SPEC: "not sleep"
TEST_PY_ID: "--id qemu"
<<: *buildman_and_testpy_dfn
.lab_template: &lab_dfn
stage: sjg-lab
rules:
- if: $SJG_LAB == "1"
when: always
- if: $SJG_LAB != "1"
when: manual
allow_failure: true
dependencies: []
tags: [ 'lab' ]
script:
# Environment:
# SRC - source tree
# OUT - output directory for builds
- export SRC="$(pwd)"
- export OUT="${SRC}/build/${BOARD}"
- export PATH=$PATH:~/bin
- export PATH=$PATH:/vid/software/devel/ubtest/u-boot-test-hooks/bin
# Load it on the device
- ret=0
- echo "role ${ROLE}"
- export strategy="-s uboot -e off"
- export USE_LABGRID_SJG=1
# export verbose="-v"
- ${SRC}/test/py/test.py --role ${ROLE} --build-dir "${OUT}"
--capture=tee-sys -k "not bootstd" || ret=$?
- U_BOOT_BOARD_IDENTITY="${ROLE}" u-boot-test-release || true
- if [[ $ret -ne 0 ]]; then
exit $ret;
fi
artifacts:
when: always
paths:
- "build/${BOARD}/test-log.html"
- "build/${BOARD}/multiplexed_log.css"
expire_in: 1 week
rpi3:
variables:
ROLE: rpi3
<<: *lab_dfn
opi_pc:
variables:
ROLE: opi_pc
<<: *lab_dfn
pcduino3_nano:
variables:
ROLE: pcduino3_nano
<<: *lab_dfn
samus:
variables:
ROLE: samus
<<: *lab_dfn
link:
variables:
ROLE: link
<<: *lab_dfn
jerry:
variables:
ROLE: jerry
<<: *lab_dfn
minnowmax:
variables:
ROLE: minnowmax
<<: *lab_dfn
opi_pc2:
variables:
ROLE: opi_pc2
<<: *lab_dfn
bpi:
variables:
ROLE: bpi
<<: *lab_dfn
rpi2:
variables:
ROLE: rpi2
<<: *lab_dfn
bob:
variables:
ROLE: bob
<<: *lab_dfn
ff3399:
variables:
ROLE: ff3399
<<: *lab_dfn
coral:
variables:
ROLE: coral
<<: *lab_dfn
rpi3z:
variables:
ROLE: rpi3z
<<: *lab_dfn
bbb:
variables:
ROLE: bbb
<<: *lab_dfn
kevin:
variables:
ROLE: kevin
<<: *lab_dfn
pine64:
variables:
ROLE: pine64
<<: *lab_dfn
c4:
variables:
ROLE: c4
<<: *lab_dfn
rpi4:
variables:
ROLE: rpi4
<<: *lab_dfn
rpi0:
variables:
ROLE: rpi0
<<: *lab_dfn
snow:
variables:
ROLE: snow
<<: *lab_dfn
pcduino3:
variables:
ROLE: pcduino3
<<: *lab_dfn
nyan-big:
variables:
ROLE: nyan-big
<<: *lab_dfn
rpi:
variables:
ROLE: rpi
<<: *lab_dfn
# StarFive VisionFive 2
vf2:
variables:
ROLE: vf2
<<: *lab_dfn

View File

@@ -36,10 +36,13 @@ Bin Meng <bmeng.cn@gmail.com> <bin.meng@windriver.com>
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@free-electrons.com>
Christian Kohn <chris.kohn@amd.com> <christian.kohn@xilinx.com>
Christopher Obbard <christopher.obbard@linaro.org> <chris.obbard@collabora.com>
Dirk Behme <dirk.behme@googlemail.com>
Durga Challa <durga.challa@amd.com> <vnsl.durga.challa@xilinx.com>
Eugen Hristev <eugen.hristev@collabora.com> <eugen.hristev@microchip.com>
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@microchip.com>
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@collabora.com>
Fabio Estevam <fabio.estevam@nxp.com>
Greg Malysa <malysagreg@gmail.com> <greg.malysa@timesys.com>
Harini Katakam <harini.katakam@amd.com> <harini.katakam@xilinx.com>
Harsha <harsha.harsha@amd.com> <harsha.harsha@xilinx.com>
Heiko Stuebner <heiko.stuebner@cherry.de> <heiko.stuebner@theobroma-systems.com>
@@ -73,6 +76,7 @@ Marek Vasut <marex@denx.de> <marex at denx.de>
Markus Klotzbuecher <mk@denx.de>
Masahiro Yamada <masahiroy@kernel.org> <yamada.masahiro@socionext.com>
Masahiro Yamada <masahiroy@kernel.org> <yamada.m@jp.panasonic.com>
Mattijs Korpershoek <mkorpershoek@kernel.org> <mkorpershoek@baylibre.com>
Michal Simek <michal.simek@amd.com> <Monstr@seznam.cz>
Michal Simek <michal.simek@amd.com> <michal.simek@xilinx.com>
Michal Simek <michal.simek@amd.com> <monstr@monstr.eu>
@@ -88,6 +92,7 @@ Neil Armstrong <neil.armstrong@linaro.org> <narmstrong@baylibre.com>
Nicolas Saenz Julienne <nsaenz@kernel.org> <nsaenzjulienne@suse.de>
This contributor prefers not to receive mails <noreply@example.com> <pali@kernel.org>
This contributor prefers not to receive mails <noreply@example.com> <pali.rohar@gmail.com>
Padmarao Begari <padmarao.begari@amd.com> <padmarao.begari@microchip.com>
Patrice Chotard <patrice.chotard@foss.st.com> <patrice.chotard@st.com>
Patrick Delaunay <patrick.delaunay@foss.st.com> <patrick.delaunay@st.com>
Paul Burton <paul.burton@mips.com> <paul.burton@imgtec.com>
@@ -120,6 +125,7 @@ Srinivas Neeli <srinivas.neeli@amd.com> <srinivas.neeli@xilinx.com>
Stefan Roese <sr@denx.de> <stroese>
Stefano Babic <sbabic@denx.de>
Stefano Stabellini <stefano.stabellini@amd.com> <stefano.stabellini@xilinx.com>
Sumit Garg <sumit.garg@kernel.org> <sumit.garg@linaro.org>
Tom Rini <trini@konsulko.com> <trini@ti.com>
Tomas Thoresen <tomas.thoresen@amd.com> <tomast@xilinx.com>
TsiChung Liew <Tsi-Chung.Liew@freescale.com>

View File

@@ -6,11 +6,11 @@
version: 2
build:
os: "ubuntu-20.04"
os: "ubuntu-24.04"
apt_packages:
- python3-six
tools:
python: "3.9"
python: "3.12"
# Build documentation in the docs/ directory with Sphinx
sphinx:

78
Kconfig
View File

@@ -1,6 +1,6 @@
#
# For a description of the syntax of this configuration file,
# see the file Documentation/kbuild/kconfig-language.txt in the
# see the file Documentation/kbuild/kconfig-language.rst in the
# Linux kernel source tree.
#
mainmenu "U-Boot $(UBOOTVERSION) Configuration"
@@ -208,7 +208,8 @@ config ENV_VARS_UBOOT_CONFIG
config NR_DRAM_BANKS
int "Number of DRAM banks"
default 1 if ARCH_SUNXI || ARCH_OWL
default 1 if ARCH_SC5XX || ARCH_SUNXI || ARCH_OWL
default 2 if OMAP34XX
default 4
help
This defines the number of DRAM banks.
@@ -236,6 +237,7 @@ config SYS_BOOT_GET_KBD
config HAS_CUSTOM_SYS_INIT_SP_ADDR
bool "Use a custom location for the initial stack pointer address"
depends on ARC || (ARM && !INIT_SP_RELATIVE) || MIPS || PPC || RISCV
default y if OMAP34XX || AM33XX || AM43XX || DRA7XX
default y if TFABOOT
help
Typically, we use an initial stack pointer address that is calculated
@@ -249,6 +251,10 @@ config HAS_CUSTOM_SYS_INIT_SP_ADDR
config CUSTOM_SYS_INIT_SP_ADDR
hex "Static location for the initial stack pointer"
depends on HAS_CUSTOM_SYS_INIT_SP_ADDR
default 0x4020ff00 if OMAP34XX
default 0x4030ff00 if AM33XX
default 0x4033ff00 if AM43XX
default 0x4037ff00 if DRA7XX
default TEXT_BASE if TFABOOT
config SYS_MALLOC_F
@@ -545,6 +551,7 @@ config SYS_LOAD_ADDR
default 0x12000000 if ARCH_MX6 && !(MX6SL || MX6SLL || MX6SX || MX6UL || MX6ULL)
default 0x80800000 if ARCH_MX7
default 0x90000000 if FSL_LSCH2 || FSL_LSCH3
default 0x0 if ARCH_SC5XX
help
Address in memory to use as the default safe load address.
@@ -571,6 +578,7 @@ config STACK_SIZE
hex "Define max stack size that can be used by U-Boot"
default 0x4000000 if ARCH_VERSAL_NET || ARCH_VERSAL || ARCH_ZYNQMP
default 0x200000 if MICROBLAZE
default 0x4000 if ARCH_STM32
default 0x1000000
help
Define Max stack size that can be used by U-Boot. This value is used
@@ -588,33 +596,10 @@ config SYS_MEM_TOP_HIDE
WARNING: Please make sure that this value is a multiple of the OS
page size.
config SYS_HAS_SRAM
bool
default y if TARGET_PIC32MZDASK
default y if TARGET_DEVKIT8000
default y if TARGET_TRICORDER
help
Enable this to allow support for the on board SRAM.
SRAM base address is controlled by CONFIG_SYS_SRAM_BASE.
SRAM size is controlled by CONFIG_SYS_SRAM_SIZE.
config SYS_SRAM_BASE
hex
default 0x80000000 if TARGET_PIC32MZDASK
default 0x40200000 if TARGET_DEVKIT8000
default 0x40200000 if TARGET_TRICORDER
default 0x0
config SYS_SRAM_SIZE
hex
default 0x00080000 if TARGET_PIC32MZDASK
default 0x10000 if TARGET_DEVKIT8000
default 0x10000 if TARGET_TRICORDER
default 0x0
config SYS_MONITOR_LEN
int "Maximum size in bytes reserved for U-Boot in memory"
default 1048576 if X86
default 262144 if OMAP34XX
default 786432 if ARCH_SUNXI
default 0
help
@@ -639,11 +624,18 @@ config HAVE_TEXT_BASE
config TEXT_BASE
depends on HAVE_TEXT_BASE
default 0x0 if POSITION_INDEPENDENT
default 0x17800000 if ARCH_MX6
default 0x87800000 if ARCH_MX7
default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
default 0x81700000 if MACH_SUNIV
default 0x2a000000 if MACH_SUN9I
default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256
default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
default 0x96000000 if ARCH_SC5XX && SC59X_64
default 0xB2200000 if ARCH_SC5XX && SC59X
default 0x89200000 if ARCH_SC5XX && TARGET_SC584_EZKIT
default 0xC2200000 if ARCH_SC5XX && (TARGET_SC589_EZKIT || TARGET_SC589_MINI)
default 0x82200000 if ARCH_SC5XX && SC57X
hex "Text Base"
help
The address in memory that U-Boot will be copied and executed from
@@ -745,8 +737,42 @@ source "dts/Kconfig"
source "env/Kconfig"
menu Networking
choice
prompt "Networking stack"
default NET
config NO_NET
bool "No networking support"
help
Do not include networking support
config NET
bool "Legacy U-Boot networking stack"
imply NETDEVICES
help
Include networking support with U-Boot's internal implementation of
the TCP/IP protocol stack.
config NET_LWIP
bool "Use lwIP for networking stack"
imply NETDEVICES
help
Include networking support based on the lwIP (lightweight IP)
TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
the default U-Boot network stack and applications located in net/
and enabled via CONFIG_NET as well as other pieces of code that
depend on CONFIG_NET (such as cmd/net.c enabled via CONFIG_CMD_NET).
Therefore the two symbols CONFIG_NET and CONFIG_NET_LWIP are mutually
exclusive.
endchoice
source "net/Kconfig"
endmenu
source "drivers/Kconfig"
source "fs/Kconfig"

View File

@@ -58,21 +58,27 @@ F: cmd/acpi.c
F: include/acpi/
F: lib/acpi/
ALIST:
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: include/alist.h
F: lib/alist.c
F: test/lib/alist.c
ANDROID AB
M: Igor Opaniuk <igor.opaniuk@gmail.com>
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
R: Igor Opaniuk <igor.opaniuk@gmail.com>
R: Sam Protsenko <semen.protsenko@linaro.org>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
F: boot/android_ab.c
F: cmd/ab_select.c
F: doc/android/ab.rst
F: include/android_ab.h
F: test/py/tests/test_android/test_ab.py
ANDROID AVB
M: Igor Opaniuk <igor.opaniuk@gmail.com>
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
R: Igor Opaniuk <igor.opaniuk@gmail.com>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
F: cmd/avb.c
@@ -356,7 +362,7 @@ S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
F: arch/arm/mach-kirkwood/
F: arch/arm/mach-mvebu/
F: drivers/ata/ahci_mvebu.c
F: drivers/ata/ahci_generic.c
F: drivers/clk/mvebu/
F: drivers/ddr/marvell/
F: drivers/gpio/mvebu_gpio.c
@@ -380,6 +386,14 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-marvell.git
F: drivers/pci/pci-aardvark.c
F: drivers/pci/pci_mvebu.c
ARM MARVELL PXA1908
M: Duje Mihanović <duje.mihanovic@skole.hr>
S: Maintained
T: git git://git.dujemihanovic.xyz/u-boot.git
F: arch/arm/dts/pxa1908*
F: arch/arm/mach-mmp/
F: include/configs/pxa1908.h
ARM MARVELL SERIAL DRIVERS
M: Pali Rohár <pali@kernel.org>
M: Stefan Roese <sr@denx.de>
@@ -406,9 +420,13 @@ F: drivers/mmc/mtk-sd.c
F: drivers/phy/phy-mtk-*
F: drivers/pinctrl/mediatek/
F: drivers/power/domain/mtk-power-domain.c
F: drivers/pci/pcie_mediatek_gen3.c
F: drivers/pci/pcie_mediatek.c
F: drivers/pwm/pwm-mtk.c
F: drivers/ram/mediatek/
F: drivers/spi/mtk_snfi_spi.c
F: drivers/spi/mtk_spim.c
F: drivers/spi/mtk_snor.c
F: drivers/timer/mtk_timer.c
F: drivers/usb/host/xhci-mtk.c
F: drivers/usb/mtu3/
@@ -416,6 +434,7 @@ F: drivers/watchdog/mtk_wdt.c
F: drivers/net/mtk_eth.c
F: drivers/net/mtk_eth.h
F: drivers/reset/reset-mediatek.c
F: drivers/serial/serial_mtk.c
F: include/dt-bindings/clock/mediatek,*
F: include/dt-bindings/power/mediatek,*
F: tools/mtk_image.c
@@ -596,27 +615,36 @@ F: arch/arm/dts/am335x-sancloud*
ARM SC5XX
M: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
M: Greg Malysa <greg.malysa@timesys.com>
M: Greg Malysa <malysagreg@gmail.com>
M: Ian Roberts <ian.roberts@timesys.com>
M: Vasileios Bimpikas <vasileios.bimpikas@analog.com>
M: Utsav Agarwal <utsav.agarwal@analog.com>
M: Arturs Artamonovs <arturs.artamonovs@analog.com>
L: adsp-linux@analog.com
S: Supported
T: git https://github.com/analogdevicesinc/lnxdsp-u-boot
F: arch/arm/dts/sc5*
F: arch/arm/include/asm/arch-adi/
F: arch/arm/mach-sc5xx/
F: board/adi/
F: doc/device-tree-bindings/arm/adi/adi,sc5xx.yaml
F: doc/device-tree-bindings/clock/adi,sc5xx-clocks.yaml
F: doc/device-tree-bindings/timer/adi,sc5xx-gptimer.yaml
F: drivers/clk/adi/
F: drivers/serial/serial_adi_uart4.c
F: drivers/timer/adi_sc5xx_timer.c
F: include/configs/sc5*
F: include/env/adi/
ARM SNAPDRAGON
M: Caleb Connolly <caleb.connolly@linaro.org>
M: Neil Armstrong <neil.armstrong@linaro.org>
R: Sumit Garg <sumit.garg@linaro.org>
R: Sumit Garg <sumit.garg@kernel.org>
L: u-boot-qcom@groups.io
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-snapdragon.git
F: configs/qcm6490_defconfig
F: configs/qcs9100_defconfig
F: drivers/*/*/pm8???-*
F: drivers/gpio/msm_gpio.c
F: drivers/mmc/msm_sdhci.c
@@ -643,8 +671,7 @@ F: drivers/reset/sti-reset.c
F: drivers/serial/serial_sti_asc.c
F: drivers/sysreset/sysreset_sti.c
F: drivers/timer/arm_global_timer.c
F: drivers/usb/host/dwc3-sti-glue.c
F: include/dwc3-sti-glue.h
F: drivers/usb/host/dwc3-sti.c
F: include/dt-bindings/clock/stih407-clks.h
F: include/dt-bindings/clock/stih410-clks.h
F: include/dt-bindings/reset/stih407-resets.h
@@ -740,6 +767,7 @@ F: drivers/gpio/omap_gpio.c
F: drivers/memory/ti-aemif.c
F: drivers/misc/k3_avs.c
F: drivers/mailbox/k3-sec-procy.c
F: drivers/pci/pcie_cdns_ti.c
F: drivers/pci/pcie_dw_ti.c
F: drivers/phy/keystone-usb-phy.c
F: drivers/phy/omap-usb2-phy.c
@@ -845,6 +873,7 @@ M: Michal Simek <michal.simek@amd.com>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
F: arch/arm/mach-zynqmp/
F: drivers/bootcount/bootcount_zynqmp.c
F: drivers/clk/clk_zynqmp.c
F: driver/firmware/firmware-zynqmp.c
F: drivers/fpga/zynqpl.c
@@ -908,6 +937,7 @@ BINMAN
M: Simon Glass <sjg@chromium.org>
M: Alper Nebi Yasak <alpernebiyasak@gmail.com>
S: Maintained
F: doc/develop/binman_tests.rst
F: tools/binman/
BLKMAP
@@ -941,7 +971,7 @@ F: net/eth_bootdevice.c
F: test/boot/
BOOTMETH_ANDROID
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
F: boot/bootmeth_android.c
@@ -1013,13 +1043,14 @@ F: common/cyclic.c
F: include/cyclic.h
DEVICETREE REBASING SUBTREE
M: Sumit Garg <sumit.garg@linaro.org>
M: Sumit Garg <sumit.garg@kernel.org>
S: Maintained
F: dts/upstream/
N: OF_UPSTREAM
DFU
M: Lukasz Majewski <lukma@denx.de>
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
F: cmd/dfu.c
@@ -1131,7 +1162,7 @@ F: test/common/event.c
F: test/py/tests/test_event_dump.py
FASTBOOT
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dfu.git
F: cmd/fastboot.c
@@ -1351,6 +1382,17 @@ F: drivers/net/
F: include/net.h
F: net/
NETWORK (LWIP)
M: Jerome Forissier <jerome.forissier@linaro.org>
S: Maintained
F: cmd/net-lwip.c
F: configs/qemu_arm64_lwip_defconfig
F: drivers/net/sandbox-lwip.c
F: include/net-lwip.h
F: lib/lwip/Makefile
F: lib/lwip/u-boot/
F: net/lwip/
NIOS
M: Thomas Chou <thomas@wytron.com.tw>
S: Maintained
@@ -1410,7 +1452,7 @@ S: Maintained
F: tools/patman/
PCIe DWC IMX
M: Sumit Garg <sumit.garg@linaro.org>
M: Sumit Garg <sumit.garg@kernel.org>
S: Maintained
F: drivers/pci/pcie_dw_imx.c
F: drivers/phy/phy-imx8m-pcie.c
@@ -1524,6 +1566,7 @@ SANDBOX
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: arch/sandbox/
F: configs/sandbox*
F: doc/arch/sandbox.rst
F: drivers/*/*sandbox*.c
F: include/dt-bindings/*/sandbox*.h
@@ -1584,6 +1627,7 @@ F: drivers/mtd/nand/spi/
SPI-NOR
M: Jagan Teki <jagan@amarulasolutions.com>
M: Vignesh R <vigneshr@ti.com>
R: Tudor Ambarus <tudor.ambarus@linaro.org>
S: Maintained
F: drivers/mtd/spi/
F: include/spi_flash.h
@@ -1669,6 +1713,7 @@ T: git https://source.denx.de/u-boot/custodians/u-boot-tpm.git
F: cmd/tpm*
F: drivers/tpm/
F: include/tpm*
F: lib/tpm*
TQ GROUP
#M: Martin Krause <martin.krause@tq-systems.de>
@@ -1705,12 +1750,31 @@ S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-ubi.git
F: drivers/mtd/ubi/
UFETCH
M: Caleb Connolly <caleb.connolly@linaro.org>
S: Maintained
F: cmd/ufetch.c
UFS
M: Neil Armstrong <neil.armstrong@linaro.org>
M: Bhupesh Sharma <bhupesh.linux@gmail.com>
M: Neha Malcom Francis <n-francis@ti.com>
S: Maintained
F: drivers/ufs/
UPL
M: Simon Glass <sjg@chromium.org>
S: Maintained
T: git https://source.denx.de/u-boot/custodians/u-boot-dm.git
F: boot/upl*
F: cmd/upl.c
F: common/spl/spl_upl.c
F: doc/usage/upl.rst
F: doc/usage/cmd/upl.rst
F: include/upl.h
F: test/boot/upl.c
F: test/py/tests/test_upl.py
USB
M: Marek Vasut <marex@denx.de>
S: Maintained
@@ -1721,6 +1785,15 @@ F: common/usb_kbd.c
F: common/usb_storage.c
F: include/usb.h
USB TCPM
M: Sebastian Reichel <sebastian.reichel@collabora.com>
S: Maintained
F: cmd/tcpm.c
F: doc/usage/cmd/tcpm.rst
F: drivers/usb/tcpm/
F: include/usb/pd.h
F: include/usb/tcpm.h
USB xHCI
M: Bin Meng <bmeng.cn@gmail.com>
S: Maintained
@@ -1733,6 +1806,13 @@ M: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
S: Maintained
F: test/lib/uuid.c
VBE
M: Simon Glass <sjg@chromium.org>
S: Maintained
F: boot/vbe*
F: common/spl_reloc.c
F: include/vbe.h
VIDEO
M: Anatolij Gustschin <agust@denx.de>
S: Maintained

107
Makefile
View File

@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0+
VERSION = 2024
PATCHLEVEL = 10
VERSION = 2025
PATCHLEVEL = 04
SUBLEVEL =
EXTRAVERSION =
NAME =
@@ -21,7 +21,7 @@ include include/host_arch.h
ifeq ("", "$(CROSS_COMPILE)")
MK_ARCH="${shell uname -m}"
else
MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 's/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p'}"
MK_ARCH="${shell echo $(CROSS_COMPILE) | sed -n 's/^\(.*ccache\)\{0,1\}[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\3/p'}"
endif
unexport HOST_ARCH
ifeq ("x86_64", $(MK_ARCH))
@@ -624,7 +624,7 @@ include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
@# Otherwise, 'make silentoldconfig' would be invoked twice.
$(Q)touch include/config/auto.conf
u-boot.cfg spl/u-boot.cfg tpl/u-boot.cfg:
u-boot.cfg spl/u-boot.cfg tpl/u-boot.cfg vpl/u-boot.cfg:
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.autoconf $(@)
-include include/autoconf.mk
@@ -829,14 +829,22 @@ KBUILD_HOSTCFLAGS += $(if $(CONFIG_TOOLS_DEBUG),-g)
UBOOTINCLUDE := \
-Iinclude \
$(if $(KBUILD_SRC), -I$(srctree)/include) \
$(if $(CONFIG_$(SPL_)SYS_THUMB_BUILD), \
$(if $(CONFIG_$(XPL_)MBEDTLS_LIB), \
"-DMBEDTLS_CONFIG_FILE=\"mbedtls_def_config.h\"" \
-I$(srctree)/lib/mbedtls \
-I$(srctree)/lib/mbedtls/port \
-I$(srctree)/lib/mbedtls/external/mbedtls \
-I$(srctree)/lib/mbedtls/external/mbedtls/include) \
$(if $(CONFIG_$(XPL_)SYS_THUMB_BUILD), \
$(if $(CONFIG_HAS_THUMB2), \
$(if $(CONFIG_CPU_V7M), \
-I$(srctree)/arch/arm/thumb1/include), \
-I$(srctree)/arch/arm/thumb1/include)) \
-I$(srctree)/arch/$(ARCH)/include \
-include $(srctree)/include/linux/kconfig.h \
-I$(srctree)/dts/upstream/include
-I$(srctree)/dts/upstream/include \
$(if $(CONFIG_NET_LWIP), -I$(srctree)/lib/lwip/lwip/src/include \
-I$(srctree)/lib/lwip/u-boot)
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
@@ -859,12 +867,12 @@ libs-$(CONFIG_OF_EMBED) += dts/
libs-y += env/
libs-y += lib/
libs-y += fs/
libs-y += net/
libs-$(filter y,$(CONFIG_NET) $(CONFIG_NET_LWIP)) += net/
libs-y += disk/
libs-y += drivers/
libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
libs-$(CONFIG_SYS_FSL_MMDC) += drivers/ddr/fsl/
libs-$(CONFIG_$(SPL_)ALTERA_SDRAM) += drivers/ddr/altera/
libs-$(CONFIG_$(XPL_)ALTERA_SDRAM) += drivers/ddr/altera/
libs-y += drivers/usb/cdns3/
libs-y += drivers/usb/dwc3/
libs-y += drivers/usb/common/
@@ -879,11 +887,12 @@ libs-y += drivers/usb/musb/
libs-y += drivers/usb/musb-new/
libs-y += drivers/usb/isp1760/
libs-y += drivers/usb/phy/
libs-y += drivers/usb/tcpm/
libs-y += drivers/usb/ulpi/
ifdef CONFIG_POST
libs-y += post/
endif
libs-$(CONFIG_$(SPL_TPL_)UNIT_TEST) += test/
libs-$(CONFIG_$(PHASE_)UNIT_TEST) += test/
libs-$(CONFIG_UT_ENV) += test/env/
libs-$(CONFIG_UT_OPTEE) += test/optee/
libs-$(CONFIG_UT_OVERLAY) += test/overlay/
@@ -1139,13 +1148,6 @@ ifeq ($(CONFIG_OF_EMBED)$(CONFIG_EFI_APP),y)
@echo >&2 "CONFIG_OF_SEPARATE for boards in mainline."
@echo >&2 "See doc/develop/devicetree/control.rst for more info."
@echo >&2 "===================================================="
endif
ifneq ($(CONFIG_SPL_FIT_GENERATOR),)
@echo >&2 "===================== WARNING ======================"
@echo >&2 "This board uses CONFIG_SPL_FIT_GENERATOR. Please migrate"
@echo >&2 "to binman instead, to avoid the proliferation of"
@echo >&2 "arch-specific scripts with no tests."
@echo >&2 "===================================================="
endif
$(call deprecated,CONFIG_WDT,DM watchdog,v2019.10,\
$(CONFIG_WATCHDOG)$(CONFIG_HW_WATCHDOG))
@@ -1284,6 +1286,15 @@ u-boot.hex u-boot.srec: u-boot FORCE
OBJCOPYFLAGS_u-boot-elf.srec := $(OBJCOPYFLAGS_u-boot.srec)
ifeq ($(CONFIG_POSITION_INDEPENDENT)$(CONFIG_RCAR_GEN3),yy)
# The flash_writer tool and previous recovery tools
# require the SREC load address to be 0x5000_0000 .
# The PIE U-Boot build sets the address to 0x0, so
# override the address back to make u-boot-elf.srec
# compatible with the recovery tools.
OBJCOPYFLAGS_u-boot-elf.srec += --change-addresses=0x50000000
endif
u-boot-elf.srec: u-boot.elf FORCE
$(call if_changed,objcopy)
@@ -1367,17 +1378,41 @@ u-boot.ldr: u-boot
# ---------------------------------------------------------------------------
# Use 'make BINMAN_DEBUG=1' to enable debugging
# Use 'make BINMAN_VERBOSE=3' to set vebosity level
ifneq ($(EXT_DTB),)
ext_dtb_list := $(basename $(notdir $(EXT_DTB)))
default_dt := $(firstword $(ext_dtb_list))
of_list := "$(ext_dtb_list)"
of_list_dirs := $(dir $(EXT_DTB))
else
of_list := $(CONFIG_OF_LIST)
ifneq ($(CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS),)
of_list_dirs := $(dt_dir) arch/$(ARCH)/dts
else
of_list_dirs := $(dt_dir)
endif
default_dt := $(if $(DEVICE_TREE),$(DEVICE_TREE),$(CONFIG_DEFAULT_DEVICE_TREE))
endif
binman_dtb := $(shell echo $(CONFIG_BINMAN_DTB))
ifeq ($(strip $(binman_dtb)),)
ifeq ($(CONFIG_OF_EMBED),y)
binman_dtb = ./dts/dt.dtb
else
binman_dtb = ./u-boot.dtb
endif
endif
quiet_cmd_binman = BINMAN $@
cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
$(foreach f,$(BINMAN_TOOLPATHS),--toolpath $(f)) \
--toolpath $(objtree)/tools \
$(if $(BINMAN_VERBOSE),-v$(BINMAN_VERBOSE)) \
build -u -d u-boot.dtb -O . -m \
--allow-missing $(if $(BINMAN_ALLOW_MISSING),--ignore-missing) \
build -u -d $(binman_dtb) -O . -m \
--allow-missing --fake-ext-blobs \
$(if $(BINMAN_ALLOW_MISSING),--ignore-missing) \
-I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
-I $(dt_dir) -a of-list=$(CONFIG_OF_LIST) \
$(foreach f,$(of_list_dirs),-I $(f)) -a of-list=$(of_list) \
$(foreach f,$(BINMAN_INDIRS),-I $(f)) \
-a atf-bl31-path=${BL31} \
-a tee-os-path=${TEE} \
@@ -1403,23 +1438,6 @@ OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec
u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
$(call if_changed,objcopy)
# Boards with more complex image requirements can provide an .its source file
# or a generator script
# NOTE: Please do not use this. We are migrating away from Makefile rules to use
# binman instead.
ifneq ($(CONFIG_SPL_FIT_SOURCE),"")
U_BOOT_ITS := u-boot.its
$(U_BOOT_ITS): $(subst ",,$(CONFIG_SPL_FIT_SOURCE))
$(call if_changed,copy)
else
ifneq ($(CONFIG_USE_SPL_FIT_GENERATOR),)
U_BOOT_ITS := u-boot.its
$(U_BOOT_ITS): $(U_BOOT_ITS_DEPS) FORCE
$(srctree)/$(CONFIG_SPL_FIT_GENERATOR) \
$(patsubst %,$(dt_dir)/%.dtb,$(subst ",,$(CONFIG_OF_LIST))) > $@
endif
endif
ifdef CONFIG_SPL_LOAD_FIT
MKIMAGEFLAGS_u-boot.img = -f auto -A $(ARCH) -T firmware -C none -O u-boot \
-a $(CONFIG_TEXT_BASE) -e $(CONFIG_SYS_UBOOT_START) \
@@ -1473,8 +1491,10 @@ u-boot.bin.lzma: u-boot.bin FORCE
u-boot-lzma.img: u-boot.bin.lzma FORCE
$(call if_changed,mkimage)
fit_image := $(if $(CONFIG_SANDBOX_VPL),u-boot,u-boot-nodtb.bin)
u-boot-dtb.img u-boot.img u-boot.kwb u-boot.pbl u-boot-ivt.img: \
$(if $(CONFIG_SPL_LOAD_FIT),u-boot-nodtb.bin \
$(if $(CONFIG_SPL_LOAD_FIT),$(fit_image) \
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_OF_EMBED)$(CONFIG_SANDBOX),dts/dt.dtb) \
,$(UBOOT_BIN)) FORCE
$(call if_changed,mkimage)
@@ -1768,6 +1788,7 @@ endif
ifeq ($(LTO_ENABLE),y)
quiet_cmd_u-boot__ ?= LTO $@
cmd_u-boot__ ?= \
touch $(u-boot-main) ; \
$(CC) -nostdlib -nostartfiles \
$(LTO_FINAL_LDFLAGS) $(c_flags) \
$(KBUILD_LDFLAGS:%=-Wl,%) $(LDFLAGS_u-boot:%=-Wl,%) -o $@ \
@@ -1781,7 +1802,9 @@ quiet_cmd_u-boot__ ?= LTO $@
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
else
quiet_cmd_u-boot__ ?= LD $@
cmd_u-boot__ ?= $(LD) $(KBUILD_LDFLAGS) $(LDFLAGS_u-boot) -o $@ \
cmd_u-boot__ ?= \
touch $(u-boot-main) ; \
$(LD) $(KBUILD_LDFLAGS) $(LDFLAGS_u-boot) -o $@ \
-T u-boot.lds $(u-boot-init) \
--whole-archive \
$(u-boot-main) \
@@ -2092,7 +2115,7 @@ spl/u-boot-spl-dtb.hex: spl/u-boot-spl
@:
spl/u-boot-spl: tools prepare $(if $(CONFIG_SPL_OF_CONTROL),dts/dt.dtb)
$(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all
$(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.xpl all
spl/sunxi-spl.bin: spl/u-boot-spl
@:
@@ -2111,14 +2134,14 @@ tpl/u-boot-tpl.bin: tpl/u-boot-tpl
$(TPL_SIZE_CHECK)
tpl/u-boot-tpl: tools prepare $(if $(CONFIG_TPL_OF_CONTROL),dts/dt.dtb)
$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.spl all
$(Q)$(MAKE) obj=tpl -f $(srctree)/scripts/Makefile.xpl all
vpl/u-boot-vpl.bin: vpl/u-boot-vpl
@:
$(VPL_SIZE_CHECK)
vpl/u-boot-vpl: tools prepare $(if $(CONFIG_TPL_OF_CONTROL),dts/dt.dtb)
$(Q)$(MAKE) obj=vpl -f $(srctree)/scripts/Makefile.spl all
$(Q)$(MAKE) obj=vpl -f $(srctree)/scripts/Makefile.xpl all
TAG_SUBDIRS := $(patsubst %,$(srctree)/%,$(u-boot-dirs) include)
@@ -2207,7 +2230,7 @@ CLEAN_FILES += include/autoconf.mk* include/bmp_logo.h include/bmp_logo_data.h \
itb.fit.fit itb.fit.itb itb.map spl.map mkimage-out.rom.mkimage \
mkimage.rom.mkimage mkimage-in-simple-bin* rom.map simple-bin* \
idbloader-spi.img lib/efi_loader/helloworld_efi.S *.itb \
Test* capsule.*.efi-capsule capsule*.map
Test* capsule*.*.efi-capsule capsule*.map
# Directories & files removed with 'make mrproper'
MRPROPER_DIRS += include/config include/generated spl tpl vpl \

172
README
View File

@@ -133,96 +133,6 @@ run some of U-Boot's tests.
See doc/arch/sandbox/sandbox.rst for more details.
Board Initialisation Flow:
--------------------------
This is the intended start-up flow for boards. This should apply for both
SPL and U-Boot proper (i.e. they both follow the same rules).
Note: "SPL" stands for "Secondary Program Loader," which is explained in
more detail later in this file.
At present, SPL mostly uses a separate code path, but the function names
and roles of each function are the same. Some boards or architectures
may not conform to this. At least most ARM boards which use
CONFIG_SPL_FRAMEWORK conform to this.
Execution typically starts with an architecture-specific (and possibly
CPU-specific) start.S file, such as:
- arch/arm/cpu/armv7/start.S
- arch/powerpc/cpu/mpc83xx/start.S
- arch/mips/cpu/start.S
and so on. From there, three functions are called; the purpose and
limitations of each of these functions are described below.
lowlevel_init():
- purpose: essential init to permit execution to reach board_init_f()
- no global_data or BSS
- there is no stack (ARMv7 may have one but it will soon be removed)
- must not set up SDRAM or use console
- must only do the bare minimum to allow execution to continue to
board_init_f()
- this is almost never needed
- return normally from this function
board_init_f():
- purpose: set up the machine ready for running board_init_r():
i.e. SDRAM and serial UART
- global_data is available
- stack is in SRAM
- BSS is not available, so you cannot use global/static variables,
only stack variables and global_data
Non-SPL-specific notes:
- dram_init() is called to set up DRAM. If already done in SPL this
can do nothing
SPL-specific notes:
- you can override the entire board_init_f() function with your own
version as needed.
- preloader_console_init() can be called here in extremis
- should set up SDRAM, and anything needed to make the UART work
- there is no need to clear BSS, it will be done by crt0.S
- for specific scenarios on certain architectures an early BSS *can*
be made available (via CONFIG_SPL_EARLY_BSS by moving the clearing
of BSS prior to entering board_init_f()) but doing so is discouraged.
Instead it is strongly recommended to architect any code changes
or additions such to not depend on the availability of BSS during
board_init_f() as indicated in other sections of this README to
maintain compatibility and consistency across the entire code base.
- must return normally from this function (don't call board_init_r()
directly)
Here the BSS is cleared. For SPL, if CONFIG_SPL_STACK_R is defined, then at
this point the stack and global_data are relocated to below
CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of
memory.
board_init_r():
- purpose: main execution, common code
- global_data is available
- SDRAM is available
- BSS is available, all static/global variables can be used
- execution eventually continues to main_loop()
Non-SPL-specific notes:
- U-Boot is relocated to the top of memory and is now running from
there.
SPL-specific notes:
- stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
CONFIG_SYS_FSL_HAS_CCI400
Defined For SoC that has cache coherent interconnect
CCN-400
CONFIG_SYS_FSL_HAS_CCN504
Defined for SoC that has cache coherent interconnect CCN-504
The following options need to be configured:
- CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.
@@ -771,21 +681,8 @@ The following options need to be configured:
CFG_SYS_NUM_I2C_BUSES
Hold the number of i2c buses you want to use.
CFG_SYS_I2C_DIRECT_BUS
define this, if you don't use i2c muxes on your hardware.
if CFG_SYS_I2C_MAX_HOPS is not defined or == 0 you can
omit this define.
CFG_SYS_I2C_MAX_HOPS
define how many muxes are maximal consecutively connected
on one i2c bus. If you not use i2c muxes, omit this
define.
CFG_SYS_I2C_BUSES
hold a list of buses you want to use, only used if
CFG_SYS_I2C_DIRECT_BUS is not defined, for example
a board with CFG_SYS_I2C_MAX_HOPS = 1 and
CFG_SYS_NUM_I2C_BUSES = 9:
hold a list of buses you want to use
CFG_SYS_I2C_BUSES {{0, {I2C_NULL_HOP}}, \
{0, {{I2C_MUX_PCA9547, 0x70, 1}}}, \
@@ -883,13 +780,6 @@ The following options need to be configured:
You should define these to the GPIO value as given directly to
the generic GPIO functions.
CFG_I2C_MULTI_BUS
This option allows the use of multiple I2C buses, each of which
must have a controller. At any point in time, only one bus is
active. To switch to a different bus, use the 'i2c dev' command.
Note that bus numbering is zero-based.
CFG_SYS_I2C_NOPROBES
This option specifies a list of I2C devices that will be skipped
@@ -900,11 +790,6 @@ The following options need to be configured:
will skip addresses 0x50 and 0x68 on a board with one I2C bus
CFG_SYS_RTC_BUS_NUM
If defined, then this indicates the I2C bus number for the RTC.
If not defined, then U-Boot assumes that RTC is on I2C bus 0.
CONFIG_SOFT_I2C_READ_REPEATED_START
defining this will force the i2c_read() function in
@@ -1533,13 +1418,13 @@ Low Level (hardware related) configuration options:
This only takes effect if the memory commands are activated
globally (CONFIG_CMD_MEMORY).
- CONFIG_SPL_BUILD
- CONFIG_XPL_BUILD
Set when the currently running compilation is for an artifact
that will end up in one of the 'xPL' builds, i.e. SPL, TPL or
VPL. Code that needs phase-specific behaviour can check this,
or (where possible) use spl_phase() instead.
or (where possible) use xpl_phase() instead.
Note that CONFIG_SPL_BUILD *is* always defined when either
Note that CONFIG_XPL_BUILD *is* always defined when either
of CONFIG_TPL_BUILD / CONFIG_VPL_BUILD is defined. This can be
counter-intuitive and should perhaps be changed.
@@ -1547,13 +1432,13 @@ Low Level (hardware related) configuration options:
Set when the currently running compilation is for an artifact
that will end up in the TPL build (as opposed to SPL, VPL or
U-Boot proper). Code that needs phase-specific behaviour can
check this, or (where possible) use spl_phase() instead.
check this, or (where possible) use xpl_phase() instead.
- CONFIG_VPL_BUILD
Set when the currently running compilation is for an artifact
that will end up in the VPL build (as opposed to the SPL, TPL
or U-Boot proper). Code that needs phase-specific behaviour can
check this, or (where possible) use spl_phase() instead.
check this, or (where possible) use xpl_phase() instead.
- CONFIG_ARCH_MAP_SYSMEM
Generally U-Boot (and in particular the md command) uses
@@ -2541,51 +2426,6 @@ On RISC-V, the following registers are used:
==> U-Boot will use gp to hold a pointer to the global data
Memory Management:
------------------
U-Boot runs in system state and uses physical addresses, i.e. the
MMU is not used either for address mapping nor for memory protection.
The available memory is mapped to fixed addresses using the memory
controller. In this process, a contiguous block is formed for each
memory type (Flash, SDRAM, SRAM), even when it consists of several
physical memory banks.
U-Boot is installed in the first 128 kB of the first Flash bank (on
TQM8xxL modules this is the range 0x40000000 ... 0x4001FFFF). After
booting and sizing and initializing DRAM, the code relocates itself
to the upper end of DRAM. Immediately below the U-Boot code some
memory is reserved for use by malloc() [see CONFIG_SYS_MALLOC_LEN
configuration setting]. Below that, a structure with global Board
Info data is placed, followed by the stack (growing downward).
Additionally, some exception handler code is copied to the low 8 kB
of DRAM (0x00000000 ... 0x00001FFF).
So a typical memory configuration with 16 MB of DRAM could look like
this:
0x0000 0000 Exception Vector code
:
0x0000 1FFF
0x0000 2000 Free for Application Use
:
:
:
:
0x00FB FF20 Monitor Stack (Growing downward)
0x00FB FFAC Board Info Data and permanent copy of global data
0x00FC 0000 Malloc Arena
:
0x00FD FFFF
0x00FE 0000 RAM Copy of Monitor Code
... eventually: LCD or video framebuffer
... eventually: pRAM (Protected RAM - unchanged by reset)
0x00FF FFFF [End of RAM]
System Initialization:
----------------------

View File

@@ -19,24 +19,4 @@ config EXAMPLES
U-Boot provides an API for standalone applications. Examples are
provided in directory examples/.
config STANDALONE_LOAD_ADDR
depends on EXAMPLES
hex "Address in memory to link standalone applications to"
default 0xffffffff80200000 if MIPS && 64BIT
default 0x8c000000 if SH
default 0x82000000 if ARC
default 0x80f00000 if MICROBLAZE
default 0x80300000 if ARCH_OMAP2PLUS || FSL_LSCH2 || FSL_LSCH3
default 0x80200000 if MIPS && 32BIT
default 0x0c100000 if ARM
default 0x02000000 if NIOS2
default 0x00040000 if PPC || X86
default 0x00020000 if M68K
default 0x0 if RISCV
default SYS_LOAD_ADDR
help
This option defines a board specific value for the address where
standalone program gets loaded, thus overwriting the architecture
dependent default settings.
endmenu

View File

@@ -1,8 +1,11 @@
# SPDX-License-Identifier: GPL-2.0+
# SPDX-License-Identifier: GPL-2.0-or-later
#
# (C) Copyright 2007 Semihalf
obj-y += api.o api_display.o api_net.o api_storage.o
obj-$(CONFIG_ARM) += api_platform-arm.o
ifeq (CONFIG_PPC,y)
obj-$(CONFIG_PPC) += api_platform-powerpc.o
obj-$(CONFIG_MIPS) += api_platform-mips.o
else
obj-y += api_platform.o
endif

View File

@@ -1,35 +0,0 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* This file contains routines that fetch data from ARM-dependent sources
* (bd_info etc.)
*/
#include <config.h>
#include <linux/types.h>
#include <api_public.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
/*
* Important notice: handling of individual fields MUST be kept in sync with
* include/asm-arm/u-boot.h and include/asm-arm/global_data.h, so any changes
* need to reflect their current state and layout of structures involved!
*/
int platform_sys_info(struct sys_info *si)
{
int i;
for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
platform_set_mr(si, gd->bd->bi_dram[i].start,
gd->bd->bi_dram[i].size, MR_ATTR_DRAM);
return 1;
}

View File

@@ -1,29 +0,0 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2007 Stanislav Galabov <sgalabov@gmail.com>
*
* This file contains routines that fetch data from bd_info sources
*/
#include <config.h>
#include <linux/types.h>
#include <api_public.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
/*
* Important notice: handling of individual fields MUST be kept in sync with
* include/asm-generic/u-boot.h, so any changes
* need to reflect their current state and layout of structures involved!
*/
int platform_sys_info(struct sys_info *si)
{
platform_set_mr(si, gd->ram_base, gd->ram_size, MR_ATTR_DRAM);
return 1;
}

View File

@@ -43,7 +43,6 @@ int platform_sys_info(struct sys_info *si)
platform_set_mr(si, gd->ram_base, gd->ram_size, MR_ATTR_DRAM);
platform_set_mr(si, gd->bd->bi_flashstart, gd->bd->bi_flashsize, MR_ATTR_FLASH);
platform_set_mr(si, gd->bd->bi_sramstart, gd->bd->bi_sramsize, MR_ATTR_SRAM);
return 1;
}

31
api/api_platform.c Normal file
View File

@@ -0,0 +1,31 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* This file contains a routine to fetch data from the global_data structure.
*/
#include <api_public.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
int platform_sys_info(struct sys_info *si)
{
int i;
si->clk_bus = gd->bus_clk;
si->clk_cpu = gd->cpu_clk;
for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
platform_set_mr(si, gd->bd->bi_dram[i].start,
gd->bd->bi_dram[i].size, MR_ATTR_DRAM);
platform_set_mr(si, gd->ram_base, gd->ram_size, MR_ATTR_DRAM);
platform_set_mr(si, gd->bd->bi_flashstart, gd->bd->bi_flashsize, MR_ATTR_FLASH);
return 1;
}

View File

@@ -8,6 +8,11 @@ config CREATE_ARCH_SYMLINK
config HAVE_ARCH_IOREMAP
bool
config HAVE_SETJMP
bool
help
The architecture supports setjmp() and longjmp().
config SUPPORT_BIG_ENDIAN
bool
@@ -32,6 +37,14 @@ config 32BIT
config 64BIT
bool
help
Indicates that U-Boot proper will be built for a 64 bit
architecture.
config SPL_64BIT
bool
help
Indicates that SPL will be built for a 64 bit architecture.
config SYS_CACHELINE_SIZE
int
@@ -39,7 +52,8 @@ config SYS_CACHELINE_SIZE
default 64 if SYS_CACHE_SHIFT_6
default 32 if SYS_CACHE_SHIFT_5
default 16 if SYS_CACHE_SHIFT_4
# Fall-back for MIPS
# Fall-back for MIPS and RISC-V
default 64 if RISCV
default 32 if MIPS
config LINKER_LIST_ALIGN
@@ -73,6 +87,7 @@ config ARC
config ARM
bool "ARM architecture"
select HAVE_SETJMP
select ARCH_SUPPORTS_LTO
select CREATE_ARCH_SYMLINK
select HAVE_PRIVATE_LIBGCC if !ARM64
@@ -129,6 +144,7 @@ config PPC
config RISCV
bool "RISC-V architecture"
select CREATE_ARCH_SYMLINK
select HAVE_SETJMP
select SUPPORT_ACPI
select SUPPORT_LITTLE_ENDIAN
select SUPPORT_OF_CONTROL
@@ -154,6 +170,7 @@ config RISCV
config SANDBOX
bool "Sandbox"
select HAVE_SETJMP
select ARCH_SUPPORTS_LTO
select BOARD_LATE_INIT
select BZIP2
@@ -164,13 +181,13 @@ config SANDBOX
select DM_GPIO
select DM_I2C
select DM_KEYBOARD
select DM_MMC
select DM_SERIAL
select DM_SPI
select DM_SPI_FLASH
select GZIP_COMPRESSED
select IO_TRACE
select LZO
select MMC
select MTD
select OF_BOARD_SETUP
select PCI_ENDPOINT
@@ -212,7 +229,8 @@ config SANDBOX
imply VIRTIO_MMIO
imply VIRTIO_PCI
imply VIRTIO_SANDBOX
imply VIRTIO_BLK
# Re-enable this when fully implemented
# imply VIRTIO_BLK
imply VIRTIO_NET
imply DM_SOUND
imply PCI_SANDBOX_EP
@@ -248,6 +266,7 @@ config SH
config X86
bool "x86 architecture"
select HAVE_SETJMP
select SUPPORT_SPL
select SUPPORT_TPL
select SUPPORT_LITTLE_ENDIAN

View File

@@ -10,12 +10,5 @@ dtb-$(CONFIG_TARGET_IOT_DEVKIT) += iot_devkit.dtb
include $(srctree)/scripts/Makefile.dts
targets += $(dtb-y)
# Add any required device tree compiler flags here
DTC_FLAGS += -R 4 -p 0x1000
PHONY += dtbs
dtbs: $(addprefix $(obj)/, $(dtb-y))
@:
clean-files := *.dtb

View File

@@ -10,7 +10,6 @@
#include <linux/compiler.h>
#include <linux/kernel.h>
#include <linux/log2.h>
#include <lmb.h>
#include <asm/arcregs.h>
#include <asm/arc-bcr.h>
#include <asm/cache.h>
@@ -820,16 +819,3 @@ void sync_n_cleanup_cache_all(void)
__ic_entire_invalidate();
}
static ulong get_sp(void)
{
ulong ret;
asm("mov %0, sp" : "=r"(ret) : );
return ret;
}
void arch_lmb_reserve(struct lmb *lmb)
{
arch_lmb_reserve_generic(lmb, get_sp(), gd->ram_top, 4096);
}

View File

@@ -7,6 +7,7 @@ config SYS_ARCH
config ARM64
bool
select 64BIT
select SPL_64BIT if SPL
select PHYS_64BIT
select SYS_CACHE_SHIFT_6
imply SPL_SEPARATE_BSS
@@ -107,15 +108,27 @@ config LNX_KRNL_IMG_TEXT_OFFSET_BASE
The value subtracted from CONFIG_TEXT_BASE to calculate the
TEXT_OFFSET value written to the Linux kernel image header.
config NVIC
bool
config GICV2
bool
config GICV3
bool
config DRIVER_GICV2
bool "ARM GICV2 driver"
select IRQ
depends on !NVIC
help
ARM GICV2 driver.
Basic support for parsing the GICV2 node and generate ACPI tables.
config GIC_V3_ITS
bool "ARM GICV3 ITS"
select IRQ
depends on !NVIC
help
ARM GICV3 Interrupt translation service (ITS).
Basic support for programming locality specific peripheral
@@ -126,6 +139,7 @@ config GIC_V3_ITS
config GICV3_SUPPORT_GIC600
bool "ARM GICV3 GIC600 SUPPORT"
depends on !NVIC
help
ARM GIC-600 IP complies with ARM GICv3 architecture, but among others,
implements a power control register in the Redistributor frame.This
@@ -185,6 +199,7 @@ config SPL_SYS_DCACHE_OFF
config SYS_ARM_CACHE_CP15
bool "CP15 based cache enabling support"
depends on !CPU_V7M
help
Select this if your processor suports enabling caches by using
CP15 registers.
@@ -192,6 +207,7 @@ config SYS_ARM_CACHE_CP15
config SYS_ARM_MMU
bool "MMU-based Paged Memory Management Support"
select SYS_ARM_CACHE_CP15
depends on !CPU_V7M
help
Select if you want MMU-based virtualised addressing space
support via paged memory management.
@@ -342,6 +358,7 @@ config CPU_V7M
select SYS_CACHE_SHIFT_5
select SYS_THUMB_BUILD
select THUMB2_KERNEL
select NVIC
config CPU_V7R
bool
@@ -644,6 +661,7 @@ config ARCH_ORION5X
config ARCH_BCM283X
bool "Broadcom BCM283X family"
select CPU
select DM
select DM_GPIO
select DM_SERIAL
@@ -802,7 +820,7 @@ config ARCH_OMAP2PLUS
bool "TI OMAP2+"
select CPU_V7A
select GPIO_EXTRA_HEADER
select SPL_BOARD_INIT if SPL
select SPL_SOC_INIT if SPL
select SPL_STACK_R if SPL
select SUPPORT_SPL
imply TI_SYSC if DM && OF_CONTROL
@@ -833,6 +851,15 @@ config ARCH_MEDIATEK
Support for the MediaTek SoCs family developed by MediaTek Inc.
Please refer to doc/README.mediatek for more information.
config ARCH_MMP
bool "Marvell MMP"
select ARM64
select DM
select DM_SERIAL
select OF_CONTROL
select SAVE_PREV_BL_FDT_ADDR
select SAVE_PREV_BL_INITRAMFS_START_ADDR
config ARCH_LPC32XX
bool "NXP LPC32xx platform"
select CPU_ARM926EJS
@@ -1047,7 +1074,7 @@ config ARCH_QEMU
imply DM_RNG
imply DM_RTC
imply RTC_PL031
imply OF_HAS_PRIOR_STAGE
imply OF_HAS_PRIOR_STAGE if !TARGET_QEMU_ARM_SBSA
imply VIDEO
imply VIDEO_BOCHS
imply SYS_WHITE_ON_BLACK
@@ -1155,7 +1182,6 @@ config ARCH_SUNXI
select DM_SPI if SPI
select DM_SPI_FLASH if SPI && MTD
select DM_KEYBOARD
select DM_MMC if MMC
select DM_SERIAL
select OF_BOARD_SETUP
select OF_CONTROL
@@ -1169,7 +1195,6 @@ config ARCH_SUNXI
select SUNXI_GPIO
select SYS_NS16550
select SYS_THUMB_BUILD if !ARM64
select USB if DISTRO_DEFAULTS
select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST
select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST
select SPL_USE_TINY_PRINTF if SPL
@@ -1195,6 +1220,7 @@ config ARCH_SUNXI
imply SYSRESET
imply SYSRESET_WATCHDOG
imply SYSRESET_WATCHDOG_AUTO
imply USB
imply USB_GADGET
imply WDT
@@ -1203,7 +1229,6 @@ config ARCH_U8500
select CPU_V7A
select DM
select DM_GPIO
select DM_MMC if MMC
select DM_SERIAL
select DM_USB_GADGET if DM_USB
select OF_CONTROL
@@ -1228,7 +1253,6 @@ config ARCH_VERSAL
select ARM64
select CLK
select DM
select DM_MMC if MMC
select DM_SERIAL
select GICV3
select OF_CONTROL
@@ -1241,7 +1265,6 @@ config ARCH_VERSAL2
select ARM64
select CLK
select DM
select DM_MMC if MMC
select DM_SERIAL
select OF_CONTROL
imply BOARD_LATE_INIT
@@ -1253,7 +1276,6 @@ config ARCH_VERSAL_NET
select ARM64
select CLK
select DM
select DM_MMC if MMC
select DM_SERIAL
select OF_CONTROL
imply BOARD_LATE_INIT
@@ -1278,7 +1300,6 @@ config ARCH_ZYNQ
select CPU_V7A
select DEBUG_UART_BOARD_INIT if SPL && DEBUG_UART
select DM
select DM_MMC if MMC
select DM_SERIAL
select DM_SPI
select DM_SPI_FLASH
@@ -1307,7 +1328,6 @@ config ARCH_ZYNQMP_R5
select CLK
select CPU_V7R
select DM
select DM_MMC if MMC
select DM_SERIAL
select OF_CONTROL
imply CMD_DM
@@ -1316,11 +1336,11 @@ config ARCH_ZYNQMP_R5
config ARCH_ZYNQMP
bool "Xilinx ZynqMP based platform"
select ARM64
select BINMAN
select CLK
select DM
select DEBUG_UART_BOARD_INIT if SPL && DEBUG_UART
imply DM_MAILBOX
select DM_MMC if MMC
select DM_SERIAL
select MTD
select DM_SPI if SPI
@@ -1370,7 +1390,6 @@ config ARCH_VEXPRESS64
select PL01X_SERIAL
select OF_CONTROL
select CLK
select BLK
select MTD_NOR_FLASH if MTD
select FLASH_CFI_DRIVER if MTD
select ENV_IS_IN_FLASH if MTD
@@ -1388,8 +1407,10 @@ config TARGET_TOTAL_COMPUTE
select PL01X_SERIAL
select DM
select DM_SERIAL
select DM_MMC
select DM_GPIO
select MMC
imply OF_HAS_PRIOR_STAGE
imply MISC_INIT_R
config TARGET_LS2080A_EMU
bool "Support ls2080a_emu"
@@ -1868,6 +1889,20 @@ config TARGET_LS1046AFRWY
config ARCH_SC5XX
bool "Analog Devices SC5XX-processor family"
select ADI_SC5XX_TIMER
select DM
select DM_SERIAL
select HAS_CUSTOM_SYS_INIT_SP_ADDR
select PANIC_HANG
select SPL
select SPL_BOOTROM_SUPPORT
select SPL_DM
select SPL_DM_SEQ_ALIAS
select SPL_LIBGENERIC_SUPPORT
select SPL_LIBCOMMON_SUPPORT
select SPL_SKIP_LOWLEVEL_INIT
select SUPPORT_SPL
select TIMER
config TARGET_SL28
bool "Support sl28"
@@ -1879,7 +1914,7 @@ config TARGET_SL28
select DM
select DM_GPIO
select DM_I2C
select DM_MMC
select MMC
select MTD
select DM_SPI_FLASH
select DM_MDIO
@@ -1920,10 +1955,10 @@ config ARCH_UNIPHIER
select DM
select DM_GPIO
select DM_I2C
select DM_MMC
select DM_MTD
select DM_RESET
select DM_SERIAL
select MMC
select OF_BOARD_SETUP
select OF_CONTROL
select OF_LIBFDT
@@ -1964,12 +1999,11 @@ config ARCH_STM32
config ARCH_STI
bool "Support STMicroelectronics SoCs"
select BLK
select CPU_V7A
select DM
select DM_MMC
select DM_RESET
select DM_SERIAL
select MMC
imply CMD_DM
help
Support for STMicroelectronics STiH407/10 SoC family.
@@ -2011,12 +2045,10 @@ config ARCH_STM32MP
config ARCH_ROCKCHIP
bool "Support Rockchip SoCs"
select BLK
select BINMAN if SPL_OPTEE || SPL
select DM
select DM_GPIO
select DM_I2C
select DM_MMC
select DM_PWM
select DM_REGULATOR
select DM_SERIAL
@@ -2025,6 +2057,7 @@ config ARCH_ROCKCHIP
select DM_USB_GADGET if USB_DWC3_GADGET
select ENABLE_ARM_SOC_BOOT0_HOOK
select OF_CONTROL
select MMC
select MTD
select SPI
select SPL_DM if SPL
@@ -2099,7 +2132,6 @@ config TARGET_POMELO
select AHCI
select SCSI_AHCI
select AHCI_PCI
select BLK
select PCI
select DM_PCI
select SCSI
@@ -2170,6 +2202,7 @@ config SERIAL_TAG
config STATIC_MACH_TYPE
bool "Statically define the Machine ID number"
default y if TARGET_DS109 || TARGET_DS414 || DEFAULT_DEVICE_TREE = "sun7i-a20-icnova-swac"
depends on SUPPORT_PASSING_ATAGS
help
When booting via ATAGs, enable this option if we know the correct
machine ID number to use at compile time. Some systems will be
@@ -2296,6 +2329,8 @@ source "arch/arm/mach-meson/Kconfig"
source "arch/arm/mach-mediatek/Kconfig"
source "arch/arm/mach-mmp/Kconfig"
source "arch/arm/mach-qemu/Kconfig"
source "arch/arm/mach-rockchip/Kconfig"
@@ -2360,6 +2395,7 @@ source "board/broadcom/bcmns3/Kconfig"
source "board/cavium/thunderx/Kconfig"
source "board/eets/pdu001/Kconfig"
source "board/emulation/qemu-arm/Kconfig"
source "board/emulation/qemu-sbsa/Kconfig"
source "board/freescale/ls2080aqds/Kconfig"
source "board/freescale/ls2080ardb/Kconfig"
source "board/freescale/ls1088a/Kconfig"

View File

@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0+
ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_ARCH_TEGRA),yy)
ifeq ($(CONFIG_XPL_BUILD)$(CONFIG_ARCH_TEGRA),yy)
CONFIG_CPU_V7A=
CONFIG_CPU_ARM720T=y
endif
@@ -24,7 +24,7 @@ endif
# On Tegra systems we must build SPL for the armv4 core on the device
# but otherwise we can use the value in CONFIG_SYS_ARM_ARCH
ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_ARCH_TEGRA),yy)
ifeq ($(CONFIG_XPL_BUILD)$(CONFIG_ARCH_TEGRA),yy)
arch-y += -D__LINUX_ARM_ARCH__=4
else
arch-y += -D__LINUX_ARM_ARCH__=$(CONFIG_SYS_ARM_ARCH)
@@ -69,6 +69,7 @@ machine-$(CONFIG_ARCH_KIRKWOOD) += kirkwood
machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
machine-$(CONFIG_ARCH_MESON) += meson
machine-$(CONFIG_ARCH_MMP) += mmp
machine-$(CONFIG_ARCH_MVEBU) += mvebu
machine-$(CONFIG_ARCH_NEXELL) += nexell
machine-$(CONFIG_ARCH_NPCM) += npcm
@@ -106,7 +107,7 @@ libs-y += $(machdirs)
head-y := arch/arm/cpu/$(CPU)/start.o
ifeq ($(CONFIG_SPL_BUILD),y)
ifeq ($(CONFIG_XPL_BUILD),y)
ifeq ($(CONFIG_SYS_SOC)$(CONFIG_SPL_FRAMEWORK),"mxs")
head-y := arch/arm/cpu/arm926ejs/mxs/start.o
endif

View File

@@ -40,7 +40,7 @@ PLATFORM_ELFFLAGS += -B arm -O elf32-littlearm
endif
# Choose between ARM/Thumb instruction sets
ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
ifeq ($(CONFIG_$(XPL_)SYS_THUMB_BUILD),y)
AFLAGS_IMPLICIT_IT := $(call as-option,-Wa$(comma)-mimplicit-it=always)
PF_CPPFLAGS_ARM := $(AFLAGS_IMPLICIT_IT) \
$(call cc-option, -mthumb -mthumb-interwork,\
@@ -53,7 +53,7 @@ PF_CPPFLAGS_ARM := $(call cc-option,-marm,) \
endif
# Only test once
ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
ifeq ($(CONFIG_$(XPL_)SYS_THUMB_BUILD),y)
archprepare: checkthumb checkgcc6
checkthumb:
@@ -99,7 +99,7 @@ PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_ARM) $(PF_CPPFLAGS_ABI)
ifneq (,$(findstring -mabi=aapcs-linux,$(PLATFORM_CPPFLAGS)))
# This file is parsed many times, so the string may get added multiple
# times. Also, the prefix needs to be different based on whether
# CONFIG_SPL_BUILD is defined or not. 'filter-out' the existing entry
# CONFIG_XPL_BUILD is defined or not. 'filter-out' the existing entry
# before adding the correct one.
PLATFORM_LIBS := arch/arm/lib/eabi_compat.o \
$(filter-out arch/arm/lib/eabi_compat.o, $(PLATFORM_LIBS))
@@ -116,7 +116,7 @@ LDFLAGS_u-boot += -pie
#
# http://sourceware.org/bugzilla/show_bug.cgi?id=12532
#
ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
ifeq ($(CONFIG_$(XPL_)SYS_THUMB_BUILD),y)
ifeq ($(GAS_BUG_12532),)
export GAS_BUG_12532:=$(shell if [ $(call binutils-version) -lt 0222 ] ; \
then echo y; else echo n; fi)
@@ -126,7 +126,7 @@ PLATFORM_RELFLAGS += -fno-optimize-sibling-calls
endif
endif
ifneq ($(CONFIG_SPL_BUILD),y)
ifneq ($(CONFIG_XPL_BUILD),y)
# Check that only R_ARM_RELATIVE relocations are generated.
INPUTS-y += checkarmreloc
# The movt / movw can hardcode 16 bit parts of the addresses in the
@@ -160,7 +160,7 @@ endif
ifdef CONFIG_MACH_IMX
ifneq ($(CONFIG_IMX_CONFIG),"")
ifdef CONFIG_SPL
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
INPUTS-y += SPL
endif
else

View File

@@ -5,6 +5,6 @@
obj-y = cpu.o
ifneq ($(CONFIG_SPL_BUILD),y)
ifneq ($(CONFIG_XPL_BUILD),y)
obj-$(CONFIG_EFI_LOADER) += sctlr.o
endif

View File

@@ -65,7 +65,7 @@ cpu_init_crit:
* When booting from NAND - it has definitely been a reset, so, no need
* to flush caches and disable the MMU
*/
#ifndef CONFIG_SPL_BUILD
#ifndef CONFIG_XPL_BUILD
/*
* flush v4 I/D caches
*/

View File

@@ -9,6 +9,6 @@ obj-y += cpu.o
# some files can only build in ARM mode
ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
ifdef CONFIG_$(XPL_)SYS_THUMB_BUILD
CFLAGS_cpu.o := -marm
endif

View File

@@ -6,7 +6,7 @@
extra-y = start.o
obj-y = cpu.o cache.o
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_XPL_BUILD
ifdef CONFIG_SPL_NO_CPU_SUPPORT
extra-y :=
endif
@@ -17,7 +17,7 @@ obj-$(CONFIG_ARCH_SUNXI) += sunxi/
# some files can only build in ARM or THUMB2, not THUMB1
ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
ifdef CONFIG_$(XPL_)SYS_THUMB_BUILD
ifndef CONFIG_HAS_THUMB2
CFLAGS_cpu.o := -marm

View File

@@ -3,11 +3,11 @@
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
extra-$(CONFIG_SPL_BUILD) := start.o
extra-$(CONFIG_XPL_BUILD) := start.o
obj-y = clock.o mxs.o iomux.o timer.o
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_XPL_BUILD
obj-y += spl_boot.o spl_lradc_init.o spl_mem_init.o spl_power_init.o
endif

View File

@@ -117,7 +117,7 @@ static void mxs_spl_console_init(void)
gd->bd = &bdata;
gd->baudrate = CONFIG_BAUDRATE;
serial_init();
gd->have_console = 1;
gd->flags |= GD_FLG_HAVE_CONSOLE;
#endif
}

View File

@@ -1,6 +1,6 @@
# Build a combined spl + u-boot image
ifdef CONFIG_SPL
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
ALL-y += u-boot-sunxi-with-spl.bin
endif
endif

View File

@@ -12,12 +12,12 @@ obj-y += syslib.o
obj-$(CONFIG_SYS_ARM_MPU) += mpu_v7r.o
ifneq ($(CONFIG_SPL_BUILD),y)
ifneq ($(CONFIG_XPL_BUILD),y)
obj-$(CONFIG_EFI_LOADER) += sctlr.o
obj-$(CONFIG_ARMV7_NONSEC) += exception_level.o
endif
ifneq ($(CONFIG_$(SPL_)SKIP_LOWLEVEL_INIT),y)
ifneq ($(CONFIG_$(XPL_)SKIP_LOWLEVEL_INIT),y)
obj-y += lowlevel_init.o
endif

View File

@@ -32,7 +32,7 @@ int cleanup_before_linux_select(int flags)
*
* we turn off caches etc ...
*/
#ifndef CONFIG_SPL_BUILD
#ifndef CONFIG_XPL_BUILD
disable_interrupts();
#endif

View File

@@ -26,7 +26,7 @@ WEAK(lowlevel_init)
/*
* Setup a temporary stack. Global data is not available yet.
*/
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_STACK)
ldr sp, =CONFIG_SPL_STACK
#else
ldr sp, =SYS_INIT_SP_ADDR
@@ -39,7 +39,7 @@ WEAK(lowlevel_init)
* Set up global data for boards that still need it. This will be
* removed soon.
*/
#ifdef CONFIG_SPL_BUILD
#ifdef CONFIG_XPL_BUILD
ldr r9, =gdata
#else
sub sp, sp, #GD_SIZE

View File

@@ -8,7 +8,7 @@ ifdef CONFIG_ARCH_NEXELL
obj-$(CONFIG_S5P4418_ONEWIRE) += pwm.o
else
obj-y += cpu_info.o
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
obj-y += timer.o
obj-y += sromc.o
endif

View File

@@ -279,7 +279,7 @@ ENTRY(cpu_init_cp15)
orr r2, r4, r2 @ r2 has combined CPU variant + revision
/* Early stack for ERRATA that needs into call C code */
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK)
#if defined(CONFIG_XPL_BUILD) && defined(CONFIG_SPL_STACK)
ldr r0, =(CONFIG_SPL_STACK)
#else
ldr r0, =(SYS_INIT_SP_ADDR)

View File

@@ -12,10 +12,10 @@ obj-$(CONFIG_MACH_SUN8I_H3) += tzpc.o
obj-$(CONFIG_MACH_SUN6I) += sram.o
obj-$(CONFIG_MACH_SUN8I) += sram.o
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
obj-$(CONFIG_ARMV7_PSCI) += psci.o
endif
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_XPL_BUILD
obj-y += fel_utils.o
endif

View File

@@ -6,14 +6,14 @@
extra-y := start.o
obj-y += cpu.o
ifndef CONFIG_$(SPL_TPL_)TIMER
ifndef CONFIG_$(PHASE_)TIMER
obj-$(CONFIG_SYS_ARCH_TIMER) += generic_timer.o
endif
ifndef CONFIG_$(SPL_)SYS_DCACHE_OFF
ifndef CONFIG_$(XPL_)SYS_DCACHE_OFF
obj-y += cache_v8.o
obj-y += cache.o
endif
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_XPL_BUILD
obj-$(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) += exceptions.o
else
obj-y += exceptions.o
@@ -27,14 +27,15 @@ endif
obj-y += cpu-dt.o
obj-$(CONFIG_ARM_SMCCC) += smccc-call.o
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
obj-$(CONFIG_ARMV8_SPIN_TABLE) += spin_table.o spin_table_v8.o
obj-$(CONFIG_ACPI_PARKING_PROTOCOL) += acpi_park_v8.o
else
obj-$(CONFIG_ARCH_SUNXI) += fel_utils.o
endif
obj-$(CONFIG_$(SPL_)ARMV8_SEC_FIRMWARE_SUPPORT) += sec_firmware.o sec_firmware_asm.o
obj-$(CONFIG_$(XPL_)ARMV8_SEC_FIRMWARE_SUPPORT) += sec_firmware.o sec_firmware_asm.o
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_XPL_BUILD
obj-$(CONFIG_SPL_RECOVER_DATA_SECTION) += spl_data.o
endif
@@ -45,3 +46,5 @@ obj-$(CONFIG_TARGET_BCMNS3) += bcmns3/
obj-$(CONFIG_XEN) += xen/
obj-$(CONFIG_ARMV8_CE_SHA1) += sha1_ce_glue.o sha1_ce_core.o
obj-$(CONFIG_ARMV8_CE_SHA256) += sha256_ce_glue.o sha256_ce_core.o
obj-$(CONFIG_SYSINFO_SMBIOS) += sysinfo.o

View File

@@ -0,0 +1,113 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (C) 2024 9elements GmbH
* Author: Patrick Rudolph <patrick.rudolph@9elements.com>
*
* This file provides ARMv8 specific code for the generic part of the
* ACPI parking protocol implementation. It contains the spinning code
* that will be installed into the parking protocol and it points the
* secondary CPUs to their own parking protocol page once it has been
* set up by the generic part.
*/
#include <asm/acpi_table.h>
#include <linux/linkage.h>
/* Filled by C code */
.global acpi_pp_tables
acpi_pp_tables:
.quad 0
.global acpi_pp_etables
acpi_pp_etables:
.quad 0
/* Read by C code */
.global acpi_pp_code_size
acpi_pp_code_size:
.word __secondary_pp_code_end - __secondary_pp_code_start
.global acpi_pp_secondary_jump
ENTRY(acpi_pp_secondary_jump)
0:
/*
* Cannot use atomic operations since the MMU and D-cache
* might be off. Use the MPIDR instead to find the spintable.
*/
/* Check if parking protocol table is ready */
ldr x1, =acpi_pp_tables
ldr x0, [x1]
cbnz x0, 0f
wfe
b 0b
0: /* Get end of page tables in x3 */
ldr x1, =acpi_pp_etables
ldr x3, [x1]
/* Get own CPU ID in w2 */
mrs x2, mpidr_el1
lsr x9, x2, #32
bfi x2, x9, #24, #8 /* w2 is aff3:aff2:aff1:aff0 */
0: /* Loop over all parking protocol pages */
cmp x0, x3
b.ge hlt
/* Fetch CPU_ID from current page */
ldr x1, [x0, #ACPI_PP_CPU_ID_OFFSET]
lsr x9, x1, #32
bfi x1, x9, #24, #8 /* w1 is aff3:aff2:aff1:aff0 */
/* Compare CPU_IDs */
cmp w1, w2
b.eq 0f
add x0, x0, #ACPI_PP_PAGE_SIZE
b 0b
hlt: wfi
b hlt /* Should never happen. */
0: /* x0 points to the 4K-aligned, parking protocol page */
add x2, x0, #ACPI_PP_CPU_CODE_OFFSET
/* Jump to spin code in own parking protocol page */
br x2
ENDPROC(acpi_pp_secondary_jump)
.align 8
__secondary_pp_code_start:
.global acpi_pp_code_start
ENTRY(acpi_pp_code_start)
/* x0 points to the 4K-aligned, parking protocol page */
/* Prepare defines for spinning code */
mov w3, #ACPI_PP_CPU_ID_INVALID
mov x2, #ACPI_PP_JMP_ADR_INVALID
/* Mark parking protocol page as ready */
str w3, [x0, #ACPI_PP_CPU_ID_OFFSET]
dsb sy
0: wfe
ldr w1, [x0, #ACPI_PP_CPU_ID_OFFSET]
/* Check CPU ID is valid */
cmp w1, w3
b.eq 0b
/* Check jump address valid */
ldr x1, [x0, #ACPI_PP_CPU_JMP_OFFSET]
cmp x1, x2
b.eq 0b
/* Clear jump address before jump */
str x2, [x0, #ACPI_PP_CPU_JMP_OFFSET]
dsb sy
br x1
ENDPROC(acpi_pp_code_start)
/* Secondary Boot Code ends here */
__secondary_pp_code_end:

View File

@@ -339,6 +339,31 @@ static void map_range(u64 virt, u64 phys, u64 size, int level,
}
}
void mmu_map_region(phys_addr_t addr, u64 size, bool emergency)
{
u64 va_bits;
int level = 0;
u64 attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE;
attrs |= PTE_TYPE_BLOCK | PTE_BLOCK_AF;
get_tcr(NULL, &va_bits);
if (va_bits < 39)
level = 1;
if (emergency)
map_range(addr, addr, size, level,
(u64 *)gd->arch.tlb_emerg, attrs);
/* Switch pagetables while we update the primary one */
__asm_switch_ttbr(gd->arch.tlb_emerg);
map_range(addr, addr, size, level,
(u64 *)gd->arch.tlb_addr, attrs);
__asm_switch_ttbr(gd->arch.tlb_addr);
}
static void add_map(struct mm_region *map)
{
u64 attrs = map->attrs | PTE_TYPE_BLOCK | PTE_BLOCK_AF;
@@ -800,7 +825,7 @@ void dcache_enable(void)
void dcache_disable(void)
{
uint32_t sctlr;
unsigned long sctlr;
sctlr = get_sctlr();
@@ -991,7 +1016,7 @@ void mmu_change_region_attr(phys_addr_t addr, size_t siz, u64 attrs)
* running however really wants to have dcache and the MMU active. Check that
* everything is sane and give the developer a hint if it isn't.
*/
#ifndef CONFIG_SPL_BUILD
#ifndef CONFIG_XPL_BUILD
#error Please describe your MMU layout in CONFIG_SYS_MEM_MAP and enable dcache.
#endif

View File

@@ -94,3 +94,8 @@ void armv8_setup_psci(void)
secure_ram_addr(psci_arch_init)();
}
#endif
void allow_unaligned(void)
{
set_sctlr(get_sctlr() & ~CR_A);
}

View File

@@ -5,7 +5,7 @@
obj-y += cpu.o
obj-y += lowlevel.o
obj-y += soc.o
ifndef CONFIG_SPL_BUILD
ifndef CONFIG_XPL_BUILD
obj-$(CONFIG_MP) += mp.o spintable.o
obj-$(CONFIG_OF_LIBFDT) += fdt.o
endif

View File

@@ -10,6 +10,7 @@
#include <env.h>
#include <init.h>
#include <hang.h>
#include <lmb.h>
#include <log.h>
#include <net.h>
#include <vsprintf.h>
@@ -122,7 +123,7 @@ static struct mm_region early_map[] = {
{ CFG_SYS_FSL_DRAM_BASE1, CFG_SYS_FSL_DRAM_BASE1,
CFG_SYS_FSL_DRAM_SIZE1,
#if defined(CONFIG_TFABOOT) || \
(defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD))
(defined(CONFIG_SPL) && !defined(CONFIG_XPL_BUILD))
PTE_BLOCK_MEMTYPE(MT_NORMAL) |
#else /* Start with nGnRnE and PXN and UXN to prevent speculative access */
PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
@@ -181,7 +182,7 @@ static struct mm_region early_map[] = {
{ CFG_SYS_FSL_DRAM_BASE1, CFG_SYS_FSL_DRAM_BASE1,
CFG_SYS_FSL_DRAM_SIZE1,
#if defined(CONFIG_TFABOOT) || \
(defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD))
(defined(CONFIG_SPL) && !defined(CONFIG_XPL_BUILD))
PTE_BLOCK_MEMTYPE(MT_NORMAL) |
#else /* Start with nGnRnE and PXN and UXN to prevent speculative access */
PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
@@ -1055,7 +1056,7 @@ int cpu_eth_init(struct bd_info *bis)
{
int error = 0;
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_XPL_BUILD)
error = fsl_mc_ldpaa_init(bis);
#endif
return error;
@@ -1285,7 +1286,7 @@ phys_size_t board_reserve_ram_top(phys_size_t ram_size)
{
phys_size_t ram_top = ram_size;
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_XPL_BUILD)
ram_top = mc_get_dram_block_size();
if (ram_top > ram_size)
return ram_size + ram_top;
@@ -1381,7 +1382,7 @@ static int tfa_dram_init_banksize(void)
if (i > 0)
ret = 0;
#if defined(CONFIG_RESV_RAM) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_RESV_RAM) && !defined(CONFIG_XPL_BUILD)
/* Assign memory for MC */
#ifdef CONFIG_SYS_DDR_BLOCK3_BASE
if (gd->bd->bi_dram[2].size >=
@@ -1467,7 +1468,7 @@ int dram_init_banksize(void)
}
#endif /* CFG_SYS_MEM_RESERVE_SECURE */
#if defined(CONFIG_RESV_RAM) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_RESV_RAM) && !defined(CONFIG_XPL_BUILD)
/* Assign memory for MC */
#ifdef CONFIG_SYS_DDR_BLOCK3_BASE
if (gd->bd->bi_dram[2].size >=
@@ -1525,8 +1526,8 @@ int dram_init_banksize(void)
return 0;
}
#if CONFIG_IS_ENABLED(EFI_LOADER)
void efi_add_known_memory(void)
#if CONFIG_IS_ENABLED(LMB_ARCH_MEM_MAP)
void lmb_arch_add_memory(void)
{
int i;
phys_addr_t ram_start;
@@ -1548,8 +1549,7 @@ void efi_add_known_memory(void)
gd->arch.resv_ram < ram_start + ram_size)
ram_size = gd->arch.resv_ram - ram_start;
#endif
efi_add_memory_map(ram_start, ram_size,
EFI_CONVENTIONAL_MEMORY);
lmb_add(ram_start, ram_size);
}
}
#endif
@@ -1624,7 +1624,7 @@ __weak int dram_init(void)
#ifdef CONFIG_SYS_FSL_DDR
fsl_initdram();
#if (!defined(CONFIG_SPL) && !defined(CONFIG_TFABOOT)) || \
defined(CONFIG_SPL_BUILD)
defined(CONFIG_XPL_BUILD)
/* This will break-before-make MMU for DDR */
update_early_mmu_table();
#endif

View File

@@ -93,7 +93,7 @@ void get_sys_info(struct sys_info *sys_info)
#define HWA_CGA_M1_CLK_SEL 0xe0000000
#define HWA_CGA_M1_CLK_SHIFT 29
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_XPL_BUILD)
rcw_tmp = in_be32(&gur->rcwsr[7]);
switch ((rcw_tmp & HWA_CGA_M1_CLK_SEL) >> HWA_CGA_M1_CLK_SHIFT) {
case 2:

View File

@@ -25,7 +25,7 @@ static u8 serdes2_prtcl_map[SERDES_PRCTL_COUNT];
static u8 serdes3_prtcl_map[SERDES_PRCTL_COUNT];
#endif
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_XPL_BUILD)
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
int xfi_dpmac[XFI14 + 1];
int sgmii_dpmac[SGMII18 + 1];
@@ -162,7 +162,7 @@ void serdes_init(u32 sd, u32 sd_addr, u32 rcwsr, u32 sd_prctl_mask,
debug("Unknown SerDes lane protocol %d\n", lane_prtcl);
else {
serdes_prtcl_map[lane_prtcl] = 1;
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_XPL_BUILD)
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
if (lane_prtcl >= XFI1 && lane_prtcl <= XFI14)
wriop_init_dpmac(sd, xfi_dpmac[lane_prtcl],
@@ -553,7 +553,7 @@ int setup_serdes_volt(u32 svdd)
void fsl_serdes_init(void)
{
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_MC_ENET) && !defined(CONFIG_XPL_BUILD)
int i , j;
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)

View File

@@ -23,7 +23,7 @@ static void set_icid(struct icid_id_table *tbl, int size)
out_be32((u32 *)(tbl[i].reg_addr), tbl[i].reg);
}
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_XPL_BUILD)
static void set_fman_icids(struct fman_icid_id_table *tbl, int size)
{
int i;
@@ -41,12 +41,12 @@ void set_icids(void)
/* setup general icid offsets */
set_icid(icid_tbl, icid_tbl_sz);
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_XPL_BUILD)
set_fman_icids(fman_icid_tbl, fman_icid_tbl_sz);
#endif
}
#ifndef CONFIG_SPL_BUILD
#ifndef CONFIG_XPL_BUILD
int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids)
{
int i, ret;

View File

@@ -183,7 +183,7 @@ ENTRY(lowlevel_init)
#endif
/* Initialize GIC Secure Bank Status */
#if !defined(CONFIG_SPL_BUILD)
#if !defined(CONFIG_XPL_BUILD)
#if defined(CONFIG_GICV2) || defined(CONFIG_GICV3)
branch_if_slave x0, 1f
bl get_gic_offset
@@ -306,7 +306,7 @@ ENTRY(lowlevel_init)
#endif
#if !defined(CONFIG_TFABOOT) && \
(defined(CONFIG_FSL_LSCH2) && !defined(CONFIG_SPL_BUILD))
(defined(CONFIG_FSL_LSCH2) && !defined(CONFIG_XPL_BUILD))
bl fsl_ocram_init
#endif
@@ -314,7 +314,7 @@ ENTRY(lowlevel_init)
ret
ENDPROC(lowlevel_init)
#if defined(CONFIG_FSL_LSCH2) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_FSL_LSCH2) && !defined(CONFIG_XPL_BUILD)
ENTRY(fsl_ocram_init)
mov x28, lr /* Save LR */
bl fsl_clear_ocram

View File

@@ -60,7 +60,7 @@ struct icid_id_table icid_tbl[] = {
int icid_tbl_sz = ARRAY_SIZE(icid_tbl);
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_XPL_BUILD)
struct fman_icid_id_table fman_icid_tbl[] = {
/* port id, icid */
SET_FMAN_ICID_ENTRY(0x02, FSL_DPAA1_STREAM_ID_END),

View File

@@ -59,7 +59,7 @@ struct icid_id_table icid_tbl[] = {
int icid_tbl_sz = ARRAY_SIZE(icid_tbl);
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_SYS_DPAA_FMAN) && !defined(CONFIG_XPL_BUILD)
struct fman_icid_id_table fman_icid_tbl[] = {
/* port id, icid */
SET_FMAN_ICID_ENTRY(0x02, FSL_DPAA1_STREAM_ID_END),

View File

@@ -41,7 +41,7 @@ u32 spl_boot_device(void)
return 0;
}
#ifdef CONFIG_SPL_BUILD
#ifdef CONFIG_XPL_BUILD
void spl_board_init(void)
{
@@ -136,4 +136,4 @@ int spl_start_uboot(void)
return 1;
}
#endif /* CONFIG_SPL_OS_BOOT */
#endif /* CONFIG_SPL_BUILD */
#endif /* CONFIG_XPL_BUILD */

View File

@@ -58,7 +58,7 @@ reset:
.globl save_boot_params_ret
save_boot_params_ret:
#if CONFIG_POSITION_INDEPENDENT && !defined(CONFIG_SPL_BUILD)
#if CONFIG_POSITION_INDEPENDENT && !defined(CONFIG_XPL_BUILD)
/* Verify that we're 4K aligned. */
adr x0, _start
ands x0, x0, #0xfff
@@ -104,7 +104,7 @@ pie_skip_reloc:
pie_fixup_done:
#endif
#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_XPL_BUILD)
.macro set_vbar, regname, reg
msr \regname, \reg
.endm
@@ -174,10 +174,22 @@ pie_fixup_done:
/* Processor specific initialization */
bl lowlevel_init
#if defined(CONFIG_ARMV8_SPIN_TABLE) && !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_ARMV8_SPIN_TABLE) && !defined(CONFIG_XPL_BUILD)
branch_if_master x0, master_cpu
b spin_table_secondary_jump
/* never return */
#elif defined(CONFIG_ACPI_PARKING_PROTOCOL) && !defined(CONFIG_SPL_BUILD)
branch_if_master x0, master_cpu
/*
* Waits for ACPI parking protocol memory to be allocated and the spin-table
* code to be written. Once ready the secondary CPUs will jump and spin in
* their own 4KiB memory region, which is also used as mailbox, until released
* by the OS.
* The mechanism is similar to the DT enable-method = "spin-table", but works
* with ACPI enabled platforms.
*/
b acpi_pp_secondary_jump
/* never return */
#elif defined(CONFIG_ARMV8_MULTIENTRY)
branch_if_master x0, master_cpu
@@ -354,7 +366,7 @@ ENDPROC(smp_kick_all_cpus)
/*-----------------------------------------------------------------------*/
ENTRY(c_runtime_cpu_setup)
#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_XPL_BUILD)
/* Relocate vBAR */
adr x0, vectors
switch_el x1, 3f, 2f, 1f

View File

@@ -0,0 +1,292 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (c) 2024 Linaro Limited
* Author: Raymond Mao <raymond.mao@linaro.org>
*/
#include <dm.h>
#include <smbios_plat.h>
#include <stdio.h>
#include <sysinfo.h>
union ccsidr_el1 {
struct {
u64 linesize:3;
u64 associativity:10;
u64 numsets:15;
u64 unknown:4;
u64 reserved:32;
} no_ccidx;
struct {
u64 linesize:3;
u64 associativity:21;
u64 reserved1:8;
u64 numsets:24;
u64 reserved2:8;
} ccidx_aarch64;
struct {
u64 linesize:3;
u64 associativity:21;
u64 reserved:8;
u64 unallocated:32;
} ccidx_aarch32;
u64 data;
};
union midr_el1 {
struct {
u64 revision:4;
u64 partnum:12;
u64 architecture:4;
u64 variant:4;
u64 implementer:8;
u64 reserved:32;
} fields;
u64 data;
};
enum {
CACHE_NONE,
CACHE_INST_ONLY,
CACHE_DATA_ONLY,
CACHE_INST_WITH_DATA,
CACHE_UNIFIED,
};
enum {
CACHE_ASSOC_DIRECT_MAPPED = 1,
CACHE_ASSOC_2WAY = 2,
CACHE_ASSOC_4WAY = 4,
CACHE_ASSOC_8WAY = 8,
CACHE_ASSOC_16WAY = 16,
CACHE_ASSOC_12WAY = 12,
CACHE_ASSOC_24WAY = 24,
CACHE_ASSOC_32WAY = 32,
CACHE_ASSOC_48WAY = 48,
CACHE_ASSOC_64WAY = 64,
CACHE_ASSOC_20WAY = 20,
};
enum {
VENDOR_RESERVED = 0,
VENDOR_ARM = 0x41,
VENDOR_BROADCOM = 0x42,
VENDOR_CAVIUM = 0x43,
VENDOR_DEC = 0x44,
VENDOR_FUJITSU = 0x46,
VENDOR_INFINEON = 0x49,
VENDOR_FREESCALE = 0x4d,
VENDOR_NVIDIA = 0x4e,
VENDOR_AMCC = 0x50,
VENDOR_QUALCOMM = 0x51,
VENDOR_MARVELL = 0x56,
VENDOR_INTEL = 0x69,
VENDOR_AMPERE = 0xc0,
};
/*
* TODO:
* To support ARMv8.3, we need to read "CCIDX, bits [23:20]" from
* ID_AA64MMFR2_EL1 to get the format of CCSIDR_EL1:
*
* 0b0000 - 32-bit format implemented for all levels of the CCSIDR_EL1.
* 0b0001 - 64-bit format implemented for all levels of the CCSIDR_EL1.
*
* Here we assume to use CCSIDR_EL1 in no CCIDX layout:
* NumSets, bits [27:13]: (Number of sets in cache) - 1
* Associativity, bits [12:3]: (Associativity of cache) - 1
* LineSize, bits [2:0]: (Log2(Number of bytes in cache line)) - 4
*/
int sysinfo_get_cache_info(u8 level, struct cache_info *cinfo)
{
u64 clidr_el1;
u32 csselr_el1;
u32 num_sets;
union ccsidr_el1 creg;
int cache_type;
sysinfo_cache_info_default(cinfo);
/* Read CLIDR_EL1 */
asm volatile("mrs %0, clidr_el1" : "=r" (clidr_el1));
debug("CLIDR_EL1: 0x%llx\n", clidr_el1);
cache_type = (clidr_el1 >> (3 * level)) & 0x7;
if (cache_type == CACHE_NONE) /* level does not exist */
return -1;
switch (cache_type) {
case CACHE_INST_ONLY:
cinfo->cache_type = SMBIOS_CACHE_SYSCACHE_TYPE_INST;
break;
case CACHE_DATA_ONLY:
cinfo->cache_type = SMBIOS_CACHE_SYSCACHE_TYPE_DATA;
break;
case CACHE_UNIFIED:
cinfo->cache_type = SMBIOS_CACHE_SYSCACHE_TYPE_UNIFIED;
break;
case CACHE_INST_WITH_DATA:
cinfo->cache_type = SMBIOS_CACHE_SYSCACHE_TYPE_OTHER;
break;
default:
cinfo->cache_type = SMBIOS_CACHE_SYSCACHE_TYPE_UNKNOWN;
break;
}
/* Select cache level */
csselr_el1 = (level << 1);
asm volatile("msr csselr_el1, %0" : : "r" (csselr_el1));
/* Read CCSIDR_EL1 */
asm volatile("mrs %0, ccsidr_el1" : "=r" (creg.data));
debug("CCSIDR_EL1 (Level %d): 0x%llx\n", level + 1, creg.data);
/* Extract cache size and associativity */
cinfo->line_size = 1 << (creg.no_ccidx.linesize + 4);
/* Map the associativity value */
switch (creg.no_ccidx.associativity + 1) {
case CACHE_ASSOC_DIRECT_MAPPED:
cinfo->associativity = SMBIOS_CACHE_ASSOC_DMAPPED;
break;
case CACHE_ASSOC_2WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_2WAY;
break;
case CACHE_ASSOC_4WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_4WAY;
break;
case CACHE_ASSOC_8WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_8WAY;
break;
case CACHE_ASSOC_16WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_16WAY;
break;
case CACHE_ASSOC_12WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_12WAY;
break;
case CACHE_ASSOC_24WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_24WAY;
break;
case CACHE_ASSOC_32WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_32WAY;
break;
case CACHE_ASSOC_48WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_48WAY;
break;
case CACHE_ASSOC_64WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_64WAY;
break;
case CACHE_ASSOC_20WAY:
cinfo->associativity = SMBIOS_CACHE_ASSOC_20WAY;
break;
default:
cinfo->associativity = SMBIOS_CACHE_ASSOC_UNKNOWN;
break;
}
num_sets = creg.no_ccidx.numsets + 1;
/* Size in KB */
cinfo->max_size = (cinfo->associativity * num_sets * cinfo->line_size) /
1024;
debug("L%d Cache:\n", level + 1);
debug("Number of bytes in cache line:%u\n", cinfo->line_size);
debug("Associativity of cache:%u\n", cinfo->associativity);
debug("Number of sets in cache:%u\n", num_sets);
debug("Cache size in KB:%u\n", cinfo->max_size);
cinfo->inst_size = cinfo->max_size;
/*
* Below fields with common values are placed under DT smbios node
* socket-design, config
* Other fields are typically specific to the implementation of the ARM
* processor by the silicon vendor:
* supp_sram_type, curr_sram_type, speed, err_corr_type
*/
return 0;
}
int sysinfo_get_processor_info(struct processor_info *pinfo)
{
u64 mpidr, core_count;
union midr_el1 midr;
/* Read the MIDR_EL1 register */
asm volatile("mrs %0, MIDR_EL1" : "=r"(midr.data));
/* Read the MPIDR_EL1 register */
asm volatile("mrs %0, MPIDR_EL1" : "=r"(mpidr));
debug("MIDR: 0x%016llx\n", midr.data);
debug("MPIDR: 0x%016llx\n", mpidr);
debug("CPU Implementer: 0x%02x\n", midr.fields.implementer);
switch (midr.fields.implementer) {
case VENDOR_ARM:
pinfo->manufacturer = "ARM Limited";
break;
case VENDOR_BROADCOM:
pinfo->manufacturer = "Broadcom Corporation";
break;
case VENDOR_CAVIUM:
pinfo->manufacturer = "Cavium Inc";
break;
case VENDOR_DEC:
pinfo->manufacturer = "Digital Equipment Corporation";
break;
case VENDOR_FUJITSU:
pinfo->manufacturer = "Fujitsu Ltd";
break;
case VENDOR_INFINEON:
pinfo->manufacturer = "Infineon Technologies AG";
break;
case VENDOR_FREESCALE:
pinfo->manufacturer = "Freescale Semiconductor Inc";
break;
case VENDOR_NVIDIA:
pinfo->manufacturer = "NVIDIA Corporation";
break;
case VENDOR_AMCC:
pinfo->manufacturer =
"Applied Micro Circuits Corporation";
break;
case VENDOR_QUALCOMM:
pinfo->manufacturer = "Qualcomm Inc";
break;
case VENDOR_MARVELL:
pinfo->manufacturer = "Marvell International Ltd";
break;
case VENDOR_INTEL:
pinfo->manufacturer = "Intel Corporation";
break;
case VENDOR_AMPERE:
pinfo->manufacturer = "Ampere Computing";
break;
default:
pinfo->manufacturer = "Unknown";
break;
}
debug("CPU part number: 0x%x\n", midr.fields.partnum);
debug("CPU revision: 0x%x\n", midr.fields.revision);
debug("CPU architecture: 0x%x\n", midr.fields.architecture);
debug("CPU variant: 0x%x\n", midr.fields.variant);
/* Extract number of cores */
core_count = (mpidr >> 0) & 0xFF;
pinfo->core_count = core_count + 1;
debug("CPU Core Count: %d\n", pinfo->core_count);
pinfo->core_enabled = pinfo->core_count;
pinfo->characteristics = SMBIOS_PROCESSOR_64BIT |
SMBIOS_PROCESSOR_ARM64_SOCID;
if (pinfo->core_count > 1)
pinfo->characteristics |= SMBIOS_PROCESSOR_MULTICORE;
/*
* Below fields with common values are placed under DT smbios node
* version, processor-type, processor-status, upgrade, family2,
* socket-design, serial, asset-tag, part-number
*/
return 0;
}

View File

@@ -9,8 +9,16 @@
#include <linux/linkage.h>
#include <asm/macro.h>
.pushsection .text.armv8_switch_to_el2_prep, "ax"
WEAK(armv8_switch_to_el2_prep)
ret
ENDPROC(armv8_switch_to_el2_prep)
.popsection
.pushsection .text.armv8_switch_to_el2, "ax"
ENTRY(armv8_switch_to_el2)
bl armv8_switch_to_el2_prep
nop
switch_el x6, 1f, 0f, 0f
0:
cmp x5, #ES_TO_AARCH64

View File

@@ -13,8 +13,10 @@
MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,
LENGTH = IMAGE_MAX_SIZE }
#ifdef CONFIG_SPL_SEPARATE_BSS
MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR,
LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
#endif
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
@@ -56,12 +58,22 @@ SECTIONS
_end = .;
_image_binary_end = .;
#ifdef CONFIG_SPL_SEPARATE_BSS
.bss : {
__bss_start = .;
*(.bss*)
. = ALIGN(8);
__bss_end = .;
} >.sdram
#else
.bss (NOLOAD) : {
__bss_start = .;
*(.bss*)
. = ALIGN(8);
__bss_end = .;
} >.sram
#endif
__bss_size = __bss_end - __bss_start;
/DISCARD/ : { *(.rela*) }
/DISCARD/ : { *(.dynsym) }

View File

@@ -52,30 +52,17 @@ dtb-$(CONFIG_MACH_S900) += \
dtb-$(CONFIG_MACH_S700) += \
s700-cubieboard7.dtb
dtb-$(CONFIG_ROCKCHIP_RK3036) += \
rk3036-sdk.dtb
dtb-$(CONFIG_ROCKCHIP_RK3066) += \
rk3066a-mk808.dtb
dtb-$(CONFIG_ROCKCHIP_RK3128) += \
rk3128-evb.dtb
dtb-$(CONFIG_ROCKCHIP_RK3188) += \
rk3188-radxarock.dtb
dtb-$(CONFIG_ROCKCHIP_RK322X) += \
rk3229-evb.dtb
dtb-$(CONFIG_ROCKCHIP_RK3288) += \
rk3288-evb.dtb \
rk3288-firefly.dtb \
rk3288-miqi.dtb \
rk3288-popmetal.dtb \
rk3288-rock2-square.dtb \
rk3288-rock-pi-n8.dtb \
rk3288-tinker.dtb \
rk3288-tinker-s.dtb \
rk3288-veyron-jerry.dtb \
rk3288-veyron-mickey.dtb \
rk3288-veyron-minnie.dtb \
@@ -94,6 +81,7 @@ dtb-$(CONFIG_ARCH_MESON) += \
meson-a1-ad401.dtb
dtb-$(CONFIG_ARCH_TEGRA) += \
tegra20-acer-a500-picasso.dtb \
tegra20-asus-sl101.dtb \
tegra20-asus-tf101.dtb \
tegra20-asus-tf101g.dtb \
@@ -190,7 +178,8 @@ dtb-$(CONFIG_ARCH_MVEBU) += \
cn9130-crb-A.dtb \
cn9130-crb-B.dtb \
ac5-98dx35xx-rd.dtb \
ac5-98dx35xx-atl-x240.dtb
ac5-98dx35xx-atl-x240.dtb \
cn9130-atl-x250.dtb
endif
dtb-$(CONFIG_ARCH_SYNQUACER) += synquacer-sc2a11-developerbox.dtb
@@ -262,11 +251,6 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
zynqmp-m-a2197-02-revA.dtb \
zynqmp-m-a2197-03-revA.dtb \
zynqmp-p-a2197-00-revA.dtb \
zynqmp-p-a2197-00-revA-x-prc-01-revA.dtbo \
zynqmp-p-a2197-00-revA-x-prc-02-revA.dtbo \
zynqmp-p-a2197-00-revA-x-prc-03-revA.dtbo \
zynqmp-p-a2197-00-revA-x-prc-04-revA.dtbo \
zynqmp-p-a2197-00-revA-x-prc-05-revA.dtbo \
zynqmp-mini.dtb \
zynqmp-mini-emmc0.dtb \
zynqmp-mini-emmc1.dtb \
@@ -279,24 +263,13 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
zynqmp-mini-qspi-x1-stacked.dtb \
zynqmp-mini-qspi-x2-single.dtb \
zynqmp-mini-qspi-x2-stacked.dtb \
zynqmp-binman-mini.dtb \
zynqmp-sc-revB.dtb \
zynqmp-sc-revC.dtb \
zynqmp-sc-vek280-revA.dtbo \
zynqmp-sc-vek280-revB.dtbo \
zynqmp-sc-vhk158-revA.dtbo \
zynqmp-sc-vpk120-revB.dtbo \
zynqmp-sc-vpk180-revA.dtbo \
zynqmp-sc-vpk180-revB.dtbo \
zynqmp-sc-vn-p-b2197-00-revA.dtbo \
zynqmp-sm-k24-revA.dtb \
zynqmp-smk-k24-revA.dtb \
zynqmp-sm-k26-revA.dtb \
zynqmp-smk-k26-revA.dtb \
zynqmp-sck-kd-g-revA.dtbo \
zynqmp-sck-kr-g-revA.dtbo \
zynqmp-sck-kr-g-revB.dtbo \
zynqmp-sck-kv-g-revA.dtbo \
zynqmp-sck-kv-g-revB.dtbo \
zynqmp-topic-miamimp-xilinx-xdp-v1r1.dtb \
zynqmp-vpk120-revA.dtb \
zynqmp-vp-x-a2785-00-revA.dtb \
@@ -324,6 +297,71 @@ dtb-$(CONFIG_ARCH_ZYNQMP) += \
zynqmp-zc1751-xm017-dc3.dtb \
zynqmp-zc1751-xm018-dc4.dtb \
zynqmp-zc1751-xm019-dc5.dtb
zynqmp-p-a2197-00-revA-x-prc-01-revA-dtbs := zynqmp-p-a2197-00-revA.dtb zynqmp-p-a2197-00-revA-x-prc-01-revA.dtbo
zynqmp-p-a2197-00-revA-x-prc-02-revA-dtbs := zynqmp-p-a2197-00-revA.dtb zynqmp-p-a2197-00-revA-x-prc-02-revA.dtbo
zynqmp-p-a2197-00-revA-x-prc-03-revA-dtbs := zynqmp-p-a2197-00-revA.dtb zynqmp-p-a2197-00-revA-x-prc-03-revA.dtbo
zynqmp-p-a2197-00-revA-x-prc-04-revA-dtbs := zynqmp-p-a2197-00-revA.dtb zynqmp-p-a2197-00-revA-x-prc-04-revA.dtbo
zynqmp-p-a2197-00-revA-x-prc-05-revA-dtbs := zynqmp-p-a2197-00-revA.dtb zynqmp-p-a2197-00-revA-x-prc-05-revA.dtbo
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-p-a2197-00-revA-x-prc-01-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-p-a2197-00-revA-x-prc-02-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-p-a2197-00-revA-x-prc-03-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-p-a2197-00-revA-x-prc-04-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-p-a2197-00-revA-x-prc-05-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-binman.dtb
zynqmp-sc-vek280-revA-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vek280-revA.dtbo
zynqmp-sc-vek280-revB-dtbs := zynqmp-sc-revC.dtb zynqmp-sc-vek280-revB.dtbo
zynqmp-sc-vhk158-revA-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vhk158-revA.dtbo
zynqmp-sc-vpk120-revB-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vpk120-revB.dtbo
zynqmp-sc-vpk180-revA-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vpk180-revA.dtbo
zynqmp-sc-vpk180-revB-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vpk180-revB.dtbo
zynqmp-sc-vn-p-b2197-00-revA-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vn-p-b2197-00-revA.dtbo
zynqmp-sc-vm-p-b1369-00-revA-dtbs := zynqmp-sc-revB.dtb zynqmp-sc-vm-p-m1369-00-revA.dtbo
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vek280-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vek280-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vhk158-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vpk120-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vpk180-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vpk180-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vn-p-b2197-00-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sc-vm-p-b1369-00-revA.dtb
zynqmp-sm-k26-revA-sck-kv-g-revA-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kv-g-revA.dtbo
zynqmp-sm-k26-revA-sck-kv-g-revB-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kv-g-revB.dtbo
zynqmp-smk-k26-revA-sck-kv-g-revA-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kv-g-revA.dtbo
zynqmp-smk-k26-revA-sck-kv-g-revB-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kv-g-revB.dtbo
zynqmp-sm-k26-revA-sck-kr-g-revA-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kr-g-revA.dtbo
zynqmp-sm-k26-revA-sck-kr-g-revB-dtbs := zynqmp-sm-k26-revA.dtb zynqmp-sck-kr-g-revB.dtbo
zynqmp-smk-k26-revA-sck-kr-g-revA-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kr-g-revA.dtbo
zynqmp-smk-k26-revA-sck-kr-g-revB-dtbs := zynqmp-smk-k26-revA.dtb zynqmp-sck-kr-g-revB.dtbo
zynqmp-sm-k24-revA-sck-kd-g-revA-dtbs := zynqmp-sm-k24-revA.dtb zynqmp-sck-kd-g-revA.dtbo
zynqmp-smk-k24-revA-sck-kd-g-revA-dtbs := zynqmp-smk-k24-revA.dtb zynqmp-sck-kd-g-revA.dtbo
zynqmp-sm-k24-revA-sck-kv-g-revB-dtbs := zynqmp-sm-k24-revA.dtb zynqmp-sck-kv-g-revB.dtbo
zynqmp-smk-k24-revA-sck-kv-g-revB-dtbs := zynqmp-smk-k24-revA.dtb zynqmp-sck-kv-g-revB.dtbo
zynqmp-sm-k24-revA-sck-kr-g-revB-dtbs := zynqmp-sm-k24-revA.dtb zynqmp-sck-kr-g-revB.dtbo
zynqmp-smk-k24-revA-sck-kr-g-revB-dtbs := zynqmp-smk-k24-revA.dtb zynqmp-sck-kr-g-revB.dtbo
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k26-revA-sck-kv-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k26-revA-sck-kv-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k26-revA-sck-kv-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k26-revA-sck-kv-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k26-revA-sck-kr-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k26-revA-sck-kr-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k26-revA-sck-kr-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k26-revA-sck-kr-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k24-revA-sck-kd-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k24-revA-sck-kd-g-revA.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k24-revA-sck-kv-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k24-revA-sck-kv-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-sm-k24-revA-sck-kr-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-smk-k24-revA-sck-kr-g-revB.dtb
dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-binman-som.dtb
dtb-$(CONFIG_ARCH_VERSAL) += \
versal-mini.dtb \
versal-mini-emmc0.dtb \
@@ -490,56 +528,12 @@ dtb-$(CONFIG_STM32H7) += stm32h743i-disco.dtb \
stm32h743i-eval.dtb \
stm32h750i-art-pi.dtb
dtb-$(CONFIG_MACH_SUNIV) += \
suniv-f1c100s-licheepi-nano.dtb
dtb-$(CONFIG_MACH_SUN4I) += \
sun4i-a10-a1000.dtb \
sun4i-a10-ba10-tvbox.dtb \
sun4i-a10-chuwi-v7-cw0825.dtb \
sun4i-a10-cubieboard.dtb \
sun4i-a10-dserve-dsrv9703c.dtb \
sun4i-a10-gemei-g9.dtb \
sun4i-a10-hackberry.dtb \
sun4i-a10-hyundai-a7hd.dtb \
sun4i-a10-inet1.dtb \
sun4i-a10-inet-3f.dtb \
sun4i-a10-inet-3w.dtb \
sun4i-a10-inet97fv2.dtb \
sun4i-a10-inet9f-rev03.dtb \
sun4i-a10-itead-iteaduino-plus.dtb \
sun4i-a10-jesurun-q5.dtb \
sun4i-a10-marsboard.dtb \
sun4i-a10-mini-xplus.dtb \
sun4i-a10-mk802.dtb \
sun4i-a10-mk802ii.dtb \
sun4i-a10-olinuxino-lime.dtb \
sun4i-a10-pcduino.dtb \
sun4i-a10-pcduino2.dtb \
sun4i-a10-pov-protab2-ips9.dtb \
sun4i-a10-topwise-a721.dtb
sun4i-a10-inet-3w.dtb
dtb-$(CONFIG_MACH_SUN5I) += \
sun5i-a10s-auxtek-t003.dtb \
sun5i-a10s-auxtek-t004.dtb \
sun5i-a10s-mk802.dtb \
sun5i-a10s-olinuxino-micro.dtb \
sun5i-a10s-r7-tv-dongle.dtb \
sun5i-a10s-wobo-i5.dtb \
sun5i-a13-ampe-a76.dtb \
sun5i-a13-difrnce-dit4350.dtb \
sun5i-a13-empire-electronix-d709.dtb \
sun5i-a13-empire-electronix-m712.dtb \
sun5i-a13-hsg-h702.dtb \
sun5i-a13-inet-86vs.dtb \
sun5i-a13-inet-98v-rev2.dtb \
sun5i-a13-licheepi-one.dtb \
sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \
sun5i-a13-pocketbook-touch-lux-3.dtb \
sun5i-a13-q8-tablet.dtb \
sun5i-a13-utoo-p66.dtb \
sun5i-gr8-chip-pro.dtb \
sun5i-gr8-evb.dtb \
sun5i-r8-chip.dtb
sun5i-a13-inet-86vs.dtb
dtb-$(CONFIG_MACH_SUN6I) += \
sun6i-a31-app4-evb1.dtb \
sun6i-a31-colombus.dtb \
@@ -677,13 +671,6 @@ dtb-$(CONFIG_MACH_SUN50I_H6) += \
sun50i-h6-pine-h64-model-b.dtb \
sun50i-h6-tanix-tx6.dtb \
sun50i-h6-tanix-tx6-mini.dtb
dtb-$(CONFIG_MACH_SUN50I_H616) += \
sun50i-h313-tanix-tx1.dtb \
sun50i-h616-orangepi-zero2.dtb \
sun50i-h618-orangepi-zero2w.dtb \
sun50i-h618-orangepi-zero3.dtb \
sun50i-h618-transpeed-8k618-t.dtb \
sun50i-h616-x96-mate.dtb
dtb-$(CONFIG_MACH_SUN50I) += \
sun50i-a64-amarula-relic.dtb \
sun50i-a64-bananapi-m64.dtb \
@@ -739,8 +726,6 @@ dtb-y += \
imx6dl-cubox-i.dtb \
imx6dl-cubox-i-emmc-som-v15.dtb \
imx6dl-cubox-i-som-v15.dtb \
imx6dl-dhcom-pdk2.dtb \
imx6dl-dhcom-picoitx.dts \
imx6dl-gw51xx.dtb \
imx6dl-gw52xx.dtb \
imx6dl-gw53xx.dtb \
@@ -772,8 +757,7 @@ dtb-y += \
imx6dl-sabreauto.dtb \
imx6dl-sabresd.dtb \
imx6dl-sielaff.dtb \
imx6dl-wandboard-revd1.dtb \
imx6s-dhcom-drc02.dtb
imx6dl-wandboard-revd1.dtb
endif
@@ -785,7 +769,6 @@ dtb-y += \
imx6q-cubox-i.dtb \
imx6q-cubox-i-emmc-som-v15.dtb \
imx6q-cubox-i-som-v15.dtb \
imx6q-dhcom-pdk2.dtb \
imx6q-display5.dtb \
imx6q-gw51xx.dtb \
imx6q-gw52xx.dtb \
@@ -812,6 +795,7 @@ dtb-y += \
imx6q-icore-rqs.dtb \
imx6q-kp.dtb \
imx6q-logicpd.dtb \
imx6q-lxr.dtb \
imx6q-marsboard.dtb \
imx6q-mccmon6.dtb\
imx6q-nitrogen6x.dtb \
@@ -899,8 +883,7 @@ dtb-$(CONFIG_ARCH_IMX8) += \
fsl-imx8qxp-ai_ml.dtb \
fsl-imx8qxp-colibri.dtb \
fsl-imx8qxp-mek.dtb \
imx8-deneb.dtb \
imx8-giedi.dtb
imx8-capricorn-cxg3.dtb \
dtb-$(CONFIG_ARCH_IMX8ULP) += \
imx8ulp-evk.dtb
@@ -922,10 +905,9 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
imx8mp-dhcom-som-overlay-eth1xfast.dtbo \
imx8mp-dhcom-som-overlay-eth2xfast.dtbo \
imx8mp-dhcom-pdk-overlay-eth2xfast.dtbo \
imx8mp-debix-model-a.dtb \
imx8mp-dhcom-pdk2.dtb \
imx8mp-dhcom-pdk3.dtb \
imx8mp-dhcom-drc02.dtb \
imx8mp-dhcom-pdk3-overlay-rev100.dtbo \
imx8mp-dhcom-picoitx.dtb \
imx8mp-icore-mx8mp-edimm2.2.dtb \
imx8mp-msc-sm2s.dtb \
imx8mq-pico-pi.dtb \
@@ -940,23 +922,9 @@ dtb-$(CONFIG_ARCH_IMXRT) += imxrt1050-evk.dtb \
imxrt1020-evk.dtb \
imxrt1170-evk.dtb \
dtb-$(CONFIG_TARGET_RZG2L) += \
r9a07g044l2-smarc.dts
ifdef CONFIG_RCAR_64
DTC_FLAGS += -R 4 -p 0x1000
endif
dtb-$(CONFIG_RZA1) += \
r7s72100-gr-peach.dtb
dtb-$(CONFIG_ARCH_KEYSTONE) += keystone-k2hk-evm.dtb \
keystone-k2l-evm.dtb \
keystone-k2e-evm.dtb \
keystone-k2g-evm.dtb \
keystone-k2g-generic.dtb \
keystone-k2g-ice.dtb
dtb-$(CONFIG_TARGET_AT91SAM9261EK) += at91sam9261ek.dtb
dtb-$(CONFIG_TARGET_PM9261) += at91sam9261ek.dtb
@@ -994,14 +962,8 @@ dtb-$(CONFIG_TARGET_AT91SAM9N12EK) += at91sam9n12ek.dtb
dtb-$(CONFIG_TARGET_GARDENA_SMART_GATEWAY_AT91SAM) += \
at91sam9g25-gardena-smart-gateway.dtb
dtb-$(CONFIG_TARGET_ETHERNUT5) += ethernut5.dtb
dtb-$(CONFIG_TARGET_USB_A9263) += usb_a9263.dtb
dtb-$(CONFIG_TARGET_OMAP3_EVM) += \
omap3-evm-37xx.dtb \
omap3-evm.dtb
dtb-$(CONFIG_TARGET_DEVKIT8000) += omap3-devkit8000.dtb
dtb-$(CONFIG_TARGET_SAMA7G5EK) += \
@@ -1111,12 +1073,12 @@ dtb-$(CONFIG_BCM6878) += \
dtb-$(CONFIG_ASPEED_AST2500) += ast2500-evb.dtb
dtb-$(CONFIG_ASPEED_AST2600) += \
ast2600-evb.dtb \
ast2600-sbp1.dtb \
ast2600-x4tf.dtb
dtb-$(CONFIG_ARCH_STI) += stih410-b2260.dtb
dtb-$(CONFIG_STM32MP13X) += \
stm32mp135f-dhcor-dhsbc.dtb \
stm32mp135f-dk.dtb
dtb-$(CONFIG_STM32MP15X) += \
@@ -1132,34 +1094,17 @@ dtb-$(CONFIG_STM32MP15X) += \
stm32mp157c-ed1-scmi.dtb \
stm32mp157c-ev1.dtb \
stm32mp157c-ev1-scmi.dtb \
stm32mp157c-odyssey.dtb \
stm32mp15xx-dhcom-drc02.dtb \
stm32mp15xx-dhcom-pdk2.dtb \
stm32mp15xx-dhcom-picoitx.dtb \
stm32mp15xx-dhcor-avenger96.dtb \
stm32mp15xx-dhcor-drc-compact.dtb \
stm32mp15xx-dhcor-testbench.dtb
stm32mp157c-odyssey.dtb
dtb-$(CONFIG_STM32MP25X) += \
stm32mp257f-ev1.dtb
dtb-$(CONFIG_SOC_K3_AM654) += \
k3-am654-base-board.dtb \
k3-am654-r5-base-board.dtb \
k3-am65-iot2050-spl.dtb \
k3-am6528-iot2050-basic.dtb \
k3-am6528-iot2050-basic-pg2.dtb \
k3-am6548-iot2050-advanced.dtb \
k3-am6548-iot2050-advanced-pg2.dtb \
k3-am6548-iot2050-advanced-m2.dtb \
k3-am6548-iot2050-advanced-m2-bkey-usb3-overlay.dtbo \
k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie-overlay.dtbo \
k3-am654-icssg2.dtbo
k3-am654-r5-base-board.dtb
dtb-$(CONFIG_SOC_K3_J721E) += k3-j721e-r5-common-proc-board.dtb \
k3-j7200-r5-common-proc-board.dtb \
k3-j721e-r5-sk.dtb \
k3-j721e-beagleboneai64.dtb \
k3-j721e-r5-beagleboneai64.dtb
dtb-$(CONFIG_SOC_K3_J721S2) += k3-am68-sk-r5-base-board.dtb\
@@ -1179,7 +1124,9 @@ dtb-$(CONFIG_SOC_K3_AM625) += k3-am625-r5-sk.dtb \
k3-am625-verdin-r5.dtb \
k3-am625-r5-phycore-som-2gb.dtb
dtb-$(CONFIG_SOC_K3_AM62A7) += k3-am62a7-r5-sk.dtb
dtb-$(CONFIG_SOC_K3_AM62A7) += \
k3-am62a7-r5-sk.dtb \
k3-am62a7-r5-phycore-som-2gb.dtb
dtb-$(CONFIG_SOC_K3_AM62P5) += k3-am62p5-r5-sk.dtb
@@ -1188,7 +1135,6 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
mt7623a-unielec-u7623-02-emmc.dtb \
mt7622-bananapi-bpi-r64.dtb \
mt7623n-bananapi-bpi-r2.dtb \
mt7629-rfb.dtb \
mt7981-rfb.dtb \
mt7981-emmc-rfb.dtb \
mt7981-sd-rfb.dtb \
@@ -1258,6 +1204,15 @@ dtb-$(CONFIG_TARGET_IMX8MM_CL_IOT_GATE_OPTEE) += imx8mm-cl-iot-gate-optee.dtb \
imx8mm-cl-iot-gate-ied-tpm0.dtbo \
imx8mm-cl-iot-gate-ied-tpm1.dtbo
dtb-$(CONFIG_TARGET_SC573_EZKIT) += sc573-ezkit.dtb
dtb-$(CONFIG_TARGET_SC584_EZKIT) += sc584-ezkit.dtb
dtb-$(CONFIG_TARGET_SC589_MINI) += sc589-mini.dtb
dtb-$(CONFIG_TARGET_SC589_EZKIT) += sc589-ezkit.dtb
dtb-$(CONFIG_TARGET_SC594_SOM_EZKIT) += sc594-som-ezkit.dtb
dtb-$(CONFIG_TARGET_SC594_SOM_EZLITE) += sc594-som-ezlite.dtb
dtb-$(CONFIG_TARGET_SC598_SOM_EZKIT) += sc598-som-ezkit.dtb
dtb-$(CONFIG_TARGET_SC598_SOM_EZLITE) += sc598-som-ezlite.dtb
ifneq ($(CONFIG_TARGET_IMX8MP_RSB3720A1_4G)$(CONFIG_TARGET_IMX8MP_RSB3720A1_6G),)
dtb-y += imx8mp-rsb3720-a1.dtb
endif
@@ -1269,18 +1224,12 @@ dtb-$(CONFIG_ARCH_QEMU) += qemu-arm.dtb qemu-arm64.dtb
dtb-$(CONFIG_TARGET_CORSTONE1000) += corstone1000-mps3.dtb \
corstone1000-fvp.dtb
include $(srctree)/scripts/Makefile.dts
dtb-$(CONFIG_TARGET_COREPRIMEVELTE) += pxa1908-samsung-coreprimevelte.dtb
targets += $(dtb-y)
include $(srctree)/scripts/Makefile.dts
# Add any required device tree compiler flags here
DTC_FLAGS += -a 0x8
DTC_FLAGS_imx8mp-dhcom-som-overlay-rev100 += -Wno-avoid_default_addr_size -Wno-reg_format
DTC_FLAGS_imx8mp-dhcom-pdk3-overlay-rev100 += -Wno-avoid_default_addr_size -Wno-reg_format
PHONY += dtbs
dtbs: $(addprefix $(obj)/, $(dtb-y))
@:
clean-files := *.dtb *.dtbo *_HS

View File

@@ -129,3 +129,8 @@
reg = <0x4d>;
};
};
&sgpio {
status = "okay";
ngpios = <80>;
};

View File

@@ -255,6 +255,21 @@
interrupt-controller;
};
sgpio: sgpio@1e780200 {
compatible = "aspeed,ast2500-sgpio";
reg = <0x1e780200 0x100>;
interrupts = <40>;
clocks = <&scu ASPEED_CLK_APB>;
#gpio-cells = <2>;
gpio-controller;
#interrupt-cells = <2>;
interrupt-controller;
bus-frequency = <1000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sgpm_default>;
status = "disabled";
};
timer: timer@1e782000 {
/* This timer is a Faraday FTTMR010 derivative */
compatible = "aspeed,ast2400-timer";
@@ -1445,4 +1460,9 @@
function = "WDTRST2";
groups = "WDTRST2";
};
pinctrl_sgpm_default: sgpm_default {
function = "SGPM";
groups = "SGPM";
};
};

View File

@@ -266,3 +266,13 @@
bootph-all;
status = "okay";
};
&sgpiom0 {
status = "okay";
ngpios = <128>;
};
&sgpiom1 {
status = "okay";
ngpios = <80>;
};

File diff suppressed because it is too large Load Diff

View File

@@ -501,6 +501,36 @@
ngpios = <208>;
};
sgpiom0: sgpiom@1e780500 {
compatible = "aspeed,ast2600-sgpiom";
reg = <0x1e780500 0x100>;
interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scu ASPEED_CLK_APB2>;
#gpio-cells = <2>;
gpio-controller;
#interrupt-cells = <2>;
interrupt-controller;
bus-frequency = <1000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sgpm1_default>;
status = "disabled";
};
sgpiom1: sgpiom@1e780600 {
compatible = "aspeed,ast2600-sgpiom";
reg = <0x1e780600 0x100>;
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scu ASPEED_CLK_APB2>;
#gpio-cells = <2>;
gpio-controller;
#interrupt-cells = <2>;
interrupt-controller;
bus-frequency = <12000000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sgpm2_default>;
status = "disabled";
};
gpio1: gpio@1e780800 {
compatible = "aspeed,ast2600-gpio";
reg = <0x1e780800 0x800>;
@@ -2167,4 +2197,14 @@
function = "PCIE1RC";
groups = "PCIE1RC";
};
pinctrl_sgpm1_default: sgpm1_default {
function = "SGPM1";
groups = "SGPM1";
};
pinctrl_sgpm2_default: sgpm2_default {
function = "SGPM2";
groups = "SGPM2";
};
};

View File

@@ -1,60 +0,0 @@
/*
* at91sam9xe.dtsi - Device Tree Include file for AT91SAM9XE family SoC
*
* Copyright (C) 2015 Atmel,
* 2015 Alexandre Belloni <alexandre.Belloni@free-electrons.com>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include "at91sam9260.dtsi"
/ {
model = "Atmel AT91SAM9XE family SoC";
compatible = "atmel,at91sam9xe", "atmel,at91sam9260";
sram0: sram@002ff000 {
status = "disabled";
};
sram1: sram@00300000 {
compatible = "mmio-sram";
reg = <0x00300000 0x4000>;
};
};

View File

@@ -1,126 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm47622", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>,
<&CA7_2>, <&CA7_3>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
cpu_off = <1>;
cpu_on = <2>;
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x818000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
reg = <0x1000 0x1000>,
<0x2000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,127 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/dts-v1/;
/ {
compatible = "brcm,bcm4908", "brcm,bcmbca";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
device_type = "cpu";
compatible = "brcm,brahma-b53";
reg = <0x0>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0xfff8>;
next-level-cache = <&l2>;
};
cpu1: cpu@1 {
device_type = "cpu";
compatible = "brcm,brahma-b53";
reg = <0x1>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0xfff8>;
next-level-cache = <&l2>;
};
cpu2: cpu@2 {
device_type = "cpu";
compatible = "brcm,brahma-b53";
reg = <0x2>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0xfff8>;
next-level-cache = <&l2>;
};
cpu3: cpu@3 {
device_type = "cpu";
compatible = "brcm,brahma-b53";
reg = <0x3>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0xfff8>;
next-level-cache = <&l2>;
};
l2: l2-cache0 {
compatible = "cache";
};
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x00 0x00 0x81000000 0x4000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
reg = <0x1000 0x1000>,
<0x2000 0x2000>;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
};
clocks {
periph_clk: periph_clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <50000000>;
clock-output-names = "periph";
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x00 0x00 0xff800000 0x3000>;
uart0: serial@640 {
compatible = "brcm,bcm6345-uart";
reg = <0x640 0x18>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
};
};

View File

@@ -1,128 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm4912", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_2: cpu@2 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_3: cpu@3 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>,
<&B53_2>, <&B53_3>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,149 +0,0 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Broadcom BCM63138 DSL SoCs Device Tree
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm63138", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a9";
next-level-cache = <&L2>;
reg = <0>;
enable-method = "brcm,bcm63138";
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a9";
next-level-cache = <&L2>;
reg = <1>;
enable-method = "brcm,bcm63138";
};
};
clocks {
/* UBUS peripheral clock */
periph_clk: periph_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <50000000>;
clock-output-names = "periph";
};
/* peripheral clock for system timer */
axi_clk: axi_clk {
#clock-cells = <0>;
compatible = "fixed-factor-clock";
clocks = <&armpll>;
clock-div = <2>;
clock-mult = <1>;
};
/* APB bus clock */
apb_clk: apb_clk {
#clock-cells = <0>;
compatible = "fixed-factor-clock";
clocks = <&armpll>;
clock-div = <4>;
clock-mult = <1>;
};
};
/* ARM bus */
axi@80000000 {
compatible = "simple-bus";
ranges = <0 0x80000000 0x784000>;
#address-cells = <1>;
#size-cells = <1>;
L2: cache-controller@1d000 {
compatible = "arm,pl310-cache";
reg = <0x1d000 0x1000>;
cache-unified;
cache-level = <2>;
cache-size = <524288>;
cache-sets = <1024>;
cache-line-size = <32>;
interrupts = <GIC_PPI 0 IRQ_TYPE_LEVEL_HIGH>;
};
scu: scu@1e000 {
compatible = "arm,cortex-a9-scu";
reg = <0x1e000 0x100>;
};
gic: interrupt-controller@1f000 {
compatible = "arm,cortex-a9-gic";
reg = <0x1f000 0x1000
0x1e100 0x100>;
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
};
global_timer: timer@1e200 {
compatible = "arm,cortex-a9-global-timer";
reg = <0x1e200 0x20>;
interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
clocks = <&axi_clk>;
};
local_timer: local-timer@1e600 {
compatible = "arm,cortex-a9-twd-timer";
reg = <0x1e600 0x20>;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_EDGE_RISING)>;
clocks = <&axi_clk>;
};
twd_watchdog: watchdog@1e620 {
compatible = "arm,cortex-a9-twd-wdt";
reg = <0x1e620 0x20>;
interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
armpll: armpll@20000 {
#clock-cells = <0>;
compatible = "brcm,bcm63138-armpll";
clocks = <&periph_clk>;
reg = <0x20000 0xf00>;
};
};
/* Legacy UBUS base */
bus@fffe8000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xfffe8000 0x8000>;
timer0: timer@80 {
compatible = "brcm,bcmbca-periph-timer";
reg = <0x80 0x28>;
clocks = <&periph_clk>;
};
uart0: serial@600 {
compatible = "brcm,bcm6345-uart";
reg = <0x600 0x20>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
};
};

View File

@@ -1,110 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm63146", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,103 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm63148", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
B15_0: cpu@0 {
device_type = "cpu";
compatible = "brcm,brahma-b15";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B15_1: cpu@1 {
device_type = "cpu";
compatible = "brcm,brahma-b15";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a15-pmu";
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B15_0>, <&B15_1>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <50000000>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@80030000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x80030000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a15-gic";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xfffe8000 0x8000>;
uart0: serial@600 {
compatible = "brcm,bcm6345-uart";
reg = <0x600 0x20>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
};
};

View File

@@ -1,278 +0,0 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2019 Philippe Reynes <philippe.reynes@softathome.com>
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm63158", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_2: cpu@2 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_3: cpu@3 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>,
<&B53_2>, <&B53_3>;
};
clocks {
bootph-all;
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
hsspi_pll: hsspi-pll {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-mult = <2>;
clock-div = <1>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
wdt_clk: wdt-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
bootph-all;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
leds: led-controller@800 {
compatible = "brcm,bcm6858-leds";
reg = <0x800 0xe4>;
status = "disabled";
};
wdt1: watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x14>;
clocks = <&wdt_clk>;
};
wdt2: watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x14>;
clocks = <&wdt_clk>;
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdt1>;
};
gpio0: gpio-controller@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x4>,
<0x520 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio1: gpio-controller@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x4>,
<0x524 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio2: gpio-controller@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x4>,
<0x528 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio3: gpio-controller@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x4>,
<0x52c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio4: gpio-controller@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x4>,
<0x530 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio5: gpio-controller@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x4>,
<0x534 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio6: gpio-controller@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x4>,
<0x538 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio7: gpio-controller@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x4>,
<0x53c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
hsspi: spi-controller@1000 {
compatible = "brcm,bcm6328-hsspi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1000 0x600>;
clocks = <&hsspi_pll>, <&hsspi_pll>;
clock-names = "hsspi", "pll";
spi-max-frequency = <100000000>;
num-cs = <8>;
status = "disabled";
};
nand: nand-controller@1800 {
compatible = "brcm,nand-bcm63158",
"brcm,brcmnand-v5.0",
"brcm,brcmnand";
reg-names = "nand", "nand-int-base", "nand-cache";
reg = <0x1800 0x180>,
<0x2000 0x10>,
<0x1c00 0x200>;
parameter-page-big-endian = <0>;
status = "disabled";
};
};
};

View File

@@ -1,120 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm63178", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>,
<&CA7_2>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,130 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm6756", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>,
<&CA7_2>, <&CA7_3>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,128 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm6813", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_2: cpu@2 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_3: cpu@3 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>,
<&B53_2>, <&B53_3>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,103 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm6846", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
uart0: serial@640 {
compatible = "brcm,bcm6345-uart";
reg = <0x640 0x1b>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
};
};

View File

@@ -1,257 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2022 Philippe Reynes <philippe.reynes@softathome.com>
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm6855", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>, <&CA7_2>;
};
clocks: clocks {
bootph-all;
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
hsspi_pll: hsspi-pll {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-mult = <2>;
clock-div = <1>;
};
wdt_clk: wdt-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(3) | IRQ_TYPE_LEVEL_HIGH)>;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
bootph-all;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
wdt1: watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x14>;
clocks = <&wdt_clk>;
};
wdt2: watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x14>;
clocks = <&wdt_clk>;
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdt1>;
};
gpio0: gpio-controller@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x4>,
<0x520 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio1: gpio-controller@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x4>,
<0x524 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio2: gpio-controller@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x4>,
<0x528 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio3: gpio-controller@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x4>,
<0x52c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio4: gpio-controller@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x4>,
<0x530 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio5: gpio-controller@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x4>,
<0x534 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio6: gpio-controller@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x4>,
<0x538 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio7: gpio-controller@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x4>,
<0x53c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
nand: nand-controller@1800 {
compatible = "brcm,nand-bcm6753",
"brcm,brcmnand-v5.0",
"brcm,brcmnand";
reg-names = "nand", "nand-int-base", "nand-cache";
reg = <0x1800 0x180>,
<0x2000 0x10>,
<0x1c00 0x200>;
parameter-page-big-endian = <0>;
status = "disabled";
};
leds: led-controller@3000 {
compatible = "brcm,bcm6753-leds";
reg = <0x3000 0x3480>;
status = "disabled";
};
};
};

View File

@@ -1,253 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2020 Philippe Reynes <philippe.reynes@softathome.com>
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm6856", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>;
};
clocks: clocks {
bootph-all;
periph_clk:periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
hsspi_pll: hsspi-pll {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-mult = <2>;
clock-div = <1>;
};
wdt_clk: wdt-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0x1000 0x1000>, /* GICD */
<0x2000 0x2000>, /* GICC */
<0x4000 0x2000>, /* GICH */
<0x6000 0x2000>; /* GICV */
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
bootph-all;
uart0: serial@640 {
compatible = "brcm,bcm6345-uart";
reg = <0x640 0x18>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
wdt1: watchdog@480 {
compatible = "brcm,bcm6345-wdt";
reg = <0x480 0x14>;
clocks = <&wdt_clk>;
};
wdt2: watchdog@4c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x4c0 0x14>;
clocks = <&wdt_clk>;
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdt1>;
};
leds: led-controller@800 {
compatible = "brcm,bcm6858-leds";
reg = <0x800 0xe4>;
status = "disabled";
};
gpio0: gpio-controller@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x4>,
<0x520 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio1: gpio-controller@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x4>,
<0x524 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio2: gpio-controller@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x4>,
<0x528 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio3: gpio-controller@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x4>,
<0x52c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio4: gpio-controller@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x4>,
<0x530 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio5: gpio-controller@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x4>,
<0x534 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio6: gpio-controller@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x4>,
<0x538 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio7: gpio-controller@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x4>,
<0x53c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
hsspi: spi-controller@1000 {
compatible = "brcm,bcm6328-hsspi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1000 0x600>;
clocks = <&hsspi_pll>, <&hsspi_pll>;
clock-names = "hsspi", "pll";
spi-max-frequency = <100000000>;
num-cs = <8>;
status = "disabled";
};
nand: nand-controller@1800 {
compatible = "brcm,nand-bcm68360",
"brcm,brcmnand-v5.0",
"brcm,brcmnand";
reg-names = "nand", "nand-int-base", "nand-cache";
reg = <0x1800 0x180>,
<0x2000 0x10>,
<0x1c00 0x200>;
parameter-page-big-endian = <0>;
status = "disabled";
};
};
};

View File

@@ -1,272 +0,0 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2018 Philippe Reynes <philippe.reynes@softathome.com>
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
compatible = "brcm,bcm6858", "brcm,bcmbca";
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <2>;
#size-cells = <0>;
B53_0: cpu@0 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_1: cpu@1 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_2: cpu@2 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x2>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
B53_3: cpu@3 {
compatible = "brcm,brahma-b53";
device_type = "cpu";
reg = <0x0 0x3>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
pmu: pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&B53_0>, <&B53_1>,
<&B53_2>, <&B53_3>;
};
clocks {
bootph-all;
periph_clk: periph_clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
hsspi_pll: hsspi-pll {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-mult = <2>;
clock-div = <1>;
};
wdt_clk: wdt-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,gic-400";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0x1000 0x1000>, /* GICD */
<0x2000 0x2000>, /* GICC */
<0x4000 0x2000>, /* GICH */
<0x6000 0x2000>; /* GICV */
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
IRQ_TYPE_LEVEL_HIGH)>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x0 0xff800000 0x800000>;
bootph-all;
uart0: serial@640 {
compatible = "brcm,bcm6345-uart";
reg = <0x640 0x18>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&periph_clk>;
clock-names = "refclk";
status = "disabled";
};
leds: led-controller@800 {
compatible = "brcm,bcm6858-leds";
reg = <0x800 0xe4>;
status = "disabled";
};
wdt1: watchdog@2780 {
compatible = "brcm,bcm6345-wdt";
reg = <0x2780 0x14>;
clocks = <&wdt_clk>;
};
wdt2: watchdog@27c0 {
compatible = "brcm,bcm6345-wdt";
reg = <0x27c0 0x14>;
clocks = <&wdt_clk>;
};
wdt-reboot {
compatible = "wdt-reboot";
wdt = <&wdt1>;
};
gpio0: gpio-controller@500 {
compatible = "brcm,bcm6345-gpio";
reg = <0x500 0x4>,
<0x520 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio1: gpio-controller@504 {
compatible = "brcm,bcm6345-gpio";
reg = <0x504 0x4>,
<0x524 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio2: gpio-controller@508 {
compatible = "brcm,bcm6345-gpio";
reg = <0x508 0x4>,
<0x528 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio3: gpio-controller@50c {
compatible = "brcm,bcm6345-gpio";
reg = <0x50c 0x4>,
<0x52c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio4: gpio-controller@510 {
compatible = "brcm,bcm6345-gpio";
reg = <0x510 0x4>,
<0x530 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio5: gpio-controller@514 {
compatible = "brcm,bcm6345-gpio";
reg = <0x514 0x4>,
<0x534 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio6: gpio-controller@518 {
compatible = "brcm,bcm6345-gpio";
reg = <0x518 0x4>,
<0x538 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
gpio7: gpio-controller@51c {
compatible = "brcm,bcm6345-gpio";
reg = <0x51c 0x4>,
<0x53c 0x4>;
gpio-controller;
#gpio-cells = <2>;
status = "disabled";
};
hsspi: spi-controller@1000 {
compatible = "brcm,bcm6328-hsspi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x1000 0x600>;
clocks = <&hsspi_pll>, <&hsspi_pll>;
clock-names = "hsspi", "pll";
spi-max-frequency = <100000000>;
num-cs = <8>;
status = "disabled";
};
nand: nand-controller@1800 {
compatible = "brcm,nand-bcm6858",
"brcm,brcmnand-v5.0",
"brcm,brcmnand";
reg-names = "nand", "nand-int-base", "nand-cache";
reg = <0x1800 0x180>,
<0x2000 0x10>,
<0x1c00 0x200>;
parameter-page-big-endian = <0>;
status = "disabled";
};
};
};

View File

@@ -1,111 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "brcm,bcm6878", "brcm,bcmbca";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
CA7_0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
CA7_1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
next-level-cache = <&L2_0>;
enable-method = "psci";
};
L2_0: l2-cache0 {
compatible = "cache";
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
arm,cpu-registers-not-fw-configured;
};
pmu: pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
interrupt-affinity = <&CA7_0>, <&CA7_1>;
};
clocks: clocks {
periph_clk: periph-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <200000000>;
};
uart_clk: uart-clk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clocks = <&periph_clk>;
clock-div = <4>;
clock-mult = <1>;
};
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
axi@81000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x81000000 0x8000>;
gic: interrupt-controller@1000 {
compatible = "arm,cortex-a7-gic";
#interrupt-cells = <3>;
interrupt-controller;
reg = <0x1000 0x1000>,
<0x2000 0x2000>,
<0x4000 0x2000>,
<0x6000 0x2000>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
IRQ_TYPE_LEVEL_HIGH)>;
};
};
bus@ff800000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0xff800000 0x800000>;
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&uart_clk>, <&uart_clk>;
clock-names = "uartclk", "apb_pclk";
status = "disabled";
};
};
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2019 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm47622.dtsi"
/ {
model = "Broadcom BCM947622 Reference Board";
compatible = "brcm,bcm947622", "brcm,bcm47622", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm4908.dtsi"
/ {
model = "Broadcom BCM94908 Reference Board";
compatible = "brcm,bcm94908", "brcm,bcm4908", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm4912.dtsi"
/ {
model = "Broadcom BCM94912 Reference Board";
compatible = "brcm,bcm94912", "brcm,bcm4912", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm63138.dtsi"
/ {
model = "Broadcom BCM963138 Reference Board";
compatible = "brcm,bcm963138", "brcm,bcm63138", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm63146.dtsi"
/ {
model = "Broadcom BCM963146 Reference Board";
compatible = "brcm,bcm963146", "brcm,bcm63146", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2019 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm63148.dtsi"
/ {
model = "Broadcom BCM963148 Reference Board";
compatible = "brcm,bcm963148", "brcm,bcm63148", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm63158.dtsi"
/ {
model = "Broadcom BCM963158 Reference Board";
compatible = "brcm,bcm963158", "brcm,bcm63158", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2019 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm63178.dtsi"
/ {
model = "Broadcom BCM963178 Reference Board";
compatible = "brcm,bcm963178", "brcm,bcm63178", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -64,19 +64,15 @@
status = "okay";
};
&nand {
&nand_controller {
brcm,wp-not-connected;
status = "okay";
write-protect = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
nandcs@0 {
compatible = "brcm,nandcs";
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&leds {

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2019 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6756.dtsi"
/ {
model = "Broadcom BCM96756 Reference Board";
compatible = "brcm,bcm96756", "brcm,bcm6756", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6813.dtsi"
/ {
model = "Broadcom BCM96813 Reference Board";
compatible = "brcm,bcm96813", "brcm,bcm6813", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -62,19 +62,15 @@
status = "okay";
};
&nand {
&nand_controller {
brcm,wp-not-connected;
status = "okay";
write-protect = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
nandcs@0 {
compatible = "brcm,nandcs";
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&leds {

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6846.dtsi"
/ {
model = "Broadcom BCM96846 Reference Board";
compatible = "brcm,bcm96846", "brcm,bcm6846", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6855.dtsi"
/ {
model = "Broadcom BCM96855 Reference Board";
compatible = "brcm,bcm96855", "brcm,bcm6855", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6856.dtsi"
/ {
model = "Broadcom BCM96856 Reference Board";
compatible = "brcm,bcm96856", "brcm,bcm6856", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2022 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6858.dtsi"
/ {
model = "Broadcom BCM96858 Reference Board";
compatible = "brcm,bcm96858", "brcm,bcm6858", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -62,19 +62,15 @@
status = "okay";
};
&nand {
&nand_controller {
brcm,wp-not-connected;
status = "okay";
write-protect = <0>;
#address-cells = <1>;
#size-cells = <0>;
};
nandcs@0 {
compatible = "brcm,nandcs";
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
brcm,nand-oob-sector-size = <16>;
};
&leds {

View File

@@ -1,30 +0,0 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2019 Broadcom Ltd.
*/
/dts-v1/;
#include "bcm6878.dtsi"
/ {
model = "Broadcom BCM96878 Reference Board";
compatible = "brcm,bcm96878", "brcm,bcm6878", "brcm,bcmbca";
aliases {
serial0 = &uart0;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x08000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -0,0 +1,274 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2024 Allied Telesis Labs
*/
#include "cn9130.dtsi"
/ {
model = "Allied Telesis x250";
compatible = "alliedtelesis,x250",
"marvell,cn9130",
"marvell,armada-ap806-quad",
"marvell,armada-ap806";
aliases {
serial0 = &uart0;
i2c0 = &cp0_i2c0;
i2c1 = &cp0_i2c1;
};
chosen {
stdout-path = "serial0:115200n8";
};
gpio-leds {
compatible = "gpio-leds";
fault {
label = "fault:red";
gpios = <&cp0_gpio1 9 GPIO_ACTIVE_LOW>;
default-state = "on";
};
};
};
/*
* AP related configuration
*/
&ap_pinctl {
/* AP_MPP Pins:
* GPIO & NC [0-6,9-10,12]
* UART0 [11,19]
* UART1 [7,8]
* Note: The x250-28XTm PT1 units has the console port wired
* to the second uart pins (UART1). This was fixed in all
* subsequent models.
* Here we choose to configure the pin control for both
* uarts to cater for either unit.
*/
/* 0 1 2 3 4 5 6 7 8 9 */
pin-func = < 0 0 0 0 0 0 0 3 3 0
0 3 0 0 0 0 0 0 0 3 >;
};
&ap_gpio0 {
pp-reset {
gpio-hog;
gpios = <0 GPIO_ACTIVE_LOW>;
output-high;
line-name = "pp-reset";
};
};
/*
* CP related configuration
*/
&cp0_pinctl {
/* MPP Bus:
* [0-1] DEV
* [2-8] GPIO
* [9] DEV
* [10-12] GPIO
* [13] ND_RB
* [14] GPIO
* [15-28] DEV
* [29-30] GPIO
* [31] DEV
* [32-34] GPIO
* [35-36] I2C1
* [37-38] I2C0
* [39-55] GPIO
* [56-60] SPI
* [61-62] GPIO
*/
/* 0 1 2 3 4 5 6 7 8 9 */
pin-func = < 1 1 0 0 0 0 0 0 0 1
0 0 0 2 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 0
0 1 0 0 0 2 2 2 2 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 6 6 6 6
6 0 0>;
cp0_i2c0_pins: cp0-i2c-pins-0 {
marvell,pins = <37 38>;
marvell,function = <2>;
};
cp0_i2c0_gpio_pins: cp0-i2c-gpio-pins-0 {
marvell,pins = <37 38>;
marvell,function = <0>;
};
cp0_i2c1_pins: cp0-i2c-pins-1 {
marvell,pins = <35 36>;
marvell,function = <2>;
};
cp0_nand_pins: cp0-nand-pins {
marvell,pins = <0 1 9 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31>;
marvell,function = <1>;
};
cp0_nand_rb: cp0-nand-rb {
marvell,pins = <13>;
marvell,function = <2>;
};
cp0_spi0_pins: cp0-spi-pins-0 {
marvell,pins = <56 57 58 59 60>;
marvell,function = <6>;
};
};
&cp0_comphy {
phy0 {
phy-type = <COMPHY_TYPE_PEX0>;
};
phy1 {
phy-type = <COMPHY_TYPE_IGNORE>;
};
phy2 {
phy-type = <COMPHY_TYPE_IGNORE>;
};
phy3 {
phy-type = <COMPHY_TYPE_IGNORE>;
};
phy4 {
phy-type = <COMPHY_TYPE_IGNORE>;
};
phy5 {
phy-type = <COMPHY_TYPE_IGNORE>;
};
};
&cp0_pcie0 {
num-lanes = <1>;
/* non-prefetchable memory */
ranges =<0x82000000 0 0xc0000000 0 0xc0000000 0 0x2000000>;
status = "disabled";
};
&uart0 {
status = "okay";
};
&uart1 {
clock-frequency = <200000000>;
};
&cp0_utmi0 {
status = "okay";
};
&cp0_usb3_0 {
status = "okay";
};
&cp0_spi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&cp0_spi0_pins>;
spi-flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>; /* Chip select 0 */
spi-max-frequency = <50000000>;
m25p,fast-read;
};
};
&cp0_nand {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&cp0_nand_pins &cp0_nand_rb>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-timing-mode = <4>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@user {
reg = <0x00000000 0x10000000>;
label = "user";
};
};
};
&cp0_gpio0
{
nand-protect {
gpio-hog;
gpios = <29 GPIO_ACTIVE_LOW>;
output-low;
line-name = "nand-protect";
};
};
&cp0_gpio1
{
usb-en {
gpio-hog;
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "usb-en";
};
phy-reset {
gpio-hog;
gpios = <21 GPIO_ACTIVE_LOW>;
output-high;
line-name = "phy-reset";
};
};
&cp0_i2c0 {
status = "okay";
pinctrl-names = "default", "gpio";
pinctrl-0 = <&cp0_i2c0_pins>;
pinctrl-1 = <&cp0_i2c0_gpio_pins>;
scl-gpios = <&cp0_gpio1 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&cp0_gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
mux@71 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "nxp,pca9546";
reg = <0x71>;
i2c-mux-idle-disconnect;
reset-gpios = <&cp0_gpio1 19 GPIO_ACTIVE_LOW>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
hwmon@2e {
compatible = "adi,adt7476";
reg = <0x2e>;
};
rtc@68 {
compatible = "adi,max31331";
reg = <0x68>;
};
};
};
};
&cp0_i2c1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&cp0_i2c1_pins>;
};

View File

@@ -1,96 +0,0 @@
/*
* ethernut5.dts - Device Tree file for Ethernut 5 board
*
* Copyright (C) 2012 egnite GmbH <info@egnite.de>
*
* Licensed under GPLv2.
*/
/dts-v1/;
#include "at91sam9xe.dtsi"
/ {
model = "Ethernut 5";
compatible = "egnite,ethernut5", "atmel,at91sam9260", "atmel,at91sam9";
chosen {
bootargs = "console=ttyS0,115200 root=/dev/mtdblock0 rw rootfstype=jffs2";
};
memory {
reg = <0x20000000 0x08000000>;
};
clocks {
slow_xtal {
clock-frequency = <32768>;
};
main_xtal {
clock-frequency = <18432000>;
};
};
ahb {
apb {
dbgu: serial@fffff200 {
status = "okay";
};
usart0: serial@fffb0000 {
status = "okay";
};
usart1: serial@fffb4000 {
status = "okay";
};
macb0: ethernet@fffc4000 {
phy-mode = "rmii";
status = "okay";
};
usb1: gadget@fffa4000 {
atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
nand0: nand@40000000 {
nand-bus-width = <8>;
nand-ecc-mode = "soft";
nand-on-flash-bbt;
status = "okay";
gpios = <0
&pioC 14 GPIO_ACTIVE_HIGH
0
>;
root@0 {
label = "root";
reg = <0x0 0x08000000>;
};
data@20000 {
label = "data";
reg = <0x08000000 0x38000000>;
};
};
usb0: ohci@00500000 {
num-ports = <2>;
status = "okay";
};
};
i2c-gpio-0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pcf8563@50 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};
};
};

View File

@@ -25,8 +25,7 @@
};
&sdhci2 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
cd-gpios = <&gpk2 2 0>;
status = "okay";
};

View File

@@ -240,15 +240,13 @@
};
&sdhci0 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
bus-width = <8>;
pwr-gpios = <&gpk0 2 0>;
status = "okay";
};
&sdhci2 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
cd-gpios = <&gpx3 4 0>;
status = "okay";
};

View File

@@ -235,15 +235,13 @@
};
&sdhci0 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
bus-width = <8>;
pwr-gpios = <&gpk0 2 0>;
status = "okay";
};
&sdhci2 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
cd-gpios = <&gpx3 4 0>;
status = "okay";
};

View File

@@ -234,20 +234,19 @@
};
&sdhci2 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
cd-inverted;
cd-gpios = <&gpk2 2 0>;
status = "okay";
};
&mshc_0 {
samsung,bus-width = <8>;
samsung,timing = <2 1 0>;
samsung,removable = <0>;
fifoth_val = <0x203f0040>;
bus_hz = <400000000>;
div = <0x3>;
bus-width = <8>;
samsung,dw-mshc-ciu-div = <0>;
samsung,dw-mshc-sdr-timing = <2 1>;
non-removable;
fifo-depth = <0x80>;
clock-frequency = <400000000>;
index = <4>;
status = "okay";
};

View File

@@ -108,8 +108,7 @@
};
sdhci@12510000 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
bus-width = <8>;
pwr-gpios = <&gpk0 4 0>;
status = "disabled";
};
@@ -431,26 +430,23 @@
};
&sdhci0 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
bus-width = <8>;
pwr-gpios = <&gpk0 4 0>;
status = "disabled";
};
&sdhci2 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
cd-gpios = <&gpk2 2 0>;
status = "okay";
};
&mshc_0 {
samsung,bus-width = <8>;
samsung,timing = <2 1 0>;
samsung,removable = <0>;
fifoth_val = <0x203f0040>;
bus_hz = <400000000>;
div = <0x3>;
bus-width = <8>;
samsung,dw-mshc-ciu-div = <0>;
samsung,dw-mshc-sdr-timing = <2 1>;
non-removable;
clock-frequency = <400000000>;
index = <4>;
fifo-depth = <0x80>;
status = "okay";

View File

@@ -27,8 +27,9 @@
};
mmc@12200000 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
bus-width = <8>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <1 3>;
};
mmc@12210000 {
@@ -36,8 +37,9 @@
};
mmc@12220000 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
bus-width = <4>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <1 2>;
};
mmc@12230000 {

View File

@@ -145,9 +145,10 @@
};
mmc@12200000 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
samsung,removable = <0>;
bus-width = <8>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <1 3>;
non-removable;
};
mmc@12210000 {
@@ -155,9 +156,9 @@
};
mmc@12220000 {
samsung,bus-width = <4>;
samsung,timing = <1 2 3>;
samsung,removable = <1>;
bus-width = <4>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <1 2>;
};
mmc@12230000 {

Some files were not shown because too many files have changed in this diff Show More