Hi Marcel,

On 27/02/24 21:45, Marcel Ziswiler wrote:
Hi Apurva

On Sat, 2024-02-24 at 01:51 +0530, Apurva Nandan wrote:
Hello Everyone!

This series will introduce basic support (SD and UART) support for Texas
Instruments J784S4 EVM.

The J784S4 SoC device tree patches are taken from kernel patch submissions
and will be updated as they are accepted and merged to the kernel tree.


Sorry about that. I didn't update that part of the cover letter. So now, we will be using Linux dts as a git subtree inside U-Boot. And hence, this series doesn't has a Linux DTS sync/copy patch.

You can get all details in this series:
https://lore.kernel.org/all/20240222093607.3085545-1-sumit.g...@linaro.org/#r

This patch set does not include any such, right?

Anyway, for my tests I took them from linux-next on kernel.org.

However, I could not get the SD card working apart from it booting U-Boot off 
of it:

U-Boot SPL 2024.04-rc3-00015-g7186697f1ff (Feb 27 2024 - 14:27:29 +0100)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.9--v09.01.09 (Kool Koala)')
Initialized 4 DRAM controllers
SPL initial stack usage: 13416 bytes
Trying to boot from MMC2
Authentication passed
Authentication passed
Authentication passed
Loading Environment from nowhere... OK
Authentication passed
Authentication passed
Starting ATF on ARM64 core...
NOTICE: BL31: v2.10.0(release):v2.10.0-412-g885e93f90
NOTICE:  BL31: Built : 09:48:15, Feb 27 2024
I/TC:
I/TC: OP-TEE version: 4.1.0-140-g4078bcde9 (gcc version 13.2.1 20231009 (Arm GNU
  Toolchain 13.2.rel1 (Build arm-13.7))) #1 Tue Feb 27 08:54:24 UTC 2024 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/
porting_guidelines.html
I/TC: Primary CPU initializing
I/TC: GIC redistributor base address not provided
I/TC: Assuming default GIC group status and modifier
I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.9--v09.01.09 (Kool Koala)')
I/TC: HUK Initialized
I/TC: Activated SA2UL device
I/TC: Enabled firewalls for SA2UL TRNG device
I/TC: SA2UL TRNG initialized
I/TC: SA2UL Drivers initialized
I/TC: Primary CPU switching to normal world boot
U-Boot SPL 2024.04-rc3-00015-g7186697f1ff-dirty (Feb 27 2024 - 16:40:07 +0100)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.1.9--v09.01.09 (Kool Koala)')
Trying to boot from MMC2
Authentication passed
Authentication passed


U-Boot 2024.04-rc3-00015-g7186697f1ff-dirty (Feb 27 2024 - 16:40:07 +0100)

SoC:   J784S4 SR1.0 HS-FS
Model: Texas Instruments J784S4 EVM
DRAM:  2 GiB (effective 32 GiB)
Core:  87 devices, 30 uclasses, devicetree: separate
Flash: 0 Bytes
MMC:   mmc@4f80000: 0, mmc@4fb0000: 1
Loading Environment from nowhere... OK
In:    serial@2880000
Out:   serial@2880000
Err:   serial@2880000
am65_cpsw_nuss ethernet@46000000: K3 CPSW: nuss_ver: 0x6BA02102 cpsw_ver: 
0x6BA82102 ale_ver: 0x00293904
Ports:1 mdio_freq:1000000
Net:   eth0: ethernet@46000000port@1
Hit any key to stop autoboot:  0
=> mmc dev 0
switch to partitions #0, OK
mmc0(part 0) is current device
=> mmc info
Device: mmc@4f80000
Manufacturer ID: 13
OEM: 4e
Name: G1M15L
Bus Speed: 200000000
Mode: HS400 (200MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 29.6 GiB
Bus Width: 8-bit DDR
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 29.6 GiB WRREL
Boot Capacity: 31.5 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected
=> mmc dev 1
i2c_write: error waiting for data ACK (status=0x116)
pca953x gpio@22: Error reading output register
Card did not respond to voltage select! : -110
mmc_init: -95, time 114
=>

Not sure what the issue may be.


Which platform are you testing this on? J784S4 EVM or AM69-SK?

As per comments on v8, I have moved from config fragments to having #include in defconfig files. So, to build for AM69-SK, you need to use am69_sk_r5_defconfig and am69_sk_a72_defconfig . And for the J784S4 EVM, the defconfigs will stay same: j784s4_evm_r5_defconfig and j784s4_evm_a72_defconfig .


All other patches are specific to SPL and u-boot and do not have
dependency on other trees. Appreciate a review for acceptance to u-boot
tree.

Here are some of the salient features of the J784S4 automotive grade
application processor:

The J784S4 SoC belongs to the K3 Multicore SoC architecture
platform, providing advanced system integration in automotive,
ADAS and industrial applications requiring AI at the network edge.
This SoC extends the K3 Jacinto 7 family of SoCs with focus on
raising performance and integration while providing interfaces,
memory architecture and compute performance for multi-sensor, high
concurrency applications.

Some highlights of this SoC are:
* Up to 8 Cortex-A72s, four clusters of lockstep capable dual Cortex-R5F MCUs,
   4 C7x floating point vector DSPs with Matrix Multiply Accelerator(MMA) for
   deep learning and CNN.
* 3D GPU: Automotive grade IMG BXS-4-64 MC1
* Vision Processing Accelerator (VPAC) with image signal processor and Depth
   and Motion Processing Accelerator (DMPAC)
* Three CSI2.0 4L RX plus two CSI2.0 4L TX, two DSI Tx, one eDP/DP and one
   DPI interface.
* Integrated gigabit ethernet switch, up to 8 ports (TDA4VH), two ports
   support 10Gb USXGMII; Two 4 lane PCIe-GEN3 controllers, USB3.0 Dual-role
   device subsystems, Up to 20 MCANs, among other peripherals.

See J784S4 Technical Reference Manual (SPRUJ52 - JUNE 2022)
for further details: http://www.ti.com/lit/zip/spruj52

In addtion, the J784S4 EVM board is designed for TI J784S4 SoC. It
supports the following interfaces:
* 32 GB DDR4 RAM
* x2 Gigabit Ethernet interfaces capable of working in Switch and MAC mode
* x1 Input Audio Jack, x1 Output Audio Jack
* x1 USB2.0 Hub with two Type A host and x1 USB 3.1 Type-C Port
* x2 4L PCIe connector
* x1 UHS-1 capable micro-SD card slot
* 512 Mbit OSPI flash, 1 Gbit Octal NAND flash, 512 Mbit QSPI flash,
   UFS flash.
* x6 UART through UART-USB bridge
* XDS110 for onboard JTAG debug using USB
* Temperature sensors, user push buttons and LEDs
* 40-pin User Expansion Connector
* x2 ENET Expansion Connector, x1 GESI expander, x2 Display connector
* x1 15-pin CSI header
* x6 MCAN instances

Schematics: https://www.ti.com/lit/zip/sprr458

AM69 SD mode bootlog:
https://gist.githubusercontent.com/apurvanandan1997/1b2c55d0204ff0f5a47ebbc196a97e99/raw/
J784S4 SD mode bootlog:
https://gist.githubusercontent.com/apurvanandan1997/5e2ef85ee4322798d22b57a60dc917db/raw/
eMMC UDA moode bootlog:
https://gist.githubusercontent.com/apurvanandan1997/3cffada252d50a8aa0c00a91f1f2f856/raw/

Note: This series is dependent on the following series for OF_UPSTREAM support
https://lore.kernel.org/all/20240222093607.3085545-1-sumit.g...@linaro.org/

And, '[PATCH 01/15] Makefile: remove hardcoded device tree source directory' 
has been
cherry-picked from PATCH 11 of 
https://lore.kernel.org/all/20240201030634.1120963-16...@ti.com/ by Bryan
Brattlof

Changes in v10:
1) Fixed build failure due to missing OF_UPSTREAM in a72 defconfigs
2) Updated paths of board dtbs in binman.dtsi, CONFIG_OF_LIST and 
CONFIG_DEFAULT_DEVICE_TREE

Changes in v9:
1) Added support for OF_UPSTREAM and removed Linux dts copy/sync patches
2) Fixed DRAM enumeration algorithm in j784s4_init.c by adding max no. of 
controllers
3) Squashed bootph-all property of memory node into appropriate patch
4) Moved DDR changes out of the DMA patch
5) Fixed commit messages, MAINTAINERS file, and removed unnecessary C headers
6) Added comment for WKUP_UART0
7) Used #include for defconfig for AM69-SK platform instead of config fragments
8) Fixed J784S4 EVM boot switch nameing in doc

Link to v8:
https://lore.kernel.org/u-boot/20240119175043.3904751-1-a-nan...@ti.com/

Changes in v8:
1) Squashed Linux am69-sk and j784s4-evm dts patches into one
2) Sorted config addition of SoC in arm/mach-K3/Kconfig
3) Updated commit messages according to the reviews
4) Removed #inlcude <config.h>
5) Removed k3_mmc_stop_clock and k3_mmc_restart_clock
6) Moved board_init_f logic to separate smaller functions
7) Removed J784S4 EVM specific Kconfig options in j784s4_int.c
8) Cleaned up emmc boot flow based on commit 
66459346463439c72f84cfd1f985496b8a6142d8
9) Removed the dependency of findfdt and updated to ti_set_fdt_env
10) Updated copyright messages
11) Did cleanup/formatting of yaml files, removing linting errors
12) Removed k3-am69-sk specific things from k3-j784s4-binman.dtsi
13) Changed OF_LIST to a single dtb
14) Added bootph-all tag in EVM and SK dts instead of u-boot.dtsi
15) Trimmed the defconfig files to minimal
16) Merged the MAINTAINER file in right patches
17) Updated OpenOCD tag in U-Boot doc
18) And fixed other formatting mistakes.

Link to v7:
https://lore.kernel.org/u-boot/20231219191537.4039361-1-a-nan...@ti.com/

Changes in v7:
1) Moved to unified memory map in arm64-mmu.c based on
    https://lore.kernel.org/all/20231128170528.407707-1-...@ti.com/
2) Used ARRAY_SIZE in clk-data.c and dev-data.c
3) Removed I2C board detect from j784s4_init.c
4) Rebased to latest next

Link to v6:
https://lore.kernel.org/all/20231206123753.1486031-1-a-nan...@ti.com/

Changes in v6:
1) Move bootph-all of memory node to u-boot.dtsi
2) Used a while loop for DRAM controller init, instead of hard-coding for 4 DRAM
3) Fixed build error by adding board/ti/j784s4/Kconfig
4) Trimmed out j784s4_evm.h
5) Fixed checkpatch warnings

Link to v5:
https://patchwork.ozlabs.org/project/uboot/cover/20231130115552.3580995-1-a-nan...@ti.com/

Changes in v5:
1) Incorporated Andrew Davis' "Move R5 specific code into new r5/ directory" and
    "Move board selection to mach-k3" series changes.
2) Incorporated Neha Francis' "Move to using templated FITs" series changes.
3) Synced device tree files with Linux v6.7-rc1
4) Changed ti_mmc to mmc1 target from bootstd
5) Updated doc based on review comments
6) Removed remoteproc support from the series
7) Splitted board files patch into smaller patches
8) Trimmed j784s4.env to necessary variables
9) Used fdtdec_setup_mem_size_base fdtdec_setup_memory_banksize in evm.c
10) Trimmed down evm.c to essential header files.
11) Switched to multi-dtb fit compilation with config fragments

Link to v4:
https://lore.kernel.org/u-boot/20231001165545.494212-1-a-nan...@ti.com/

Changes in v4:
1) Cleaned up Copyright and SPDX identifiers
2) Synced the device trees to Linux v6.6-rc1 tag
3) Added cleanup patch for sorting SoC JTAG ID entries
4) Removed EEPROM board detect from evm.c and added am69 config fragments
5) Updated MAINTAINERS files and commit messages
6) Removed struct renaming in ti_k3_r5f_rproc driver

Link to v3:
https://lore.kernel.org/u-boot/20230908110551.861575-1-a-nan...@ti.com/

Changes in v3:
1) Added AM69 SK support in the series
2) Switched from distroboot to bootstd support
3) Added remoteproc support for J784S4
4) Added documentation for both SoCs
5) Added binman support
6) Removed unnecessarry nodes from r5-evm.dts and evm-u-boot.dtsi
7) Added HS device support
8) Added env file for environement variables
9) Removed ti-serdes-mux bindings
10) Cleaned up all files and synced with latest
11) Addressed all previous review comments

Note: The base dts files have been sync from next-20230905 linux tag as per 
review comment received
on previous re-roll:
https://lore.kernel.org/u-boot/20230321155227.GV8135@bill-the-cat/

Link to v2:
https://lore.kernel.org/u-boot/20230321141028.24456-1-hnaga...@ti.com/

Apurva Nandan (12):
   arm: mach-k3: Kconfig: Sort SOC_K3 config entries
   arm: mach-k3: Add basic support for J784S4 SoC definition
   arm: mach-k3: Sort SoC JTAG_ID entries
   soc: ti: k3-socinfo: Add entry for J784S4 SoC
   arm: mach-k3: j784s4: Add clk and power support
   drivers: dma: Add support for J784S4 SoC
   board: ti: j784s4: Add board support for J784S4 EVM
   board: ti: j748s4: Add board config yaml files
   board: ti: j784s4: Add boot environment variables
   arm: dts: Introduce j784s4 u-boot dts files
   configs: j784s4_evm: Add defconfig for J784S4 EVM board
   doc: board: ti: k3: Add J784S4 EVM and AM69 SK documentation

Bryan Brattlof (1):
   Makefile: remove hardcoded device tree source directory

Dasnavis Sabiya (2):
   arm: dts: Introduce am69-sk u-boot dts files
   configs: am69_sk: Add defconfig for AM69 SK board

  Makefile                                      |   18 +-
  arch/arm/dts/Makefile                         |    4 +
  arch/arm/dts/k3-am69-r5-sk.dts                |  106 +
  arch/arm/dts/k3-am69-sk-u-boot.dtsi           |   54 +
  arch/arm/dts/k3-j784s4-binman.dtsi            |  345 +
  arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi  | 8757 ++++++++++++++++
  arch/arm/dts/k3-j784s4-ddr.dtsi               | 8858 +++++++++++++++++
  arch/arm/dts/k3-j784s4-evm-u-boot.dtsi        |   31 +
  arch/arm/dts/k3-j784s4-r5-evm.dts             |  106 +
  arch/arm/mach-k3/Kconfig                      |   33 +-
  arch/arm/mach-k3/Makefile                     |    2 +
  arch/arm/mach-k3/include/mach/hardware.h      |   13 +-
  .../mach-k3/include/mach/j784s4_hardware.h    |   59 +
  arch/arm/mach-k3/include/mach/j784s4_spl.h    |   47 +
  arch/arm/mach-k3/include/mach/spl.h           |    4 +
  arch/arm/mach-k3/j784s4/Kconfig               |   34 +
  arch/arm/mach-k3/j784s4_fdt.c                 |   15 +
  arch/arm/mach-k3/j784s4_init.c                |  310 +
  arch/arm/mach-k3/r5/Makefile                  |    1 +
  arch/arm/mach-k3/r5/j784s4/Makefile           |    7 +
  arch/arm/mach-k3/r5/j784s4/clk-data.c         |  428 +
  arch/arm/mach-k3/r5/j784s4/dev-data.c         |   98 +
  board/ti/j784s4/Kconfig                       |   37 +
  board/ti/j784s4/MAINTAINERS                   |   21 +
  board/ti/j784s4/Makefile                      |    7 +
  board/ti/j784s4/board-cfg.yaml                |   37 +
  board/ti/j784s4/evm.c                         |   41 +
  board/ti/j784s4/j784s4.env                    |   17 +
  board/ti/j784s4/pm-cfg.yaml                   |   13 +
  board/ti/j784s4/rm-cfg.yaml                   | 3058 ++++++
  board/ti/j784s4/sec-cfg.yaml                  |  380 +
  board/ti/j784s4/tifs-rm-cfg.yaml              | 2656 +++++
  configs/am69_sk_a72_defconfig                 |    9 +
  configs/am69_sk_r5_defconfig                  |   10 +
  configs/j784s4_evm_a72_defconfig              |  159 +
  configs/j784s4_evm_r5_defconfig               |  153 +
  doc/board/ti/j784s4_evm.rst                   |  299 +
  doc/board/ti/k3.rst                           |    1 +
  drivers/clk/ti/clk-k3.c                       |    6 +
  drivers/dma/ti/Makefile                       |    1 +
  drivers/dma/ti/k3-psil-j784s4.c               |  166 +
  drivers/dma/ti/k3-psil-priv.h                 |    1 +
  drivers/dma/ti/k3-psil.c                      |    2 +
  drivers/firmware/ti_sci_static_data.h         |   34 +
  drivers/power/domain/ti-power-domain.c        |    6 +
  drivers/ram/Kconfig                           |    2 +-
  drivers/soc/soc_ti_k3.c                       |    3 +
  include/configs/j784s4_evm.h                  |   15 +
  include/k3-clk.h                              |    1 +
  include/k3-dev.h                              |    1 +
  scripts/Makefile.spl                          |   17 +-
  51 files changed, 26455 insertions(+), 28 deletions(-)
  create mode 100644 arch/arm/dts/k3-am69-r5-sk.dts
  create mode 100644 arch/arm/dts/k3-am69-sk-u-boot.dtsi
  create mode 100644 arch/arm/dts/k3-j784s4-binman.dtsi
  create mode 100644 arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
  create mode 100644 arch/arm/dts/k3-j784s4-ddr.dtsi
  create mode 100644 arch/arm/dts/k3-j784s4-evm-u-boot.dtsi
  create mode 100644 arch/arm/dts/k3-j784s4-r5-evm.dts
  create mode 100644 arch/arm/mach-k3/include/mach/j784s4_hardware.h
  create mode 100644 arch/arm/mach-k3/include/mach/j784s4_spl.h
  create mode 100644 arch/arm/mach-k3/j784s4/Kconfig
  create mode 100644 arch/arm/mach-k3/j784s4_fdt.c
  create mode 100644 arch/arm/mach-k3/j784s4_init.c
  create mode 100644 arch/arm/mach-k3/r5/j784s4/Makefile
  create mode 100644 arch/arm/mach-k3/r5/j784s4/clk-data.c
  create mode 100644 arch/arm/mach-k3/r5/j784s4/dev-data.c
  create mode 100644 board/ti/j784s4/Kconfig
  create mode 100644 board/ti/j784s4/MAINTAINERS
  create mode 100644 board/ti/j784s4/Makefile
  create mode 100644 board/ti/j784s4/board-cfg.yaml
  create mode 100644 board/ti/j784s4/evm.c
  create mode 100644 board/ti/j784s4/j784s4.env
  create mode 100644 board/ti/j784s4/pm-cfg.yaml
  create mode 100644 board/ti/j784s4/rm-cfg.yaml
  create mode 100644 board/ti/j784s4/sec-cfg.yaml
  create mode 100644 board/ti/j784s4/tifs-rm-cfg.yaml
  create mode 100644 configs/am69_sk_a72_defconfig
  create mode 100644 configs/am69_sk_r5_defconfig
  create mode 100644 configs/j784s4_evm_a72_defconfig
  create mode 100644 configs/j784s4_evm_r5_defconfig
  create mode 100644 doc/board/ti/j784s4_evm.rst
  create mode 100644 drivers/dma/ti/k3-psil-j784s4.c
  create mode 100644 include/configs/j784s4_evm.h
Cheers

Marcel

--
Regards,
Apurva Nandan,
Texas Instruments.

Reply via email to