The K3 AM65x family of SoCs have the next generation of the PRU-ICSS processor subsystem capable of supporting Gigabit Ethernet, and is commonly referred to as ICSSG. These SoCs contain typically three ICSSG instances named ICSSG0, ICSSG1 and ICSSG2. The three ICSSGs are identical to each other for the most part with minor SoC integration differences and capabilities. The ICSSG2 supports slightly enhanced features like SGMII mode Ethernet, while the ICSS0 and ICSSG1 instances are limited to MII mode only. The ICSSGs on K3 AM65x SoCs are in general super-sets of the PRUSS on the AM57xx/66AK2G SoCs. They include two additional auxiliary PRU cores called RTUs and few other additional sub-modules. The interrupt integration is also different on the K3 AM65x SoCs and are propagated through various SoC-level Interrupt Router and Interrupt Aggregator blocks. Other IP level differences include different constant tables, differences in system event interrupt input sources etc. They also do not have a programmable module reset line like those present on AM33xx/AM43xx SoCs. The modules are reset just like any other IP with the SoC's global cold/warm resets. The existing pruss platform driver has been updated to support these new ICSSG instances through new AM65x specific compatibles. A build dependency with ARCH_K3 is added to enable building all the existing PRUSS platform drivers for this ARMv8 platform. Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Grzegorz Jaszczyk <grzegorz.jaszczyk@linaro.org> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
122 lines
3.5 KiB
Plaintext
122 lines
3.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
# 64-bit ARM SoCs from TI
|
|
if ARM64
|
|
|
|
if ARCH_K3
|
|
|
|
config ARCH_K3_AM6_SOC
|
|
bool "K3 AM6 SoC"
|
|
help
|
|
Enable support for TI's AM6 SoC Family support
|
|
|
|
config ARCH_K3_J721E_SOC
|
|
bool "K3 J721E SoC"
|
|
help
|
|
Enable support for TI's J721E SoC Family support
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
#
|
|
# TI SOC drivers
|
|
#
|
|
menuconfig SOC_TI
|
|
bool "TI SOC drivers support"
|
|
|
|
if SOC_TI
|
|
|
|
config KEYSTONE_NAVIGATOR_QMSS
|
|
tristate "Keystone Queue Manager Sub System"
|
|
depends on ARCH_KEYSTONE
|
|
help
|
|
Say y here to support the Keystone multicore Navigator Queue
|
|
Manager support. The Queue Manager is a hardware module that
|
|
is responsible for accelerating management of the packet queues.
|
|
Packets are queued/de-queued by writing/reading descriptor address
|
|
to a particular memory mapped location in the Queue Manager module.
|
|
|
|
If unsure, say N.
|
|
|
|
config KEYSTONE_NAVIGATOR_DMA
|
|
tristate "TI Keystone Navigator Packet DMA support"
|
|
depends on ARCH_KEYSTONE
|
|
help
|
|
Say y tp enable support for the Keystone Navigator Packet DMA on
|
|
on Keystone family of devices. It sets up the dma channels for the
|
|
Queue Manager Sub System.
|
|
|
|
If unsure, say N.
|
|
|
|
config AMX3_PM
|
|
tristate "AMx3 Power Management"
|
|
depends on SOC_AM33XX || SOC_AM43XX
|
|
depends on WKUP_M3_IPC && TI_EMIF_SRAM && SRAM && RTC_DRV_OMAP
|
|
help
|
|
Enable power management on AM335x and AM437x. Required for suspend to mem
|
|
and standby states on both AM335x and AM437x platforms and for deeper cpuidle
|
|
c-states on AM335x. Also required for rtc and ddr in self-refresh low
|
|
power mode on AM437x platforms.
|
|
|
|
config WKUP_M3_IPC
|
|
tristate "TI AMx3 Wkup-M3 IPC Driver"
|
|
depends on WKUP_M3_RPROC
|
|
depends on OMAP2PLUS_MBOX
|
|
help
|
|
TI AM33XX and AM43XX have a Cortex M3, the Wakeup M3, to handle
|
|
low power transitions. This IPC driver provides the necessary API
|
|
to communicate and use the Wakeup M3 for PM features like suspend
|
|
resume and boots it using wkup_m3_rproc driver.
|
|
|
|
config TI_SCI_PM_DOMAINS
|
|
tristate "TI SCI PM Domains Driver"
|
|
depends on TI_SCI_PROTOCOL
|
|
depends on PM_GENERIC_DOMAINS
|
|
help
|
|
Generic power domain implementation for TI device implementing
|
|
the TI SCI protocol.
|
|
|
|
To compile this as a module, choose M here. The module will be
|
|
called ti_sci_pm_domains. Note this is needed early in boot before
|
|
rootfs may be available.
|
|
|
|
config TI_K3_RINGACC
|
|
bool "K3 Ring accelerator Sub System"
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
depends on TI_SCI_INTA_IRQCHIP
|
|
help
|
|
Say y here to support the K3 Ring accelerator module.
|
|
The Ring Accelerator (RINGACC or RA) provides hardware acceleration
|
|
to enable straightforward passing of work between a producer
|
|
and a consumer. There is one RINGACC module per NAVSS on TI AM65x SoCs
|
|
If unsure, say N.
|
|
|
|
config TI_K3_SOCINFO
|
|
bool
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
select SOC_BUS
|
|
select MFD_SYSCON
|
|
help
|
|
Include support for the SoC bus socinfo for the TI K3 Multicore SoC
|
|
platforms to provide information about the SoC family and
|
|
variant to user space.
|
|
|
|
config TI_PRUSS
|
|
tristate "TI PRU-ICSS Subsystem Platform drivers"
|
|
depends on SOC_AM33XX || SOC_AM43XX || SOC_DRA7XX || ARCH_KEYSTONE || ARCH_K3
|
|
select MFD_SYSCON
|
|
help
|
|
TI PRU-ICSS Subsystem platform specific support.
|
|
|
|
Say Y or M here to support the Programmable Realtime Unit (PRU)
|
|
processors on various TI SoCs. It's safe to say N here if you're
|
|
not interested in the PRU or if you are unsure.
|
|
|
|
endif # SOC_TI
|
|
|
|
config TI_SCI_INTA_MSI_DOMAIN
|
|
bool
|
|
select GENERIC_MSI_IRQ_DOMAIN
|
|
help
|
|
Driver to enable Interrupt Aggregator specific MSI Domain.
|