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.de • http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866