Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Platform specific fix for ARM MP startup issue



From: Rory Bolt <rory.bolt%gmail.com@localhost>
Subject: Platform specific fix for ARM MP startup issue
Date: Thu, 21 Oct 2021 15:16:49 -0700

> As I noted earlier, I am concerned about putting a platform specific
> fix in the mainline code for this issue. I have tested this ARM
> platform specific alternate solution successfully.

Thanx!boot fine on Apple m1.

patch 
https://github.com/ebijun/NetBSD/blob/master/apple-m1/patches/src_sys_arch_arm_pic_pic.c.diff

and Apple m1 boot dmesg.
https://github.com/ebijun/NetBSD/blob/master/dmesg/aarch64/Apple_Mac_mini_M1_2020

/netbsd I use:
https://cdn.netbsd.org/pub/NetBSD/misc/jun/aarch64/apple-m1/netbsd.9.99.92-2


> This patch eliminates the need to change the location of "cold = 0;"
> in sys/kern/init_main.c, so there is no chance of affecting other
> platforms.
> 
> Please consider adding this to the development branch...
> 
> The only file affected is src/sys/arch/arm/pic/pic.c:
> 
> netbsd$ cvs diff pic.c
> Index: pic.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/arm/pic/pic.c,v
> retrieving revision 1.72
> diff -r1.72 pic.c
> 722a723,725
>>       struct lwp *l = curlwp;
>>       /* During init, we can still be on idle thread AFTER cold set to 0 */
>>       int idle = (l->l_stat == LSIDL);
> 793c796
> <       if (cold || !is->is_mpsafe) {
> ---
>>       if (cold || idle || !is->is_mpsafe) {
> netbsd$
> 
> Enjoy!
> -Rory


Home | Main Index | Thread Index | Old Index