Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Oct 2015 23:27:08 +0000 (UTC)
From:      Zbigniew Bodek <zbb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r289967 - head/sys/arm64/arm64
Message-ID:  <201510252327.t9PNR8oC032562@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: zbb
Date: Sun Oct 25 23:27:08 2015
New Revision: 289967
URL: https://svnweb.freebsd.org/changeset/base/289967

Log:
  Fix bus numbering in ThunderX ITS quirk
  
  Internal busses (thus ECAM access) should be mapped to
  all values from 0 to 143.
  
  Obtained from: Semihalf
  Sponsored by:  The FreeBSD Foundation
  Differential revision: https://reviews.freebsd.org/D3753

Modified:
  head/sys/arm64/arm64/gic_v3_its.c

Modified: head/sys/arm64/arm64/gic_v3_its.c
==============================================================================
--- head/sys/arm64/arm64/gic_v3_its.c	Sun Oct 25 23:22:40 2015	(r289966)
+++ head/sys/arm64/arm64/gic_v3_its.c	Sun Oct 25 23:27:08 2015	(r289967)
@@ -59,6 +59,8 @@ __FBSDID("$FreeBSD$");
 #include "gic_v3_reg.h"
 #include "gic_v3_var.h"
 
+#define	GIC_V3_ITS_QUIRK_THUNDERX_PEM_BUS_OFFSET	144
+
 #include "pic_if.h"
 
 /* Device and PIC methods */
@@ -1475,8 +1477,8 @@ its_get_devid_thunder(device_t pci_dev)
 	bsf = PCI_RID(pci_get_bus(pci_dev), pci_get_slot(pci_dev),
 	    pci_get_function(pci_dev));
 
-	/* ECAM is on bus=0 */
-	if (bus == 0) {
+	/* Check if accessing internal PCIe (low bus numbers) */
+	if (bus < GIC_V3_ITS_QUIRK_THUNDERX_PEM_BUS_OFFSET) {
 		return ((pci_get_domain(pci_dev) << PCI_RID_DOMAIN_SHIFT) |
 		    bsf);
 	/* PEM otherwise */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510252327.t9PNR8oC032562>