On May 22, 2011, at 8:04 PM, Olivier Houchard wrote:

> On Sat, May 21, 2011 at 01:34:02AM +0200, Damjan Marion wrote:
>> 
>> Hi,
>> 
> 
> Hi Damjan,
> 
>> I'm made some progress on porting existing marvell orion ARM code 
>> to work on 88F5181L SoC which have embedded PCI controller.
>> 
>> PCI driver detects resources and recognizes Atheros wlan card, 
>> however when driver tries to access 1st register with
>> bus_space_write_4 vm_fault happens:
>> 
>> vm_fault(0xc0e4f000, e8007000, 2, 0) -> 1
>> Fatal kernel mode data abort: 'Translation Fault (S)'
>> trapframe: 0xc0d3faa4
>> FSR=00000005, FAR=e800704c, spsr=600000d3
>> r0 =00000000, r1 =e8000000, r2 =0000704c, r3 =00000003
>> r4 =c13cd000, r5 =c0c4bd60, r6 =c0bece04, r7 =c12dd000
>> r8 =00000023, r9 =c0d074c8, r10=c0d3fba4, r11=c0d3fb00
>> r12=00000000, ssp=c0d3faf0, slr=c095f830, pc =c0bece04
>> 
>> [ thread pid 0 tid 100000 ]
>> Stopped at      generic_bs_w_4: str     r3, [r1, r2]
>> 
>> 0xe8000000 is PCI mem space. I can see that PCI driver (mv_pci.c) allocates 
>> this resource:
>> 
>> pcib0: <Marvell Integrated PCI/PCI-E Controller> mem 0xf1030000-0xf1031fff 
>> irq 0 on fdtbus0
>> pci0: <PCI bus> on pcib0
>> mv_pcib_alloc_resource: start=0xe8000000 end=0xe800ffff count=0x00010000 
>> flags=0x00
>> 
>> What can be the reason for this vm_fault? 
>> 
> 
> I don't know the Marvell, nor the FDT code, well, but you shouldn't access
> to the PCI mem space using the physical address, so maybe something is missing
> from the dts ?
> Also, reading the mv code, there's this in mv_machdep.c :
>       if (fdt_pci_devmap(child, &fdt_devmap[i],
>                           MV_PCIE_IO_BASE, MV_PCIE_MEM_BASE) != 0)
>                               return (ENXIO);
> but nothing equivalent for the PCI controller (as it seems the Orion has both
> PCI and PCIe). So maybe it is lacking ?

Hi Olivier,

yes, that code is wrong. It is inside loop so if there are 2 PCI adapters 
(i.e. PCIe + PCI) it will try to map both to same VA.

Also different Marvell SoCs are using different PCI regions, so this needs to 
be adjusted to work with my SoC.

Thanks,

Damjan





_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

Reply via email to