From 4718610d0d89b77cfa89bbbae38b1910c0bd0362 Mon Sep 17 00:00:00 2001 From: Zbigniew Bodek Date: Sat, 8 Aug 2015 21:46:38 +0000 Subject: [PATCH] Treat internal bridge as subtractive on ThunderX ARM64 Internal bridges in Cavium ThunderX SoC behave as subtractive, but they are unable to be identified. Force setting an appropriate flag. Reviewed by: emaste, imp Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3277 --- sys/dev/pci/pci_pci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 585ee863bc46..5b925c8a02e8 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -960,9 +960,10 @@ pcib_attach_common(device_t dev) * The i82380FB mobile docking controller is a PCI-PCI bridge, * and it is a subtractive bridge. However, the ProgIf is wrong * so the normal setting of PCIB_SUBTRACTIVE bit doesn't - * happen. There's also a Toshiba bridge that behaves this - * way. + * happen. There are also Toshiba and Cavium ThunderX bridges + * that behave this way. */ + case 0xa002177d: /* Cavium ThunderX */ case 0x124b8086: /* Intel 82380FB Mobile */ case 0x060513d7: /* Toshiba ???? */ sc->flags |= PCIB_SUBTRACTIVE;