96315 Commits

Author SHA1 Message Date
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: 8ad01ce36f7 ("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 First set of u-boot-at91 fixes for the 2025.01 cycle
-----BEGIN PGP SIGNATURE-----
 
 iQFNBAABCgA3FiEEqxhEmNJ6d7ZdeFLIHrMeAg6sL8gFAmcSLuYZHGV1Z2VuLmhy
 aXN0ZXZAbGluYXJvLm9yZwAKCRAesx4CDqwvyBeeB/9xoXcp4T1eVgKFfxLbaKqJ
 6PQmvmp6D1aHE6+cW3KigZBeM6o80o24VfOMmseKmEACQJ2q9lkGHo2QoQV/LYVX
 1x9AfjA7vMp3pCapulJJ6OGFeyLhq0guBfkJDR0Gb45V1+Zu0TS6IYGLytAzqYpj
 22ysXajF0p2nhc7HjAnf9jWEHfD/QqEzTfNzSo0eMPQM5KgrR6QmrIZM/A0A+Jhi
 hyEtaJV0YB3xKIN0MYZ2O49Pe6oscFznDN/v0w5v06rDW8X5vt/gim6ddUf2DmaR
 hmnOP9oObY5VnLj5x4RdZ9M3pDRWSvBjrpx8EZSP5T3pWMqwPCibREblRm4R7loq
 =JgV7
 -----END PGP SIGNATURE-----

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: 76332fae769 ("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: 927b901b47a6 ("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 - 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
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEE56Yx6b9SnloYCWtD4rK92eCqk3UFAmcQ1JUACgkQ4rK92eCq
 k3W+xQf+K0oBb8yTpVKSXW8quotu6r8XwrzvcWOpZVIIGpPpFoRa61feNcI5+Zrl
 lvD3rBrD31PvvHC1wWPRsN3c+oJlnq7GQDPChix54rclgGJNd04zCnJ9QaST309F
 yqr7w6Cx/AL6Fbcvxbv8FvQxyjgGrbchbJ4sHeD9AYABhV3Z0DuBaUttZorG6ZIO
 23pxvK9X/dUJGmbmvKkMID3Ifxzum3HEaPf7n3HkFg1/bzICXSSjRUEAFBLWlQp5
 7oiWLvHZDIefpC8zupewXYvRscsG9HOjSWhRUc8+zu4rK1bele/v4nig46nfrRSN
 3RpimkKVvnJ2svV1cCLS2Mhq2V6SlQ==
 =XS+7
 -----END PGP SIGNATURE-----

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