]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
22 months agoarm: dts: k3-am625-beagleplay: Package TIFS Stub
Dhruva Gole [Mon, 5 Aug 2024 14:29:35 +0000 (19:59 +0530)] 
arm: dts: k3-am625-beagleplay: Package TIFS Stub

Add support for packaging the TIFS Stub as it's required for basic Low
Power Modes like Deep Sleep.
The reason it is packaged using binman and not inherently as part of the
DM firmware is because for HS devices, customer owns the customer key
and only customer has access to it.
DM is release by TI, Since TI doesn't have access to the customer key it
cannot have a component that is signed by customer key.
Hence, it's left as part of binman to be signed and packaged.

Reviewed-by: Nishanth Menon <nm@ti.com>
Acked-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
22 months agodoc: ti: am62*: Mention TIFS Stub in img fmts and boot flow
Dhruva Gole [Mon, 5 Aug 2024 14:29:34 +0000 (19:59 +0530)] 
doc: ti: am62*: Mention TIFS Stub in img fmts and boot flow

Since AM62x, AM62P and AM62A all use similar boot flows and their low
power mode s/w ARCH is also similar in the way that they make use of the
TIFS Stub, update their documentation to show where TIFS Stub is.

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
22 months agodoc: board: ti: Update to use the new boot firmware labels
Dhruva Gole [Mon, 5 Aug 2024 14:29:33 +0000 (19:59 +0530)] 
doc: board: ti: Update to use the new boot firmware labels

Use the new boot_firmwares labels that help make documentation more
specific as to which firmwares are used in which devices

Signed-off-by: Dhruva Gole <d-gole@ti.com>
22 months agodoc: ti: k3: Add TIFS Stub documentation
Dhruva Gole [Mon, 5 Aug 2024 14:29:32 +0000 (19:59 +0530)] 
doc: ti: k3: Add TIFS Stub documentation

* Add documentation to briefly explain the role of TIFS Stub in relevant
  K3 SoC's.
* Shed light on why TIFS Stub isn't package with the DM firmware itself.
* Modify the platform docs wherever the TIFS Stub documentation applies.
* Also, refactor and add a few new labels to help split the firmware
  documentation chunks. This will make it easier to include them one by
  one wherever applicable

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com> # verdin-am62
22 months agoMAINTAINERS: Include the TI docs under ARM TI
Dhruva Gole [Mon, 5 Aug 2024 14:29:31 +0000 (19:59 +0530)] 
MAINTAINERS: Include the TI docs under ARM TI

Add entry for the TI boards documentation under ARM TI

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
22 months agoMerge tag 'u-boot-nand-20240808' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Thu, 8 Aug 2024 13:59:47 +0000 (07:59 -0600)] 
Merge tag 'u-boot-nand-20240808' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash

This series adds support for the UBI block device, which allows to read/write
data block by block. The series was tested by Alexey Romanov on SPI NAND.

The patches pass the pipeline CI:
https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/21933

22 months agospinand: bind UBI block
Alexey Romanov [Thu, 18 Jul 2024 05:45:28 +0000 (08:45 +0300)] 
spinand: bind UBI block

UBI block is virtual block device, which is an abstraction
over MTD layer. Therefore it is logical to use it in combination
with MTD drivers.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agodisk: support UBI partitions
Alexey Romanov [Thu, 18 Jul 2024 05:45:27 +0000 (08:45 +0300)] 
disk: support UBI partitions

UBI partition is abstraction over UBI volumes.
Can be used by UBI block device.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agodisk: don't try search for partition type if already set
Alexey Romanov [Thu, 18 Jul 2024 05:45:26 +0000 (08:45 +0300)] 
disk: don't try search for partition type if already set

Block devices can already set partition type at initialization
stage, so, in this case is no point in searching for partition type.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agodrivers: introduce UBI block abstraction
Alexey Romanov [Thu, 18 Jul 2024 05:45:25 +0000 (08:45 +0300)] 
drivers: introduce UBI block abstraction

UBI block is an virtual device, that runs on top
of the MTD layer. The blocks are UBI volumes.
Intended to be used in combination with other MTD
drivers.

Despite the fact that it, like mtdblock abstraction,
it used with UCLASS_MTD, they can be used together
on the system without conflicting. For example,
using bcb command:

  # Trying to load bcb via mtdblock:
  $ bcb load mtd 0 mtd_partition_name

  # Trying to load bcb via UBI block:
  $ bcb load ubi 1 ubi_volume_name

User always must attach UBI layer (for example, using
ubi_part()) before using UBI block device.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agoubi: allow to write to volume with offset
Alexey Romanov [Thu, 18 Jul 2024 05:45:24 +0000 (08:45 +0300)] 
ubi: allow to write to volume with offset

Introduce ubi_volume_offset_write() helper, which
allow to write to ubi volume with specified offset.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agoubi: allow to read from volume with offset
Alexey Romanov [Thu, 18 Jul 2024 05:45:23 +0000 (08:45 +0300)] 
ubi: allow to read from volume with offset

Now user can pass an additional parameter 'offset'
to ubi_volume_read() function.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agospinand: bind mtdblock
Alexey Romanov [Thu, 18 Jul 2024 05:46:06 +0000 (08:46 +0300)] 
spinand: bind mtdblock

Bind SPI-NAND driver to MTD block driver.

Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agodrivers: introduce mtdblock abstraction
Alexey Romanov [Thu, 18 Jul 2024 05:46:05 +0000 (08:46 +0300)] 
drivers: introduce mtdblock abstraction

MTD block - abstraction over MTD subsystem, allowing
to read and write in blocks using BLK UCLASS.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agodisk: support MTD partitions
Alexey Romanov [Thu, 18 Jul 2024 05:46:04 +0000 (08:46 +0300)] 
disk: support MTD partitions

Add new MTD partition driver, which can be useful with
mtdblock driver combination.

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agoMerge patch series "alist: Implement a pointer list / array of structs"
Tom Rini [Wed, 7 Aug 2024 14:49:18 +0000 (08:49 -0600)] 
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]

22 months agoalist: Add support for an allocated pointer list
Simon Glass [Tue, 30 Jul 2024 14:39:37 +0000 (08:39 -0600)] 
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>
22 months agolib: Handle a special case with str_to_list()
Simon Glass [Tue, 30 Jul 2024 14:39:36 +0000 (08:39 -0600)] 
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>
22 months agomalloc: Support testing with realloc()
Simon Glass [Tue, 30 Jul 2024 14:39:35 +0000 (08:39 -0600)] 
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>
22 months agoomap3: sniper: Convert to device-tree control and DM I2C
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:39 +0000 (22:44 +0200)] 
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>
22 months agoam33xx: Use regular spl_board_init instead of am33xx_spl_board_init
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:38 +0000 (22:44 +0200)] 
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>
22 months agoomap: Use spl_soc_init instead of spl_board_init
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:37 +0000 (22:44 +0200)] 
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>
22 months agoMerge patch series "omap configuration cleanups"
Tom Rini [Wed, 7 Aug 2024 00:33:08 +0000 (18:33 -0600)] 
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.

22 months agoomap3: sniper: Streamline defconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:25:01 +0000 (22:25 +0200)] 
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>
22 months agodra7xx: Remove explicit DRAM banks number from defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:25:00 +0000 (22:25 +0200)] 
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>
22 months agoomap3: Define DRAM banks number in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:59 +0000 (22:24 +0200)] 
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>
22 months agoomap3: Define maximum SPL size in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:58 +0000 (22:24 +0200)] 
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>
22 months agoomap3: Define maximum U-Boot size in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:57 +0000 (22:24 +0200)] 
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>
22 months agodra7xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:56 +0000 (22:24 +0200)] 
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>
22 months agodra7xx: Unify init stack pointer address across boards
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:55 +0000 (22:24 +0200)] 
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>
22 months agoam43xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:54 +0000 (22:24 +0200)] 
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>
22 months agoam33xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:53 +0000 (22:24 +0200)] 
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>
22 months agoam33xx: Unify init stack pointer address across boards
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:52 +0000 (22:24 +0200)] 
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>
22 months agoomap3: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:51 +0000 (22:24 +0200)] 
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>
22 months agoomap3: Define common SPL text base in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:50 +0000 (22:24 +0200)] 
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>
22 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi
Tom Rini [Tue, 6 Aug 2024 15:36:46 +0000 (09:36 -0600)] 
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi

This updates the "old style" DTs to that of Linux v6.10, matching what
OF_UPSTREAM is at now. Hopefully we won't need to do this (manually)
anymore. Since this brings in the DT for a new board (Tanix TX1), also
add the defconfig for that, which has just been waiting for that sync.
There are three more fixes: two for the SPI clock setup, which avoids
too high frequencies in some cases, and one fix to avoid a build warning
with GCC 14 for the sunxi TOC0 part of the mkimage tool.

The gitlab CI passed, and I tested the SPI flash on the OrangePi Zero 3
and also booted that into Linux.

22 months agoMerge tag 'xilinx-for-v2024.10-rc2' of https://gitlab.denx.de/u-boot/custodians/u...
Tom Rini [Tue, 6 Aug 2024 13:17:11 +0000 (07:17 -0600)] 
Merge tag 'xilinx-for-v2024.10-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze

AMD/Xilinx changes for v2024.10-rc2

amd/xilinx:
- Enable CONFIG_MMC_SPEED_MODE_SET

env:
- support overriding spi dev from board code

clk:
- Add set_rate support for display clocks

spi:
- Describe is25lp01gg flash

zynq:
- Add support for 7z010_lr and 7z020_lr

zynqmp:
- Add support for zu1eg_lr
- Enable NFS for Kria
- DT changes
- Cleanup firmware handling in board_init()

versal-net:
- Setup spi seq number based on boot device
- dt-schema update for mini configurations

versal2:
- Disable uartlite driver
- Add support for mini configurations
- Enable NFS

22 months agousb: gadget: atmel: Add DM_USB_GADGET support
Zixun LI [Thu, 25 Jul 2024 15:32:01 +0000 (17:32 +0200)] 
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>
22 months agousb: gadget: atmel: Add attach/detach support
Zixun LI [Thu, 25 Jul 2024 15:32:00 +0000 (17:32 +0200)] 
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>
22 months agousb: gadget: atmel: Rename atmel_usba_start()/_stop() to usba_udc_enable()/_disable()
Zixun LI [Thu, 25 Jul 2024 15:31:59 +0000 (17:31 +0200)] 
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>
22 months agousb: gadget: atmel: Move usba_udc_pdata() with other static functions
Zixun LI [Thu, 25 Jul 2024 15:31:58 +0000 (17:31 +0200)] 
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>
22 months agousb: gadget: atmel: Fix typo in usb gadget driver register and unregister
Zixun LI [Thu, 25 Jul 2024 15:31:57 +0000 (17:31 +0200)] 
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>
22 months agousb: gadget: atmel: Replace printf() and pr_err() by log_err()
Zixun LI [Thu, 25 Jul 2024 15:31:56 +0000 (17:31 +0200)] 
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>
22 months agousb: gadget: atmel: Sort includes
Zixun LI [Thu, 25 Jul 2024 15:31:55 +0000 (17:31 +0200)] 
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>
22 months agotpm: call tpm_tis_wait_init() after tpm_tis_init()
Lukas Funke [Wed, 24 Jul 2024 07:34:47 +0000 (09:34 +0200)] 
tpm: call tpm_tis_wait_init() after tpm_tis_init()

tpm_tis_wait_init() is using the 'chip->timeout_b' field which is
initialized in tpm_tis_init(). However, the init-function is called
*after* tpm_tis_wait_init() introducing an uninitalized field access.

This commit switches both routines.

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
[Ilias removed unusged 'chip' definition in tpm_tis_spi_probe()]
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Fixes: a5c30c26b28 ("tpm: Use the new API on tpm2 spi driver")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
22 months agospi: sunxi: fix clock divider calculation for max frequency setting
Michael Walle [Thu, 18 Jul 2024 20:42:53 +0000 (22:42 +0200)] 
spi: sunxi: fix clock divider calculation for max frequency setting

If the maximum frequency is requested, we still fall into the CDR2
handling. But there the minimal divider is 2. For the sun6i and sun8i we
can do better with the CDR1 setting where the minimal divider is 1:
  SPI_CLK = MOD_CLK / 2 ^ cdr with cdr = 0

Thus, handle the div = 1 case specially.

While at it, correct the comment above the calculation.

Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
22 months agospi: sunxi: fix CDR2 calculation
Michael Walle [Thu, 18 Jul 2024 20:42:52 +0000 (22:42 +0200)] 
spi: sunxi: fix CDR2 calculation

The CDR2 divider calculation always yield a frequency greater than the
requested one. Use DIV_ROUND_UP() to keep the frequency equal or below
the requested one. This way, we can also drop the "if div > 0" check
because we know for a fact that div cannot be zero.

FWIW, this aligns the CDR2 calculation with the linux driver.

Suggested-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
22 months agosunxi: h616: add Tanix TX1 support
Andre Przywara [Mon, 25 Mar 2024 21:58:39 +0000 (21:58 +0000)] 
sunxi: h616: add Tanix TX1 support

The Tanix TX1 is a tiny TV box, featuring the Allwinner H313 SoC with up
to 2GB of DRAM and 16GB of eMMC. There is no SD card or Ethernet port on
this small device, but it can be booted via the USB debug "FEL" mode.
The bootloader could then be written to the eMMC.

Add the defconfig for that board, and add the devicetree file to the
Makefile, for it to be built.
The DRAM parameters were taken from the vendor firmware on the eMMC.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
22 months agoPrepare v2024.10-rc2 v2024.10-rc2
Tom Rini [Tue, 6 Aug 2024 00:13:42 +0000 (18:13 -0600)] 
Prepare v2024.10-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
22 months agosunxi: dts: arm/arm64: update devicetree files from Linux-v6.10
Andre Przywara [Fri, 19 Apr 2024 16:59:52 +0000 (17:59 +0100)] 
sunxi: dts: arm/arm64: update devicetree files from Linux-v6.10

Sync the devicetree files from the official Linux kernel tree, v6.10.
This is covering Allwinner SoCs with 32-bit and 64-bit ARM cores.

Besides mostly cosmectic changes, this adds cpufreq support to H616
boards, Nothing that U-Boot needs for itself, but helpful to pass on
to kernels. We also get the .dts files for the Tanix TX1 TV box and
three Anbernic handheld gaming devices.

As before, this omits the non-backwards compatible changes to the R_INTC
controller, to remain compatible with older kernels.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
22 months agotools: imagetool: Remove unnecessary check from toc0_verify_cert_item()
Seung-Woo Kim [Thu, 1 Aug 2024 01:01:00 +0000 (10:01 +0900)] 
tools: imagetool: Remove unnecessary check from toc0_verify_cert_item()

C99 introduced the possibility to mark function parameters declared as
arrays with an extra keyword "static":
void foo(uint8_t digest[static SHA256_DIGEST_LENGTH]);
This requires the respective function argument to be at least as large
as specified. Passing in random pointers (like NULL) then becomes
undefined behaviour, and compilers warn about this.
Newer GCC compilers (starting with GCC 14) will also automatically mark
those parameters as "nonnull", and thus warn if a (redundant) NULL check
is done inside the function:
tools/sunxi_toc0.o tools/sunxi_toc0.c
tools/sunxi_toc0.c: In function 'toc0_verify_cert_item':
tools/sunxi_toc0.c:447:12: warning: 'nonnull' argument 'digest' compared to NULL [-Wnonnull-compare]
  447 |         if (digest && memcmp(&extension->digest, digest, SHA256_DIGEST_LENGTH)) {
      |            ^

Remove the unnecessary NULL check from toc0_verify_cert_item(), to avoid
the warning.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
[Andre: extend commit message]
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
22 months agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 5 Aug 2024 18:21:23 +0000 (12:21 -0600)] 
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
22 months agoMerge patch series "Bug-fixes for a few boards"
Tom Rini [Mon, 5 Aug 2024 18:15:44 +0000 (12:15 -0600)] 
Merge patch series "Bug-fixes for a few boards"

Simon Glass <sjg@chromium.org> says:

This series includes fixes to get some rockchip and nvidia boards
working again. It also drops the broken Beaglebone Black config and
provides a devicetree fix for coral (x86).

22 months agorockchip: Avoid #ifdefs in RK3399 SPL
Simon Glass [Thu, 1 Aug 2024 12:47:23 +0000 (06:47 -0600)] 
rockchip: Avoid #ifdefs in RK3399 SPL

The code here is confusing due to large blocks which are #ifdefed out.
Add a function phase_sdram_init() which returns whether SDRAM init
should happen in the current phase, using that as needed to control the
code flow.

This increases code size by about 500 bytes in SPL when the cache is on,
since it must call the rather large rockchip_sdram_size() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
22 months agorockchip: Ensure memory size is available in RK3399 SPL
Simon Glass [Thu, 1 Aug 2024 12:47:22 +0000 (06:47 -0600)] 
rockchip: Ensure memory size is available in RK3399 SPL

At present gd->ram_size is 0 in SPL, meaning that it is not possible to
enable the cache. Correct this by always populating the RAM size
correctly.

This increases code size by about 500 bytes in SPL, since it must call
the rather large rockchip_sdram_size() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
22 months agofdt: Correct condition for bloblist existing
Simon Glass [Wed, 31 Jul 2024 14:49:05 +0000 (08:49 -0600)] 
fdt: Correct condition for bloblist existing

On some boards, the bloblist is created in SPL once SDRAM is ready. It
cannot be accessed until that point, so is not available early in SPL.

Add a condition to avoid a hang in this case.

This fixes a hang in chromebook_coral

Fixes: 70fe2385943 ("fdt: Allow the devicetree to come from a bloblist")
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Raymond Mao <raymond.mao@linaro.org>
22 months agobinman: Keep the efi_capsule input file
Simon Glass [Wed, 31 Jul 2024 14:49:04 +0000 (08:49 -0600)] 
binman: Keep the efi_capsule input file

There is no need to remove input files. It makes it harder to diagnose
failures. Keep the payload file.

There is no test for this condition, but one could be added.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
22 months agobinman: Return failure when a usage() message is generated
Simon Glass [Wed, 31 Jul 2024 14:49:03 +0000 (08:49 -0600)] 
binman: Return failure when a usage() message is generated

The tool must return an error code when invalid arguments are provided,
otherwise binman has no way of knowing that anything went wrong.

Correct this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: fab430be2f4 ("tools: add mkeficapsule command for UEFI...")
22 months agobinman: Deal with mkeficapsule being missing
Simon Glass [Wed, 31 Jul 2024 14:49:02 +0000 (08:49 -0600)] 
binman: Deal with mkeficapsule being missing

Tools cannot be assumed to be present. Add a check for this with the
mkeficpasule tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: b617611b27a ("binman: capsule: Add support for generating...")
22 months agobinman: Collect the version number for mkeficapsule
Simon Glass [Wed, 31 Jul 2024 14:49:01 +0000 (08:49 -0600)] 
binman: Collect the version number for mkeficapsule

Now that this tool has a version number, collect it.

Signed-off-by: Simon Glass <sjg@chromium.org>
22 months agomkeficapsule: Add a --version argument
Simon Glass [Wed, 31 Jul 2024 14:49:00 +0000 (08:49 -0600)] 
mkeficapsule: Add a --version argument

Tools should have an option to obtain the version, so add this to the
mkeficapsule tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
22 months agosoc: zynqmp: Add support for zu1eg_lr device
Michal Simek [Tue, 30 Jul 2024 14:53:23 +0000 (16:53 +0200)] 
soc: zynqmp: Add support for zu1eg_lr device

There is new chip coming which is using new _lr suffix that's why record it
in the list to enable bitstream in bit format loading.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/12a939e2c88e82a9828852a8f7f33dfa14a6a4b8.1722351201.git.michal.simek@amd.com
22 months agoARM: zynq: Add support for 7z010_lr and 7z020_lr
Michal Simek [Tue, 30 Jul 2024 13:50:17 +0000 (15:50 +0200)] 
ARM: zynq: Add support for 7z010_lr and 7z020_lr

Add support for *_lr SOCs. Without this change chips are not going to be
properly identified and bitstream programming won't work.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/14d8905a89d1b31fbb2318512cf57eb0256c11be.1722347416.git.michal.simek@amd.com
22 months agoarm64: zynqmp: Remove PM firmware checking
Michal Simek [Tue, 30 Jul 2024 10:42:43 +0000 (12:42 +0200)] 
arm64: zynqmp: Remove PM firmware checking

Having zynqmp firmware is actually only one valid configuration. In QEMU
case for example there is no PMU that's why this checking can't end up in
panic that's why code remove this code completely.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/05b8bbf0686c72f86ea7f8bfe0da250ddba9e211.1722336162.git.michal.simek@amd.com
22 months agoarm64: zynqmp: Fix pwm-fan polarity
Vishal Patel [Mon, 29 Jul 2024 08:18:18 +0000 (10:18 +0200)] 
arm64: zynqmp: Fix pwm-fan polarity

The correct operating mode for the fan is inversed (1). The
previous pwm driver implementation had a bug and the polarity
information was propagated incorrectly to the kernel. The normal (0)
polarity specified in the device tree was incorrectly clearing the
polarity bit in the counter control register. After the bug fix,
setting the polarity to inversed (1) in the device tree will clear
the polarity bit.

Signed-off-by: Vishal Patel <vishal.patel@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/4658ae8576882f5d28ad57ca74a7b798a546ec37.1722241096.git.michal.simek@amd.com
22 months agoarm64: zynqmp: dts: Add rts delay property for rs485 mode on KD240
Manikanta Guntupalli [Thu, 18 Jul 2024 10:15:23 +0000 (12:15 +0200)] 
arm64: zynqmp: dts: Add rts delay property for rs485 mode on KD240

Add "rs485-rts-delay" property to uartps node with delay_rts_before_send
and delay_rts_after_send values as 10ms for rs485 mode on KD240.

10ms rts delay values have been chosen based on testing with rs485
temperature sensor (which is part of the kit) as safe minimum value
for reliable operation at a baud rate of 9600.

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/0e0c4c067236e11f661c1d067017e1ca975c9ddb.1721297721.git.michal.simek@amd.com
22 months agoarm64: xilinx: Describe TPM reset for Kria CCs
Michal Simek [Tue, 16 Jul 2024 13:29:09 +0000 (15:29 +0200)] 
arm64: xilinx: Describe TPM reset for Kria CCs

Describe carrier card TPM reset behavior and show message about it on boot
console to let users know what to expect from it.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/2c0cb3a2b27a3bf0ede75c5ccded2d086d9c62b0.1721136547.git.michal.simek@amd.com
22 months agoarm64: versal: Remove undocumented cadence,qspi compatible
Michal Simek [Mon, 15 Jul 2024 14:39:11 +0000 (16:39 +0200)] 
arm64: versal: Remove undocumented cadence,qspi compatible

Compatible string is not the part of dt-schema and also not used by U-Boot
or Linux that's why remove it completely.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/13ccfe6b447c426aad06edbf0b8e52fd1eb97ee3.1721054349.git.michal.simek@amd.com
22 months agoarm64: versal-net: Align node names with dt-schema
Michal Simek [Mon, 15 Jul 2024 14:38:30 +0000 (16:38 +0200)] 
arm64: versal-net: Align node names with dt-schema

dt-schema is forcing some rules for node names that's why align them with
it. Labels are not changing that's why this change is not breaking any
other board specific DTSes.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/102d9499e9bab12f89dbf9ceaa49a11d685146b3.1721054306.git.michal.simek@amd.com
22 months agoarm64: zynqmp: Add resets property for UART nodes
Manikanta Guntupalli [Mon, 15 Jul 2024 14:23:43 +0000 (16:23 +0200)] 
arm64: zynqmp: Add resets property for UART nodes

Add resets property for UART0 and UART1 nodes

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/81c602417a5d28dfbce122b2e5a63ff7ddb74594.1721053421.git.michal.simek@amd.com
22 months agoamd: Enable the NFS command for Versal Gen 2
Prasad Kummari [Thu, 11 Jul 2024 16:57:35 +0000 (22:27 +0530)] 
amd: Enable the NFS command for Versal Gen 2

Enabled the default utilization of the NFS command on Versal Gen 2
platform to facilitate booting images through the network using
the NFS protocol

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Link: https://lore.kernel.org/r/20240711165734.1561933-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoxilinx: Enable the NFS command for zynqmp_kria
Prasad Kummari [Tue, 9 Jul 2024 04:22:33 +0000 (09:52 +0530)] 
xilinx: Enable the NFS command for zynqmp_kria

Enabled the default utilization of the NFS command on ZynqMP Kria
platforms to facilitate booting images through the network using
the NFS protocol.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Link: https://lore.kernel.org/r/20240709042232.860395-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoarm64: config: Add versal2 mini emmc defconfig
Venkatesh Yadav Abbarapu [Wed, 19 Jun 2024 07:17:33 +0000 (12:47 +0530)] 
arm64: config: Add versal2 mini emmc defconfig

Add versal2 mini emmc configuration.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240619071733.10256-5-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoarm64: Add versal2 mini ospi support
Venkatesh Yadav Abbarapu [Wed, 19 Jun 2024 07:17:32 +0000 (12:47 +0530)] 
arm64: Add versal2 mini ospi support

Add versal2 mini ospi configuration.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240619071733.10256-4-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoarm64: Add versal2 mini qspi support
Venkatesh Yadav Abbarapu [Wed, 19 Jun 2024 07:17:31 +0000 (12:47 +0530)] 
arm64: Add versal2 mini qspi support

Add versal2 mini qspi configuration.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240619071733.10256-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoarm64: versal2: Add support for mini configuration
Venkatesh Yadav Abbarapu [Wed, 19 Jun 2024 07:17:30 +0000 (12:47 +0530)] 
arm64: versal2: Add support for mini configuration

Versal2 mini configuration is designed for running memory test.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240619071733.10256-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoxilinx: versal-net: Handle spi seq number based on boot device
Venkatesh Yadav Abbarapu [Fri, 14 Jun 2024 12:48:11 +0000 (18:18 +0530)] 
xilinx: versal-net: Handle spi seq number based on boot device

Versal NET boards has QSPI and OSPI and default bus set to 0
is not working when system is booting out of OSPI which is
controller 1, as fixed aliases are set for all the boards
i.e., QSPI to 0 and OSPI to 1. Add controller autodetection
via spi_get_env_dev().

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240614124811.22945-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoenv_spi: support overriding spi dev from board code
Venkatesh Yadav Abbarapu [Fri, 14 Jun 2024 12:48:10 +0000 (18:18 +0530)] 
env_spi: support overriding spi dev from board code

This enables boards to choose where to/from the environment
should be saved/loaded. They can then for example support using
the same device (dynamically) from which the bootloader was
launched to load and save env data and do not have to
define CONFIG_ENV_SPI_BUS statically.

In my use case, the environment needs to be on the same device I
booted from. It can be the QSPI or OSPI device.
I therefore would override spi_get_env_dev in the board code,
read the bootmode registers to determine where we booted from
and return the corresponding device index.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240614124811.22945-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com> # Move spi_get_env_dev to sf.c
22 months agomtd: spi-nor: ids: Add IS25LP01GG flash support
Prasad Kummari [Mon, 17 Jun 2024 04:18:42 +0000 (09:48 +0530)] 
mtd: spi-nor: ids: Add IS25LP01GG flash support

Add support for ISSI 128MB flash IS25LP01GG. This part
supports 4byte opcodes. It also supports dual and quad
read.

Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Link: https://lore.kernel.org/r/20240617041841.1336632-1-prasad.kummari@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoarm64: versal2: Remove UARTLITE from defconfig
Michal Simek [Tue, 18 Jun 2024 13:20:35 +0000 (15:20 +0200)] 
arm64: versal2: Remove UARTLITE from defconfig

UARTLITE can be used as console but none is testing it that's why removing
it not to pop up there.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c9b66495bbdef3fe94467ae43c50a74adaaeacae.1718716833.git.michal.simek@amd.com
22 months agoconfig: Enable the config CONFIG_MMC_SPEED_MODE_SET
Venkatesh Yadav Abbarapu [Mon, 8 Jul 2024 09:17:55 +0000 (14:47 +0530)] 
config: Enable the config CONFIG_MMC_SPEED_MODE_SET

Enable setting speed mode using mmc dev commands.
The speed mode is provided as the last argument in these commands
(ex: mmc dev 0 0 10) and is indicated using the index from enum
bus_mode in include/mmc.h. A speed mode can be set if it is enabled
from device tree or from capabilities register

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240708091755.5021-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoclk: zynqmp: Add set_rate support for display clocks
Venkatesh Yadav Abbarapu [Thu, 11 Jul 2024 08:29:39 +0000 (13:59 +0530)] 
clk: zynqmp: Add set_rate support for display clocks

If "assigned-clock-rates" property is included in the
device tree, display driver probe is getting failed, as dp_video_ref
till dp_stc_ref clocks are missing from set rate function, adding
them to fix the probe failure.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20240711082939.29260-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
22 months agoMerge tag 'u-boot-imx-master-20240802' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Fri, 2 Aug 2024 20:40:59 +0000 (14:40 -0600)] 
Merge tag 'u-boot-imx-master-20240802' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Convert warp7 to OF_UPSTREAM.
- Add 'cpu' command to imx8m and imx93.
- Enable CMD_ERASEENV for imx8mm/mp Phytec boards.

22 months agoconfig: Adjust Phytec imx8mm module config to support NVME disk
Lukasz Majewski [Fri, 2 Aug 2024 18:12:00 +0000 (15:12 -0300)] 
config: Adjust Phytec imx8mm module config to support NVME disk

This change adds support for PCIe connected nvme disk - phyBOARD-Polis
base board.

One needs to call following commands in u-boot:
> pci enum
> nvme scan
> nvme info

And then ones to access proper file system (like fat[ls|load|write],
ext4[ls|load|write]).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
22 months agoconfigs: imx93: enable the 'cpu' command
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:59 +0000 (11:59 +0800)] 
configs: imx93: enable the 'cpu' command

Enable the 'cpu' command to display the CPU info and release CPU core to
run baremetal or RTOS applications.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agoconfigs: imx8m: enable the 'cpu' command
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:58 +0000 (11:59 +0800)] 
configs: imx8m: enable the 'cpu' command

Enable the 'cpu' command and the depended imx CPU driver to
display the CPU info and release CPU core to run baremetal
or RTOS applications.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agoMAINTAINERS: add entry for cpu command
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:57 +0000 (11:59 +0800)] 
MAINTAINERS: add entry for cpu command

Added the original author Simon and myself.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agodoc: cmd: add documentation for cpu command
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:56 +0000 (11:59 +0800)] 
doc: cmd: add documentation for cpu command

Add documentation for the 'cpu' command, taking NXP i.MX 8M Plus
as a example.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agocmd: cpu: add release subcommand
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:55 +0000 (11:59 +0800)] 
cmd: cpu: add release subcommand

Add a new subcommand 'release' to bring up a core to run baremetal
and RTOS applications.

For example on i.MX8M Plus EVK, release the LAST core to run a RTOS
application, passing the sequence number of the CPU core to release,
here it is 3:
    u-boot=> cpu list
      0: cpu@0      NXP i.MX8MP Rev1.1 A53 at 1200 MHz at 31C
      1: cpu@1      NXP i.MX8MP Rev1.1 A53 at 1200 MHz at 30C
      2: cpu@2      NXP i.MX8MP Rev1.1 A53 at 1200 MHz at 31C
      3: cpu@3      NXP i.MX8MP Rev1.1 A53 at 1200 MHz at 31C

    u-boot=> load mmc 1:2 c0000000 /hello_world.bin
    66008 bytes read in 5 ms (12.6 MiB/s)
    u-boot=> dcache flush; icache flush
    u-boot=> cpu release 3 c0000000
    Released CPU core (mpidr: 0x3) to address 0xc0000000

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agocpu: imx: implement release_core callback
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:54 +0000 (11:59 +0800)] 
cpu: imx: implement release_core callback

Release the secondary cores through the PSCI request.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agocpu: imx: Add i.MX 8M series SoCs
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:53 +0000 (11:59 +0800)] 
cpu: imx: Add i.MX 8M series SoCs

Add i.MX 8M Mini, Nano and Plus SoCs support.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agocpu: imx: removed the tail '\n' of the CPU description
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:52 +0000 (11:59 +0800)] 
cpu: imx: removed the tail '\n' of the CPU description

Return CPU description string without newline character in the end.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agocpu: imx: fix the CPU type field width
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:51 +0000 (11:59 +0800)] 
cpu: imx: fix the CPU type field width

Increase one more bit to cover all CPU types. Otherwise it shows
wrong CPU info on some platforms, such as i.MX8M Plus:

    U-Boot 2024.04+g674440bc73e+p0 (Jun 06 2024 - 10:05:34 +0000)

    CPU:   NXP i.MX8MM Rev1.1 A53 at 4154504685 MHz at 30C

    Model: NXP i.MX8MPlus LPDDR4 EVK board

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agocpu: imx: fix the CPU frequency in cpu_imx_get_info()
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:50 +0000 (11:59 +0800)] 
cpu: imx: fix the CPU frequency in cpu_imx_get_info()

The cpu_freq stores the current CPU frequency in Hz.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
22 months agotest: cpu: add test for release CPU core.
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:49 +0000 (11:59 +0800)] 
test: cpu: add test for release CPU core.

Add test for API cpu_release_core().

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agocpu: sandbox: implement release_core callback
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:48 +0000 (11:59 +0800)] 
cpu: sandbox: implement release_core callback

Add empty release CPU core function for testing.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agocpu: add release_core callback
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:47 +0000 (11:59 +0800)] 
cpu: add release_core callback

Add a new callback release_core to the cpu_ops, which is used to
release a CPU core to run baremetal or RTOS application on a SoC
with multiple CPU cores.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
22 months agoclk: imx8m: register ARM A53 core clock
Hou Zhiqiang [Thu, 1 Aug 2024 03:59:46 +0000 (11:59 +0800)] 
clk: imx8m: register ARM A53 core clock

Register ARM A53 core clock for i.MX 8M Mini, Nano and Plus, preparing
for enabling the 'cpu' command, which depends on this to print CPU core
frequency.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
22 months agoconfigs: phycore-imx8mp_defconfig: enable CMD_ERASEENV
Yannic Moog [Wed, 31 Jul 2024 12:53:03 +0000 (09:53 -0300)] 
configs: phycore-imx8mp_defconfig: enable CMD_ERASEENV

Enable erasing environment with eraseenv command.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
22 months agoconfigs: phycore-imx8mm_defconfig: enable CMD_ERASEENV
Yannic Moog [Wed, 31 Jul 2024 07:23:00 +0000 (09:23 +0200)] 
configs: phycore-imx8mm_defconfig: enable CMD_ERASEENV

Enable erasing environment with eraseenv command.

Signed-off-by: Yannic Moog <y.moog@phytec.de>