From 04128426cae658d1413688b44fa26504a92a70cd Mon Sep 17 00:00:00 2001 From: jhay Date: Wed, 14 Mar 2007 19:03:07 +0000 Subject: 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. --- sys/arm/xscale/ixp425/ixp425.c | 7 +++++++ sys/arm/xscale/ixp425/ixp425reg.h | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'sys') 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) -- cgit v1.1