Initially bind all interrupts to the boot CPU when using GICv3

This should be done by routing all interrupts to CPU0,
different assignment will be induced by either interrupts
shuffling or bus_bind_intr().

Reviewed by:   wma
Obtained from: Semihalf
Sponsored by:  Cavium
Differential Revision: https://reviews.freebsd.org/D5229
This commit is contained in:
zbb 2016-02-11 12:01:33 +00:00
parent 0740653d54
commit b8738668ec
2 changed files with 4 additions and 4 deletions

View File

@ -565,7 +565,7 @@ gic_v3_dist_init(struct gic_v3_softc *sc)
/*
* 4. Route all interrupts to boot CPU.
*/
aff = CPU_AFFINITY(PCPU_GET(cpuid));
aff = CPU_AFFINITY(0);
for (i = GIC_FIRST_SPI; i < sc->gic_nirqs; i++)
gic_d_write(sc, 4, GICD_IROUTER(i), aff);

View File

@ -1430,10 +1430,10 @@ its_device_alloc_locked(struct gic_v3_its_softc *sc, device_t pci_dev,
}
/*
* XXX ARM64TODO: Currently all interrupts are going
* to be bound to the CPU that performs the configuration.
* Initially all interrupts go to CPU0 but can be moved
* to another CPU by bus_bind_intr() or interrupts shuffling.
*/
cpuid = PCPU_GET(cpuid);
cpuid = 0;
newdev->col = sc->its_cols[cpuid];
TAILQ_INSERT_TAIL(&sc->its_dev_list, newdev, entry);