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
next prev parent 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).