[PATCH v2 2/2] serial: mxc: have putc use the TXFIFO

SCHNEIDER Johannes johannes.schneider at leica-geosystems.com
Tue Sep 6 07:21:24 CEST 2022


Hi,

and thanks, that reference in the kernel uart driver is/might be actually better - my "reference" was the barebox sourcecode - which also checks the TXFULL instead

i'll update the message and send out a v3


regards

________________________________
From: Peng Fan <peng.fan at oss.nxp.com>
Sent: Tuesday, September 6, 2022 07:15
To: SCHNEIDER Johannes <johannes.schneider at leica-geosystems.com>; u-boot at lists.denx.de <u-boot at lists.denx.de>
Cc: trini <trini at konsulko.com>; GEO-CHHER-bsp-development <bsp-development.geo at leica-geosystems.com>; festevam at denx.de <festevam at denx.de>; sbabic at denx.de <sbabic at denx.de>; Pali Rohár <pali at kernel.org>
Subject: Re: [PATCH v2 2/2] serial: mxc: have putc use the TXFIFO

[You don't often get email from peng.fan at oss.nxp.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]

This email is not from Hexagon’s Office 365 instance. Please be careful while clicking links, opening attachments, or replying to this email.


On 9/6/2022 11:38 AM, SCHNEIDER Johannes wrote:
> Hi Peng Fan,
>
> ... well i'm actually not sure why the messages get corrupted; it's just what i observed on a connected oscilloscope :-s
> the code that does uses the transmit functions is making use of the returned -EAGAIN and retries - and even strewing in some delays to wait for the buffer or checking the status register didn't resolve the issue -- switching the serical driver from locking onto the single send-register to actually checking the fifo fixed it though.
>
> i can put these "vague reasons" in the commit message... but i dont/didn't think theyd help much (?)

That's fine, I just wanna know more details. Maybe add one line
"followling linux kernel i.MX8M* uart driver, check UTS_TXFULL, not
UTS_EMPTY."

Regards,
Peng.

>
>
> regards
> ________________________________
> From: Peng Fan <peng.fan at oss.nxp.com>
> Sent: Tuesday, September 6, 2022 02:54
> To: SCHNEIDER Johannes <johannes.schneider at leica-geosystems.com>; u-boot at lists.denx.de <u-boot at lists.denx.de>
> Cc: trini <trini at konsulko.com>; GEO-CHHER-bsp-development <bsp-development.geo at leica-geosystems.com>; festevam at denx.de <festevam at denx.de>; sbabic at denx.de <sbabic at denx.de>; Pali Rohár <pali at kernel.org>
> Subject: Re: [PATCH v2 2/2] serial: mxc: have putc use the TXFIFO
>
> This email is not from Hexagon’s Office 365 instance. Please be careful while clicking links, opening attachments, or replying to this email.
>
>
> On 9/5/2022 5:58 PM, Johannes Schneider wrote:
>> only waiting for TXEMPTY leads to corrupted messages going over the
>> wire - which is fixed by making use of the FIFO
>
> Could you please explain a bit more, why waiting TXEMPTY could lead
> to corrupted message?
>
> Thanks,
> Peng.
>
>>
>> Signed-off-by: Johannes Schneider <johannes.schneider at leica-geosystems.com>
>> ---
>>
>> (no changes since v1)
>>
>>    drivers/serial/serial_mxc.c | 2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
>> index 5f283cc635..1e0add7281 100644
>> --- a/drivers/serial/serial_mxc.c
>> +++ b/drivers/serial/serial_mxc.c
>> @@ -309,7 +309,7 @@ static int mxc_serial_putc(struct udevice *dev, const char ch)
>>        struct mxc_serial_plat *plat = dev_get_plat(dev);
>>        struct mxc_uart *const uart = plat->reg;
>>
>> -     if (!(readl(&uart->ts) & UTS_TXEMPTY))
>> +     if (readl(&uart->ts) & UTS_TXFULL)
>>                return -EAGAIN;
>>
>>        writel(ch, &uart->txd);
>


More information about the U-Boot mailing list