summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjhay <jhay@FreeBSD.org>2007-03-14 19:03:07 +0000
committerjhay <jhay@FreeBSD.org>2007-03-14 19:03:07 +0000
commit04128426cae658d1413688b44fa26504a92a70cd (patch)
treebe645b16b914b96bcb6ac429424855771dc8b6e7 /sys
parent1efdd79a2b1e99372ea3a090422c202ecb03afb9 (diff)
downloadFreeBSD-src-04128426cae658d1413688b44fa26504a92a70cd.zip
FreeBSD-src-04128426cae658d1413688b44fa26504a92a70cd.tar.gz
Map the second CS of the compact flash too. This allow us access to
the alternate status and the control registers. Remove the local version of ata_reset. Add support for the ADI Pronghorn Metro boards. They use CS3 and CS4 instead of Avila's CS1 and CS2.
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/xscale/ixp425/ixp425.c7
-rw-r--r--sys/arm/xscale/ixp425/ixp425reg.h17
2 files changed, 20 insertions, 4 deletions
diff --git a/sys/arm/xscale/ixp425/ixp425.c b/sys/arm/xscale/ixp425/ixp425.c
index 78155bc..96d33a0 100644
--- a/sys/arm/xscale/ixp425/ixp425.c
+++ b/sys/arm/xscale/ixp425/ixp425.c
@@ -86,6 +86,13 @@ static struct {
/* Gateworks Avila IDE/CF is mapped here */
{ IXP425_EXP_BUS_CS1_HWBASE, IXP425_EXP_BUS_SIZE,
IXP425_EXP_BUS_CS1_VBASE },
+ { IXP425_EXP_BUS_CS2_HWBASE, IXP425_EXP_BUS_SIZE,
+ IXP425_EXP_BUS_CS2_VBASE },
+ /* ADI Pronghorn Metro IDE/CF is mapped here */
+ { IXP425_EXP_BUS_CS3_HWBASE, IXP425_EXP_BUS_SIZE,
+ IXP425_EXP_BUS_CS3_VBASE },
+ { IXP425_EXP_BUS_CS4_HWBASE, IXP425_EXP_BUS_SIZE,
+ IXP425_EXP_BUS_CS4_VBASE },
};
static int
diff --git a/sys/arm/xscale/ixp425/ixp425reg.h b/sys/arm/xscale/ixp425/ixp425reg.h
index 55e1fd9..c7b7206 100644
--- a/sys/arm/xscale/ixp425/ixp425reg.h
+++ b/sys/arm/xscale/ixp425/ixp425reg.h
@@ -566,15 +566,24 @@
#define IXP425_EXP_BUS_CSx_HWBASE(i) \
(IXP425_EXP_BUS_HWBASE + (i)*IXP425_EXP_BUS_SIZE)
+#define IXP425_EXP_BUS_CSx_VBASE(i) \
+ (IXP425_MAC_B_VBASE + (i)*IXP425_MAC_B_SIZE)
+
#define IXP425_EXP_BUS_CS1_HWBASE IXP425_EXP_BUS_CSx_HWBASE(1)
-#define IXP425_EXP_BUS_CS1_VBASE (IXP425_MAC_B_VBASE + IXP425_MAC_B_SIZE)
+#define IXP425_EXP_BUS_CS1_VBASE IXP425_EXP_BUS_CSx_VBASE(1)
#define IXP425_EXP_BUS_CS1_SIZE 0x1000
-
-/* NB: not mapped (yet) */
-#define IXP425_EXP_BUS_CS0_HWBASE IXP425_EXP_BUS_CSx_HWBASE(0)
#define IXP425_EXP_BUS_CS2_HWBASE IXP425_EXP_BUS_CSx_HWBASE(2)
+#define IXP425_EXP_BUS_CS2_VBASE IXP425_EXP_BUS_CSx_VBASE(2)
+#define IXP425_EXP_BUS_CS2_SIZE 0x1000
#define IXP425_EXP_BUS_CS3_HWBASE IXP425_EXP_BUS_CSx_HWBASE(3)
+#define IXP425_EXP_BUS_CS3_VBASE IXP425_EXP_BUS_CSx_VBASE(3)
+#define IXP425_EXP_BUS_CS3_SIZE 0x1000
#define IXP425_EXP_BUS_CS4_HWBASE IXP425_EXP_BUS_CSx_HWBASE(4)
+#define IXP425_EXP_BUS_CS4_VBASE IXP425_EXP_BUS_CSx_VBASE(4)
+#define IXP425_EXP_BUS_CS4_SIZE 0x1000
+
+/* NB: not mapped (yet) */
+#define IXP425_EXP_BUS_CS0_HWBASE IXP425_EXP_BUS_CSx_HWBASE(0)
#define IXP425_EXP_BUS_CS5_HWBASE IXP425_EXP_BUS_CSx_HWBASE(5)
#define IXP425_EXP_BUS_CS6_HWBASE IXP425_EXP_BUS_CSx_HWBASE(6)
#define IXP425_EXP_BUS_CS7_HWBASE IXP425_EXP_BUS_CSx_HWBASE(7)
OpenPOWER on IntegriCloud