ARM Cortex A9 Core-'1' Execution Sequence

Hi,

Iam using OMAP4430 panda board for my project development. It has ARM Cortex A9 MP Core (CORE-'0' & CORE-'1') and iam using linux-2.6.38. Iam just trying to understand the booting sequence for CORE-1.

As per my understanding the CORE-1 is triggered from wakeup_secondary(void) in arch/arm/mach-omap2/omap-smp.c by issuing "SEV" command

static void __init wakeup_secondary(void)
{
       
        omap_auxcoreboot_addr(virt_to_phys(omap_secondary_startup));
        smp_wmb();

        /*
         * Send a 'sev' to wake the secondary core from WFE.
         * Drain the outstanding writes to memory
         */
        dsb_sev();
        mb();
}

Kindly clarify my below queries,

1) Whether omap_auxcoreboot_addr() and omap_secondary_startup() is executed by CORE-'0' or CORE-'1'.
2) How int __cpuinit __cpu_up(unsigned int cpu) function is called (kernel/smp.c)
3) What's the purpose of __cpu_up() function.

Regards,
Raj

Hi,

omap_secondary_startup is the start address for CORE-1, after SEV is triggered from CORE-0. This address is programmed in AUXCOREBOOT1 register using omap_auxcoreboot_addr() function.

Sorry for your 2nd and 3rd question.

Regards,
karthi