cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Visitor
Visitor
10,743 Views
Registered: ‎06-15-2015

Petlinux 2014.4+UARTlite

Jump to solution

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

0 Kudos
Reply
1 Solution

Accepted Solutions
Explorer
Explorer
18,833 Views
Registered: ‎02-16-2014

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>;

View solution in original post

0 Kudos
Reply
8 Replies
Xilinx Employee
Xilinx Employee
10,728 Views
Registered: ‎07-01-2010

@rph32

 

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

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------
0 Kudos
Reply
Visitor
Visitor
10,717 Views
Registered: ‎06-15-2015

@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!

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
10,705 Views
Registered: ‎07-01-2010

@rph32

 

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

---------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------
0 Kudos
Reply
Visitor
Visitor
10,694 Views
Registered: ‎06-15-2015

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

0 Kudos
Reply
Explorer
Explorer
10,684 Views
Registered: ‎02-16-2014

Try to remove/comment  _device_type = "serial";_  for both UARTLite and PS UART in DTS.

0 Kudos
Reply
Explorer
Explorer
18,834 Views
Registered: ‎02-16-2014

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>;

View solution in original post

0 Kudos
Reply
Visitor
Visitor
10,637 Views
Registered: ‎06-15-2015

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!

0 Kudos
Reply
Explorer
Explorer
10,631 Views
Registered: ‎02-16-2014
Yeah, I just assumed you got interrupt connected in a hardware design. Btw, PL I2C ip also requires an interrupt.
0 Kudos
Reply