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 Application Accelerator Unit registers.
details: https://anonhg.NetBSD.org/src/rev/b35ebe59f428
branches: trunk
changeset: 525734:b35ebe59f428
user: thorpej <thorpej%NetBSD.org@localhost>
date: Tue Apr 16 17:36:06 2002 +0000
description:
Add Application Accelerator Unit registers.
diffstat:
sys/arch/arm/xscale/i80321reg.h | 84 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 83 insertions(+), 1 deletions(-)
diffs (103 lines):
diff -r 003297eabae5 -r b35ebe59f428 sys/arch/arm/xscale/i80321reg.h
--- a/sys/arch/arm/xscale/i80321reg.h Tue Apr 16 17:33:56 2002 +0000
+++ b/sys/arch/arm/xscale/i80321reg.h Tue Apr 16 17:36:06 2002 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: i80321reg.h,v 1.2 2002/04/16 04:50:14 thorpej Exp $ */
+/* $NetBSD: i80321reg.h,v 1.3 2002/04/16 17:36:06 thorpej Exp $ */
/*
* Copyright (c) 2002 Wasabi Systems, Inc.
@@ -82,6 +82,9 @@
#define VERDE_MCU_BASE 0x0500
#define VERDE_MCU_SIZE 0x0100
+#define VERDE_AAU_BASE 0x0800
+#define VERDE_AAU_SIZE 0x0100
+
/*
* Address Translation Unit
*/
@@ -389,4 +392,83 @@
#define DMA_DCR_TTYPE_MRL 0x0e /* Memory Read Line */
#define DMA_DCR_TTYPE_MW2 0x0f /* Memory Write */
+/*
+ * Application Accelerator Unit
+ */
+
+struct aau_chain_princ {
+ uint32_t acd_nda; /* next descriptor address */
+ uint32_t acd_sar[4]; /* source address 0..3 */
+ uint32_t acd_dar; /* destination address */
+ uint32_t acd_bc; /* byte count */
+ uint32_t acd_dc; /* descriptor control */
+} __attribute__((__packed__));
+
+struct aau_chain_mini {
+ uint32_t acd_sar[4]; /* source address 4..7 */
+} __attribute__((__packed__));
+
+struct aau_chain_ext {
+ uint32_t acd_edc; /* extended descriptor control */
+ uint32_t acd_sar[8]; /* source address n..n+7 */
+} __attribute__((__packed__));
+
+struct aau_chain_desc8 {
+ struct aau_chain_princ acd8_princ; /* 0..3 */
+ struct aau_chain_mini acd8_mini; /* 4..7 */
+} __attribute__((__packed__));
+
+struct aau_chain_desc16 {
+ struct aau_chain_princ acd16_princ; /* 0..3 */
+ struct aau_chain_mini acd16_mini; /* 4..7 */
+ struct aau_chain_ext acd16_ext0; /* 8..15 */
+} __attribute__((__packed__));
+
+struct aau_chain_desc32 {
+ struct aau_chain_princ acd32_princ; /* 0..3 */
+ struct aau_chain_mini acd32_mini; /* 4..7 */
+ struct aau_chain_ext acd32_ext0; /* 8..15 */
+ struct aau_chain_ext acd32_ext1; /* 16..23 */
+ struct aau_chain_ext acd32_ext2; /* 24..31 */
+} __attribute__((__packed__));
+
+#define AAU_ACR 0x00 /* accelerator control */
+#define AAU_ASR 0x04 /* accelerator status */
+#define AAU_ADAR 0x08 /* descriptor address */
+#define AAU_ANDAR 0x0c /* next descriptor address */
+#define AAU_DAR 0x20 /* destination address */
+#define AAU_ABCR 0x24 /* byte count */
+#define AAU_ADCR 0x28 /* descriptor control */
+#define AAU_EDCR0 0x3c /* extended descriptor control 0 */
+#define AAU_EDCR1 0x60 /* extended descriptor control 1 */
+#define AAU_EDCR2 0x84 /* extended descriptor control 2 */
+
+#define AAU_ACR_AAE (1U << 0) /* accelerator enable */
+#define AAU_ACR_CR (1U << 1) /* chain resume */
+#define AAU_ACR_512 (1U << 2) /* 512-byte buffer enable */
+
+#define AAU_ASR_MA (1U << 5) /* master abort */
+#define AAU_ASR_ECIF (1U << 8) /* end of chain interrupt */
+#define AAU_ASR_ETIF (1U << 9) /* end of transfer interrupt */
+#define AAU_ASR_AAF (1U << 10) /* acellerator active */
+
+#define AAU_ABCR_MASK 0x00ffffff /* 24-bit count */
+
+#define AAU_CMD_NULL 0 /* disregard this block */
+#define AAU_CMD_XOR 1 /* XOR */
+#define AAU_CMD_FILL 7 /* block fill */
+
+#define AAU_ADCR_IE (1U << 0) /* interrupt enable */
+#define AAU_ADCR_BxCMD(b, x) ((x) << (((b) * 3) + 1)) /* block 0..7 command */
+#define AAU_ADCR_SBCI_0 0 /* no supplemental blocks */
+#define AAU_ADCR_SBCI_4 (1U << 25) /* 4 supplemental blocks */
+#define AAU_ADCR_SBCI_12 (2U << 25) /* 12 supplemental blocks */
+#define AAU_ADCR_SBCI_28 (3U << 25) /* 28 supplemental blocks */
+#define AAU_ADCR_TC (1U << 28) /* transfer complete */
+#define AAU_ADCR_PBAD (1U << 29) /* computed parity bad */
+#define AAU_ADCR_PE (1U << 30) /* parity computation enable */
+#define AAU_ADCR_DWE (1U << 31) /* destination write enable */
+
+#define AAU_EDCR_BxCMD(b, x) ((x) << (((b) * 3) + 1))
+
#endif /* _ARM_XSCALE_I80321REG_H_ */
Home |
Main Index |
Thread Index |
Old Index