dslinux/linux-2.6.x/arch/arm/mach-nds head.S

amadeus dslinux_amadeus at user.in-berlin.de
Sun Aug 20 14:49:21 CEST 2006


Update of /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/mach-nds
In directory antilope:/tmp/cvs-serv2124/linux-2.6.x/arch/arm/mach-nds

Modified Files:
	head.S 
Log Message:
Add untested support for supercard CF. Enable RAM on RAM-based cards.

Index: head.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/mach-nds/head.S,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- head.S	3 Jul 2006 20:23:29 -0000	1.16
+++ head.S	20 Aug 2006 12:49:19 -0000	1.17
@@ -247,8 +247,8 @@
 	@ Region 7 - GBA SLOT ROM for Program+Data, overriding Region 6
 	@-------------------------------------------------------------------------
 	ldr	r0,=( PAGE_32M | 0x08000000 | 1)
-#ifdef CONFIG_MMC_SCSD
-	@ Supercard SD uses upper 16M for SD card I/O
+#if defined(CONFIG_MMC_SCSD) || defined (CONFIG_IDE_NDS_SUPERCARD)
+	@ Supercard uses upper 16M for card I/O
 	ldr	r0,=( PAGE_16M | 0x08000000 | 1)
 #endif
 	mcr	p15, 0, r0, c6, c7, 0
@@ -348,6 +348,9 @@
 	strcc	r4, [r5],#4
 	bcc	1b
 
+	/* Enable RAM on RAM-based cards */
+	bl	unlock_ram
+
 	/*  Pretend we know what our processor code is (for arm_id)   */
 
 	ldr	r2, =0x41009460
@@ -358,6 +361,24 @@
 	mov fp, #0
 	b	start_kernel
 
+	/* Enable RAM on RAM-based cards.
+	 * This has to happen early, because the kernel tries to
+         * use this RAM. */
+unlock_ram:
+#ifdef CONFIG_NDS_ROM8BIT
+#if defined(CONFIG_MMC_SCSD) || defined (CONFIG_IDE_NDS_SUPERCARD)
+	ldr	r0, =0x09FFFFFE
+	ldr	r1, =0xa55a
+	ldr	r2, =0x0007
+	strh	r1, [r0]
+	strh	r1, [r0]
+	strh	r2, [r0]
+	strh	r2, [r0]
+#endif
+#endif
+	mov	pc, lr	
+
+
 	.type	__LC0_init_data, %object
 __LC0_init_data:
 	.long	__bss_start			@ r5




More information about the dslinux-commit mailing list