[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 16/17] xilinx_spips: Add missing dual-bus snoop comm
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 16/17] xilinx_spips: Add missing dual-bus snoop commands |
Date: |
Fri, 15 Mar 2013 16:56:38 +0000 |
From: Nathan Rossi <address@hidden>
Added additional commands to the switch to check for when snooping commands in
dual bus mode setups. Cleaned up code to use an enum.
Signed-off-by: Nathan Rossi <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
hw/xilinx_spips.c | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/hw/xilinx_spips.c b/hw/xilinx_spips.c
index efa1449..3183f7a 100644
--- a/hw/xilinx_spips.c
+++ b/hw/xilinx_spips.c
@@ -115,6 +115,19 @@
#define SNOOP_NONE 0xFE
#define SNOOP_STRIPING 0
+typedef enum {
+ READ = 0x3,
+ FAST_READ = 0xb,
+ DOR = 0x3b,
+ QOR = 0x6b,
+ DIOR = 0xbb,
+ QIOR = 0xeb,
+
+ PP = 0x2,
+ DPP = 0xa2,
+ QPP = 0x32,
+} FlashCMD;
+
typedef struct {
SysBusDevice busdev;
MemoryRegion iomem;
@@ -251,15 +264,19 @@ static void xilinx_spips_flush_txfifo(XilinxSPIPS *s)
switch (s->snoop_state) {
case (SNOOP_CHECKING):
switch (tx) { /* new instruction code */
- case 0x0b: /* dual/quad output read DOR/QOR */
- case 0x6b:
- s->snoop_state = 4;
+ case READ: /* 3 address bytes, no dummy bytes/cycles */
+ case PP:
+ case DPP:
+ case QPP:
+ s->snoop_state = 3;
break;
- /* FIXME: these vary between vendor - set to spansion */
- case 0xbb: /* high performance dual read DIOR */
+ case FAST_READ: /* 3 address bytes, 1 dummy byte */
+ case DOR:
+ case QOR:
+ case DIOR: /* FIXME: these vary between vendor - set to spansion */
s->snoop_state = 4;
break;
- case 0xeb: /* high performance quad read QIOR */
+ case QIOR: /* 3 address bytes, 2 dummy bytes */
s->snoop_state = 6;
break;
default:
--
1.7.9.5
- [Qemu-devel] [PATCH 09/17] hw/arm_sysctl: Implement SYS_CFG_OSC function, (continued)
- [Qemu-devel] [PATCH 09/17] hw/arm_sysctl: Implement SYS_CFG_OSC function, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 03/17] hw/arm_sysctl: Implement SYS_CFG_MUXFPGA writes as a no-op, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 04/17] hw/arm_sysctl: Implement SYS_CFG_DVIMODE as a no-op, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 05/17] hw/arm_sysctl: Convert from qdev init to instance_init, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 13/17] xilinx_zynq: added pl330 to machine model, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 08/17] hw/vexpress: Pass voltage sensor properties to sysctl device, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 01/17] hw/vexpress: Pass proc_id via VEDBoardInfo, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 10/17] hw/vexpress: Set reset values for daughterboard oscillators, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 15/17] xilinx_spips: Fix bus setup conditional check, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 12/17] pl330: Initial version, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 16/17] xilinx_spips: Add missing dual-bus snoop commands,
Peter Maydell <=
- [Qemu-devel] [PATCH 06/17] qdev: Implement (variable length) array properties, Peter Maydell, 2013/03/15
- Re: [Qemu-devel] [PULL 00/17] arm-devs queue, Blue Swirl, 2013/03/17