On Mon, Oct 18, 2010 at 3:24 AM, Eran Liberty <liberty@xxxxxxxxxxxx> wrote: <snip> > In P2020 if I do any of those the CPU is left hung over the transaction. > > something like: > in_le32(addr) > > is turned into: > 7c 00 04 ac sync 7c 00 4c 2c lwbrx r0,0,r9 > 0c 00 00 00 twi 0,r0,0 > 4c 00 01 2c isync > > assembly code, where in r9 (in this example) hold an address which is > physically mapped into the PCIe resource space. > > The CPU will hang over the load instruction. > > Just for the fun of it, I have wrote my own assembly function omitting > everything but the load instruction; still freeze. > Replace "lwbrx" with a simple "lwz"; still freeze. > > It looks like the CPU snoozes till the PCIe transaction is done with no > timeouts, ignoring any abort signal. > It sounds like a similar issue I got with the 83xx PCIe host controller. If there is no valid link established under the PCIe host controller (ie: no device connected), or the device under the PCIe host controller does not respond the configuration access correctly, the host will hang at the instruction of "lwz" when trying to access the PCIe configuration space (in 83xx, it's memory mapped) And I remember the same issue exists in 8548, not sure if it is fixed in P2020. <snip> Bin > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@xxxxxxxxxxxxxxxx > https://lists.ozlabs.org/listinfo/linuxppc-dev > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html