powerpc/powernv: Restrict the busdma tag to only POWER8

It seems this tag is causing problems on POWER9 systems.  Since no POWER9 user
has encountered the problem fixed by r339589 just restrict it to POWER8 for now.
A better fix will likely be to update powerpc/busdma_machdep.c to handle the
window correctly.

Reported by:	mmacy, others
This commit is contained in:
Justin Hibbits 2018-11-08 20:31:12 +00:00
parent 2bfaf585ca
commit ad39591ad2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=340261

View File

@ -433,20 +433,26 @@ opalpci_attach(device_t dev)
}
/* Create the parent DMA tag */
err = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */
1, 0, /* alignment, bounds */
OPAL_PCI_BUS_SPACE_LOWADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR_32BIT, /* highaddr */
NULL, NULL, /* filter, filterarg */
BUS_SPACE_MAXSIZE, /* maxsize */
BUS_SPACE_UNRESTRICTED, /* nsegments */
BUS_SPACE_MAXSIZE, /* maxsegsize */
0, /* flags */
NULL, NULL, /* lockfunc, lockarg */
&sc->ofw_sc.sc_dmat);
if (err != 0) {
device_printf(dev, "Failed to create DMA tag\n");
return (err);
/*
* Constrain it to POWER8 PHB (ioda2) for now. It seems to mess up on
* POWER9 systems.
*/
if (ofw_bus_is_compatible(dev, "ibm,ioda2-phb")) {
err = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */
1, 0, /* alignment, bounds */
OPAL_PCI_BUS_SPACE_LOWADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR_32BIT, /* highaddr */
NULL, NULL, /* filter, filterarg */
BUS_SPACE_MAXSIZE, /* maxsize */
BUS_SPACE_UNRESTRICTED, /* nsegments */
BUS_SPACE_MAXSIZE, /* maxsegsize */
0, /* flags */
NULL, NULL, /* lockfunc, lockarg */
&sc->ofw_sc.sc_dmat);
if (err != 0) {
device_printf(dev, "Failed to create DMA tag\n");
return (err);
}
}
/*