John Baldwin wrote:
On Monday 28 November 2005 04:51 pm, Scott Long wrote:

John Baldwin wrote:

On Monday 28 November 2005 04:06 pm, Scott Long wrote:

John Baldwin wrote:

On Monday 21 November 2005 01:39 pm, John Baldwin wrote:

jhb         2005-11-21 18:39:17 UTC

FreeBSD src repository

Modified files:
 sys/amd64/amd64      machdep.c
Log:
Expand the hack to mask the atpics if 'device atpic' is not in the
kernel during boot up.  Now we do a full reset of the 8259As and setup
a simple interrupt handler (we actually borrow the apic one that just
does an immediate iret) to handle any spurious interrupts triggered by
either chip. This should fix some folks that were getting a Trap 30
during bootup of certain SMP AMD systems.  This might get pushed into
the 6.0 branch as an errata.  For now a suitable workaround is to add
'device atpic' to your kernel config.

Tested by:      scottl
Helpful info from:      dillon
MFC after:      1 week

Hmm, we probably still need to reprogram the ATPIC on resume as well.
I'm not sure it's actually worth not just compiling the atpic code in on
amd64.

Problems aside, what are the benefits to not having the atpic
unconditionally included on amd64?

Purely space savings.  It's whatever the size of atpic.o, elcr.o, and the
bits of atpic_vector.S that make it into exception.o are.

Ok, so it doesn't cut down on runtime overhead?  The file sizes look to
be:

atpic.o     15k
elcr.o      2.5k
exception.o 200byte delta


No, there isn't any effect on runtime.


If, down the road, a motherboard shows up without an atpic or one that
is horribly broken, would we be worse off for having the atpic code in
there?


Well, both i386 and amd64 assume an atpic is there. Even if you don't include 'device atpic' on amd64, we do the manual bit banging to the I/O ports that assume it is there in the code I just changed.


So yeah, might as well just make it conditional then.

Scott
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to