[U-Boot] Enabling uart 3 in arndale

armdev armdev.ftm at gmail.com
Mon Mar 31 05:47:01 CEST 2014


Dear tomaz

Waiting for your reply... 

On 28-Mar-2014, at 3:12 pm, armdev <armdev.ftm at gmail.com> wrote:

> Dear Tomasz,
> 
> On 16-Mar-2014, at 6:23 pm, Tomasz Figa <tomasz.figa at gmail.com> wrote:
> 
>> Hi,
>> 
>> On 14.03.2014 09:04, armdev wrote:
>>> Hi,
>>> 
>>> We are trying to enable the UART3 on COM18 pins of arndale board. The UART3 RXD and TXD are on pins 2 and 4 which as per the base board specification is connected as
>>> 
>>> XuRXD3 : UART_3_RXD/GPA1[4] : 2
>>> XuTXD3 : UART_3_TXD/GPA1[5] : 4
>>> 
>>> As per the public reference manual of exynos 5250, there is a register GPACON (0x1140_0000)
>>> Setting GPACON |= 0x0010_0000 should enable the pins, but I am not able to see any output on UART3.
>>> 
>>> Can you please suggest what is the right procedure
>> 
>> The register is GPA1CON and its GPA1CON[4] and [5] bit fields need both to be set to 0x2 - see Pad Control chapter of Exynos5250 public datasheet. Also GPA1PUD should be reconfigured to disable default pull-down on both pins, again you can find details of the register in the datasheet.
>> 
>> Best regards,
>> Tomasz
> 
> Based on the steps provided, we are still not able to get some output on UART3 simultaneously with UART2.
> Can you please help us find out what we are missing.
> 
> On the current u-boot, Following was the observation and steps to enable UART3 on arndale
> 
> Observations / Questions
> ——————————————
> a) The board has the default UART set to UART2 which is at 0x12c20000, while the include/configs/arndale.h has the UART_OFFSET set to 0x010000.
> Shouldn’t it be set to 0x20000 ?
> 
> b) board_uart_init in board/samsung/arndale/arndale.c is configuring all the uarts, 
> Clocks would be set properly for all 4 uarts ?
> 
> Steps / Code Modified
> ——————————————
> a) GPAICON[4] and [5] set to 0x2 in board/samsung/arndale/arndale.c
> b) GPA1PUD [4] and [5] set to 0.
> 
> diff --git a/board/samsung/arndale/arndale.c b/board/samsung/arndale/arndale.c
> index 9efc355..4fb291e 100644
> --- a/board/samsung/arndale/arndale.c
> +++ b/board/samsung/arndale/arndale.c
> @@ -102,12 +102,18 @@ static int board_uart_init(void)
> int board_early_init_f(void)
> {
>  	int err;
> -
> +	volatile unsigned int *gpa1con = (volatile unsigned int *)0x11400020;
> +	volatile unsigned int *gpa1pud = (volatile unsigned int *)0x11400028;
>  	err = board_uart_init();
>  	if (err) {
>  		debug("UART init failed\n");
>  		return err;
>  	}
> +	serial_init_dev(2);
> +	serial_setbrg_dev(2);
> +	*gpa1con |= 0x00220000;	
> +	*gpa1pud &= 0xfffff0ff;	
> +
>  	return err;
> }
> #endif
> 



More information about the U-Boot mailing list