patch-2.4.4 linux/arch/arm/mach-sa1100/arch.c

Next file: linux/arch/arm/mach-sa1100/dma-sa1100.c
Previous file: linux/arch/arm/mach-sa1100/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.3/linux/arch/arm/mach-sa1100/arch.c linux/arch/arm/mach-sa1100/arch.c
@@ -19,8 +19,23 @@
 
 #include <asm/mach/arch.h>
 
-extern void setup_initrd(unsigned int start, unsigned int size);
-extern void setup_ramdisk(int doload, int prompt, int start, unsigned int rd_sz);
+extern void genarch_init_irq(void);
+
+
+static void sa1100_power_off(void)
+{
+	mdelay(100);
+	cli();
+	/* disable internal oscillator, float CS lines */
+	PCFR = (PCFR_OPDE | PCFR_FP | PCFR_FS);
+	/* set lowest clock */
+	PPCR = 0;
+	/* set all GPIOs to input mode */
+	GPDR = 0;
+	/* enter sleep mode */
+	PMCR = PMCR_SF;
+}
+
 
 static void victor_power_off(void)
 {
@@ -47,10 +62,13 @@
 	mi->bank[__nr].start = (__start), \
 	mi->bank[__nr].size = (__size), \
 	mi->bank[__nr].node = (((unsigned)(__start) - PHYS_OFFSET) >> 27)
+
 static void __init
 fixup_sa1100(struct machine_desc *desc, struct param_struct *params,
 	     char **cmdline, struct meminfo *mi)
 {
+	pm_power_off = sa1100_power_off;
+
 	if (machine_is_assabet()) {
 		/* 
 		 * On Assabet, we must probe for the Neponset board *before*
@@ -82,6 +100,16 @@
 		setup_initrd( 0xc0800000, 3*1024*1024 );
 	}
 
+	else if (machine_is_pangolin()) {
+		SET_BANK( 0, 0xc0000000, 32*1024*1024 );
+		SET_BANK( 1, 0xc8000000, 32*1024*1024 );
+		mi->nr_banks = 2;
+		
+		ROOT_DEV = MKDEV(RAMDISK_MAJOR,0);
+		setup_ramdisk( 1, 0, 0, 16384 );
+		setup_initrd( 0xc0800000, 9*1024*1024 );
+	}
+
 	else if (machine_is_brutus()) {
 		SET_BANK( 0, 0xc0000000, 4*1024*1024 );
 		SET_BANK( 1, 0xc8000000, 4*1024*1024 );
@@ -133,7 +161,7 @@
 		setup_initrd(0xc0400000, 4*1024*1024);
 	}
 
-	else if (machine_is_thinclient() || machine_is_graphicsclient()) {
+	else if (machine_is_graphicsclient()) {
 		SET_BANK( 0, 0xc0000000, 16*1024*1024 );
 		mi->nr_banks = 1;
 
@@ -154,15 +182,6 @@
 		if( *((char*)0xc0000100) )
 			*cmdline = ((char *)0xc0000100);
 	}
-	else if (machine_is_tifon()) {
-		SET_BANK( 0, 0xc0000000, 16*1024*1024 );
-		SET_BANK( 1, 0xc8000000, 16*1024*1024 );
-		mi->nr_banks = 2;
-
-		ROOT_DEV = MKDEV(UNNAMED_MAJOR, 0);
-		setup_ramdisk(1, 0, 0, 4096);
-		setup_initrd( 0xd0000000 + 0x1100004, 0x140000 );
-	}
 
 	else if (machine_is_victor()) {
 		SET_BANK( 0, 0xc0000000, 4*1024*1024 );
@@ -180,6 +199,16 @@
 		pm_power_off = victor_power_off;
 	}
 
+        else if (machine_is_sherman()) {
+                SET_BANK( 0, 0xc0000000, 64*1024*1024 );
+                SET_BANK( 1, 0xc8000000, 64*1024*1024 );
+                mi->nr_banks = 2;
+
+                ROOT_DEV = MKDEV( 60, 2 );
+                setup_ramdisk( 1, 0, 0, 8192 );
+//              setup_initrd( 0xc0400000, 8*1024*1024 );
+}
+
 	else if (machine_is_xp860()) {
 		SET_BANK( 0, 0xc0000000, 32*1024*1024 );
 		mi->nr_banks = 1;
@@ -193,6 +222,15 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
+MACHINE_END
+#endif
+#ifdef CONFIG_SA1100_PANGOLIN
+MACHINE_START(PANGOLIN, "Dialogue-Pangolin")
+	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
+	FIXUP(fixup_sa1100)
+	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_BITSY
@@ -201,6 +239,7 @@
 	BOOT_PARAMS(0xc0000100)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_BRUTUS
@@ -208,6 +247,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_CERF
@@ -216,6 +256,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_EMPEG
@@ -223,6 +264,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_GRAPHICSCLIENT
@@ -230,14 +272,16 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_ITSY
 MACHINE_START(ITSY, "Compaq Itsy")
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
-	BOOT_PARAMS(0xc0000100
+	BOOT_PARAMS(0xc0000100)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_LART
@@ -245,6 +289,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_NANOENGINE
@@ -252,6 +297,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_PLEB
@@ -259,20 +305,7 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
-MACHINE_END
-#endif
-#ifdef CONFIG_SA1100_THINCLIENT
-MACHINE_START(THINCLIENT, "ADS ThinClient")
-	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
-	FIXUP(fixup_sa1100)
-	MAPIO(sa1100_map_io)
-MACHINE_END
-#endif
-#ifdef CONFIG_SA1100_TIFON
-MACHINE_START(TIFON, "Tifon")
-	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
-	FIXUP(fixup_sa1100)
-	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_VICTOR
@@ -280,6 +313,15 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
+MACHINE_END
+#endif
+#ifdef CONFIG_SA1100_SHERMAN
+MACHINE_START(SHERMAN, "Blazie Engineering Sherman")
+        BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
+        FIXUP(fixup_sa1100)
+        MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif
 #ifdef CONFIG_SA1100_XP860
@@ -287,5 +329,6 @@
 	BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000)
 	FIXUP(fixup_sa1100)
 	MAPIO(sa1100_map_io)
+	INITIRQ(genarch_init_irq)
 MACHINE_END
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)