RE: [PATCH v2 0/3] arm: aspeed: Add UART routing support
From: ChiaWei Wang
Date: Wed Sep 08 2021 - 06:18:48 EST
> From: Paul Fertser <fercerpav@xxxxxxxxx>
> Sent: Wednesday, September 8, 2021 5:43 PM
> On Thu, Sep 02, 2021 at 10:18:13AM +0800, Chia-Wei Wang wrote:
> > Add UART routing driver and the device tree nodes.
> Thank you for working on exposing this functionality in upstreamable way,
> that's so much better than all the register-level hacks in U-Boot and similar
> One (somewhat) related question that I hope you do not mind answering:
> is there anything special regarding the routing or other configuration that
> needs to be done for VUART to work with IRQs?
No. The routing control has no relation to VUART.
> The reason I ask is that I have tried hard (and I know several other developers
> who have too) to use VUART functionality but somehow as soon as Linux was
> booting on host and starting to use the IRQ-based
> 16550 driver the communication was halted both ways. Basically, the BMC
> firmware was enabling VUART in DTS, then setting LPC address to
> 0x3F8 and LPC IRQ to 4 and reading/writing using the corresponding
> /dev/ttyS* node. The datasheet is not clearly telling what other actions need to
> be performed for this to work. Not using VUART and instead routing UART1
> lines with exactly the same pinctrl/pinmux worked just fine. One detail is that
> with VUART the host wasn't seeing new interrupts but when they were
> simulated by exporting the LPC interrupt pin via /sys/class/gpio and toggling it
> manually the data was getting through.
> Does UART1 need some explicit disabling for VUART IRQs to work? It looks like
> setting LPC address and IRQ number in VUART is enough to override the
> register part but probably not for the interrupt?
You may need to confirm that the Host does not enable the SIO SUART1 device.
This will conflict with VUART as both SUART and VAURT are competing for the port address 0x3f8 and SIRQ 4.
> Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!