]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
7 months agoefi_selftest: add tests for QueryVariableInfo at runtime
Ilias Apalodimas [Thu, 25 Apr 2024 05:18:20 +0000 (08:18 +0300)]
efi_selftest: add tests for QueryVariableInfo at runtime

Since we support QueryVariableInfo at runtime now add the relevant
tests. Since we want those to be reusable at bootime, add them
in a separate file

Add tests for
- Test QueryVariableInfo returns EFI_SUCCESS
- Test null pointers for the function arguments
- Test invalid combination of attributes

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agoefi_loader: enable QueryVariableInfo at runtime for file backed variables
Ilias Apalodimas [Thu, 25 Apr 2024 05:18:19 +0000 (08:18 +0300)]
efi_loader: enable QueryVariableInfo at runtime for file backed variables

Since commit c28d32f946f0 ("efi_loader: conditionally enable SetvariableRT")
we are enabling the last bits of missing runtime services.
Add support for QueryVariableInfo which we already support at boottime
and we just need to mark some fucntions available at runtime and move
some checks around.

It's worth noting that pointer checks for maxmimum and remaining
variable storage aren't when we store variables on the RPMB, since the
Secure World backend is already performing them.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agoefi_loader: address coverity report 492766 for dead code
Ilias Apalodimas [Tue, 23 Apr 2024 05:38:06 +0000 (08:38 +0300)]
efi_loader: address coverity report 492766 for dead code

The check of the return code is already done a few lines above.
Although it doesn't cause any functional issues, remove the superfluous
checks

Addresses-Coverity-ID: 492766 Control flow issues  (DEADCODE)
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
7 months agodoc: correct description of 'env print -e'
Heinrich Schuchardt [Mon, 22 Apr 2024 20:00:56 +0000 (22:00 +0200)]
doc: correct description of 'env print -e'

If 'env print -e' is invoked without variable name, all UEFI variables are
listed.

Describe that 'env print -e' requires CONFIG_HEXDUMP=y to print content of
UEFI variables.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
7 months agoefi_loader: do not install dtb if bootmgr fails
Heinrich Schuchardt [Mon, 22 Apr 2024 09:03:10 +0000 (11:03 +0200)]
efi_loader: do not install dtb if bootmgr fails

If the UEFI boot manager fails there is no point in installing the
device-tree as a configuration table.

Unload image if device-tree cannot be installed.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
7 months agoefi_loader: improve error handling in try_load_entry()
Heinrich Schuchardt [Mon, 22 Apr 2024 08:41:00 +0000 (10:41 +0200)]
efi_loader: improve error handling in try_load_entry()

The image is not unloaded if a security violation occurs.

If efi_set_load_options() fails, we do not free the memory allocated for
the optional data. We do not unload the image.

* Unload the image if a security violation occurs.
* Free load_options if efi_set_load_options() fails.
* Unload the image if efi_set_load_options() fails.

Fixes: 53f6a5aa8626 ("efi_loader: Replace config option for initrd loading")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agocmd: terminate efidebug test bootmgr early on error
Heinrich Schuchardt [Sat, 20 Apr 2024 14:06:16 +0000 (16:06 +0200)]
cmd: terminate efidebug test bootmgr early on error

If efi_bootmgr_load() fails, there is no point in trying to start an image
that has not been loaded.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agoefi_loader: superfluous efi_restore_gd after EFI_CALL
Heinrich Schuchardt [Fri, 19 Apr 2024 09:59:01 +0000 (11:59 +0200)]
efi_loader: superfluous efi_restore_gd after EFI_CALL

EFI_CALL() invokes __efi_entry_check() which executes set_gd(efi_gd).
There is no need to execute set_gd(efi_gd) again via efi_restore_gd().

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agoMerge patch series "Update PHYTEC SOM Detection"
Tom Rini [Mon, 29 Apr 2024 16:56:05 +0000 (10:56 -0600)]
Merge patch series "Update PHYTEC SOM Detection"

Daniel Schultz <d.schultz@phytec.de> says:

This patch series extends PHYTEC's SOM detection by minor
fixes, a generic helper function and a new valid flag.

Moreover, it adds a module to provide access to the SOM
detection for our TI AM6 products.

7 months agoboard: phytec: Add SOM detection for AM6x
Daniel Schultz [Fri, 19 Apr 2024 15:55:40 +0000 (08:55 -0700)]
board: phytec: Add SOM detection for AM6x

Add all functions to read each SOM option from the EEPROM
image and detect whether it's the correct product for this
image.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
7 months agoboard: phytec: common: Fix eepom is empty check
Daniel Schultz [Fri, 19 Apr 2024 15:55:39 +0000 (08:55 -0700)]
board: phytec: common: Fix eepom is empty check

The ptr variable is currently defined as int and sizeof
returns the size of the eeprom data struct as Byte (32 in total).

In case the eeprom is empty, the check, if the eeprom is empty,
will most likely stop after 8 iterations because it will continue
with the stack which should contain some data. Therefore, the
init function will detect an empty EEPROM as API0 and return with
the valid flag set to True.

Fixes: dc22188cdc8 ("board: phytec: Add common PHYTEC SoM detection")
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
7 months agoboard: phytec: check eeprom_data validity
Yannic Moog [Fri, 19 Apr 2024 15:55:38 +0000 (08:55 -0700)]
board: phytec: check eeprom_data validity

For all of the functions that access the eeprom_data, make sure these
data are valid. Use the valid member of the phytec_eeprom_data struct.
This fixes a bug where only the API revision check guarded against
accessing rubbish. But if API revision was e.g. 6, eeprom setup failed
before, but phytec_get_imx8m_eth would still happily access the data.

Fixes: dc22188cdc8 ("board: phytec: Add common PHYTEC SoM detection")
Signed-off-by: Yannic Moog <y.moog@phytec.de>
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
7 months agoboard: phytec: introduce eeprom struct member 'valid'
Yannic Moog [Fri, 19 Apr 2024 15:55:37 +0000 (08:55 -0700)]
board: phytec: introduce eeprom struct member 'valid'

Add a new nember to the eeprom_data that indicates whether the
associated data is valid or not. Make use of this new member in the
phytec_eeprom_data_init function by setting the valid value
appropriately.
Move the eeprom data to a new struct payload that holds
the payload of the eeprom.

Signed-off-by: Yannic Moog <y.moog@phytec.de>
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
7 months agoboard: phytec: common: Generic "add extension" function
Daniel Schultz [Fri, 19 Apr 2024 15:55:36 +0000 (08:55 -0700)]
board: phytec: common: Generic "add extension" function

Add a generic function to apply overlays in our board code to not
implement the same logic in different PHYTEC products.

Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Reviewed-by: Teresa Remmet <t.remmet@phytec.de>
7 months agoMerge patch series "*** Migrate some PHYTEC boards to OF_UPSTREAM ***"
Tom Rini [Mon, 29 Apr 2024 16:55:50 +0000 (10:55 -0600)]
Merge patch series "*** Migrate some PHYTEC boards to OF_UPSTREAM ***"

Wadim Egorov <w.egorov@phytec.de> says:

Migrate the boards I maintain to OF_UPSTREAM.

7 months agophycore-rk3288: Migrate to OF_UPSTREAM
Wadim Egorov [Fri, 19 Apr 2024 06:51:17 +0000 (08:51 +0200)]
phycore-rk3288: Migrate to OF_UPSTREAM

The phycore-rk3288 can be migrated to OF_UPSTREAM.
Drop redundant device tree files, update MAINTAINERS and
defconfig's DEFAULT_DEVICE_TREE for rockchip vendor prefix accordingly.
Move device tree nodes required for u-boot to rk3288-phycore-rdk-u-boot.dtsi
such as chosen, i2c_eeprom_id and it's alias.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
7 months agophycore-am64x: Migrate to OF_UPSTREAM
Wadim Egorov [Fri, 19 Apr 2024 06:51:16 +0000 (08:51 +0200)]
phycore-am64x: Migrate to OF_UPSTREAM

The phycore-am64x can be migrated to OF_UPSTREAM.
Drop redundant device tree files, update MAINTAINERS and
defconfig's DEFAULT_DEVICE_TREE for ti vendor prefix accordingly.
While at it, drop the redundant definitions of AM642_PHYBOARD_ELECTRA_DTB
& SPL_AM642_PHYBOARD_ELECTRA_DTB from the binman dtsi file.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
7 months agophycore-am62x: Migrate to OF_UPSTREAM
Wadim Egorov [Fri, 19 Apr 2024 06:51:15 +0000 (08:51 +0200)]
phycore-am62x: Migrate to OF_UPSTREAM

The phycore-am62x can be migrated to OF_UPSTREAM.
Drop redundant device tree files, update MAINTAINERS and
defconfig's DEFAULT_DEVICE_TREE for ti vendor prefix accordingly.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
7 months agoMerge patch series "Fix MMC tuning algorithm"
Tom Rini [Mon, 29 Apr 2024 16:55:34 +0000 (10:55 -0600)]
Merge patch series "Fix MMC tuning algorithm"

Judith Mendez <jm@ti.com> says:

The following patch series includes a MMC tuning algorithm
fix according to the following published paper [0].

This seris also includes fixes for OTAP/ITAP delay values
in j721e_4bit_sdhci_set_ios_post and for HS400 mode.

For DDR52 mode, also set ENDLL=1 and call am654_sdhci_setup_dll()
instead of am654_sdhci_setup_delay_chain() according to
device datasheet[1].

[0] https://www.ti.com/lit/an/spract9/spract9.pdf
[1] https://www.ti.com/lit/ds/symlink/am62p.pdf

7 months agommc: am654_sdhci: Fix ITAPDLY for HS400 timing
Judith Mendez [Thu, 18 Apr 2024 19:01:00 +0000 (14:01 -0500)]
mmc: am654_sdhci: Fix ITAPDLY for HS400 timing

At HS400 mode the ITAPDLY value is that from High Speed mode
which is incorrect and may cause boot failures.

The ITAPDLY for HS400 speed mode should be the same as ITAPDLY
as HS200 timing after tuning is executed. Add the functionality
to save ITAPDLY from HS200 tuning and save as HS400 ITAPDLY.

Fixes: c964447ea3d6 ("mmc: am654_sdhci: Add support for input tap delay")
Signed-off-by: Judith Mendez <jm@ti.com>
7 months agommc: am654_sdhci: Set ENDLL=1 for DDR52 mode
Judith Mendez [Thu, 18 Apr 2024 19:00:59 +0000 (14:00 -0500)]
mmc: am654_sdhci: Set ENDLL=1 for DDR52 mode

According to the device datasheet [0], ENDLL=1 for
DDR52 mode, so call am654_sdhci_setup_dll() and write
itapdly after since we do not carry out tuning.

[0] https://www.ti.com/lit/ds/symlink/am62p.pdf

Fixes: c964447ea3d6 ("mmc: am654_sdhci: Add support for input tap delay")
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agommc: am654_sdhci: Add itap_del_ena[] to store itapdlyena bit
Judith Mendez [Thu, 18 Apr 2024 19:00:58 +0000 (14:00 -0500)]
mmc: am654_sdhci: Add itap_del_ena[] to store itapdlyena bit

Set itap_del_ena if ITAPDLY is found in DT or if the tuning
algorithm was executed and found the optimal ITAPDLY. Add the
functionality to save ITAPDLYENA that can be referenced later
by storing the bit in array itap_del_ena[].

Signed-off-by: Judith Mendez <jm@ti.com>
7 months agommc: am654_sdhci: Fix OTAP/ITAP delay values
Nitin Yadav [Thu, 18 Apr 2024 19:00:57 +0000 (14:00 -0500)]
mmc: am654_sdhci: Fix OTAP/ITAP delay values

U-Boot is failing to boot class U1 UHS SD cards due to incorrect
OTAP and ITAP delay select values. Update OTAP and ITAP delay select
values from DT.

Fixes: c7d106b4eb3 ("mmc: am654_sdhci: Update output tap delay writes")
Signed-off-by: Nitin Yadav <n-yadav@ti.com>
Signed-off-by: Judith Mendez <jm@ti.com>
7 months agommc: am654_sdhci: Add tuning algorithm for delay chain
Judith Mendez [Thu, 18 Apr 2024 19:00:56 +0000 (14:00 -0500)]
mmc: am654_sdhci: Add tuning algorithm for delay chain

Currently the sdhci_am654 driver only supports one tuning
algorithm which should be used only when DLL is enabled. The
ITAPDLY is selected from the largest passing window and the
buffer is viewed as a circular buffer.

The new tuning algorithm should be used when the delay chain
is enabled; the ITAPDLY is selected from the largest passing
window and the buffer is not viewed as a circular buffer.

This implementation is based off of the following paper: [1].

Also add support for multiple failing windows.

[1] https://www.ti.com/lit/an/spract9/spract9.pdf

Fixes: a759abf569d4 ("mmc: am654_sdhci: Add support for software tuning")
Signed-off-by: Judith Mendez <jm@ti.com>
7 months agoMerge patch series "upstream DT compatibility"
Tom Rini [Mon, 29 Apr 2024 16:55:17 +0000 (10:55 -0600)]
Merge patch series "upstream DT compatibility"

Caleb Connolly <caleb.connolly@linaro.org> says:

This is a subset of [1]. With more platform maintainers switching to
OF_UPSTREAM I didn't want to get in the way (it has also proven more
difficult than I hoped to remove only the fully compatible header
files).

This series removes only the dt-bindings headers which contain generic
data like GPIO flags, input event codes, etc.

It then implements support for building all DTBs for a vendor with
OF_UPSTREAM_BUILD_VENDOR. This removes the need to maintain a set list
of DTBs that can be built by U-Boot and opens up the possibility of new
boards becoming supported "by default" just by landing their DT
upstream.

[1]: https://lore.kernel.org/u-boot/20240321-b4-upstream-dt-headers-v2-0-1eac0df875fe@linaro.org

7 months agodts: support building all dtb files for a specific vendor
Caleb Connolly [Thu, 18 Apr 2024 18:39:58 +0000 (19:39 +0100)]
dts: support building all dtb files for a specific vendor

This adjusts OF_UPSTREAM to behave more like the kernel by allowing for
all the devicetree files for a given vendor to be compiled. This is
useful for Qualcomm in particular as most boards are supported by a
single U-Boot build just provided with a different DT.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on Amlogic boards builds
7 months agodt-bindings: drop generic headers
Caleb Connolly [Thu, 18 Apr 2024 18:39:57 +0000 (19:39 +0100)]
dt-bindings: drop generic headers

Drop all the subsystem headers that are compatible with the headers in
dts/upstream.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
7 months agoarm: dts: imx6dl-brppt2: fix gpio.h include
Caleb Connolly [Thu, 18 Apr 2024 18:39:56 +0000 (19:39 +0100)]
arm: dts: imx6dl-brppt2: fix gpio.h include

The "include" directory was included in the include path... Remove it.

Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
7 months agoMerge patch series "Enable ICSSG Ethernet Driver for AM65x"
Tom Rini [Mon, 29 Apr 2024 16:54:46 +0000 (10:54 -0600)]
Merge patch series "Enable ICSSG Ethernet Driver for AM65x"

MD Danish Anwar <danishanwar@ti.com> says:

The series introduces device tree and config changes and AM65x
to enable ICSSG driver. The series also enables SPL_LOAD_FIT_APPLY_OVERLAY
for AM65x in order to load overlay over spl.

The ICSSG2 node is added in device tree overlay so that it remains in
sync with linux kernel.

This series has been tested on AM65x SR2.0, and the ICSSG interface is
able to ping / dhcp and boot kernel using tftp in uboot.

The users need to set env variables fw_storage_interface, fw_dev_part,
fw_ubi_mtdpart, fw_ubi_volume to indicate which storage medium and
partition they want to use to load firmware files from. By default the env
fw_storage_interface=mmc and fw_dev_part=1:2 but users can modify these
envs as per their requirements.

7 months agoboard: ti: am65x: Set fw_storage_interface and fw_dev_part ENVs
MD Danish Anwar [Tue, 16 Apr 2024 09:20:18 +0000 (14:50 +0530)]
board: ti: am65x: Set fw_storage_interface and fw_dev_part ENVs

When ICSSG driver is enabled (CONFIG_TI_ICSSG_PRUETH=y) set
storage_interface and fw_dev_part env variables.

These variables need be set appropriately in order to load differnet
ICSSG firmwares needed for ICSSG driver. By default the storage
interface is mmc and the partition is 1:2. User can modify this based on
their needs.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoboard: ti: am65x: Add check for k3-am654-icssg2 in board_fit_config_match()
MD Danish Anwar [Tue, 16 Apr 2024 09:20:17 +0000 (14:50 +0530)]
board: ti: am65x: Add check for k3-am654-icssg2 in board_fit_config_match()

When CONFIG_TI_ICSSG_PRUETH is enabled, add config name check for the
icssg2 overlay in board_fit_config_match() API.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoconfigs: am65x_evm_a53: add SPL_LOAD_FIT_APPLY_OVERLAY
MD Danish Anwar [Tue, 16 Apr 2024 09:20:16 +0000 (14:50 +0530)]
configs: am65x_evm_a53: add SPL_LOAD_FIT_APPLY_OVERLAY

We want SPL to apply DTB overlays (e.g. ICSSG2 overlay) so enable
SPL_LOAD_FIT_APPLY_OVERLAY.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoconfigs: am65x_evm_a53: Enable ICSSG Driver
MD Danish Anwar [Tue, 16 Apr 2024 09:20:15 +0000 (14:50 +0530)]
configs: am65x_evm_a53: Enable ICSSG Driver

Enable ICSSG driver in am65x_evm_a53_defconfig

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoarm: dts: k3-am65x-binman: Add ICSSG2 overlay and configuration
MD Danish Anwar [Tue, 16 Apr 2024 09:20:14 +0000 (14:50 +0530)]
arm: dts: k3-am65x-binman: Add ICSSG2 overlay and configuration

Add ICSSG2 overlay and configuration to tispl and u-boot images.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoarm: dts: k3-am654-base-board: Add ICSSG2 Ethernet support
MD Danish Anwar [Tue, 16 Apr 2024 09:20:13 +0000 (14:50 +0530)]
arm: dts: k3-am654-base-board: Add ICSSG2 Ethernet support

ICSSG2 provides dual Gigabit Ethernet support.
Add ICSSG2 ethernet node to an overlay k3-am654-icssg2.dtso

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
7 months agoarm: mach-k3: am62ax: Fix typo in ROM data macro name
Andrew Davis [Fri, 26 Apr 2024 15:44:23 +0000 (10:44 -0500)]
arm: mach-k3: am62ax: Fix typo in ROM data macro name

s/ENTENDED/EXTENDED

Signed-off-by: Andrew Davis <afd@ti.com>
7 months ago.gitignore: add LTO generated file
Robert Marko [Tue, 23 Apr 2024 11:05:40 +0000 (13:05 +0200)]
.gitignore: add LTO generated file

Currently, keep-syms-lto.c is being generated if LTO is enabled but unlike
keep-syms-lto.o it is not being ignored, so lets add keep-syms-lto.* to
.gitignore.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
7 months agocmd: CONFIG_CMD_BLOBLIST must depend on CONFIG_BLOBLIST
Heinrich Schuchardt [Mon, 22 Apr 2024 13:50:10 +0000 (15:50 +0200)]
cmd: CONFIG_CMD_BLOBLIST must depend on CONFIG_BLOBLIST

With CONFIG_CMD_BLOBLIST=y, CONFIG_BLOBLIST=n linker errors occur:

    usr/bin/ld: cmd/bloblist.o: in function `do_bloblist_list':
    cmd/bloblist.c:27:(.text.do_bloblist_list+0x6):
    undefined reference to `bloblist_show_list'

    /usr/bin/ld: cmd/bloblist.o: in function `do_bloblist_info':
    cmd/bloblist.c:19:(.text.do_bloblist_info+0x6):
    undefined reference to `bloblist_show_stats'

Fixes: 4aed22762303 ("bloblist: Add a command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
7 months agoarm: mach-k3: am642: Fix reset for workaround errata ID i2331
Andrew Davis [Thu, 18 Apr 2024 17:58:28 +0000 (12:58 -0500)]
arm: mach-k3: am642: Fix reset for workaround errata ID i2331

To workaround an issue in AM642 we reset the SoC in early boot. For that
we first probed the sysreset driver by calling uclass_get_device(). The
ti-sci sysreset driver is now probed during the ti-sci firmware probe.
Update this call to probe the firmware driver which will then probe
the sysreset driver allowing do_reset() to again function as expected.

Reported-by: Jonathan Humphreys <j-humphreys@ti.com>
Fixes: fc5d40283483 ("firmware: ti_sci: Bind sysreset driver when enabled")
Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: Kamlesh Gurudasani <kamlesh@ti.com>
7 months agomailmap: add entry for AKASHI Takahiro
Heinrich Schuchardt [Thu, 18 Apr 2024 14:11:12 +0000 (16:11 +0200)]
mailmap: add entry for AKASHI Takahiro

Akashi-san's Linaro email address in not valid anymore.

Cc: AKASHI Takahiro <akashi.tkhro@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
7 months agoboard: toradex: verdin-am62: Remove not needed env variables
Francesco Dolcini [Thu, 18 Apr 2024 13:13:02 +0000 (15:13 +0200)]
board: toradex: verdin-am62: Remove not needed env variables

Remove not needed variables from environment.

 - boot_scripts is not needed, the default value is just fine and
   already includes boot.scr
 - setup variable used to be executed from some bootscript, however
   it's not required and there is no point on having this small helper
   here

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
7 months ago.gitignore: Add files produced by TI platform
Andrea Calabrese [Wed, 17 Apr 2024 16:24:34 +0000 (18:24 +0200)]
.gitignore: Add files produced by TI platform

Add files produced by compilation of TI platforms:

*.ti-secure(-rom)
*.map
*-board-config
custMpk.pem
*.bin_*
*.fit
*.itb
tispl.bin_unsigned

Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com>
7 months agoarm: dts: verdin-am62: use gpio-hog for sleep moci
Stefan Eichenberger [Wed, 17 Apr 2024 08:39:21 +0000 (10:39 +0200)]
arm: dts: verdin-am62: use gpio-hog for sleep moci

In Linux, we allow sleep moci to be turned off when the carrier board
supports it and the system is in suspend. In U-Boot, however, we want
the sleep moci to be always on. So we use a gpio hog and disable the
regulator. This change is necessary because we switched to upstream
device tree files with commit c07bba7a2c7e ("verdin-am62: move verdin
am62 to OF_UPSTREAM"). A recent upstream patch removes the gpio hog from
the Linux device tree, so we need to add it to the u-boot dtsi. The
following patch will remove the gpio hog from the Linux device tree:
https://lore.kernel.org/linux-devicetree/20240301084901.16656-1-eichest@gmail.com/
The U-Boot patch can be applied without it and will not break the build.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
7 months agoboard: ti: j721e: Add support for both esm probe
Udit Kumar [Wed, 17 Apr 2024 04:36:50 +0000 (10:06 +0530)]
board: ti: j721e: Add support for both esm probe

At present only MCU domain ESM is probed, this means errors
occurred in mcu domain will be propagate to MCU_SAFETY_ERRORn.
MCU ESM accepts SOC_SAFETY_ERRORn signal as Error
event and propagate to MCU_SAFETY_ERRORn.[0]

Therefore adding support to probe both main domain and mcu
domain ESM.

[0]: https://www.ti.com/lit/zip/spruil1
spruil1c.pdf from zip
Figure 12-1244. ESM Modules Overview

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Keerthy <j-keerthy@ti.com>
7 months agoconfigs: am62px_evm_a53_defconfig: Enable MMC UHS config option
Judith Mendez [Tue, 16 Apr 2024 16:21:15 +0000 (11:21 -0500)]
configs: am62px_evm_a53_defconfig: Enable MMC UHS config option

Enable MMC UHS support for to allow to enter the UHS
modes for MMC1.

Signed-off-by: Judith Mendez <jm@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
7 months agoMakefile: don't add -Wno-maybe-uninitialized twice
Heinrich Schuchardt [Tue, 16 Apr 2024 07:35:24 +0000 (09:35 +0200)]
Makefile: don't add -Wno-maybe-uninitialized twice

Avoid adding the same flag to KBUILD_CFLAGS twice.

Fixes: 8602d97ca2cf ("Makefile: avoid false positive -Wmaybe-uninitialized")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
7 months agoarm: dts: k3-am625-verdin: add tifsstub to tispl.bin
Parth Pancholi [Mon, 15 Apr 2024 07:54:58 +0000 (09:54 +0200)]
arm: dts: k3-am625-verdin: add tifsstub to tispl.bin

Adds tifsstub binaries, this is required for deepsleep functionality.

This implements the same change as commit 128f81290b7d ("arm: dts: k3:
binman: am625: add support for signing TIFSSTUB Images") did for TI AM62
SK board.

Signed-off-by: Parth Pancholi <parth.pancholi@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
7 months agoMerge tag 'u-boot-imx-master-20240429' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Mon, 29 Apr 2024 14:35:02 +0000 (08:35 -0600)]
Merge tag 'u-boot-imx-master-20240429' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Fix missing fdt_fixup on colibri-imx(6ull|imx7).
- Enable PCIe and NVMe on DH i.MX8M Plus DHCOM PDK3.
- Convert i.MX8M flash.bin image generation to binman
- Convert imx93-11x11-evk to OF_UPSTREAM.

7 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic
Tom Rini [Mon, 29 Apr 2024 14:34:45 +0000 (08:34 -0600)]
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-pmic

7 months agopower: pmic: tps65941: Update compatible to aling with kernel DT
Udit Kumar [Fri, 19 Apr 2024 06:00:16 +0000 (11:30 +0530)]
power: pmic: tps65941: Update compatible to aling with kernel DT

Linux kernel driver drivers/mfd/tps6594-i2c.c is using different
name for compatible for tps6594 family PMIC.
After sync of Linux kernel DT to u-boot for TI platforms
J7200, J721S2 and J784S4 PMIC is no longer getting probed.

So updating compatible field to align with Linux driver and DT.

Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agopower: regulator: tps65941: Add TPS65224 PMIC regulator support
Bhargav Raviprakash [Mon, 22 Apr 2024 09:49:09 +0000 (09:49 +0000)]
power: regulator: tps65941: Add TPS65224 PMIC regulator support

Reuse TPS65941 regulator driver to adds support for
TPS65224 PMIC's regulators. 4 BUCKs and 3 LDOs, where
BUCK1 and BUCK2 can be configured in dual phase mode.

Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agopower: regulator: tps65941: use function callbacks for conversion ops
Bhargav Raviprakash [Mon, 22 Apr 2024 09:49:01 +0000 (09:49 +0000)]
power: regulator: tps65941: use function callbacks for conversion ops

Use function callbacks for volt2val, val2volt and slewrate lookups.
This makes it easier to add support for TPS65224 PMIC regulators.

Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agopower: regulator: tps65941: Added macros for BUCK ID
Bhargav Raviprakash [Mon, 22 Apr 2024 09:48:53 +0000 (09:48 +0000)]
power: regulator: tps65941: Added macros for BUCK ID

Adds macros for buck and ldo ids and switched to using switch
case instead of if else in probe functions. Helps in adding
support for TPS65224 PMIC.

Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agopower: pmic: tps65941: Add TI TPS65224 PMIC
Bhargav Raviprakash [Mon, 22 Apr 2024 09:48:46 +0000 (09:48 +0000)]
power: pmic: tps65941: Add TI TPS65224 PMIC

Adds compatible and data field values of TPS65224 driver in
TPS65941 PMIC driver.

Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agopower: tps65941: Add macros of TPS65224 PMIC
Bhargav Raviprakash [Mon, 22 Apr 2024 09:48:33 +0000 (09:48 +0000)]
power: tps65941: Add macros of TPS65224 PMIC

Re-use the TPS65941 PMIC driver for TPS65224 PMIC.
Add additional macros of TPS65224 to aid in the driver
re-use.

Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
7 months agoARM: dts: imx: Convert i.MX8M flash.bin image generation to binman
Marek Vasut [Thu, 25 Apr 2024 23:00:37 +0000 (01:00 +0200)]
ARM: dts: imx: Convert i.MX8M flash.bin image generation to binman

Rework the flash.bin image generation such that it uses the new binman
nxp_imx8mimage etype. This way, the flash.bin is assembled in correct
order using plain binman, without any workarounds or sections assembled
in special DT node order.

Reviewed-By: Tim Harvey <tharvey@gateworks.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> # imx8mm_venice
Tested-by: Fabio Estevam <festevam@gmail.com> # imx8mm-evk and imx8mn-evk
Signed-off-by: Marek Vasut <marex@denx.de>
7 months agoARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi
Marek Vasut [Thu, 25 Apr 2024 23:00:36 +0000 (01:00 +0200)]
ARM: dts: imx: Switch Ronetix iMX8MQ-CM to imx8mq-u-boot.dtsi

Include imx8mq-u-boot.dtsi in the board -u-boot.dtsi to pull in binman
configuration instead of duplicating it in the board -u-boot.dtsi again.
Drop the duplicate binman configuration.

Signed-off-by: Marek Vasut <marex@denx.de>
7 months agobinman: Add nxp_imx8mimage etype
Marek Vasut [Thu, 25 Apr 2024 23:00:35 +0000 (01:00 +0200)]
binman: Add nxp_imx8mimage etype

Add new binman etype derived from mkimage etype which generates configuration
input file for mkimage -T imx8mimage, and runs the mkimage on input data. The
mkimage -T imx8mimage is used to generate combined image with SPL and DDR PHY
blobs which is bootable on i.MX8M.

The configuration file generated here is equivalent of imx8mimage.cfg, which
is the file passed to '$ mkimage -T imx8mimage -n imx8mimage.cfg ...' . The
settings generated into the imx8mimage.cfg file are configured via supported
binman DT properties, nxp,boot-from, nxp,loader-address, nxp,rom-version.

Signed-off-by: Marek Vasut <marex@denx.de>
7 months agoimx: imx93-11x11-evk: convert to OF_UPSTREAM
Peng Fan [Wed, 24 Apr 2024 09:12:22 +0000 (17:12 +0800)]
imx: imx93-11x11-evk: convert to OF_UPSTREAM

Convert to OF_UPSTREAM for i.MX93 11x11 EVK.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 months agodt-bindings: imx93: sync clock header
Peng Fan [Wed, 24 Apr 2024 09:12:21 +0000 (17:12 +0800)]
dt-bindings: imx93: sync clock header

Sync clock header with kernel 6.8

Signed-off-by: Peng Fan <peng.fan@nxp.com>
7 months agoARM: dts: imx: Enable PCIe and NVMe on DH i.MX8M Plus DHCOM PDK3
Marek Vasut [Tue, 23 Apr 2024 23:15:18 +0000 (01:15 +0200)]
ARM: dts: imx: Enable PCIe and NVMe on DH i.MX8M Plus DHCOM PDK3

Enable PCIe/NVMe support on DH i.MX8M Plus DHCOM PDK3. 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>
7 months agoboard: toradex: colibri-imx(6ull|imx7): Fix missing fdt_fixup boot error
Francesco Dolcini [Tue, 23 Apr 2024 15:57:01 +0000 (17:57 +0200)]
board: toradex: colibri-imx(6ull|imx7): Fix missing fdt_fixup boot error

In commit 51aaaf5e7975 ("board: toradex: imx: Remove not needed env variables")
the empty definition of fdt_fixup variable was removed, however this was
still referenced from the boot command leading to boot failures:
 ## Error: \"fdt_fixup\" not defined`

Fix this by removing "run fdt_fixup" from the boot command and instead
enable CONFIG_OF_ENV_SETUP in the defconfig that would achieve the same
but in a more robust way (it works fine even if the variable is not
defined).

Fixes: 51aaaf5e7975 ("board: toradex: imx: Remove not needed env variables")
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
7 months agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Fri, 26 Apr 2024 13:39:18 +0000 (07:39 -0600)]
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-mmc

7 months agoMerge tag 'u-boot-rockchip-20240426' of https://source.denx.de/u-boot/custodians...
Tom Rini [Fri, 26 Apr 2024 13:28:57 +0000 (07:28 -0600)]
Merge tag 'u-boot-rockchip-20240426' of https://source.denx.de/u-boot/custodians/u-boot-rockchip

Please pull the updates for rockchip platform:
- dts sync for rk3308;
- sdram: Support getting banks from TPL for rk3568 and rk3588;
- dts and config clean and sync up for rk3568/rk3588;
- Other misc fixes;

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

7 months agoMerge tag 'optee-master-26042024' of https://source.denx.de/u-boot/custodians/u-boot-tpm
Tom Rini [Fri, 26 Apr 2024 13:28:32 +0000 (07:28 -0600)]
Merge tag 'optee-master-26042024' of https://source.denx.de/u-boot/custodians/u-boot-tpm

Minor changes on this PR.
Igor added some orphaned OP-TEE related files on the proper section
of MAINTAINERS and fixed a potential buffer overflow in tee-sandbox

7 months agorockchip: rk356x: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:34 +0000 (12:46 +0200)]
rockchip: rk356x: use DRAM banks from ATAGS

RK356x-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:33 +0000 (12:46 +0200)]
rockchip: rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: turing-rk1-rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:32 +0000 (12:46 +0200)]
rockchip: turing-rk1-rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the turing-rk1-rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: toybrick_rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:31 +0000 (12:46 +0200)]
rockchip: toybrick_rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the toybrick_rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: evb_rk3588 et al.: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:30 +0000 (12:46 +0200)]
rockchip: evb_rk3588 et al.: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the evb_rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

All defconfigs using the CONFIG_TARGET_EVB_RK3588 are updated at once
since they are impacted by this change.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rock5b-rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:29 +0000 (12:46 +0200)]
rockchip: rock5b-rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the rock5b-rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rock5a-rk3588s: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:28 +0000 (12:46 +0200)]
rockchip: rock5a-rk3588s: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the rock5a-rk3588s.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: quartzpro64-rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:27 +0000 (12:46 +0200)]
rockchip: quartzpro64-rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the quartzpro64-rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: nanopc-t6-rk3588: use DRAM banks from ATAGS
Quentin Schulz [Thu, 25 Apr 2024 10:46:26 +0000 (12:46 +0200)]
rockchip: nanopc-t6-rk3588: use DRAM banks from ATAGS

RK3588-based devices now support creating DRAM banks with proper holes
by reading the ATAGS from Rockchip TPL blob, so let's use that mechanism
instead.

Since ft_board_setup isn't defined anymore, there's no need for
selecting CONFIG_OF_BOARD_SETUP.

Similarly, because the nanopc-t6-rk3588.c would be empty, it is simply
removed, with the (would-be-empty) Makefile as well.

The CONFIG_NR_DRAM_BANK now defaults to 10 which is a safe bet for
reading banks from ATAGS, so let's use the default value instead.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: NR_DRAM_BANKS now defaults to 10 when Rockchip TPL blob is used
Quentin Schulz [Thu, 25 Apr 2024 10:46:25 +0000 (12:46 +0200)]
rockchip: NR_DRAM_BANKS now defaults to 10 when Rockchip TPL blob is used

When Rockchip TPL blob is used, the memory areas that can be used for
DRAM is gotten from ATAGS passed through the DRAM at a specific address.

The DDR_MEM tag contains at most 10 areas, so we should default to 10 if
Rockchip TPL blob is used. Note that it is technically possible we need
more if one of those 10 areas overlaps with reserved memory area,
forcing us to split it in two. But a default doesn't need to handle all
cases, only most.

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: sdram: Support getting banks from TPL for rk3568 and rk3588
Quentin Schulz [Thu, 25 Apr 2024 10:46:24 +0000 (12:46 +0200)]
rockchip: sdram: Support getting banks from TPL for rk3568 and rk3588

Allow RK3568 and RK3588 based boards to get the RAM bank configuration
from the ROCKCHIP_TPL stage instead of the current logic. This fixes
both an issue where 256MB of RAM is blocked for devices with >= 4GB
of RAM and where memory holes need to be defined for devices with
more than 16GB of RAM. In the event that neither SoC is used or the
ROCKCHIP_TPL stage is not used, fall back to existing logic.

The logic handles creating memory holes from reserved memory areas
defined in mem_map data struct in SoC C files, but only if the DRAM area
overlaps with one reserved memory area.

Since mem_map data struct is used, it should be rather straightforward
to add support for other SoCs if needed.

The logic is taken from Rockchip's U-Boot tag linux-5.10-gen-rkr4.1
(e08e32143dd).

Note that Rockchip's U-Boot/TF-A/OP-TEE modify the ATAGS at runtime as
well, but the DDR_MEM tag seems to be pretty much stable (though BL31
seems to be reserving only 1MB for itself at the moment).

u32 for ATAGS is used because it simplifies the pointer arithmetic and
it's expected that ATAGS are always below the 4GB limit allowed by u32.

Co-developed-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rock-pi-4-rk3399: enable booting from SPI flash
Christopher Obbard [Fri, 15 Mar 2024 12:01:19 +0000 (12:01 +0000)]
rockchip: rock-pi-4-rk3399: enable booting from SPI flash

Some variants of the ROCK Pi 4 series have an SPI flash chip populated
which can be booted from. This patch enables support in U-Boot for
building the image for the SPI flash, support for booting U-Boot from the
SPI flash chip and support in U-Boot for accessing the SPI flash using
`sf` commands.

Not all variants (e.g. ROCK Pi 4B, ROCK 4 Model C Plus, ROCK 4SE) come
populated with an SPI flash chip, but have the footprint on the board so
a user could solder their own to the board. With this patchset applied,
these board variants without an SPI flash chip still boot from MMC.

I have enabled support for both Winbond and XTX SPI flash devices since
different hardware variants have different devices populated:

 - `rockpi4_v13_sch_20181112.pdf` contains a Winbond part `W25Q64FWZPIG`
 - `rockpi4_v14_sch_20210114.pdf` contains an XTX part `XT25F32BWOIGT`

The ROCK Pi 4 I have is marked as "ROCK PI 4 v1.48" and contains an SPI
flash chip from XTX:

    => sf probe
    SF: Detected xt25f32 with page size 256 Bytes, erase size 4 KiB, total 4 MiB

In the interest of supporting all board variants and not regressing
existing users who boot from MMC, I have enabled support for booting from
both SPI flash chip variants in the defconfig and left the environment
storage location as MMC to not break existing users who have the
environment stored on MMC.

Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
7 months agoarm: rockchip: sync ROCK Pi 4A DTS from Linux
Christopher Obbard [Fri, 15 Mar 2024 12:01:18 +0000 (12:01 +0000)]
arm: rockchip: sync ROCK Pi 4A DTS from Linux

To prepare for ROCK Pi 4A SPI flash support, sync the DTS from Linux which
includes an SPI flash node.

Kernel tag: v6.6-rc1
Kernel commits:
 - eddf73029770 ("arm64: dts: rockchip: Enable internal SPI flash for ROCK \
                  Pi 4A/B/C")

Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
7 months agorockchip: rk3328: Fix bootph prop for vop node
Jonas Karlman [Sun, 21 Apr 2024 20:12:29 +0000 (20:12 +0000)]
rockchip: rk3328: Fix bootph prop for vop node

The vop node should not be included in TPL/SPL control FDT, it should
only be included at U-Boot proper pre-reloc phase.

Change to use bootph-some-ram prop to fix this.

Fixes: 6794063d5065 ("ARM: dts: rk3328: Enable VOP for bootph-all")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: io-domain: Add support for RK3328
Jonas Karlman [Sun, 21 Apr 2024 20:09:03 +0000 (20:09 +0000)]
rockchip: io-domain: Add support for RK3328

Port the RK3328 part of the Rockchip IO-domain driver from linux.

This differs from linux version in that pmu io iodomain bit is enabled
in the write ops instead of in an init ops as in linux, this way we can
avoid keeping a full state of all supply that have been configured.

Enable by default on all RK3328 boards, skip rk3328-evb because this
target is typically also used on miscellaneous boards and boxes not
fully supported by U-Boot.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3328: Enable ARMv8 crypto extensions
Jonas Karlman [Sun, 21 Apr 2024 20:09:02 +0000 (20:09 +0000)]
rockchip: rk3328: Enable ARMv8 crypto extensions

The RK3328 SoC support ARMv8 Cryptography Extensions and use of the
ARMv8 crypto extensions help speed up FIT checksum validation in SPL.

Imply ARMV8_SET_SMPEN and ARMV8_CRYPTO to take advantage of the crypto
extensions for SHA256 when validating checksum of FIT images.

Also imply OF_LIVE to help speed up init of U-Boot proper.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3328: Sort imply statements alphabetically
Jonas Karlman [Sun, 21 Apr 2024 20:09:01 +0000 (20:09 +0000)]
rockchip: rk3328: Sort imply statements alphabetically

Sort imply statements under ROCKCHIP_RK3328 alphabetically and remove
ENABLE_ARM_SOC_BOOT0_HOOK, DEBUG_UART_BOARD_INIT and SYS_NS16550, they
are already implyed or selected by ARCH_ROCKCHIP.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agoboard: rk3288: simplify the DT file list in MAINTAINERS
Dragan Simic [Thu, 18 Apr 2024 07:06:38 +0000 (09:06 +0200)]
board: rk3288: simplify the DT file list in MAINTAINERS

Use a wildcard to simplify the list of board DT files in the MAINTAINERS
file for the Radxa Rock 2 Square board.

Signed-off-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: px30-board-tpl: Sync ifdef guards with full TPL
Lukasz Czechowski [Wed, 17 Apr 2024 11:21:28 +0000 (13:21 +0200)]
rockchip: px30-board-tpl: Sync ifdef guards with full TPL

Display TPL init information message only when TPL_BANNER_PRINT
configuration entry is set. This allows to disable information
message in case logs on UART are unwanted.
Update parent ifdef condition to check also CONFIG_TPL_SERIAL
to match logic of the non-PX30 TPL implementation.

Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agommc: rockchip_sdhci: Fix 4 blocks PIO mode read limit for RK35xx
Jonas Karlman [Wed, 10 Apr 2024 14:30:50 +0000 (14:30 +0000)]
mmc: rockchip_sdhci: Fix 4 blocks PIO mode read limit for RK35xx

The commit 2cc6cde647e2 ("mmc: rockchip_sdhci: Limit number of blocks
read in a single command") introduced a limit of number of blocks to
read to fix a Data End Bit Error on RK3568 and RK3588. This had a side
affect of significant slowing down reading FIT from eMMC.

After the commit 6de9d7b2f13c ("rockchip: rk35xx: Enable eMMC HS200 mode
by default") the limit of number of blocks to read workaround is no
longer necessary and at HS200+ a Data End Bit Error is no longer
happening using PIO mode.

Change this limitation to allow reading more than 4 blocks with a single
CMD18 command in PIO mode at HS200+ speed, keep using the 4 blocks
limitation when loadig FIT from eMMC at lower speed than HS200.

Fixes: 2cc6cde647e2 ("mmc: rockchip_sdhci: Limit number of blocks read in a single command")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk35xx-generic: Disable unused features
Jonas Karlman [Mon, 22 Apr 2024 06:29:05 +0000 (06:29 +0000)]
rockchip: rk35xx-generic: Disable unused features

The generic RK35xx board targets are intended to be used as a bare
minimum target that can be used to e.g. boot boards that mostly follow
reference hw design before a board spefic target has been added or for
flashing and recovery purposes.

Disable BOOTMETH_VBE, NET and ADC as these features are not intended to
ever be used by these minimal generic board targets.

Enable SYSRESET_PSCI to let TF-A handle sysreset from U-Boot proper.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-generic: Add support for USB OTG
Jonas Karlman [Mon, 22 Apr 2024 06:29:04 +0000 (06:29 +0000)]
rockchip: rk3588-generic: Add support for USB OTG

Add support for USB OTG, RockUSB and UMS to the generic RK3588S/RK3588
target.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-generic: Use M0 iomux for UART2
Jonas Karlman [Mon, 22 Apr 2024 06:29:03 +0000 (06:29 +0000)]
rockchip: rk3588-generic: Use M0 iomux for UART2

The default pinctrl for UART2 is using M1 iomux, however, all other
supported RK3588 boards in U-Boot use M0 iomux for UART2.

Change to use the M0 pinctrl for UART2 to match other supported boards.

Fixes: b54c3d0dd69b ("rockchip: board: Add minimal generic RK3588S/RK3588 board")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk356x-generic: Add support for USB OTG
Jonas Karlman [Mon, 22 Apr 2024 06:29:02 +0000 (06:29 +0000)]
rockchip: rk356x-generic: Add support for USB OTG

Add support for USB OTG, RockUSB and UMS to the generic RK3566/RK3568
target.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk356x-generic: Add support for SPI flash
Jonas Karlman [Mon, 22 Apr 2024 06:29:01 +0000 (06:29 +0000)]
rockchip: rk356x-generic: Add support for SPI flash

Add support for booting from SPI flash using the generic RK3566/RK3568
target.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk356x-generic: Fix eMMC and SD-card pinctrl
Jonas Karlman [Mon, 22 Apr 2024 06:29:00 +0000 (06:29 +0000)]
rockchip: rk356x-generic: Fix eMMC and SD-card pinctrl

Add missing emmc_datastrobe and sdmmc0_det pinctrl to fix possible issue
reading from eMMC or SD-card. Also use correct node for mmc1 alias.

Fixes: 683f61a13f16 ("rockchip: board: Add minimal generic RK3566/RK3568 board")
Fixes: 363cbd578169 ("rockchip: rk3568-generic: Enable eMMC HS200 mode")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-edgeble-neu6: Enable FIT checksum validation
Jonas Karlman [Mon, 22 Apr 2024 06:28:59 +0000 (06:28 +0000)]
rockchip: rk3588-edgeble-neu6: Enable FIT checksum validation

Enable SPL_FIT_SIGNATURE=y and LEGACY_IMAGE_FORMAT=y to validate FIT
images checksum in SPL.

Change to SPL_MAX_SIZE=0x40000 to allow SPL up to 256 KiB in size.

Enable SPL_DM_SEQ_ALIAS=y and SPL_PINCTRL=y to ensure eMMC and SD-card
pinctrl is configured in SPL.

Enable SYS_NS16550_MEM32=y to use readl/writel in serial driver.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-turing-rk1: Use dwc3-generic driver
Jonas Karlman [Mon, 22 Apr 2024 06:28:58 +0000 (06:28 +0000)]
rockchip: rk3588-turing-rk1: Use dwc3-generic driver

RK35xx boards are expected to use the dwc3-generic driver and not the
xhci-dwc3 driver.

Remove the USB_XHCI_DWC3 option to ensure that the dwc3-generic driver
is used.

Fixes: 153ac950a599 ("board: rockchip: Add the Turing RK1 SoM")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-toybrick: Add .dtb-file entry in Makefile
Jonas Karlman [Mon, 22 Apr 2024 06:28:57 +0000 (06:28 +0000)]
rockchip: rk3588-toybrick: Add .dtb-file entry in Makefile

Add Rockchip Toybrick TB-RK3588X .dtb-file entry in Makefile.

Fixes: 9fdd9a546986 ("board: rockchip: add Rockchip Toybrick TB-RK3588X board")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-toybrick: Use pinctrl and aliases in SPL
Jonas Karlman [Mon, 22 Apr 2024 06:28:56 +0000 (06:28 +0000)]
rockchip: rk3588-toybrick: Use pinctrl and aliases in SPL

Pinctrl must be configured for eMMC, SD-card and SPI flash to
successfully read FIT from all possible fallback media in SPL.

Include pinctrl props and enable the SPL_PINCTRL Kconfig option to
ensure FIT can be loaded from eMMC, SD-card and SPI flash.

Also enable the SPL_DM_SEQ_ALIAS Kconfig option to ensure that the
storage device sequence number matches in both SPL and U-Boot proper.

Fixes: 9fdd9a546986 ("board: rockchip: add Rockchip Toybrick TB-RK3588X board")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-coolpi: Fix .dtb-file entries in Makefile
Jonas Karlman [Mon, 22 Apr 2024 06:28:55 +0000 (06:28 +0000)]
rockchip: rk3588-coolpi: Fix .dtb-file entries in Makefile

Fix CoolPi 4 Model B and CoolPi CM5 EVB .dtb-file entries in Makefile.

Fixes: 3e15dee38d45 ("board: rockchip: Add support for rk3588 based Cool Pi CM5 EVB")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-coolpi: Add boards to documentation
Jonas Karlman [Mon, 22 Apr 2024 06:28:54 +0000 (06:28 +0000)]
rockchip: rk3588-coolpi: Add boards to documentation

Add the CoolPi 4 Model B and CoolPi CM5 EVB board to the documentation.

Fixes: 3e15dee38d45 ("board: rockchip: Add support for rk3588 based Cool Pi CM5 EVB")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3566-pinetab2: Fix reading FIT from SPI flash
Jonas Karlman [Mon, 22 Apr 2024 06:28:53 +0000 (06:28 +0000)]
rockchip: rk3566-pinetab2: Fix reading FIT from SPI flash

The SF_DEFAULT_SPEED Kconfig option got lost during merge and this
prevent reading FIT from SPI flash.

Restore the SF_DEFAULT_SPEED option to fix this.

Fixes: 8a94c376f6cb ("rockchip: Use common bss and stack addresses on RK356x")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3588-evb: Use pinctrl and aliases in SPL
Jonas Karlman [Mon, 22 Apr 2024 06:28:52 +0000 (06:28 +0000)]
rockchip: rk3588-evb: Use pinctrl and aliases in SPL

Pinctrl must be configured for eMMC, SD-card and SPI flash to
successfully read FIT from all possible fallback media in SPL.

Include pinctrl props and enable the SPL_PINCTRL Kconfig option to
ensure FIT can be loaded from eMMC, SD-card and SPI flash.

Also enable the SPL_DM_SEQ_ALIAS Kconfig option to ensure that the
storage device sequence number matches in both SPL and U-Boot proper.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
7 months agorockchip: rk3568-evb: Use pinctrl in SPL
Jonas Karlman [Mon, 22 Apr 2024 06:28:51 +0000 (06:28 +0000)]
rockchip: rk3568-evb: Use pinctrl in SPL

Pinctrl must be configured for eMMC, SD-card and SPI flash to
successfully read FIT from all possible fallback media in SPL.

Include pinctrl props and enable the SPL_PINCTRL Kconfig option to
ensure FIT can be loaded from eMMC, SD-card and SPI flash.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>