@@ -54,6 +54,7 @@
#include <chiptod.h>
#include <xive.h>
#include <xscom-p9-regs.h>
+#include <nvram.h>
/* Enable this to disable error interrupts for debug purposes */
#define DISABLE_ERR_INTS
@@ -2844,9 +2845,13 @@ static void phb4_init_hw(struct phb4 *p, bool first_init)
out_be64(p->regs + PHB_PCIE_CRESET, creset);
/* Init_16 - PHB Control */
- out_be64(p->regs + PHB_CTRLR,
- PHB_CTRLR_IRQ_PGSZ_64K |
- SETFIELD(PHB_CTRLR_TVT_ADDR_SEL, 0ull, TVT_2_PER_PE));
+ val = PHB_CTRLR_IRQ_PGSZ_64K |
+ SETFIELD(PHB_CTRLR_TVT_ADDR_SEL, 0ull, TVT_2_PER_PE);
+
+ if (nvram_query_eq("pci-eeh-mmio", "disabled"))
+ val |= PHB_CTRLR_MMIO_EEH_DISABLE;
+
+ out_be64(p->regs + PHB_CTRLR, val);
/* Init_17..40 - Architected IODA3 inits */
phb4_init_ioda3(p);
Having the option to disable EEH for MMIO without rebuilding skiboot could be useful for testing, so check for pci-eeh-mmio=disabled in nvram. Signed-off-by: Russell Currey <ruscur@russell.cc> --- V2: Change to pci-eeh-mmio=disabled thanks to bikeshedding --- hw/phb4.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)