summaryrefslogtreecommitdiffstats
path: root/hw/npu-hw-procedures.c
Commit message (Collapse)AuthorAgeFilesLines
* npu: Implement FLRAlexey Kardashevskiy2017-04-271-0/+8
| | | | | | | | | | | | | | | | | | As the comment in npu_dev_populate_pcie_cap() says, "We should support FLR" and the NPU device advertises its support. However, when the kernel issues FLR, skiboot does nothing which leaves NPU in a state which does not allow to use NV links again after GPU was reset. This adds basic handling of FLR (function level reset). This does not update hreset/freset handlers as they are not going to be called under any circumstance - EEH is not supported for NPU and the kernel won't issue OPAL reset otherwise. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Acked-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* hw/npu: Use PCI virtual deviceGavin Shan2016-09-021-13/+19
| | | | | | | | | | | | | This rmoves the codes for emulated PCI config space as it can be supported by generic PCI virtual device: * The PCI virtual device and NPU device are created at same time. * Uses PCI virtual device and filter to access NPU (PCI) device's config space. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Reviewed-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* fwts: Add FWTS annotations for NPU errorsStewart Smith2016-06-201-4/+5
| | | | | | | We also remove the NPUERR macros so that the FWTS parsing magic can construct find the prlog statements. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* PCI: Move PHB lock to generic layerGavin Shan2016-05-031-1/+0
| | | | | | | | | | | | | | | | All kinds of PHBs are maintaining a spinlock. At mean while, the spinlock is acquired or released by backends for phb_ops->lock() or phb_ops->unlock(). There're no difference of the logic on all kinds of PHBs. So it's reasonable to maintain the lock in the generic layer (struct phb). This moves lock from specific PHB to generic one. The spinlock is initialized when the generic PHB is registered in pci_register_phb(). Also, two inline functions phb_{lock, unlock}() are introduced to acquire/release it. No logical changes introduced. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* nvlink: Clear error registers at the end of the reset procedureRussell Currey2016-01-211-0/+6
| | | | | | | | | | | | Once the NPU has been reset, it should no longer have any fixable errors. Clear any relevant error registers at the end of the reset procedure. There may be other error registers that should be cleared, if found they will be added later. Signed-off-by: Russell Currey <ruscur@russell.cc> Acked-By: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* nvlink: Use SCOMs instead of MMIO in reset procedureRussell Currey2016-01-151-9/+7
| | | | | | | | | | | EEH in the kernel shuts down MMIO BARs as part of freeze recovery. This can cause the reset procedure, which you probably want to work during a freeze, to fail because it can't do operations with MMIO. Refactor the MMIO operations to use SCOM instead. Signed-off-by: Russell Currey <ruscur@russell.cc> Acked-By: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Nvlink: Add NPU PHB functionsAlistair Popple2015-10-261-0/+598
This patch adds support for the NPU Nvlink PHB type. It provides access to each nvlink in the system by exposing them as PCIe devices under a NPU PHB type. Each PCIe device has a configuration space implemented in software which indicates the base address of the DL/TL/PL registers required by the device drivers. It also presents one LSI per device which is used to signal device drivers of changes in device status. The configuration space also adds a vendor specific capability which is used primarily by device drivers to power on an train the IBM PHY. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
OpenPOWER on IntegriCloud