[Skiboot] [PATCH] hw/npu2: Merge reset functions

Alistair Popple alistair at popple.id.au
Tue Mar 26 13:15:05 AEDT 2019

On Monday, 25 March 2019 11:12:49 AM AEDT Frederic Barrat wrote:
> Le 22/03/2019 à 22:15, Reza Arbab a écrit :
> > On Fri, Mar 22, 2019 at 04:45:23PM +1100, Oliver O'Halloran wrote:
> >> static int64_t npu2_freset(struct pci_slot *slot __unused)
> >> {
> >> -    return OPAL_SUCCESS;
> >> +    return npu2_reset("Freset");
> >> }
> > 
> > IIRC, there actually is a reason npu2_freset() doesn't do anything.
> > 
> > Alistair, do you recall?
> I'm certainly not trying to fill-in for Alistair ;-) but freset is
> called when the PCI slots are init when skiboot starts, typically to
> kick-in link training. Except for nvlink. So here we'd be resetting the
> NTL instead of doing nothing. Any chance it could have consequences?

I don't recall there being any reason why freset doesn't do anything other 
than it doesn't need to do anything.

The NVLink resets were originally used for resetting the NVLink HW to a POR 
state so the driver could retrain links, etc. in the case of a GPU reset. For 
coherent memory we required some work arounds to fence the NVLink as well once 
the link was brought down. Calling this from freset() shouldn't cause any 
issues during skiboot start, although I am not sure what the argument for 
doing it is either as unlike PCIe (and perhaps CAPI?) we can't do nvlink 
training from Skiboot.

- Alistair

>    Fred

More information about the Skiboot mailing list