06-15-2015 01:46 PM
Hello all,
My UARTlites, when implemented in petalinux, do not seem to show up at all. They are not mentioned when petalinux is booting and they are also not found at all in /dev/. I have tried messing with the device-tree and especially with the driver but nothing I have found works.
Is anyone able to use petalinux 2014.4 to get UARTlites working? I know there has also been trouble in previous versions witht the same problem.
Also, if the majority of others are using the linux-xilinx open source build, let me know. Maybe the thing to do is switch to their open source version.
Best,
Rob
06-17-2015 11:43 AM
You also missing interrupt description for UARTLite in your DTS and I believe this is a required part.
So, add something like:
interrupt-parent = <&intc>;
interrupts = <0 54 4>;
06-16-2015 12:39 AM
Can you verify Uartlite using standalone application in SDK environment?
The above details will rule out the hardware issue.
I see that you are using Petalinux , do you see the Uartlite device node populated in the dts/dtsi files?
Can you share the dts/dtsi files ?
Regards,
Achutha
06-16-2015 02:03 PM
@achutha, thank you so much for your timely response.
I have run a simple standalone SDK program using the UartLite to receive some data from a GPS module and it works, so I don't think it's a hardware problem.
I have attached the dts/dtsi components from the subsystems/linux directories. It seems that the relevant one is pl.dtsi. To be clear, I am working on a ZedBoard. Please let me know if I can provide any other helpful materials and thanks again!
06-17-2015 07:00 AM
Thanks for sharing the files.
Can you add the below details into the system-top.dts file ?
aliases {
serial1 = &axi_uartlite_0;
After the modification in the system-to.dts file it should look like this.
/dts-v1/;
/include/ "system-conf.dtsi"
/ {
aliases {
serial1 = &axi_uartlite_0;
};
};
Once this modification is done , try buidling the petalinux linux and see if that helps.
Regards,
Achutha
06-17-2015 11:17 AM
Hello @achutha,
Thanks again for the response!
I have added these lines to the device tree I system-top.dts and unfortunately, after cleaning (petalinux-build -x distclean) and building, I booted the kernel via JTAG and still cannot find a /dev/ttyUL* device. Any other ideas?.
I have attached a log of the terminal from my ZedBoard, in case that is helpful. It does not appear to register the UART on startup. I also included my system-top.dts for reference, and so others can see it.
Best,
Rob
06-17-2015 11:24 AM
Try to remove/comment _device_type = "serial";_ for both UARTLite and PS UART in DTS.
06-17-2015 11:43 AM
You also missing interrupt description for UARTLite in your DTS and I believe this is a required part.
So, add something like:
interrupt-parent = <&intc>;
interrupts = <0 54 4>;
06-18-2015 01:41 PM
Thank you to both @achutha and @fanat9.
I enabled the alias as@achutha mentioned and then connected interrupts properly, the idea for which I got from @fanat9. However, it is not enough to just throw some interrupt address into your device tree. You should properly connect interrupts on the PL in Vivado and then export it to petalinux, at which point you build it and it assigns the correct memory addresses for the interrupt pins.
The Xilinx wiki for the uartlite has an excellent diagram of a proper configuration.
Thanks again, I hope I someday get to repay the favor!
06-18-2015 02:01 PM