On 10/31/15 03:21, Ganbold Tsagaankhuu wrote: > On Fri, Oct 23, 2015 at 12:38 AM, Jason A. Harmening <j...@freebsd.org> > wrote: > >> Author: jah >> Date: Thu Oct 22 16:38:01 2015 >> New Revision: 289759 >> URL: https://svnweb.freebsd.org/changeset/base/289759 >> >> Log: >> Use pmap_quick* functions in armv6 busdma, for bounce buffers and cache >> maintenance. This makes it safe to sync buffers that have no VA mapping >> associated with the busdma map, but may have other mappings, possibly on >> different CPUs. This also makes it safe to sync unmapped bounce buffers in >> non-sleepable thread contexts. >> >> Similar to r286787 for x86, this treats userspace buffers the same as >> unmapped buffers and no longer borrows the UVA for sync operations. >> >> Submitted by: Svatopluk Kraus <onw...@gmail.com> (earlier >> revision) >> Tested by: Svatopluk Kraus >> Differential Revision: https://reviews.freebsd.org/D3869 > > > > It seems I can't boot Odroid C1 with this change. > > http://pastebin.ca/3227678 > > r289758 works for me. > > Am I missing something? > > thanks, > > Ganbold > >
Hmmm, the fault address of 0x20 and the fact that this is happening during mi_startup() make me wonder if the per-cpu pageframes used by pmap_quick* haven't been initialized yet. I wonder if changing the order of qpages_init in sys/arm/arm/pmap-v6[-new].c to something other than SI_ORDER_ANY would help? It seems like we'd want SI_ORDER_FOURTH or SI_ORDER_MIDDLE, since mp_start() is SI_ORDER_THIRD. It would be nice to know what's calling bus_dmamap_sync() in this case. I can't figure that out, but maybe that's because I haven't had coffee yet. Unfortunately I'm going to have limited time to help debug this over the next week, as I'm moving across the country starting (hopefully) today. --Jason
signature.asc
Description: OpenPGP digital signature