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

Re: [Xen-devel] [PATCH V8 RESEND] ns16550: Add support for UART present in Broadcom TruManage capable NetXtreme chips

Hi Ian,

On 03/20/2014 04:47 PM, Ian Campbell wrote:
> On Tue, 2014-02-25 at 15:11 -0600, Aravind Gopalakrishnan wrote:
>> Since it is an MMIO device, the code has been modified to accept MMIO based
>> devices as well. MMIO device settings are populated in the 'uart_config' 
>> table.
>> It also advertises 64 bit BAR. Therefore, code is reworked to account for 64
>> bit BAR and 64 bit MMIO lengths.
>> Some more quirks are - the need to shift the register offset by a specific
>> value and we also need to verify (UART_LSR_THRE && UART_LSR_TEMT) bits before
>> transmitting data.
>> While testing, include com1=115200,8n1,pci,0 on the xen cmdline to observe
>> output on console using SoL.
>> Changes from V7:
>>   - per Jan's comments:
>>     - Moving pci_ro_device to ns16550_init_postirq() so that either
>>       one of pci_hide_device or pci_ro_device is done at one place
>>     - remove leading '0' from printk as absent segment identifier
>>       implies zero anyway.
>>   - per Ian's comments:
>>     - fixed issues that casued his build to fail.
>>     - cross-compiled for arm32 and arm64 after applying patch and
>>       build was successful on local machine.
> Unfortunately this patch breaks the console on the arm64 x-gene
> platform, it drops a fairly large subset of the characters.
> I'm not sure why yet.

This is because lsr_mask is not initialized for the device tree bit.

We should have something in ns16550_uart_dt_init like:

+    /* Default lsr_mask = UART_LSR_THRE */
+    uart->lsr_mask = UART_LSR_THRE;

I think in long term, ns16550_init and ns16550_uart_dt_init should share
this sort of initializations to avoid other failure on ARM.


Julien Grall

Xen-devel mailing list



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