mbox series

[v2,0/4] ARM: shmobile: Enable ARM_GLOBAL_TIMER on Cortex-A9 MPCore

Message ID 20191211135222.26770-1-geert+renesas@glider.be (mailing list archive)
Headers show
Series ARM: shmobile: Enable ARM_GLOBAL_TIMER on Cortex-A9 MPCore | expand

Message

Geert Uytterhoeven Dec. 11, 2019, 1:52 p.m. UTC
Hi all,

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

Enable use of the global timer on these SoCs for scheduling and delay
loops, with the following impact:
  - Scheduler accuracy is increased from 10 ms to a few ns,
  - Calls to shmobile_init_delay() to preset loops-per-jiffies can be
    removed.
    Note that when using an old DTB lacking the global timer, the kernel
    will still work, but the delay loop will need to be calibrated
    during boot.

Note that we still need shmobile_init_delay() to setup loops-per-jiffies
for other SoCs lacking an architectured or global timer:
  - emev2: Dual-core Cortex-A9 r1p3,
  - r7s72100: single-core Cortex-A9 MPCore r3p0, global timer IRQ not
    wired?
  - r7s9210: single-core Cortex-A9 MPCore r4p1, global timer IRQ not
    wired?
  - r8a7740: single-core Cortex-A9 r2p4,
  - r8a7778: single-core Cortex-A9 r2p2-00rel0.

Changes compared to v1:
  - Rebased.

I have been using this on KZM-A9-GT (SH-Mobile AG5) and Marzen (R-Car
H1) for the last 18 months or so.
Hence I plan to queue the first 3 patches in renesas-devel for v5.6,
and postpone the 4th to v5.7.

Thanks!

Geert Uytterhoeven (4):
  ARM: dts: sh73a0: Rename twd clock to periph clock
  ARM: dts: sh73a0: Add device node for ARM global timer
  ARM: dts: r8a7779: Add device node for ARM global timer
  ARM: shmobile: Enable ARM_GLOBAL_TIMER on Cortex-A9 MPCore SoCs

 arch/arm/boot/dts/r8a7779.dtsi         |  8 ++++++++
 arch/arm/boot/dts/sh73a0.dtsi          | 11 +++++++++--
 arch/arm/mach-shmobile/setup-r8a7779.c |  1 -
 arch/arm/mach-shmobile/setup-sh73a0.c  |  1 -
 drivers/soc/renesas/Kconfig            |  2 ++
 5 files changed, 19 insertions(+), 4 deletions(-)