* [v4 1/6] ARM: tegra: Use DT /cpu node to detect number of CPU core
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
2013-01-28 18:04 ` Stephen Warren
2013-01-24 11:10 ` [v4 2/6] ARM: tegra: fuse: Add chip ID Tegra114 0x35 Hiroshi Doyu
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Tegra SoCs does not use SCU based to detect CPU core numbers but they
use DT /cpu node. If it's not provided or failed, it continues as a
single core.
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
---
Based on the discussion:
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-January/140608.html
---
arch/arm/mach-tegra/platsmp.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c
index 3ec7fc4..ee847896 100644
--- a/arch/arm/mach-tegra/platsmp.c
+++ b/arch/arm/mach-tegra/platsmp.c
@@ -177,23 +177,8 @@ done:
return status;
}
-/*
- * Initialise the CPU possible map early - this describes the CPUs
- * which may be present or become present in the system.
- */
static void __init tegra_smp_init_cpus(void)
{
- unsigned int i, ncores = scu_get_core_count(scu_base);
-
- if (ncores > nr_cpu_ids) {
- pr_warn("SMP: %u cores greater than maximum (%u), clipping\n",
- ncores, nr_cpu_ids);
- ncores = nr_cpu_ids;
- }
-
- for (i = 0; i < ncores; i++)
- set_cpu_possible(i, true);
-
set_smp_cross_call(gic_raise_softirq);
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [v4 1/6] ARM: tegra: Use DT /cpu node to detect number of CPU core
2013-01-24 11:10 ` [v4 1/6] ARM: tegra: Use DT /cpu node to detect number of CPU core Hiroshi Doyu
@ 2013-01-28 18:04 ` Stephen Warren
0 siblings, 0 replies; 8+ messages in thread
From: Stephen Warren @ 2013-01-28 18:04 UTC (permalink / raw)
To: Hiroshi Doyu
Cc: linux-tegra, Russell King, Olof Johansson, Jason Cooper,
Shawn Guo, Andrew Lunn, Kukjin Kim, linux-arm-kernel,
linux-kernel
On 01/24/2013 04:10 AM, Hiroshi Doyu wrote:
> Tegra SoCs does not use SCU based to detect CPU core numbers but they
> use DT /cpu node. If it's not provided or failed, it continues as a
> single core.
I've applied patch 1 to Tegra's for-3.9/scu-base-rework branch, and
patches 2-6 to Tegra's for-3.9/soc-t114 branch.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [v4 2/6] ARM: tegra: fuse: Add chip ID Tegra114 0x35
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
2013-01-24 11:10 ` [v4 1/6] ARM: tegra: Use DT /cpu node to detect number of CPU core Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
2013-01-24 11:10 ` [v4 3/6] ARM: dt: tegra114: Add new SoC base, Tegra114 SoC Hiroshi Doyu
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Add tegra_chip_id TEGRA114 0x35
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
arch/arm/mach-tegra/fuse.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-tegra/fuse.h b/arch/arm/mach-tegra/fuse.h
index ff1383d..da78434 100644
--- a/arch/arm/mach-tegra/fuse.h
+++ b/arch/arm/mach-tegra/fuse.h
@@ -37,6 +37,7 @@ enum tegra_revision {
#define TEGRA20 0x20
#define TEGRA30 0x30
+#define TEGRA114 0x35
extern int tegra_sku_id;
extern int tegra_cpu_process_id;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [v4 3/6] ARM: dt: tegra114: Add new SoC base, Tegra114 SoC
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
2013-01-24 11:10 ` [v4 1/6] ARM: tegra: Use DT /cpu node to detect number of CPU core Hiroshi Doyu
2013-01-24 11:10 ` [v4 2/6] ARM: tegra: fuse: Add chip ID Tegra114 0x35 Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
2013-01-24 11:10 ` [v4 4/6] ARM: dt: tegra114: Add new board, Dalmore Hiroshi Doyu
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Initial support for Tegra 114 SoC. This is expected to be included in
the board DTS files, Tegra 114 SoC based evaluation board family.
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
arch/arm/boot/dts/tegra114.dtsi | 114 +++++++++++++++++++++++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 arch/arm/boot/dts/tegra114.dtsi
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
new file mode 100644
index 0000000..c567916
--- /dev/null
+++ b/arch/arm/boot/dts/tegra114.dtsi
@@ -0,0 +1,114 @@
+/include/ "skeleton.dtsi"
+
+/ {
+ compatible = "nvidia,tegra114";
+ interrupt-parent = <&gic>;
+
+ gic: interrupt-controller {
+ compatible = "arm,cortex-a15-gic";
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ reg = <0x50041000 0x1000>,
+ <0x50042000 0x1000>,
+ <0x50044000 0x2000>,
+ <0x50046000 0x2000>;
+ interrupts = <1 9 0xf04>;
+ };
+
+ timer@60005000 {
+ compatible = "nvidia,tegra114-timer", "nvidia,tegra20-timer";
+ reg = <0x60005000 0x400>;
+ interrupts = <0 0 0x04
+ 0 1 0x04
+ 0 41 0x04
+ 0 42 0x04
+ 0 121 0x04
+ 0 122 0x04>;
+ };
+
+ tegra_car: clock {
+ compatible = "nvidia,tegra114-car, nvidia,tegra30-car";
+ reg = <0x60006000 0x1000>;
+ #clock-cells = <1>;
+ };
+
+ serial@70006000 {
+ compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
+ reg = <0x70006000 0x40>;
+ reg-shift = <2>;
+ interrupts = <0 36 0x04>;
+ status = "disabled";
+ };
+
+ serial@70006040 {
+ compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
+ reg = <0x70006040 0x40>;
+ reg-shift = <2>;
+ interrupts = <0 37 0x04>;
+ status = "disabled";
+ };
+
+ serial@70006200 {
+ compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
+ reg = <0x70006200 0x100>;
+ reg-shift = <2>;
+ interrupts = <0 46 0x04>;
+ status = "disabled";
+ };
+
+ serial@70006300 {
+ compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
+ reg = <0x70006300 0x100>;
+ reg-shift = <2>;
+ interrupts = <0 90 0x04>;
+ status = "disabled";
+ };
+
+ rtc {
+ compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc";
+ reg = <0x7000e000 0x100>;
+ interrupts = <0 2 0x04>;
+ };
+
+ pmc {
+ compatible = "nvidia,tegra114-pmc", "nvidia,tegra30-pmc";
+ reg = <0x7000e400 0x400>;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <0>;
+ };
+
+ cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <1>;
+ };
+
+ cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <2>;
+ };
+
+ cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <3>;
+ };
+ };
+
+ timer {
+ compatible = "arm,armv7-timer";
+ interrupts = <1 13 0xf08>,
+ <1 14 0xf08>,
+ <1 11 0xf08>,
+ <1 10 0xf08>;
+ };
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [v4 4/6] ARM: dt: tegra114: Add new board, Dalmore
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
` (2 preceding siblings ...)
2013-01-24 11:10 ` [v4 3/6] ARM: dt: tegra114: Add new SoC base, Tegra114 SoC Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
2013-01-24 11:10 ` [v4 5/6] ARM: dt: tegra114: Add new board, Pluto Hiroshi Doyu
2013-01-24 11:10 ` [v4 6/6] ARM: tegra: Add initial support for Tegra114 SoC Hiroshi Doyu
5 siblings, 0 replies; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Add a new evaluation board, Dalmore for Tegra 114 family.
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
arch/arm/boot/dts/Makefile | 3 ++-
arch/arm/boot/dts/tegra114-dalmore.dts | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/tegra114-dalmore.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e44da40..88ea9fc 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -143,7 +143,8 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-ventana.dtb \
tegra20-whistler.dtb \
tegra30-cardhu-a02.dtb \
- tegra30-cardhu-a04.dtb
+ tegra30-cardhu-a04.dtb \
+ tegra114-dalmore.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
vexpress-v2p-ca9.dtb \
vexpress-v2p-ca15-tc1.dtb \
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
new file mode 100644
index 0000000..a30aca6
--- /dev/null
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/include/ "tegra114.dtsi"
+
+/ {
+ model = "NVIDIA Tegra114 Dalmore evaluation board";
+ compatible = "nvidia,dalmore", "nvidia,tegra114";
+
+ memory {
+ reg = <0x80000000 0x40000000>;
+ };
+
+ serial@70006300 {
+ status = "okay";
+ clock-frequency = <408000000>;
+ };
+
+ pmc {
+ nvidia,invert-interrupt;
+ };
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [v4 5/6] ARM: dt: tegra114: Add new board, Pluto
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
` (3 preceding siblings ...)
2013-01-24 11:10 ` [v4 4/6] ARM: dt: tegra114: Add new board, Dalmore Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
2013-01-24 11:10 ` [v4 6/6] ARM: tegra: Add initial support for Tegra114 SoC Hiroshi Doyu
5 siblings, 0 replies; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Add a new evaluation board, Pluto for Tegra 114 family.
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
arch/arm/boot/dts/Makefile | 3 ++-
arch/arm/boot/dts/tegra114-pluto.dts | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/tegra114-pluto.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 88ea9fc..b53f18f 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -144,7 +144,8 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
tegra20-whistler.dtb \
tegra30-cardhu-a02.dtb \
tegra30-cardhu-a04.dtb \
- tegra114-dalmore.dtb
+ tegra114-dalmore.dtb \
+ tegra114-pluto.dtb
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
vexpress-v2p-ca9.dtb \
vexpress-v2p-ca15-tc1.dtb \
diff --git a/arch/arm/boot/dts/tegra114-pluto.dts b/arch/arm/boot/dts/tegra114-pluto.dts
new file mode 100644
index 0000000..9bea8f5
--- /dev/null
+++ b/arch/arm/boot/dts/tegra114-pluto.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/include/ "tegra114.dtsi"
+
+/ {
+ model = "NVIDIA Tegra114 Pluto evaluation board";
+ compatible = "nvidia,pluto", "nvidia,tegra114";
+
+ memory {
+ reg = <0x80000000 0x40000000>;
+ };
+
+ serial@70006300 {
+ status = "okay";
+ clock-frequency = <408000000>;
+ };
+
+ pmc {
+ nvidia,invert-interrupt;
+ };
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* [v4 6/6] ARM: tegra: Add initial support for Tegra114 SoC.
2013-01-24 11:10 [v4 0/6] ARM: Initial support for Tegra114 SoC Hiroshi Doyu
` (4 preceding siblings ...)
2013-01-24 11:10 ` [v4 5/6] ARM: dt: tegra114: Add new board, Pluto Hiroshi Doyu
@ 2013-01-24 11:10 ` Hiroshi Doyu
5 siblings, 0 replies; 8+ messages in thread
From: Hiroshi Doyu @ 2013-01-24 11:10 UTC (permalink / raw)
To: linux-tegra
Cc: Hiroshi Doyu, Russell King, Stephen Warren, Olof Johansson,
Jason Cooper, Shawn Guo, Andrew Lunn, Kukjin Kim,
linux-arm-kernel, linux-kernel
Add new Tegra 114 SoC support.
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
arch/arm/mach-tegra/Kconfig | 10 +++++++
arch/arm/mach-tegra/Makefile | 1 +
arch/arm/mach-tegra/board-dt-tegra114.c | 48 +++++++++++++++++++++++++++++++
arch/arm/mach-tegra/common.c | 1 +
4 files changed, 60 insertions(+)
create mode 100644 arch/arm/mach-tegra/board-dt-tegra114.c
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index abc688f..eada60f 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -45,6 +45,16 @@ config ARCH_TEGRA_3x_SOC
Support for NVIDIA Tegra T30 processor family, based on the
ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
+config ARCH_TEGRA_114_SOC
+ bool "Enable support for Tegra114 family"
+ select ARM_GIC
+ select CPU_V7
+ select ARM_L1_CACHE_SHIFT_6
+ select ARM_ARCH_TIMER
+ help
+ Support for NVIDIA Tegra T114 processor family, based on the
+ ARM CortexA15MP CPU
+
config TEGRA_PCI
bool "PCI Express support"
depends on ARCH_TEGRA_2x_SOC
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index 432f2a5..e1eaf30 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -28,6 +28,7 @@ obj-$(CONFIG_TEGRA_PCI) += pcie.o
obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-dt-tegra20.o
obj-$(CONFIG_ARCH_TEGRA_3x_SOC) += board-dt-tegra30.o
+obj-$(CONFIG_ARCH_TEGRA_114_SOC) += board-dt-tegra114.o
obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += board-harmony-pcie.o
diff --git a/arch/arm/mach-tegra/board-dt-tegra114.c b/arch/arm/mach-tegra/board-dt-tegra114.c
new file mode 100644
index 0000000..3ed17ce
--- /dev/null
+++ b/arch/arm/mach-tegra/board-dt-tegra114.c
@@ -0,0 +1,48 @@
+/*
+ * NVIDIA Tegra114 device tree board support
+ *
+ * Copyright (C) 2013 NVIDIA Corporation
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/clocksource.h>
+
+#include <asm/mach/arch.h>
+#include <asm/hardware/gic.h>
+
+#include "board.h"
+#include "common.h"
+
+static void __init tegra114_dt_init(void)
+{
+ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static const char * const tegra114_dt_board_compat[] = {
+ "nvidia,tegra114",
+ NULL,
+};
+
+DT_MACHINE_START(TEGRA114_DT, "NVIDIA Tegra114 (Flattened Device Tree)")
+ .smp = smp_ops(tegra_smp_ops),
+ .map_io = tegra_map_common_io,
+ .init_early = tegra30_init_early,
+ .init_irq = tegra_dt_init_irq,
+ .handle_irq = gic_handle_irq,
+ .init_time = clocksource_of_init,
+ .init_machine = tegra114_dt_init,
+ .init_late = tegra_init_late,
+ .restart = tegra_assert_system_reset,
+ .dt_compat = tegra114_dt_board_compat,
+MACHINE_END
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 87dd69c..2f13513 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -59,6 +59,7 @@ u32 tegra_uart_config[4] = {
#ifdef CONFIG_OF
static const struct of_device_id tegra_dt_irq_match[] __initconst = {
+ { .compatible = "arm,cortex-a15-gic", .data = gic_of_init },
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init },
{ }
};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread