public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH] PPC440: Add flow control for serial port
@ 2007-11-30 13:39 Niklaus Giger
  2007-11-30 19:57 ` Stefan Roese
  0 siblings, 1 reply; 5+ messages in thread
From: Niklaus Giger @ 2007-11-30 13:39 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
---
 board/netstal/hcu5/init.S |   63 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/board/netstal/hcu5/init.S b/board/netstal/hcu5/init.S
index 5ab6cd2..2b2dc52 100644
--- a/board/netstal/hcu5/init.S
+++ b/board/netstal/hcu5/init.S
@@ -39,41 +39,68 @@
 tlbtab:
 	tlbtab_start
 
-	/* vxWorks needs this entry for the Machine Check interrupt,  */
-	/* tlbentry( 0x40000000, SZ_256M, 0, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) */
+#ifdef CFG_TLB_FOR_BOOT_FLASH
+	/* TLB#0: vxWorks needs this entry for the Machine Check interrupt,  */
+	tlbentry( 0x40000000, SZ_256M, 0, 0, AC_R|AC_W|AC_X|SA_G|SA_I )
+	/* TLB#1: TLB-entry for DDR SDRAM (Up to 2GB) */
+	tlbentry( CFG_SDRAM_BASE, SZ_256M, CFG_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I )
+
+	/* TLB#2: TLB-entry for EBC */
+	tlbentry( 0x80000000, SZ_256M, 0x80000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
 
 	/*
-	 * BOOT_CS (FLASH) must be second. Before relocation SA_I can be off to use the
+	 * TLB#3: BOOT_CS (FLASH) must be forth. Before relocation SA_I can be off to use the
 	 * speed up boot process. It is patched after relocation to enable SA_I
 	 */
 	tlbentry( CFG_BOOT_BASE_ADDR, SZ_1M, CFG_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G )
 
-	/* TLB-entry for PCI Memory */
-	tlbentry( CFG_PCI_MEMBASE, SZ_256M, CFG_PCI_MEMBASE, 1, AC_R|AC_W|SA_G|SA_I )
+#else
+	tlbentry( CFG_BOOT_BASE_ADDR, SZ_1M, CFG_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G )
+#endif
+
+	/*
+	 * TLB entries for SDRAM are not needed on this platform.
+	 * They are dynamically generated in the SPD DDR(2) detection
+	 * routine.
+	 */
+
+	/* TLB#4: */
 	tlbentry( CFG_PCI_MEMBASE1, SZ_256M, CFG_PCI_MEMBASE1, 1, AC_R|AC_W|SA_G|SA_I )
+	/* TLB#5: */
 	tlbentry( CFG_PCI_MEMBASE2, SZ_256M, CFG_PCI_MEMBASE2, 1, AC_R|AC_W|SA_G|SA_I )
+	/* TLB#6: */
 	tlbentry( CFG_PCI_MEMBASE3, SZ_256M, CFG_PCI_MEMBASE3, 1, AC_R|AC_W|SA_G|SA_I )
 
-	/* TLB-entry for EBC (CFG_CPLD) */
-	/* tlbentry( CFG_CPLD, SZ_1K, CFG_CPLD, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) */
-	/* 		CAN */
-	tlbentry( CFG_CS_1, SZ_16M, CFG_CS_1, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
-	 /* 		IMC + CPLD */
-	tlbentry( CFG_CS_2, SZ_16M, CFG_CS_2, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
-	tlbentry( CFG_CS_2 + 0x1000000, SZ_16M, CFG_CS_2 + 0x1000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
-	 /* 		IMC-Fast */
-	tlbentry( CFG_CS_3, SZ_16M, CFG_CS_3, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
-	tlbentry( CFG_CS_3 + 0x1000000, SZ_16M, CFG_CS_3 + 0x1000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
-
 	/* TLB-entry for Internal Registers & OCM */
-	tlbentry( CFG_PCI_BASE, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_I )
+	/* TLB#7: */
+	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_G|SA_I )
 
 	/*TLB-entry PCI registers*/
+	/* TLB#8: */
 	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I )
 
 	/* TLB-entry for peripherals */
+	/* TLB#9: */
 	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I)
 
-	/* TLB for SDRAM will be added by initdram (sdram.c) */
+	/* 		CAN */
+	/* TLB#10: */
+	tlbentry( CFG_CS_1, SZ_1K, CFG_CS_1, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
+
+	/* TLB#11:  CPLD and IMC-Standard 32 MB */
+	tlbentry( CFG_CS_2, SZ_16M, CFG_CS_2, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
+
+	/* TLB#12: */
+	tlbentry( CFG_CS_2 + 0x1000000, SZ_16M, CFG_CS_2 + 0x1000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
 
+	 /* 		IMC-Fast 32 MB */
+	/* TLB#13: */
+	tlbentry( CFG_CS_3, SZ_16M, CFG_CS_3, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
+	/* TLB#14: */
+	tlbentry( CFG_CS_3 + 0x1000000, SZ_16M, CFG_CS_3, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
+
+#ifndef CFG_TLB_FOR_BOOT_FLASH
+	/* TLB#15: */
+	tlbentry( CFG_CS_3 + 0x1000000, SZ_16M, CFG_CS_3 + 0x1000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I )
+#endif
 	tlbtab_end
-- 
1.5.2

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20071130/5430bb06/attachment.htm 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot-Users] [PATCH] PPC440: Add flow control for serial port
  2007-11-30 13:39 [U-Boot-Users] [PATCH] PPC440: Add flow control for serial port Niklaus Giger
@ 2007-11-30 19:57 ` Stefan Roese
  2007-12-03  9:48   ` [U-Boot-Users] [PATCH] resubmit: " Niklaus Giger
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Roese @ 2007-11-30 19:57 UTC (permalink / raw)
  To: u-boot

On Friday 30 November 2007, Niklaus Giger wrote:
> Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
> ---
>  board/netstal/hcu5/init.S |   63
> ++++++++++++++++++++++++++++++++------------- 1 files changed, 45
> insertions(+), 18 deletions(-)
>
> diff --git a/board/netstal/hcu5/init.S b/board/netstal/hcu5/init.S
> index 5ab6cd2..2b2dc52 100644
> --- a/board/netstal/hcu5/init.S
> +++ b/board/netstal/hcu5/init.S

Hmmm. This patch doesn't seem to match the mail subject. Please resubmit with 
correct patch.

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] [PATCH] resubmit: PPC440: Add flow control for serial port
  2007-11-30 19:57 ` Stefan Roese
@ 2007-12-03  9:48   ` Niklaus Giger
  2007-12-03  9:58     ` Wolfgang Denk
  0 siblings, 1 reply; 5+ messages in thread
From: Niklaus Giger @ 2007-12-03  9:48 UTC (permalink / raw)
  To: u-boot

Sorry for my mistake in my first submission..

This has been tested on our HCU5 PPC440EPx based board, where we
have only one serial port.

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
---
 cpu/ppc4xx/serial.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/cpu/ppc4xx/serial.c b/cpu/ppc4xx/serial.c
index 60712b1..4cba836 100644
--- a/cpu/ppc4xx/serial.c
+++ b/cpu/ppc4xx/serial.c
@@ -490,6 +490,21 @@ static void serial_divs (int baudrate, unsigned long *pudiv,
 }
 #endif /* defined(CONFIG_440) && !defined(CFG_EXT_SERIAL_CLK) */
 
+#if defined(CONFIG_CMD_HWFLOW) && defined(CONFIG_440) && !defined(CONFIG_SERIAL_MULTI)
+int hwflow_onoff(int flow_on)
+{
+	if (flow_on == 1) {
+		out8(UART_BASE + UART_MCR, 0x0b);	/* The OUT2 bit may be written and read
+	                                           but it provides no function */
+	}
+	else
+	{
+		out8(UART_BASE + UART_MCR, 0x00);	/* no modem control DTR RTS */
+	}
+	return 0;
+}
+#endif
+
 /*
  * Minimal serial functions needed to use one of the SMC ports
  * as serial console interface.
@@ -548,7 +563,12 @@ int serial_init(void)
 	out8(UART_BASE + UART_DLM, bdiv >> 8);	/* set baudrate divisor */
 	out8(UART_BASE + UART_LCR, 0x03);	/* clear DLAB; set 8 bits, no parity */
 	out8(UART_BASE + UART_FCR, 0x00);	/* disable FIFO */
+#ifdef CONFIG_CMD_HWFLOW
+	out8(UART_BASE + UART_MCR, 0x0b);	/* The OUT2 bit may be written and read
+	                                           but it provides no function */
+#else
 	out8(UART_BASE + UART_MCR, 0x00);	/* no modem control DTR RTS */
+#endif
 	val = in8(UART_BASE + UART_LSR);	/* clear line status */
 	val = in8(UART_BASE + UART_RBR);	/* read receive buffer */
 	out8(UART_BASE + UART_SCR, 0x00);	/* set scratchpad */
-- 
1.5.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [U-Boot-Users] [PATCH] resubmit: PPC440: Add flow control for serial port
  2007-12-03  9:48   ` [U-Boot-Users] [PATCH] resubmit: " Niklaus Giger
@ 2007-12-03  9:58     ` Wolfgang Denk
  2007-12-03 10:45       ` Stefan Roese
  0 siblings, 1 reply; 5+ messages in thread
From: Wolfgang Denk @ 2007-12-03  9:58 UTC (permalink / raw)
  To: u-boot

In message <200712031048.54727.niklausgiger@gmx.ch> you wrote:
> Sorry for my mistake in my first submission..
> 
> This has been tested on our HCU5 PPC440EPx based board, where we
> have only one serial port.

I object against applying such a patch.

Using hardware flow-control on the only available serial port (= con-
sole port) is fundamentally broken. It is not acceptable that a board
does not come up just because no  console  terminal  is  attached  or
because the console is in the wrong state.


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If it went on at this rate, in several billion  years  he'd  be  rich
beyond his wildest dreams!            - Terry Pratchett, _Soul Music_

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [U-Boot-Users] [PATCH] resubmit: PPC440: Add flow control for serial port
  2007-12-03  9:58     ` Wolfgang Denk
@ 2007-12-03 10:45       ` Stefan Roese
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Roese @ 2007-12-03 10:45 UTC (permalink / raw)
  To: u-boot

On Monday 03 December 2007, Wolfgang Denk wrote:
> In message <200712031048.54727.niklausgiger@gmx.ch> you wrote:
> > Sorry for my mistake in my first submission..
> >
> > This has been tested on our HCU5 PPC440EPx based board, where we
> > have only one serial port.
>
> I object against applying such a patch.
>
> Using hardware flow-control on the only available serial port (= con-
> sole port) is fundamentally broken. It is not acceptable that a board
> does not come up just because no  console  terminal  is  attached  or
> because the console is in the wrong state.

This patch "only" enables the 4xx UART driver for hardware flow control
and doesn't configure it for the HCU5 board. So that should not be a
problem.

But this patch unfortunately has coding style issues:

> +#if defined(CONFIG_CMD_HWFLOW) && defined(CONFIG_440) &&
> !defined(CONFIG_SERIAL_MULTI) +int hwflow_onoff(int flow_on)
> +{
> +???????if (flow_on == 1) {
> +???????????????out8(UART_BASE + UART_MCR, 0x0b);???????/* The OUT2 bit may be written and read
> +??????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? but it provides no function */
> +???????} 
> +???????else
> +???????{
> +???????????????out8(UART_BASE + UART_MCR, 0x00);???????/* no modem control DTR RTS */
> +???????} 
> +???????return 0;
> +}
> +#endif

Please use something like this:

if defined(CONFIG_CMD_HWFLOW) && defined(CONFIG_440) && \
   !defined(CONFIG_SERIAL_MULTI)
int hwflow_onoff(int flow_on)
{
	if (flow_on == 1) {
		/*
		 * The OUT2 bit may be written and read
		 * but it provides no function
		 */
		out8(UART_BASE + UART_MCR, 0x0b);
	}?else {
		/* No modem control DTR RTS */
		out8(UART_BASE + UART_MCR, 0x00);
	}

	return 0;
}
#endif

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-12-03 10:45 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-30 13:39 [U-Boot-Users] [PATCH] PPC440: Add flow control for serial port Niklaus Giger
2007-11-30 19:57 ` Stefan Roese
2007-12-03  9:48   ` [U-Boot-Users] [PATCH] resubmit: " Niklaus Giger
2007-12-03  9:58     ` Wolfgang Denk
2007-12-03 10:45       ` Stefan Roese

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox