From: Mark Rutland <mark.rutland@arm.com>
To: Chanwoo Choi <cw00.choi@samsung.com>
Cc: "linux-samsung-soc@vger.kernel.org"
<linux-samsung-soc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kgene.kim@samsung.com" <kgene.kim@samsung.com>,
"arnd@arndb.de" <arnd@arndb.de>,
"olof@lixom.net" <olof@lixom.net>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Will Deacon <Will.Deacon@arm.com>,
"s.nawrocki@samsung.com" <s.nawrocki@samsung.com>,
"tomasz.figa@gmail.com" <tomasz.figa@gmail.com>,
"thomas.abraham@linaro.org" <thomas.abraham@linaro.org>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
"inki.dae@samsung.com" <inki.dae@samsung.com>,
"chanho61.park@samsung.com" <chanho61.park@samsung.com>,
"geunsik.lim@samsung.com" <geunsik.lim@samsung.com>,
"sw0312.kim@samsung.com" <sw0312.kim@samsung.com>,
"jh80.chung@samsung.com" <jh80.chung@samsung.com>,
a.kesavan@samsung.
Subject: Re: [PATCH 16/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC
Date: Fri, 28 Nov 2014 14:00:59 +0000 [thread overview]
Message-ID: <20141128140059.GH25883@leverpostej> (raw)
In-Reply-To: <54787621.4000503@samsung.com>
On Fri, Nov 28, 2014 at 01:18:25PM +0000, Chanwoo Choi wrote:
> Dear Mark,
>
> On 11/27/2014 08:18 PM, Mark Rutland wrote:
> > On Thu, Nov 27, 2014 at 07:35:13AM +0000, Chanwoo Choi wrote:
> >> This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC
> >> based on Octal core CPUs (quad Cortex-A57 and quad Cortex-A53).
> >>
> >> Cc: Kukjin Kim <kgene.kim@samsung.com>
> >> Cc: Mark Rutland <mark.rutland@arm.com>
> >> Cc: Arnd Bergmann <arnd@arndb.de>
> >> Cc: Olof Johansson <olof@lixom.net>
> >> Cc: Catalin Marinas <catalin.marinas@arm.com>
> >> Cc: Will Deacon <will.deacon@arm.com>
> >> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
> >> Acked-by: Inki Dae <inki.dae@samsung.com>
> >> Acked-by: Geunsik Lim <geunsik.lim@samsung.com>
> >> ---
> >> arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | 698 +++++++++++++++++++++
> >> arch/arm64/boot/dts/exynos/exynos5433.dtsi | 523 +++++++++++++++
> >> 2 files changed, 1221 insertions(+)
> >> create mode 100644 arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi
> >> create mode 100644 arch/arm64/boot/dts/exynos/exynos5433.dtsi
> >
[...]
> >> + cpus {
> >> + #address-cells = <2>;
> >> + #size-cells = <0>;
> >> +
> >> + cpu0: cpu@100 {
> >> + device_type = "cpu";
> >> + compatible = "arm,cortex-a53", "arm,armv8";
> >> + enable-method = "psci";
> >
> > While the CPU nodes have enable-methods, I didn't spot a PSCI node
> > anywhere, so this dts cannot possibly have been used to bring up an SMP
> > system.
> >
> > How has this dts been tested?
> >
> > What PSCI revision have you implemented? Have have you tested it?
>
> My mistake,
> Exynos5433 supports PSCI v0.1. I'll add following PSCI nodes:
> I tested the boot of secondary cpu.
>
> psci {
> compatible = "arm,psci";
> method = "smc";
> cpu_off = <0x84000002>;
> cpu_on = <0xC4000003>;
> };
Ok. I take it _any_ CPU may be hotplugged (including CPU0), given that
you don't have MIGRATE_INFO_TYPE from PSCI 0.2 to tell you that this is
not possible? If not, attempting to hotplug CPU0 will result in a BUG()
and the kernel will explode.
Has that been tested?
Do all CPUs enter the kernel at EL2?
> >> + soc: soc {
> >> + compatible = "simple-bus";
> >> + #address-cells = <1>;
> >> + #size-cells = <1>;
> >> + ranges;
> >> +
> >> + fixed-rate-clocks {
> >> + #address-cells = <1>;
> >> + #size-cells = <0>;
> >> +
> >> + xusbxti: clock@0 {
> >> + compatible = "fixed-clock";
> >> + clock-output-names = "xusbxti";
> >> + #clock-cells = <0>;
> >> + };
> >> + };
> >
> > Get rid of the fixed-rate-clocks container node. It's pointless and
> > messy. Given you only have one there's no need for the bogus
> > unit-address either.
>
> OK, I'll remove unneeded code and will add following dt node for fin_pll.
>
> fin_pll: xxti {
> compatible = "fixed-clock";
> clock-output-names = "fin_pll";
> #clock-cells = <0>;
> };
That looks fine to me.
[...]
> >> + mct@101c0000 {
> >> + compatible = "samsung,exynos4210-mct";
> >> + reg = <0x101c0000 0x800>;
> >> + interrupts = <0 102 0>, <0 103 0>, <0 104 0>, <0 105 0>,
> >> + <0 106 0>, <0 107 0>, <0 108 0>, <0 109>,
> >> + <0 110 0>, <0 111 0>, <0 112 0>, <0 113 0>;
> >> + clocks = <&cmu_top CLK_FIN_PLL>, <&cmu_peris CLK_PCLK_MCT>;
> >> + clock-names = "fin_pll", "mct";
> >> + };
> >
> > Hase this block had no changes whatsoever since its use in Exynos4210?
> > Do we not need a "samsung,exynos5433-mct" comaptible string too?
>
> The type of Exynos5433's MCT(Multi-Core Timer) IP is the same with the type of Exynos4210 MCT.
> Just Exynos5433 have eight local timer for Octa cores.
So "samsung,exynos4210-mct" should appear in the list. I'm just
wondering if it's worth having:
compatible = "samsung,exynos5433-mct", "samsung,exynos4210-mct";
Just in case we need to special-case the 5433 MCT for some reason later.
>
> CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
> 134: 0 0 0 0 0 0 0 0 GIC 134 mct_comp_irq
> 138: 3189 0 0 0 0 0 0 0 GIC 138 mct_tick0
> 139: 0 2670 0 0 0 0 0 0 GIC 139 mct_tick1
> 140: 0 0 2763 0 0 0 0 0 GIC 140 mct_tick2
> 141: 0 0 0 2732 0 0 0 0 GIC 141 mct_tick3
> 142: 0 0 0 0 2998 0 0 0 GIC 142 mct_tick4
> 143: 0 0 0 0 0 2664 0 0 GIC 143 mct_tick5
> 144: 0 0 0 0 0 0 2485 0 GIC 144 mct_tick6
> 145: 0 0 0 0 0 0 0 2681 GIC 145 mct_tick7
>
> But, existing exynos-mct.c driver(drivers/clocksource/exynos-mct.c) used
> 'register_current_timer_delay()' function which is supported on arm 32bit.
> I fix it as following diff and then I'll send it to support 64-bit Exynos SoC on exynos-mct.c.
>
> drivers/clocksource/Kconfig | 1 -
> drivers/clocksource/exynos_mct.c | 4 ++++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 9042060..27ef3fa 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -134,7 +134,6 @@ config CLKSRC_METAG_GENERIC
>
> config CLKSRC_EXYNOS_MCT
> def_bool y if ARCH_EXYNOS
> - depends on !ARM64
> help
> Support for Multi Core Timer controller on Exynos SoCs.
>
> diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
> index 9403061..d9c7dbb 100644
> --- a/drivers/clocksource/exynos_mct.c
> +++ b/drivers/clocksource/exynos_mct.c
> @@ -223,6 +223,7 @@ static u64 notrace exynos4_read_sched_clock(void)
> return exynos4_read_count_32();
> }
>
> +#if !defined(CONFIG_ARM64)
> static struct delay_timer exynos4_delay_timer;
>
> static cycles_t exynos4_read_current_timer(void)
> @@ -231,14 +232,17 @@ static cycles_t exynos4_read_current_timer(void)
> "cycles_t needs to move to 32-bit for ARM64 usage");
> return exynos4_read_count_32();
> }
> +#endif
>
> static void __init exynos4_clocksource_init(void)
> {
> exynos4_mct_frc_start();
>
> +#if !defined(CONFIG_ARM64)
> exynos4_delay_timer.read_current_timer = &exynos4_read_current_timer;
> exynos4_delay_timer.freq = clk_rate;
> register_current_timer_delay(&exynos4_delay_timer);
> +#endif
Why not make both of these depend on CONFIG_ARM, rather than
!CONFIG_ARM64? We care about the presence of the delay_timer struct and
functions, which (from grepping around) exist in arch/arm and nowhere
else.
> >> + gic:interrupt-controller@11001000 {
> >> + compatible = "arm,cortex-a15-gic";
> >
> > Given this is multi-cluster, surely this is an external GIC-400, for
> > which we have a supported compatible string?
> >
> > So this should at least be:
> >
> > compatible = "arm,gic-400", "arm,cortex-a15-gic";
>
> Exynos5433 used GIC-400. I'll modify it as following:
>
> compatible = "arm,gic-400";
Ok. The former variant (with "arm,cortex-a15-gic" later in the list) has
the benefit of working with KVM today (which doesn't currently look for
"arm,gic-400").
> >> + #interrupt-cells = <3>;
> >> + interrupt-controller;
> >> + reg = <0x11001000 0x1000>,
> >> + <0x11002000 0x1000>,
> >> + <0x11004000 0x2000>,
> >> + <0x11006000 0x2000>;
> >
> > As far as I am aware, the GICC size is 8KiB. Regardless of whether we
> > currently use the second page of registers, they should be described.
>
> The GICC (CPU Interface Register) register of Exynos5433 is range of 0x1100_2000 ~ 0x1100_2100.
That does not sound right. Per the GICv2 architecture, GICC is at least
0x1004 bytes long (as GICC_DIR lives at offset 0x1000).
> But, I'll modify GICC size from 4KiB to 8KiB as following according to your comment:
> <0x11002000 0x1000> -> <0x11002000 0x2000>
To clarify: is GICC_DIR accessible in Exynos5433 systems, or is
everything past offset 0x100 not physically mapped?
> >> + interrupts = <1 9 0xf04>;
> >> + };
> >> +
> >> + serial_0: serial@14C10000 {
> >
> > Nit: Please be consistent with capitalisation of hex. IMO it's better
> > to leave it all lower-case.
>
> I'll use the lower-case for all base address.
Thanks.
>
> >
> > [...]
> >
> >> + timer {
> >> + compatible = "arm,armv8-timer";
> >> + interrupts = <1 13 0xff01>,
> >> + <1 14 0xff01>,
> >> + <1 11 0xff01>,
> >> + <1 10 0xff01>;
> >> + clock-frequency = <24000000>;
> >> + use-clocksource-only;
> >> + use-physical-timer;
> >
> > As Marc said, NAK for these last three properties.
> >
> > There is no excuse for not setting CNTFRQ_EL0, especially given a PSCI
> > implementation. The last two properties have never been supported in
> > mainline, and shouldn't be necessary regardless.
>
> OK, I'll remove last three properties.
Thanks.
Mark.
next prev parent reply other threads:[~2014-11-28 14:00 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-27 7:34 [PATCH 00/19] arm64: Add the support for new 64-bit Exynos5433 SoC Chanwoo Choi
2014-11-27 7:34 ` [PATCH 01/19] pinctrl: exynos: Add support for Exynos5433 Chanwoo Choi
2014-11-27 10:26 ` [01/19] " Pankaj Dubey
2014-11-27 10:49 ` Chanwoo Choi
2014-11-27 11:45 ` [PATCH 01/19] " Arnd Bergmann
2014-11-27 12:14 ` Tomasz Figa
2014-11-27 12:36 ` Arnd Bergmann
2014-12-28 11:21 ` Tomasz Figa
2014-12-28 23:33 ` Chanwoo Choi
2014-11-27 7:34 ` [PATCH 02/19] clk: samsung: Add binding documentation for Exynos5433 clock controller Chanwoo Choi
2014-11-27 11:21 ` Mark Rutland
2014-11-27 11:29 ` Chanwoo Choi
2014-11-27 7:35 ` [PATCH 03/19] clk: samsung: exynos5433: Add clocks using common clock framework Chanwoo Choi
2014-11-27 11:48 ` [03/19] " Pankaj Dubey
2014-11-27 12:53 ` Chanwoo Choi
2014-11-28 1:57 ` Chanwoo Choi
2014-11-27 7:35 ` [PATCH 04/19] clk: samsung: exynos5433: Add MUX clocks of CMU_TOP domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 05/19] clk: samsung: exynos5433: Add clocks for CMU_PERIC domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 06/19] clk: samsung: exynos5433: Add clocks for CMU_PERIS domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 07/19] clk: samsung: exynos5433: Add clocks for CMU_G2D domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 08/19] clk: samsung: exynos5433: Add clocks for CMU_MIF domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 09/19] clk: samsung: exynos5433: Add clocks for CMU_DISP domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 10/19] clk: samsung: exynos5433: Add clocks for CMU_AUD domain Chanwoo Choi
[not found] ` <1417073716-22997-1-git-send-email-cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-27 7:35 ` [PATCH 11/19] clk: samsung: exynos5433: Add clocks for CMU_BUS{0|1|2} domains Chanwoo Choi
2014-11-27 11:41 ` Arnd Bergmann
2014-11-27 11:56 ` Chanwoo Choi
[not found] ` <54771173.6090408-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-27 12:12 ` Sylwester Nawrocki
2014-11-27 12:14 ` Chanwoo Choi
2014-11-27 12:35 ` Arnd Bergmann
2014-11-27 12:58 ` Chanwoo Choi
2014-11-27 13:15 ` Arnd Bergmann
[not found] ` <CAGTfZH3KmwhJNFdmeWnujbbUbtLf5vSi6i2dbV62DeCtV7n4TQ@mail.gmail.com>
[not found] ` <CAGTfZH3KmwhJNFdmeWnujbbUbtLf5vSi6i2dbV62DeCtV7n4TQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-27 14:02 ` Arnd Bergmann
2014-11-27 15:17 ` Chanwoo Choi
2014-11-27 15:33 ` Arnd Bergmann
2014-11-27 15:44 ` Chanwoo Choi
2014-11-27 15:51 ` Arnd Bergmann
2014-11-27 15:58 ` Chanwoo Choi
2014-11-27 7:35 ` [PATCH 12/19] clk: samsung: exynos5433: Add missing clocks for CMU_FSYS domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 13/19] clk: samsung: exynos5433: Add clocks for CMU_G3D domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 14/19] clk: samsung: exynos5433: Add clocks for CMU_GSCL domain Chanwoo Choi
2014-11-27 7:35 ` [PATCH 15/19] arm64: exynos5433: Enable ARMv8-based Exynos5433 SoC support Chanwoo Choi
2014-11-27 11:18 ` Catalin Marinas
[not found] ` <20141127111839.GD11511-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2014-11-27 11:22 ` Chanwoo Choi
2014-11-27 7:35 ` [PATCH 16/19] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC Chanwoo Choi
2014-11-27 10:26 ` Marc Zyngier
2014-11-28 13:51 ` Chanwoo Choi
[not found] ` <1417073716-22997-17-git-send-email-cw00.choi-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-11-27 11:18 ` Mark Rutland
2014-11-28 13:18 ` Chanwoo Choi
2014-11-28 14:00 ` Mark Rutland [this message]
2014-12-01 2:21 ` Chanwoo Choi
2014-12-02 10:42 ` Mark Rutland
2014-11-27 7:35 ` [PATCH 17/19] arm64: dts: exynos: Add MSHC dt node for Exynos5433 Chanwoo Choi
2014-11-27 7:35 ` [PATCH 18/19] arm64: dts: exynos: Add SPI/PDMA " Chanwoo Choi
2014-11-27 7:35 ` [PATCH 19/19] serial: samsung: Add the support for Exynos5433 SoC Chanwoo Choi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141128140059.GH25883@leverpostej \
--to=mark.rutland@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Will.Deacon@arm.com \
--cc=a.kesavan@samsung. \
--cc=arnd@arndb.de \
--cc=chanho61.park@samsung.com \
--cc=cw00.choi@samsung.com \
--cc=geunsik.lim@samsung.com \
--cc=inki.dae@samsung.com \
--cc=jh80.chung@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=olof@lixom.net \
--cc=s.nawrocki@samsung.com \
--cc=sw0312.kim@samsung.com \
--cc=thomas.abraham@linaro.org \
--cc=tomasz.figa@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).