version 1.25, 2017/06/22 06:51:30 |
version 1.26, 2017/06/22 07:56:40 |
Line 577 armgic_attach(device_t parent, device_t |
|
Line 577 armgic_attach(device_t parent, device_t |
|
uint32_t pmr = gicc_read(sc, GICC_PMR); |
uint32_t pmr = gicc_read(sc, GICC_PMR); |
u_int priorities = 1 << popcount32(pmr); |
u_int priorities = 1 << popcount32(pmr); |
|
|
|
const uint32_t iidr = gicc_read(sc, GICC_IIDR); |
|
const int iidr_prod = __SHIFTOUT(iidr, GICC_IIDR_ProductID); |
|
const int iidr_arch = __SHIFTOUT(iidr, GICC_IIDR_ArchVersion); |
|
const int iidr_rev = __SHIFTOUT(iidr, GICC_IIDR_Revision); |
|
const int iidr_imp = __SHIFTOUT(iidr, GICC_IIDR_Implementer); |
|
|
/* |
/* |
* Find the boot processor's CPU interface number. |
* Find the boot processor's CPU interface number. |
*/ |
*/ |
Line 611 armgic_attach(device_t parent, device_t |
|
Line 617 armgic_attach(device_t parent, device_t |
|
aprint_normal(": Generic Interrupt Controller, " |
aprint_normal(": Generic Interrupt Controller, " |
"%zu sources (%zu valid)\n", |
"%zu sources (%zu valid)\n", |
sc->sc_pic.pic_maxsources, sc->sc_gic_lines); |
sc->sc_pic.pic_maxsources, sc->sc_gic_lines); |
|
aprint_debug_dev(sc->sc_dev, "Architecture version %d" |
|
" (0x%x:%d rev %d)\n", iidr_arch, iidr_imp, iidr_prod, |
|
iidr_rev); |
|
|
#ifdef MULTIPROCESSOR |
#ifdef MULTIPROCESSOR |
sc->sc_pic.pic_cpus = kcpuset_running; |
sc->sc_pic.pic_cpus = kcpuset_running; |