From owner-freebsd-current Tue May 23 19:34:22 2000 Delivered-To: freebsd-current@freebsd.org Received: from midten.fast.no (midten.fast.no [213.188.8.11]) by hub.freebsd.org (Postfix) with ESMTP id 8418037B6AD for ; Tue, 23 May 2000 19:34:18 -0700 (PDT) (envelope-from tegge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [213.188.8.11]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id EAA39129; Wed, 24 May 2000 04:33:41 +0200 (CEST) Message-Id: <200005240233.EAA39129@midten.fast.no> To: mantar@pacbell.net Cc: current@FreeBSD.ORG Subject: mpboot.s patch From: Tor.Egge@fast.no In-Reply-To: Your message of "Tue, 23 May 2000 12:30:55 -0700" References: <4.3.2.6.2.20000523121617.00b14c90@pozo.com> X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_May_24_04:31:33_2000)--" Content-Transfer-Encoding: 7bit Date: Wed, 24 May 2000 04:33:41 +0200 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG ----Next_Part(Wed_May_24_04:31:33_2000)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > >> 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 = 00000001; cpuid = 0; lapic.id = 00000000 > >> 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 ----Next_Part(Wed_May_24_04:31:33_2000)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Description: "mpboot.s patch" 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 - lgdt MP_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) ----Next_Part(Wed_May_24_04:31:33_2000)---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message