BALATON Zoltan <bala...@eik.bme.hu> writes: > Hello, > > AmigaOS4 also has a driver for this card so I've tried to test it but > it trips an assert. Does anybody have an idea why and how it could be > fixed? Sven's recent patches don't seem to have an effect on this, it > still happens shortly after it tries to access the SCSI device with > those patches applied. (Unfortunately AmigaOS is not freely available > so it's a bit hard to reproduce but I can do tests if needed.) I got > the following traces: > > lsi_reg_write Write reg SIEN0 0x40 = 0x84 > lsi_reg_write Write reg SIEN1 0x41 = 0x04 > lsi_reg_write Write reg DIEN 0x39 = 0xff > lsi_reg_write Write reg DSP0 0x2c = 0x00 > lsi_reg_write Write reg DSP1 0x2d = 0x80 > lsi_reg_write Write reg DSP2 0x2e = 0x19 > lsi_reg_write Write reg DSP3 0x2f = 0x00 > lsi_execute_script SCRIPTS dsp=0x198000 opcode 0x7c07fe00 arg 0x0 > lsi_execute_script_io_opcode Read-Modify-Write reg 0x7 AND data8=0xfe > sfbr=0x01 > lsi_reg_read Read reg GPREG 0x7 = 0x7f > lsi_reg_write Write reg GPREG 0x7 = 0x7e > lsi_execute_script SCRIPTS dsp=0x198008 opcode 0x60000200 arg 0x0 > lsi_execute_script_io_clear Clear TM > lsi_execute_script SCRIPTS dsp=0x198010 opcode 0x40000000 arg 0x198208 > lsi_execute_script_io_alreadyreselected Already reselected, jumping to > alternative address here ---^ > lsi_do_msgout_select Select LUN 0 > lsi_execute_script SCRIPTS dsp=0x198070 opcode 0x820b0000 arg 0x1981f8 > lsi_execute_script_tc_compp Compare phase CMD == CMD > lsi_execute_script_tc_jump Jump to 0x1981f8 > lsi_execute_script SCRIPTS dsp=0x1981f8 opcode 0xa000006 arg 0x199000 > lsi_do_command Send command len=6 > qemu-system-ppc: ../hw/scsi/lsi53c895a.c:863: lsi_do_command: Assertion > `s->current == NULL' failed. > > Any idea what could it be and what could be done about it?
Wild guess is that this is because of the 'Already reselected' line above. lsi_reselect() sets s->current, and later when lsi_do_command() is called it gets confused because s->current is already set. But i would need the whole logfile to see why this is going wrong, or even better AmigaOS (which is not free as you already mentioned) Sven