Date: Fri, 29 Nov 1996 16:48:13 -0700 From: Steve Passe <smp@csn.net> To: freebsd-smp@freebsd.org Subject: Re: SMP-current hang problems. Message-ID: <199611292348.QAA00819@clem.systemsix.com>
next in thread | raw e-mail | index | archive | help
Hi, here's the patch I promised for i386/i386/mpboot.s. It doesn't break anything on my system, but since mine works already I can't promise it will help anything either. let me know what it does... -------------------------------------- cut ------------------------------------ *** mpboot.s~ Fri Nov 29 15:52:31 1996 --- mpboot.s Fri Nov 29 16:19:37 1996 *************** *** 63,68 **** --- 63,78 ---- * Wait for the booting CPU to signal startup */ mp_begin: /* now running relocated at KERNBASE */ + movl _apic_base, %esi + + movl APIC_SVR(%esi), %eax /* get spurious vector reg. */ + andl $~0x00000100, %eax /* disable the APIC */ + movl %eax, APIC_SVR(%esi) + + movl APIC_VER(%esi), %eax + movl %eax, _cpuApicVersions + incl _mp_ncpus + /* One at a time, we are running on the shared mp_stk */ /* This is the Intel reccomended semaphore method */ movb $0xff, %al *************** *** 82,93 **** movl APIC_TPR(%esi), %eax /* get current TPR */ orl $0x000000ff, %eax /* block all INTs */ movl %eax, APIC_TPR(%esi) /* put new TPR */ - /* :EMXIF **/ - movl _apic_base, %esi - movl APIC_SVR(%esi), %eax /* get spurious vector reg. */ - orl $0x00000100, %eax /* This bit enables the APIC */ - movl %eax, APIC_SVR(%esi) #if 0 /* the alternate CPU is not ready to receive interrupts yet */ movl APIC_LVT1(%esi), %eax /* Setup LVT1 as ExtINT */ andl $0xfffe58ff, %eax --- 92,98 ---- *************** *** 99,107 **** orl $0xffff0400, %eax movl %eax, APIC_LVT2(%esi) ! movl APIC_VER(%esi), %eax ! movl %eax, _cpuApicVersions ! incl _mp_ncpus #if 0 1: movl _smp_active, %eax --- 104,113 ---- orl $0xffff0400, %eax movl %eax, APIC_LVT2(%esi) ! movl APIC_SVR(%esi), %eax /* get spurious vector reg. */ ! orl $0x00000100, %eax /* This bit enables the APIC */ ! movl %eax, APIC_SVR(%esi) ! /* :EMXIF **/ #if 0 1: movl _smp_active, %eax -------------------------------------- cut ------------------------------------ -- Steve Passe | powered by smp@csn.net | FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611292348.QAA00819>