qemu-e2k/hw
balrog 9167a69a81 Implement LSI53C895A quirks exposed by OpenServer (Justin Chevrier).
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.

Props go to Craig Ringer for the initial post and the code that he posted
some of which is in this patch.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5706 c046a42c-6fe2-441c-8c8c-71466251a162
2008-11-12 16:41:32 +00:00
..
ac97.c Add calls to pci_device_save/load 2008-06-21 17:14:50 +00:00
acpi.c Add KVM support to QEMU 2008-11-05 16:04:33 +00:00
adb.c
adlib.c
ads7846.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
alpha_palcode.c target-alpha: fix syscall error check 2008-11-11 13:42:22 +00:00
an5206.c Make DMA bottom-half driven (v2) 2008-10-31 17:25:56 +00:00
apb_pci.c Wrap long lines 2008-05-12 16:13:33 +00:00
apic.c hw/apic.c: use functions from host-utils.h 2008-10-12 20:16:03 +00:00
arm_boot.c Move the excess of arm_load_kernel() parameters into a struct. 2008-04-14 20:27:51 +00:00
arm_gic.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
arm_pic.c
arm_sysctl.c
arm_timer.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
arm-misc.h Fix warnings that would be caused by ld flag --warn-common 2008-09-17 19:04:14 +00:00
armv7m_nvic.c Fix warnings that would be caused by ld flag --warn-common 2008-09-17 19:04:14 +00:00
armv7m.c
audiodev.h ISA version of CS4231A 2008-06-13 10:48:22 +00:00
baum.c Braille device support 2008-04-08 06:01:02 +00:00
baum.h Braille device support 2008-04-08 06:01:02 +00:00
blizzard_template.h Fix update region size in EPSON blizzard. 2008-04-22 02:52:38 +00:00
blizzard.c Add qemu_realloc(), by Gerd Hoffmann. 2008-08-06 08:37:17 +00:00
boards.h machine struct - specify max_cpus at the per machine level (Jes Sorensen) 2008-10-07 20:39:39 +00:00
bt-hci-csr.c Emulate a serial bluetooth HCI with H4+ extensions and attach to n8x0's UART. 2008-09-28 23:34:13 +00:00
bt-hci.c Add qemu_strndup: qemu_strdup with length limit. 2008-11-09 00:28:40 +00:00
bt-hid.c Bluetooth HIDP emulation on top of usb-hid.c and L2CAP and SDP. 2008-09-29 00:25:17 +00:00
bt-l2cap.c Add L2CAP logic and a virtual SDP server for use in emulated devices. 2008-09-29 00:14:22 +00:00
bt-sdp.c Fix a bad memcpy length (Bruce Rogers). 2008-10-25 00:10:20 +00:00
bt.c Add a "null" bluetooth HCI and a header file for bluetooth. 2008-09-28 23:19:47 +00:00
bt.h Use VHCI to allow the host os to participate in a qemu bluetooth "vlan". 2008-09-29 00:31:41 +00:00
cbus.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
cdrom.c
cirrus_vga_rop2.h
cirrus_vga_rop.h CVE-2007-1320 - Cirrus LGD-54XX "bitblt" heap overflow 2008-05-05 21:26:31 +00:00
cirrus_vga.c CVE-2008-4539: fix a heap overflow in Cirrus emulation 2008-11-01 00:53:39 +00:00
cs4231.c Wrap long lines 2008-05-12 16:13:33 +00:00
cs4231a.c Disable xLaw debugging 2008-06-21 17:15:00 +00:00
cuda.c
devices.h SM501 emulation for R2D-SH4 2008-11-05 20:24:35 +00:00
dma.c Make DMA bottom-half driven (v2) 2008-10-31 17:25:56 +00:00
ds1225y.c ds1225y nvram: Fix some bugs 2008-03-13 19:23:00 +00:00
dummy_m68k.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
e1000_hw.h Fix few spelling issues in comments 2008-04-11 04:55:07 +00:00
e1000.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
ecc.c
eccmemctl.c Fix buffer overruns (reported by Julian Seward) 2008-06-19 17:38:15 +00:00
eepro100.c Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka. 2008-07-18 18:02:34 +00:00
eeprom93xx.c
eeprom93xx.h
es1370.c Add calls to pci_device_save/load 2008-06-21 17:14:50 +00:00
esp.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
etraxfs_dma.c ETRAX-FS: Make etraxfs_dmac_run local. 2008-11-04 20:29:29 +00:00
etraxfs_dma.h ETRAX-FS: Make etraxfs_dmac_run local. 2008-11-04 20:29:29 +00:00
etraxfs_eth.c ETRAX-FS: Drop DMA polling for ethernet. 2008-10-24 09:18:39 +00:00
etraxfs_pic.c ETRAX: Add NMI support to the watchdog and the interrupt controller. 2008-06-09 23:33:30 +00:00
etraxfs_ser.c Avoid refering to CRIS specific cpu-state to be able to use these blocks with other cores. 2008-06-30 11:51:12 +00:00
etraxfs_timer.c Avoid refering to CRIS specific cpu-state to be able to use these blocks with other cores. 2008-06-30 11:51:12 +00:00
etraxfs.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
etraxfs.h ETRAX: Add NMI support to the watchdog and the interrupt controller. 2008-06-09 23:33:30 +00:00
fdc.c FDC: Fix data transfer len (Hervé Poussineau) 2008-05-01 19:05:12 +00:00
fdc.h Wire up TC signal from Aux1 to FDC 2008-03-21 18:05:23 +00:00
firmware_abi.h Fix some compiler signed/unsigned char warnings 2008-06-23 17:52:43 +00:00
flash.h Fill in WLAN and BT platform data in CAL area as expected by Maemo. 2008-07-29 14:19:16 +00:00
fmopl.c
fmopl.h
fw_cfg.c Move nographic export to sysemu.h 2008-10-04 07:22:29 +00:00
fw_cfg.h Add common keys to firmware configuration 2008-09-18 18:33:18 +00:00
g364fb_template.h Fix g364fb video emulation 2008-08-17 01:44:53 +00:00
g364fb.c Fix g364fb video emulation 2008-08-17 01:44:53 +00:00
grackle_pci.c
gt64xxx.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
gumstix.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
gus.c Avoid signedness warnings 2008-07-05 13:40:58 +00:00
gusemu_hal.c Gravis Ultrasound GF1 sound card emulation (malc). 2008-01-14 22:09:11 +00:00
gusemu_mixer.c Fix some signedness issues caught by gcc 4.3 2008-06-08 01:42:47 +00:00
gusemu.h Fix some signedness issues caught by gcc 4.3 2008-06-08 01:42:47 +00:00
gustate.h Gravis Ultrasound GF1 sound card emulation (malc). 2008-01-14 22:09:11 +00:00
heathrow_pic.c
hw.h Reintroduce migrate-to-exec: support (Charles Duffy) 2008-11-11 16:46:33 +00:00
i2c.c Fix load width for slave address in i2c_bus_load (Chris Lalancette). 2008-07-29 13:57:48 +00:00
i2c.h Fix i2c save/restore. 2008-07-01 23:16:53 +00:00
i8254.c
i8259.c Special Mask Mode for i8259 PIC (Sebastian Reichelt). 2008-07-19 09:18:48 +00:00
ide.c windows cdrom cache flush (Stefano Stabellini) 2008-11-11 20:57:30 +00:00
integratorcp.c Make DMA bottom-half driven (v2) 2008-10-31 17:25:56 +00:00
iommu.c Fix DMA length bug seen with NetBSD (Cliff Wright) 2008-07-01 19:28:23 +00:00
irq.c
irq.h
isa_mmio.c
isa.h Make DMA bottom-half driven (v2) 2008-10-31 17:25:56 +00:00
jazz_led.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
lm832x.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
lsi53c895a.c Implement LSI53C895A quirks exposed by OpenServer (Justin Chevrier). 2008-11-12 16:41:32 +00:00
m48t59.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
mac_dbdma.c
mac_nvram.c
macio.c
mainstone.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
mainstone.h
max111x.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
max7310.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
mc146818rtc.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
mcf5206.c
mcf5208.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
mcf_fec.c
mcf_intc.c
mcf_uart.c
mcf.h
mips_int.c
mips_jazz.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
mips_malta.c Malta & OMAP: add a name to char devices 2008-11-01 00:53:19 +00:00
mips_mipssim.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
mips_r4k.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
mips_timer.c MIPS: remove empty cpu_mips_irqctrl_init() 2008-09-14 16:38:57 +00:00
mips.h MIPS: remove empty cpu_mips_irqctrl_init() 2008-09-14 16:38:57 +00:00
mipsnet.c Fix mipsnet device ID, noticed by Vijay Kumar. 2008-03-28 22:29:33 +00:00
mpcore.c
mst_fpga.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
musicpal.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
nand.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
ne2000.c Various NICs: Fix suspend/resume of multiple instances, by Jan Kiszka. 2008-07-18 18:02:34 +00:00
nseries.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
nvram.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
omap1.c Malta & OMAP: add a name to char devices 2008-11-01 00:53:19 +00:00
omap2.c Malta & OMAP: add a name to char devices 2008-11-01 00:53:19 +00:00
omap_clk.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
omap_dma.c Fix a bad comparison, spotted by Paul Brook. 2008-07-22 01:57:42 +00:00
omap_dss.c array overflow in hw/stellaris.c and hw/omap_dss.c 2008-08-22 08:57:19 +00:00
omap_i2c.c Omap DPLL & APLL locking logic. 2008-07-21 19:52:54 +00:00
omap_lcd_template.h
omap_lcdc.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
omap_mmc.c Collapse omap peripherals on L4 bus into one io entry (temporarily). 2008-05-18 12:14:41 +00:00
omap.h Allow attaching devices to OMAP UARTs. 2008-09-20 01:10:32 +00:00
onenand.c Fill in WLAN and BT platform data in CAL area as expected by Maemo. 2008-07-29 14:19:16 +00:00
openpic.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
palm.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
parallel.c Parallel Port Direction Fix 2008-08-22 08:57:09 +00:00
pc.c Use an option rom instead of boot sector for -kernel 2008-11-08 16:27:07 +00:00
pc.h Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
pci_host.h
pci.c Make PCI class description tables const 2008-10-02 18:33:50 +00:00
pci.h E1000 NIC emulation (Nir Peleg, patch from Dor Laor). 2008-02-03 02:20:18 +00:00
pckbd.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
pcmcia.h
pcnet.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pcspk.c
pflash_cfi01.c Increase write buffer size in pflash emulation (Thomas Petazzoni). 2008-10-11 09:19:57 +00:00
pflash_cfi02.c Clean up MMIO TLB handling. 2008-06-09 00:20:13 +00:00
piix_pci.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
pixel_ops.h
pl011.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl022.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl031.c Unify RTCs that use host time, fix M48t59 alarm. 2008-02-17 11:42:19 +00:00
pl050.c
pl061.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
pl080.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
pl110_template.h
pl110.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
pl181.c
pl190.c Remove bogus DisplayState member. 2008-05-25 10:10:12 +00:00
ppc4xx_devs.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc4xx.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
ppc405_boards.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
ppc405_uc.c Use qemu-log.h 2008-10-04 07:20:07 +00:00
ppc405.h
ppc_chrp.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
ppc_mac.h
ppc_oldworld.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
ppc_prep.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
ppc.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
ppc.h Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
prep_pci.c
primecell.h
ps2.c Fix keyboard emulation for ARM versatile board: 2008-04-13 16:08:44 +00:00
ps2.h
ptimer.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa2xx_dma.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
pxa2xx_gpio.c
pxa2xx_keypad.c
pxa2xx_lcd.c Implement resolution switching in common console code. 2008-07-01 16:24:38 +00:00
pxa2xx_mmci.c
pxa2xx_pcmcia.c
pxa2xx_pic.c
pxa2xx_template.h Fix RGBT 5:5:5 drawing on pxa2xx lcd (Lars Munch) 2008-11-03 01:08:14 +00:00
pxa2xx_timer.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa2xx.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
pxa.h
r2d.c SM501 emulation for R2D-SH4 2008-11-05 20:24:35 +00:00
rc4030.c MIPS Magnum R4000 machine 2008-04-07 19:47:14 +00:00
realview_gic.c
realview.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
rtl8139.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
sb16.c
sbi.c
scsi-disk.c Correct SCSI error reporting (Laurent Vivier) 2008-10-11 09:33:03 +00:00
scsi-disk.h
scsi-generic.c scsi-generic: correct error management 2008-10-17 08:08:56 +00:00
scsi.h ESP: Add it_shift parameter (Hervé Poussineau) 2008-04-09 16:32:48 +00:00
sd.c Enable SD card on creation. 2008-06-02 00:55:08 +00:00
sd.h Add basic OMAP2 chip support. 2008-04-14 21:05:22 +00:00
serial.c Add a comment about masking of CTI interrupt in 16550A UART. 2008-09-20 01:15:04 +00:00
sh7750_regnames.c
sh7750_regnames.h
sh7750_regs.h
sh7750.c sh4: CPU versioning. 2008-09-02 16:18:28 +00:00
sh_intc.c
sh_intc.h
sh_serial.c SH4: Serial controller improvement 2008-09-15 07:05:18 +00:00
sh_timer.c
sh.h Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
sharpsl.h Provide basic emulation for Sharp SL-6000 PDA (Tosa), Dmitry Baryshkov. 2008-06-02 01:33:11 +00:00
shix.c Make DMA bottom-half driven (v2) 2008-10-31 17:25:56 +00:00
slavio_intctl.c Wrap long lines 2008-05-12 16:13:33 +00:00
slavio_misc.c Halt the CPU using a qemu_irq 2008-11-02 10:51:05 +00:00
slavio_serial.c Fix NetBSD keyboard problem 2008-07-02 15:17:21 +00:00
slavio_timer.c Wrap long lines 2008-05-12 16:13:33 +00:00
sm501_template.h SM501 emulation for R2D-SH4 2008-11-05 20:24:35 +00:00
sm501.c SM501 emulation for R2D-SH4 2008-11-05 20:24:35 +00:00
smbus_eeprom.c Fix smbus_eeprom.c compile with DEBUG (spotted by Duilio Protti). 2008-06-02 01:48:27 +00:00
smbus.c
smbus.h
smc91c111.c
soc_dma.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
soc_dma.h Handle on-chip DMA controllers in one place, convert OMAP DMA to use it. 2008-07-21 20:40:22 +00:00
sparc32_dma.c
sparc32_dma.h
spitz.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
ssd0303.c Eliminate spurous screen updates. 2008-07-07 23:01:25 +00:00
ssd0323.c Eliminate spurous screen updates. 2008-07-07 23:01:25 +00:00
ssi-sd.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris_enet.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris_input.c Save/restore for stellaris boards. 2008-07-02 16:48:32 +00:00
stellaris.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
sun4c_intctl.c Wrap long lines 2008-05-12 16:13:33 +00:00
sun4m.c Use qemu_ram_alloc 2008-11-05 19:25:39 +00:00
sun4m.h Halt the CPU using a qemu_irq 2008-11-02 10:51:05 +00:00
sun4u.c Use qemu_ram_alloc 2008-11-05 19:25:39 +00:00
tc6393xb_template.h tc6393xb: non-accelerated FB support (Dmitry Baryshkov). 2008-11-04 09:04:41 +00:00
tc6393xb.c tc6393xb: non-accelerated FB support (Dmitry Baryshkov). 2008-11-04 09:04:41 +00:00
tc58128.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
tcx.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
tmp105.c Resurrect the safe part of r5274 2008-10-02 19:14:17 +00:00
tosa.c tc6393xb: non-accelerated FB support (Dmitry Baryshkov). 2008-11-04 09:04:41 +00:00
tsc210x.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
tsc2005.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
tusb6010.c Fix undeclared symbol warnings from sparse 2008-10-26 13:43:07 +00:00
twl92230.c Fix some warnings that would be generated by gcc -Wmissing-prototypes 2008-08-17 20:26:25 +00:00
unin_pci.c
usb-bt.c Document bluetooth support in qemu-doc. 2008-11-09 02:24:54 +00:00
usb-hid.c Bluetooth HIDP emulation on top of usb-hid.c and L2CAP and SDP. 2008-09-29 00:25:17 +00:00
usb-hub.c
usb-msd.c Add image format option for USB mass-storage devices 2008-08-21 22:24:32 +00:00
usb-musb.c Inventra MUSB-HDRC host-mode USB. 2008-04-22 03:15:10 +00:00
usb-net.c Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings 2008-09-20 08:07:15 +00:00
usb-ohci.c Fix warnings that would be caused by gcc flag -Wwrite-strings 2008-09-14 06:45:34 +00:00
usb-serial.c Implement "info chardev" command. (Gerd Hoffmann) 2008-10-31 17:31:29 +00:00
usb-uhci.c uhci: Change default transaction lifetime to 32 frames (Max Krasnyansky) 2008-09-11 19:42:00 +00:00
usb-wacom.c
usb.c usb: generic packet handler cleanup and documentation (Max Krasnyansky) 2008-08-21 19:29:38 +00:00
usb.h Emulate a USB bluetooth dongle (or HCI Transport layer). 2008-09-29 00:40:44 +00:00
versatile_pci.c
versatilepb.c Set default max_cpus to one. 2008-10-28 10:59:59 +00:00
vga_int.h Optional "precise" VGA retrace support 2008-09-28 00:42:12 +00:00
vga_template.h
vga.c fix some variable initizalization issues (Stefano Stabellini) 2008-11-12 15:00:36 +00:00
vmmouse.c
vmport.c Silence vmport unless DEBUG is enabled. 2008-08-19 19:13:06 +00:00
vmware_vga.c Don't use ds->dpy_copy directly from hw/ (Jan Niehusmann). 2008-09-24 02:21:24 +00:00
wm8750.c Remove duplicate device index calculations. 2008-07-01 21:31:54 +00:00
zaurus.c scoop: GPRR reports the state of GPIO lines (Dmitry Baryshkov). 2008-11-04 08:49:17 +00:00