mbox series

[v2,00/10] Introduce initial TI's J784S4 support

Message ID 20230321141028.24456-1-hnagalla@ti.com
Headers show
Series Introduce initial TI's J784S4 support | expand

Message

Hari Nagalla March 21, 2023, 2:10 p.m. UTC
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.
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
* 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

bootlog: https://paste.sr.ht/~hnagalla/f14840abc854519f912923662f1fdc8075d92107

Changes in v2:
- Refactored environement scripts to 'j784s4.env' and removed scripts not
  needed for basic board bootup.
- Imported the J7874S4 basic device tree files from v6.2 linux kernel.
- Moved j784s4 clock definitions and clock data into one patch/commit.
- coalesce board commits into one commit.

Hari Nagalla (10):
  arm: dts: introduce j784s4 dtbs from linux kernel
  arm: dts: introduce j784s4 u-boot dtbs
  arm: K3: Add basic support for J784S4 SoC definition
  drivers: dma: Add support for J784S4
  clk: clk-k3: Add support for J784S4 SoC
  power: domain: ti: Add support for J784S4 SoC
  ram: k3-ddrss: Add support for J784S4 SoC
  soc: ti: k3-socinfo: Add entry for J784S4 SoC
  board: ti: j784s4: Add board support for J784S4 SoC
  dt-bindings: ti-serdes-mux: Add defines for J784S4 SoC

 arch/arm/dts/Makefile                         |    2 +
 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        |  135 +
 arch/arm/dts/k3-j784s4-evm.dts                |  196 +
 arch/arm/dts/k3-j784s4-main.dtsi              | 1007 ++
 arch/arm/dts/k3-j784s4-mcu-wakeup.dtsi        |  311 +
 arch/arm/dts/k3-j784s4-r5-evm.dts             |  209 +
 arch/arm/dts/k3-j784s4.dtsi                   |  287 +
 arch/arm/mach-k3/Kconfig                      |   16 +-
 arch/arm/mach-k3/Makefile                     |    2 +
 arch/arm/mach-k3/arm64-mmu.c                  |   41 +
 arch/arm/mach-k3/include/mach/hardware.h      |    4 +
 .../mach-k3/include/mach/j784s4_hardware.h    |   41 +
 arch/arm/mach-k3/include/mach/j784s4_spl.h    |   46 +
 arch/arm/mach-k3/include/mach/spl.h           |    6 +-
 arch/arm/mach-k3/j784s4/Makefile              |    5 +
 arch/arm/mach-k3/j784s4/clk-data.c            |  428 +
 arch/arm/mach-k3/j784s4/dev-data.c            |   97 +
 arch/arm/mach-k3/j784s4_init.c                |  319 +
 board/ti/j784s4/Kconfig                       |   61 +
 board/ti/j784s4/MAINTAINERS                   |    7 +
 board/ti/j784s4/Makefile                      |    8 +
 board/ti/j784s4/evm.c                         |  105 +
 board/ti/j784s4/j784s4.env                    |  108 +
 configs/j784s4_evm_a72_defconfig              |  213 +
 configs/j784s4_evm_r5_defconfig               |  179 +
 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         |   35 +
 drivers/power/domain/ti-power-domain.c        |    6 +
 drivers/ram/Kconfig                           |    2 +-
 drivers/soc/soc_ti_k3.c                       |    6 +
 include/configs/j784s4_evm.h                  |   49 +
 include/dt-bindings/mux/ti-serdes.h           |   62 +
 include/dt-bindings/pinctrl/k3.h              |    3 +
 include/k3-clk.h                              |    1 +
 include/k3-dev.h                              |    1 +
 41 files changed, 21781 insertions(+), 8 deletions(-)
 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-evm.dts
 create mode 100644 arch/arm/dts/k3-j784s4-main.dtsi
 create mode 100644 arch/arm/dts/k3-j784s4-mcu-wakeup.dtsi
 create mode 100644 arch/arm/dts/k3-j784s4-r5-evm.dts
 create mode 100644 arch/arm/dts/k3-j784s4.dtsi
 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/Makefile
 create mode 100644 arch/arm/mach-k3/j784s4/clk-data.c
 create mode 100644 arch/arm/mach-k3/j784s4/dev-data.c
 create mode 100644 arch/arm/mach-k3/j784s4_init.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/evm.c
 create mode 100644 board/ti/j784s4/j784s4.env
 create mode 100644 configs/j784s4_evm_a72_defconfig
 create mode 100644 configs/j784s4_evm_r5_defconfig
 create mode 100644 drivers/dma/ti/k3-psil-j784s4.c
 create mode 100644 include/configs/j784s4_evm.h

Comments

Tom Rini March 21, 2023, 3:52 p.m. UTC | #1
On Tue, Mar 21, 2023 at 09:10:20AM -0500, Hari Nagalla wrote:

> Introduce the base dts files needed for u-boot or to augment the linux
> dtbs for use in the u-boot-spl and u-boot binaries.
> 
> Signed-off-by: Apurva Nandan <a-nandan@ti.com>
> Signed-off-by: Hari Nagalla <hnagalla@ti.com>
> ---
>  arch/arm/dts/Makefile                        |    2 +
>  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       |  135 +
>  arch/arm/dts/k3-j784s4-r5-evm.dts            |  209 +
>  5 files changed, 17961 insertions(+)
>  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

Good news/bad news.

[snip]
> +	msmc0: msmc {
[snip]
> +		u-boot,dm-spl;

This is now "bootph-pre-ram" and gets sent upstream to Linux, as the
binding is there now. Please do that and then rework the first patch to
be a sync from -next or similar, that contains these changes.

And yes, this is the first example I found of properties that should be
bootph-* now instead, and there's some bindings you have in-progress and
so yes, will include these for now in the -u-boot.dtsi file. But others
don't, and this needs to be on top of -next and CI passing.
Enric Balletbo i Serra Aug. 22, 2023, 8:18 a.m. UTC | #2
Hi Hari,

On Tue, Mar 21, 2023 at 3:12 PM Hari Nagalla <hnagalla@ti.com> 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.
> 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
> * 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
>
> bootlog: https://paste.sr.ht/~hnagalla/f14840abc854519f912923662f1fdc8075d92107
>

Many thanks for this patchset.

There is any plan to rebase all this patchset, fix the comments and
send it again to upstream? I'd be really interested in help on this
patchset.

Thanks,
  Enric

> Changes in v2:
> - Refactored environement scripts to 'j784s4.env' and removed scripts not
>   needed for basic board bootup.
> - Imported the J7874S4 basic device tree files from v6.2 linux kernel.
> - Moved j784s4 clock definitions and clock data into one patch/commit.
> - coalesce board commits into one commit.
>
> Hari Nagalla (10):
>   arm: dts: introduce j784s4 dtbs from linux kernel
>   arm: dts: introduce j784s4 u-boot dtbs
>   arm: K3: Add basic support for J784S4 SoC definition
>   drivers: dma: Add support for J784S4
>   clk: clk-k3: Add support for J784S4 SoC
>   power: domain: ti: Add support for J784S4 SoC
>   ram: k3-ddrss: Add support for J784S4 SoC
>   soc: ti: k3-socinfo: Add entry for J784S4 SoC
>   board: ti: j784s4: Add board support for J784S4 SoC
>   dt-bindings: ti-serdes-mux: Add defines for J784S4 SoC
>
>  arch/arm/dts/Makefile                         |    2 +
>  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        |  135 +
>  arch/arm/dts/k3-j784s4-evm.dts                |  196 +
>  arch/arm/dts/k3-j784s4-main.dtsi              | 1007 ++
>  arch/arm/dts/k3-j784s4-mcu-wakeup.dtsi        |  311 +
>  arch/arm/dts/k3-j784s4-r5-evm.dts             |  209 +
>  arch/arm/dts/k3-j784s4.dtsi                   |  287 +
>  arch/arm/mach-k3/Kconfig                      |   16 +-
>  arch/arm/mach-k3/Makefile                     |    2 +
>  arch/arm/mach-k3/arm64-mmu.c                  |   41 +
>  arch/arm/mach-k3/include/mach/hardware.h      |    4 +
>  .../mach-k3/include/mach/j784s4_hardware.h    |   41 +
>  arch/arm/mach-k3/include/mach/j784s4_spl.h    |   46 +
>  arch/arm/mach-k3/include/mach/spl.h           |    6 +-
>  arch/arm/mach-k3/j784s4/Makefile              |    5 +
>  arch/arm/mach-k3/j784s4/clk-data.c            |  428 +
>  arch/arm/mach-k3/j784s4/dev-data.c            |   97 +
>  arch/arm/mach-k3/j784s4_init.c                |  319 +
>  board/ti/j784s4/Kconfig                       |   61 +
>  board/ti/j784s4/MAINTAINERS                   |    7 +
>  board/ti/j784s4/Makefile                      |    8 +
>  board/ti/j784s4/evm.c                         |  105 +
>  board/ti/j784s4/j784s4.env                    |  108 +
>  configs/j784s4_evm_a72_defconfig              |  213 +
>  configs/j784s4_evm_r5_defconfig               |  179 +
>  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         |   35 +
>  drivers/power/domain/ti-power-domain.c        |    6 +
>  drivers/ram/Kconfig                           |    2 +-
>  drivers/soc/soc_ti_k3.c                       |    6 +
>  include/configs/j784s4_evm.h                  |   49 +
>  include/dt-bindings/mux/ti-serdes.h           |   62 +
>  include/dt-bindings/pinctrl/k3.h              |    3 +
>  include/k3-clk.h                              |    1 +
>  include/k3-dev.h                              |    1 +
>  41 files changed, 21781 insertions(+), 8 deletions(-)
>  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-evm.dts
>  create mode 100644 arch/arm/dts/k3-j784s4-main.dtsi
>  create mode 100644 arch/arm/dts/k3-j784s4-mcu-wakeup.dtsi
>  create mode 100644 arch/arm/dts/k3-j784s4-r5-evm.dts
>  create mode 100644 arch/arm/dts/k3-j784s4.dtsi
>  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/Makefile
>  create mode 100644 arch/arm/mach-k3/j784s4/clk-data.c
>  create mode 100644 arch/arm/mach-k3/j784s4/dev-data.c
>  create mode 100644 arch/arm/mach-k3/j784s4_init.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/evm.c
>  create mode 100644 board/ti/j784s4/j784s4.env
>  create mode 100644 configs/j784s4_evm_a72_defconfig
>  create mode 100644 configs/j784s4_evm_r5_defconfig
>  create mode 100644 drivers/dma/ti/k3-psil-j784s4.c
>  create mode 100644 include/configs/j784s4_evm.h
>
> --
> 2.17.1
>
Hari Nagalla Aug. 23, 2023, 10:09 p.m. UTC | #3
On 8/22/23 03:18, Enric Balletbo i Serra wrote:
>> * 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
>>
>> bootlog:https://paste.sr.ht/~hnagalla/f14840abc854519f912923662f1fdc8075d92107
>>
> Many thanks for this patchset.
> 
> There is any plan to rebase all this patchset, fix the comments and
> send it again to upstream? I'd be really interested in help on this
> patchset.
> 
> Thanks,
>    Enric
> 
Hi Enric,

Yes, we will rebase and send the patch set shortly.

Sorry for the delay.

Thanks
Hari
Nishanth Menon Aug. 24, 2023, 12:12 a.m. UTC | #4
On 17:09-20230823, Hari Nagalla wrote:
> On 8/22/23 03:18, Enric Balletbo i Serra wrote:
> > > * 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
> > > 
> > > bootlog:https://paste.sr.ht/~hnagalla/f14840abc854519f912923662f1fdc8075d92107
> > > 
> > Many thanks for this patchset.
> > 
> > There is any plan to rebase all this patchset, fix the comments and
> > send it again to upstream? I'd be really interested in help on this
> > patchset.
> > 
> > Thanks,
> >    Enric
> > 
> Hi Enric,
> 
> Yes, we will rebase and send the patch set shortly.
> 
> Sorry for the delay.

Let us ensure we have the proper cleanups done for other platforms,
documentation AND bootstd support as default.