Allocate the ITS translation table with a 64k page alignment. This is the

largest alignment the ITS can require.

This fixes a bug with the ARM Architecture Envelope Model (AEM) where it
only allows 64k pages so will fail to attach the ITS device when this table
is not sufficiently aligned.

Sponsored by:	DARPA, AFRL
This commit is contained in:
andrew 2017-10-31 23:17:17 +00:00
parent fa6594dcb9
commit d9baf196b0

View File

@ -457,7 +457,7 @@ gicv3_its_table_init(device_t dev, struct gicv3_its_softc *sc)
/* Allocate the table */
table = (vm_offset_t)contigmalloc(npages * PAGE_SIZE,
M_GICV3_ITS, M_WAITOK | M_ZERO, 0, (1ul << 48) - 1,
PAGE_SIZE, 0);
PAGE_SIZE_64K, 0);
sc->sc_its_ptab[i].ptab_vaddr = table;
sc->sc_its_ptab[i].ptab_size = npages * PAGE_SIZE;