diff --git a/include/arm11/start.h b/include/arm11/start.h index 0bb5f17..378d275 100644 --- a/include/arm11/start.h +++ b/include/arm11/start.h @@ -11,5 +11,5 @@ { u32 cpuId; __asm__ __volatile__("mrc p15, 0, %0, c0, c0, 5" : "=r" (cpuId) : ); - return cpuId & 0xF; + return cpuId & 3; } diff --git a/source/arm11/exception.s b/source/arm11/exception.s index 277795f..892d261 100644 --- a/source/arm11/exception.s +++ b/source/arm11/exception.s @@ -36,6 +36,7 @@ cmp r1, #32 ldrlo r2, =privIrqHandlerTable mrclo p15, 0, r3, c0, c0, 5 @ Get CPU ID + andlo r3, r3, #3 addlo r2, r2, r3, lsl #7 ldrhs r2, =irqHandlerTable subhs r1, r1, #32 diff --git a/source/arm11/interrupt.c b/source/arm11/interrupt.c index 2faef6c..455b7fa 100644 --- a/source/arm11/interrupt.c +++ b/source/arm11/interrupt.c @@ -83,7 +83,6 @@ { REGs_GID_PEN_CLR[0] = 0xFFFFFFFFu; - // TODO: This needs confirmation for(u32 i = 0; i < 8; i++) REGs_GID_IPRIO[i] = 0xE0E0E0E0u; REGs_GID_ICONF[0] = 0xFFFFFFFFu;