Commit 408324a3 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven

ARM: shmobile: Enable ARM_GLOBAL_TIMER on Cortex-A9 MPCore SoCs

SH-Mobile AG5 and R-Car H1 SoCs are based on the Cortex-A9 MPCore, which
includes a global timer.

Enable the ARM global timer on these SoCs, which will be used for:
  - the scheduler clock, improving scheduler accuracy from 10 ms to 3 or
    4 ns,
  - delay loops, allowing removal of calls to shmobile_init_delay() from
    the corresponding machine vectors.

Note that when using an old DTB lacking the global timer, the kernel
will still work.  However, loops-per-jiffies will no longer be preset,
and the delay loop will need to be calibrated during boot.
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20191211135222.26770-5-geert+renesas@glider.be
parent bb6d3fb3
...@@ -72,7 +72,6 @@ static const char *const r8a7779_compat_dt[] __initconst = { ...@@ -72,7 +72,6 @@ static const char *const r8a7779_compat_dt[] __initconst = {
DT_MACHINE_START(R8A7779_DT, "Generic R8A7779 (Flattened Device Tree)") DT_MACHINE_START(R8A7779_DT, "Generic R8A7779 (Flattened Device Tree)")
.smp = smp_ops(r8a7779_smp_ops), .smp = smp_ops(r8a7779_smp_ops),
.map_io = r8a7779_map_io, .map_io = r8a7779_map_io,
.init_early = shmobile_init_delay,
.init_irq = r8a7779_init_irq_dt, .init_irq = r8a7779_init_irq_dt,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.dt_compat = r8a7779_compat_dt, .dt_compat = r8a7779_compat_dt,
......
...@@ -56,7 +56,6 @@ static const char *const sh73a0_boards_compat_dt[] __initconst = { ...@@ -56,7 +56,6 @@ static const char *const sh73a0_boards_compat_dt[] __initconst = {
DT_MACHINE_START(SH73A0_DT, "Generic SH73A0 (Flattened Device Tree)") DT_MACHINE_START(SH73A0_DT, "Generic SH73A0 (Flattened Device Tree)")
.smp = smp_ops(sh73a0_smp_ops), .smp = smp_ops(sh73a0_smp_ops),
.map_io = sh73a0_map_io, .map_io = sh73a0_map_io,
.init_early = shmobile_init_delay,
.init_machine = sh73a0_generic_init, .init_machine = sh73a0_generic_init,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.dt_compat = sh73a0_boards_compat_dt, .dt_compat = sh73a0_boards_compat_dt,
......
...@@ -116,6 +116,7 @@ config ARCH_R8A7779 ...@@ -116,6 +116,7 @@ config ARCH_R8A7779
bool "R-Car H1 (R8A77790)" bool "R-Car H1 (R8A77790)"
select ARCH_RCAR_GEN1 select ARCH_RCAR_GEN1
select ARM_ERRATA_754322 select ARM_ERRATA_754322
select ARM_GLOBAL_TIMER
select HAVE_ARM_SCU if SMP select HAVE_ARM_SCU if SMP
select HAVE_ARM_TWD if SMP select HAVE_ARM_TWD if SMP
select SYSC_R8A7779 select SYSC_R8A7779
...@@ -163,6 +164,7 @@ config ARCH_SH73A0 ...@@ -163,6 +164,7 @@ config ARCH_SH73A0
bool "SH-Mobile AG5 (R8A73A00)" bool "SH-Mobile AG5 (R8A73A00)"
select ARCH_RMOBILE select ARCH_RMOBILE
select ARM_ERRATA_754322 select ARM_ERRATA_754322
select ARM_GLOBAL_TIMER
select HAVE_ARM_SCU if SMP select HAVE_ARM_SCU if SMP
select HAVE_ARM_TWD if SMP select HAVE_ARM_TWD if SMP
select RENESAS_INTC_IRQPIN select RENESAS_INTC_IRQPIN
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment