From: John Jacques <john.jacq...@lsi.com>

Signed-off-by: John Jacques <john.jacq...@lsi.com>
---
 arch/arm/mach-axxia/headsmp.S | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-axxia/headsmp.S b/arch/arm/mach-axxia/headsmp.S
index 6a36f38..f467cc5 100644
--- a/arch/arm/mach-axxia/headsmp.S
+++ b/arch/arm/mach-axxia/headsmp.S
@@ -28,7 +28,35 @@ ENTRY(axxia_secondary_startup)
        sub     r4, r4, r5
        add     r6, r6, r4
 pen:   ldr     r7, [r6]
-       cmp     r7, r0
+       /*
+        * It seems that just looping over read/compare kills starves
+        * ethernet, this will happen if we start the kernel with
+        * maxcpus=X where X < 16. Which we really want in order to
+        * isolate cores.
+        *
+        * FIXME: We should really use wfi or wfe here
+        */
+       mov     r4, #0x7000
+__delay:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       subs    r4,r4,#1
+       bne     __delay
+       cmp     r7, r0
        bne     pen
 
        /*
-- 
1.8.3.4

_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to