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>

next in thread | raw e-mail | index | archive | help
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=20
causesUSB glitches (starting from stalls  to network packets corruption) =
and random=20
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.=20

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=20
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.=20

The issue is not reproducible in QEMU.=20

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

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.=20=



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