X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Farmv7%2Fstart.S;h=1fe0fd866fb3551fd6a1bbcd129e115fb67aca7b;hb=bf18000f310e627bf8611bffd9d4d07df7da57f8;hp=8193b31c2edf6c9382ac3a3e29b72e6d368b5600;hpb=7ba570fe3cc5418f42decf5b72ac2295cce9e60f;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/armv7/start.S b/KernelLand/Kernel/arch/armv7/start.S index 8193b31c..1fe0fd86 100644 --- a/KernelLand/Kernel/arch/armv7/start.S +++ b/KernelLand/Kernel/arch/armv7/start.S @@ -16,8 +16,17 @@ ivt_unused: b . @ 0x14 Not Used ivt_irq: b IRQHandler @ 0x18 IRQ ivt_fiq: b . @ 0x1C FIQ (Fast interrupt) +init_lock: .long 0 + +.extern SHORTLOCK .globl _start _start: + ldr r1, =init_lock + mov r0, #1 + swp r0, r0, [r1] + tst r0,r0 + bne .smp_halt + ldr r2, =UART0_PADDR mov r1, #'A' str r1, [r2] @@ -116,6 +125,8 @@ _start: ldr r0, =kmain mov pc, r0 1: b 1b @ Infinite loop +.smp_halt: +1: b 1b .comm irqstack, 0x1000 @ ; 4KiB Stack .comm abortstack, 0x1000 @ ; 4KiB Stack