[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] arm/acpi: Add Server Base System Architecture UART support

Hi Shanker,

On 27 May 2016 at 22:56, Julien Grall <julien.grall@xxxxxxx> wrote:
> Hello Shanker,
> On 27/05/16 15:01, Shanker Donthineni wrote:
>> On 05/27/2016 08:04 AM, Julien Grall wrote:
>>> On 27/05/16 01:28, Shanker Donthineni wrote:
>>>> The ARM Server Base System Architecture describes a generic UART
>>>> interface. It doesn't support clock control registers to set
>>>> baudrate. So, extend the driver probe() to handle SBSA interface
>>>> types and set the baudrate to 115200 for SBSA interfaces.
>>> I cannot find any mention of the baudrate in the SBSA. Where does it come
>>> from?
>> Yes, no where mentioned about the baudrate in SBSA document. I used 115200
>> based on the  the Linux  PL011 driver.
> Looking at the Linux code, it is a default when there is no valid
> configuration (which may not be suitable for any platform?).
> Whilst Linux userspace cares about the baudrate, Xen only use it to
> configure the hardware. Given that the UART should have been configured by
> the hardware-specific software, the proper value should be BAUD_AUTO.
> If you look at the code, pl011_init_preirq will read the baud rate when
> uart->baud == BAUD_AUTO but will never be used after.
>>> Also the driver is using registers which should not be touch for the SBSA
>>> UART (see appendix B in the SBSA ARM-DEN-0029 v3.0). So this need to be
>>> address to get a proper support.
>> Yes, I agree with you, Which registers it is touching other than baudrate
>> control registers?
> Well, I only gave a quick look and noticed the difference between the SBSA
> and the pl011 (e.g CR, IFLS,...) . I am sure you can find out the rest of
> the registers by looking at the code (pl011-uart.h) and the spec.

The SBSA (ARM-DEN-0029 v3.0) has defined a minimum set of UART registers.
When driver customizes the bandrate, it will access the IBRD and FBRD registers.
But these two registers are not listed in the minimum set registers.
In this case, not
all SBSA UARTs have these two registers. When uart->baud != BAUD_AUTO, the
code will cause some UARTs' initialization to fail.

> Regards,
> --
> Julien Grall
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.