diff options
author | jhay <jhay@FreeBSD.org> | 2007-03-14 19:03:07 +0000 |
---|---|---|
committer | jhay <jhay@FreeBSD.org> | 2007-03-14 19:03:07 +0000 |
commit | 04128426cae658d1413688b44fa26504a92a70cd (patch) | |
tree | be645b16b914b96bcb6ac429424855771dc8b6e7 | |
parent | 1efdd79a2b1e99372ea3a090422c202ecb03afb9 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/arm/xscale/ixp425/ixp425.c | 7 | ||||
-rw-r--r-- | sys/arm/xscale/ixp425/ixp425reg.h | 17 |
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) |