patch-2.4.13 linux/include/asm-arm/arch-sa1100/uncompress.h

Next file: linux/include/asm-arm/atomic.h
Previous file: linux/include/asm-arm/arch-sa1100/pangolin.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.12/linux/include/asm-arm/arch-sa1100/uncompress.h linux/include/asm-arm/arch-sa1100/uncompress.h
@@ -3,23 +3,16 @@
  *
  * (C) 1999 Nicolas Pitre <nico@cam.org>
  *
- * Reorganised to use machine_is_*() macros.
+ * Reorganised to be machine independent.
  */
 
 #include "hardware.h"
 
-#include <asm/mach-types.h>
-
-/* Assabet's Status Control "Register" */
-unsigned long SCR_value;
-
-/* sa1100_setup() will perform any special initialization for UART, etc. */
-extern void sa1100_setup( int arch_id );
-#define arch_decomp_setup()	sa1100_setup(arch_id)
-
 /*
  * The following code assumes the serial port has already been
- * initialized by the bootloader or such...
+ * initialized by the bootloader.  We search for the first enabled
+ * port in the most probable order.  If you didn't setup a port in
+ * your bootloader then nothing will appear (which might be desired).
  */
 
 #define UART(x)		(*(volatile unsigned long *)(serial_port + (x)))
@@ -28,22 +21,15 @@
 {
 	unsigned long serial_port;
 
-	if (machine_is_assabet()) {
-		if( machine_has_neponset() )
-			serial_port = _Ser3UTCR0;
-		else
-			serial_port = _Ser1UTCR0;
-	} else if (machine_is_brutus()||machine_is_nanoengine() ||
-		   machine_is_pangolin() || machine_is_freebird() ||
-		   machine_is_pfs168() || machine_is_flexanet())
-		serial_port = _Ser1UTCR0;
-	else if (machine_is_empeg() || machine_is_bitsy() ||
-		 machine_is_victor() || machine_is_lart() ||
-		 machine_is_sherman() || machine_is_yopy() ||
-		 machine_is_huw_webpanel() || machine_is_itsy() )
+	do {
 		serial_port = _Ser3UTCR0;
-	else
+		if (UART(UTCR3) & UTCR3_TXE) break;
+		serial_port = _Ser1UTCR0;
+		if (UART(UTCR3) & UTCR3_TXE) break;
+		serial_port = _Ser2UTCR0;
+		if (UART(UTCR3) & UTCR3_TXE) break;
 		return;
+	} while (0);
 
 	for (; *s; s++) {
 		/* wait for space in the UART's transmiter */
@@ -63,4 +49,5 @@
 /*
  * Nothing to do for these
  */
+#define arch_decomp_setup()
 #define arch_decomp_wdog()

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