[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 6/7] lsi53c895a: detect invalid Block Move instruction
From: |
Paolo Bonzini |
Subject: |
[PULL 6/7] lsi53c895a: detect invalid Block Move instruction |
Date: |
Tue, 2 Apr 2024 15:16:48 +0200 |
The spec for the lsi53c895a says: "If the instruction is a Block Move
and a value of 0x000000 is loaded into the DBC register, an illegal
instruction interrupt occurs if the LSI53C895A is not in target mode,
Command phase".
Because QEMU only operates in initiator mode, generate the interrupt
unconditionally if the low 24 bits are 0x000000.
Reported-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/lsi53c895a.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index eb9828dd5ef..1e18d88983b 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -1205,6 +1205,15 @@ again:
break;
}
s->dbc = insn & 0xffffff;
+ if (!s->dbc) {
+ /*
+ * If the instruction is a Block Move and a value of 0x000000 is
+ * loaded into the DBC register, an illegal instruction interrupt
+ * occurs if the LSI53C895A is not in target mode, Command phase.
+ */
+ lsi_script_dma_interrupt(s, LSI_DSTAT_IID);
+ break;
+ }
s->rbc = s->dbc;
/* ??? Set ESA. */
s->ia = s->dsp - 8;
--
2.44.0
- [PULL 0/7] lsi, vga fixes for 2024-04-02, Paolo Bonzini, 2024/04/02
- [PULL 4/7] vga: do not treat horiz pel panning value of 8 as "enabled", Paolo Bonzini, 2024/04/02
- [PULL 5/7] lsi53c895a: avoid out of bounds access to s->msg[], Paolo Bonzini, 2024/04/02
- [PULL 1/7] vga: merge conditionals on shift control register, Paolo Bonzini, 2024/04/02
- [PULL 7/7] pc_q35: remove unnecessary m->alias assignment, Paolo Bonzini, 2024/04/02
- [PULL 6/7] lsi53c895a: detect invalid Block Move instruction,
Paolo Bonzini <=
- [PULL 3/7] vga: adjust dirty memory region if pel panning is active, Paolo Bonzini, 2024/04/02
- [PULL 2/7] vga: move computation of dirty memory region later, Paolo Bonzini, 2024/04/02
- Re: [PULL 0/7] lsi, vga fixes for 2024-04-02, Peter Maydell, 2024/04/02