[U-Boot] [PATCH 0/2] sunxi: Fix MMC driver crashes

Andre Przywara andre.przywara at arm.com
Wed Jun 27 00:42:51 UTC 2018


There were recent reports about MMC operations failing very often on
boards with the Allwinner A64 SoC. Investigations pointed to a time issue,
and indeed a recent patch [1] introduced frequent arch timer reads to the
Allwinner MMC driver. Reverting this patch made the problems go away,
but also hurt performance much.
Unrelated reports also confirmed an Allwinner A64 arch timer erratum[2], which
can lead to erroneous counter reads, where the lower 11 bits become either
all 0's or all 1's. This leads to random jumps forwards and backwards, with
catastrophic consequences.
These two patches fix the issue, while retaining the much improved MMC
performance.
The first patch refactors an already existing arch timer fix, to allow
the second patch, introducing an Allwinner specific workaround, to fit
it more nicely.

Please have a look and apply as soon as possible.

Cheers,
Andre.

[1] commit 5ff8e54888e4d26a352453564f7f599d29696dc9
Author: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
Date:   Wed Mar 21 12:18:58 2018 +0100
    sunxi: improve throughput in the sunxi_mmc driver

[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2018-May/576886.html

Andre Przywara (2):
  arm: timer: factor out FSL arch timer erratum workaround
  arm: timer: sunxi: add Allwinner timer erratum workaround

 arch/arm/cpu/armv8/generic_timer.c | 55 +++++++++++++++++++++++++++++++++-----
 arch/arm/mach-sunxi/Kconfig        |  4 +++
 2 files changed, 53 insertions(+), 6 deletions(-)

-- 
2.14.4



More information about the U-Boot mailing list