Page 1 of 2

creating a output register/interrup from PL to arm processor

PostPosted: Tue May 29, 2018 12:30 pm
by dipin
hi,

finally i successfully implemented https://www.parallella.org/2016/01/21/creating-an-fpga-accelerator-in-15-minutes/ this project and added a counter. now output of the adder is printing in the Ubuntu terminal. Here i need an extra control signal or register to give some control to the total design. when the counter reaches a particular value, i need to give a signal to arm processor. so anybody know how to how to add and extra output reg to above design ?
any help is really appreciated
thanks and regards
dipin divakar

Re: creating an extra output register from PL to arm process

PostPosted: Wed May 30, 2018 12:16 pm
by dipin
hi,
what i am trying to do is an interrupt which will goes from fpga to arm processor.. if anybody had any clue please help...
i can give it to the zynq processor by enabling the interrupt option. but how can i acess it in the arm processor
thanks in advance

Re: creating an extra output register from PL to arm process

PostPosted: Fri Jun 08, 2018 2:26 pm
by olajep
dipin wrote:hi,
what i am trying to do is an interrupt which will goes from fpga to arm processor.. if anybody had any clue please help...
i can give it to the zynq processor by enabling the interrupt option. but how can i acess it in the arm processor
thanks in advance


Check out the oh elink mailbox implementation:

Some pointers:

parallella_base verilog top block
https://github.com/parallella/oh/blob/m ... lla_base.v (search for mailbox_irq)

Vivado 'top block'
https://github.com/parallella/oh/blob/m ... d.tcl#L248 (search for mailbox_irq)

Device tree:
https://github.com/parallella/parallell ... 2677-L2678

Driver:
https://github.com/parallella/parallell ... 1.dtsi#L94

HTH
// Ola

Re: creating a output register/interrup from PL to arm proce

PostPosted: Tue Jun 12, 2018 4:32 am
by dipin
HI,

thanks for the replay olajep :)
i connected the my interrupt to zynq processor IRQ_F2P pin. and i am using this c program https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/scugic/examples/xscugic_example.c to get the interrupt working. but my problem is the xil_drivers .my drivers are throwing error .

now how can i get the interrupt in arm side of the parallella board . which drivers are required for it. Is it xilinx drivers or we need to write our on ??
did parallella will supply some interface for this?

please share your views
thanks and regards

Re: creating a output register/interrup from PL to arm proce

PostPosted: Wed Jun 13, 2018 6:18 pm
by olajep
dipin wrote:HI,

thanks for the replay olajep :)
i connected the my interrupt to zynq processor IRQ_F2P pin. and i am using this c program https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/scugic/examples/xscugic_example.c to get the interrupt working. but my problem is the xil_drivers .my drivers are throwing error .

IRQ_F2P is a 16 bit wide bus so you have to decide which pin you map it to.

See this xilinx forums thread:
https://forums.xilinx.com/t5/Embedded-L ... d-p/275370

dipin wrote:now how can i get the interrupt in arm side of the parallella board . which drivers are required for it. Is it xilinx drivers or we need to write our on ??
did parallella will supply some interface for this?
please share your views
thanks and regards


if you modify the device tree you should be able to use the uio_pdrv_genirq driver and then access your PL from user space.
This has been discussed previously on this forum search for "UIO"

// Ola

Re: creating a output register/interrup from PL to arm proce

PostPosted: Fri Jun 29, 2018 9:42 am
by dipin
Hi @olajep ,

if you modify the device tree you should be able to use the uio_pdrv_genirq driver and then access your PL from user space.
This has been discussed previously on this forum search for "UIO"


How can i do that ?

One more thing is is it good to do either using "elink mailbox example " or using "UIO driver" which is a better idea ?
I tried using uio, I recompiled the kernel, but still its not working (uio drivers not showing up )

Thanks and Regards

Re: creating a output register/interrup from PL to arm proce

PostPosted: Thu Sep 06, 2018 11:09 pm
by cpantel
hi dipin

Have you shared your experience somewhere? I am stuck with some common errors

dipin wrote:hi,

finally i successfully implemented https://www.parallella.org/2016/01/21/creating-an-fpga-accelerator-in-15-minutes/ this project and added a counter. now output of the adder is printing in the Ubuntu terminal. Here i need an extra control signal or register to give some control to the total design. when the counter reaches a particular value, i need to give a signal to arm processor. so anybody know how to how to add and extra output reg to above design ?
any help is really appreciated
thanks and regards
dipin divakar

Re: creating a output register/interrup from PL to arm proce

PostPosted: Fri Oct 05, 2018 5:17 am
by dipin
HI,
If you tell me what is the problem you are finding, i can help you
hints:: you have to use the old version of vivado.. 15.2 or 15.4 i think...
else the ip will show as a black box (because it will be empty if you uses the script).
if you are using 15.4, again you have to change the script file to 15.4 from 15.2.
then in the program, you have to change to "dev/epiphany" to "dev/mem"
then only it will map to fpga memory.

thanks and regards

Re: creating a output register/interrup from PL to arm proce

PostPosted: Mon Oct 08, 2018 1:40 am
by cpantel
Hi dipin

please look this thread:

viewtopic.php?f=49&t=3411

I have used both 15.2 and 15.4

Thank you

Re: creating a output register/interrup from PL to arm proce

PostPosted: Mon Oct 08, 2018 4:46 am
by dipin
Hi,

now what was the problem you are facing, same as in the post you mentioned .

thanks