Date: Fri, 22 Nov 2002 18:48:25 +0100 (CET) From: "Julian Stacey" <jhs@berklix.com> To: freebsd-current@freebsd.org Cc: "Gary Jennejohn" <gj@freebsd.org> Subject: 5.0-DP2: SMP+ATA OK. But 4.7 & stable boot panic with ASUS P2L97-DS Message-ID: <200211221748.gAMHmPD36692@flip.jhs.private>
index | next in thread | raw e-mail
current@ people,
5.0-DP2-disc1.iso with my ASUS P2L97-DS ACPI BIOS Revision 1008 Dual cpu box
boots OK :-) But 4.7-RELEASE & stable produce a boot panic with a kernel
where ATA + dual processor are both enabled.
Does that mean there is code in 5.0 that could be
retro-fitted to Stable, to help others with SMP + ATA ?
(I'm not asking for myself, I'll stay with current now installed :-)
Further notes for anyone interested:
4.7-RELEASE GENERIC boots OK in single cpu mode.
Stable boots in dual cpu mode with this patched out:
#device ata0 at isa? port IO_WD1 irq 14
#device ata1 at isa? port IO_WD2 irq 15
#device ata
#device atadisk # ATA disk drives
#device atapicd # ATAPI CDROM drives
#device atapifd # ATAPI floppy drives
#device atapist # ATAPI tape drives
#options ATA_STATIC_ID #Static device numbering
& this added:
options DDB
options INCLUDE_CONFIG_FILE
options SMP # Symmetric MultiProcessor Kernel
options APIC_IO # Symmetric (APIC) I/O
makeoptions DEBUG=-g
Neither stable nor 4.7-RELEASE will support both ATA + SMP.
I added the patch below to my stable, which moved the boot panic
to occur a little later. It shows the code in stable is broken,
as I see the "ata_pmode called with no pointer"
*** src/sys/dev/ata/ata-all.c.orig Sat Nov 2 10:58:31 2002
--- src/sys/dev/ata/ata-all.c Mon Nov 18 19:36:37 2002
***************
*** 1393,1398 ****
--- 1393,1417 ----
int
ata_pmode(struct ata_params *ap)
{
+ if (ap == (struct ata_params *)0)
+ { /* jhs@'s dual cpu with DVD on IDE bus panics on boot,
+ like this:
+ Stopped at ata_pmode+0x6: testb $0x2,0x6a(%eax)
+ db> trace
+ ata_pmode(0) at ata_pmode+0x6
+ atapi_attach
+ ata_boot_attach
+ run_interrupt_driven_config_hooks
+ mi_startup
+ begin
+ */
+ printf("ata: (jhs@) ata_pmode called with no pointer\n");
+ return -1; /* no idea if -1 is correct - no man ata_pmode */
+ /* it now panics like this
+ ata1-slave: timeout waiting for cmd=ef s=01 e=04
+ fatal trap 12: page fault while in kernel mode
+ */
+ }
if (ap->atavalid & ATA_FLAG_64_70) {
if (ap->apiomodes & 2)
return 4;
PS I bought this machine at auction recently, I've reset the BIOS
to setup defaults, but not done a BIOS upgrade, got a bit bogged
down in Asus new site, suspect I might have to register myself there.
Julian Stacey
jhs @ berklix.com Computer Systems Engineer & Unix Consultant, Munich.
Ihr Rauchen = mein allergischer Kopfschmerz ! Schnupftabak probieren.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211221748.gAMHmPD36692>
