Go to file
Adam Madsen 7faae1b95a Guard against common cases where vega10 does not
need to be reset.

Specifically, check if the card is already in BACO. If so, exit. If the card shows no signs of life, exit because we likely can't do anything. If the card shows signs of life, do a BACO reset.
2020-11-01 23:29:53 -06:00
include implemented initial ioctl framework and empty device database 2020-10-31 19:10:01 +11:00
src Guard against common cases where vega10 does not 2020-11-01 23:29:53 -06:00
userspace Add structure for common pre- and post-reset tasks 2020-11-01 16:14:11 -06:00
.gitignore Initial module framework 2020-10-31 18:00:00 +11:00
Kbuild Add structure for common pre- and post-reset tasks 2020-11-01 16:14:11 -06:00
LICENSE Initial module framework 2020-10-31 18:00:00 +11:00
Makefile Add structure for common pre- and post-reset tasks 2020-11-01 16:14:11 -06:00
README.md Initial module framework 2020-10-31 18:00:00 +11:00

Vendor Reset

The goal of this project is to provide a kernel module that is capable of resetting hardware devices into a state where they can be re-initialized or passed through into a virtual machine (VFIO). While it would be great to have these in the kernel as PCI quirks, some of the reset procedures are very complex and would never be accepted as a quirk (ie AMD Vega 10).

By providing this as an out of tree kernel module, vendors will be able to easily create pull requests to add functionallity to this module, and users will be able to easily update this module without requiring a complete kernel rebuild.

If you are a vendor intending to add support for your device to this project please first consider two things:

  1. Can you fix your hardware/firmware to reset correctly using FLR or a BUS reset?
  2. Is the reset simple enough that it should really be a kernel pci quirk (see: pci_quirk.c)?

If you answer yes to either of these questions this project is not for you.