426 Commits

Author SHA1 Message Date
Jayesh Choudhary
d6942d72c4 arm: mach-k3: r5: Makefile: Fix the order for entries
Add the entries in alphabetical order.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-06-19 12:07:43 -06:00
Jayesh Choudhary
c826deebe2 soc: add info to identify the J722S SoC family
Include the part number for TI's j722s family of SoC
to identify it during boot.

Signed-off-by: Vaishnav Achath <vaishnav.a@ti.com>
Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
2024-06-19 12:07:43 -06:00
Jayesh Choudhary
d540d3ca9d arm: mach-k3: Sort CONFIG_SOC* and K3_SOC_ID entries
Sort CONFIG_SOC* and K3_SOC_ID alphabetically.

Signed-off-by: Jayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-06-19 12:07:43 -06:00
Tom Rini
0329779bfb Merge patch series "*** phyCORE-AM62x: DDR detection / Inject DDR timing deltas ***"
Wadim Egorov <w.egorov@phytec.de> says:

Changes in v2:
  - Reabse to current next
  - Add Tested-by: John Ma <jma@phytec.com>
  - Add Kconfig option to select RAM size statically
  - Make board/phytec/common/k3 always compile for CONFIG_ARCH_K3

v1: https://lists.denx.de/pipermail/u-boot/2024-May/553057.html
2024-06-07 14:03:36 -06:00
Wadim Egorov
e63908adbd arm: mach-k3: am625: Call do_board_detect() before DDR probing
Call do_board_detect() hook before the K3 DDRSS driver gets probed.
It will allow boards to adjust DDR timings in do_board_detect().

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Tested-by: John Ma <jma@phytec.com>
2024-06-07 14:02:26 -06:00
Tom Rini
30060e0480 Merge patch series "Adding support to load secure firmware for HS devices"
Udit Kumar <u-kumar1@ti.com> says:

Some use case needs rproc firmware to be loaded at u-boot stage,
using following commands at u-boot shell, firmware could be loaded

=> setenv dorprocboot 1
=> run boot_rprocs

For Secure devices, secure version of rproc firmware should be loaded,
which is appended by sec keyword[0].
but currently non-secure firmware is loaded even for secure devices.
So adding support for loading secure firmware on Secured devices.

[0]: https://gist.github.com/uditkumarti/cd8bf6a448079b59145d17a0e8bf13b7

Bootlogs:
GP : https://gist.github.com/uditkumarti/23a00c313e1c28b62537aab733a585df#file-gp_device line 65 onwards
HS : https://gist.github.com/uditkumarti/23a00c313e1c28b62537aab733a585df#file-hs-device line 60 onwards
2024-06-07 14:01:15 -06:00
Manorit Chawdhry
4db7d62f85 mach-k3: common.c: add a flag for booting authenticated rproc binaries
The flag will be used for booting authenticated remote procs from hs-se
devices which can optionally be used in hs-fs devices also.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> # Intel Edison
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2024-06-07 14:00:43 -06:00
Manorit Chawdhry
145a23450c include: mach-k3: move k3 security functions to security.h
ti_secure_image_post_process and ti_secure_image_check_binary is used
for the authentication purposes in the current boot flow. Authentication
of remoteproc firmware images require ti_secure_image_post_process to be
available outside mach-k3.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> # Intel Edison
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2024-06-07 14:00:43 -06:00
Tom Rini
227be29df3 Prepare v2024.070-rc4
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEGjx/cOCPqxcHgJu/FHw5/5Y0tywFAmZeYVEACgkQFHw5/5Y0
 tyzD8Qv/fX57m3Vkq9WNJ06H1cEhSfnnCE6n6BvSA079wiEgu7xUwizECu1z00V3
 2NxTJojMuGoEFE4EhW8JLTeSak3qST1Wgvx3XWpATRxDnpQN5Pjl7X6N8AA5tCgg
 6KhMMiL8qND516kHDZvkkE4un+WLFOscBOTaPy6VwiTyMaQDFnO2kL7O8rai2ZeG
 LNL+ObnnxcnRtfRUqFv1cMKkK2vvMmQZBtOAWFb3MSJ4ZO/RLaMIpNqpx9ZK8Co9
 MgNW570DemJrnZ7z2VMMw5Bxafo++VUPDHIUywnT/FeMe8eQJWPGsRCqEYr6by2G
 vLIWgVV02ObdYLLCeUZv1TV8Hn7w2tNvPJKQCEGVTGC4Jb4K9vv+V6w9NdPgutNo
 zg9mHVEK/mcBrMNQZk9W+wzasZ6uem85h+KaQYIfrmCHqW4Q9gyA55Q6qw7tJe5L
 8DIdMbWWJ3icVl9wP+S5lI8nvHRVOgyuRDQxOjzb2IbZiSf4eopI4j6XJaEV04iu
 QzzFC2jn
 =xslu
 -----END PGP SIGNATURE-----

Merge tag 'v2024.07-rc4' into next

Prepare v2024.070-rc4
2024-06-04 08:09:09 -06:00
Bryan Brattlof
44b1d2210f arm: mach-k3: am62p: Fixup TF-A/OP-TEE reserved-memory node in FDT
The address we load TFA and OPTEE is configurable by the
CONFIG_K3_{ATF,OPTEE)_LOAD_ADDR, but the DT node reservations remain
static which can cause some confusion about where exactly these firmware
are exactly. Fix this by updating the reserved-memory{} nodes when the
loaded address does not match the address in DT.

Reported-by: Andrew Davis <afd@ti.com>
Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-05-29 11:21:14 -06:00
Tom Rini
03de305ec4 Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"
As part of bringing the master branch back in to next, we need to allow
for all of these changes to exist here.

Reported-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-05-20 13:35:03 -06:00
Tom Rini
d4781422d1 Prepare v2024.07-rc3
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEGjx/cOCPqxcHgJu/FHw5/5Y0tywFAmZLdOcACgkQFHw5/5Y0
 tyxIBgwAq83rYBPV5D4JIurAvQ3W34cYDFdDhlph7RFjd8eCfsyYIvHRjRBzQfMf
 YdMdOxsAzXVm/l//ZUOF4tuXHw74IsBgG8gZou8ggD4Crya5OvIbxKHGZAS24d/8
 dmqG8jSxrjwqkyxhAyHfmceL9rlNO7VCPY2YoP8GEZybmagN6LV4SREG+aTzGj5t
 ExWFpK24E90qXMH6XPbZs1kAPFsRr8HwyG5IlOMdpE1KL256gdTeEec/pT7cXt5M
 QcOm9nIJKDrgOvxSb4eGagmYP1K7upMyvhbqGrzTpV0PRYLNiVeLJMAiM2xVrhw9
 T9gNedIrDviUwoMNIWkDTQNobuXafro9Qh/eoXjELNvMKGYVet7Hp7WEwyaHEjuA
 hCgflFH3vmx/7oxQNb92jd2h1HCreX3SpzVY6T49lmAtQHIvzDdlQluiF8Vpgf/K
 CQT3CIGgKiWJ/si185UvIFwjyFdqDeZxIC/s/WD9u4XQP5Wpn3xImEK31/3lN5jw
 FeiehuIP
 =RH8n
 -----END PGP SIGNATURE-----

Merge tag 'v2024.07-rc3' into next

Prepare v2024.07-rc3
2024-05-20 10:16:33 -06:00
Tom Rini
d678a59d2d Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay
Ethernet"' I failed to notice that b4 noticed it was based on next and
so took that as the base commit and merged that part of next to master.

This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing
changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35.

Reported-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-05-19 08:16:36 -06:00
Andrew Davis
42826664e4 arm: mach-k3: Move code specific to a SoC into that SoC's directory
Each SoC now has a directory in mach-k3, let's move the SoC specific
files into their respective directories.

Signed-off-by: Andrew Davis <afd@ti.com>
2024-05-13 16:51:14 -06:00
Wadim Egorov
9419f48dee arm: mach-k3: am642: Provide a way to obtain boot device for non SPLs
Let's provide get_boot_device() for AM64, similar to what we did
in commit 2f9095e2bf59 ("arm: mach-k3: am625: Provide a way to obtain boot
device for non SPLs") for AM62.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-05-10 11:33:00 -06:00
Tom Rini
6c88113229 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.
2024-04-29 10:55:50 -06:00
Wadim Egorov
675575880f 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>
2024-04-29 10:55:45 -06:00
Wadim Egorov
fa29f4b964 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>
2024-04-29 10:55:45 -06:00
Andrew Davis
3d82af15f3 arm: mach-k3: am62ax: Fix typo in ROM data macro name
s/ENTENDED/EXTENDED

Signed-off-by: Andrew Davis <afd@ti.com>
2024-04-29 10:54:03 -06:00
Andrew Davis
4b3706607c 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>
2024-04-29 10:53:56 -06:00
Andrew Davis
adf418d8c1 arm: mach-k3: security: Lower verbosity of cert message for GP
When we find a certificate on an image to be booted on a GP device we
print out a message explaining that the certificate is being skipped.
This message is rather long and is printed for every image. Shorten
the message and make the long version into a debug message.

Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Jonathan Humphreys <j-humphreys@ti.com>
2024-04-17 17:06:13 -06:00
Tom Rini
b566f7d239 Merge patch series "Introduce ICSSG Ethernet driver"
MD Danish Anwar <danishanwar@ti.com> says:

Introduce ICSSG PRUETH support in uboot. The ICSSG driver is used in TI
AM654 SR2.0.

The ICSSG PRU Sub-system runs on EMAC firmware. This series Introduces
support for ICSSG driver in uboot.

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.

To use ICSSG2 ethernet, the ICSSG firmware needs to be loaded to PRU RPROC
cores and RPROC cores need to be booted with the firmware. This step is
done inside driver similar to kernel.

The remoteproc driver uses request_fw_into_buf() API from fs-loader driver
to load and start rproc with the required firmwares.

This series only introduces driver files. The device tree and config
changes to enable ICSSG driver will be introduced later.
2024-04-12 13:59:12 -06:00
MD Danish Anwar
737a668413 net: ti: icssg: Add ICSSG ethernet driver
This is the PRUSS Ethernet driver for TI AM654 SR2.0 and later SoCs with
the ICSSG PRU Sub-system running EMAC firmware. ICSSG Subsystem supports
two slices per instance. This driver caters to both slices / ports of
the icssg subsystem.

Since it is not possible for Ethernet driver to register more than one
port for a given instance, this patch introduces top level PRUETH as
UCLASS_MISC and binds UCLASS_ETH to individual ports in order to support
bringing up more than one Ethernet interface in U-Boot.

Since top level driver is UCLASS_MISC, board files would need to
instantiate the driver explicitly.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
2024-04-12 13:54:43 -06:00
Wadim Egorov
2f9095e2bf arm: mach-k3: am625: Provide a way to obtain boot device for non SPLs
Introduce get_boot_device() to obtain the booting device. Make it also
available for non SPL builds so u-boot can also know the device it is
booting from.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-04-11 20:45:29 -06:00
Wadim Egorov
d1cba4a450 arm: mach-k3: am625: copy bootindex to OCRAM for main domain SPL
Relocate booindex to OCRAM region after it gets opened by TIFS so
the main domain bootloaders can have access to this data.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
2024-04-11 20:45:10 -06:00
Kamlesh Gurudasani
4a0067c857 arm: mach-k3: add support for detecting TIFSSTUB images
Add support for detecting and processing TIFSSTUB images for HS, HSFS
and GP devices.

TIFSSTUB image for related device type will be loaded, rest TIFSSTUB
images will be discarded.

Example, for GP device, tifsstub-gp will be loaded, tifsstub-hs and
tifsstub-fs will be discarded.

Signed-off-by: Kamlesh Gurudasani <kamlesh@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-04-11 20:44:44 -06:00
Marcel Ziswiler
c07bba7a2c verdin-am62: move verdin am62 to OF_UPSTREAM
Move verdin-am62 to OF_UPSTREAM:
- handle the fact that dtbs now have a 'ti/' prefix
- imply OF_UPSTREAM
- remove redundant files from arch/arm/dts leaving only the
  *-u-boot.dtsi files
- update MAINTAINERS file

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2024-04-11 20:44:41 -06:00
Vitor Soares
3206b77c84 arm: mach-k3: common: EFI loader map memory below ram top
During the boot, the EFI loader maps the memory from ram_top to ram_end
as EFI_BOOT_SERVICES_DATA. When LMB does boot_fdt_add_mem_rsv_regions()
to OPTEE, TFA, R5, and M4F DMA/memory "no-map" for the kernel it produces
the following error message:

ERROR: reserving fdt memory region failed (addr=9cb00000 size=100000 flags=4)
ERROR: reserving fdt memory region failed (addr=9cc00000 size=e00000 flags=4)
ERROR: reserving fdt memory region failed (addr=9da00000 size=100000 flags=4)
ERROR: reserving fdt memory region failed (addr=9db00000 size=c00000 flags=4)
ERROR: reserving fdt memory region failed (addr=9e780000 size=80000 flags=4)
ERROR: reserving fdt memory region failed (addr=9e800000 size=1800000 flags=4)

To avoid this, don't flag with EFI_BOOT_SERVICES_DATA the memory from
ram_top to ram_end by the EFI loader.

Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
2024-04-11 15:51:56 -06:00
Joao Paulo Goncalves
5ed961094d arm: mach-k3: am625: Fixup a53 cpu frequency by speed grade
The maximum frequency of the A53 CPU on the AM62 depends on the speed
grade of the SoC. However, this value is hardcoded in the DT for all
AM62 variants, potentially causing specifications to be exceeded. Moreover,
setting a common lower frequency for all variants increases boot time.
To prevent these issues, modify the DT at runtime from the R5 core to
adjust the A53 CPU frequency based on its speed grade.

Suggested-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
2024-04-11 15:50:56 -06:00
Joao Paulo Goncalves
ba26524cad arm: mach-k3: am62: Get a53 max cpu frequency by speed grade
AM62 SoC has multiple speed grades. Add function to return max A53 CPU
frequency based on grade. Fastest grade's max frequency also depends on
PMIC voltage, to simplify implementation use the smaller value.

Suggested-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
2024-04-11 15:50:56 -06:00
MD Danish Anwar
e6ea13eba9 arm: mach-k3: Fix config check for FS_LOADER
load_firmware() API calls fs-loader APIs and checks for CONFIG_FS_LOADER
before calling those APIs. The if check only checks for CONFIG_FS_LOADER
but not for CONFIG_SPL_FS_LOADER.

When CONFIG_FS_LOADER is enabled, load_firmware() API calls fs-loader APIs
but this is done at SPL stage and at this time FS_LOADER is not built yet
as a result we see below build error.

  AR      spl/boot/built-in.o
  LD      spl/u-boot-spl
arm-none-linux-gnueabihf-ld.bfd: arch/arm/mach-k3/common.o: in function
`load_firmware':
/home/danish/workspace/u-boot/arch/arm/mach-k3/common.c:184: undefined
reference to `get_fs_loader'
arm-none-linux-gnueabihf-ld.bfd:
/home/danish/workspace/u-boot/arch/arm/mach-k3/common.c:185: undefined
reference to `request_firmware_into_buf'
make[2]: *** [/home/danish/workspace/u-boot/scripts/Makefile.spl:527:
spl/u-boot-spl] Error 1
make[1]: *** [/home/danish/workspace/u-boot/Makefile:2055:
spl/u-boot-spl] Error 2
make[1]: Leaving directory '/home/danish/uboot_images/am64x/r5'
make: *** [Makefile:177: sub-make] Error 2

Fix this by modifying the if check to CONFIG_IS_ENABLED(FS_LOADER) instead
of IS_ENABLED(CONFIG_FS_LOADER) as the former will check for the
appropriate config option (CONFIG_SPL_FS_LOADER / CONFIG_FS_LOADER) based
on the build stage.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
2024-03-19 16:09:58 -04:00
Bryan Brattlof
c37fda950c arm: mach-k3: fixup whitespace in SPDX License IDs
The SPDX ID format usese a single space used after the
'SPDX-License-Identifier:'. Fix all files that use any other white-space
character other than a single space.

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-03-13 10:10:05 -04:00
Bryan Brattlof
7f88327e94 arch: mach-k3: introduce basic files to support the am62px SoC family
Introduce the basic functions and definitions needed to properly
initialize TI's am62p family of SoCs

Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-03-13 10:10:05 -04:00
Bryan Brattlof
e61755001e arm: mach-k3: invert logic for split DM firmware config
Currently, for the K3 generation of SoCs, there are more SoCs that
utilize the split firmware approach than the combined DMSC firmware.
Invert the logic to avoid adding more and more SoCs to this list.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Acked-by: Andrew Davis <afd@ti.com>
Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-03-13 10:10:04 -04:00
Bryan Brattlof
1bcc7a4d7d arm: mach-k3: am62px: introduce clock and device files for wkup spl
Include the clock and lpsc tree files needed for the wkup spl to
initialize the proper PLLs and power domains to boot the SoC.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-03-13 10:10:04 -04:00
Bryan Brattlof
026c972fa3 soc: add info to identify the am62p SoC family
Include the part number for TI's am62px family of SoCs so we can
properly identify it during boot

Reviewed-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Bryan Brattlof <bb@ti.com>
2024-03-13 10:10:04 -04:00
Tom Rini
20a0ce574d Prepare v2024.04-rc4
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEEGjx/cOCPqxcHgJu/FHw5/5Y0tywFAmXvO2YACgkQFHw5/5Y0
 tyxRagwAtLBR/yehfOY5Zw3dKf8kREedas500ueg7nSwV+V2CZO+cwFLrtSVJhXu
 p6dtX0QZxCYidTfaoUOfGLwgvrJoXD/iY6ws8dzVMa9IX2ez3uZDlsPmQG/y2U4i
 rtDn9YgV8oAnLk4hFaaE5vhWfUmtSy6SvJ/foFeQT0B9Er14ep5AII8L/nUcP53w
 FbJ8UVF92i44+zG/0EjpG2pZeftztnVP4YVhU+mbmLLKP49sbrVwFRlo5t+VlB/j
 Q1/RCgxGMPsUG3iNWqIl6rA3VElcZbUm8+YcAy6GqTLOXPxydwBnZVS5UgYapg7y
 Yqu3IMm0LGdXp4klYcdz0tesuFHWan+j227Tme9OLmHgBYBo1WO6zDCITOW1uNVe
 tf3QjIVlrMV4/zglHP/2iceBO1sS49TuzjctCdEBKXb7vZISxgxS7QwmGVVHeigw
 zF4tw0uuzldi+e1yv9rleTIJBN+OuPqUhsyda2Fxq5a2hKW90hv33zzb7ZN5ZvVm
 GlEzhZ6c
 =CqvA
 -----END PGP SIGNATURE-----

Merge tag 'v2024.04-rc4' into next

Prepare v2024.04-rc4
2024-03-11 15:27:20 -04:00
Wadim Egorov
46b3ff8205 board: phytec: am64x: Add PHYTEC phyCORE-AM64x SoM
Add support for PHYTEC phyCORE-AM64x SoM.

Supported features:
  - 2GB DDR4 RAM
  - eMMC Flash
  - external uSD
  - OSPI NOR Flash
  - debug UART

Product page SoM: https://www.phytec.com/product/phycore-am64x

Device trees were taken from Linux v6.8-rc2.

Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
2024-03-07 07:59:15 -05:00
Tom Rini
6eb682bc7e Merge patch series "Move DRAM address of ATF"
Andrew Davis <afd@ti.com> says:

Explanation for this series is mostly in [4/6]. First 3
patches should be safe to take independent of the last 3.
2024-03-06 09:11:00 -05:00
Andrew Davis
cc0f759ddc arm: mach-k3: Move DRAM address of ATF for AM62/AM62a
The current address of TF-A in DRAM is just below the 512MB address line.
This means if the DRAM in a system is 512MB then TF-A is right at the
end of memory which is often reused, for instance U-Boot relocates itself
here. If a system has less than 512MB then that system wouldn't work at
all as TF-A would fail to load.

To avoid the issues above, move TF-A to the start of DRAM, which doesn't
change from system to system.

As TF-A is position independent, this has no dependency on TF-A. We
also fixup DT as needed when TF-A address is moved, so this change also
has no dependency on Linux and is fully forward/backward compatible.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
2024-03-06 09:09:00 -05:00
Andrew Davis
69a5085219 arm: mach-k3: am62a: Fixup TF-A/OP-TEE reserved-memory node in FDT
The address we load TFA and OP-TEE to is configurable by
CONFIG_K3_{ATF,OPTEE}_LOAD_ADDR, but the DT nodes reserving this memory
are static. Fix that by updating this node when the loaded address
does not match the address in DT.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
2024-03-06 09:09:00 -05:00
Andrew Davis
8b0fc29de0 arm: mach-k3: am62: Fixup TF-A/OP-TEE reserved-memory node in FDT
The address we load TF-A and OP-TEE to is configurable by Kconfig
CONFIG_K3_{ATF,OPTEE}_LOAD_ADDR, but the DT nodes reserving this memory
are often statically defined. As these binaries are dynamically loadable,
and in the case of OP-TEE may not even be loaded at all, hard-coding these
addresses is not a hardware description, but rather a configuration.

If the address that U-Boot loaded TF-A or OP-TEE does not match the
address in hard-coded in DT, then fix that node address. This also handles
the case when no reserved memory for these is provided by DT, which is
more correct as explained above.

Add this fixup function, and enable it for AM62.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-03-06 09:09:00 -05:00
Andrew Davis
2dd31aec9b arm: mach-k3: am62: Enable OF_SYSTEM_SETUP for all boards
The fixups provided by ft_system_setup() are applicable for all AM62 based
boards. Select this at the target selection level for all AM62 boards and
remove it from any specific defconfig.

Signed-off-by: Andrew Davis <afd@ti.com>
2024-03-06 09:09:00 -05:00
Andrew Davis
556683944d arm: mach-k3: Add config option for setting OP-TEE address
Much like we have for ATF, OP-TEE has a standard address that we load
it too and run it from. Add a Kconfig item for this to remove some
hard-coding and allow this address to be more easily changed.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-03-06 09:09:00 -05:00
Andrew Davis
4129bdfbc1 arm: mach-k3: Add default ATF location for AM62/AM62a
There is a default ATF load address that is used for devices that have
ATF running in SRAM. For AM62 and AM62a, ATF runs from DRAM. Instead
of having to override the address in every defconfig, make add a
default for these ATF in DRAM devices.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Bryan Brattlof <bb@ti.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2024-03-06 09:09:00 -05:00
Tom Rini
8b4ac58462 Merge patch series "Enable OSPI on j721e"
Jonathan Humphreys <j-humphreys@ti.com> says:

This series enables OSPI storage and boot.
2024-03-05 08:39:54 -05:00
Jonathan Humphreys
85aca577f6 arm: mach-k3: j721e: Enable OSPI boot
Add boot ROM XSPI bootmode, and set to BOOT_DEVICE_SPI if detected.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
2024-03-05 08:39:49 -05:00
Joao Paulo Goncalves
cc801630b2 arm: mach-k3: am62: Fixup thermal zone critical points
Read the max temperature for the SoC temperature grade from the hardware
and change the critical trip nodes on each thermal zone of FDT at
runtime so they are correct with the hardware value for its grade.

Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-03-04 13:41:04 -05:00
Joao Paulo Goncalves
86e770b3e0 arm: mach-k3: am62: Get soc max temperature by grade
AM62x SoC is available in multiple temperature grade:
- Commercial: 0° to 95° C
- Industrial: -40° to 105° C
- Automotive: -40° to 125° C

Add a new function that returns the am62 max temperature value
accordingly to its temperature grade in Celsius.

Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2024-03-04 13:41:04 -05:00
Andrew Davis
f7a1e8e4e7 arm: mach-k3: Move ARM64 specific code into new arm64 directory
Like we did with R5, move ARM64 code into a specific directory to make
it clear what code is only meant to run on each core type.

Signed-off-by: Andrew Davis <afd@ti.com>
2024-03-04 13:41:04 -05:00