Hi all
My customer tried to access UART3 in their custom board which has i.MX7D and driver which is based on file in platform/iMX7/src/drivers.
As a result, they can't access to UART3 and got data abort.
Then I tested it in MCIMX7SABRE and got external abort.
So I have a question about UART3 access in MCIMX7SABRE.
Here is an error message and command which I used.
-------------------------------------
root@imx6ul7d:/unit_tests# ./memtool UART3.*
SOC: i.MX7DUnhandled fault: external abort on non-linefetch (0x1008) at 0x76fe5000
pgd = a9864000
[76fe5000] *pgd=a880e831, *pte=30880703, *ppte=30880e33
UART3 Addr:0x30880000
Bus error
root@imx6ul7d:/unit_tests# ./memtool -32 0x30880000 1
E
Reading 0x1 count starting at aUnhandled fault: external abort on non-linefetch (0x1008) at 0x76fcf000
pgd = a88a4000
[76fcf000] *pgd=a880e831, *pte=30880703, *ppte=30880e33
ddress 0x30880000
Bus error
-------------------------------------
Could you tell me the reason why it can't access register of UART3 ?
Add info:
I use L4.1.15 BSP.
Ko-hey
Hi Ko-hey
UART3 is not used on Sabre board, please check its dts :
linux/arch/arm/boot/dts/imx7d-sdb.dts
linux-imx.git - i.MX Linux Kernel
For example uart1:
&uart1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>; assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>; status = "okay"; };
One can enable uart3 using example linux/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts:
linux-imx.git - i.MX Linux Kernel
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igorpadykov
According to your answer, I can access a UART1,5,6 because those register are set by following dts file.
However, I can't access UART5 and 6 as same as UART3.
Here is an error message.
Do you have any idea why I can't access to the registers ?
----------------------------------------------------------
root@imx6ul7d:/unit_tests# ./memtool UART5.*
SOC: i.MX7DUnhandled fault: external abort on non-linefetch (0x1008) at 0x76f3a000
pgd = a88a4000
[76f3a000] *pgd=a875b831, *pte=30a70703, *ppte=30a70e33
UART5 Addr:0x30a70000
Bus error
root@imx6ul7d:/unit_tests# ./memtool -32 0x03a70000 1
E
Reading 0x1 count starting at aUnhandled fault: external abort on non-linefetch (0x008) at 0x76f97000
pgd = a8bc0000
[76f97000] *pgd=a8c5e831, *pte=03a70703, *ppte=03a70e33
ddress 0x03A70000
Bus error
root@imx6ul7d:/unit_tests#
----------------------------------------------------------
----------------------------------------------------------
root@imx6ul7d:/unit_tests# ./memtool UART6.*
SOC: i.MX7DUnhandled fault: external abort on non-linefetch (0x1008) at 0x76fa6000
pgd = a88a4000
[76fa6000] *pgd=a875b831, *pte=30a80703, *ppte=30a80e33
UART6 Addr:0x30a80000
Bus error
root@imx6ul7d:/unit_tests# ./memtool -32 0x03a80000 1
E
Reading 0x1 count starting at aUnhandled fault: external abort on non-linefetch (0x008) at 0x76f86000
pgd = a8bc0000
[76f86000] *pgd=a8c5e831, *pte=03a80703, *ppte=03a80e33
ddress 0x03A80000
Bus error
root@imx6ul7d:/unit_tests#
----------------------------------------------------------
Ko-hey
Hi Ko-hey
pelase attach jtag debugger and check if clocks for these uarts are enabled in
CCM_CCGRn.
https://community.nxp.com/thread/357478
Best regards
igor