qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] LSI53C895A, IDE HDD detection under SCO OpenServer 5.0.5


From: Craig Ringer
Subject: [Qemu-devel] LSI53C895A, IDE HDD detection under SCO OpenServer 5.0.5
Date: Wed, 29 Oct 2008 18:25:12 +0900
User-agent: Thunderbird 2.0.0.17 (X11/20080925)

Hi

I'm writing to seek some advice with getting the emulated LSI53C895A SCSI HBA or the emulated PIIX PATA IDE controller detected and working under SCO OpenServer 5.0.5 . (I'd rather not be using it it all, but we don't always get that much choice).

In the case of the PIIX it sees the ATAPI CD-ROM and boots from that fine. It just can't detect any ATA hard disks. My understanding is that it's probably failing while testing the emulated hardware for some wacky quick or misbehaviour that used to be common in some ancient IDE controllers.

As for the LSI53C895A, I have a boot-time loadable driver (version V4.11.00) that claims to support the card under OpenServer 5.0.5 . Following the setup instructions works and the driver is loaded, but no hardware appears to be detected.

I've rebuilt qemu with DEBUG_LSI, DEBUG_LSI_REG, DEBUG_SCSI and DEBUG_PCI defined. I've included the output that results when I *think* the slha driver tries to probe the virtual hardware below.

I assume it's finding something not to its liking in the responses of the virtual hardware and is rejecting it. However, I haven't the foggiest what it might be, and was really hoping someone here might have a bit of experience with troubleshooting hardware detection issues and might be able to lend a hand or offer a pointer.

In particular, is there any other tracing/debugging I could/should be doing to shed some light on what's going on?

Here's the debug output during (I think) the slha driver's probe of the hardware. Qemu (0.9.1, from Ubuntu 8.04) was invoked as:

qemu -cdrom /archive/cdimages/SCO_5_0_5.iso \
 -drive file=/var/VMs/alder/alder.img,media=disk,if=scsi,bus=0,unit=0\
 -fda /archive/cdimages/SCO_5_0_5_LSI53C895A_BTLD_FLOPPY.img \
 -boot d

and kqemu was not loaded or enabled.

pci_config_read: LSI53C895A SCSI HBA: addr=0e val=00000000 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=02 val=00000012 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=2f val=00000000 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=04 val=00000003 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=04 val=00000007 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=14 val=f2001000 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=14 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=14 val=fffffc00 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=14 val=f2001000 len=4
lsi_scsi: Mapping registers at f2001000
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=18 val=f2002000 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=2e val=00000000 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=0d val=00000000 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=0d val=00000000 len=1

The only other output during boot involving the card is repeated occurrances of:

pci_config_read: i440FX: addr=0e val=00000000 len=1
pci_config_read: i440FX: addr=00 val=00008086 len=2
pci_config_read: PIIX3: addr=0e val=00000080 len=1
pci_config_read: PIIX3: addr=00 val=00008086 len=2
pci_config_read: PIIX3 IDE: addr=00 val=00008086 len=2
pci_config_read: PM: addr=00 val=00008086 len=2
pci_config_read: Cirrus VGA: addr=0e val=00000000 len=1
pci_config_read: Cirrus VGA: addr=00 val=00001013 len=2
pci_config_read: NE2000: addr=0e val=00000000 len=1
pci_config_read: NE2000: addr=00 val=000010ec len=2
pci_config_read: LSI53C895A SCSI HBA: addr=0e val=00000000 len=1
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=02 val=00000012 len=2

... which looks like PCI device enumeration, probably being done by each driver when it initializes and looks for hardware it supports.

There's also some LSI53C895A-related output before the bootloader comes up, though it's probably not very interesting given that it's not specific to the OS:

pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=02 val=00000012 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=0a val=00000100 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=00 val=00001000 len=2
pci_config_read: LSI53C895A SCSI HBA: addr=02 val=00000012 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=10 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=10 val=ffffff01 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=10 val=ffffff01 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=10 val=0000c200 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=04 val=00000000 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=04 val=00000001 len=2
lsi_scsi: Mapping IO at 0000c200
pci_config_write: LSI53C895A SCSI HBA: addr=14 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=14 val=fffffc00 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=14 val=fffffc00 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=14 val=f2001000 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=04 val=00000001 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=04 val=00000003 len=2
lsi_scsi: Mapping registers at f2001000
pci_config_write: LSI53C895A SCSI HBA: addr=18 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=18 val=ffffe000 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=18 val=ffffe000 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=18 val=f2002000 len=4
lsi_scsi: Mapping ram at f2002000
pci_config_read: LSI53C895A SCSI HBA: addr=04 val=00000003 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=04 val=00000003 len=2
pci_config_write: LSI53C895A SCSI HBA: addr=1c val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=1c val=00000000 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=20 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=20 val=00000000 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=24 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=24 val=00000000 len=4
pci_config_write: LSI53C895A SCSI HBA: addr=30 val=ffffffff len=4
pci_config_read: LSI53C895A SCSI HBA: addr=30 val=00000000 len=4
pci_config_read: LSI53C895A SCSI HBA: addr=3d val=00000001 len=1
pci_config_write: LSI53C895A SCSI HBA: addr=3c val=00000009 len=1

As for the IDE detection, here's the output with DEBUG_IDE enabled. I tried to boot off a floppy image for this test to eliminate noise from the IDE CD-ROM access, but qemu doesn't recognise the OpenServer installation disk as bootable.

For this test qemu was invoked as:

qemu -cdrom /archive/cdimages/SCO_5_0_5.iso \
 -hda /var/VMs/alder/alder.img \
 -boot d

The output is ... verbose. I've put it up here:

http://www.postnewspapers.com.au/~craig/qemu_ide_debug_20081029.txt

... in case it's of interest. I've included a trimmed version below that omits all the noise created by loading the kernel image from the CD-ROM, etc.

First there's a quick bit of access during PnP init (?):

ide: read addr=0x176 val=a0
ide: read addr=0x175 val=08
ide: write control addr=0x3f6 val=00
ide: read addr=0x1f7 val=50
IDE: write addr=0x1f7 val=0xf0
ide: CMD=f0
ide: read addr=0x1f7 val=41

then much more during what I think is disk probing:

IDE: write addr=0x1f6 val=0xaa
ide: read addr=0x1f6 val=aa
IDE: write addr=0x1f6 val=0xa5
ide: read addr=0x1f6 val=a5
ide: read status addr=0x3f6 val=41
ide: write control addr=0x3f6 val=0a
ide: write control addr=0x3f6 val=0e
ide: write control addr=0x3f6 val=0a
ide: read status addr=0x3f6 val=50
ide: read addr=0x1f7 val=50
ide: read addr=0x1f1 val=01
IDE: write addr=0x1f6 val=0xa0
ide: read addr=0x1f4 val=00
IDE: write addr=0x1f6 val=0xb0
ide: read addr=0x1f4 val=ff
ide: write control addr=0x3f6 val=08
IDE: write addr=0x176 val=0xaa
ide: read addr=0x176 val=aa
IDE: write addr=0x176 val=0xa5
ide: read addr=0x176 val=a5
ide: read status addr=0x376 val=40
ide: write control addr=0x376 val=0a
ide: write control addr=0x376 val=0e
ide: write control addr=0x376 val=0a
ide: read status addr=0x376 val=00
ide: read addr=0x177 val=00
ide: read addr=0x171 val=01
IDE: write addr=0x176 val=0xa0
ide: read addr=0x174 val=14
ide: read addr=0x175 val=eb
IDE: write addr=0x176 val=0xb0
ide: read addr=0x174 val=ff
ide: write control addr=0x376 val=0a
IDE: write addr=0x176 val=0xa0
IDE: write addr=0x177 val=0x08
ide: CMD=08
ide: read status addr=0x376 val=00
ide: read addr=0x177 val=00
ide: read addr=0x174 val=14
ide: read addr=0x175 val=eb
ide: write control addr=0x376 val=0a
IDE: write addr=0x176 val=0xb0
IDE: write addr=0x177 val=0x08
ide: CMD=08
ide: read status addr=0x376 val=00
ide: read addr=0x177 val=00
ide: read addr=0x174 val=ff
ide: read addr=0x171 val=01
ide: read addr=0x172 val=01
ide: read addr=0x173 val=01
ide: write control addr=0x376 val=08
IDE: write addr=0x1f3 val=0x01
IDE: write addr=0x1f4 val=0x00
IDE: write addr=0x1f5 val=0x00
IDE: write addr=0x1f6 val=0xa0
IDE: write addr=0x1f7 val=0x70
ide: CMD=70
ide: read status addr=0x3f6 val=41
ide: read addr=0x1f7 val=41
ide: read addr=0x1f1 val=04
IDE: write addr=0x1f3 val=0x01
IDE: write addr=0x1f4 val=0x00
IDE: write addr=0x1f5 val=0x00
IDE: write addr=0x1f6 val=0xb0
IDE: write addr=0x1f7 val=0x70
ide: CMD=70
ide: write control addr=0x3f6 val=04
ide: write control addr=0x3f6 val=00
ide: read status addr=0x3f6 val=00
ide: read addr=0x1f1 val=01


... after which it reports "no root disk found".


so ... ideas? Suggestions? Advice on where to go or how I might approach debugging this?



--
Craig Ringer




reply via email to

[Prev in Thread] Current Thread [Next in Thread]