svn commit: r188024 - projects/cambria/sys/arm/xscale/ixp425
Sam Leffler
sam at FreeBSD.org
Mon Feb 2 12:42:31 PST 2009
Author: sam
Date: Mon Feb 2 20:42:30 2009
New Revision: 188024
URL: http://svn.freebsd.org/changeset/base/188024
Log:
map 16M of CS0 so we have access to the flash; need to do this
dynamically but this works for now and the consensus is it's
ok as a temporary solution
Modified:
projects/cambria/sys/arm/xscale/ixp425/avila_machdep.c
projects/cambria/sys/arm/xscale/ixp425/ixp425reg.h
Modified: projects/cambria/sys/arm/xscale/ixp425/avila_machdep.c
==============================================================================
--- projects/cambria/sys/arm/xscale/ixp425/avila_machdep.c Mon Feb 2 20:36:20 2009 (r188023)
+++ projects/cambria/sys/arm/xscale/ixp425/avila_machdep.c Mon Feb 2 20:42:30 2009 (r188024)
@@ -154,6 +154,10 @@ static const struct pmap_devmap ixp425_d
{ IXP425_EXP_VBASE, IXP425_EXP_HWBASE, IXP425_EXP_SIZE,
VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, },
+ /* CFI Flash on the Expansion Bus */
+ { IXP425_EXP_BUS_CS0_VBASE, IXP425_EXP_BUS_CS0_HWBASE,
+ IXP425_EXP_BUS_CS0_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, },
+
/* IXP425 PCI Configuration */
{ IXP425_PCI_VBASE, IXP425_PCI_HWBASE, IXP425_PCI_SIZE,
VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, },
Modified: projects/cambria/sys/arm/xscale/ixp425/ixp425reg.h
==============================================================================
--- projects/cambria/sys/arm/xscale/ixp425/ixp425reg.h Mon Feb 2 20:36:20 2009 (r188023)
+++ projects/cambria/sys/arm/xscale/ixp425/ixp425reg.h Mon Feb 2 20:42:30 2009 (r188024)
@@ -76,6 +76,10 @@
* Global cache clean area
* FF00 0000 ---------------------------
*
+ * FE00 0000 ---------------------------
+ * 16M CFI Flash (on ext bus)
+ * FD00 0000 ---------------------------
+ *
* FC00 0000 ---------------------------
* PCI Data (memory space)
* F800 0000 --------------------------- IXP425_PCI_MEM_VBASE
@@ -348,6 +352,10 @@
#define IXP425_EXP_SETUP_T(x) (((x) & 3) << IXP425_EXP_SETUP_SHIFT)
#define IXP425_EXP_ADDR_T(x) (((x) & 3) << IXP425_EXP_ADDR_SHIFT)
+/* EXP_TIMING_* bits */
+#define EXP_TIMING_MASK 0x3fff0000
+#define EXP_TIMING_RSVD 0x40000184 /* bits to preserve at boot */
+
/* EXP_CSn bits */
#define EXP_BYTE_EN 0x00000001 /* bus uses only 8-bit data */
#define EXP_WR_EN 0x00000002 /* ena writes to CS region */
@@ -649,6 +657,9 @@
#define IXP425_EXP_BUS_CSx_VBASE(i) \
(IXP425_MAC_B_VBASE + (i)*IXP425_MAC_B_SIZE)
+#define IXP425_EXP_BUS_CS0_HWBASE IXP425_EXP_BUS_CSx_HWBASE(0)
+#define IXP425_EXP_BUS_CS0_VBASE 0xFD000000UL
+#define IXP425_EXP_BUS_CS0_SIZE 0x01000000 /* NB: 16M */
#define IXP425_EXP_BUS_CS1_HWBASE IXP425_EXP_BUS_CSx_HWBASE(1)
#define IXP425_EXP_BUS_CS1_VBASE IXP425_EXP_BUS_CSx_VBASE(1)
#define IXP425_EXP_BUS_CS1_SIZE 0x1000
@@ -663,7 +674,6 @@
#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)
More information about the svn-src-projects
mailing list