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>