r2884 - trunk/src/target/u-boot/patches

laforge at sita.openmoko.org laforge at sita.openmoko.org
Sat Sep 1 17:40:21 CEST 2007


Author: laforge
Date: 2007-09-01 17:40:12 +0200 (Sat, 01 Sep 2007)
New Revision: 2884

Added:
   trunk/src/target/u-boot/patches/uboot-s3c24xx_multi_serial.patch
Modified:
   trunk/src/target/u-boot/patches/series
   trunk/src/target/u-boot/patches/uboot-20061030-neo1973.patch
   trunk/src/target/u-boot/patches/uboot-gta02.patch
   trunk/src/target/u-boot/patches/uboot-mokoversion.patch
   trunk/src/target/u-boot/patches/uboot-s3c2440.patch
   trunk/src/target/u-boot/patches/uboot-s3c2442.patch
   trunk/src/target/u-boot/patches/uboot-serial_terminal.patch
Log:
split serial_terminal patch into
* independent multi-serial support (s3c24xx_multi_serial.patch)
* s3c2440 / s3c2442 related bits
* enable multi-serial for gta01 and gta02 config


Modified: trunk/src/target/u-boot/patches/series
===================================================================
--- trunk/src/target/u-boot/patches/series	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/series	2007-09-01 15:40:12 UTC (rev 2884)
@@ -12,6 +12,7 @@
 uboot-s3c2410-nand.patch
 uboot-cmd_s3c2410.patch
 uboot-s3c2410-mmc.patch
+uboot-s3c24xx_multi_serial.patch
 env_nand_oob.patch
 dynenv-harden.patch
 uboot-s3c2410_fb.patch

Modified: trunk/src/target/u-boot/patches/uboot-20061030-neo1973.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-20061030-neo1973.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-20061030-neo1973.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -2017,7 +2017,7 @@
 ===================================================================
 --- /dev/null
 +++ u-boot/include/configs/neo1973_gta01.h
-@@ -0,0 +1,253 @@
+@@ -0,0 +1,254 @@
 +/*
 + * (C) Copyright 2006 OpenMoko, Inc.
 + * Author: Harald Welte <laforge at openmoko.org>
@@ -2087,6 +2087,7 @@
 + * select serial console configuration
 + */
 +#define CONFIG_SERIAL1          1	/* we use SERIAL 1 on GTA01 */
++#define CONFIG_SERIAL_MULTI
 +
 +/* allow to overwrite serial and ethaddr */
 +#define CONFIG_ENV_OVERWRITE

Modified: trunk/src/target/u-boot/patches/uboot-gta02.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-gta02.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-gta02.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -560,7 +560,7 @@
 ===================================================================
 --- /dev/null
 +++ u-boot/include/configs/neo1973_gta02.h
-@@ -0,0 +1,276 @@
+@@ -0,0 +1,277 @@
 +/*
 + * (C) Copyright 2007 OpenMoko, Inc.
 + * Author: Harald Welte <laforge at openmoko.org>
@@ -625,6 +625,7 @@
 + * select serial console configuration
 + */
 +#define CONFIG_SERIAL3          1	/* we use SERIAL 1 on GTA01 */
++#define CONFIG_SERIAL_MULTI
 +
 +/* allow to overwrite serial and ethaddr */
 +#define CONFIG_ENV_OVERWRITE

Modified: trunk/src/target/u-boot/patches/uboot-mokoversion.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-mokoversion.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-mokoversion.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -1,7 +1,7 @@
 Index: u-boot/tools/setlocalversion
 ===================================================================
---- u-boot.orig/tools/setlocalversion	2007-03-26 14:42:58.000000000 +0200
-+++ u-boot/tools/setlocalversion	2007-03-26 14:46:47.000000000 +0200
+--- u-boot.orig/tools/setlocalversion
++++ u-boot/tools/setlocalversion
 @@ -20,3 +20,5 @@
  		printf '%s' -dirty
  	fi

Modified: trunk/src/target/u-boot/patches/uboot-s3c2440.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c2440.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-s3c2440.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -652,10 +652,10 @@
  #endif
  
  DECLARE_GLOBAL_DATA_PTR;
-@@ -180,4 +183,5 @@
- 	}
- }
+@@ -302,4 +305,5 @@
  
+ #endif /* CONFIG_SERIAL_MULTI */
+ 
 -#endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB) */
 +#endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
 +	  defined(CONFIG_S3C2440) || defined (CONFIG_TRAB) */
@@ -1454,3 +1454,38 @@
  			/* to reduce PLL lock time, adjust the LOCKTIME register */
  			clk_power->LOCKTIME = 0xFFFFFF;
  
+Index: u-boot/common/serial.c
+===================================================================
+--- u-boot.orig/common/serial.c
++++ u-boot/common/serial.c
+@@ -59,7 +59,7 @@
+ #else
+ 		return &serial0_device;
+ #endif
+-#elif defined(CONFIG_S3C2410)
++#elif defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
+ #if defined(CONFIG_SERIAL1)
+ 	return &s3c24xx_serial0_device;
+ #elif defined(CONFIG_SERIAL2)
+@@ -121,7 +121,7 @@
+ #endif
+ #endif /* CFG_NS16550_SERIAL */
+ 
+-#if defined(CONFIG_S3C2410)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
+ 	serial_register(&s3c24xx_serial0_device);
+ 	serial_register(&s3c24xx_serial1_device);
+ 	serial_register(&s3c24xx_serial2_device);
+Index: u-boot/include/serial.h
+===================================================================
+--- u-boot.orig/include/serial.h
++++ u-boot/include/serial.h
+@@ -35,7 +35,7 @@
+ 
+ #endif
+ 
+-#if defined(CONFIG_S3C2410)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
+ extern struct serial_device s3c24xx_serial0_device;
+ extern struct serial_device s3c24xx_serial1_device;
+ extern struct serial_device s3c24xx_serial2_device;

Modified: trunk/src/target/u-boot/patches/uboot-s3c2442.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c2442.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-s3c2442.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -285,8 +285,8 @@
  #include <s3c2440.h>
  #endif
  
-@@ -184,4 +185,5 @@
- }
+@@ -306,4 +307,5 @@
+ #endif /* CONFIG_SERIAL_MULTI */
  
  #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
 -	  defined(CONFIG_S3C2440) || defined (CONFIG_TRAB) */
@@ -628,3 +628,41 @@
  #include <s3c2440.h>
  #endif
  
+Index: u-boot/common/serial.c
+===================================================================
+--- u-boot.orig/common/serial.c
++++ u-boot/common/serial.c
+@@ -59,7 +59,8 @@
+ #else
+ 		return &serial0_device;
+ #endif
+-#elif defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
++#elif defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || \
++      defined(CONFIG_S3C2442)
+ #if defined(CONFIG_SERIAL1)
+ 	return &s3c24xx_serial0_device;
+ #elif defined(CONFIG_SERIAL2)
+@@ -121,7 +122,8 @@
+ #endif
+ #endif /* CFG_NS16550_SERIAL */
+ 
+-#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || \
++    defined(CONFIG_S3C2442)
+ 	serial_register(&s3c24xx_serial0_device);
+ 	serial_register(&s3c24xx_serial1_device);
+ 	serial_register(&s3c24xx_serial2_device);
+Index: u-boot/include/serial.h
+===================================================================
+--- u-boot.orig/include/serial.h
++++ u-boot/include/serial.h
+@@ -35,7 +35,8 @@
+ 
+ #endif
+ 
+-#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || \
++    defined(CONFIG_S3C2442)
+ extern struct serial_device s3c24xx_serial0_device;
+ extern struct serial_device s3c24xx_serial1_device;
+ extern struct serial_device s3c24xx_serial2_device;

Added: trunk/src/target/u-boot/patches/uboot-s3c24xx_multi_serial.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c24xx_multi_serial.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-s3c24xx_multi_serial.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -0,0 +1,307 @@
+Index: u-boot/common/serial.c
+===================================================================
+--- u-boot.orig/common/serial.c
++++ u-boot/common/serial.c
+@@ -59,6 +59,16 @@
+ #else
+ 		return &serial0_device;
+ #endif
++#elif defined(CONFIG_S3C2410)
++#if defined(CONFIG_SERIAL1)
++	return &s3c24xx_serial0_device;
++#elif defined(CONFIG_SERIAL2)
++	return &s3c24xx_serial1_device;
++#elif defined(CONFIG_SERIAL3)
++	return &s3c24xx_serial2_device;
++#else
++#error "CONFIG_SERIAL? missing."
++#endif
+ #else
+ #error No default console
+ #endif
+@@ -110,6 +120,13 @@
+ 	serial_register(&eserial4_device);
+ #endif
+ #endif /* CFG_NS16550_SERIAL */
++
++#if defined(CONFIG_S3C2410)
++	serial_register(&s3c24xx_serial0_device);
++	serial_register(&s3c24xx_serial1_device);
++	serial_register(&s3c24xx_serial2_device);
++#endif
++
+ 	serial_assign (default_serial_console ()->name);
+ }
+ 
+Index: u-boot/cpu/arm920t/s3c24x0/serial.c
+===================================================================
+--- u-boot.orig/cpu/arm920t/s3c24x0/serial.c
++++ u-boot/cpu/arm920t/s3c24x0/serial.c
+@@ -48,18 +48,74 @@
+ #error "Bad: you didn't configure serial ..."
+ #endif
+ 
+-void serial_setbrg (void)
++#if defined(CONFIG_SERIAL_MULTI)
++#include <serial.h>
++
++/* Multi serial device functions */
++#define DECLARE_S3C_SERIAL_FUNCTIONS(port) \
++    int  s3serial##port##_init (void) {\
++	return serial_init_dev(port);}\
++    void s3serial##port##_setbrg (void) {\
++	serial_setbrg_dev(port);}\
++    int  s3serial##port##_getc (void) {\
++	return serial_getc_dev(port);}\
++    int  s3serial##port##_tstc (void) {\
++	return serial_tstc_dev(port);}\
++    void s3serial##port##_putc (const char c) {\
++	serial_putc_dev(port, c);}\
++    void s3serial##port##_puts (const char *s) {\
++	serial_puts_dev(port, s);}
++
++#define INIT_S3C_SERIAL_STRUCTURE(port,name,bus) {\
++	name,\
++	bus,\
++	s3serial##port##_init,\
++	s3serial##port##_setbrg,\
++	s3serial##port##_getc,\
++	s3serial##port##_tstc,\
++	s3serial##port##_putc,\
++	s3serial##port##_puts, }
++
++#endif /* CONFIG_SERIAL_MULTI */
++
++void _serial_setbrg(const int dev_index)
+ {
+-	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
+-	int i;
++	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
+ 	unsigned int reg = 0;
++	int i;
+ 
+ 	/* value is calculated so : (int)(PCLK/16./baudrate) -1 */
+ 	reg = get_PCLK() / (16 * gd->baudrate) - 1;
+ 
++	uart->UBRDIV = reg;
++	for (i = 0; i < 100; i++);
++}
++#if defined(CONFIG_SERIAL_MULTI)
++static inline void
++serial_setbrg_dev(unsigned int dev_index)
++{
++	_serial_setbrg(dev_index);
++}
++#else
++void serial_setbrg(void)
++{
++	_serial_setbrg(UART_NR);
++}
++#endif
++
++
++/* Initialise the serial port. The settings are always 8 data bits, no parity,
++ * 1 stop bit, no start bits.
++ */
++static int serial_init_dev(const int dev_index)
++{
++	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
++	int i;
++
+ 	/* FIFO enable, Tx/Rx FIFO clear */
+ 	uart->UFCON = 0x07;
+ 	uart->UMCON = 0x0;
++
+ 	/* Normal,No parity,1 stop,8 bit */
+ 	uart->ULCON = 0x3;
+ 	/*
+@@ -67,40 +123,57 @@
+ 	 * normal,interrupt or polling
+ 	 */
+ 	uart->UCON = 0x245;
+-	uart->UBRDIV = reg;
+ 
+ #ifdef CONFIG_HWFLOW
+ 	uart->UMCON = 0x1; /* RTS up */
+ #endif
+-	for (i = 0; i < 100; i++);
++
++	/* FIXME: This is sooooooooooooooooooo ugly */
++#if defined(CONFIG_ARCH_GTA02_v1) || defined(CONFIG_ARCH_GTA02_v2)
++	/* we need auto hw flow control on the gsm and gps port */
++	if (dev_index == 0 || dev_index == 1)
++		uart->UMCON = 0x10;
++#endif
++	serial_setbrg_dev(dev_index);
++
++	return (0);
+ }
+ 
+-/*
+- * Initialise the serial port with the given baudrate. The settings
+- * are always 8 data bits, no parity, 1 stop bit, no start bits.
+- *
++#if !defined(CONFIG_SERIAL_MULTI)
++/* Initialise the serial port. The settings are always 8 data bits, no parity,
++ * 1 stop bit, no start bits.
+  */
+ int serial_init (void)
+ {
+-	serial_setbrg ();
+-
+-	return (0);
++	return _serial_init_dev(UART_NR);
+ }
++#endif
+ 
+ /*
+  * Read a single byte from the serial port. Returns 1 on success, 0
+  * otherwise. When the function is succesfull, the character read is
+  * written into its argument c.
+  */
+-int serial_getc (void)
++int _serial_getc (const int dev_index)
+ {
+-	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
++	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
+ 
+ 	/* wait for character to arrive */
+ 	while (!(uart->UTRSTAT & 0x1));
+ 
+ 	return uart->URXH & 0xff;
+ }
++#if defined(CONFIG_SERIAL_MULTI)
++static inline int serial_getc_dev(unsigned int dev_index)
++{
++	return _serial_getc(dev_index);
++}
++#else
++int serial_getc (void)
++{
++	return _serial_getc(UART_NR);
++}
++#endif
+ 
+ #ifdef CONFIG_HWFLOW
+ static int hwflow = 0; /* turned off by default */
+@@ -138,9 +211,9 @@
+ /*
+  * Output a single byte to the serial port.
+  */
+-void serial_putc (const char c)
++void _serial_putc (const char c, const int dev_index)
+ {
+-	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
++	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
+ #ifdef CONFIG_MODEM_SUPPORT
+ 	if (be_quiet)
+ 		return;
+@@ -161,23 +234,72 @@
+ 	if (c == '\n')
+ 		serial_putc ('\r');
+ }
++#if defined(CONFIG_SERIAL_MULTI)
++static inline void serial_putc_dev(unsigned int dev_index, const char c)
++{
++	_serial_putc(c, dev_index);
++}
++#else
++void serial_putc(const char c)
++{
++	_serial_putc(c, UART_NR);
++}
++#endif
++
+ 
+ /*
+  * Test whether a character is in the RX buffer
+  */
+-int serial_tstc (void)
++int _serial_tstc(const int dev_index)
+ {
+-	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
++	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
+ 
+ 	return uart->UTRSTAT & 0x1;
+ }
++#if defined(CONFIG_SERIAL_MULTI)
++static inline int
++serial_tstc_dev(unsigned int dev_index)
++{
++	return _serial_tstc(dev_index);
++}
++#else
++int serial_tstc(void)
++{
++	return _serial_tstc(UART_NR);
++}
++#endif
+ 
+-void
+-serial_puts (const char *s)
++void _serial_puts(const char *s, const int dev_index)
+ {
+ 	while (*s) {
+-		serial_putc (*s++);
++		_serial_putc (*s++, dev_index);
+ 	}
+ }
++#if defined(CONFIG_SERIAL_MULTI)
++static inline void
++serial_puts_dev(int dev_index, const char *s)
++{
++	_serial_puts(s, dev_index);
++}
++#else
++void
++serial_puts (const char *s)
++{
++	_serial_puts(s, UART_NR);
++}
++#endif
++
++#if defined(CONFIG_SERIAL_MULTI)
++DECLARE_S3C_SERIAL_FUNCTIONS(0);
++struct serial_device s3c24xx_serial0_device =
++	INIT_S3C_SERIAL_STRUCTURE(0, "s3ser0", "S3UART1");
++DECLARE_S3C_SERIAL_FUNCTIONS(1);
++struct serial_device s3c24xx_serial1_device =
++	INIT_S3C_SERIAL_STRUCTURE(1, "s3ser1", "S3UART2");
++DECLARE_S3C_SERIAL_FUNCTIONS(2);
++struct serial_device s3c24xx_serial2_device =
++	INIT_S3C_SERIAL_STRUCTURE(2, "s3ser2", "S3UART3");
++
++#endif /* CONFIG_SERIAL_MULTI */
+ 
+ #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) || defined (CONFIG_TRAB) */
+Index: u-boot/include/serial.h
+===================================================================
+--- u-boot.orig/include/serial.h
++++ u-boot/include/serial.h
+@@ -35,6 +35,11 @@
+ 
+ #endif
+ 
++#if defined(CONFIG_S3C2410)
++extern struct serial_device s3c24xx_serial0_device;
++extern struct serial_device s3c24xx_serial1_device;
++extern struct serial_device s3c24xx_serial2_device;
++#endif
+ 
+ extern void serial_initialize(void);
+ extern void serial_devices_init(void);
+Index: u-boot/lib_arm/board.c
+===================================================================
+--- u-boot.orig/lib_arm/board.c
++++ u-boot/lib_arm/board.c
+@@ -345,6 +345,10 @@
+ #endif
+ 	}
+ 
++#ifdef CONFIG_SERIAL_MULTI
++	serial_initialize();
++#endif
++
+ 	devices_init ();	/* get the devices list going. */
+ 
+ #ifdef CONFIG_CMC_PU2

Modified: trunk/src/target/u-boot/patches/uboot-serial_terminal.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-serial_terminal.patch	2007-09-01 11:35:46 UTC (rev 2883)
+++ trunk/src/target/u-boot/patches/uboot-serial_terminal.patch	2007-09-01 15:40:12 UTC (rev 2884)
@@ -1,251 +1,11 @@
 This patch adds a 'cu' like serial terminal command to u-boot
 using which you can access other serial ports from the system console.
 
-Index: u-boot/common/serial.c
-===================================================================
---- u-boot.orig/common/serial.c
-+++ u-boot/common/serial.c
-@@ -59,6 +59,16 @@
- #else
- 		return &serial0_device;
- #endif
-+#elif defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442)
-+#if defined(CONFIG_SERIAL1)
-+	return &s3c24xx_serial0_device;
-+#elif defined(CONFIG_SERIAL2)
-+	return &s3c24xx_serial1_device;
-+#elif defined(CONFIG_SERIAL3)
-+	return &s3c24xx_serial2_device;
-+#else
-+#error "CONFIG_SERIAL? missing."
-+#endif
- #else
- #error No default console
- #endif
-@@ -110,6 +120,13 @@
- 	serial_register(&eserial4_device);
- #endif
- #endif /* CFG_NS16550_SERIAL */
-+
-+#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442)
-+	serial_register(&s3c24xx_serial0_device);
-+	serial_register(&s3c24xx_serial1_device);
-+	serial_register(&s3c24xx_serial2_device);
-+#endif
-+
- 	serial_assign (default_serial_console ()->name);
- }
- 
-Index: u-boot/cpu/arm920t/s3c24x0/serial.c
-===================================================================
---- u-boot.orig/cpu/arm920t/s3c24x0/serial.c
-+++ u-boot/cpu/arm920t/s3c24x0/serial.c
-@@ -52,9 +52,40 @@
- #error "Bad: you didn't configure serial ..."
- #endif
- 
--void serial_setbrg (void)
-+#if defined(CONFIG_SERIAL_MULTI)
-+#include <serial.h>
-+
-+/* Multi serial device functions */
-+#define DECLARE_S3C_SERIAL_FUNCTIONS(port) \
-+    int  s3serial##port##_init (void) {\
-+	serial_setbrg_dev(port);\
-+	return(0);}\
-+    void s3serial##port##_setbrg (void) {\
-+	serial_setbrg_dev(port);}\
-+    int  s3serial##port##_getc (void) {\
-+	return serial_getc_dev(port);}\
-+    int  s3serial##port##_tstc (void) {\
-+	return serial_tstc_dev(port);}\
-+    void s3serial##port##_putc (const char c) {\
-+	serial_putc_dev(port, c);}\
-+    void s3serial##port##_puts (const char *s) {\
-+	serial_puts_dev(port, s);}
-+
-+#define INIT_S3C_SERIAL_STRUCTURE(port,name,bus) {\
-+	name,\
-+	bus,\
-+	s3serial##port##_init,\
-+	s3serial##port##_setbrg,\
-+	s3serial##port##_getc,\
-+	s3serial##port##_tstc,\
-+	s3serial##port##_putc,\
-+	s3serial##port##_puts, }
-+
-+#endif /* CONFIG_SERIAL_MULTI */
-+
-+void _serial_setbrg(const int dev_index)
- {
--	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
-+	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
- 	int i;
- 	unsigned int reg = 0;
- 
-@@ -78,7 +109,20 @@
- #endif
- 	for (i = 0; i < 100; i++);
- }
-+#if defined(CONFIG_SERIAL_MULTI)
-+static inline void
-+serial_setbrg_dev(unsigned int dev_index)
-+{
-+	_serial_setbrg(dev_index);
-+}
-+#else
-+void serial_setbrg(void)
-+{
-+	_serial_setbrg(UART_NR);
-+}
-+#endif
- 
-+#if !defined(CONFIG_SERIAL_MULTI)
- /*
-  * Initialise the serial port with the given baudrate. The settings
-  * are always 8 data bits, no parity, 1 stop bit, no start bits.
-@@ -90,21 +134,33 @@
- 
- 	return (0);
- }
-+#endif
- 
- /*
-  * Read a single byte from the serial port. Returns 1 on success, 0
-  * otherwise. When the function is succesfull, the character read is
-  * written into its argument c.
-  */
--int serial_getc (void)
-+int _serial_getc (const int dev_index)
- {
--	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
-+	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
- 
- 	/* wait for character to arrive */
- 	while (!(uart->UTRSTAT & 0x1));
- 
- 	return uart->URXH & 0xff;
- }
-+#if defined(CONFIG_SERIAL_MULTI)
-+static inline int serial_getc_dev(unsigned int dev_index)
-+{
-+	return _serial_getc(dev_index);
-+}
-+#else
-+int serial_getc (void)
-+{
-+	return _serial_getc(UART_NR);
-+}
-+#endif
- 
- #ifdef CONFIG_HWFLOW
- static int hwflow = 0; /* turned off by default */
-@@ -142,9 +198,9 @@
- /*
-  * Output a single byte to the serial port.
-  */
--void serial_putc (const char c)
-+void _serial_putc (const char c, const int dev_index)
- {
--	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
-+	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
- #ifdef CONFIG_MODEM_SUPPORT
- 	if (be_quiet)
- 		return;
-@@ -165,24 +221,73 @@
- 	if (c == '\n')
- 		serial_putc ('\r');
- }
-+#if defined(CONFIG_SERIAL_MULTI)
-+static inline void serial_putc_dev(unsigned int dev_index, const char c)
-+{
-+	_serial_putc(c, dev_index);
-+}
-+#else
-+void serial_putc(const char c)
-+{
-+	_serial_putc(c, UART_NR);
-+}
-+#endif
-+
- 
- /*
-  * Test whether a character is in the RX buffer
-  */
--int serial_tstc (void)
-+int _serial_tstc(const int dev_index)
- {
--	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(UART_NR);
-+	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(dev_index);
- 
- 	return uart->UTRSTAT & 0x1;
- }
-+#if defined(CONFIG_SERIAL_MULTI)
-+static inline int
-+serial_tstc_dev(unsigned int dev_index)
-+{
-+	return _serial_tstc(dev_index);
-+}
-+#else
-+int serial_tstc(void)
-+{
-+	return _serial_tstc(UART_NR);
-+}
-+#endif
- 
--void
--serial_puts (const char *s)
-+void _serial_puts(const char *s, const int dev_index)
- {
- 	while (*s) {
--		serial_putc (*s++);
-+		_serial_putc (*s++, dev_index);
- 	}
- }
-+#if defined(CONFIG_SERIAL_MULTI)
-+static inline void
-+serial_puts_dev(int dev_index, const char *s)
-+{
-+	_serial_puts(s, dev_index);
-+}
-+#else
-+void
-+serial_puts (const char *s)
-+{
-+	_serial_puts(s, UART_NR);
-+}
-+#endif
-+
-+#if defined(CONFIG_SERIAL_MULTI)
-+DECLARE_S3C_SERIAL_FUNCTIONS(0);
-+struct serial_device s3c24xx_serial0_device =
-+	INIT_S3C_SERIAL_STRUCTURE(0, "s3ser0", "S3UART1");
-+DECLARE_S3C_SERIAL_FUNCTIONS(1);
-+struct serial_device s3c24xx_serial1_device =
-+	INIT_S3C_SERIAL_STRUCTURE(1, "s3ser1", "S3UART2");
-+DECLARE_S3C_SERIAL_FUNCTIONS(2);
-+struct serial_device s3c24xx_serial2_device =
-+	INIT_S3C_SERIAL_STRUCTURE(2, "s3ser2", "S3UART3");
-+
-+#endif /* CONFIG_SERIAL_MULTI */
- 
- #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
- 	  defined(CONFIG_S3C2440) || defined (CONFIG_S3C2442) ||
 Index: u-boot/include/configs/neo1973_gta02.h
 ===================================================================
 --- u-boot.orig/include/configs/neo1973_gta02.h
 +++ u-boot/include/configs/neo1973_gta02.h
-@@ -61,7 +61,8 @@
- /*
-  * select serial console configuration
-  */
--#define CONFIG_SERIAL3          1	/* we use SERIAL 1 on GTA01 */
-+#define CONFIG_SERIAL3          1	/* we use SERIAL 3 on GTA02 */
-+#define CONFIG_SERIAL_MULTI	1
- 
- /* allow to overwrite serial and ethaddr */
- #define CONFIG_ENV_OVERWRITE
-@@ -104,6 +105,7 @@
+@@ -105,6 +105,7 @@
  #define CONFIG_CMD_FAT
  #define CONFIG_CMD_EXT2
  #define CONFIG_CMD_LICENSE
@@ -253,37 +13,6 @@
  
  #define CONFIG_BOOTDELAY	3
  #define CONFIG_BOOTARGS    	""
-Index: u-boot/include/serial.h
-===================================================================
---- u-boot.orig/include/serial.h
-+++ u-boot/include/serial.h
-@@ -35,6 +35,11 @@
- 
- #endif
- 
-+#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442)
-+extern struct serial_device s3c24xx_serial0_device;
-+extern struct serial_device s3c24xx_serial1_device;
-+extern struct serial_device s3c24xx_serial2_device;
-+#endif
- 
- extern void serial_initialize(void);
- extern void serial_devices_init(void);
-Index: u-boot/lib_arm/board.c
-===================================================================
---- u-boot.orig/lib_arm/board.c
-+++ u-boot/lib_arm/board.c
-@@ -345,6 +345,10 @@
- #endif
- 	}
- 
-+#ifdef CONFIG_SERIAL_MULTI
-+	serial_initialize();
-+#endif
-+
- 	devices_init ();	/* get the devices list going. */
- 
- #ifdef CONFIG_CMC_PU2
 Index: u-boot/common/Makefile
 ===================================================================
 --- u-boot.orig/common/Makefile
@@ -301,7 +30,7 @@
 ===================================================================
 --- /dev/null
 +++ u-boot/common/cmd_terminal.c
-@@ -0,0 +1,101 @@
+@@ -0,0 +1,102 @@
 +/*
 + * (C) Copyright 2007 OpenMoko, Inc.
 + * Written by Harald Welte <laforge at openmoko.org>
@@ -367,6 +96,7 @@
 +			if (last_tilde == 1) {
 +				if (c == '.') {
 +					putc(c);
++					putc('\n');
 +					break;
 +				} else {
 +					last_tilde = 0;
@@ -403,3 +133,15 @@
 +);
 +
 +#endif /* CONFIG_CMD_TERMINAL */
+Index: u-boot/include/configs/neo1973_gta01.h
+===================================================================
+--- u-boot.orig/include/configs/neo1973_gta01.h
++++ u-boot/include/configs/neo1973_gta01.h
+@@ -103,6 +103,7 @@
+ #define CONFIG_CMD_FAT
+ #define CONFIG_CMD_EXT2
+ #define CONFIG_CMD_LICENSE
++#define CONFIG_CMD_TERMINAL
+ 
+ #define CONFIG_BOOTDELAY	3
+ #define CONFIG_BOOTARGS    	""





More information about the commitlog mailing list