Re: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
On 9 September 2014 08:58, kg...@kernel.org wrote: Naveen Krishna Chatradhi wrote: Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC. Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com --- arch/arm64/boot/dts/Makefile|1 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 31 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 168 +++ 3 files changed, 200 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi [...] diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi new file mode 100644 index 000..e593af55 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -0,0 +1,168 @@ +/* + * SAMSUNG EXYNOS7 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #address-cells = 1; ? Hmm...I can't see any 64-bit address here. All the SoC peripherals have been put into the soc node and ranges property in that node is used to convert 64-bit to 32-bit addresses. But since this is a 64-bit SoC, we use #address-cells as 2. + #size-cells = 2; + [...] + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; Maybe this is not required? There is no check chipid in arm/arm64. This is only describing the hardware and it does not depend on linux using this information. And support for chip id can be used later for 64-bit Exynos platforms as well. [...] + timer { + compatible = arm,armv8-timer; + interrupts = 1 13 0xff01, + 1 14 0xff01, + 1 11 0xff01, + 1 10 0xff01; clock-frequency ? That is programmed by the bootloader / firmware. [...] - Kukjin Thanks, -- Shine bright, (: Nav :) -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
Arnd Bergmann wrote: On Thursday 04 September 2014 01:31:21 Kukjin Kim wrote: This is the board specific file, so it seems ok. I mean there are many espresso boards are having different exynos7 SoC. I mean exynos7-espresso cannot represent all of espresso boards. Ah, I see, that makes sense. We definitely need a top-level .dts file for each board that is different in a nondiscoverable way then. Agreed. And one more, at this moment just using exynos7 would be nice to us then if required, we could add any specific properties later. If the mmc settings and possibly some other nodes (to be added later) are common across them, those can be in a board specific .dtsi file. Yes, right. For the memory node, I would actually expect that to be filled by the boot loader, so we could leave it out entirely. The same applies to the command line: the parts that are in there at the moment ( console=ttySAC2,115200n8 root=/dev/ram0 ramdisk=16384 initrd=0x4200,16M) clearly don't belong into a generic dts file and none of them should be set that way. Hmm...yeah we need to use proper boot-loader but I think kernel needs having default memory property if boot loader doesn't have anything? For the initial version, that would mean that the file comes down to having as its only contents /dts-v1/; #include dt-bindings/gpio/gpio.h #include exynos7123.dtsi #include exynos7-espresso.dtsi // for the mmc nodes / { model = Samsung ESPRESSO board based on EXYNOS7123; compatible = samsung,espresso, samsung,exynos7123, samsung,exynos7; }; One more thing I just noticed is the GPL statement in the dts files. Can we please change that to a permissive license in order to allow including it in non-GPL boot loaders and operating systems? Dual GPL+MIT or GPL+BSD would make most sense here. I need to check about that with license guy in my team ;) Naveen, I'll have a look at the patch again. Thanks, Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
Naveen Krishna Chatradhi wrote: Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC. Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com --- arch/arm64/boot/dts/Makefile|1 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 31 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 168 +++ 3 files changed, 200 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi [...] diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi new file mode 100644 index 000..e593af55 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -0,0 +1,168 @@ +/* + * SAMSUNG EXYNOS7 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #address-cells = 1; ? Hmm...I can't see any 64-bit address here. + #size-cells = 2; + [...] + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; Maybe this is not required? There is no check chipid in arm/arm64. [...] + timer { + compatible = arm,armv8-timer; + interrupts = 1 13 0xff01, + 1 14 0xff01, + 1 11 0xff01, + 1 10 0xff01; clock-frequency ? [...] - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
Naveen Krishna Chatradhi wrote: Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC. Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com NAK. There are several exynos7 SoCs which cannot be supported with one dt file. I mean just one exynos7 cannot represent all of exynos7 SoCs... --- arch/arm64/boot/dts/Makefile|1 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 31 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 168 +++ 3 files changed, 200 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index c52bdb0..a3bc18a 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -1,3 +1,4 @@ +dtb-$(CONFIG_ARCH_EXYNOS7) += exynos/exynos7-espresso.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7- espresso.dts new file mode 100644 index 000..f6a8879 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -0,0 +1,31 @@ +/* + * SAMSUNG Exynos7 Espresso board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 exynos7.dtsi + +/ { + model = Samsung Exynos7 Espresso board based on EXYNOS7; + compatible = samsung,exynos7-espresso, samsung,exynos7; + + chosen { + linux,stdout-path = serial_2; Well... + }; + + memory@4000 { + device_type = memory; + reg = 0x0 0x4000 0x0 0xC000; The base address of system memory is depending on each board, actually some of them are 0x2000. + }; +}; + +serial_2 { + status = okay; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi new file mode 100644 index 000..e593af55 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -0,0 +1,168 @@ +/* + * SAMSUNG EXYNOS7 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #size-cells = 2; + + aliases { + serial0 = serial_0; + serial1 = serial_1; + serial2 = serial_2; + serial3 = serial_3; There are exynos7 SoC is having 3 serial IPs... + }; + + cpus { + #address-cells = 1; + #size-cells = 0; + + cpu@0 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x0; + }; + + cpu@1 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x1; + }; + + cpu@2 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x2; + }; + + cpu@3 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x3; + }; + }; Naveen, please don't assume all of exynos7 SoCs are having quad a57s... + + psci { + compatible = arm,psci-0.2; + method = smc; + }; + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; + + fin_pll: xxti { + compatible = fixed-clock; + clock-frequency = 2400; It's wrong on some exynos7 SoCs... +
Re: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
On Thursday 04 September 2014 01:15:20 Kukjin Kim wrote: Naveen Krishna Chatradhi wrote: diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7- espresso.dts new file mode 100644 index 000..f6a8879 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -0,0 +1,31 @@ +/* + * SAMSUNG Exynos7 Espresso board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 exynos7.dtsi + +/ { + model = Samsung Exynos7 Espresso board based on EXYNOS7; + compatible = samsung,exynos7-espresso, samsung,exynos7; + + chosen { + linux,stdout-path = serial_2; Well... + }; + + memory@4000 { + device_type = memory; + reg = 0x0 0x4000 0x0 0xC000; The base address of system memory is depending on each board, actually some of them are 0x2000. This is the board specific file, so it seems ok. +#include dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #size-cells = 2; + + aliases { + serial0 = serial_0; + serial1 = serial_1; + serial2 = serial_2; + serial3 = serial_3; There are exynos7 SoC is having 3 serial IPs... These aliases should just go into the board file as well, and since it seems to have only one uart, the best way is to list that as serial0: serial0 = serial_2; + + psci { + compatible = arm,psci-0.2; + method = smc; + }; + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; + + fin_pll: xxti { + compatible = fixed-clock; + clock-frequency = 2400; It's wrong on some exynos7 SoCs... Is this an external clock input? If so, the frequency should also go into the board file, otherwise into the soc-specific one. Arnd -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
Arnd Bergmann wrote: Hi, Arnd On Thursday 04 September 2014 01:15:20 Kukjin Kim wrote: Naveen Krishna Chatradhi wrote: diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7- espresso.dts new file mode 100644 index 000..f6a8879 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -0,0 +1,31 @@ +/* + * SAMSUNG Exynos7 Espresso board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 exynos7.dtsi + +/ { + model = Samsung Exynos7 Espresso board based on EXYNOS7; + compatible = samsung,exynos7-espresso, samsung,exynos7; + + chosen { + linux,stdout-path = serial_2; Well... + }; + + memory@4000 { + device_type = memory; + reg = 0x0 0x4000 0x0 0xC000; The base address of system memory is depending on each board, actually some of them are 0x2000. This is the board specific file, so it seems ok. I mean there are many espresso boards are having different exynos7 SoC. I mean exynos7-espresso cannot represent all of espresso boards. - Kukjin -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
On Thursday 04 September 2014 01:31:21 Kukjin Kim wrote: This is the board specific file, so it seems ok. I mean there are many espresso boards are having different exynos7 SoC. I mean exynos7-espresso cannot represent all of espresso boards. Ah, I see, that makes sense. We definitely need a top-level .dts file for each board that is different in a nondiscoverable way then. If the mmc settings and possibly some other nodes (to be added later) are common across them, those can be in a board specific .dtsi file. For the memory node, I would actually expect that to be filled by the boot loader, so we could leave it out entirely. The same applies to the command line: the parts that are in there at the moment ( console=ttySAC2,115200n8 root=/dev/ram0 ramdisk=16384 initrd=0x4200,16M) clearly don't belong into a generic dts file and none of them should be set that way. For the initial version, that would mean that the file comes down to having as its only contents /dts-v1/; #include dt-bindings/gpio/gpio.h #include exynos7123.dtsi #include exynos7-espresso.dtsi // for the mmc nodes / { model = Samsung ESPRESSO board based on EXYNOS7123; compatible = samsung,espresso, samsung,exynos7123, samsung,exynos7; }; One more thing I just noticed is the GPL statement in the dts files. Can we please change that to a permissive license in order to allow including it in non-GPL boot loaders and operating systems? Dual GPL+MIT or GPL+BSD would make most sense here. Arnd -- To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 5/7] arm64: dts: Add initial device tree support for EXYNOS7
Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC. Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com Cc: Rob Herring r...@kernel.org Cc: Catalin Marinas catalin.mari...@arm.com --- arch/arm64/boot/dts/Makefile|1 + arch/arm64/boot/dts/exynos/exynos7-espresso.dts | 31 + arch/arm64/boot/dts/exynos/exynos7.dtsi | 168 +++ 3 files changed, 200 insertions(+) create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index c52bdb0..a3bc18a 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -1,3 +1,4 @@ +dtb-$(CONFIG_ARCH_EXYNOS7) += exynos/exynos7-espresso.dtb dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts new file mode 100644 index 000..f6a8879 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts @@ -0,0 +1,31 @@ +/* + * SAMSUNG Exynos7 Espresso board device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 exynos7.dtsi + +/ { + model = Samsung Exynos7 Espresso board based on EXYNOS7; + compatible = samsung,exynos7-espresso, samsung,exynos7; + + chosen { + linux,stdout-path = serial_2; + }; + + memory@4000 { + device_type = memory; + reg = 0x0 0x4000 0x0 0xC000; + }; +}; + +serial_2 { + status = okay; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi new file mode 100644 index 000..e593af55 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi @@ -0,0 +1,168 @@ +/* + * SAMSUNG EXYNOS7 SoC device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * 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 dt-bindings/clock/exynos7-clk.h + +/ { + compatible = samsung,exynos7; + interrupt-parent = gic; + #address-cells = 2; + #size-cells = 2; + + aliases { + serial0 = serial_0; + serial1 = serial_1; + serial2 = serial_2; + serial3 = serial_3; + }; + + cpus { + #address-cells = 1; + #size-cells = 0; + + cpu@0 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x0; + }; + + cpu@1 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x1; + }; + + cpu@2 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x2; + }; + + cpu@3 { + device_type = cpu; + compatible = arm,cortex-a57, arm,armv8; + enable-method = psci; + reg = 0x3; + }; + }; + + psci { + compatible = arm,psci-0.2; + method = smc; + }; + + soc: soc { + compatible = simple-bus; + #address-cells = 1; + #size-cells = 1; + ranges = 0 0 0 0x1800; + + chipid@1000 { + compatible = samsung,exynos4210-chipid; + reg = 0x1000 0x100; + }; + + fin_pll: xxti { + compatible = fixed-clock; + clock-frequency = 2400; + clock-output-names = fin_pll; + #clock-cells = 0; + }; + + gic: interrupt-controller@11001000 { + compatible = arm,gic-400; + #interrupt-cells = 3; + #address-cells = 0; + interrupt-controller; + reg = 0x11001000 0x1000, + 0x11002000 0x1000, +