sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // e32\nkernsmp\arm\nccpu.cia sl@0: // sl@0: // sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: extern "C" { sl@0: sl@0: __NAKED__ void KickCpu(volatile T_UintPtr* aPtr, T_UintPtr aRegsPhys) sl@0: { sl@0: asm("orr r1, r1, #3 "); sl@0: asm("str r1, [r0] "); sl@0: __DATA_SYNC_BARRIER__(r0); sl@0: ARM_SEV; sl@0: __JUMP(,lr); sl@0: } sl@0: sl@0: __NAKED__ void _ApEntry() sl@0: { sl@0: asm("str sp, [r6] "); sl@0: __DATA_SYNC_BARRIER__(r0); sl@0: asm("ldr r1, [r4, #%a0]" : : "i" _FOFF(SAPBootInfo,iMain)); sl@0: asm("mov r0, r4 "); // pointer to SAPBootInfo sl@0: asm("adr lr, 1f "); sl@0: __JUMP(,r1); sl@0: asm("1: "); sl@0: __ASM_CRASH(); sl@0: } sl@0: sl@0: }