Date: Tue, 22 Dec 2015 17:46:23 +0100 From: Michal Meloun <mmel@freebsd.org> To: Bartosz Szczepanek <bsz@semihalf.com>, freebsd-arm@freebsd.org, skra@freebsd.org Cc: Marcin Wojtas <mw@semihalf.com> Subject: Re: Translation Fault (L1) while using pmap-v6-new Message-ID: <56797E5F.2030603@freebsd.org> In-Reply-To: <CABLO=%2BkGzcnOLJ=_X8EfNw-YcBL%2BOFhf9G8YQb5RRasNLH9C_Q@mail.gmail.com> References: <CABLO=%2BkGzcnOLJ=_X8EfNw-YcBL%2BOFhf9G8YQb5RRasNLH9C_Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Dne 22.12.2015 v 16:23 Bartosz Szczepanek napsal(a): > Hello, > > currently I'm working on support for Armada38x on FreeBSD-CURRENT > (patchset was submitted to Phabricator - > https://reviews.freebsd.org/D4210). After switching to ARM_NEW_PMAP > problems related with PCIe subsystem emerged, even though that worked > fine on FreeBSD-10.2. > > My setup consists of Marvell Armada38x GP development board equipped > with Cortex-A9, PCIe controller serviced by arm/mv/mv_pci.c driver and > RealTek GE PCI card (re driver). Enabling ARM_NEW_PMAP leads to > 'Translation Fault (L1)' on write: > >> Starting Network: lo0 re0. >> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 >> options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6> >> inet6 ::1 prefixlen 128 >> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 >> inet 127.0.0.1 netmask 0xff000000 >> nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> >> re0: flags=8802<FataBROADCAST,SIMPLEl keX,MULTICAST> metrnelric 0 mtu 1500 >> mod options=8209b<Re daXCSUM,TXCSUM,VLAta > aN_MTU,VLAN_HWTAGbortGING,VLAN_HWCSUM: 'T,WOL_MAGIC,LINKSransTATE> >> on F ether 64lati:70:02:10:f7:20 >> ault (L1)' on write >> trapframe: 0xefe78b40 >> FSR=00000805, FAR=80000060, spsr=60000013 >> r0 =c0e796c0, r1 =80000000, r2 =00000004, r3 =00010000 >> r4 =c57f1000, r5 =c57f1000, r6 =00000000, r7 =00000001 >> r8 =c0e47e8c, r9 =c5be3780, r10=c57efb00, r11=efe78be0 >> r12=efe78d43, ssp=efe78bd0, slr=c0971ef4, pc =c0971f64 >> [ thread pid 241 tid 100068 ] >> Stopped at re_gmii_readreg+0x50: str r3, [r1, #0x060] >> db> > > (re_gmii_readreg is function in re driver, I made it non-static so it > is visible in debugger) > Address it crashes on lies in the PCI devices' memory range, and it > was accessed successfully several times during boot proccess before > crash (I put printfs in the exact function where fault occurs). So it > seems just like the memory mapping has disappeared at some point. I > put kdb_enter in re attach function (long before translation fault), > from that point I see that 0x80000000 mapping exists: > >> pcib0: <Marvell Integrated PCI/PCI-E Controller> mem 0xf1080000-0xf1081fff irq 1 on ofwbus0 >> [ thread pid 0 tid 100000 ] >> Stopped at kdb_enter+0x58: ldrb r15, [r15, r15, ror r15]! >> db> show pmap >> pmap: 0xC0EAC544 >> PT2MAP: 0xBFC00000 >> pt2tab: 0xC0F04000 >> 0x80000000: Section 0x8001041A, s:1 g:1 >> 0x80100000: Section 0x8011041A, s:1 g:1 >> 0x80200000: Section 0x8021041A, s:1 g:1 >> 0x80300000: Section 0x8031041A, s:1 g:1 >> ... > > Doing 'show pmap' after crash gives me long, long log without > 0x80000000 occuring. On the other hand, adding vtophys(0x80000060) > line before affected write operation translates address correctly. It > is visible in log attached. > > I've also tried to track various functions removing mapping in > pmap-v6-new, but with no luck. However, problem seems to lie there, as > system boots fine without ARM_NEW_PMAP option. I would be grateful for > you advice - what else can I do to investigate the issue? > > Best regards, > Bartosz Szczepanek > > > > _______________________________________________ > freebsd-arm@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" > Isn't 0x80000060 little strange address for KVA? Michal
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56797E5F.2030603>