Re: Trying to reset a PCIe device and scratching my head...

From: Jimmie Mayfield
Date: Tue Sep 28 2010 - 15:13:17 EST


On Tue, Sep 28, 2010 at 09:06:55AM -0700, Jesse Barnes wrote:
> Right, if your system supports this, it may be the easiest way to go.

I was under the impression that PCIe requires support for at least
fundamental reset and maybe hot reset (secondary bus reset) though I'd
have to go back to the spec to verify the latter. Are you saying that
not all PCIe chipsets support this? Sorry if this seems like a dumb
question...I'm by no means a PCIe guru.

> But devices often have proprietary ways of resetting themselves too;
> maybe you could change your device to reset if a specific bit in config
> or MMIO space was flipped. You'd likely need some sort of delay before
> accessing the device again, but it should be bounded and fairly fixed,
> so probably not a big deal for the driver to handle.

Indeed, the device does support a proprietary reset via MMIO but
that reset only affects those components that lie behind the card's PCIe
interface. So it's nearly a full device reset but not quite. The FPGA
containing the PCIe interface does not get reloaded. Unfortunately, that
behavior is likely set in stone.

Jimmie

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/