[PULL][Zesty] Errata workarounds for arm_arch_timer

dann frazier dann.frazier at canonical.com
Fri Mar 24 02:17:31 UTC 2017


This addresses LP: #1675509.

The HiSilicon D05 board and systems based on Cortex-A73 each have
errata for their architected timers which can cause reads to return
bogus data. One of the arm_arch_timer maintainers has developed an
errata infrastructure to enable workarounds for these. I've backported
the v2 revision from the developer's tree to the zesty kernel and
added the relevant ACKs from the parent tree maintainer from the
mailing list. I'll continue to track the review process and watch for
any fixes relevant to Ubuntu.

Tested on HiSilicon D05; regression tested on HP m400 (APM X-Gene) and
a Cavium ThunderX CRB.

The following changes since commit 0cf75d7435609372dc1e3c2f32c4cb82a10189ce:

  pinctrl: intel: Add Intel Gemini Lake pin controller support
(2017-03-22 09:23:38 -0600)

are available in the git repository at:

  git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux
arm_arch_timer-erratum

for you to fetch changes up to 690752cbb5ebfd7b82b5e2bec6c87e90393fd5b6:

  UBUNTU: SAUCE: arm64: arch_timer: Add HISILICON_ERRATUM_161010101
ACPI matching data (2017-03-23 20:14:15 -0600)

----------------------------------------------------------------
Marc Zyngier (18):
      UBUNTU: SAUCE: arm64: Allow checking of a CPU-local erratum
      UBUNTU: SAUCE: arm64: Add CNTVCT_EL0 trap handler
      UBUNTU: SAUCE: arm64: Define Cortex-A73 MIDR
      UBUNTU: SAUCE: arm64: cpu_errata: Allow an erratum to be match
for all revisions of a core
      UBUNTU: SAUCE: arm64: cpu_errata: Add capability to advertise
Cortex-A73 erratum 858921
      UBUNTU: SAUCE: arm64: arch_timer: Add infrastructure for
multiple erratum detection methods
      UBUNTU: SAUCE: arm64: arch_timer: Add erratum handler for
globally defined capability
      UBUNTU: SAUCE: arm64: arch_timer: Add erratum handler for
CPU-specific capability
      UBUNTU: SAUCE: arm64: arch_timer: Move arch_timer_reg_read/write around
      UBUNTU: SAUCE: arm64: arch_timer: Get rid of erratum_workaround_set_sne
      UBUNTU: SAUCE: arm64: arch_timer: Rework the set_next_event workarounds
      UBUNTU: SAUCE: arm64: arch_timer: Make workaround methods optional
      UBUNTU: SAUCE: arm64: arch_timer: Allows a CPU-specific erratum
to only affect a subset of CPUs
      UBUNTU: SAUCE: arm64: arch_timer: Move clocksource_counter and co around
      UBUNTU: SAUCE: arm64: arch_timer: Enable CNTVCT_EL0 trap if
workaround is enabled
      UBUNTU: SAUCE: arm64: arch_timer: Workaround for Cortex-A73 erratum 858921
      UBUNTU: SAUCE: arm64: arch_timer: Allow erratum matching with
ACPI OEM information
      UBUNTU: SAUCE: arm64: arch_timer: Add
HISILICON_ERRATUM_161010101 ACPI matching data

Mark Rutland (1):
      arm64: ptrace: add XZR-safe regs accessors

dann frazier (1):
      UBUNTU: [Config] CONFIG_ARM64_ERRATUM_858921=y

 Documentation/arm64/silicon-errata.txt    |   1 +
 arch/arm64/include/asm/arch_timer.h       |  44 ++-
 arch/arm64/include/asm/cpucaps.h          |   3 +-
 arch/arm64/include/asm/cputype.h          |   2 +
 arch/arm64/include/asm/esr.h              |   2 +
 arch/arm64/include/asm/ptrace.h           |  20 ++
 arch/arm64/kernel/cpu_errata.c            |  15 +
 arch/arm64/kernel/cpufeature.c            |  13 +-
 arch/arm64/kernel/traps.c                 |  14 +
 debian.master/config/annotations          |   2 +
 debian.master/config/config.common.ubuntu |   1 +
 drivers/clocksource/Kconfig               |  11 +
 drivers/clocksource/arm_arch_timer.c      | 535 +++++++++++++++++++++---------
 13 files changed, 494 insertions(+), 169 deletions(-)




More information about the kernel-team mailing list