[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Missing Diag/Debug Registers in lsi53c895a emulation
From: |
Peter Lieven |
Subject: |
[Qemu-devel] Missing Diag/Debug Registers in lsi53c895a emulation |
Date: |
Mon, 12 Jan 2015 10:28:02 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
Hi,
while trying to run an ASA1000V appliance I found that registers 0x09 and
0x3c-3f are read during boot up. Which
currently results in an exit(1). The appliance uses an quite ancient 2.6.29.6
Linux kernel.
These registers are mainly for diag and debug purposes so I came up with the
following patch. The system works
with the following patch, but I wonder if this is a correct workaround:
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index ec92048..bce1135 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -1513,6 +1513,8 @@ static uint8_t lsi_reg_readb(LSIState *s, int offset)
return 0x7f;
case 0x08: /* Revision ID */
return 0x00;
+ case 0x09: /* SOCL */
+ return 0x00;
case 0xa: /* SSID */
return s->ssid;
case 0xb: /* SBCL */
@@ -1577,6 +1579,11 @@ static uint8_t lsi_reg_readb(LSIState *s, int offset)
return s->sbr;
case 0x3b: /* DCNTL */
return s->dcntl;
+ case 0x3c: /* ADDER Output (Debug purpose only) */
+ case 0x3d:
+ case 0x3e:
+ case 0x3f:
+ return 0x00;
case 0x40: /* SIEN0 */
return s->sien0;
case 0x41: /* SIEN1 */
Peter
- [Qemu-devel] Missing Diag/Debug Registers in lsi53c895a emulation,
Peter Lieven <=