A9 Cp15 issue

A9 MP, IAR tool set, jLink probe, using 2 cores. I'm having an issue I didn't expect. Both core 0 and core 1 boot with the same startup code although the two cores code set is in different locations. Core 0 starts at 0x10000000, and core 2 starts at 0x10300000. Both run the same RTOS. I depend on the ARM CP 15 affinity register to let the RTOS know which core it's running on. This is the beginning of the startup code:

__boot

// Setup temporary vector table
    b reset
    b .          // undefined
    b .          // svc
    b .          // prefetch
    b .          // abort
    b .          // reserved vector
    b .          // irq
    b .          // fiq

reset
// write the address of the vector table into the VBAR reg
    ldr r0, =__boot
    mcr p15, 0, r0, c12, c0, 0 //write VBAR register

// Get core ID and save it in r5
    mrc p15,0,r2,c0,c0,5 // read multiprocessor affinity register
    and r2, r2, #3 // mask off, leaving CPU ID field
    mov r5, r2 // save core ID for later

You can see at the bottom of this code I read the affinity register into r2. The issue is that it always reads 0x80000000 for both core 0 and core 1. What am I doing wrong? The debugger shows that when i'm excuting core 0  code the PC is in the 0x1000ish range, and the core 1 code is executing in the 0x1030ish range. That tells me that the core 1 code is not being executed by core 0.