We're developing a proprietary RTOS using several of the cores in a Cortex A9MP processor. We've already run the OS on a single core, and now want to add additional cores. My main question is concerning the cache and MMU initialization for the primary core vs the secondary cores. The sequence for the primary core is:
This is the basic sequence. After this, core 0 is up and running with both L1 and L2 caches enabled. So my question is can I now enable core 1 with the L2 cache enabled, or do I need to bring it up and functional, and then enable the L2 cache? The MMU is set up with flat mapping, and the memory space for each additional core is set to shared so that core 0 can write the OS into it. Each core has the SMP bit set. The MMU table is accessible to all the cores.
To further clarify, the question is when is it safe to enable the L2c310 level 2 cache. Do I have to wait until all of the secondary cores are initialized or is it OK to let the primary core enable the L2c310 THEN enable the secondary cores?