linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: James Tai <james.tai@realtek.com>
To: "Andreas Färber" <afaerber@suse.de>,
	"'Masahiro Yamada'" <yamada.masahiro@socionext.com>,
	"'Arnd Bergmann'" <arnd@arndb.de>
Cc: "'Jason A . Donenfeld'" <Jason@zx2c4.com>,
	"linux-realtek-soc@lists.infradead.org"
	<linux-realtek-soc@lists.infradead.org>,
	"CY_Huang[黃鉦晏]" <cy.huang@realtek.com>,
	"'Linus Walleij'" <linus.walleij@linaro.org>,
	"'Stefan Agner'" <stefan@agner.ch>,
	"'Benjamin Gaignard'" <benjamin.gaignard@linaro.org>,
	"Simon Hsu[徐文翰]" <simon_hsu@realtek.com>,
	"'Mauro Carvalho Chehab'" <mchehab+samsung@kernel.org>,
	"Tom Ting[丁郁庭]" <tom_ting@realtek.com>,
	"Jim Tsai [蔡維晉]" <tsaijim10@realtek.com>,
	"Phinex Hung" <phinex@realtek.com>,
	"Edward Wu[吳奕寬]" <edwardwu@realtek.com>,
	"'Rob Herring'" <robh@kernel.org>,
	"'Lorenzo Pieralisi'" <Lorenzo.Pieralisi@arm.com>,
	"'Russell King'" <linux@armlinux.org.uk>,
	"'Mike Rapoport'" <rppt@linux.ibm.com>,
	"YH_Hsieh[謝宇勳]" <yh_hsieh@realtek.com>,
	"TY_Chang[張子逸]" <tychang@realtek.com>,
	"'Thierry Reding'" <treding@nvidia.com>,
	"'jamestai.sky@gmail.com'" <jamestai.sky@gmail.com>,
	"ZR_Chen[陳振榮]" <zhenrcaaron@realtek.com>, Hau <hau@realtek.com>,
	Yukuen <yukuen@realtek.com>,
	"Jinn.Cheng[鄭才進]" <jinn.cheng@realtek.com>,
	"Chase Yen [顏呈育]" <chase.yen@realtek.com>,
	"Stanley Chang[昌育德]" <stanley_chang@realtek.com>,
	"'Doug Anderson'" <armlinux@m.disordat.com>,
	"'Linux ARM'" <linux-arm-kernel@lists.infradead.org>,
	"Eric Wang[王偉全]" <ericwang@realtek.com>,
	Adklei <adklei@realtek.com>,
	"Edgar Lee [李承諭]" <cylee12@realtek.com>,
	"'Ard Biesheuvel'" <ard.biesheuvel@linaro.org>,
	"PK.Chuang [莊博凱]" <pk.chuang@realtek.com>,
	"'Nicolas Pitre'" <nico@fluxnic.net>,
	"'Nick Desaulniers'" <ndesaulniers@google.com>,
	"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
	"'Paul Burton'" <paul.burton@mips.com>,
	phelic <phelic@realtek.com>
Subject: RE: [PATCH v1] ARM: Add support for Realtek SOC
Date: Thu, 26 Sep 2019 09:21:51 +0000	[thread overview]
Message-ID: <43B123F21A8CFE44A9641C099E4196FFCF8EAFD5@RTITMBSVM04.realtek.com.tw> (raw)
In-Reply-To: <4f5c99ddfbe0abadccf754e9ff282c39d8849b3f.camel@suse.de>

> Subject: Re: [PATCH v1] ARM: Add support for Realtek SOC
> 
> Hi James,
> 
> Am Mittwoch, den 25.09.2019, 06:43 +0000 schrieb James Tai:
> > From: "james.tai" <james.tai@realtek.com>
> >
> > This patch adds the basic machine file for the Realtek RTD16XX and
> > RTD13XX platform.
> >
> > Signed-off-by: james.tai <james.tai@realtek.com>
> > ---
> > Changes since last version:
> > 	- Add RTD13XX platform.
> > 	- Add PSCI support.
> > 	- Add ARCH_MULTI_V7 config.
> > 	- remove 'textofs-$(CONFIG_ARCH_REALTEK) := 0x00208000' from
> > 	  'arch/arm/Makefile'.
> > 	- remove map_io,init_time,init_machine and smp_init from machine
> > 	  descriptor.
> 
> Thanks for your patch. Please subscribe yourself and colleagues to the existing
> linux-realtek-soc@lists.infradead.org mailing list and make sure it is in CC for
> your patches:
> 
> http://lists.infradead.org/mailman/listinfo/linux-realtek-soc

Hi Andreas,

Thanks for your reply.

I can't open the URL. 
Please check this URL is correct.
http://lists.infradead.org/mailman/listinfo/linux-realtek-soc

> Further comments inline:
> 
> > ---
> >  arch/arm/Kconfig                |  2 ++
> >  arch/arm/Makefile               |  1 +
> >  arch/arm/mach-realtek/Kconfig   | 20 +++++++++++++
> >  arch/arm/mach-realtek/Makefile  |  3 ++
> > arch/arm/mach-realtek/platsmp.c | 51
> > +++++++++++++++++++++++++++++++++
> >  arch/arm/mach-realtek/platsmp.h |  6 ++++
> > arch/arm/mach-realtek/realtek.c | 43 +++++++++++++++++++++++++++
> >  7 files changed, 126 insertions(+)
> >  create mode 100644 arch/arm/mach-realtek/Kconfig  create mode
> 100644
> > arch/arm/mach-realtek/Makefile  create mode 100644
> > arch/arm/mach-realtek/platsmp.c  create mode 100644
> > arch/arm/mach-realtek/platsmp.h  create mode 100644
> > arch/arm/mach-realtek/realtek.c
> 
> As Arnd has already expressed, at least RTD13xx (if not also RTD16xx?) is a
> 64-bit SoC, and we already have code - contributed and maintained by me - for
> arch/arm64/. Please contribute to those efforts instead of building your own
> sandcastle in arch/arm/. In fact, your work collides with patches queued in my
> rtd129x-next branch for RTD1195, an actual 32-bit platform. Among other
> commits:

OK. I understand.

We want to open source for our platforms.
The newly platforms source code should be patch to rtd129x-next branch? 
These platforms is included arm64 and arm.

> https://github.com/afaerber/linux/commit/b43fa4f790183d46e2b2c7f5af34f3
> 010d315073
> 
> Those previous arm64 RTD129x and arm RTD1195 efforts were and are
> blocked by irqchip, which I don't see addressed in this single patch.
> 
> https://github.com/afaerber/linux/commits/rtd1295-next

What kind of irq issue did you have with the development.
For rtd129x platform, I can't find the irq mux driver in 'drivers/irqchip'.

> >
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index
> > 33b00579beff..1f7967c97267 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -793,6 +793,8 @@ source "arch/arm/mach-realview/Kconfig"
> >
> >  source "arch/arm/mach-rockchip/Kconfig"
> >
> > +source "arch/arm/mach-realtek/Kconfig"
> 
> Ordering wrong.

OK. Thank you.

> > +
> >  source "arch/arm/mach-s3c24xx/Kconfig"
> >
> >  source "arch/arm/mach-s3c64xx/Kconfig"
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile index
> > c3624ca6c0bc..560ae7d72aab 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -205,6 +205,7 @@ machine-$(CONFIG_ARCH_RDA)		+= rda
> >  machine-$(CONFIG_ARCH_REALVIEW)		+= realview
> >  machine-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip
> >  machine-$(CONFIG_ARCH_RPC)		+= rpc
> > +machine-$(CONFIG_ARCH_REALTEK)		+= realtek
> 
> Ditto.
> 
> >  machine-$(CONFIG_ARCH_S3C24XX)		+= s3c24xx
> >  machine-$(CONFIG_ARCH_S3C64XX)		+= s3c64xx
> >  machine-$(CONFIG_ARCH_S5PV210)		+= s5pv210
> > diff --git a/arch/arm/mach-realtek/Kconfig b/arch/arm/mach-
> > realtek/Kconfig new file mode 100644 index 000000000000..a638f4322bb2
> > --- /dev/null
> > +++ b/arch/arm/mach-realtek/Kconfig
> > @@ -0,0 +1,20 @@
> > +# SPDX-License-Identifier: GPL-2.0-only menuconfig ARCH_REALTEK
> > +	bool "Realtek SoC Support"
> > +	depends on ARCH_MULTI_V7
> > +	help
> > +	  Support for Realtek rtd16xx & rtd13xx SoCs.
> > +
> > +if ARCH_REALTEK
> > +
> > +config ARCH_RTD13XX
> > +	bool "Enable support for RTD1319"
> > +	select ARM_GIC_V3
> > +	select ARM_PSCI
> > +
> > +config ARCH_RTD16XX
> > +	bool "Enable support for RTD1619"
> > +	select ARM_GIC_V3
> > +	select ARM_PSCI
> > +
> > +endif
> > diff --git a/arch/arm/mach-realtek/Makefile b/arch/arm/mach-
> > realtek/Makefile new file mode 100644 index 000000000000..9cdc1f1f2917
> > --- /dev/null
> > +++ b/arch/arm/mach-realtek/Makefile
> > @@ -0,0 +1,3 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +obj-$(CONFIG_ARCH_REALTEK) += realtek.o
> > +obj-$(CONFIG_SMP) += platsmp.o
> > diff --git a/arch/arm/mach-realtek/platsmp.c b/arch/arm/mach-
> > realtek/platsmp.c new file mode 100644 index
> > 000000000000..b3fc99447ad4
> > --- /dev/null
> > +++ b/arch/arm/mach-realtek/platsmp.c
> > @@ -0,0 +1,51 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * Copyright (c) 2019 Realtek Semiconductor Corp.
> > + */
> > +
> > +#include <linux/init.h>
> > +#include <linux/delay.h>
> > +#include <linux/jiffies.h>
> > +#include <linux/io.h>
> > +#include <linux/memory.h>
> > +#include <linux/smp.h>
> > +#include <linux/of.h>
> > +#include <linux/arm-smccc.h>
> > +#include <asm/smp_plat.h>
> > +#include <asm/cacheflush.h>
> > +#include <asm/cp15.h>
> > +#include <asm/barrier.h>
> > +
> > +#define BL31_CMD 0x8400ff04
> > +#define BL31_DAT 0x00001619
> > +#define CORE_PWRDN_EN 0x1
> > +
> > +#define CPUPWRCTLR __ACCESS_CP15(c15, 0, c2, 7)
> > +
> > +#ifdef CONFIG_HOTPLUG_CPU
> > +
> > +static void rtk_cpu_die(unsigned int cpu) {
> > +	struct arm_smccc_res res;
> > +	unsigned int cpu_pwr_ctrl;
> > +
> > +	/* notify BL31 cpu hotplug */
> > +	arm_smccc_smc(BL31_CMD, BL31_DAT, 0, 0, 0, 0, 0, 0, &res);
> 
> BL31 is clearly for 64-bit only and will not work for RTD1195, so the naming is
> much too generic.

OK. I will modify naming in new version patch.

> > +	v7_exit_coherency_flush(louis);
> > +
> > +	cpu_pwr_ctrl = read_sysreg(CPUPWRCTLR);
> > +	cpu_pwr_ctrl |= CORE_PWRDN_EN;
> > +	write_sysreg(cpu_pwr_ctrl, CPUPWRCTLR);
> > +
> > +	dsb(sy);
> > +
> > +	for (;;)
> > +		wfi();
> > +}
> > +#endif
> > +
> > +struct smp_operations rtk_smp_ops __initdata = { #ifdef
> > +CONFIG_HOTPLUG_CPU
> > +	.cpu_die = rtk_cpu_die,
> > +#endif
> > +};
> > diff --git a/arch/arm/mach-realtek/platsmp.h b/arch/arm/mach-
> > realtek/platsmp.h new file mode 100644 index
> > 000000000000..c9c4d712369c
> > --- /dev/null
> > +++ b/arch/arm/mach-realtek/platsmp.h
> > @@ -0,0 +1,6 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * Copyright (c) 2019 Realtek Semiconductor Corp.
> > + */
> > +
> > +extern struct smp_operations rtk_smp_ops;
> > diff --git a/arch/arm/mach-realtek/realtek.c b/arch/arm/mach-
> > realtek/realtek.c new file mode 100644 index
> > 000000000000..2692ac53f59b
> > --- /dev/null
> > +++ b/arch/arm/mach-realtek/realtek.c
> > @@ -0,0 +1,43 @@
> > +// SPDX-License-Identifier: GPL-2.0-only
> > +/*
> > + * Copyright (c) 2019 Realtek Semiconductor Corp.
> > + */
> > +
> > +#include <linux/clk-provider.h>
> > +#include <linux/clocksource.h>
> > +#include <linux/kernel.h>
> > +#include <linux/init.h>
> > +#include <linux/irqchip.h>
> > +#include <linux/of_address.h>
> > +#include <linux/of_irq.h>
> > +#include <linux/of_platform.h>
> > +#include <linux/io.h>
> > +#include <linux/memblock.h>
> > +#include <linux/delay.h>
> > +#include <linux/clockchips.h>
> > +#include <asm/mach/arch.h>
> > +#include <asm/mach/map.h>
> > +#include <asm/system_misc.h>
> > +#include <asm/system_info.h>
> > +
> > +#include "platsmp.h"
> > +
> > +static const char *const rtd13xx_board_dt_compat[] = {
> > +	"realtek,rtd1319",
> > +	NULL,
> > +};
> > +
> > +static const char *const rtd16xx_board_dt_compat[] = {
> > +	"realtek,rtd1619",
> > +	NULL,
> > +};
> > +
> > +DT_MACHINE_START(RTD13XX, "Realtek rtd13xx platform")
> > +	.dt_compat = rtd13xx_board_dt_compat,
> > +	.smp = smp_ops(rtk_smp_ops),
> > +MACHINE_END
> > +
> > +DT_MACHINE_START(RTD16XX, "Realtek rtd16xx platform")
> > +	.dt_compat = rtd16xx_board_dt_compat,
> > +	.smp = smp_ops(rtk_smp_ops),
> > +MACHINE_END
> 
> I recall that 32-bit arm SMP can be selected via the DT and then does not need
> multiple such structs per SoC, in particular they don't differ at all and could use
> the default machine taking the text from the DT.
>
> Also note that whenever possible I personally have a preference for
> GPL-2.0-or-later and licensed my code that way whenever possible.

OK. I understand.

> Question: Why are you not just implementing the above CPU logic in TF-A
> BL31 and let Linux use the existing PSCI code paths? That will be the only
> upstream-accepted solution for arm64.

For rtd129x platform, We don't implement PSCI in BL31, 
but our newly platforms(rtd139x/rtd13xx/rtd16xx) already implement PSCI in BL31.

> Thanks,
> Andreas
> 
> --
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer
> HRB 247165 (AG München)
> 
> 
> ------Please consider the environment before printing this e-mail.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-09-26  9:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-25  6:43 [PATCH v1] ARM: Add support for Realtek SOC James Tai
2019-09-25 13:30 ` Andreas Färber
2019-09-26  9:21   ` James Tai [this message]
2019-09-25 13:31 ` Andreas Färber

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=43B123F21A8CFE44A9641C099E4196FFCF8EAFD5@RTITMBSVM04.realtek.com.tw \
    --to=james.tai@realtek.com \
    --cc=Jason@zx2c4.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=adklei@realtek.com \
    --cc=afaerber@suse.de \
    --cc=ard.biesheuvel@linaro.org \
    --cc=armlinux@m.disordat.com \
    --cc=arnd@arndb.de \
    --cc=benjamin.gaignard@linaro.org \
    --cc=chase.yen@realtek.com \
    --cc=cy.huang@realtek.com \
    --cc=cylee12@realtek.com \
    --cc=edwardwu@realtek.com \
    --cc=ericwang@realtek.com \
    --cc=hau@realtek.com \
    --cc=jamestai.sky@gmail.com \
    --cc=jinn.cheng@realtek.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-realtek-soc@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=mchehab+samsung@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nico@fluxnic.net \
    --cc=paul.burton@mips.com \
    --cc=phelic@realtek.com \
    --cc=phinex@realtek.com \
    --cc=pk.chuang@realtek.com \
    --cc=robh@kernel.org \
    --cc=rppt@linux.ibm.com \
    --cc=simon_hsu@realtek.com \
    --cc=stanley_chang@realtek.com \
    --cc=stefan@agner.ch \
    --cc=tom_ting@realtek.com \
    --cc=treding@nvidia.com \
    --cc=tsaijim10@realtek.com \
    --cc=tychang@realtek.com \
    --cc=yamada.masahiro@socionext.com \
    --cc=yh_hsieh@realtek.com \
    --cc=yukuen@realtek.com \
    --cc=zhenrcaaron@realtek.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).