ipq40xx serial driver not working

Alexey Minnekhanov alexeymin at postmarketos.org
Sat Mar 19 21:37:34 CET 2022


On 3/19/22 09:22, Florence Riker wrote:
> Hello everyone, recently I'm trying to port the newest version of u boot to
> my ipq4019 development board, and I found that the current serial driver
> for Qualcomm ipq40xx socs at u-boot-2022.01/drivers/serial/serial_msm.c is
> not compatible to ipq40xx despite they share the same compatible string in
> the device tree:
>     [...] 
> As you can see, for example: the working one's Transmit and Receive
> register definition is at an address of base + 0x70 while the current one's
> is at base + 0x100 and base + 0x140, so when the device is reading and
> sending things using current driver, they are doing it with wrong address
> and the serial won't work.
> I think this should be somehow fixed.
> Thanks.

Hi,

I can confirm similar problem for newer qcom SoC sdm660, where I also 
had to use 0x70 for TF register, and  0x08 for SR register to make 
things work, so I don't think this is ipq40xx specific problem. Linux's 
serial-msm UARTDM driver is also using these values (different from 
what's in U-Boot driver).

It's hard to know the exact reason without full documentation for hw, 
but is it possible that there are two (or more) modes of operation and 
several register sets inside msm uartdm?

I'm also using u-boot as chain-loaded boot loader, so I'm using uart as 
it was configured by previous stage boot loader. Maybe which registers 
to use depends on how the controller was initially configured?

---
Regards,
Alexey Minnekhanov


More information about the U-Boot mailing list