[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] LSI53C895A, IDE HDD detection under SCO OpenServer 5.0.
From: |
Justin Chevrier |
Subject: |
Re: [Qemu-devel] LSI53C895A, IDE HDD detection under SCO OpenServer 5.0.5 |
Date: |
Mon, 3 Nov 2008 19:21:35 -0800 (PST) |
Hey guys,
Well I've made some progress with getting the LSI53C895A emulated card working
under Openserver. After going through the debug log and scratching my head for
quite some time. I found the following:
The problem was with this block move:
lsi_scsi: SCRIPTS dsp=0fae8e50 opcode 01000028 arg 00f63c40
lsi_scsi: DMA addr=0x00f63c40 len=36
The number of bytes to be transferred (len) should be 40 which corresponds
to the block transfer of length 0x28 (from opcode 01000028). Instead we
have a length of 36 (0x24). The code responsible for this is (in 'lsi_do_dma'):
if (count > s->current_dma_len)
count = s->current_dma_len;
Basically we're overwriting the length 40 with the value 36 which I think we
just left over in that variable from an earlier transfer. In my patch below I
initialize s->current_dma_len to s->dbc before we begin the DMA transfer during
Data In phase.
The attached patch gets Openserver 5.0.5 past the hardware detection
(and it lists the hard drive to boot, woohoo). It appears to stop a little
while later (doesn't seem SCSI related), but it's been so long since I've
booted Openserver I'm not sure what's supposted to happen after the HW
detection using the boot/root disks.
Give it a shot. Hopefully it doesn't break other OS's, but I haven't checked
myself. If what I did makes sense and doesn't break anything I'd like to see it
get merged into mainline.
Props go to Craig for the initial post and the code that he posted some of
which is in this patch.
lsi_sco.diff
Description: Text document
- Re: [Qemu-devel] LSI53C895A, IDE HDD detection under SCO OpenServer 5.0.5,
Justin Chevrier <=