Hello,
I am having a hard time getting the UCC UART running on my custom board with a LS1020A CPU. I use the Linux kernel from Freescale SDK version fsl-sdk-v2.0-1701 with a custom mainline U-Boot.
The driver gets loaded but I can neither send nor receive from the ttyQE devices. When sending, the driver takes some seconds before raising Shutdown timeout to the kernel log. When receiving just nothing happens.
From what I saw from some debug messages I added, it seems that the QUICC engine never clears the BD_SC_READY bit in the buffer descriptors and the driver does not receive any interrupts.
This is the important part of my device tree:
/dts-v1/;
#include "ls1021a.dtsi"
...
&uqe {
ucc1: ucc@2000 {
device_type = "serial";
compatible = "ucc_uart";
port-number = <1>;
rx-clock-name = "brg1";
tx-clock-name = "brg1";
};
ucc2: ucc@2200 {
device_type = "serial";
compatible = "ucc_uart";
port-number = <3>;
rx-clock-name = "brg2";
tx-clock-name = "brg2";
};
};
and this is the RCW (QE_TDMA and QE_TDMB should both be 2
Reset Configuration Word (RCW):
00000000: 0608000a 00000000 00000000 00000000
00000010: 80000000 00407900 60044a00 21046000
00000020: 00000000 00000000 00000000 08000700
00000030: 20124900 04091340 00000000 00000000
What could I have missed? Please let me know if you need more information.
Solved! Go to Solution.
The typical reason for QE block not working as expected is a microcode missing.
QE block in this device does not have internal ROM and required microcode package to be loaded to internal RAM before QE block can be used. Please look QEIWRM.pdf Chapter 1 for details.
Have a great day,
Alexander
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
The typical reason for QE block not working as expected is a microcode missing.
QE block in this device does not have internal ROM and required microcode package to be loaded to internal RAM before QE block can be used. Please look QEIWRM.pdf Chapter 1 for details.
Have a great day,
Alexander
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thank you for your response. I have it working on the LS1021A-TWR now which does load the firmware in the bootloader. I think that this will be the solution on our board as well.