Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Dec 2012 22:24:42 -0800
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        arm@freebsd.org
Subject:   Unsolved problem with WB caches on ARMv6
Message-ID:  <37F24B3C-4600-4E57-96EB-98C91FCD2B72@bluezbox.com>

index | next in thread | raw e-mail

Hello,

One of the long-time issues with FreeBSD/ARMv6 is that Write-Back cache
mode does not work properly. On PandaBoard changing cache mode to WB from WT 
causesUSB glitches (starting from stalls  to network packets corruption) and random 
memory corruptions that manifest themselves as a userland programs crashes.

gber@ tracked down one of the bugs several month ago, but it's still unusable
at least on my setup. 

I spent some time debugging through busdma and USB code but failed to find
anything fishy. PandaBoard's USB host controller is EHCI. QH and QTDs are 
flushed properly. Corruption pattern in packets is weird: it's not cacheline-size
it's like chunk of data is just missing from bulk transfer DMA buffer. L2 cache
is disabled. 

The issue is not reproducible in QEMU. 

Fix for arm/160431 applied to busdma-v6.c didn't help. 

I'm out of ideas for now. May be Ian or Alan will have some suggestions where to look?

If you have setup with armv6 devices, I'd appreciate test results for this patch:
http://people.freebsd.org/~gonzo/patches/armv6-wb.diff
Just wondering if results differ  from platform to platform. 

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37F24B3C-4600-4E57-96EB-98C91FCD2B72>