Re: mpboot.s patch

2000-05-25 Thread John Hay

Well this patch make my dual PII boot again. Any plans to commit it?

John
-- 
John Hay -- [EMAIL PROTECTED]

   With a current kernel I get this when booting:
   
   Programming 24 pins in IOAPIC #0
   AP #1  (PHY# 12) failed!
   panic y/n [y] panic: bye-bye
   mp_lock = 0001; cpuid = 0; lapic.id = 
   Uptime: 0s
 
[...]
 
 Try the enclosed patch.
 
 - Tor Egge
 
 Index: sys/i386/i386/mpboot.s
 ===
 RCS file: /home/ncvs/src/sys/i386/i386/mpboot.s,v
 retrieving revision 1.13
 diff -u -r1.13 mpboot.s
 --- sys/i386/i386/mpboot.s2000/01/29 13:51:17 1.13
 +++ sys/i386/i386/mpboot.s2000/05/24 01:28:53
 @@ -165,20 +165,15 @@


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: mpboot.s patch

2000-05-24 Thread Vallo Kallaste

On Wed, May 24, 2000 at 04:33:41AM +0200, [EMAIL PROTECTED] wrote:

 Try the enclosed patch.

Thank you Tor! Your patch fixed the silent reboot problem I had after
new binutils import.
-- 

Vallo Kallaste
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: mpboot.s patch

2000-05-24 Thread Peter Wemm

Manfred Antar wrote:
 At 04:33 AM 5/24/2000 +0200, [EMAIL PROTECTED] wrote:
   With a current kernel I get this when booting:
   
   Programming 24 pins in IOAPIC #0
   AP #1  (PHY# 12) failed!
   panic y/n [y] panic: bye-bye
   mp_lock = 0001; cpuid = 0; lapic.id = 
   Uptime: 0s
 
 [...]
 
  I think this has something to do 
  with the new binutils as a kernel built on the 14th and restored via tape 
works fine but if i
  check out the sys tree from the 14th and build a kernel it panics at the A
PIC probe.
 
 Try the enclosed patch.
 
 - Tor Egge
 Tor 
 Works great 
 The patch didn't apply I think there is a "data32"
 in the patch that isn't in the mpboot.s file
 but when I applied the patch manually an added the data32
 the kernel built fine and boots both cpu's without a problem.
 
 although mptable still causes a panic :
 
 panic: pmap_enter: attempted pmap_enter on 4MB page
 mp_lock = 0002; cpuid = 0; lapic.id = 
 boot() called on cpu#0
 Thanks
 Manfred

I believe I have fixed the 4MB pmap_enter related bugs.  Please re-cvsup
and try again.  You are looking for  i386/i386/mem.c:
 revision 1.84
 date: 2000/05/24 14:22:22;  author: peter;  state: Exp;  lines: +2 -1
 pmap_enter() masked off the page offset bits, pmap_kenter() did not.
 This (I believe) is the cause of the XFree86 startup and mptable(8)
 panics when programs were reading from /dev/mem at non-page-aligned
 offsets.  The offsets were being converted into random page flags in the
 page tables. :-(   (including PG_PS = 4MB page size)

Cheers,
-Peter




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



mpboot.s patch

2000-05-23 Thread Tor . Egge

  With a current kernel I get this when booting:
  
  Programming 24 pins in IOAPIC #0
  AP #1  (PHY# 12) failed!
  panic y/n [y] panic: bye-bye
  mp_lock = 0001; cpuid = 0; lapic.id = 
  Uptime: 0s

[...]

 I think this has something to do 
 with the new binutils as a kernel built on the 14th and restored via tape works fine 
but if i
 check out the sys tree from the 14th and build a kernel it panics at the APIC probe.

Try the enclosed patch.

- Tor Egge




Index: sys/i386/i386/mpboot.s
===
RCS file: /home/ncvs/src/sys/i386/i386/mpboot.s,v
retrieving revision 1.13
diff -u -r1.13 mpboot.s
--- sys/i386/i386/mpboot.s  2000/01/29 13:51:17 1.13
+++ sys/i386/i386/mpboot.s  2000/05/24 01:28:53
@@ -165,20 +165,15 @@
 BOOTMP1:
 
 NON_GPROF_ENTRY(bootMP)
+   .code16 
cli
CHECKPOINT(0x34, 1)
/* First guarantee a 'clean slate' */
-   data32
xorl%eax, %eax
-   data32
movl%eax, %ebx
-   data32
movl%eax, %ecx
-   data32
movl%eax, %edx
-   data32
movl%eax, %esi
-   data32
movl%eax, %edi
 
/* set up data segments */
@@ -188,17 +183,18 @@
mov %ax, %fs
mov %ax, %gs
mov %ax, %ss
-   mov $(boot_stk-_bootMP), %sp
+   mov $(boot_stk-_bootMP), %esp
 
/* Now load the global descriptor table */
addr32
data32
-   lgdtMP_GDTptr-_bootMP
+   /* XXX: sigh: lgdt  MP_GDTptr-_bootMP GAS BUG! */
+   .byte   0x0f, 0x01, 0x15/* XXX hand assemble! */
+   .long   MP_GDTptr-_bootMP   /* XXX hand assemble! */
 
/* Enable protected mode */
data32
movl%cr0, %eax
-   data32
orl $CR0_PE, %eax
data32
movl%eax, %cr0 
@@ -207,13 +203,11 @@
 * make intrasegment jump to flush the processor pipeline and
 * reload CS register
 */
-   data32
pushl   $0x18
-   data32
pushl   $(protmode-_bootMP)
-   data32
-   lret
+   lretl
 
+   .code32 
 protmode:
CHECKPOINT(0x35, 2)