* [PATCH 0/3] ARM: Add minimal support for TI Keystone SOCs
@ 2013-06-10 19:55 Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support Santosh Shilimkar
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-10 19:55 UTC (permalink / raw)
To: linux-arm-kernel
Series adds minimal support to Texas Instruments Keystone 2 based
SOCs. Basic SOC code and simple dt file describing SOC which is enough
to get the device booting till shell against mainline v3.10-rcx release.
Texas Instruments Keystone family of multi-core devices are
based on ARM Cortex A15. The TCI66xxK2H Communications Infrastructure
Keystone SoCs are member of the C66x family based on TI's new
KeyStone 2 multi-core SoC Architecture designed specifically for
high performance wireless and networking infrastructure applications.
The SOCs contains many subsystems like Cortex A15 ARM CorePacs,
C66XX DSP CorePacs, MSMC memory controller, Tera Net bus,
IP Network, Navigator, Hyperlink, 1G/10G Ethernet, Radio layers
and queue based communication systems.
The patchset is available on my git tree and details are end of the
email [1]
The Keystone Linux port has been used internal and externally for quite some
time and its based on slightly older kernels. I need to specially mention
about Cyril Chemparathy who was integral part of many of the development
for Keystone linux port along with Murali, Vitaly and rest of the team.
We would like to take all the internal linux keystone work to mainline
and this is the first step to get that process started.
There is public documentation available for these SOCs. Here is one of
the link [2]
Santosh Shilimkar (3):
ARM: keystone: Add minimal TI Keystone platform support
ARM: keystone: Enable SMP support on Keystone machines
ARM: dts: keystone: Add minimal Keystone SOC device tree data
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: arm at kernel.org
.../devicetree/bindings/arm/keystone/keystone.txt | 9 ++
arch/arm/Kconfig | 3 +
arch/arm/Kconfig.debug | 16 ++
arch/arm/Makefile | 1 +
arch/arm/boot/dts/keystone.dts | 98 ++++++++++++
arch/arm/configs/keystone_defconfig | 157 ++++++++++++++++++++
arch/arm/include/debug/keystone.S | 43 ++++++
arch/arm/mach-keystone/Kconfig | 17 +++
arch/arm/mach-keystone/Makefile | 2 +
arch/arm/mach-keystone/Makefile.boot | 1 +
arch/arm/mach-keystone/include/mach/timex.h | 15 ++
arch/arm/mach-keystone/keystone.c | 78 ++++++++++
arch/arm/mach-keystone/keystone.h | 17 +++
arch/arm/mach-keystone/platsmp.c | 67 +++++++++
14 files changed, 524 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/keystone/keystone.txt
create mode 100644 arch/arm/boot/dts/keystone.dts
create mode 100644 arch/arm/configs/keystone_defconfig
create mode 100644 arch/arm/include/debug/keystone.S
create mode 100644 arch/arm/mach-keystone/Kconfig
create mode 100644 arch/arm/mach-keystone/Makefile
create mode 100644 arch/arm/mach-keystone/Makefile.boot
create mode 100644 arch/arm/mach-keystone/include/mach/timex.h
create mode 100644 arch/arm/mach-keystone/keystone.c
create mode 100644 arch/arm/mach-keystone/keystone.h
create mode 100644 arch/arm/mach-keystone/platsmp.c
Regards,
Santosh
[1] Git tree details
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone.git
keystone/dt
keystone/soc
keystone/master --> 'soc + dt'
[2] Device specs
http://www.ti.com/product/tci6636k2h
--
1.7.9.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-10 19:55 [PATCH 0/3] ARM: Add minimal support for TI Keystone SOCs Santosh Shilimkar
@ 2013-06-10 19:55 ` Santosh Shilimkar
2013-06-11 19:27 ` Arnd Bergmann
2013-06-10 19:55 ` [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data Santosh Shilimkar
2 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-10 19:55 UTC (permalink / raw)
To: linux-arm-kernel
Texas Instruments Keystone family of multi-core devices are
based on ARM Cortex A15. Patch adds basic definitions for a
new Keystone sub-architecture in ARM.
The TCI66xxK2H Communications Infrastructure Keystone SoCs
are member of the C66x family based on TI's new KeyStone 2
multi-core SoC Architecture designed specifically for high
performance wireless and networking infrastructure applications.
The SOCs contains many subsystems like Cortex A15 ARM CorePacs,
C66XX DSP CorePacs, MSMC memory controller, Tera Net bus,
IP Network, Navigator, Hyperlink, 1G/10G Ethernet, Radio layers
and queue based communication systems.
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: arm at kernel.org
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
arch/arm/Kconfig | 3 +
arch/arm/Kconfig.debug | 16 +++
arch/arm/Makefile | 1 +
arch/arm/configs/keystone_defconfig | 157 +++++++++++++++++++++++++++
arch/arm/include/debug/keystone.S | 43 ++++++++
arch/arm/mach-keystone/Kconfig | 16 +++
arch/arm/mach-keystone/Makefile | 1 +
arch/arm/mach-keystone/Makefile.boot | 1 +
arch/arm/mach-keystone/include/mach/timex.h | 15 +++
arch/arm/mach-keystone/keystone.c | 74 +++++++++++++
10 files changed, 327 insertions(+)
create mode 100644 arch/arm/configs/keystone_defconfig
create mode 100644 arch/arm/include/debug/keystone.S
create mode 100644 arch/arm/mach-keystone/Kconfig
create mode 100644 arch/arm/mach-keystone/Makefile
create mode 100644 arch/arm/mach-keystone/Makefile.boot
create mode 100644 arch/arm/mach-keystone/include/mach/timex.h
create mode 100644 arch/arm/mach-keystone/keystone.c
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 49d993c..37fe64c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -948,6 +948,8 @@ source "arch/arm/mach-iop13xx/Kconfig"
source "arch/arm/mach-ixp4xx/Kconfig"
+source "arch/arm/mach-keystone/Kconfig"
+
source "arch/arm/mach-kirkwood/Kconfig"
source "arch/arm/mach-ks8695/Kconfig"
@@ -1564,6 +1566,7 @@ config ARCH_NR_GPIO
default 352 if ARCH_VT8500
default 288 if ARCH_SUNXI
default 264 if MACH_H4700
+ default 512 if ARCH_KEYSTONE
default 0
help
Maximum number of GPIOs in the system.
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 1d41908..62e7f95 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -251,6 +251,20 @@ choice
Say Y here if you want kernel low-level debugging support
on i.MX6Q/DL.
+ config DEBUG_KEYSTONE_UART0
+ bool "Kernel low-level debugging on KEYSTONE2 using UART0"
+ depends on ARCH_KEYSTONE
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to UART0 serial port on KEYSTONE2 devices.
+
+ config DEBUG_KEYSTONE_UART1
+ bool "Kernel low-level debugging on KEYSTONE2 using UART1"
+ depends on ARCH_KEYSTONE
+ help
+ Say Y here if you want the debug print routines to direct
+ their output to UART1 serial port on KEYSTONE2 devices.
+
config DEBUG_MMP_UART2
bool "Kernel low-level debugging message via MMP UART2"
depends on ARCH_MMP
@@ -632,6 +646,8 @@ config DEBUG_LL_INCLUDE
DEBUG_IMX51_UART || \
DEBUG_IMX53_UART ||\
DEBUG_IMX6Q_UART
+ default "debug/keystone.S" if DEBUG_KEYSTONE_UART0 || \
+ DEBUG_KEYSTONE_UART1
default "debug/mvebu.S" if DEBUG_MVEBU_UART
default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
default "debug/nomadik.S" if DEBUG_NOMADIK_UART
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 1ba358b..a1c9a78 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -194,6 +194,7 @@ machine-$(CONFIG_PLAT_SPEAR) += spear
machine-$(CONFIG_ARCH_VIRT) += virt
machine-$(CONFIG_ARCH_ZYNQ) += zynq
machine-$(CONFIG_ARCH_SUNXI) += sunxi
+machine-$(CONFIG_ARCH_KEYSTONE) += keystone
# Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig
new file mode 100644
index 0000000..62e968c
--- /dev/null
+++ b/arch/arm/configs/keystone_defconfig
@@ -0,0 +1,157 @@
+# CONFIG_SWAP is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_ELF_CORE is not set
+# CONFIG_BASE_FULL is not set
+CONFIG_EMBEDDED=y
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=y
+CONFIG_KPROBES=y
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_ARCH_KEYSTONE=y
+CONFIG_ARM_LPAE=y
+CONFIG_SMP=y
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+CONFIG_HIGHMEM=y
+CONFIG_VFP=y
+CONFIG_NEON=y
+# CONFIG_SUSPEND is not set
+CONFIG_PM_RUNTIME=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=y
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_NET_IPIP=y
+CONFIG_NET_IPGRE_DEMUX=y
+CONFIG_NET_IPGRE=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_INET_AH=y
+CONFIG_INET_IPCOMP=y
+CONFIG_IPV6=y
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CT_NETLINK=y
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y
+CONFIG_NETFILTER_XT_TARGET_MARK=y
+CONFIG_NETFILTER_XT_MATCH_COMMENT=y
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
+CONFIG_NETFILTER_XT_MATCH_CPU=y
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
+CONFIG_NETFILTER_XT_MATCH_MAC=y
+CONFIG_NETFILTER_XT_MATCH_MARK=y
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
+CONFIG_NETFILTER_XT_MATCH_STATE=y
+CONFIG_NF_CONNTRACK_IPV4=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_AH=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_ULOG=y
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_TARGET_CLUSTERIP=y
+CONFIG_IP_NF_TARGET_ECN=y
+CONFIG_IP_NF_TARGET_TTL=y
+CONFIG_IP_NF_RAW=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP_SCTP=y
+CONFIG_VLAN_8021Q=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_CMA=y
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_PLATRAM=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_UBI=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_EEPROM_AT24=y
+CONFIG_NETDEVICES=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
+# CONFIG_HW_RANDOM is not set
+CONFIG_I2C=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_SPI=y
+CONFIG_SPI_SPIDEV=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+# CONFIG_USB_SUPPORT is not set
+CONFIG_DMADEVICES=y
+CONFIG_COMMON_CLK_DEBUG=y
+CONFIG_MEMORY=y
+CONFIG_TMPFS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WBUF_VERIFY=y
+CONFIG_UBIFS_FS=y
+CONFIG_CRAMFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_SHIRQ=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_USER=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_AUTHENC=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_XCBC=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API_SKCIPHER=y
diff --git a/arch/arm/include/debug/keystone.S b/arch/arm/include/debug/keystone.S
new file mode 100644
index 0000000..9c75a4c
--- /dev/null
+++ b/arch/arm/include/debug/keystone.S
@@ -0,0 +1,43 @@
+/*
+ * Early serial debug output macro for Keystone SOCs
+ *
+ * Copyright 2013 Texas Instruments, Inc.
+ * Santosh Shilimkar ,santosh.shilimkar at ti.com>
+ *
+ * Based on RMKs low level debug code.
+ * Copyright (C) 1994-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/serial_reg.h>
+
+#define UART_SHIFT 2
+#if defined(CONFIG_DEBUG_KEYSTONE_UART0)
+#define UART_PHYS 0x02530c00
+#define UART_VIRT 0xfeb30c00
+#elif defined(CONFIG_DEBUG_KEYSTONE_UART1)
+#define UART_PHYS 0x02531000
+#define UART_VIRT 0xfeb31000
+#endif
+
+ .macro addruart, rp, rv, tmp
+ ldr \rv, =UART_VIRT @ physical base address
+ ldr \rp, =UART_PHYS @ virtual base address
+ .endm
+
+ .macro senduart,rd,rx
+ str \rd, [\rx, #UART_TX << UART_SHIFT]
+ .endm
+
+ .macro busyuart,rd,rx
+1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
+ and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
+ teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
+ bne 1002b
+ .endm
+
+ .macro waituart,rd,rx
+ .endm
diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
new file mode 100644
index 0000000..39fab74
--- /dev/null
+++ b/arch/arm/mach-keystone/Kconfig
@@ -0,0 +1,16 @@
+config ARCH_KEYSTONE
+ bool "Texas Instruments Keystone Devices"
+ select CPU_V7
+ select ARM_GIC
+ select HAVE_ARM_ARCH_TIMER
+ select USE_OF
+ select MULTI_IRQ_HANDLER
+ select CLKSRC_MMIO
+ select GENERIC_CLOCKEVENTS
+ select SPARSE_IRQ
+ select HAVE_SCHED_CLOCK
+ select ARCH_WANT_OPTIONAL_GPIOLIB
+ select ARM_ERRATA_798181
+ help
+ Support for boards based on the Texas Instruments Keystone family of
+ SoCs.
diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
new file mode 100644
index 0000000..d4671d5
--- /dev/null
+++ b/arch/arm/mach-keystone/Makefile
@@ -0,0 +1 @@
+obj-y := keystone.o
diff --git a/arch/arm/mach-keystone/Makefile.boot b/arch/arm/mach-keystone/Makefile.boot
new file mode 100644
index 0000000..f3835c4
--- /dev/null
+++ b/arch/arm/mach-keystone/Makefile.boot
@@ -0,0 +1 @@
+zreladdr-y := 0x80008000
diff --git a/arch/arm/mach-keystone/include/mach/timex.h b/arch/arm/mach-keystone/include/mach/timex.h
new file mode 100644
index 0000000..e4c595a
--- /dev/null
+++ b/arch/arm/mach-keystone/include/mach/timex.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2013 Texas Instruments, Inc.
+ * Cyril Chemparathy <cyril@ti.com>
+ * Santosh Shilimkar <santosh.shillimkar@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ */
+#ifndef __MACH_TIMEX_H
+#define __MACH_TIMEX_H
+
+#define CLOCK_TICK_RATE 1000000
+
+#endif
diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
new file mode 100644
index 0000000..6c6fc42
--- /dev/null
+++ b/arch/arm/mach-keystone/keystone.c
@@ -0,0 +1,74 @@
+/*
+ * Keystone2 based boards and SOC related code.
+ *
+ * Copyright 2013 Texas Instruments, Inc.
+ * Cyril Chemparathy <cyril@ti.com>
+ * Santosh Shilimkar <santosh.shillimkar@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ */
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/init.h>
+#include <linux/of_platform.h>
+#include <linux/of_address.h>
+
+#include <asm/setup.h>
+#include <asm/mach/map.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/time.h>
+
+#define PLL_RESET_WRITE_KEY_MASK 0xffff0000
+#define PLL_RESET_WRITE_KEY 0x5a69
+#define PLL_RESET BIT(16)
+
+static void __iomem *keystone_rstctrl;
+
+static void __init keystone_init(void)
+{
+ struct device_node *node;
+
+ node = of_find_compatible_node(NULL, NULL, "ti,keystone-reset");
+ if (WARN_ON(!node)) {
+ pr_warn("ti, keystone-reset node undefined\n");
+ return;
+ }
+
+ keystone_rstctrl = of_iomap(node, 0);
+ if (WARN_ON(!keystone_rstctrl)) {
+ pr_warn("ti, keystone-reset iomap error\n");
+ return;
+ }
+
+ of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static const char *keystone_match[] __initconst = {
+ "ti,keystone-evm",
+ NULL,
+};
+
+void keystone_restart(char mode, const char *cmd)
+{
+ u32 val;
+
+ /* Enable write access to RSTCTRL */
+ val = __raw_readl(keystone_rstctrl);
+ val &= PLL_RESET_WRITE_KEY_MASK;
+ val |= PLL_RESET_WRITE_KEY;
+ __raw_writel(val, keystone_rstctrl);
+
+ /* Reset the SOC */
+ val = __raw_readl(keystone_rstctrl);
+ val &= ~PLL_RESET;
+ __raw_writel(val, keystone_rstctrl);
+}
+
+DT_MACHINE_START(KEYSTONE, "Keystone")
+ .map_io = debug_ll_io_init,
+ .init_machine = keystone_init,
+ .dt_compat = keystone_match,
+ .restart = keystone_restart,
+MACHINE_END
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines
2013-06-10 19:55 [PATCH 0/3] ARM: Add minimal support for TI Keystone SOCs Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support Santosh Shilimkar
@ 2013-06-10 19:55 ` Santosh Shilimkar
2013-06-11 5:16 ` Chander Kashyap
2013-06-10 19:55 ` [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data Santosh Shilimkar
2 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-10 19:55 UTC (permalink / raw)
To: linux-arm-kernel
Add basic SMP support for Keystone machines. This does not
include support for CPU hotplug for now.
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: arm at kernel.org
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
arch/arm/mach-keystone/Kconfig | 1 +
arch/arm/mach-keystone/Makefile | 1 +
arch/arm/mach-keystone/keystone.c | 4 +++
arch/arm/mach-keystone/keystone.h | 17 ++++++++++
arch/arm/mach-keystone/platsmp.c | 67 +++++++++++++++++++++++++++++++++++++
5 files changed, 90 insertions(+)
create mode 100644 arch/arm/mach-keystone/keystone.h
create mode 100644 arch/arm/mach-keystone/platsmp.c
diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
index 39fab74..6054673 100644
--- a/arch/arm/mach-keystone/Kconfig
+++ b/arch/arm/mach-keystone/Kconfig
@@ -3,6 +3,7 @@ config ARCH_KEYSTONE
select CPU_V7
select ARM_GIC
select HAVE_ARM_ARCH_TIMER
+ select HAVE_SMP
select USE_OF
select MULTI_IRQ_HANDLER
select CLKSRC_MMIO
diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
index d4671d5..3f6b8ab 100644
--- a/arch/arm/mach-keystone/Makefile
+++ b/arch/arm/mach-keystone/Makefile
@@ -1 +1,2 @@
obj-y := keystone.o
+obj-$(CONFIG_SMP) += platsmp.o
diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
index 6c6fc42..5dd3b32 100644
--- a/arch/arm/mach-keystone/keystone.c
+++ b/arch/arm/mach-keystone/keystone.c
@@ -19,6 +19,9 @@
#include <asm/mach/map.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
+#include <asm/smp_plat.h>
+
+#include "keystone.h"
#define PLL_RESET_WRITE_KEY_MASK 0xffff0000
#define PLL_RESET_WRITE_KEY 0x5a69
@@ -67,6 +70,7 @@ void keystone_restart(char mode, const char *cmd)
}
DT_MACHINE_START(KEYSTONE, "Keystone")
+ .smp = smp_ops(keystone_smp_ops),
.map_io = debug_ll_io_init,
.init_machine = keystone_init,
.dt_compat = keystone_match,
diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h
new file mode 100644
index 0000000..43a1b47
--- /dev/null
+++ b/arch/arm/mach-keystone/keystone.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2013 Texas Instruments, Inc.
+ * Cyril Chemparathy <cyril@ti.com>
+ * Santosh Shilimkar <santosh.shillimkar@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ */
+
+#ifndef __KEYSTONE_H__
+#define __KEYSTONE_H__
+
+extern struct smp_operations keystone_smp_ops;
+extern void secondary_startup(void);
+
+#endif /* __KEYSTONE_H__ */
diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c
new file mode 100644
index 0000000..3071dda
--- /dev/null
+++ b/arch/arm/mach-keystone/platsmp.c
@@ -0,0 +1,67 @@
+/*
+ * Keystone SOC SMP platform code
+ *
+ * Copyright 2013 Texas Instruments, Inc.
+ * Cyril Chemparathy <cyril@ti.com>
+ * Santosh Shilimkar <santosh.shillimkar@ti.com>
+ *
+ * Based on platsmp.c, Copyright (C) 2002 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/smp.h>
+#include <linux/io.h>
+
+#include <asm/smp_plat.h>
+
+#include "keystone.h"
+
+static void __init keystone_smp_init_cpus(void)
+{
+ unsigned int i, ncores;
+
+ ncores = 4;
+
+ /* sanity check */
+ if (ncores > NR_CPUS) {
+ pr_warn("restricted to %d cpus\n", NR_CPUS);
+ ncores = NR_CPUS;
+ }
+
+ for (i = 0; i < ncores; i++)
+ set_cpu_possible(i, true);
+}
+
+static int __cpuinit keystone_smp_boot_secondary(unsigned int cpu,
+ struct task_struct *idle)
+{
+ unsigned long start = virt_to_phys(&secondary_startup);
+ int error;
+
+ pr_debug("keystone-smp: booting cpu %d, vector %08lx\n",
+ cpu, start);
+
+ asm volatile (
+ "mov r0, #0\n" /* power on cmd */
+ "mov r1, %1\n" /* cpu */
+ "mov r2, %2\n" /* start */
+ ".inst 0xe1600070\n" /* smc #0 */
+ "mov %0, r0\n"
+ : "=r" (error)
+ : "r"(cpu), "r"(start)
+ : "cc", "r0", "r1", "r2", "memory"
+ );
+
+ pr_debug("keystone-smp: monitor returned %d\n", error);
+
+ return error;
+}
+
+struct smp_operations keystone_smp_ops __initdata = {
+ .smp_init_cpus = keystone_smp_init_cpus,
+ .smp_boot_secondary = keystone_smp_boot_secondary,
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data
2013-06-10 19:55 [PATCH 0/3] ARM: Add minimal support for TI Keystone SOCs Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines Santosh Shilimkar
@ 2013-06-10 19:55 ` Santosh Shilimkar
2013-06-11 9:38 ` Mark Rutland
2 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-10 19:55 UTC (permalink / raw)
To: linux-arm-kernel
Add minimal device tree data for Keystone2 based SOCs. Patch
contains mainly ARM related SOC data and nothing about EVM specific
yet.
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: arm at kernel.org
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
I have seen some ongoing #include cleanups from Stephen Warren and cpu_node
updates from Lorenzo, but since am unaware of the dependencies, dts file is
aligned with the v3.10rcx ARM dts files. The changes are very trivial so
I can fix them quickly when they show up in linux-next.
.../devicetree/bindings/arm/keystone/keystone.txt | 9 ++
arch/arm/boot/dts/keystone.dts | 98 ++++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/keystone/keystone.txt
create mode 100644 arch/arm/boot/dts/keystone.dts
diff --git a/Documentation/devicetree/bindings/arm/keystone/keystone.txt b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
new file mode 100644
index 0000000..b496d4c
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
@@ -0,0 +1,9 @@
+TI Kesytone Platforms Device Tree Bindings
+-----------------------------------------------
+
+Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
+following properties.
+
+Required properties:
+ - compatible: Every devices present in Keystone SOC should be in
+ the form "ti,keystone-*";
diff --git a/arch/arm/boot/dts/keystone.dts b/arch/arm/boot/dts/keystone.dts
new file mode 100644
index 0000000..9ca7d25
--- /dev/null
+++ b/arch/arm/boot/dts/keystone.dts
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2013 Texas Instruments, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/dts-v1/;
+/include/ "skeleton.dtsi"
+
+/ {
+ model = "Texas Instruments Keystone 2 SoC";
+ compatible = "ti,keystone-evm";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ interrupt-parent = <&gic>;
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ memory {
+ reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
+ };
+
+ cpus {
+ interrupt-parent = <&gic>;
+
+ cpu at 0 {
+ compatible = "arm,cortex-a15";
+ };
+
+ cpu at 1 {
+ compatible = "arm,cortex-a15";
+ };
+
+ cpu at 2 {
+ compatible = "arm,cortex-a15";
+ };
+
+ cpu at 3 {
+ compatible = "arm,cortex-a15";
+ };
+ };
+
+ gic: interrupt-controller at 02560000 {
+ compatible = "arm,cortex-a15-gic";
+ #interrupt-cells = <3>;
+ #size-cells = <0>;
+ #address-cells = <1>;
+ interrupt-controller;
+ reg = <0x0 0x02561000 0x0 0x1000>,
+ <0x0 0x02562000 0x0 0x2000>;
+ };
+
+ timer {
+ compatible = "arm,armv7-timer";
+ interrupts = <1 13 0xf08>,
+ <1 14 0xf08>,
+ <1 11 0xf08>,
+ <1 10 0x308>;
+ };
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "ti,keystone","simple-bus";
+ interrupt-parent = <&gic>;
+ ranges = <0x0 0x0 0x0 0xc0000000>;
+
+ rstctrl:rstctrl at 23100e8 {
+ compatible = "ti,keystone-reset";
+ reg = <0x023100e8 4>; /* pll reset control reg */
+ };
+
+ uart0: serial at 02530c00 {
+ compatible = "ns16550a";
+ current-speed = <115200>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ reg = <0x02530c00 0x100>;
+ clock-frequency = <133120000>;
+ interrupts = <0 277 0xf01>;
+ };
+
+ uart1: serial at 02531000 {
+ compatible = "ns16550a";
+ current-speed = <115200>;
+ reg-shift = <2>;
+ reg-io-width = <4>;
+ reg = <0x02531000 0x100>;
+ clock-frequency = <133120000>;
+ interrupts = <0 280 0xf01>;
+ };
+
+ };
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines
2013-06-10 19:55 ` [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines Santosh Shilimkar
@ 2013-06-11 5:16 ` Chander Kashyap
2013-06-11 13:34 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Chander Kashyap @ 2013-06-11 5:16 UTC (permalink / raw)
To: linux-arm-kernel
2013/6/11 Santosh Shilimkar <santosh.shilimkar@ti.com>:
> Add basic SMP support for Keystone machines. This does not
> include support for CPU hotplug for now.
>
> Cc: Olof Johansson <olof@lixom.net>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: arm at kernel.org
>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
> arch/arm/mach-keystone/Kconfig | 1 +
> arch/arm/mach-keystone/Makefile | 1 +
> arch/arm/mach-keystone/keystone.c | 4 +++
> arch/arm/mach-keystone/keystone.h | 17 ++++++++++
> arch/arm/mach-keystone/platsmp.c | 67 +++++++++++++++++++++++++++++++++++++
> 5 files changed, 90 insertions(+)
> create mode 100644 arch/arm/mach-keystone/keystone.h
> create mode 100644 arch/arm/mach-keystone/platsmp.c
>
> diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
> index 39fab74..6054673 100644
> --- a/arch/arm/mach-keystone/Kconfig
> +++ b/arch/arm/mach-keystone/Kconfig
> @@ -3,6 +3,7 @@ config ARCH_KEYSTONE
> select CPU_V7
> select ARM_GIC
> select HAVE_ARM_ARCH_TIMER
> + select HAVE_SMP
> select USE_OF
> select MULTI_IRQ_HANDLER
> select CLKSRC_MMIO
> diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
> index d4671d5..3f6b8ab 100644
> --- a/arch/arm/mach-keystone/Makefile
> +++ b/arch/arm/mach-keystone/Makefile
> @@ -1 +1,2 @@
> obj-y := keystone.o
> +obj-$(CONFIG_SMP) += platsmp.o
> diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
> index 6c6fc42..5dd3b32 100644
> --- a/arch/arm/mach-keystone/keystone.c
> +++ b/arch/arm/mach-keystone/keystone.c
> @@ -19,6 +19,9 @@
> #include <asm/mach/map.h>
> #include <asm/mach/arch.h>
> #include <asm/mach/time.h>
> +#include <asm/smp_plat.h>
> +
> +#include "keystone.h"
>
> #define PLL_RESET_WRITE_KEY_MASK 0xffff0000
> #define PLL_RESET_WRITE_KEY 0x5a69
> @@ -67,6 +70,7 @@ void keystone_restart(char mode, const char *cmd)
> }
>
> DT_MACHINE_START(KEYSTONE, "Keystone")
> + .smp = smp_ops(keystone_smp_ops),
> .map_io = debug_ll_io_init,
> .init_machine = keystone_init,
> .dt_compat = keystone_match,
> diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h
> new file mode 100644
> index 0000000..43a1b47
> --- /dev/null
> +++ b/arch/arm/mach-keystone/keystone.h
> @@ -0,0 +1,17 @@
> +/*
> + * Copyright 2013 Texas Instruments, Inc.
> + * Cyril Chemparathy <cyril@ti.com>
> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#ifndef __KEYSTONE_H__
> +#define __KEYSTONE_H__
> +
> +extern struct smp_operations keystone_smp_ops;
> +extern void secondary_startup(void);
> +
> +#endif /* __KEYSTONE_H__ */
> diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c
> new file mode 100644
> index 0000000..3071dda
> --- /dev/null
> +++ b/arch/arm/mach-keystone/platsmp.c
> @@ -0,0 +1,67 @@
> +/*
> + * Keystone SOC SMP platform code
> + *
> + * Copyright 2013 Texas Instruments, Inc.
> + * Cyril Chemparathy <cyril@ti.com>
> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
> + *
> + * Based on platsmp.c, Copyright (C) 2002 ARM Ltd.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/init.h>
> +#include <linux/smp.h>
> +#include <linux/io.h>
> +
> +#include <asm/smp_plat.h>
> +
> +#include "keystone.h"
> +
> +static void __init keystone_smp_init_cpus(void)
> +{
> + unsigned int i, ncores;
> +
> + ncores = 4;
This hardcoding can be done away, if cpu nodes are passed through DT.
Also set set_cpu_possible will be done by "arm_dt_init_cpu_maps" in devtree.c
> +
> + /* sanity check */
> + if (ncores > NR_CPUS) {
> + pr_warn("restricted to %d cpus\n", NR_CPUS);
> + ncores = NR_CPUS;
> + }
> +
> + for (i = 0; i < ncores; i++)
> + set_cpu_possible(i, true);
> +}
> +
> +static int __cpuinit keystone_smp_boot_secondary(unsigned int cpu,
> + struct task_struct *idle)
> +{
> + unsigned long start = virt_to_phys(&secondary_startup);
> + int error;
> +
> + pr_debug("keystone-smp: booting cpu %d, vector %08lx\n",
> + cpu, start);
> +
> + asm volatile (
> + "mov r0, #0\n" /* power on cmd */
> + "mov r1, %1\n" /* cpu */
> + "mov r2, %2\n" /* start */
> + ".inst 0xe1600070\n" /* smc #0 */
> + "mov %0, r0\n"
> + : "=r" (error)
> + : "r"(cpu), "r"(start)
> + : "cc", "r0", "r1", "r2", "memory"
> + );
> +
> + pr_debug("keystone-smp: monitor returned %d\n", error);
> +
> + return error;
> +}
> +
> +struct smp_operations keystone_smp_ops __initdata = {
> + .smp_init_cpus = keystone_smp_init_cpus,
> + .smp_boot_secondary = keystone_smp_boot_secondary,
> +};
> --
> 1.7.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
--
with warm regards,
Chander Kashyap
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data
2013-06-10 19:55 ` [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data Santosh Shilimkar
@ 2013-06-11 9:38 ` Mark Rutland
2013-06-11 13:40 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Mark Rutland @ 2013-06-11 9:38 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Jun 10, 2013 at 08:55:23PM +0100, Santosh Shilimkar wrote:
> Add minimal device tree data for Keystone2 based SOCs. Patch
> contains mainly ARM related SOC data and nothing about EVM specific
> yet.
>
> Cc: Grant Likely <grant.likely@linaro.org>
> Cc: Olof Johansson <olof@lixom.net>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: arm at kernel.org
>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
> I have seen some ongoing #include cleanups from Stephen Warren and cpu_node
> updates from Lorenzo, but since am unaware of the dependencies, dts file is
> aligned with the v3.10rcx ARM dts files. The changes are very trivial so
> I can fix them quickly when they show up in linux-next.
>
> .../devicetree/bindings/arm/keystone/keystone.txt | 9 ++
> arch/arm/boot/dts/keystone.dts | 98 ++++++++++++++++++++
> 2 files changed, 107 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/arm/keystone/keystone.txt
> create mode 100644 arch/arm/boot/dts/keystone.dts
>
> diff --git a/Documentation/devicetree/bindings/arm/keystone/keystone.txt b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
> new file mode 100644
> index 0000000..b496d4c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
> @@ -0,0 +1,9 @@
> +TI Kesytone Platforms Device Tree Bindings
> +-----------------------------------------------
> +
> +Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
> +following properties.
> +
> +Required properties:
> + - compatible: Every devices present in Keystone SOC should be in
> + the form "ti,keystone-*";
I'm not sure that makes sense. The GIC for example isn't a "ti,keystone-gic",
and the uarts in the soc node don't start with "ti,keystone-" either.
> diff --git a/arch/arm/boot/dts/keystone.dts b/arch/arm/boot/dts/keystone.dts
> new file mode 100644
> index 0000000..9ca7d25
> --- /dev/null
> +++ b/arch/arm/boot/dts/keystone.dts
> @@ -0,0 +1,98 @@
> +/*
> + * Copyright 2013 Texas Instruments, Inc.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +/dts-v1/;
> +/include/ "skeleton.dtsi"
> +
> +/ {
> + model = "Texas Instruments Keystone 2 SoC";
> + compatible = "ti,keystone-evm";
> + #address-cells = <2>;
> + #size-cells = <2>;
> + interrupt-parent = <&gic>;
> +
> + aliases {
> + serial0 = &uart0;
> + };
> +
> + memory {
> + reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
> + };
> +
> + cpus {
> + interrupt-parent = <&gic>;
> +
> + cpu at 0 {
> + compatible = "arm,cortex-a15";
> + };
> +
> + cpu at 1 {
> + compatible = "arm,cortex-a15";
> + };
> +
> + cpu at 2 {
> + compatible = "arm,cortex-a15";
> + };
> +
> + cpu at 3 {
> + compatible = "arm,cortex-a15";
> + };
> + };
It would be nice if these matched up with what's *currently* specified in the
cpu bindings (each cpu has it's reg and device_type set, cpus have the
requisite #address-cells and #size cells as required by ePAPR).
All you should need is:
cpus {
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&gic>;
cpu at 0 {
compatible = "arm,cortex-a15";
device_type = "cpu";
reg = <0>;
};
cpu at 1 {
compatible = "arm,cortex-a15";
device_type = "cpu";
reg = <1>;
};
cpu at 2 {
compatible = "arm,cortex-a15";
device_type = "cpu";
reg = <2>;
};
cpu at 3 {
compatible = "arm,cortex-a15";
device_type = "cpu";
reg = <3>;
};
};
Thanks,
Mark.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines
2013-06-11 5:16 ` Chander Kashyap
@ 2013-06-11 13:34 ` Santosh Shilimkar
2013-06-11 14:54 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-11 13:34 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 01:16 AM, Chander Kashyap wrote:
> 2013/6/11 Santosh Shilimkar <santosh.shilimkar@ti.com>:
>> Add basic SMP support for Keystone machines. This does not
>> include support for CPU hotplug for now.
>>
>> Cc: Olof Johansson <olof@lixom.net>
>> Cc: Arnd Bergmann <arnd@arndb.de>
>> Cc: arm at kernel.org
>>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> ---
[..]
>> diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c
>> new file mode 100644
>> index 0000000..3071dda
>> --- /dev/null
>> +++ b/arch/arm/mach-keystone/platsmp.c
>> @@ -0,0 +1,67 @@
>> +/*
>> + * Keystone SOC SMP platform code
>> + *
>> + * Copyright 2013 Texas Instruments, Inc.
>> + * Cyril Chemparathy <cyril@ti.com>
>> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
>> + *
>> + * Based on platsmp.c, Copyright (C) 2002 ARM Ltd.
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms and conditions of the GNU General Public License,
>> + * version 2, as published by the Free Software Foundation.
>> + */
>> +
>> +#include <linux/init.h>
>> +#include <linux/smp.h>
>> +#include <linux/io.h>
>> +
>> +#include <asm/smp_plat.h>
>> +
>> +#include "keystone.h"
>> +
>> +static void __init keystone_smp_init_cpus(void)
>> +{
>> + unsigned int i, ncores;
>> +
>> + ncores = 4;
> This hardcoding can be done away, if cpu nodes are passed through DT.
> Also set set_cpu_possible will be done by "arm_dt_init_cpu_maps" in devtree.c
>
Thanks. Will have a look at it.
Regards,
Santosh
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data
2013-06-11 9:38 ` Mark Rutland
@ 2013-06-11 13:40 ` Santosh Shilimkar
0 siblings, 0 replies; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-11 13:40 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 05:38 AM, Mark Rutland wrote:
> On Mon, Jun 10, 2013 at 08:55:23PM +0100, Santosh Shilimkar wrote:
>> Add minimal device tree data for Keystone2 based SOCs. Patch
>> contains mainly ARM related SOC data and nothing about EVM specific
>> yet.
>>
>> Cc: Grant Likely <grant.likely@linaro.org>
>> Cc: Olof Johansson <olof@lixom.net>
>> Cc: Arnd Bergmann <arnd@arndb.de>
>> Cc: arm at kernel.org
>>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> ---
>> I have seen some ongoing #include cleanups from Stephen Warren and cpu_node
>> updates from Lorenzo, but since am unaware of the dependencies, dts file is
>> aligned with the v3.10rcx ARM dts files. The changes are very trivial so
>> I can fix them quickly when they show up in linux-next.
>>
>> .../devicetree/bindings/arm/keystone/keystone.txt | 9 ++
>> arch/arm/boot/dts/keystone.dts | 98 ++++++++++++++++++++
>> 2 files changed, 107 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/arm/keystone/keystone.txt
>> create mode 100644 arch/arm/boot/dts/keystone.dts
>>
>> diff --git a/Documentation/devicetree/bindings/arm/keystone/keystone.txt b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
>> new file mode 100644
>> index 0000000..b496d4c
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/arm/keystone/keystone.txt
>> @@ -0,0 +1,9 @@
>> +TI Kesytone Platforms Device Tree Bindings
>> +-----------------------------------------------
>> +
>> +Boards with Keystone2 based devices (TCI66xxK2H) SOC shall have the
>> +following properties.
>> +
>> +Required properties:
>> + - compatible: Every devices present in Keystone SOC should be in
>> + the form "ti,keystone-*";
>
> I'm not sure that makes sense. The GIC for example isn't a "ti,keystone-gic",
> and the uarts in the soc node don't start with "ti,keystone-" either.
>
I shouldn't have generalized it. UART are compatible with ns16550 UARTs.
Will update the documentation line in next version.
>> diff --git a/arch/arm/boot/dts/keystone.dts b/arch/arm/boot/dts/keystone.dts
>> new file mode 100644
>> index 0000000..9ca7d25
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/keystone.dts
>> @@ -0,0 +1,98 @@
>> +/*
>> + * Copyright 2013 Texas Instruments, Inc.
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>> + */
>> +
>> +/dts-v1/;
>> +/include/ "skeleton.dtsi"
>> +
>> +/ {
>> + model = "Texas Instruments Keystone 2 SoC";
>> + compatible = "ti,keystone-evm";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + interrupt-parent = <&gic>;
>> +
>> + aliases {
>> + serial0 = &uart0;
>> + };
>> +
>> + memory {
>> + reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
>> + };
>> +
>> + cpus {
>> + interrupt-parent = <&gic>;
>> +
>> + cpu at 0 {
>> + compatible = "arm,cortex-a15";
>> + };
>> +
>> + cpu at 1 {
>> + compatible = "arm,cortex-a15";
>> + };
>> +
>> + cpu at 2 {
>> + compatible = "arm,cortex-a15";
>> + };
>> +
>> + cpu at 3 {
>> + compatible = "arm,cortex-a15";
>> + };
>> + };
>
> It would be nice if these matched up with what's *currently* specified in the
> cpu bindings (each cpu has it's reg and device_type set, cpus have the
> requisite #address-cells and #size cells as required by ePAPR).
>
> All you should need is:
>
> cpus {
> #address-cells = <1>;
> #size-cells = <0>;
>
> interrupt-parent = <&gic>;
>
> cpu at 0 {
> compatible = "arm,cortex-a15";
> device_type = "cpu";
> reg = <0>;
> };
>
> cpu at 1 {
> compatible = "arm,cortex-a15";
> device_type = "cpu";
> reg = <1>;
> };
>
> cpu at 2 {
> compatible = "arm,cortex-a15";
> device_type = "cpu";
> reg = <2>;
> };
>
> cpu at 3 {
> compatible = "arm,cortex-a15";
> device_type = "cpu";
> reg = <3>;
> };
> };
>
I did notice this as mentioned in the comments but was not sure
about the dependency. Now since you confirmed there is none, consider
above updates taken care in next version.
Regards,
Santosh
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines
2013-06-11 13:34 ` Santosh Shilimkar
@ 2013-06-11 14:54 ` Santosh Shilimkar
0 siblings, 0 replies; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-11 14:54 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 09:34 AM, Santosh Shilimkar wrote:
> On Tuesday 11 June 2013 01:16 AM, Chander Kashyap wrote:
>> 2013/6/11 Santosh Shilimkar <santosh.shilimkar@ti.com>:
>>> Add basic SMP support for Keystone machines. This does not
>>> include support for CPU hotplug for now.
>>>
>>> Cc: Olof Johansson <olof@lixom.net>
>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>> Cc: arm at kernel.org
>>>
>>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>> ---
>
> [..]
>
>>> diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c
>>> new file mode 100644
>>> index 0000000..3071dda
>>> --- /dev/null
>>> +++ b/arch/arm/mach-keystone/platsmp.c
>>> @@ -0,0 +1,67 @@
>>> +/*
>>> + * Keystone SOC SMP platform code
>>> + *
>>> + * Copyright 2013 Texas Instruments, Inc.
>>> + * Cyril Chemparathy <cyril@ti.com>
>>> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
>>> + *
>>> + * Based on platsmp.c, Copyright (C) 2002 ARM Ltd.
>>> + *
>>> + * This program is free software; you can redistribute it and/or modify it
>>> + * under the terms and conditions of the GNU General Public License,
>>> + * version 2, as published by the Free Software Foundation.
>>> + */
>>> +
>>> +#include <linux/init.h>
>>> +#include <linux/smp.h>
>>> +#include <linux/io.h>
>>> +
>>> +#include <asm/smp_plat.h>
>>> +
>>> +#include "keystone.h"
>>> +
>>> +static void __init keystone_smp_init_cpus(void)
>>> +{
>>> + unsigned int i, ncores;
>>> +
>>> + ncores = 4;
>> This hardcoding can be done away, if cpu nodes are passed through DT.
>> Also set set_cpu_possible will be done by "arm_dt_init_cpu_maps" in devtree.c
>>
> Thanks. Will have a look at it.
>
For record, i have dropped keystone_smp_init_cpus() completely.
arm_dt_init_cpu_maps() does everything what we need. Thanks
for pointer.
Looks like other platforms can also do the same
but was curious why its not being used yet. May be I missed
some ongoing patches. Do you know ?
Regards,
Santosh
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-10 19:55 ` [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support Santosh Shilimkar
@ 2013-06-11 19:27 ` Arnd Bergmann
2013-06-11 20:10 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Arnd Bergmann @ 2013-06-11 19:27 UTC (permalink / raw)
To: linux-arm-kernel
On Monday 10 June 2013 15:55:21 Santosh Shilimkar wrote:
>
> diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig
> new file mode 100644
> index 0000000..62e968c
> --- /dev/null
> +++ b/arch/arm/configs/keystone_defconfig
> @@ -0,0 +1,157 @@
> +# CONFIG_SWAP is not set
> +CONFIG_POSIX_MQUEUE=y
> +CONFIG_HIGH_RES_TIMERS=y
> +CONFIG_IKCONFIG=y
How about adding the things you need to multi_v7_defconfig instead?
We try not to have too many defconfigs.
> diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
> new file mode 100644
> index 0000000..39fab74
> --- /dev/null
> +++ b/arch/arm/mach-keystone/Kconfig
> @@ -0,0 +1,16 @@
> +config ARCH_KEYSTONE
> + bool "Texas Instruments Keystone Devices"
> + select CPU_V7
> + select ARM_GIC
> + select HAVE_ARM_ARCH_TIMER
> + select USE_OF
> + select MULTI_IRQ_HANDLER
> + select CLKSRC_MMIO
> + select GENERIC_CLOCKEVENTS
> + select SPARSE_IRQ
> + select HAVE_SCHED_CLOCK
> + select ARCH_WANT_OPTIONAL_GPIOLIB
> + select ARM_ERRATA_798181
You don't need to select any of the options that are already selected
by CONFIG_ARCH_MULTIPLATFORM.
Please add a 'depends on ARCH_MULTI_V7' statement in there to prevent
this option from showing up for incompatible platforms.
> diff --git a/arch/arm/mach-keystone/include/mach/timex.h b/arch/arm/mach-keystone/include/mach/timex.h
> new file mode 100644
> index 0000000..e4c595a
> --- /dev/null
> +++ b/arch/arm/mach-keystone/include/mach/timex.h
> @@ -0,0 +1,15 @@
> +/*
> + * Copyright 2013 Texas Instruments, Inc.
> + * Cyril Chemparathy <cyril@ti.com>
> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +#ifndef __MACH_TIMEX_H
> +#define __MACH_TIMEX_H
> +
> +#define CLOCK_TICK_RATE 1000000
> +
> +#endif
Not needed any more
> diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
> new file mode 100644
> index 0000000..6c6fc42
> --- /dev/null
> +++ b/arch/arm/mach-keystone/keystone.c
> +static void __iomem *keystone_rstctrl;
> +
> +static void __init keystone_init(void)
> +{
> + struct device_node *node;
> +
> + node = of_find_compatible_node(NULL, NULL, "ti,keystone-reset");
> + if (WARN_ON(!node)) {
> + pr_warn("ti, keystone-reset node undefined\n");
> + return;
> + }
> +
> + keystone_rstctrl = of_iomap(node, 0);
> + if (WARN_ON(!keystone_rstctrl)) {
> + pr_warn("ti, keystone-reset iomap error\n");
> + return;
> + }
> +
> + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> +}
> +
> +static const char *keystone_match[] __initconst = {
> + "ti,keystone-evm",
> + NULL,
> +};
> +
> +void keystone_restart(char mode, const char *cmd)
> +{
> + u32 val;
> +
> + /* Enable write access to RSTCTRL */
> + val = __raw_readl(keystone_rstctrl);
> + val &= PLL_RESET_WRITE_KEY_MASK;
> + val |= PLL_RESET_WRITE_KEY;
> + __raw_writel(val, keystone_rstctrl);
> +
> + /* Reset the SOC */
> + val = __raw_readl(keystone_rstctrl);
> + val &= ~PLL_RESET;
> + __raw_writel(val, keystone_rstctrl);
> +}
Please use 'readl', not '__raw_readl' unless you are accessing memory.
> +DT_MACHINE_START(KEYSTONE, "Keystone")
> + .map_io = debug_ll_io_init,
> + .init_machine = keystone_init,
> + .dt_compat = keystone_match,
> + .restart = keystone_restart,
> +MACHINE_END
You can leave out the map_io line now.
Arnd
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-11 19:27 ` Arnd Bergmann
@ 2013-06-11 20:10 ` Santosh Shilimkar
2013-06-11 20:24 ` Arnd Bergmann
0 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-11 20:10 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 03:27 PM, Arnd Bergmann wrote:
> On Monday 10 June 2013 15:55:21 Santosh Shilimkar wrote:
>>
>> diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig
>> new file mode 100644
>> index 0000000..62e968c
>> --- /dev/null
>> +++ b/arch/arm/configs/keystone_defconfig
>> @@ -0,0 +1,157 @@
>> +# CONFIG_SWAP is not set
>> +CONFIG_POSIX_MQUEUE=y
>> +CONFIG_HIGH_RES_TIMERS=y
>> +CONFIG_IKCONFIG=y
>
> How about adding the things you need to multi_v7_defconfig instead?
> We try not to have too many defconfigs.
>
I initially thought about it but after looking at various subsystems needed
(from internal trees), we will need to 1 custom defoconfig and my plan
is to limit to only one for all Keystone machines.
>> diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
>> new file mode 100644
>> index 0000000..39fab74
>> --- /dev/null
>> +++ b/arch/arm/mach-keystone/Kconfig
>> @@ -0,0 +1,16 @@
>> +config ARCH_KEYSTONE
>> + bool "Texas Instruments Keystone Devices"
>> + select CPU_V7
>> + select ARM_GIC
>> + select HAVE_ARM_ARCH_TIMER
>> + select USE_OF
>> + select MULTI_IRQ_HANDLER
>> + select CLKSRC_MMIO
>> + select GENERIC_CLOCKEVENTS
>> + select SPARSE_IRQ
>> + select HAVE_SCHED_CLOCK
>> + select ARCH_WANT_OPTIONAL_GPIOLIB
>> + select ARM_ERRATA_798181
>
> You don't need to select any of the options that are already selected
> by CONFIG_ARCH_MULTIPLATFORM.
>
Good to know.
> Please add a 'depends on ARCH_MULTI_V7' statement in there to prevent
> this option from showing up for incompatible platforms.
>
Will do.
>> diff --git a/arch/arm/mach-keystone/include/mach/timex.h b/arch/arm/mach-keystone/include/mach/timex.h
>> new file mode 100644
>> index 0000000..e4c595a
>> --- /dev/null
>> +++ b/arch/arm/mach-keystone/include/mach/timex.h
>> @@ -0,0 +1,15 @@
>> +/*
>> + * Copyright 2013 Texas Instruments, Inc.
>> + * Cyril Chemparathy <cyril@ti.com>
>> + * Santosh Shilimkar <santosh.shillimkar@ti.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms and conditions of the GNU General Public License,
>> + * version 2, as published by the Free Software Foundation.
>> + */
>> +#ifndef __MACH_TIMEX_H
>> +#define __MACH_TIMEX_H
>> +
>> +#define CLOCK_TICK_RATE 1000000
>> +
>> +#endif
>
> Not needed any more
>
ok
>> diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
>> new file mode 100644
>> index 0000000..6c6fc42
>> --- /dev/null
>> +++ b/arch/arm/mach-keystone/keystone.c
>
>> +static void __iomem *keystone_rstctrl;
>> +
>> +static void __init keystone_init(void)
>> +{
>> + struct device_node *node;
>> +
>> + node = of_find_compatible_node(NULL, NULL, "ti,keystone-reset");
>> + if (WARN_ON(!node)) {
>> + pr_warn("ti, keystone-reset node undefined\n");
>> + return;
>> + }
>> +
>> + keystone_rstctrl = of_iomap(node, 0);
>> + if (WARN_ON(!keystone_rstctrl)) {
>> + pr_warn("ti, keystone-reset iomap error\n");
>> + return;
>> + }
>> +
>> + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> +}
>> +
>> +static const char *keystone_match[] __initconst = {
>> + "ti,keystone-evm",
>> + NULL,
>> +};
>> +
>> +void keystone_restart(char mode, const char *cmd)
>> +{
>> + u32 val;
>> +
>> + /* Enable write access to RSTCTRL */
>> + val = __raw_readl(keystone_rstctrl);
>> + val &= PLL_RESET_WRITE_KEY_MASK;
>> + val |= PLL_RESET_WRITE_KEY;
>> + __raw_writel(val, keystone_rstctrl);
>> +
>> + /* Reset the SOC */
>> + val = __raw_readl(keystone_rstctrl);
>> + val &= ~PLL_RESET;
>> + __raw_writel(val, keystone_rstctrl);
>> +}
>
> Please use 'readl', not '__raw_readl' unless you are accessing memory.
>
Just oversight. Will fix that.
>> +DT_MACHINE_START(KEYSTONE, "Keystone")
>> + .map_io = debug_ll_io_init,
>> + .init_machine = keystone_init,
>> + .dt_compat = keystone_match,
>> + .restart = keystone_restart,
>> +MACHINE_END
>
> You can leave out the map_io line now.
>
Cool. Will drop that.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-11 20:10 ` Santosh Shilimkar
@ 2013-06-11 20:24 ` Arnd Bergmann
2013-06-11 20:56 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Arnd Bergmann @ 2013-06-11 20:24 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 16:10:32 Santosh Shilimkar wrote:
> On Tuesday 11 June 2013 03:27 PM, Arnd Bergmann wrote:
> > On Monday 10 June 2013 15:55:21 Santosh Shilimkar wrote:
> >>
> >> diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig
> >> new file mode 100644
> >> index 0000000..62e968c
> >> --- /dev/null
> >> +++ b/arch/arm/configs/keystone_defconfig
> >> @@ -0,0 +1,157 @@
> >> +# CONFIG_SWAP is not set
> >> +CONFIG_POSIX_MQUEUE=y
> >> +CONFIG_HIGH_RES_TIMERS=y
> >> +CONFIG_IKCONFIG=y
> >
> > How about adding the things you need to multi_v7_defconfig instead?
> > We try not to have too many defconfigs.
> >
> I initially thought about it but after looking at various subsystems needed
> (from internal trees), we will need to 1 custom defoconfig and my plan
> is to limit to only one for all Keystone machines.
Ok, fair enough. Could you enable keystone in multi_v7_defconfig anyway
and ensure that it is able to boot?
Arnd
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-11 20:24 ` Arnd Bergmann
@ 2013-06-11 20:56 ` Santosh Shilimkar
2013-06-12 19:30 ` Santosh Shilimkar
0 siblings, 1 reply; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-11 20:56 UTC (permalink / raw)
To: linux-arm-kernel
On Tuesday 11 June 2013 04:24 PM, Arnd Bergmann wrote:
> On Tuesday 11 June 2013 16:10:32 Santosh Shilimkar wrote:
>> On Tuesday 11 June 2013 03:27 PM, Arnd Bergmann wrote:
>>> On Monday 10 June 2013 15:55:21 Santosh Shilimkar wrote:
>>>>
>>>> diff --git a/arch/arm/configs/keystone_defconfig b/arch/arm/configs/keystone_defconfig
>>>> new file mode 100644
>>>> index 0000000..62e968c
>>>> --- /dev/null
>>>> +++ b/arch/arm/configs/keystone_defconfig
>>>> @@ -0,0 +1,157 @@
>>>> +# CONFIG_SWAP is not set
>>>> +CONFIG_POSIX_MQUEUE=y
>>>> +CONFIG_HIGH_RES_TIMERS=y
>>>> +CONFIG_IKCONFIG=y
>>>
>>> How about adding the things you need to multi_v7_defconfig instead?
>>> We try not to have too many defconfigs.
>>>
>> I initially thought about it but after looking at various subsystems needed
>> (from internal trees), we will need to 1 custom defoconfig and my plan
>> is to limit to only one for all Keystone machines.
>
> Ok, fair enough. Could you enable keystone in multi_v7_defconfig anyway
> and ensure that it is able to boot?
>
Thanks. Will make sure it boots with multi_v7_defconfig.
Regards,
Santosh
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support
2013-06-11 20:56 ` Santosh Shilimkar
@ 2013-06-12 19:30 ` Santosh Shilimkar
0 siblings, 0 replies; 14+ messages in thread
From: Santosh Shilimkar @ 2013-06-12 19:30 UTC (permalink / raw)
To: linux-arm-kernel
Arnd,
On Tuesday 11 June 2013 04:56 PM, Santosh Shilimkar wrote:
> On Tuesday 11 June 2013 04:24 PM, Arnd Bergmann wrote:
>> On Tuesday 11 June 2013 16:10:32 Santosh Shilimkar wrote:
[..]
>> Ok, fair enough. Could you enable keystone in multi_v7_defconfig anyway
>> and ensure that it is able to boot?
>>
> Thanks. Will make sure it boots with multi_v7_defconfig.
>
I spent some time to get "multi_v7_defconfig" on OMAP and Keystone
working. ARCH_SIRF machine code needs a fix and the multi_v7_defconfig
needs few generic updates like enabling ramdisk and ext2 related
support. With those two updates, OMAP5 and Keystone boots with
multi_v7_defconfig. Will post those couple of patches for
multi_v7_defconfig and also refresh the Keystone series.
Thanks for the feedback.
Regards,
Santosh
P.S: On Keystone I noticed a weired issue with local_flush_tlb_all() while
booting with multi_v7_defconfig which I will debug it further. Its
mostly looks like keystone specific issue since I don't see that issue
on OMAP5.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-06-12 19:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-10 19:55 [PATCH 0/3] ARM: Add minimal support for TI Keystone SOCs Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 1/3] ARM: keystone: Add minimal TI Keystone platform support Santosh Shilimkar
2013-06-11 19:27 ` Arnd Bergmann
2013-06-11 20:10 ` Santosh Shilimkar
2013-06-11 20:24 ` Arnd Bergmann
2013-06-11 20:56 ` Santosh Shilimkar
2013-06-12 19:30 ` Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 2/3] ARM: keystone: Enable SMP support on Keystone machines Santosh Shilimkar
2013-06-11 5:16 ` Chander Kashyap
2013-06-11 13:34 ` Santosh Shilimkar
2013-06-11 14:54 ` Santosh Shilimkar
2013-06-10 19:55 ` [PATCH 3/3] ARM: dts: keystone: Add minimal Keystone SOC device tree data Santosh Shilimkar
2013-06-11 9:38 ` Mark Rutland
2013-06-11 13:40 ` Santosh Shilimkar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).