Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/xscale Add i80321 DMA controller registers.
details: https://anonhg.NetBSD.org/src/rev/51fac08b1112
branches: trunk
changeset: 525715:51fac08b1112
user: thorpej <thorpej%NetBSD.org@localhost>
date: Tue Apr 16 04:50:14 2002 +0000
description:
Add i80321 DMA controller registers.
diffstat:
sys/arch/arm/xscale/i80321reg.h | 54 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 53 insertions(+), 1 deletions(-)
diffs (73 lines):
diff -r 92346091ac25 -r 51fac08b1112 sys/arch/arm/xscale/i80321reg.h
--- a/sys/arch/arm/xscale/i80321reg.h Tue Apr 16 04:28:23 2002 +0000
+++ b/sys/arch/arm/xscale/i80321reg.h Tue Apr 16 04:50:14 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: i80321reg.h,v 1.1 2002/03/27 21:45:48 thorpej Exp $ */
+/* $NetBSD: i80321reg.h,v 1.2 2002/04/16 04:50:14 thorpej Exp $ */
/*
* Copyright (c) 2002 Wasabi Systems, Inc.
@@ -76,6 +76,9 @@
#define VERDE_ATU_BASE 0x0100
#define VERDE_ATU_SIZE 0x0100
+#define VERDE_DMA_BASE 0x0400
+#define VERDE_DMA_SIZE 0x0100
+
#define VERDE_MCU_BASE 0x0500
#define VERDE_MCU_SIZE 0x0100
@@ -337,4 +340,53 @@
#define ICU_INT_HWMASK (0xffffffff & ~(ICU_INT_bit26|ICU_INT_bit22| \
ICU_INT_bit5|ICU_INT_bit4))
+/*
+ * DMA Controller
+ */
+
+struct dma_chain_desc {
+ uint32_t dcd_nda; /* next descriptor address */
+ uint32_t dcd_pad; /* PCI address (lower) */
+ uint32_t dcd_puad; /* PCI address (upper) */
+ uint32_t dcd_lad; /* local address */
+ uint32_t dcd_bc; /* byte count */
+ uint32_t dcd_dc; /* descriptor control */
+} __attribute__((__packed__));
+
+#define DMA_CHAN1_OFF 0x40 /* offset to channel 1 regs */
+
+#define DMA_CCR 0x00 /* channel control register */
+#define DMA_CSR 0x04 /* channel status register */
+#define DMA_DAR 0x0c /* descriptor address */
+#define DMA_DNAR 0x10 /* next descriptor address */
+#define DMA_PADR 0x14 /* PCI address (low) */
+#define DMA_PUADR 0x18 /* PCI address (high) */
+#define DMA_LADR 0x1c /* local address */
+#define DMA_BCR 0x20 /* byte count */
+#define DMA_DCR 0x24 /* descriptor control */
+
+#define DMA_CCR_CE (1U << 0) /* channel enable */
+#define DMA_CCR_CR (1U << 1) /* chain resume */
+
+#define DMA_SSR_STE (1U << 1) /* PCI-X split transaction error */
+#define DMA_SSR_TAF (1U << 2) /* PCI target abort flag */
+#define DMA_SSR_MAF (1U << 3) /* PCI master abort flag */
+#define DMA_SSR_IBMAF (1U << 5) /* Internal bus master abort flag */
+#define DMA_SSR_ECIF (1U << 8) /* end-of-chain interrupt */
+#define DMA_SSR_ETIF (1U << 9) /* end-of-transfer interrupt */
+#define DMA_SSR_CAF (1U << 10) /* channel active flag */
+
+#define DMA_BCR_MASK 0x00ffffff /* 24-bit count */
+
+#define DMA_DCR_TTYPE 0x0000000f /* PCI transaction type */
+#define DMA_DCR_IE (1U << 4) /* interrupt enable */
+#define DMA_DCR_DACE (1U << 5) /* dual address cycle enable */
+#define DMA_DCR_MMTE (1U << 6) /* memory->memory transfer enable */
+
+#define DMA_DCR_TTYPE_MR 0x06 /* Memory Read */
+#define DMA_DCR_TTYPE_MW 0x07 /* Memory Write */
+#define DMA_DCR_TTYPE_MRM 0x0c /* Memory Read Multiple */
+#define DMA_DCR_TTYPE_MRL 0x0e /* Memory Read Line */
+#define DMA_DCR_TTYPE_MW2 0x0f /* Memory Write */
+
#endif /* _ARM_XSCALE_I80321REG_H_ */
Home |
Main Index |
Thread Index |
Old Index