summaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/mm-sa1100.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/mm-sa1100.c')
-rw-r--r--arch/arm/mm/mm-sa1100.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/arch/arm/mm/mm-sa1100.c b/arch/arm/mm/mm-sa1100.c
index c1ecf3fb1..aaf28f880 100644
--- a/arch/arm/mm/mm-sa1100.c
+++ b/arch/arm/mm/mm-sa1100.c
@@ -23,6 +23,7 @@
#include <asm/hardware.h>
#include <asm/pgtable.h>
#include <asm/page.h>
+#include <asm/mach-types.h>
#include "map.h"
@@ -53,6 +54,15 @@ static struct map_desc assabet_io_desc[] __initdata = {
#endif
};
+static struct map_desc nanoengine_io_desc[] __initdata = {
+#ifdef CONFIG_SA1100_NANOENGINE
+ { 0xd0000000, 0x00000000, 0x02000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
+ { 0xd4000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* System Registers */
+ { 0xdc000000, 0x18A00000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Internal PCI Config Space */
+ SA1100_STD_IO_MAPPING
+#endif
+};
+
static struct map_desc bitsy_io_desc[] __initdata = {
#ifdef CONFIG_SA1100_BITSY
{ 0xd0000000, 0x00000000, 0x02000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
@@ -61,6 +71,14 @@ static struct map_desc bitsy_io_desc[] __initdata = {
#endif
};
+static struct map_desc cerf_io_desc[] __initdata = {
+#ifdef CONFIG_SA1100_CERF
+ { 0xd8000000, 0x08000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Crystal Chip */
+ { 0xd0000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
+ SA1100_STD_IO_MAPPING
+#endif
+};
+
static struct map_desc empeg_io_desc[] __initdata = {
#ifdef CONFIG_SA1100_EMPEG
{ EMPEG_FLASHBASE, 0x00000000, 0x00200000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash */
@@ -77,6 +95,14 @@ static struct map_desc graphicsclient_io_desc[] __initdata = {
#endif
};
+static struct map_desc lart_io_desc[] __initdata = {
+#ifdef CONFIG_SA1100_LART
+ { 0xd0000000, 0x00000000, 0x00400000, DOMAIN_IO, 1, 1, 0, 0 }, /* main flash memory */
+ { 0xd8000000, 0x08000000, 0x00400000, DOMAIN_IO, 1, 1, 0, 0 }, /* main flash, alternative location */
+ SA1100_STD_IO_MAPPING
+#endif
+};
+
static struct map_desc thinclient_io_desc[] __initdata = {
#ifdef CONFIG_SA1100_THINCLIENT
#if 0
@@ -104,6 +130,14 @@ static struct map_desc victor_io_desc[] __initdata = {
#endif
};
+static struct map_desc xp860_io_desc[] __initdata = {
+#ifdef CONFIG_SA1100_XP860
+ { 0xd8000000, 0x40000000, 0x00800000, DOMAIN_IO, 1, 1, 0, 0 }, /* SA-1111 */
+ { 0xda000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* SCSI */
+ { 0xdc000000, 0x18000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* LAN */
+ SA1100_STD_IO_MAPPING
+#endif
+};
static struct map_desc default_io_desc[] __initdata = {
SA1100_STD_IO_MAPPING
@@ -122,15 +156,24 @@ void __init select_sa1100_io_desc(void)
if( machine_is_assabet() ) {
memcpy( io_desc, assabet_io_desc, sizeof(assabet_io_desc) );
io_desc_size = SIZE(assabet_io_desc);
+ } else if( machine_is_nanoengine() ) {
+ memcpy( io_desc, nanoengine_io_desc, sizeof(nanoengine_io_desc) );
+ io_desc_size = SIZE(nanoengine_io_desc);
} else if( machine_is_bitsy() ) {
memcpy( io_desc, bitsy_io_desc, sizeof(bitsy_io_desc) );
io_desc_size = SIZE(bitsy_io_desc);
+ } else if( machine_is_cerf() ) {
+ memcpy( io_desc, cerf_io_desc, sizeof(cerf_io_desc) );
+ io_desc_size = SIZE(cerf_io_desc);
} else if( machine_is_empeg() ) {
memcpy( io_desc, empeg_io_desc, sizeof(empeg_io_desc) );
io_desc_size = SIZE(empeg_io_desc);
} else if( machine_is_graphicsclient() ) {
memcpy( io_desc, graphicsclient_io_desc, sizeof(graphicsclient_io_desc) );
io_desc_size = SIZE(graphicsclient_io_desc);
+ } else if( machine_is_lart() ) {
+ memcpy( io_desc, lart_io_desc, sizeof(lart_io_desc) );
+ io_desc_size = SIZE(lart_io_desc);
} else if( machine_is_thinclient() ) {
memcpy( io_desc, thinclient_io_desc, sizeof(thinclient_io_desc) );
io_desc_size = SIZE(thinclient_io_desc);
@@ -140,6 +183,9 @@ void __init select_sa1100_io_desc(void)
} else if( machine_is_victor() ) {
memcpy( io_desc, victor_io_desc, sizeof(victor_io_desc) );
io_desc_size = SIZE(victor_io_desc);
+ } else if( machine_is_xp860() ) {
+ memcpy( io_desc, xp860_io_desc, sizeof(xp860_io_desc) );
+ io_desc_size = SIZE(xp860_io_desc);
} else {
memcpy( io_desc, default_io_desc, sizeof(default_io_desc) );
io_desc_size = SIZE(default_io_desc);