<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
I just tried booting an OpenSUSE 11.2 DVD on an i945/ICH7 based system
with SeaBIOS. This is a work in progress report.<br>
<br>
The system hangs with the following message:<br>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Probing EDD (edd=off to disable)...<br>
<br>
after a while it prints "IDE DMA timeout"<br>
<br>
This message goes away if I enable CONFIG_ATA_DMA but the sysem still
hangs.<br>
<br>
Booting with edd=off gets the system further. It boots up with the
following messages:<br>
<br>
...<br>
[    1.520940] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level,
low) -> IRQ 19<br>
[    1.528098] ata_piix 0000:00:1f.2: MAP [ P0 P2 IDE IDE ]<br>
[    1.533643] scsi0 : ata_piix<br>
[    1.536668] scsi1 : ata_piix<br>
[    1.539793] ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x40a0
irq 14<br>
[    1.546764] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x40a8
irq 15<br>
...<br>
[    1.824076] ata2: clearing spurious IRQ<br>
[    1.827935] ata2: clearing spurious IRQ<br>
[    1.831818] ata2: clearing spurious IRQ<br>
[    1.835795] ata2: clearing spurious IRQ<br>
[    1.840177] ata2: clearing spurious IRQ<br>
[    1.844401] ata2.00: CFA: SanDisk SDCFX3-16384, HDX 4.08, max MWDMA2<br>
[    1.850762] ata2.00: 32014080 sectors, multi 0: LBA <br>
[    1.855760] ata2.01: ATAPI: PIONEER DVD-RW  DVR-111D, 1.02, max
UDMA/66<br>
[    1.862390] ata2.01: limited to UDMA/33 due to 40-wire cable<br>
[    1.868162] ata2: clearing spurious IRQ<br>
[    1.872147] ata2: clearing spurious IRQ<br>
[    1.876267] ata2.00: configured for MWDMA2<br>
[    1.880442] ata2: clearing spurious IRQ<br>
[    1.884414] ata2: clearing spurious IRQ<br>
[    1.888638] ata2.01: configured for UDMA/33<br>
...<br>
[    2.354575] sd 1:0:0:0: [sda] 32014080 512-byte logical blocks:
(16.3 GB/15.2 GiB)<br>
[    2.362191] scsi scan: 96 byte inquiry failed.  Consider
BLIST_INQUIRY_36 for this device<br>
[    2.371163] sd 1:0:0:0: [sda] Write Protect is off<br>
[    2.375990] sd 1:0:0:0: [sda] Write cache: disabled, read cache:
enabled, doesn't support DPO or FUA<br>
[    2.385244] scsi 1:0:1:0: CD-ROM            PIONEER  DVD-RW 
DVR-111D 1.02 PQ: 0 ANSI: 5<br>
[    2.393594]  sda: sda1<br>
[    2.396949] sd 1:0:0:0: [sda] Attached SCSI removable disk<br>
...<br>
[    3.385035] sd 1:0:0:0: Attached scsi generic sg0 type 0<br>
[    3.390644] scsi 1:0:1:0: Attached scsi generic sg1 type 5<br>
...<br>
[    3.530699] sr0: scsi-1 drive<br>
[    3.533857] Uniform CD-ROM driver Revision: 3.20<br>
...<br>
[    3.725451] sr0: CDROM (ioctl) error, command: Get configuration 46
00 00 00 00 00 00 00 20 00<br>
[    3.734859] sr: Sense Key : Hardware Error [current] <br>
[    3.740183] sr: Add. Sense: Logical unit communication CRC error
(Ultra-DMA/32)<br>
[    3.823397] sr 1:0:1:0: [sr0] Unhandled sense code<br>
[    3.828443] sr 1:0:1:0: [sr0] Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE<br>
[    3.835933] sr 1:0:1:0: [sr0] Sense Key : Hardware Error [current] <br>
[    3.842565] sr 1:0:1:0: [sr0] Add. Sense: Logical unit communication
CRC error (Ultra-DMA/32)<br>
[    3.851518] end_request: I/O error, dev sr0, sector 0<br>
[    3.908964] sr 1:0:1:0: [sr0] Unhandled sense code<br>
[    3.913951] sr 1:0:1:0: [sr0] Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE<br>
[    3.921381] sr 1:0:1:0: [sr0] Sense Key : Hardware Error [current] <br>
[    3.928030] sr 1:0:1:0: [sr0] Add. Sense: Logical unit communication
CRC error (Ultra-DMA/32)<br>
[    3.936947] end_request: I/O error, dev sr0, sector 0<br>
<br>
The last hunk starting from 3.725451 then repeats several times, and
the system can not load any further information from the dvd rom.<br>
<br>
I also tried this:<br>
--- src/ata.c   (revision 2781)<br>
+++ src/ata.c   (working copy)<br>
@@ -862,6 +862,15 @@<br>
     // Register with bcv system.<br>
     add_bcv_internal(drive_g);<br>
 <br>
+    // XXX - set dma mode<br>
+    struct ata_pio_command cmd;<br>
+    memset(&cmd, 0, sizeof(cmd));<br>
+    cmd.command = ATA_CMD_SET_FEATURES;<br>
+    cmd.feature = 0x03;<br>
+    cmd.sector_count = 0x22; // mwDMA mode 2<br>
+    ret = ata_cmd_nondata(drive_g, &cmd);<br>
+    dprintf(1, "set drive=%p dma=%d\n", drive_g, ret);<br>
+<br>
     return drive_g;<br>
 }<br>
<br>
at no avail.<br>
<br>
Best regards,<br>
Stefan<br>
<br>
<pre class="moz-signature" cols="72">-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: <a class="moz-txt-link-abbreviated" href="mailto:info@coresystems.de">info@coresystems.de</a>  • <a class="moz-txt-link-freetext" href="http://www.coresystems.de/">http://www.coresystems.de/</a>
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
</pre>
</body>
</html>