RE: [PATCH V1] serial: imx: revert setup DCEDTE early and ensure DCD and RI irqs to be off

From: Steve Twiss
Date: Wed May 24 2017 - 06:34:15 EST


Hi Fabio,

On 23 May 2017 17:26 Fabio Estevam wrote:
> Subject: Re: [PATCH V1] serial: imx: revert setup DCEDTE early and ensure DCD and RI irqs to be off
> On Tue, May 23, 2017 at 9:17 AM, Steve Twiss wrote:
> >
> > Revert the commit e61c38d85b7392e ("serial: imx: setup DCEDTE early and
> > ensure DCD and RI irqs to be off")
> >
> > The patch submitted to setup DCEDTE early and ensure DCD and RI irqs to
> > be off, causes a serial console display problem the i.MX6Q SABRESD board.
> > The console becomes unreadable and unwritable.
> >
> > Tested-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx>
> > Signed-off-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx>
> >
> > ---
> > This patch applies against linux-next and v4.12-rc2
> >
> > Hi,
> >
> > I have been seeing a problem with the serial output console on the i.MX6Q
> > SABRESD, but not the i.MX6DL SABRESD. Everything was fine up to
> > linux-mainline/v4.11 but changed after linux-next/next-20170501.
> >
> > Some bisection has pointed at the commit
> > e61c38d85b7392e033ee03bca46f1d6006156175 which, once removed from my
> > linux-next/v4.12-rc2 build allows the i.MX6Q board to display the console
> > correctly again.
> >
> > This patch removes the original commit e61c38d85b7392e ("serial: imx:
> > setup DCEDTE early and ensure DCD and RI irqs to be off") from linux-next
> > v4.12-rc2 and fixes the serial problem seen in the i.MX6Q SABRESD board.
>
> How can the error be reproduced?
>
> Care to share more details of the error, please?

The USB to UART connection gets corrupted.
If this patch is applied to the kernel, the i.MX6 Q (quad), and only this board as far as
we know, starts to fail. This does *not* change the i.MX6DL and other sabre boards
have been tested on kernelci.org and do not see a problem.

An NXP/Freescale SABRESD i.MX6 Q board is requred.

My system for testing is to TFTP the Linux kernel over an ethernet connection. The
U-boot executes okay and the UART is working at that point. When the kernel loads
the console trace becomes garbled, in the sense that I get the some characters being
output to the console, in the style of the kernel starting up, but they are not correct.

I expect the kernel has started ok, but I am unable to read/write through the UART
console because of corruptions.

Console log with the output I am seeing with linux-next/v4.12-rc2
--- 8< ---
U-Boot 2009.08-00001-gf65536a (Jan 12 2015 - 15:47:19)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 200
Temperature: 46 C, calibration data 0x5f15527d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [WDOG ]
Boot Device: SD
I2C: ready
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
In: serial
Out: serial
Err: serial
Found PFUZE100! deviceid=10,revid=11
Net: got MAC address from IIM: 00:04:9f:02:e3:0a
FEC0 [PRIME]
Hit any key to stop autoboot: 0
PHY indentify @ 0x1 = 0x004dd074
FEC: Link is Up 796d
Using FEC0 device
TFTP from server 192.168.2.1; our IP address is 192.168.2.2
Filename 'uImage_dtb.imx6q.v4.12-rc2'.
Load address: 0x12000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##########################################################
done
Bytes transferred = 5951108 (5ace84 hex)
## Booting kernel from Legacy Image at 12000000 ...
Image Name:
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5951044 Bytes = 5.7 MB
Load Address: 10800000
Entry Point: 10800000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

à à à pà ÃÃÃà à Ãà ÃÃÃà ÃÃà Ãà à à à à ÃÃÅ Ãà Ãà Ãà à à âà ÃÃÃà ÃÃà ÃÃ
à ÃÃÅà Ãà ÃÃÃà ÃÃÃÃà à à ~pà Åà `à à ÃÃÅà à à à à à Ãà à à à ÅÃà Ã
ÃÃà Ãà à ÃÃÅà Ãà ÃÃÃà âÃà ÃÃÃÃÃÃà ÃÃÃÃÃÃÃÃÃÃÃÃà à Ãà ÃÃà ÃÅ Ã ÃÅà à à ÃÃ
à Ãà à Ãà à pà Ãà ÃÃà à Ãà ÃÃpà ÃÃÃÃÃà ÃÃÃÃà à ÃÃÅ ~8à ÅÃà ÅÃÃÃâÃÃÃÃÃÃp
Å Ã Ã Ãà à à ÃÃÃÃÃÃÃà Ãà ÃÃpÃÃÃÃÃÃÃÃÃÃà Ãà ÃÃÃà à ÃÃÃÃà ÃÃÃÃÃÅà âà ÃÃ
Å ÃÃ~Ã ÃÃÃ ÃÃ Ã ÃÅÃ Ã Ã Ã ÃÃ~ÅÃÃÃÃÃÃÃÃÃ Ã ÃÃ â Ã ÃÃÃ Ã~Ã ÃÃÅÃ ÃÃÅÃ ÃÃ Ã ÃÃÃÃ
Å ÃÃ~à ÃÃÅà ÃÃâ à Ãà ÃÃÃÃâ ÃÃÃÃÃÃÃÃâà Ãà âà Ãà ŠÃà Ãà ÃÃà pÅ ÃÃà Ã
ÃÃ ÃÃ ÃÃÅ Ã ÃÃÃÃ Ã ÃÃ ÃÃ ÃÃâ Ã ÃÃ ÃÃ ÃÃÃ pÅ Ã â ÃÃ ÃÃÅ Ã ÃÃÃÃ Ã Ã Å Ã
--- 8< ---

Is this enough information for you?
It would be difficult to reproduce without the i.MX6Q (quad) board from Freescale/NXP
I think.

Regards,
Steve