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>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211221748.gAMHmPD36692>