[Skiboot] [PATCH v2 1/2] astbmc: Add NPU slot type and use it in Garrison
Russell Currey
ruscur at russell.cc
Wed Jun 22 12:24:17 AEST 2016
On Wed, 2016-06-22 at 12:12 +1000, Alistair Popple wrote:
> On Tue, 21 Jun 2016 18:04:47 Russell Currey wrote:
> > NPU links are grouped into pairs, signifying that they both correlate to
> > the same physical GPU. These pairs are presented in the Garrison slot
> > table as typical PCI devices, creating what are essentially redundant
> > entries. Add a new slot type specifically for NPUs, and subsequently
> > perform bdfn correlation using it.
> >
> > Signed-off-by: Russell Currey <ruscur at russell.cc>
> > ---
> > V2: New change to facilitate bdfn allocation without using pbcq
> > ---
> > platforms/astbmc/astbmc.h | 2 ++
> > platforms/astbmc/garrison.c | 36 ++++++++----------------------------
> > platforms/astbmc/slots.c | 7 +++++++
> > 3 files changed, 17 insertions(+), 28 deletions(-)
>
> <snip>
>
> > diff --git a/platforms/astbmc/slots.c b/platforms/astbmc/slots.c
> > index 36547e1..992f68b 100644
> > --- a/platforms/astbmc/slots.c
> > +++ b/platforms/astbmc/slots.c
> > @@ -70,6 +70,13 @@ static const struct slot_table_entry
> *match_slot_dev_entry(struct phb *phb,
> > prerror("SLOT: Bad PHB entry type in table !\n");
> > continue;
> > }
> > +
> > + if (ent->etype == st_npu_slot) {
> > + /* NPU groups are at device level, so ignore
> > function
> */
> > + if (ent->location == ((pd->bdfn & 0xff) >> 3))
>
> Is this reliable? ent->location is a ST_LOC_NPU_GROUP code but what
> guarantees
> that the pd->bdfn device number matches the NPU_GROUP number?
It depends. It works for Garrison since the groups (0, 1) correlate to the
device numbers, which are (0, 1, 8, 9 -- so 0, 0, 1, 1). There's probably a
more robust way to do things, though.
>
> Do we need something like "if (ent->location == pd->npu_group)" instead?
I'm hoping to avoid adding NPU-specific stuff to any generic PCI structs, if
possible.
>
> - Alistair
>
> > + return ent;
> > + }
> > +
> > if (ent->location == (pd->bdfn & 0xff))
> > return ent;
> > }
> >
More information about the Skiboot
mailing list