On 3/17/19 6:04 PM, Peter Robinson wrote:
On Sun, Mar 17, 2019 at 2:56 PM Oskari Lemmela <osk...@lemmela.net> wrote:
Fixes spurious timeouts which have been seen during testing
SPI_SUNXI driver. The false timeouts disappear when number of
bits reduced to 10 in workaround.

The false timeouts are caused by timer backward jumps.
Wouldn't it be best to apply the same fix as the kernel uses here [1]
as a more permanent fix?

[1] https://www.spinics.net/lists/arm-kernel/msg699622.html

Sure. Difference is that retry counter was added to while loop in kernel side.

Only CNTPCT is used in u-boot.
So CNTVCT part of kernel patch is currently not needed?


Signed-off-by: Oskari Lemmela <osk...@lemmela.net>
---
  arch/arm/cpu/armv8/generic_timer.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv8/generic_timer.c 
b/arch/arm/cpu/armv8/generic_timer.c
index c1706dcec1..2e06ee4ed2 100644
--- a/arch/arm/cpu/armv8/generic_timer.c
+++ b/arch/arm/cpu/armv8/generic_timer.c
@@ -66,7 +66,7 @@ unsigned long timer_read_counter(void)
         isb();
         do {
                 asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct));
-       } while (((cntpct + 1) & GENMASK(10, 0)) <= 1);
+       } while (((cntpct + 1) & GENMASK(9, 0)) <= 1);

         return cntpct;
  }
--
2.17.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Oskari

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to