Message ID | 20180712030149.91385-2-chris.brandt@renesas.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Simon Horman |
Headers | show |
Hi Chris, On Thu, Jul 12, 2018 at 5:02 AM Chris Brandt <chris.brandt@renesas.com> wrote: > Add the RZ/A2 SoC to the Renesas SoC collection. > > Signed-off-by: Chris Brandt <chris.brandt@renesas.com> > --- /dev/null > +++ b/arch/arm/mach-shmobile/setup-r7s9210.c > @@ -0,0 +1,27 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * r7s9210 processor support > + * > + * Copyright (C) 2018 Renesas Electronics Corporation > + * Copyright (C) 2018 Chris Brandt > + * > + */ > + > +#include <linux/kernel.h> > + > +#include <asm/mach/arch.h> > + > +#include "common.h" > + > +static const char *const r7s9210_boards_compat_dt[] __initconst = { > + "renesas,r7s9210", > + NULL, > +}; > + > +DT_MACHINE_START(R7S72100_DT, "Generic R7S9210 (Flattened Device Tree)") > + .l2c_aux_val = 0, > + .l2c_aux_mask = ~0, > + .init_early = shmobile_init_delay, > + .init_late = shmobile_init_late, > + .dt_compat = r7s9210_boards_compat_dt, > +MACHINE_END I'm wondering if you could do without any board code, i.e. without setup-r7s9210.c? Gr{oetje,eeting}s, Geert
Hi Geert, On Thursday, July 12, 2018, Geert Uytterhoeven wrote: > I'm wondering if you could do without any board code, i.e. without > setup-r7s9210.c? I think I see them being removed for R-Car. But....I'm not sure how that actually works. I'll have a look. As you can see, there's really nothing in the RZ/A1 setup file either. Chris
Hi Chris, On Thu, Jul 12, 2018 at 5:40 PM Chris Brandt <Chris.Brandt@renesas.com> wrote: > On Thursday, July 12, 2018, Geert Uytterhoeven wrote: > > I'm wondering if you could do without any board code, i.e. without > > setup-r7s9210.c? > > I think I see them being removed for R-Car. > But....I'm not sure how that actually works. > > I'll have a look. > > As you can see, there's really nothing in the RZ/A1 setup file either. Yeah, that's why I asked: setup-r7s72100.c is the smallest setup file. It uses shmobile_init_delay() to preset loops-per-jiffy, to avoid calibrating the delay loop, and shmobile_init_late() to make s2ram do more than s2idle. As RZ/A doesn't have SMP, and thus there's no use for disabling secondary CPU cores, the impact of the latter is small (read: I don't know what's the real impact of calling cpu_idle_poll_ctrl()). Gr{oetje,eeting}s, Geert
Hi Geert, On Thursday, July 12, 2018, Geert Uytterhoeven wrote: > Yeah, that's why I asked: setup-r7s72100.c is the smallest setup file. > > It uses shmobile_init_delay() to preset loops-per-jiffy, to avoid > calibrating the > delay loop, and shmobile_init_late() to make s2ram do more than s2idle. > As RZ/A doesn't have SMP, and thus there's no use for disabling secondary > CPU cores, the impact of the latter is small (read: I don't know what's > the real > impact of calling cpu_idle_poll_ctrl()). It's been quite a while, but I remember when porting RZ/A1 code that without those two functions, things didn't work right. Of course that was many releases ago. However, one thing that I know I need is + .l2c_aux_val = 0, + .l2c_aux_mask = ~0, Without that, I don't get my L2C driver loaded. Hence: a96bb197693e ("ARM: 8660/1: shmobile: r7s72100: Enable L2 cache") So at least for now, I would say I still need the setup file. Chris
Hi Chris, On Thu, Jul 12, 2018 at 7:34 PM Chris Brandt <Chris.Brandt@renesas.com> wrote: > On Thursday, July 12, 2018, Geert Uytterhoeven wrote: > > Yeah, that's why I asked: setup-r7s72100.c is the smallest setup file. > > > > It uses shmobile_init_delay() to preset loops-per-jiffy, to avoid > > calibrating the > > delay loop, and shmobile_init_late() to make s2ram do more than s2idle. > > As RZ/A doesn't have SMP, and thus there's no use for disabling secondary > > CPU cores, the impact of the latter is small (read: I don't know what's > > the real > > impact of calling cpu_idle_poll_ctrl()). > > It's been quite a while, but I remember when porting RZ/A1 code that > without those two functions, things didn't work right. Of course that was > many releases ago. Right, you may not have had an early timer running yet, causing the loop calibration to hang. May have been fixed by ostm support. > However, one thing that I know I need is > > + .l2c_aux_val = 0, > + .l2c_aux_mask = ~0, > > Without that, I don't get my L2C driver loaded. > > Hence: > a96bb197693e ("ARM: 8660/1: shmobile: r7s72100: Enable L2 cache") > > So at least for now, I would say I still need the setup file. I forgot about the L2C. Yeah, it's a pity we still need board code to enable the PL310 cache with default settings. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 0b67254eabb2..9338eb0d574f 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig @@ -54,6 +54,12 @@ config ARCH_R7S72100 select SYS_SUPPORTS_SH_MTU2 select RENESAS_OSTM +config ARCH_R7S9210 + bool "RZ/A2 (R7S9210)" + select PM + select PM_GENERIC_DOMAINS + select RENESAS_OSTM + config ARCH_R8A73A4 bool "R-Mobile APE6 (R8A73A40)" select ARCH_RMOBILE diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index b33dc59d8698..5591646cb9bb 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.o obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o +obj-$(CONFIG_ARCH_R7S9210) += setup-r7s9210.o # CPU reset vector handling objects cpu-y := platsmp.o headsmp.o diff --git a/arch/arm/mach-shmobile/setup-r7s9210.c b/arch/arm/mach-shmobile/setup-r7s9210.c new file mode 100644 index 000000000000..573fb9955e7e --- /dev/null +++ b/arch/arm/mach-shmobile/setup-r7s9210.c @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * r7s9210 processor support + * + * Copyright (C) 2018 Renesas Electronics Corporation + * Copyright (C) 2018 Chris Brandt + * + */ + +#include <linux/kernel.h> + +#include <asm/mach/arch.h> + +#include "common.h" + +static const char *const r7s9210_boards_compat_dt[] __initconst = { + "renesas,r7s9210", + NULL, +}; + +DT_MACHINE_START(R7S72100_DT, "Generic R7S9210 (Flattened Device Tree)") + .l2c_aux_val = 0, + .l2c_aux_mask = ~0, + .init_early = shmobile_init_delay, + .init_late = shmobile_init_late, + .dt_compat = r7s9210_boards_compat_dt, +MACHINE_END
Add the RZ/A2 SoC to the Renesas SoC collection. Signed-off-by: Chris Brandt <chris.brandt@renesas.com> --- arch/arm/mach-shmobile/Kconfig | 6 ++++++ arch/arm/mach-shmobile/Makefile | 1 + arch/arm/mach-shmobile/setup-r7s9210.c | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 arch/arm/mach-shmobile/setup-r7s9210.c