Hi,

I just tried booting an OpenSUSE 11.2 DVD on an i945/ICH7 based system with SeaBIOS. This is a work in progress report.

The system hangs with the following message:
Probing EDD (edd=off to disable)...

after a while it prints "IDE DMA timeout"

This message goes away if I enable CONFIG_ATA_DMA but the sysem still hangs.

Booting with edd=off gets the system further. It boots up with the following messages:

...
[    1.520940] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    1.528098] ata_piix 0000:00:1f.2: MAP [ P0 P2 IDE IDE ]
[    1.533643] scsi0 : ata_piix
[    1.536668] scsi1 : ata_piix
[    1.539793] ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x40a0 irq 14
[    1.546764] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x40a8 irq 15
...
[    1.824076] ata2: clearing spurious IRQ
[    1.827935] ata2: clearing spurious IRQ
[    1.831818] ata2: clearing spurious IRQ
[    1.835795] ata2: clearing spurious IRQ
[    1.840177] ata2: clearing spurious IRQ
[    1.844401] ata2.00: CFA: SanDisk SDCFX3-16384, HDX 4.08, max MWDMA2
[    1.850762] ata2.00: 32014080 sectors, multi 0: LBA
[    1.855760] ata2.01: ATAPI: PIONEER DVD-RW  DVR-111D, 1.02, max UDMA/66
[    1.862390] ata2.01: limited to UDMA/33 due to 40-wire cable
[    1.868162] ata2: clearing spurious IRQ
[    1.872147] ata2: clearing spurious IRQ
[    1.876267] ata2.00: configured for MWDMA2
[    1.880442] ata2: clearing spurious IRQ
[    1.884414] ata2: clearing spurious IRQ
[    1.888638] ata2.01: configured for UDMA/33
...
[    2.354575] sd 1:0:0:0: [sda] 32014080 512-byte logical blocks: (16.3 GB/15.2 GiB)
[    2.362191] scsi scan: 96 byte inquiry failed.  Consider BLIST_INQUIRY_36 for this device
[    2.371163] sd 1:0:0:0: [sda] Write Protect is off
[    2.375990] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    2.385244] scsi 1:0:1:0: CD-ROM            PIONEER  DVD-RW  DVR-111D 1.02 PQ: 0 ANSI: 5
[    2.393594]  sda: sda1
[    2.396949] sd 1:0:0:0: [sda] Attached SCSI removable disk
...
[    3.385035] sd 1:0:0:0: Attached scsi generic sg0 type 0
[    3.390644] scsi 1:0:1:0: Attached scsi generic sg1 type 5
...
[    3.530699] sr0: scsi-1 drive
[    3.533857] Uniform CD-ROM driver Revision: 3.20
...
[    3.725451] sr0: CDROM (ioctl) error, command: Get configuration 46 00 00 00 00 00 00 00 20 00
[    3.734859] sr: Sense Key : Hardware Error [current]
[    3.740183] sr: Add. Sense: Logical unit communication CRC error (Ultra-DMA/32)
[    3.823397] sr 1:0:1:0: [sr0] Unhandled sense code
[    3.828443] sr 1:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[    3.835933] sr 1:0:1:0: [sr0] Sense Key : Hardware Error [current]
[    3.842565] sr 1:0:1:0: [sr0] Add. Sense: Logical unit communication CRC error (Ultra-DMA/32)
[    3.851518] end_request: I/O error, dev sr0, sector 0
[    3.908964] sr 1:0:1:0: [sr0] Unhandled sense code
[    3.913951] sr 1:0:1:0: [sr0] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[    3.921381] sr 1:0:1:0: [sr0] Sense Key : Hardware Error [current]
[    3.928030] sr 1:0:1:0: [sr0] Add. Sense: Logical unit communication CRC error (Ultra-DMA/32)
[    3.936947] end_request: I/O error, dev sr0, sector 0

The last hunk starting from 3.725451 then repeats several times, and the system can not load any further information from the dvd rom.

I also tried this:
--- src/ata.c   (revision 2781)
+++ src/ata.c   (working copy)
@@ -862,6 +862,15 @@
     // Register with bcv system.
     add_bcv_internal(drive_g);
 
+    // XXX - set dma mode
+    struct ata_pio_command cmd;
+    memset(&cmd, 0, sizeof(cmd));
+    cmd.command = ATA_CMD_SET_FEATURES;
+    cmd.feature = 0x03;
+    cmd.sector_count = 0x22; // mwDMA mode 2
+    ret = ata_cmd_nondata(drive_g, &cmd);
+    dprintf(1, "set drive=%p dma=%d\n", drive_g, ret);
+
     return drive_g;
 }

at no avail.

Best regards,
Stefan

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info@coresystems.dehttp://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866