Am 27.03.2010 10:38, schrieb Gerhard Wiesinger: > Hello, > > I'm having trouble booting from SCSI adapter 53C895a and e.g. INT13h OS > like MS-DOS 6.22. > > I downloaded and installed the option ROM with -option-rom 8xx_64.rom: > http://www.lsi.com/DistributionSystem/AssetDocument/files/support/ssp/sdms/Bios/lsi_bios.zip > > I'm seeing that Harddisks are installed well and that also "PCI boot ROM > succesfully installed" message appears. So that part looks good as DDIM > (Device Driver Initialization Model) has been implemented. > > Also booting (sometimes) and sometimes access works until nearly > immediatly the following problems occour (repeated messages with different > Tags): > lsi_scsi: error: Reselect with pending DMA > scsi-disk: Tag 0x0 already in use > paio_remove: aio request not found! > > So it seems to me that there is some incompatibility with the ROM and the > SCSI emulation (busmaster DMA?) and INT 13h. > > BTW: Booting Knoppix 6.2 Live CD without any option ROM and even with > option ROM works well with SCSI disks (at least reading from them without > any errors on the console, i guess because of own drivers and not INT13h > access). > > Any ideas to fix that issue and to bugfix it?
Tried the same with current git master and it segfaults. This segfault was introduced in af12ac98 (lsi: have lsi_request for the whole life time of the request): #0 0x000000000052e2d3 in lsi_command_complete (bus=0xca22f8, reason=1, tag=0, arg=512) at /home/kwolf/source/qemu/hw/lsi53c895a.c:690 #1 0x00000000004416e7 in qcow_aio_read_cb (opaque=0xc813f0, ret=0) at block/qcow2.c:480 #2 0x0000000000433028 in posix_aio_process_queue (opaque=<value optimized out>) at posix-aio-compat.c:459 #3 0x00000000004330cc in posix_aio_read (opaque=0xc4bb60) at posix-aio-compat.c:489 #4 0x000000000040ac60 in main_loop_wait (timeout=0) at /home/kwolf/source/qemu/vl.c:3949 #5 0x000000000040ce85 in main_loop (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at /home/kwolf/source/qemu/vl.c:4172 #6 main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at /home/kwolf/source/qemu/vl.c:6147 s->current is set to NULL by lsi_queue_command. I don't know the code well enough to say if lsi_queue_command is wrong in setting it to NULL or if lsi_command_complete shouldn't even try to access it (maybe it should search in the queue for the right tag?) Gerd, do you remember how it's supposed to work? Kevin