From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH V8 RESEND] ns16550: Add support for UART present in Broadcom TruManage capable NetXtreme chips Date: Thu, 20 Mar 2014 17:07:28 +0000 Message-ID: <532B2050.8080605@linaro.org> References: <1393362687-6530-1-git-send-email-Aravind.Gopalakrishnan@amd.com> <1395334073.3104.36.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1395334073.3104.36.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: Thomas Lendacky , keir@xen.org, Suravee Suthikulpanit , Anup Patel , andrew.cooper3@citrix.com, xen-devel@lists.xen.org, Julien Grall , Stefano Stabellini , jbeulich@suse.com, sherry.hurwitz@amd.com, Aravind Gopalakrishnan , shurd@broadcom.com, Pranavkumar Sawargaonkar List-Id: xen-devel@lists.xenproject.org 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. Regards, -- Julien Grall