TI AM654 support for v4.19 merge window
This branch adds initial support for new Texas Instruments AM654 quad core A53 ARMv8 SoC. It's the first device for TI K3 multicore SoC architecture. Initially only basic devices are configured, support for more devices will follow later on. And many of the internal devices familiar from earlier TI SoCs should work with existing kernel device drivers. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAltSy5YRHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXMh2hAAqKkW9SbJJnPwFVafBn2W+mXsDG7wNq04 3dvMueGZ4S2wuTOcB4fZLFIAW4N5C3P/d66PL2f/dTZHGBr23Qk9LW5UIPp3A+A7 4jTXBSD2Hv6pLChuy3Mr6grGXKGXKfwptef04UZK2XLydQ/AJwEx6Lhj1nXXgT8x 92C1F/9v7hogO+Iz1uUk/AhNeim7DYA/J6AajVcDjj0TO6a2lnLLxO7mKvZgqgg8 2awuZ5aWuSvAOZ5GIAHksGyg8Z4yJslfM2lmTMZQZ5Wr/mO1Nl4LY9OrR+Cw9ctR R8k+blJ3iB11eGZglArvEdLIRG88Qi2GHJ69WtAXaHdytrT7v1O3vLwAd3CeEQG4 GWX22X5qkIe6e66LLb/DKT799nZwwKnlH+mErDMF4ug/dbvLfvp6FztQ4URvd7dU +qRUl8mOS6690/vFKef1vIuK7W4z7T1VxxYssR6eWGXtY4aXVRmU+zVl1J/ymrC+ 5WDy9IihHgCYQtof3O/Drx5Go9xWVKrow4AF1onpnawM1N4g4QoPwUuL4bzsIqAk JcxaAErW1/DLGspkWFNXv70U7/EDYhGKuNMc9SoOYcq3kj1QW86AUmcAWm3LMGYV eYthnm1oTTD4AVyriMYEaRGhQICJ9zeivQO8dntCtBA4DTZ1MbrO2v+LhpQ45/hp rsW/9t77QSw= =pkLC -----END PGP SIGNATURE----- Merge tag 'am654-for-v4.19-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt TI AM654 support for v4.19 merge window This branch adds initial support for new Texas Instruments AM654 quad core A53 ARMv8 SoC. It's the first device for TI K3 multicore SoC architecture. Initially only basic devices are configured, support for more devices will follow later on. And many of the internal devices familiar from earlier TI SoCs should work with existing kernel device drivers. * tag 'am654-for-v4.19-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: arm64: dts: ti: Add support for AM654 EVM base board soc: ti: Add Support for AM654 SoC config option arm64: dts: ti: Add Support for AM654 SoC arm64: Add support for TI's K3 Multicore SoC architecture dt-bindings: arm: ti: Add bindings for AM654 SoC Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
94dee3861f
|
@ -0,0 +1,23 @@
|
|||
Texas Instruments K3 Multicore SoC architecture device tree bindings
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Platforms based on Texas Instruments K3 Multicore SoC architecture
|
||||
shall follow the following scheme:
|
||||
|
||||
SoCs
|
||||
----
|
||||
|
||||
Each device tree root node must specify which exact SoC in K3 Multicore SoC
|
||||
architecture it uses, using one of the following compatible values:
|
||||
|
||||
- AM654
|
||||
compatible = "ti,am654";
|
||||
|
||||
Boards
|
||||
------
|
||||
|
||||
In addition, each device tree root node must specify which one or more
|
||||
of the following board-specific compatible values:
|
||||
|
||||
- AM654 EVM
|
||||
compatible = "ti,am654-evm", "ti,am654";
|
|
@ -2087,6 +2087,15 @@ L: linux-kernel@vger.kernel.org
|
|||
S: Maintained
|
||||
F: drivers/memory/*emif*
|
||||
|
||||
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
||||
M: Tero Kristo <t-kristo@ti.com>
|
||||
M: Nishanth Menon <nm@ti.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/arm/ti/k3.txt
|
||||
F: arch/arm64/boot/dts/ti/Makefile
|
||||
F: arch/arm64/boot/dts/ti/k3-*
|
||||
|
||||
ARM/TEXAS INSTRUMENT KEYSTONE ARCHITECTURE
|
||||
M: Santosh Shilimkar <ssantosh@kernel.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
|
|
@ -71,6 +71,13 @@ config ARCH_EXYNOS
|
|||
help
|
||||
This enables support for ARMv8 based Samsung Exynos SoC family.
|
||||
|
||||
config ARCH_K3
|
||||
bool "Texas Instruments Inc. K3 multicore SoC architecture"
|
||||
select PM_GENERIC_DOMAINS if PM
|
||||
help
|
||||
This enables support for Texas Instruments' K3 multicore SoC
|
||||
architecture.
|
||||
|
||||
config ARCH_LAYERSCAPE
|
||||
bool "ARMv8 based Freescale Layerscape SoC family"
|
||||
select EDAC_SUPPORT
|
||||
|
|
|
@ -23,5 +23,6 @@ subdir-y += rockchip
|
|||
subdir-y += socionext
|
||||
subdir-y += sprd
|
||||
subdir-y += synaptics
|
||||
subdir-y += ti
|
||||
subdir-y += xilinx
|
||||
subdir-y += zte
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Make file to build device tree binaries for boards based on
|
||||
# Texas Instruments Inc processors
|
||||
#
|
||||
# Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
|
||||
#
|
||||
|
||||
dtb-$(CONFIG_ARCH_K3_AM6_SOC) += k3-am654-base-board.dtb
|
|
@ -0,0 +1,31 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Device Tree Source for AM6 SoC Family Main Domain peripherals
|
||||
*
|
||||
* Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
&cbass_main {
|
||||
gic500: interrupt-controller@1800000 {
|
||||
compatible = "arm,gic-v3";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x01800000 0x10000>, /* GICD */
|
||||
<0x01880000 0x90000>; /* GICR */
|
||||
/*
|
||||
* vcpumntirq:
|
||||
* virtual CPU interface maintenance interrupt
|
||||
*/
|
||||
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gic_its: gic-its@18200000 {
|
||||
compatible = "arm,gic-v3-its";
|
||||
reg = <0x01820000 0x10000>;
|
||||
msi-controller;
|
||||
#msi-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,87 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Device Tree Source for AM6 SoC Family
|
||||
*
|
||||
* Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
model = "Texas Instruments K3 AM654 SoC";
|
||||
compatible = "ti,am654";
|
||||
interrupt-parent = <&gic500>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
chosen { };
|
||||
|
||||
firmware {
|
||||
optee {
|
||||
compatible = "linaro,optee-tz";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
psci: psci {
|
||||
compatible = "arm,psci-1.0";
|
||||
method = "smc";
|
||||
};
|
||||
};
|
||||
|
||||
a53_timer0: timer-cl0-cpu0 {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
|
||||
<GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
|
||||
<GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
|
||||
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
|
||||
};
|
||||
|
||||
pmu: pmu {
|
||||
compatible = "arm,armv8-pmuv3";
|
||||
/* Recommendation from GIC500 TRM Table A.3 */
|
||||
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
cbass_main: interconnect@100000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x00100000 0x00 0x00100000 0x00020000>, /* ctrl mmr */
|
||||
<0x00600000 0x00 0x00600000 0x00001100>, /* GPIO */
|
||||
<0x00900000 0x00 0x00900000 0x00012000>, /* serdes */
|
||||
<0x01000000 0x00 0x01000000 0x0af02400>, /* Most peripherals */
|
||||
<0x30800000 0x00 0x30800000 0x0bc00000>, /* MAIN NAVSS */
|
||||
/* MCUSS Range */
|
||||
<0x28380000 0x00 0x28380000 0x03880000>,
|
||||
<0x40200000 0x00 0x40200000 0x00900100>,
|
||||
<0x42040000 0x00 0x42040000 0x03ac2400>,
|
||||
<0x45100000 0x00 0x45100000 0x00c24000>,
|
||||
<0x46000000 0x00 0x46000000 0x00200000>,
|
||||
<0x47000000 0x00 0x47000000 0x00068400>;
|
||||
|
||||
cbass_mcu: interconnect@28380000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x28380000 0x28380000 0x03880000>, /* MCU NAVSS*/
|
||||
<0x40200000 0x40200000 0x00900100>, /* First peripheral window */
|
||||
<0x42040000 0x42040000 0x03ac2400>, /* WKUP */
|
||||
<0x45100000 0x45100000 0x00c24000>, /* MMRs, remaining NAVSS */
|
||||
<0x46000000 0x46000000 0x00200000>, /* CPSW */
|
||||
<0x47000000 0x47000000 0x00068400>; /* OSPI space 1 */
|
||||
|
||||
cbass_wakeup: interconnect@42040000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
/* WKUP Basic peripherals */
|
||||
ranges = <0x42040000 0x42040000 0x03ac2400>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Now include the peripherals for each bus segments */
|
||||
#include "k3-am65-main.dtsi"
|
|
@ -0,0 +1,36 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "k3-am654.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "ti,am654-evm", "ti,am654";
|
||||
model = "Texas Instruments AM654 Base Board";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
bootargs = "earlycon=ns16550a,mmio32,0x02800000";
|
||||
};
|
||||
|
||||
memory@80000000 {
|
||||
device_type = "memory";
|
||||
/* 4G RAM */
|
||||
reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
|
||||
<0x00000008 0x80000000 0x00000000 0x80000000>;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
secure_ddr: secure_ddr@9e800000 {
|
||||
reg = <0 0x9e800000 0 0x01800000>; /* for OP-TEE */
|
||||
alignment = <0x1000>;
|
||||
no-map;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,115 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Device Tree Source for AM6 SoC family in Quad core configuration
|
||||
*
|
||||
* Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
#include "k3-am65.dtsi"
|
||||
|
||||
/ {
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cpu-map {
|
||||
cluster0: cluster0 {
|
||||
core0 {
|
||||
cpu = <&cpu0>;
|
||||
};
|
||||
|
||||
core1 {
|
||||
cpu = <&cpu1>;
|
||||
};
|
||||
};
|
||||
|
||||
cluster1: cluster1 {
|
||||
core0 {
|
||||
cpu = <&cpu2>;
|
||||
};
|
||||
|
||||
core1 {
|
||||
cpu = <&cpu3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
cpu0: cpu@0 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x000>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&L2_0>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x001>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&L2_0>;
|
||||
};
|
||||
|
||||
cpu2: cpu@100 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x100>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&L2_1>;
|
||||
};
|
||||
|
||||
cpu3: cpu@101 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x101>;
|
||||
device_type = "cpu";
|
||||
enable-method = "psci";
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-line-size = <64>;
|
||||
i-cache-sets = <256>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-line-size = <64>;
|
||||
d-cache-sets = <128>;
|
||||
next-level-cache = <&L2_1>;
|
||||
};
|
||||
};
|
||||
|
||||
L2_0: l2-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-size = <0x80000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <512>;
|
||||
next-level-cache = <&msmc_l3>;
|
||||
};
|
||||
|
||||
L2_1: l2-cache1 {
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-size = <0x80000>;
|
||||
cache-line-size = <64>;
|
||||
cache-sets = <512>;
|
||||
next-level-cache = <&msmc_l3>;
|
||||
};
|
||||
|
||||
msmc_l3: l3-cache0 {
|
||||
compatible = "cache";
|
||||
cache-level = <3>;
|
||||
};
|
||||
};
|
|
@ -1,3 +1,17 @@
|
|||
# 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
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# TI SOC drivers
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue