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>
