CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2012/06/17 06:34:19

Modified files:
        sys/arch/mips64/mips64: genassym.cf 
        sys/arch/sgi/include: asm.h 
        sys/arch/sgi/sgi: ip30.h ip30_nmi.S locore.S 
        sys/arch/sgi/xbow: xheartreg.h 

Log message:
Using the LLAddr register to store our curcpu() pointer on R10k SMP kernels
was a nice trick, but this register is only 32-bit wide and will be
sign-extended, which requires all cpu_info structs to be allocated within 2GB
physical - something which may not be possible on some configurations.

This diff changes IP30.MP kernels to no longer use LLAddr to store curcpu,
but use unused fields of the MPConf structure in low memory, indexed with the
physical processor id, which can be obtained from the Heart PRID register.

Reply via email to