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