Page MenuHomeFreeBSD

D46094.id144635.diff
No OneTemporary

D46094.id144635.diff

diff --git a/sys/arm64/arm64/gicv3_its.c b/sys/arm64/arm64/gicv3_its.c
--- a/sys/arm64/arm64/gicv3_its.c
+++ b/sys/arm64/arm64/gicv3_its.c
@@ -586,11 +586,20 @@
its_tbl_size = l1_esize * l1_nidents;
its_tbl_size = roundup2(its_tbl_size, page_size);
break;
- case GITS_BASER_TYPE_VP:
case GITS_BASER_TYPE_PP: /* Undocumented? */
case GITS_BASER_TYPE_IC:
its_tbl_size = page_size;
break;
+ case GITS_BASER_TYPE_VP:
+ /*
+ * If GITS_TYPER.SVPET != 0, the pending table is
+ * shared amongst the redistibutors and ther other
+ * ITSes. Requiring sharing across the ITSes when none
+ * of the redistributors have GICR_VPROPBASER.Valid==1
+ * isn't specified in the architecture, but that's how
+ * the GIC-700 behaves. We don't handle vPE tables at
+ * all yet, so just skip this base register.
+ */
default:
if (bootverbose)
device_printf(dev, "Unhandled table type %lx\n",

File Metadata

Mime Type
text/plain
Expires
Fri, Aug 28, 3:04 PM (13 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37462640
Default Alt Text
D46094.id144635.diff (937 B)

Event Timeline