Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Nov 2000 20:14:38 +0800 (CST)
From:      Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw>
To:        <freebsd-stable@FreeBSD.org>
Cc:        <sos@freebsd.dk>
Subject:   4.2-RELEASE ata0-master probe failed(solved)
Message-ID:  <Pine.BSF.4.30.0011262012080.58870-100000@www.mmlab.cse.yzu.edu.tw>

next in thread | raw e-mail | index | archive | help
Hi,

	According to my injected debugging message, the first time
"inb(scp->altioaddr)" was executed in ata_intr(), it returns 0xd0(busy):

    /* if drive is busy it didn't interrupt */
    if (inb(scp->altioaddr) & ATA_S_BUSY)
        return;

	The booting message then said: "ata0-master: ata_comand: timeout
waiting for intr," and stopped to interact with my hard disk attached on
ata0-master anymore. However, if I forced an interrupt clear before busy
return, the timeout condition can be resolved & all further disk I/O
operations went normally:

    /* if drive is busy it didn't interrupt */
    if (inb(scp->altioaddr) & ATA_S_BUSY)
    {
	/* clear interrupt */
	inb(scp->ioaddr + ATA_STATUS);
	return;
    }

	Include the above hacks, there are two other temporary "fixes"
against ata-all.c, 1.50.2.14. All of them work in my 4.2-R box. The first
is to replace the status checking routine in ata_intr() with the old one
(in 1.50.2.7):

--- /sys/dev/ata/ata-all.c.old	Fri Nov 24 11:19:59 2000
+++ /sys/dev/ata/ata-all.c	Sat Nov 25 00:20:25 2000
@@ -1120,12 +1120,18 @@
     }
     DELAY(1);

+#if	0
     /* if drive is busy it didn't interrupt */
     if (inb(scp->altioaddr) & ATA_S_BUSY)
 	return;

     /* clear interrupt and get status */
     scp->status = inb(scp->ioaddr + ATA_STATUS);
+#else
+    /* get status, if drive is busy it didn't interrupt so return */
+    if ((scp->status = inb(scp->ioaddr + ATA_STATUS)) & ATA_S_BUSY)
+	return;
+#endif

     if (scp->status & ATA_S_ERROR)
 	scp->error = inb(scp->ioaddr + ATA_ERROR);
@@ -1264,37 +1270,37 @@
     /* wait for BUSY to go inactive */
     for (timeout = 0; timeout < 310000; timeout++) {
 	if (status0 & ATA_S_BUSY) {
-            outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
-            DELAY(10);
-            status0 = inb(scp->ioaddr + ATA_STATUS);
-            if (!(status0 & ATA_S_BUSY)) {
-                /* check for ATAPI signature while its still there */
+	    outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
+	    DELAY(10);
+	    status0 = inb(scp->ioaddr + ATA_STATUS);
+	    if (!(status0 & ATA_S_BUSY)) {
+		/* check for ATAPI signature while its still there */
 		a = inb(scp->ioaddr + ATA_CYL_LSB);
 		b = inb(scp->ioaddr + ATA_CYL_MSB);
 		if (bootverbose)
 		    ata_printf(scp, ATA_MASTER,
 			       "ATAPI probe a=%02x b=%02x\n", a, b);
 		if (a == ATAPI_MAGIC_LSB && b == ATAPI_MAGIC_MSB)
-                    scp->devices |= ATA_ATAPI_MASTER;
-            }
-        }
-        if (status1 & ATA_S_BUSY) {
-            outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
-            DELAY(10);
-            status1 = inb(scp->ioaddr + ATA_STATUS);
-            if (!(status1 & ATA_S_BUSY)) {
-                /* check for ATAPI signature while its still there */
+		    scp->devices |= ATA_ATAPI_MASTER;
+	    }
+	}
+	if (status1 & ATA_S_BUSY) {
+	    outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
+	    DELAY(10);
+	    status1 = inb(scp->ioaddr + ATA_STATUS);
+	    if (!(status1 & ATA_S_BUSY)) {
+		/* check for ATAPI signature while its still there */
 		a = inb(scp->ioaddr + ATA_CYL_LSB);
 		b = inb(scp->ioaddr + ATA_CYL_MSB);
 		if (bootverbose)
 		    ata_printf(scp, ATA_SLAVE,
 			       "ATAPI probe a=%02x b=%02x\n", a, b);
 		if (a == ATAPI_MAGIC_LSB && b == ATAPI_MAGIC_MSB)
-                    scp->devices |= ATA_ATAPI_SLAVE;
-            }
-        }
+		    scp->devices |= ATA_ATAPI_SLAVE;
+	    }
+	}
 	if (*mask == 0x01)      /* wait for master only */
-	    if (!(status0 & ATA_S_BUSY))
+	    if (!(status0 & ATA_S_BUSY))
 		break;
 	if (*mask == 0x02)      /* wait for slave only */
 	    if (!(status1 & ATA_S_BUSY))
@@ -1319,27 +1325,27 @@

     if (*mask & 0x01 && ostat0 != 0x00 && !(scp->devices & ATA_ATAPI_MASTER)) {
         outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
-        DELAY(10);
+	DELAY(10);
 	outb(scp->ioaddr + ATA_ERROR, 0x58);
 	outb(scp->ioaddr + ATA_CYL_LSB, 0xa5);
 	a = inb(scp->ioaddr + ATA_ERROR);
 	b = inb(scp->ioaddr + ATA_CYL_LSB);
 	if (bootverbose)
 	    ata_printf(scp, ATA_MASTER, "ATA probe a=%02x b=%02x\n", a, b);
-        if (a != 0x58 && b == 0xa5)
-            scp->devices |= ATA_ATA_MASTER;
+	if (a != 0x58 && b == 0xa5)
+	    scp->devices |= ATA_ATA_MASTER;
     }
     if (*mask & 0x02 && ostat1 != 0x00 && !(scp->devices & ATA_ATAPI_SLAVE)) {
         outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
-        DELAY(10);
+	DELAY(10);
 	outb(scp->ioaddr + ATA_ERROR, 0x58);
 	outb(scp->ioaddr + ATA_CYL_LSB, 0xa5);
 	a = inb(scp->ioaddr + ATA_ERROR);
 	b = inb(scp->ioaddr + ATA_CYL_LSB);
 	if (bootverbose)
 	    ata_printf(scp, ATA_SLAVE, "ATA probe a=%02x b=%02x\n", a, b);
-        if (a != 0x58 && b == 0xa5)
-            scp->devices |= ATA_ATA_SLAVE;
+	if (a != 0x58 && b == 0xa5)
+	    scp->devices |= ATA_ATA_SLAVE;
     }
     if (bootverbose)
 	ata_printf(scp, -1, "devices=%02x\n", scp->devices);

	The second is to swap the busy detecting & interrupt clear routines
in ata_intr():

--- /sys/dev/ata/ata-all.c.old	Sun Nov 26 10:59:11 2000
+++ /sys/dev/ata/ata-all.c	Sun Nov 26 10:59:37 2000
@@ -1120,13 +1120,13 @@
     }
     DELAY(1);

+    /* clear interrupt and get status */
+    scp->status = inb(scp->ioaddr + ATA_STATUS);
+
     /* if drive is busy it didn't interrupt */
     if (inb(scp->altioaddr) & ATA_S_BUSY)
 	return;

-    /* clear interrupt and get status */
-    scp->status = inb(scp->ioaddr + ATA_STATUS);
-
     if (scp->status & ATA_S_ERROR)
 	scp->error = inb(scp->ioaddr + ATA_ERROR);

@@ -1264,37 +1264,37 @@
     /* wait for BUSY to go inactive */
     for (timeout = 0; timeout < 310000; timeout++) {
 	if (status0 & ATA_S_BUSY) {
-            outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
-            DELAY(10);
-            status0 = inb(scp->ioaddr + ATA_STATUS);
-            if (!(status0 & ATA_S_BUSY)) {
-                /* check for ATAPI signature while its still there */
+	    outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
+	    DELAY(10);
+	    status0 = inb(scp->ioaddr + ATA_STATUS);
+	    if (!(status0 & ATA_S_BUSY)) {
+		/* check for ATAPI signature while its still there */
 		a = inb(scp->ioaddr + ATA_CYL_LSB);
 		b = inb(scp->ioaddr + ATA_CYL_MSB);
 		if (bootverbose)
 		    ata_printf(scp, ATA_MASTER,
 			       "ATAPI probe a=%02x b=%02x\n", a, b);
 		if (a == ATAPI_MAGIC_LSB && b == ATAPI_MAGIC_MSB)
-                    scp->devices |= ATA_ATAPI_MASTER;
-            }
-        }
-        if (status1 & ATA_S_BUSY) {
-            outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
-            DELAY(10);
-            status1 = inb(scp->ioaddr + ATA_STATUS);
-            if (!(status1 & ATA_S_BUSY)) {
-                /* check for ATAPI signature while its still there */
+		    scp->devices |= ATA_ATAPI_MASTER;
+	    }
+	}
+	if (status1 & ATA_S_BUSY) {
+	    outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
+	    DELAY(10);
+	    status1 = inb(scp->ioaddr + ATA_STATUS);
+	    if (!(status1 & ATA_S_BUSY)) {
+		/* check for ATAPI signature while its still there */
 		a = inb(scp->ioaddr + ATA_CYL_LSB);
 		b = inb(scp->ioaddr + ATA_CYL_MSB);
 		if (bootverbose)
 		    ata_printf(scp, ATA_SLAVE,
 			       "ATAPI probe a=%02x b=%02x\n", a, b);
 		if (a == ATAPI_MAGIC_LSB && b == ATAPI_MAGIC_MSB)
-                    scp->devices |= ATA_ATAPI_SLAVE;
-            }
-        }
+		    scp->devices |= ATA_ATAPI_SLAVE;
+	    }
+	}
 	if (*mask == 0x01)      /* wait for master only */
-	    if (!(status0 & ATA_S_BUSY))
+	    if (!(status0 & ATA_S_BUSY))
 		break;
 	if (*mask == 0x02)      /* wait for slave only */
 	    if (!(status1 & ATA_S_BUSY))
@@ -1319,27 +1319,27 @@

     if (*mask & 0x01 && ostat0 != 0x00 && !(scp->devices & ATA_ATAPI_MASTER)) {
         outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
-        DELAY(10);
+	DELAY(10);
 	outb(scp->ioaddr + ATA_ERROR, 0x58);
 	outb(scp->ioaddr + ATA_CYL_LSB, 0xa5);
 	a = inb(scp->ioaddr + ATA_ERROR);
 	b = inb(scp->ioaddr + ATA_CYL_LSB);
 	if (bootverbose)
 	    ata_printf(scp, ATA_MASTER, "ATA probe a=%02x b=%02x\n", a, b);
-        if (a != 0x58 && b == 0xa5)
-            scp->devices |= ATA_ATA_MASTER;
+	if (a != 0x58 && b == 0xa5)
+	    scp->devices |= ATA_ATA_MASTER;
     }
     if (*mask & 0x02 && ostat1 != 0x00 && !(scp->devices & ATA_ATAPI_SLAVE)) {
         outb(scp->ioaddr + ATA_DRIVE, ATA_D_IBM | ATA_SLAVE);
-        DELAY(10);
+	DELAY(10);
 	outb(scp->ioaddr + ATA_ERROR, 0x58);
 	outb(scp->ioaddr + ATA_CYL_LSB, 0xa5);
 	a = inb(scp->ioaddr + ATA_ERROR);
 	b = inb(scp->ioaddr + ATA_CYL_LSB);
 	if (bootverbose)
 	    ata_printf(scp, ATA_SLAVE, "ATA probe a=%02x b=%02x\n", a, b);
-        if (a != 0x58 && b == 0xa5)
-            scp->devices |= ATA_ATA_SLAVE;
+	if (a != 0x58 && b == 0xa5)
+	    scp->devices |= ATA_ATA_SLAVE;
     }
     if (bootverbose)
 	ata_printf(scp, -1, "devices=%02x\n", scp->devices);

	I'm not sure whether any of the above hacks breaks anything or
just doesn't make sense(just for my kludge laptop?); therefore, would
someone please test/review the above patches for me?

4.2-RELEASE verbose booting message after patch applied:

Copyright (c) 1992-2000 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 4.2-RELEASE #0
Calibrating clock(s) ... TSC clock: 265246309 Hz, i8254 clock: 1193105 Hz
Timecounter "i8254"  frequency 1193105 Hz
CPU: Pentium II/Pentium II Xeon/Celeron (265.25-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x652  Stepping = 2
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 67108864 (65536K bytes)
Physical memory chunk(s):
0x00001000 - 0x0009efff, 647168 bytes (158 pages)
0x002f9000 - 0x03ff5fff, 63950848 bytes (15613 pages)
avail memory = 62205952 (60748K bytes)
bios32: Found BIOS32 Service Directory header at 0xc00f6460
bios32: Entry = 0xfd7e0 (c00fd7e0)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0x203
pnpbios: Found PnP BIOS data at 0xc00f6490
pnpbios: Entry = f0000:ac98  Rev = 1.0
Other BIOS signatures found:
ACPI: 000f6440
VESA: information block
56 45 53 41 00 02 6b 00 00 c0 00 00 00 00 42 87
00 c0 20 00 00 00 12 29 00 c0 13 29 00 c0 14 29
00 c0 15 29 00 c0 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
VESA: 15 mode(s) found
VESA: v2.0, 2048k memory, flags:0x0, mode table:0xc00c8742 (c0008742)
VESA: Copyright 1994 TRIDENT MICROSYSTEMS INC.

VESA:
Pentium Pro MTRR support enabled
pci_open(1):	mode 1 addr port (0x0cf8) is 0x80001010
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=71928086)
apm0: <APM BIOS> on motherboard
apm: found APM BIOS v1.2, connected at v1.2
npx0: <math processor> on motherboard
npx0: INT 16 interface
pci_open(1):	mode 1 addr port (0x0cf8) is 0x00000000
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=71928086)
pcib0: <Intel 82443BX host to PCI bridge (AGP disabled)> on motherboard
found->	vendor=0x8086, dev=0x7192, revid=0x02
	class=06-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	map[10]: type 1, range 32, base 00000000, size 26
found->	vendor=0x1023, dev=0x9388, revid=0xd3
	class=03-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=9
	map[10]: type 1, range 32, base fe400000, size 22
	map[14]: type 1, range 32, base fede0000, size 17
	map[18]: type 1, range 32, base fe800000, size 22
found->	vendor=0x8086, dev=0x7110, revid=0x02
	class=06-01-00, hdrtype=0x00, mfdev=1
	subordinatebus=0 	secondarybus=0
found->	vendor=0x8086, dev=0x7111, revid=0x01
	class=01-01-80, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	map[20]: type 1, range 32, base 0000fcd0, size  4
found->	vendor=0x8086, dev=0x7112, revid=0x01
	class=0c-03-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=d, irq=9
	map[20]: type 1, range 32, base 0000fce0, size  5
found->	vendor=0x8086, dev=0x7113, revid=0x02
	class=06-80-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	map[90]: type 1, range 32, base 0000ff80, size  4
found->	vendor=0x104c, dev=0xac19, revid=0x00
	class=06-07-00, hdrtype=0x02, mfdev=1
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=255
found->	vendor=0x104c, dev=0xac19, revid=0x00
	class=06-07-00, hdrtype=0x02, mfdev=1
	subordinatebus=0 	secondarybus=0
	intpin=b, irq=255
pci0: <PCI bus> on pcib0
pci0: <Trident model 9388 VGA-compatible display device> (vendor=0x1023, dev=0x9388) at 2.0 irq 9
isab0: <Intel 82371AB PCI to ISA bridge> at device 3.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 ATA33 controller> port 0xfcd0-0xfcdf at device 3.1 on pci0
ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xfcd0
ata0: mask=03 status0=50 status1=50
ata0: mask=03 ostat0=50 ostat2=50
ata0-master: ATAPI probe a=00 b=00
ata0-slave: ATAPI probe a=14 b=eb
ata0: mask=03 status0=50 status1=00
ata0-master: ATA probe a=01 b=a5
ata0: devices=09
ata0: at 0x1f0 irq 14 on atapci0
ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xfcd8
ata1: mask=00 status0=ff status1=ff
ata1: probe allocation failed
pci0: <Intel 82371AB/EB (PIIX4) USB controller> (vendor=0x8086, dev=0x7112) at 3.2 irq 9
chip1: <Intel 82371AB Power management controller> port 0xff80-0xff8f at device 3.3 on pci0
pcic-pci0: <TI PCI-1221 PCI-CardBus Bridge> at device 10.0 on pci0
pcic-pci0: TI12XX PCI Config Reg: [speaker enable][FUNC pci int + CSC serial isa irq]
pcic-pci0: Legacy address set to 0x3e0
PCI Config space:
00:  ac19104c 02100007 06070000 00820000
10:  00000000 020000a0 00000000 00000000
20:  00000000 00000000 00000000 00000000
30:  00000000 00000000 00000000 03c001ff
40:  77887878 000003e1 00000000 00000000
50:  00000000 00000000 00000000 00000000
60:  00000000 00000000 00000000 00000000
70:  00000000 00000000 00000000 00000000
80:  00449020 00000000 00000000 010c1000
90:  616602c0 00000000 00000000 00000000
Cardbus Socket registers:
00:  f000ff53: f000ff53: f000e2c3: f000ff53:
10:  f000ff53: f000ff54: f0009c9f: f000ff53:
ExCa registers:
00: eb 88 d5 43 30 d2 66 f7 f3 88 d7 5a 66 3d ff 03
10: 00 00 fb 77 44 86 c4 c0 c8 02 08 e8 40 91 88 fe
20: 28 e0 8a 66 02 38 e0 72 02 88 e0 bf 05 00 c4 5e
30: 04 50 b4 02 cd 13 5b 73 0a 4f 74 1c 30 e4 cd 13
pcic-pci1: <TI PCI-1221 PCI-CardBus Bridge> at device 10.1 on pci0
pcic-pci1: TI12XX PCI Config Reg: [speaker enable][FUNC pci int + CSC serial isa irq]
PCI Config space:
00:  ac19104c 02100007 06070000 00820000
10:  00000000 020000a0 00000000 00000000
20:  00000000 00000000 00000000 00000000
30:  00000000 00000000 00000000 03c002ff
40:  77887878 000003e1 00000000 00000000
50:  00000000 00000000 00000000 00000000
60:  00000000 00000000 00000000 00000000
70:  00000000 00000000 00000000 00000000
80:  00449020 00000000 00000000 010c1000
90:  616602c0 00000000 00000000 00000000
Cardbus Socket registers:
00:  f000ff53: f000ff53: f000e2c3: f000ff53:
10:  f000ff53: f000ff54: f0009c9f: f000ff53:
ExCa registers:
00: eb 88 d5 43 30 d2 66 f7 f3 88 d7 5a 66 3d ff 03
10: 00 00 fb 77 44 86 c4 c0 c8 02 08 e8 40 91 88 fe
20: 28 e0 8a 66 02 38 e0 72 02 88 e0 bf 05 00 c4 5e
30: 04 50 b4 02 cd 13 5b 73 0a 4f 74 1c 30 e4 cd 13
Trying Read_Port at 203
Trying Read_Port at 243
Trying Read_Port at 283
Trying Read_Port at 2c3
Trying Read_Port at 303
Trying Read_Port at 343
Trying Read_Port at 383
Trying Read_Port at 3c3
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x41ab (2)
kbdc: RESET_KBD return code:00fa
kbdc: RESET_KBD status:00aa
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
psm0: current command byte:0047
kbdc: TEST_AUX_PORT status:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
psm: status 00 02 64
psm: status 00 00 64
psm: status 00 03 64
psm: status 00 03 64
psm: data 08 00 00
psm: status 10 00 64
psm: status 00 02 64
psm: data 08 00 00
psm: status 00 02 64
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
psm0: config:00006000, flags:00000000, packet size:3
psm0: syncmask:c0, syncbits:00
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
fb0: vga0, vga, type:VGA (5), flags:0x700ff
fb0: port:0x3c0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000
fb0: init mode:24, bios mode:3, current mode:24
fb0: window:0xc00b8000 size:32k gran:32k, buf:0 size:32k
VGA parameters upon power-up
50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0d 0e 00 00 03 c0 9c 8e 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
VGA parameters in BIOS for mode 24
50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
EGA/VGA parameters to be used for mode 24
50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81
bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sio0: irq maps: 0x41 0x51 0x41 0x41
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1: irq maps: 0x41 0x49 0x41 0x41
sio1 at port 0x2f8-0x2ff irq 3 flags 0x10 on isa0
sio1: type 16550A
sbc0: <ESS 688> at port 0x220-0x22f irq 5 drq 3 flags 0x15 on isa0
pcm0: <ESS 18xx DSP> on sbc0
pcm0: ESS1869 detected, newspeed
pcm: setmap 4000, 1000; 0xc547d000 -> 4000
pcm: setmap 5000, 1000; 0xc547e000 -> 5000
pcic0: <VLSI 82C146> at port 0x3e0-0x3e1 irq 10 on isa0
pcic0: management irq 10
stat is 0
stat is 0
pccard0: <PC Card bus -- kludge version> on pcic0
pccard1: <PC Card bus -- kludge version> on pcic0
ppc0: parallel port found at 0x378
ppc0: using extended I/O port range
PC873xx probe at 0x398 got unknown ID 0xb1
ppc0: SPP
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
plip0: <PLIP network interface> on ppbus0
bpf: lp0 attached
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
isa_probe_children: probing PnP devices
BIOS Geometries:
 0:03127f3f 0..786=787 cylinders, 0..127=128 heads, 1..63=63 sectors
 0 accounted for
Device configuration finished.
bpf: lo0 attached
ata0-master: success setting UDMA2 on PIIX4 chip
Creating DISK ad0
Creating DISK wd0
ad0: <HITACHI_DK237A-32/00U0A0D0> ATA-3 disk at ata0-master
ad0: 3102MB (6354432 sectors), 6304 cyls, 16 heads, 63 S/T, 512 B/S
ad0: 16 secs/int, 1 depth queue, UDMA33
ad0: piomode=4 dmamode=2 udmamode=2 cblid=0
ad0: 3102MB <HITACHI_DK237A-32> [6304/16/63] at ata0-master UDMA33
ata0-slave: piomode=4 dmamode=2 udmamode=-1 dmaflag=1
ata0-slave: success setting PIO4 on generic chip
acd0: <UJDA150/1.50> CDROM drive at ata0 as slave
acd0: read 4134KB/s (4134KB/s), 128KB buffer, PIO4
acd0: Reads: CD-R, CD-RW, CD-DA
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: CD-ROM 120mm photo disc loaded, unlocked
Mounting root from ufs:ad0s2a
ad0s1: type 0x83, start 63, end = 2096639, size 2096577 : OK
ad0s2: type 0xa5, start 2096640, end = 4193279, size 2096640 : OK
ad0s3: type 0x6, start 4193280, end = 6072191, size 1878912 : OK
ad0s4: type 0xa0, start 6072192, end = 6346367, size 274176 : OK
start_init: trying /sbin/init
splash: image decoder found: blank_saver
Linux-ELF exec handler installed


The original 4.2-RELEASE ata-related booting message:

atapci0: <Intel PIIX4 ATA33 controller> port 0xfcd0-0xfcdf at device 3.1 on pci0
ata0: iobase=0x01f0 altiobase=0x03f6 bmaddr=0xfcd0
ata0: mask=03 status0=50 status1=50
ata0: mask=03 ostat0=50 ostat2=50
ata0-master: ATAPI probe a=00 b=00
ata0-slave: ATAPI probe a=14 b=eb
ata0: mask=03 status0=50 status1=00
ata0-master: ATAPI probe a=01 b=a5
ata0: devices=09
ata0: at 0x1f0 irq 14 on atapci0
ata1: iobase=0x0170 altiobase=0x0376 bmaddr=0xfcd8
ata1: mask=00 status0=ff status1=ff
ata1: probe allocation failed
.
.
.
ata0-master: ata_comand: timeout waiting for intr
ata0-master: identify failed
ata0-slave: piomode=4 dmamode=2 udmamode=-1 dmaflag=1
ata0-slave: success setting WDMA2 on PIIX4 chip
acd0: <UJDA150/1.50> CDROM drive at ata0 as slave
acd0: read 4134KB/s (4134KB/s), 128KB buffer, WDMA2
acd0: Reads: CD-R, CD-RW, CD-DA
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: CD-ROM 120mm photo disc loaded, unlocked
no devsw (majdev=30 bootdev=0xa0300001e)
Mount root from ufs:ad0s2a
no such device 'ad'
setrootbyname failed
ffs_mountroot: can't find rootvp
Root mount failed: 6
.
.
.

-- 
Regards,

Tai-hwa Liang <avatar@mmlab.cse.yzu.edu.tw>
Multimedia Laboratory, Dept. of Computer Science & Engineering
Yuan Ze University
Taiwan, Republic of China



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.30.0011262012080.58870-100000>