Return to BSD News archive
Path: sserve!manuel!munnari.oz.au!mips!mips!swrinde!news.dell.com!raid.dell.com!james
From: james@raid.dell.com (James Van Artsdalen)
Newsgroups: comp.unix.bsd
Subject: 386BSD 0.1 bug: npx.c
Message-ID: <1992Jul27.042209.19609@raid.dell.com>
Date: 27 Jul 92 04:22:09 GMT
Sender: james@raid.dell.com (James Van Artsdalen)
Reply-To: james@raid.dell.com (James Van Artsdalen)
Organization: Dell Computer Co
Lines: 51
npx.c has a bug that causes it to write to I/O port 0xB1 instead of
0xF1. Depending on the chipset, this could be bad: some chipsets
don't fully decode the I/O space, and a write to port 0xB1 could wind
up going to the mask register for PIC1, ie, the routine could wind up
masking IRQ 8 through IRQ 15.
It should be noted that a lot of 386 designs ignore port 0xF1.
I would guess that all 486s ignore it.
The second chunk fixes an incorrect comment.
*** npx.c.~1~ Mon Jul 13 04:24:27 1992
--- npx.c Sun Jul 26 22:14:02 1992
***************
*** 130,136 ****
curpcb->pcb_flags |= FP_NEEDSRESTORE;
}
load_cr0(rcr0() | CR0_EM); /* start emulating */
! outb(0xb1,0); /* reset processor */
}
/*
--- 130,136 ----
curpcb->pcb_flags |= FP_NEEDSRESTORE;
}
load_cr0(rcr0() | CR0_EM); /* start emulating */
! outb(0xf1,0); /* reset coprocessor */
}
/*
***************
*** 161,167 ****
int code;
static status;
! outb(0xf0,0); /* reset processor */
/*pg("npxintr");*/
asm (" fnstsw %0 " : "=m" (status) : "m" (status) );
--- 161,167 ----
int code;
static status;
! outb(0xf0,0); /* clear BUSY# latch */
/*pg("npxintr");*/
asm (" fnstsw %0 " : "=m" (status) : "m" (status) );
--
--
James R. Van Artsdalen james@bigtex.cactus.org "Live Free or Die"
Dell Computer Co 9505 Arboretum Blvd Austin TX 78759 512-338-8789