Skip to contentSkip to conversation

ARM: keystone2: Enable OF_CONTROL and DM

PATCH New Lokesh Vutla 3 participants 19 messages Sep 19, 2015 – Oct 22, 2015

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover ARM: keystone2: Enable OF_CONTROL and DM

This patch series enables OF_CONTROL and DM for all keystone platforms. In order to add support for OF_CONTROL all the keystone2 specific DT files are imported from Linux kernel. For now only DM_SERIAL is enabled on all keystone2 platforms, moving forward all other drivers are converted to DM and will be enabled in defconfig.

Build targets used:
UART boot: u-boot-dtb.bin
NAND boot: MLO
SPI boot: u-boot-spl.gph

Above three bootmodes are verified on the following platforms:
K2HK-evm, K2L-evm, K2E-evm.

This patch series is based on top of keystone serial driver posted previously:
https://www.mail-archive.com/u-boot%40lists.denx.de/msg186443.html

Lokesh Vutla (8):
ARM: keystone2: Fix serial port init
ARM: keystone2: spl: Fix stack allocation with CONFIG_SYS_MALLOC_F_LEN
ARM: dts: Keystone2: Import generic dt files from Linux Kernel
ARM: dts: keystone2: Do not use LPAE addresses in U-Boot
ARM: dts: k2hk: Enable OF_CONTROL and DM
ARM: dts: k2l: Enable OF_CONTROL and DM
ARM: dts: k2e: Enable OF_CONTROL and DM
ARM: keystone2: Use dtb images by default

 arch/arm/dts/Makefile                |   4 +
 arch/arm/dts/k2e-clocks.dtsi         |  77 +++++++
 arch/arm/dts/k2e-evm.dts             | 154 +++++++++++++
 arch/arm/dts/k2e-netcp.dtsi          | 206 +++++++++++++++++
 arch/arm/dts/k2e.dtsi                | 147 ++++++++++++
 arch/arm/dts/k2hk-clocks.dtsi        | 425 +++++++++++++++++++++++++++++++++++
 arch/arm/dts/k2hk-evm.dts            | 182 +++++++++++++++
 arch/arm/dts/k2hk-netcp.dtsi         | 208 +++++++++++++++++
 arch/arm/dts/k2hk.dtsi               | 114 ++++++++++
 arch/arm/dts/k2l-clocks.dtsi         | 266 ++++++++++++++++++++++
 arch/arm/dts/k2l-evm.dts             | 131 +++++++++++
 arch/arm/dts/k2l-netcp.dtsi          | 189 ++++++++++++++++
 arch/arm/dts/k2l.dtsi                | 108 +++++++++
 arch/arm/dts/keystone-clocks.dtsi    | 414 ++++++++++++++++++++++++++++++++++
 arch/arm/dts/keystone.dtsi           | 327 +++++++++++++++++++++++++++
 arch/arm/mach-keystone/config.mk     |   4 +-
 arch/arm/mach-keystone/init.c        |   2 +
 board/ti/ks2_evm/README              |  14 +-
 configs/k2e_evm_defconfig            |   5 +
 configs/k2hk_evm_defconfig           |   5 +
 configs/k2l_evm_defconfig            |   5 +
 include/configs/ti_armv7_keystone2.h |  13 +-
 22 files changed, 2990 insertions(+), 10 deletions(-)
 create mode 100644 arch/arm/dts/k2e-clocks.dtsi
 create mode 100644 arch/arm/dts/k2e-evm.dts
 create mode 100644 arch/arm/dts/k2e-netcp.dtsi
 create mode 100644 arch/arm/dts/k2e.dtsi
 create mode 100644 arch/arm/dts/k2hk-clocks.dtsi
 create mode 100644 arch/arm/dts/k2hk-evm.dts
 create mode 100644 arch/arm/dts/k2hk-netcp.dtsi
 create mode 100644 arch/arm/dts/k2hk.dtsi
 create mode 100644 arch/arm/dts/k2l-clocks.dtsi
 create mode 100644 arch/arm/dts/k2l-evm.dts
 create mode 100644 arch/arm/dts/k2l-netcp.dtsi
 create mode 100644 arch/arm/dts/k2l.dtsi
 create mode 100644 arch/arm/dts/keystone-clocks.dtsi
 create mode 100644 arch/arm/dts/keystone.dtsi
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/8 ARM: keystone2: Fix serial port init

With CONFIG_DM_SERIAL is enabled NS16550_init() cannot be called directly. Driver probe should be taking care of this. So call this function only when DM_SERIAL is not enabled.

---
 arch/arm/mach-keystone/init.c | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/mach-keystone/init.c +2 -0
index a9a7d41..678afb1 100644
@@ -122,8 +122,10 @@ int arch_cpu_init(void)
 	 * UART register PWREMU_MGMT is initialized. Linux UART
 	 * driver doesn't handle this.
 	 */
+#ifndef CONFIG_DM_SERIAL
 	NS16550_init((NS16550_t)(CONFIG_SYS_NS16550_COM2),
 		     CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE);
+#endif
 
 	return 0;
 }
Signature · 1 line
2.1.4
#2 lore raw

PATCH 1/8 ARM: keystone2: Fix serial port init

Quoted 5 lines · Lokesh Vutla

With CONFIG_DM_SERIAL is enabled NS16550_init() cannot be called directly. Driver probe should be taking care of this. So call this function only when DM_SERIAL is not enabled.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/bb3b4e8e/attachment.sig>
#3 lore raw

PATCH 2/8 ARM: keystone2: spl: Fix stack allocation with CONFIG_SYS_MALLOC_F_LEN

In reply to Lokesh Vutla

If CONFIG_SYS_MALLOC_F_LEN is enabled, the stack is moved down to the specified size to make the malloc function available before relocation. But on keystone platforms SYS_SPL_MALLOC is immediately preceding stack, which is causing an overlap with this config enabled.
So leave a gap between malloc space and stack space.

---
 include/configs/ti_armv7_keystone2.h | 7 +++++++
 1 file changed, 7 insertions(+)
include/configs/ti_armv7_keystone2.h +7 -0
index 58c98ce..acc686c 100644
@@ -32,6 +32,12 @@
 #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SPL_TEXT_BASE - \
 					GENERATED_GBL_DATA_SIZE)
 
+#ifdef CONFIG_SYS_MALLOC_F_LEN
+#define SPL_MALLOC_F_SIZE	CONFIG_SYS_MALLOC_F_LEN
+#else
+#define SPL_MALLOC_F_SIZE	0
+#endif
+
 /* SPL SPI Loader Configuration */
 #define CONFIG_SPL_PAD_TO		65536
 #define CONFIG_SPL_MAX_SIZE		(CONFIG_SPL_PAD_TO - 8)
@@ -44,6 +50,7 @@
 #define CONFIG_SPL_STACK_SIZE		(8 * 1024)
 #define CONFIG_SPL_STACK		(CONFIG_SYS_SPL_MALLOC_START + \
 					CONFIG_SYS_SPL_MALLOC_SIZE + \
+					SPL_MALLOC_F_SIZE + \
 					CONFIG_SPL_STACK_SIZE - 4)
 #define CONFIG_SPL_SPI_FLASH_SUPPORT
 #define CONFIG_SPL_SPI_SUPPORT
Signature · 1 line
2.1.4
#4 lore raw

PATCH 2/8 ARM: keystone2: spl: Fix stack allocation with CONFIG_SYS_MALLOC_F_LEN

Quoted 7 lines · Lokesh Vutla

If CONFIG_SYS_MALLOC_F_LEN is enabled, the stack is moved down to the specified size to make the malloc function available before relocation. But on keystone platforms SYS_SPL_MALLOC is immediately preceding stack, which is causing an overlap with this config enabled.
So leave a gap between malloc space and stack space.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/81c21bc6/attachment.sig>
#5 lore raw

PATCH 3/8 ARM: dts: Keystone2: Import generic dt files from Linux Kernel

In reply to Lokesh Vutla

Import various generic dts files from Linux kernel so that all keystone2 platforms can be DT in U-boot.

---
 arch/arm/dts/keystone-clocks.dtsi | 414 ++++++++++++++++++++++++++++++++++++++
 arch/arm/dts/keystone.dtsi        | 324 +++++++++++++++++++++++++++++
 2 files changed, 738 insertions(+)
 create mode 100644 arch/arm/dts/keystone-clocks.dtsi
 create mode 100644 arch/arm/dts/keystone.dtsi
arch/arm/dts/keystone-clocks.dtsi new file +414 -0
new file mode 100644
index 0000000..0c334b2
@@ -0,0 +1,414 @@
+/*
+ * Device Tree Source for Keystone 2 clock tree
+ *
+ * Copyright (C) 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.
+ */
+
+clocks {
+	#address-cells = <1>;
+	#size-cells = <1>;
+	ranges;
+
+	mainmuxclk: mainmuxclk at 2310108 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,pll-mux-clock";
+		clocks = <&mainpllclk>, <&refclksys>;
+		reg = <0x02310108 4>;
+		bit-shift = <23>;
+		bit-mask = <1>;
+		clock-output-names = "mainmuxclk";
+	};
+
+	chipclk1: chipclk1 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&mainmuxclk>;
+		clock-div = <1>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1";
+	};
+
+	chipclk1rstiso: chipclk1rstiso {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&mainmuxclk>;
+		clock-div = <1>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1rstiso";
+	};
+
+	gemtraceclk: gemtraceclk at 2310120 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,pll-divider-clock";
+		clocks = <&mainmuxclk>;
+		reg = <0x02310120 4>;
+		bit-shift = <0>;
+		bit-mask = <8>;
+		clock-output-names = "gemtraceclk";
+	};
+
+	chipstmxptclk: chipstmxptclk {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,pll-divider-clock";
+		clocks = <&mainmuxclk>;
+		reg = <0x02310164 4>;
+		bit-shift = <0>;
+		bit-mask = <8>;
+		clock-output-names = "chipstmxptclk";
+	};
+
+	chipclk12: chipclk12 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <2>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk12";
+	};
+
+	chipclk13: chipclk13 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <3>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk13";
+	};
+
+	paclk13: paclk13 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&papllclk>;
+		clock-div = <3>;
+		clock-mult = <1>;
+		clock-output-names = "paclk13";
+	};
+
+	chipclk14: chipclk14 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <4>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk14";
+	};
+
+	chipclk16: chipclk16 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <6>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk16";
+	};
+
+	chipclk112: chipclk112 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <12>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk112";
+	};
+
+	chipclk124: chipclk124 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1>;
+		clock-div = <24>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk114";
+	};
+
+	chipclk1rstiso13: chipclk1rstiso13 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1rstiso>;
+		clock-div = <3>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1rstiso13";
+	};
+
+	chipclk1rstiso14: chipclk1rstiso14 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1rstiso>;
+		clock-div = <4>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1rstiso14";
+	};
+
+	chipclk1rstiso16: chipclk1rstiso16 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1rstiso>;
+		clock-div = <6>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1rstiso16";
+	};
+
+	chipclk1rstiso112: chipclk1rstiso112 {
+		#clock-cells = <0>;
+		compatible = "fixed-factor-clock";
+		clocks = <&chipclk1rstiso>;
+		clock-div = <12>;
+		clock-mult = <1>;
+		clock-output-names = "chipclk1rstiso112";
+	};
+
+	clkmodrst0: clkmodrst0 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk16>;
+		clock-output-names = "modrst0";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+
+	clkusb: clkusb {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk16>;
+		clock-output-names = "usb";
+		reg = <0x02350008 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkaemifspi: clkaemifspi {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk16>;
+		clock-output-names = "aemif-spi";
+		reg = <0x0235000c 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+
+	clkdebugsstrc: clkdebugsstrc {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk13>;
+		clock-output-names = "debugss-trc";
+		reg = <0x02350014 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <1>;
+	};
+
+	clktetbtrc: clktetbtrc {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk13>;
+		clock-output-names = "tetb-trc";
+		reg = <0x02350018 0xb00>, <0x02350004 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <1>;
+	};
+
+	clkpa: clkpa {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&paclk13>;
+		clock-output-names = "pa";
+		reg = <0x0235001c 0xb00>, <0x02350008 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <2>;
+	};
+
+	clkcpgmac: clkcpgmac {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkpa>;
+		clock-output-names = "cpgmac";
+		reg = <0x02350020 0xb00>, <0x02350008 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <2>;
+	};
+
+	clksa: clksa {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkpa>;
+		clock-output-names = "sa";
+		reg = <0x02350024 0xb00>, <0x02350008 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <2>;
+	};
+
+	clkpcie: clkpcie {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk12>;
+		clock-output-names = "pcie";
+		reg = <0x02350028 0xb00>, <0x0235000c 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <3>;
+	};
+
+	clksr: clksr {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk1rstiso112>;
+		clock-output-names = "sr";
+		reg = <0x02350034 0xb00>, <0x02350018 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <6>;
+	};
+
+	clkgem0: clkgem0 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk1>;
+		clock-output-names = "gem0";
+		reg = <0x0235003c 0xb00>, <0x02350020 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <8>;
+	};
+
+	clkddr30: clkddr30 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&chipclk12>;
+		clock-output-names = "ddr3-0";
+		reg = <0x0235005c 0xb00>, <0x02350040 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <16>;
+	};
+
+	clkwdtimer0: clkwdtimer0 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "timer0";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkwdtimer1: clkwdtimer1 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "timer1";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkwdtimer2: clkwdtimer2 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "timer2";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkwdtimer3: clkwdtimer3 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "timer3";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clktimer15: clktimer15 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "timer15";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkuart0: clkuart0 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "uart0";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkuart1: clkuart1 {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "uart1";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkaemif: clkaemif {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkaemifspi>;
+		clock-output-names = "aemif";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkusim: clkusim {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "usim";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clki2c: clki2c {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "i2c";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkspi: clkspi {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkaemifspi>;
+		clock-output-names = "spi";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkgpio: clkgpio {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "gpio";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+
+	clkkeymgr: clkkeymgr {
+		#clock-cells = <0>;
+		compatible = "ti,keystone,psc-clock";
+		clocks = <&clkmodrst0>;
+		clock-output-names = "keymgr";
+		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
+		reg-names = "control", "domain";
+		domain-id = <0>;
+	};
+};
arch/arm/dts/keystone.dtsi new file +324 -0

324 lines not on this page · raw message

Signature · 1 line
2.1.4
#6 lore raw

PATCH 3/8 ARM: dts: Keystone2: Import generic dt files from Linux Kernel

Quoted 4 lines · Lokesh Vutla

Import various generic dts files from Linux kernel so that all keystone2 platforms can be DT in U-boot.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/217cd45d/attachment.sig>
#7 lore raw

PATCH 4/8 ARM: dts: keystone2: Do not use LPAE addresses in U-Boot

In reply to Lokesh Vutla

Keystone dts files assumes that LPAE is enabled and top level root node uses 64bit addresses. This breaks the keystone boot with CONFIG_OF_CONTROL enabled. So do not use 64 bit addresse in U-Boot DT.

---
 arch/arm/dts/keystone.dtsi | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
arch/arm/dts/keystone.dtsi +8 -9
index 72816d6..9ab260f 100644
@@ -13,8 +13,8 @@
 
 / {
 	model = "Texas Instruments Keystone 2 SoC";
-	#address-cells = <2>;
-	#size-cells = <2>;
+	#address-cells = <1>;
+	#size-cells = <1>;
 	interrupt-parent = <&gic>;
 
 	aliases {
@@ -22,17 +22,17 @@
 	};
 
 	memory {
-		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
+		reg = <0x80000000 0x40000000>;
 	};
 
 	gic: interrupt-controller {
 		compatible = "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
 		interrupt-controller;
-		reg = <0x0 0x02561000 0x0 0x1000>,
-		      <0x0 0x02562000 0x0 0x2000>,
-		      <0x0 0x02564000 0x0 0x1000>,
-		      <0x0 0x02566000 0x0 0x2000>;
+		reg = <0x02561000 0x1000>,
+		      <0x02562000 0x2000>,
+		      <0x02564000 0x1000>,
+		      <0x02566000 0x2000>;
 		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
 				IRQ_TYPE_LEVEL_HIGH)>;
 	};
@@ -63,8 +63,7 @@
 		#size-cells = <1>;
 		compatible = "ti,keystone","simple-bus";
 		interrupt-parent = <&gic>;
-		ranges = <0x0 0x0 0x0 0xc0000000>;
-		dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
+		ranges;
 
 		pllctrl: pll-controller at 02310000 {
 			compatible = "ti,keystone-pllctrl", "syscon";
Signature · 1 line
2.1.4
#8 lore raw

PATCH 4/8 ARM: dts: keystone2: Do not use LPAE addresses in U-Boot

Quoted 5 lines · Lokesh Vutla

Keystone dts files assumes that LPAE is enabled and top level root node uses 64bit addresses. This breaks the keystone boot with CONFIG_OF_CONTROL enabled. So do not use 64 bit addresse in U-Boot DT.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/5a4cd952/attachment.sig>
#9 lore raw

PATCH 5/8 ARM: dts: k2hk: Enable OF_CONTROL and DM

In reply to Lokesh Vutla

Import k2hk specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

---
 arch/arm/dts/Makefile                |   2 +
 arch/arm/dts/k2hk-clocks.dtsi        | 425 +++++++++++++++++++++++++++++++++++
 arch/arm/dts/k2hk-evm.dts            | 182 +++++++++++++++
 arch/arm/dts/k2hk-netcp.dtsi         | 208 +++++++++++++++++
 arch/arm/dts/k2hk.dtsi               | 114 ++++++++++
 arch/arm/dts/keystone.dtsi           |   4 +
 configs/k2hk_evm_defconfig           |   5 +
 include/configs/ti_armv7_keystone2.h |   6 +-
 8 files changed, 945 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/k2hk-clocks.dtsi
 create mode 100644 arch/arm/dts/k2hk-evm.dts
 create mode 100644 arch/arm/dts/k2hk-netcp.dtsi
 create mode 100644 arch/arm/dts/k2hk.dtsi
arch/arm/dts/Makefile +2 -0
index 5afe8a9..b7adbda 100644
@@ -163,6 +163,8 @@ dtb-$(CONFIG_MACH_SUN9I) += \
 dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
 	vf610-colibri.dtb
 
+dtb-$(CONFIG_SOC_KEYSTONE) += k2hk-evm.dtb
+
 targets += $(dtb-y)
 
 # Add any required device tree compiler flags here
arch/arm/dts/k2hk-clocks.dtsi new file +425 -0

425 lines not on this page · raw message

arch/arm/dts/k2hk-evm.dts new file +182 -0

182 lines not on this page · raw message

arch/arm/dts/k2hk-netcp.dtsi new file +208 -0

208 lines not on this page · raw message

arch/arm/dts/k2hk.dtsi new file +114 -0

114 lines not on this page · raw message

arch/arm/dts/keystone.dtsi +4 -0
index 9ab260f..f39b969 100644
@@ -21,6 +21,10 @@
 		serial0	= &uart0;
 	};
 
+	chosen {
+		stdout-path = &uart0;
+	};
+
 	memory {
 		reg = <0x80000000 0x40000000>;
 	};
configs/k2hk_evm_defconfig +5 -0
index a604939..96d6615 100644
@@ -1,9 +1,14 @@
 CONFIG_ARM=y
 CONFIG_ARCH_KEYSTONE=y
 CONFIG_TARGET_K2HK_EVM=y
+CONFIG_DEFAULT_DEVICE_TREE="k2hk-evm"
 CONFIG_SPL=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_SETEXPR is not set
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_DISABLE_OF_CONTROL=y
 CONFIG_SPI_FLASH=y
 CONFIG_SYS_PROMPT="K2HK EVM # "
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
include/configs/ti_armv7_keystone2.h +5 -1
index acc686c..1830760 100644
@@ -59,9 +59,13 @@
 
 /* UART Configuration */
 #define CONFIG_SYS_NS16550
-#define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_MEM32
+#if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_DM_SERIAL)
+#define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	-4
+#else
+#define CONFIG_KEYSTONE_SERIAL
+#endif
 #define CONFIG_SYS_NS16550_COM1		KS2_UART0_BASE
 #define CONFIG_SYS_NS16550_COM2		KS2_UART1_BASE
 #define CONFIG_SYS_NS16550_CLK		clk_get_rate(KS2_CLK1_6)
Signature · 1 line
2.1.4
#10 lore raw

PATCH 5/8 ARM: dts: k2hk: Enable OF_CONTROL and DM

Quoted 4 lines · Lokesh Vutla

Import k2hk specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/76e01171/attachment.sig>
#11 lore raw

PATCH 6/8 ARM: dts: k2l: Enable OF_CONTROL and DM

In reply to Lokesh Vutla

Import k2l specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

---
 arch/arm/dts/Makefile        |   3 +-
 arch/arm/dts/k2l-clocks.dtsi | 266 +++++++++++++++++++++++++++++++++++++++++++
 arch/arm/dts/k2l-evm.dts     | 131 +++++++++++++++++++++
 arch/arm/dts/k2l-netcp.dtsi  | 189 ++++++++++++++++++++++++++++++
 arch/arm/dts/k2l.dtsi        | 108 ++++++++++++++++++
 configs/k2l_evm_defconfig    |   5 +
 6 files changed, 701 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/k2l-clocks.dtsi
 create mode 100644 arch/arm/dts/k2l-evm.dts
 create mode 100644 arch/arm/dts/k2l-netcp.dtsi
 create mode 100644 arch/arm/dts/k2l.dtsi
arch/arm/dts/Makefile +2 -1
index b7adbda..3f29c95 100644
@@ -163,7 +163,8 @@ dtb-$(CONFIG_MACH_SUN9I) += \
 dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
 	vf610-colibri.dtb
 
-dtb-$(CONFIG_SOC_KEYSTONE) += k2hk-evm.dtb
+dtb-$(CONFIG_SOC_KEYSTONE) += k2hk-evm.dtb \
+	k2l-evm.dtb
 
 targets += $(dtb-y)
 
arch/arm/dts/k2l-clocks.dtsi new file +266 -0

266 lines not on this page · raw message

arch/arm/dts/k2l-evm.dts new file +131 -0

131 lines not on this page · raw message

arch/arm/dts/k2l-netcp.dtsi new file +189 -0

189 lines not on this page · raw message

arch/arm/dts/k2l.dtsi new file +108 -0

108 lines not on this page · raw message

configs/k2l_evm_defconfig +5 -0
index a687e0c..3108dec 100644
@@ -1,9 +1,14 @@
 CONFIG_ARM=y
 CONFIG_ARCH_KEYSTONE=y
 CONFIG_TARGET_K2L_EVM=y
+CONFIG_DEFAULT_DEVICE_TREE="k2l-evm"
 CONFIG_SPL=y
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_SPI_FLASH=y
 CONFIG_SYS_PROMPT="K2L EVM # "
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_DISABLE_OF_CONTROL=y
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
Signature · 1 line
2.1.4
#12 lore raw

PATCH 6/8 ARM: dts: k2l: Enable OF_CONTROL and DM

Quoted 4 lines · Lokesh Vutla

Import k2l specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/34adc49c/attachment.sig>
#13 lore raw

PATCH 7/8 ARM: dts: k2e: Enable OF_CONTROL and DM

In reply to Lokesh Vutla

Import k2e specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

---
 arch/arm/dts/Makefile        |   3 +-
 arch/arm/dts/k2e-clocks.dtsi |  77 ++++++++++++++++
 arch/arm/dts/k2e-evm.dts     | 154 ++++++++++++++++++++++++++++++++
 arch/arm/dts/k2e-netcp.dtsi  | 206 +++++++++++++++++++++++++++++++++++++++++++
 arch/arm/dts/k2e.dtsi        | 147 ++++++++++++++++++++++++++++++
 configs/k2e_evm_defconfig    |   5 ++
 6 files changed, 591 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/k2e-clocks.dtsi
 create mode 100644 arch/arm/dts/k2e-evm.dts
 create mode 100644 arch/arm/dts/k2e-netcp.dtsi
 create mode 100644 arch/arm/dts/k2e.dtsi
arch/arm/dts/Makefile +2 -1
index 3f29c95..bc91934 100644
@@ -164,7 +164,8 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
 	vf610-colibri.dtb
 
 dtb-$(CONFIG_SOC_KEYSTONE) += k2hk-evm.dtb \
-	k2l-evm.dtb
+	k2l-evm.dtb \
+	k2e-evm.dtb
 
 targets += $(dtb-y)
 
arch/arm/dts/k2e-clocks.dtsi new file +77 -0

77 lines not on this page · raw message

arch/arm/dts/k2e-evm.dts new file +154 -0

154 lines not on this page · raw message

arch/arm/dts/k2e-netcp.dtsi new file +206 -0

206 lines not on this page · raw message

arch/arm/dts/k2e.dtsi new file +147 -0

147 lines not on this page · raw message

configs/k2e_evm_defconfig +5 -0
index c4cbadd..2b914ae 100644
@@ -2,8 +2,13 @@ CONFIG_ARM=y
 CONFIG_ARCH_KEYSTONE=y
 CONFIG_TARGET_K2E_EVM=y
 CONFIG_SPL=y
+CONFIG_DEFAULT_DEVICE_TREE="k2e-evm"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_SETEXPR is not set
 CONFIG_SPI_FLASH=y
 CONFIG_SYS_PROMPT="K2E EVM # "
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_DISABLE_OF_CONTROL=y
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
Signature · 1 line
2.1.4
#14 lore raw

PATCH 7/8 ARM: dts: k2e: Enable OF_CONTROL and DM

Quoted 4 lines · Lokesh Vutla

Import k2e specific DT files from Linux Kernel and enable OF_CONTROL, DM, DM_SERIAL.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/00d87f8e/attachment.sig>
#15 lore raw

PATCH 8/8 ARM: keystone2: Use dtb images by default

In reply to Lokesh Vutla

Now that OF_CONTROL is enabled on all keystone2 platforms, build the default images with DT.

---
 arch/arm/mach-keystone/config.mk |  4 ++--
 board/ti/ks2_evm/README          | 14 +++++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)
arch/arm/mach-keystone/config.mk +2 -2
index ceacffa..9ae1e9a 100644
@@ -16,13 +16,13 @@ spl/u-boot-spl.gph: spl/u-boot-spl.bin FORCE
 
 OBJCOPYFLAGS_u-boot-spi.gph = -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO) \
 			  --gap-fill=0
-u-boot-spi.gph: spl/u-boot-spl.gph u-boot.img FORCE
+u-boot-spi.gph: spl/u-boot-spl.gph u-boot-dtb.img FORCE
 	$(call if_changed,pad_cat)
 
 ifndef CONFIG_SPL_BUILD
 MKIMAGEFLAGS_MLO = -A $(ARCH) -T gpimage -C none \
 	-a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -n U-Boot
-MLO: u-boot.bin FORCE
+MLO: u-boot-dtb.bin FORCE
 	$(call if_changed,mkimage)
 	@dd if=/dev/zero bs=8 count=1 2>/dev/null >> $@
 endif
board/ti/ks2_evm/README +7 -7
index b8d55e7..0fe5c3b 100644
@@ -59,8 +59,8 @@ Supported boot modes:
  - UART boot
 
 Supported image formats:
- - u-boot.bin: for loading and running u-boot.bin through Texas instruments
-               code composure studio (CCS) and for UART boot.
+ - u-boot-dtb.bin: for loading and running u-boot-dtb.bin through
+		Texas Instruments code composure studio (CCS) and for UART boot.
  - u-boot-spi.gph: gpimage for programming SPI NOR flash for SPI NOR boot
  - MLO: gpimage for programming AEMIF NAND flash for NAND boot
 
@@ -69,18 +69,18 @@ Build instructions:
 Examples for k2hk, for k2e and k2l just replace k2hk prefix accordingly.
 Don't forget to add ARCH=arm and CROSS_COMPILE.
 
-To build u-boot.bin, u-boot-spi.gph, MLO:
+To build u-boot-dtb.bin, u-boot-spi.gph, MLO:
   >make k2hk_evm_defconfig
   >make
 
 Load and Run U-Boot on keystone EVMs using CCS
 =========================================
 
-Need Code Composer Studio (CCS) installed on a PC to load and run u-boot.bin
+Need Code Composer Studio (CCS) installed on a PC to load and run u-boot-dtb.bin
 on EVM. See instructions at below link for installing CCS on a Windows PC.
 http://processors.wiki.ti.com/index.php/MCSDK_UG_Chapter_Getting_Started#
 Installing_Code_Composer_Studio
-Use u-boot.bin from the build folder for loading and running u-boot binary
+Use u-boot-dtb.bin from the build folder for loading and running u-boot binary
 on EVM. Follow instructions at
 K2HK http://processors.wiki.ti.com/index.php/EVMK2H_Hardware_Setup
 K2E  http://processors.wiki.ti.com/index.php/EVMK2E_Hardware_Setup
@@ -100,7 +100,7 @@ loading the u-boot binary on the target EVM. Instead do the following:-
    is connected: Unknown)" at the debug window (This is created once Target
    configuration is launched) and select "Connect Target".
 2. Once target connect is successful, choose Tools->Load Memory option from the
-   top level menu. At the Load Memory window, choose the file u-boot.bin
+   top level menu. At the Load Memory window, choose the file u-boot-dtb.bin
    through "Browse" button and click "next >" button. In the next window, enter
    Start address as 0xc001000, choose Type-size "32 bits" and click "Finish"
    button.
@@ -167,7 +167,7 @@ Load and Run U-Boot on keystone EVMs using UART download
 
 Open BMC and regular UART terminals.
 
-1. On the regular UART port start xmodem transfer of the u-boot.bin
+1. On the regular UART port start xmodem transfer of the u-boot-dtb.bin
 2. Using BMC terminal set the ARM-UART bootmode and reboot the EVM
    BMC> bootmode #4
    MBC> reboot
Signature · 1 line
2.1.4
#16 lore raw

PATCH 8/8 ARM: keystone2: Use dtb images by default

Quoted 4 lines · Lokesh Vutla

Now that OF_CONTROL is enabled on all keystone2 platforms, build the default images with DT.

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/07ac52ed/attachment.sig>
#17 lore raw

cover ARM: keystone2: Enable OF_CONTROL and DM

In reply to Lokesh Vutla

Hi Tom,

Quoted 11 lines · Lokesh Vutla

This patch series enables OF_CONTROL and DM for all keystone platforms. In order to add support for OF_CONTROL all the keystone2 specific DT files are imported from Linux kernel. For now only DM_SERIAL is enabled on all keystone2 platforms, moving forward all other drivers are converted to DM and will be enabled in defconfig.

Build targets used:
UART boot: u-boot-dtb.bin
NAND boot: MLO
SPI boot: u-boot-spl.gph

Quoted 5 lines

Above three bootmodes are verified on the following platforms:
K2HK-evm, K2L-evm, K2E-evm.

This patch series is based on top of keystone serial driver posted previously:
https://www.mail-archive.com/u-boot%40lists.denx.de/msg186443.html

Gentle ping.

Thanks and regards,
Lokesh

Quoted 49 lines

Lokesh Vutla (8):
ARM: keystone2: Fix serial port init
ARM: keystone2: spl: Fix stack allocation with CONFIG_SYS_MALLOC_F_LEN
ARM: dts: Keystone2: Import generic dt files from Linux Kernel
ARM: dts: keystone2: Do not use LPAE addresses in U-Boot
ARM: dts: k2hk: Enable OF_CONTROL and DM
ARM: dts: k2l: Enable OF_CONTROL and DM
ARM: dts: k2e: Enable OF_CONTROL and DM
ARM: keystone2: Use dtb images by default

 arch/arm/dts/Makefile                |   4 +
 arch/arm/dts/k2e-clocks.dtsi         |  77 +++++++
 arch/arm/dts/k2e-evm.dts             | 154 +++++++++++++
 arch/arm/dts/k2e-netcp.dtsi          | 206 +++++++++++++++++
 arch/arm/dts/k2e.dtsi                | 147 ++++++++++++
 arch/arm/dts/k2hk-clocks.dtsi        | 425 +++++++++++++++++++++++++++++++++++
 arch/arm/dts/k2hk-evm.dts            | 182 +++++++++++++++
 arch/arm/dts/k2hk-netcp.dtsi         | 208 +++++++++++++++++
 arch/arm/dts/k2hk.dtsi               | 114 ++++++++++
 arch/arm/dts/k2l-clocks.dtsi         | 266 ++++++++++++++++++++++
 arch/arm/dts/k2l-evm.dts             | 131 +++++++++++
 arch/arm/dts/k2l-netcp.dtsi          | 189 ++++++++++++++++
 arch/arm/dts/k2l.dtsi                | 108 +++++++++
 arch/arm/dts/keystone-clocks.dtsi    | 414 ++++++++++++++++++++++++++++++++++
 arch/arm/dts/keystone.dtsi           | 327 +++++++++++++++++++++++++++
 arch/arm/mach-keystone/config.mk     |   4 +-
 arch/arm/mach-keystone/init.c        |   2 +
 board/ti/ks2_evm/README              |  14 +-
 configs/k2e_evm_defconfig            |   5 +
 configs/k2hk_evm_defconfig           |   5 +
 configs/k2l_evm_defconfig            |   5 +
 include/configs/ti_armv7_keystone2.h |  13 +-
 22 files changed, 2990 insertions(+), 10 deletions(-)
 create mode 100644 arch/arm/dts/k2e-clocks.dtsi
 create mode 100644 arch/arm/dts/k2e-evm.dts
 create mode 100644 arch/arm/dts/k2e-netcp.dtsi
 create mode 100644 arch/arm/dts/k2e.dtsi
 create mode 100644 arch/arm/dts/k2hk-clocks.dtsi
 create mode 100644 arch/arm/dts/k2hk-evm.dts
 create mode 100644 arch/arm/dts/k2hk-netcp.dtsi
 create mode 100644 arch/arm/dts/k2hk.dtsi
 create mode 100644 arch/arm/dts/k2l-clocks.dtsi
 create mode 100644 arch/arm/dts/k2l-evm.dts
 create mode 100644 arch/arm/dts/k2l-netcp.dtsi
 create mode 100644 arch/arm/dts/k2l.dtsi
 create mode 100644 arch/arm/dts/keystone-clocks.dtsi
 create mode 100644 arch/arm/dts/keystone.dtsi
#18 lore raw

cover ARM: keystone2: Enable OF_CONTROL and DM

Quoted 14 lines · Lokesh Vutla

Hi Tom,

Quoted 11 lines · Lokesh Vutla

This patch series enables OF_CONTROL and DM for all keystone platforms. In order to add support for OF_CONTROL all the keystone2 specific DT files are imported from Linux kernel. For now only DM_SERIAL is enabled on all keystone2 platforms, moving forward all other drivers are converted to DM and will be enabled in defconfig.

Build targets used:
UART boot: u-boot-dtb.bin
NAND boot: MLO
SPI boot: u-boot-spl.gph

Quoted 7 lines
Quoted 5 lines

Above three bootmodes are verified on the following platforms:
K2HK-evm, K2L-evm, K2E-evm.

This patch series is based on top of keystone serial driver posted previously:
https://www.mail-archive.com/u-boot%40lists.denx.de/msg186443.html

Gentle ping.

Thanks, I'm going to put together a PR of my own stuff today or tomorrow.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20151022/05462156/attachment.sig>