AnsweredAssumed Answered

uart issue on Freescale Sabre i.MX6 AI board

Question asked by VIJAY KULKARNI on Apr 23, 2014
Latest reply on Apr 30, 2014 by VIJAY KULKARNI

Hello all,

 

We are porting Linux Kernel 3.11 on Freescale Sabre iMX6 AI Board (Part no. MCIMX6QAICPU1).The linux kernel 3.11 has been taken from kernel.org. Most of the architecture and platform/Board support have been added/ported to this kernel (taking freescale Linux 3.0.35 as a reference i.e.L3.0.35_4.1.0_ER_SOURCE_BSP).

 

We are unable to get the kernel console and here are the logs,we have also added several prink to debug.Writing to UCR2 (Uart Control register2) fails.

Any help would be appreciated. We are using imx6_defconfig

 

Kernel Logs :

Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

====>> Serial: IMX driver

 

 

===> serial_imx_probe()

serial_imx_probe() -> platform_get_resource()

serial_imx_probe() -> devm_ioremap()

imx-uart.1 - base (0xf41e8000), size = 4096 (0x1000)

serial_imx_probe() -> devm_pinctrl_get_select_default()

serial_imx_probe() -> devm_clk_get()

serial_imx_probe() -> devm_clk_get()

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

uart_configure_port() -> port->ops->config_port()

uart_configure_port() -> uart_report_port()

imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX

uart_configure_port() -> uart_change_pm()

uart_configure_port() -> port->ops->set_mctrl()

uart_configure_port() -> register_console()

--> register_console

_braille_register_console()

newcon->setup()

--> imx_console_setup

return @ ENODEV

after newcon->setup()

uart_configure_port() -> uart_console()

uart_configure_port() -> uart_change_pm()

<-- uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

serial_imx_probe() -> uart_add_one_port() , ret = 0

serial_imx_probe() -> platform_set_drvdata()

serial_imx_probe() -> uart_console()

 

 

===> serial_imx_probe()

serial_imx_probe() -> platform_get_resource()

serial_imx_probe() -> devm_ioremap()

imx-uart.2 - base (0xf41ec000), size = 4096 (0x1000)

serial_imx_probe() -> devm_pinctrl_get_select_default()

serial_imx_probe() -> devm_clk_get()

serial_imx_probe() -> devm_clk_get()

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

uart_configure_port() -> port->ops->config_port()

uart_configure_port() -> uart_report_port()

imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX

uart_configure_port() -> uart_change_pm()

uart_configure_port() -> port->ops->set_mctrl()

uart_configure_port() -> register_console()

--> register_console

_braille_register_console()

newcon->setup()

--> imx_console_setup

return @ ENODEV

after newcon->setup()

uart_configure_port() -> uart_console()

uart_configure_port() -> uart_change_pm()

<-- uart_configure_port

--> uart_add_one_port, tty_port_register_device_attr()

<--- uart_add_one_port

serial_imx_probe() -> uart_add_one_port() , ret = 0

serial_imx_probe() -> platform_set_drvdata()

serial_imx_probe() -> uart_console()

 

 

===> serial_imx_probe()

serial_imx_probe() -> platform_get_resource()

serial_imx_probe() -> devm_ioremap()

imx-uart.3 - base (0xf41f0000), size = 4096 (0x1000)

serial_imx_probe() -> devm_pinctrl_get_select_default()

serial_imx_probe() -> devm_clk_get()

serial_imx_probe() -> devm_clk_get()

---> uart_add_one_port

--> uart_add_one_port, uart_configure_port()

--> uart_configure_port

uart_configure_port() -> port->ops->config_port()

uart_configure_port() -> uart_report_port()

imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX

uart_configure_port() -> uart_change_pm()

uart_configure_port() -> port->ops->set_mctrl()

uart_configure_port() -> register_console()

--> register_console

_braille_register_console()

newcon->setup()

--> imx_console_setup

uart_parse_options()

imx_setup_ufcr()

uart_set_options()

--> uart_set_options

===>lockdep_set_class()

===>1111lockdep_set_class()

===>coming out of switch lockdep_set_class()

===>port->ops->set_termios()

++++++> imx_set_termios

UCR1 (0xf41f0080) = 0x1

UCR2 = 0x4027

val = 0x4021, off = 0xf41f0084

 

 

Thank you

Outcomes