On 06/06/2012 05:21 PM, Benjamin Herrenschmidt wrote: > Now that means that we can end up with funky arithmetic in a couple of > cases: > > - If the bus address of the IO space is larger than the virtual address > returned by ioremap (it's a bit silly to use large IO addresses but it's > technically possible, normally IO windows start at 0 bus-side though). > In fact I wouldn't be surprised if we have various other bugs if IO > windows don't start at 0 (you may want to double check your dts setup > here).
The dts does show the I/O beginning at bus address zero: ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000 0x1000000 0x0 0x0 0xe1000000 0x0 0x10000>; > - If the ioremap'ed address of the IO space of another domain is lower > than the ioremap'ed address of the first domain, in which case the > calculation: > > host->io_base_virt - _IO_BASE > > results in a negative offset. There should have been only one PCI domain in the QEMU case. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev