[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 61/66] PPC: xnu kernel expects FLUSH to be cleared on
From: |
Alexander Graf |
Subject: |
[Qemu-ppc] [PATCH 61/66] PPC: xnu kernel expects FLUSH to be cleared on STOP |
Date: |
Fri, 8 Mar 2013 21:07:03 +0100 |
From: Amadeusz Sławiński <address@hidden>
otherwise it gets stuck in a loop
so clear it when unsetting run when flush is set
void
IODBDMAStop( volatile IODBDMAChannelRegisters *registers)
{
IOSetDBDMAChannelControl( registers,
IOClearDBDMAChannelControlBits( kdbdmaRun )
| IOSetDBDMAChannelControlBits( kdbdmaFlush ));
DBDMA: writel 0x0000000000000b00 <= 0xa0002000
DBDMA: channel 0x16 reg 0x0
DBDMA: status 0x00002000
while( IOGetDBDMAChannelStatus( registers) & (
kdbdmaActive | kdbdmaFlush))
eieio();
DBDMA: readl 0x0000000000000b04 => 0x00002000
DBDMA: channel 0x16 reg 0x1
DBDMA: readl 0x0000000000000b04 => 0x00002000
DBDMA: channel 0x16 reg 0x1
DBDMA: readl 0x0000000000000b04 => 0x00002000
DBDMA: channel 0x16 reg 0x1
DBDMA: readl 0x0000000000000b04 => 0x00002000
DBDMA: channel 0x16 reg 0x1
it continues to get printed
}
Signed-off-by: Amadeusz Sławiński <address@hidden>
[agraf: replace tabs with spaces]
Signed-off-by: Alexander Graf <address@hidden>
---
hw/mac_dbdma.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/mac_dbdma.c b/hw/mac_dbdma.c
index b894ab2..73d74c2 100644
--- a/hw/mac_dbdma.c
+++ b/hw/mac_dbdma.c
@@ -688,6 +688,10 @@ dbdma_control_write(DBDMA_channel *ch)
if ((ch->regs[DBDMA_STATUS] & RUN) && !(status & RUN)) {
/* RUN is cleared */
status &= ~(ACTIVE|DEAD);
+ if ((status & FLUSH) && ch->flush) {
+ ch->flush(&ch->io);
+ status &= ~FLUSH;
+ }
}
DBDMA_DPRINTF(" status 0x%08x\n", status);
--
1.6.0.2
- [Qemu-ppc] [PATCH 47/66] target-ppc: Register all types for TARGET_PPCEMB, (continued)
- [Qemu-ppc] [PATCH 47/66] target-ppc: Register all types for TARGET_PPCEMB, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 41/66] target-ppc: Extract 970 aliases, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 35/66] target-ppc: Extract MPC82xx aliases to *_HiP4, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 54/66] target-ppc: Change "POWER7" CPU alias, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 59/66] target-ppc: Fix PPC_DUMP_SPR_ACCESS build, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 43/66] target-ppc: Get model name from type name, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 28/66] target-ppc: Extract MPC85xx aliases, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 37/66] target-ppc: Extract MPC52xx alias, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 36/66] target-ppc: Extract MPC82xx_HiP{3, 4} aliases, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 34/66] target-ppc: Extract MPC8247/MPC8248/MPC8270-80 aliases, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 61/66] PPC: xnu kernel expects FLUSH to be cleared on STOP,
Alexander Graf <=
- [Qemu-ppc] [PATCH 53/66] target-ppc: Fix remaining microcontroller typos among models, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 55/66] pseries: Implement h_read hcall, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 44/66] target-ppc: Convert CPU definitions, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 63/66] target-ppc: List alias names alongside CPU models, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 56/66] Save memory allocation in the elf loader, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 60/66] PPC: Fix dma interrupt, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 51/66] target-ppc: Update Coding Style for CPU models, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 64/66] target-ppc: Report CPU aliases for QMP, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 58/66] target-ppc: Synchronize FPU state with KVM, Alexander Graf, 2013/03/08
- [Qemu-ppc] [PATCH 62/66] target-ppc: Make host CPU a subclass of the host's CPU model, Alexander Graf, 2013/03/08