xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Shanker Donthineni <shankerd@codeaurora.org>
To: Julien Grall <julien.grall@arm.com>,
	xen-devel <xen-devel@lists.xensource.com>
Cc: Philip Elcan <pelcan@codeaurora.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Vikram Sethi <vikrams@codeaurora.org>
Subject: Re: [PATCH] arm/acpi: Add Server Base System Architecture UART support
Date: Fri, 27 May 2016 09:01:51 -0500	[thread overview]
Message-ID: <5748534F.2060004@codeaurora.org> (raw)
In-Reply-To: <574845D8.6080309@arm.com>



On 05/27/2016 08:04 AM, Julien Grall wrote:
> Hello Shanker,
>
> 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.

> 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?

>> Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
>> ---
>> https://silver.arm.com/download/download.tm?pv=2950177
>>   xen/drivers/char/pl011.c | 25 +++++++++++++++++++++----
>>   1 file changed, 21 insertions(+), 4 deletions(-)
>>
>> diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c
>> index 1212d5c..81d095f 100644
>> --- a/xen/drivers/char/pl011.c
>> +++ b/xen/drivers/char/pl011.c
>> @@ -226,14 +226,14 @@ static struct uart_driver __read_mostly pl011_driver = {
>>       .vuart_info   = pl011_vuart,
>>   };
>>
>> -static int __init pl011_uart_init(int irq, u64 addr, u64 size)
>> +static int __init pl011_uart_init(int irq, u64 addr, u64 size, int baud)
>>   {
>>       struct pl011 *uart;
>>
>>       uart = &pl011_com;
>>       uart->irq       = irq;
>>       uart->clock_hz  = 0x16e3600;
>> -    uart->baud      = BAUD_AUTO;
>> +    uart->baud      = baud;
>>       uart->data_bits = 8;
>>       uart->parity    = PARITY_NONE;
>>       uart->stop_bits = 1;
>> @@ -285,7 +285,7 @@ static int __init pl011_dt_uart_init(struct dt_device_node *dev,
>>           return -EINVAL;
>>       }
>>
>> -    res = pl011_uart_init(res, addr, size);
>> +    res = pl011_uart_init(res, addr, size, BAUD_AUTO);
>>       if ( res < 0 )
>>       {
>>           printk("pl011: Unable to initialize\n");
>> @@ -315,6 +315,7 @@ static int __init pl011_acpi_uart_init(const void *data)
>>   {
>>       acpi_status status;
>>       struct acpi_table_spcr *spcr = NULL;
>> +    int baud = BAUD_AUTO;
>>       int res;
>>
>>       status = acpi_get_table(ACPI_SIG_SPCR, 0,
>> @@ -326,17 +327,23 @@ static int __init pl011_acpi_uart_init(const void *data)
>>           return -EINVAL;
>>       }
>>
>> +    if ( (spcr->interface_type == ACPI_DBG2_SBSA_32) ||
>
> Based on the DBG2 spec, this value is deprecated. So I do not think we should support it.
>

I'll fix.

>> +         (spcr->interface_type == ACPI_DBG2_SBSA) )
>> +        baud = 115200;
>> +
>>       /* trigger/polarity information is not available in spcr */
>>       irq_set_type(spcr->interrupt, IRQ_TYPE_LEVEL_HIGH);
>>
>>       res = pl011_uart_init(spcr->interrupt, spcr->serial_port.address,
>> -                          PAGE_SIZE);
>> +                          PAGE_SIZE, baud);
>>       if ( res < 0 )
>>       {
>>           printk("pl011: Unable to initialize\n");
>>           return res;
>>       }
>>
>> +
>> +
>
> Spurious changes.
>
>>       return 0;
>>   }
>>
>> @@ -344,6 +351,16 @@ ACPI_DEVICE_START(apl011, "PL011 UART", DEVICE_SERIAL)
>>           .class_type = ACPI_DBG2_PL011,
>>           .init = pl011_acpi_uart_init,
>>   ACPI_DEVICE_END
>> +
>> +ACPI_DEVICE_START(asbsa_uart, "SBSA UART", DEVICE_SERIAL)
>> +        .class_type = ACPI_DBG2_SBSA,
>> +        .init = pl011_acpi_uart_init,
>> +ACPI_DEVICE_END
>> +
>> +ACPI_DEVICE_START(asbsa32_uart, "SBSA32 UART", DEVICE_SERIAL)
>> +        .class_type = ACPI_DBG2_SBSA_32,
>> +        .init = pl011_acpi_uart_init,
>> +ACPI_DEVICE_END
>>   #endif
>>
>>   /*
>>
>
> Regards,
>

-- 
Shanker Donthineni
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-05-27 14:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-27  0:28 [PATCH] arm/acpi: Add Server Base System Architecture UART support Shanker Donthineni
2016-05-27 13:04 ` Julien Grall
2016-05-27 14:01   ` Shanker Donthineni [this message]
2016-05-27 14:56     ` Julien Grall
2016-05-27 15:19       ` Shanker Donthineni
2016-05-30  6:54       ` Wei Chen
2016-05-30 12:00       ` Stefano Stabellini
2016-05-30 12:08         ` Julien Grall
2016-05-30 12:22           ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5748534F.2060004@codeaurora.org \
    --to=shankerd@codeaurora.org \
    --cc=julien.grall@arm.com \
    --cc=pelcan@codeaurora.org \
    --cc=sstabellini@kernel.org \
    --cc=vikrams@codeaurora.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).