UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Contributor
Contributor
3,099 Views
Registered: ‎06-28-2016

UIO Interrupt handling with petalinux

Hello,

 

since three weeks i try to implement an Interrupt driven Firmware with petalinux. I made a very simple Vivado design witn one gpio Output port (LED) and one gpio Input port (Button + Switches). The Button is the Interrupt source.

 

It tooks a while until i have had the uio devices installed. But now i can use them to read and write throu the gpio ports with uio.

 

Now i wish to implement the Interrupt. I have seen a lot of examples but None of them helps to solve my Problem. After this i implemented a bare metal Firmware for my design. It tooks only a half day then it works. On a bare metal System i can use the Interrupt!

 

If i compare both Versions then i see, that i do not address the Interrupt Controller in the petalinux Version (in all examples it is the same).

 

1. Must i really not configure the Interrupt Controller?

 

2. Do you have a working example with gpio Interrupt?

 

If you wish, then you can see my whole design and code.

 

Can you please Show me a way out of this Situation?

 

regards

deppenkaiser

 

 

0 Kudos
39 Replies
3,046 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

The irq controller does not need any specific setup, the uio framework handles that for you

a) are the device nodes of your ip cores generated under /dev/uioX? (meaning they are correctly bound to the driver)

b) did you connect their interrupts lines in vivado over fpga-pl irq concat?

c) if a and b is true, do you see your device under cat /proc/interrupts and are interrupts being recorded when you push the button?

D) if no, have you connected the right button?

è) have you enabled generation of irq of your ip core via axi lite registers?
0 Kudos
Contributor
Contributor
3,031 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

Hello Mr. Kratochwill,

 

thank you for your answer!

 

a.) I can read and write data with uio to both gpio ip-cores.

b.) I made a bare metal project where i can use the Interrupt.

c.) if i enter "cat /proc/Interrupts" i can not identify my uio devices because i dont know how they look like.

d.) see answer b.

e.) see answer b, in my Linux Project i use the same configuration.

 

But i see, that the "select" Routine (tcp/ip) even not work. I made a Basic tcp/ip Server where i use the "select" Routine to wait for incomming ethernet data. Like the blocking read for the uio, the select does not return too.

 

My new petalinux Project was created with the "zynq" Parameter, so i thougth that i have the right defaults to completly use the file descriptors in Linux? But it seems that i miss a kernel configure item which is needed for the "select" Routine!?

 

regards

deppenkaiser

0 Kudos
Contributor
Contributor
3,026 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

Hello Mr. Kratochwill,

 

you say, that uio needs no Interrupt Controller configuration. How does the Framework know which Kind of Interrupt sensitivity should be used (high, low, rising edge, falling edge)?

 

regards

deppenkaiser

0 Kudos
3,011 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

that info is taken from the device tree where vivado puts the correct info as you set it up.

 

if you convert your device tree blob .dtb file into a human readable .dtc file, look for the amba pl category and your gpio device in the interrupt sections. there is an irq number and the second nome is an integer refering to how it is triggered. that irq number is also in the proc/interrupts, maybe with some offset (google it, i forgot the details). irq at the concat are in increasing order top to bottom

in proc/interrupts the descrption should say uio...

 

btw in petalinux-config -c kernel drivers UIO framework, you have multiple options for uio. did you seletct that one that say "uio with generic IRQ" or smt similiar?

 

im not sure wheater uio framework has restriczions on which irq types it can be triggered, just sure its one irq line per ip core

Contributor
Contributor
2,989 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

You say: "that info is taken from the device tree where vivado puts the correct info as you set it up."

 

Ok, but in the Vivado design i never set up this Information. I'am using a AXI-GPIO-IP-Core which derives the Interrupt from the Input data. I never told the Vivado System what Kind of Interrupt this would be. Later in the Firmware (bare metal) i configure the Interrupt Controller what Kind of sensitivity it has.

 

So, in my understanding, the uio-framework does not know, what Kind of Interrupt sensitivity it should use? Where should this Information come from?

 

You say: "if you convert your device tree blob .dtb file into a human readable .dtc file [...]". Can you please tell me, how i convert the file?

 

You say: "btw in petalinux-config -c kernel drivers UIO framework, you have multiple options for uio. did you seletct that one that say "uio with generic IRQ" or smt similiar?"

 

This Option is enabled. I have a new created Default image. The only Change is the libgcc Support in the rootfs, to Support the pthread library.

 

I will test the original bsp-Settings from digilent with my simple design. And i try to convert the 2017.2 bsp into an 2017.4 Environment.

 

I will tell you the results...

0 Kudos
Contributor
Contributor
2,984 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

I tried to convert the 2017.2 BSP into 2017.4, it Fails. my last Chance is to go back to 2017.2 and so i can use that bsp.

 

Now i'am a bit tired, it is the fourth week, and i get no results...

 

By the way: @Xilinx or whereever petalinux supports, should extend the "petalinux-config"-Tool with the ability to compare configurations (e.g. kernel)!

 

The amount of items is to big as i can handle it, i'am shure that i'am not the only one.

0 Kudos
Contributor
Contributor
2,976 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

you are right, the axi-gpio has a fix way to handle Interrupts, because it derives it from Input data changes. Would i use a seperate Interrupt with own Input port, than i would define the Interrupt sensitivity in the port Settings.

 

ok... now i can give you the kudos :-)

0 Kudos
2,956 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

you can convert dtb to dtc with the device tree compiler...you get it with sudo apt install ... (forgot exact name)

0 Kudos
Adventurer
Adventurer
2,887 Views
Registered: ‎10-04-2017

Re: UIO Interrupt handling with petalinux

  The devicetree to support this will not be automatically generated.  You still have to modify the kernel command line and set the controller to be compat with uio-generic.  

   Also, after enabling interrupts on the gpio controller you have to connect the input to the zynq's PL interrupt port.  

  I just did this last week following a post here in the forum(which don't have the link for right now) and it took maybe an hour to connect and build everything.

 

jeff

 

0 Kudos
Contributor
Contributor
2,619 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

I thought, that i must only edit the dtsi-files to adapt the device-tree. I made this and after that, i got one uio device for each ip-core. I can read and write date throu the uio devices via mmap. But i can not make a blocking read on the uio with the Interrupt associated. If i use my bare metal implementation i can use the Interrupt so i think that my hardware is ok.

 

Parallel to that i will implement a tcp/ip Server. While i implement the Server i found that the select Statement does not work. It does not return like the blocking uio read even if data (interrupt) is present. The select Statement can also be used for the uio Interrupt detection; that is finaly my Goal.

 

I think, that my Linux configuration does not have the propper items enabled to achive this.

 

But, last but not least i have not really an idea what is going wrong. Theoretical it is not so much that has to be done to achive this, but i do not know what i should do next.

 

if you are still interrested, here is a link to the digilent Forum, where i discuss the same issue:

 

https://forum.digilentinc.com/topic/9174-linux-driver/

 

Thera are some related Forum threads with my Name where i describe the Details in different ways.

0 Kudos
2,610 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

can you post the code where you are opening the uio device?

as well as a screenshot of you cat /proc/interrupts?

as well as the excerpt of your compile device tree showing your generic-uio device (in petaprojects images folder as .dtc, then converted to .dtb with devicetree compiler)

 

you open the file descritor on /dev/uioX  before you mmap it with offset NULL to userspace, right?

 

you are NOT opening the descritor on /dev/mem, and mmap the device hw address?

0 Kudos
Explorer
Explorer
2,599 Views
Registered: ‎04-18-2017

Re: UIO Interrupt handling with petalinux

You can check my thread on this topic. I managed to have a custom IP with an interruption that I was reading on C https://forums.xilinx.com/t5/Embedded-Linux/Custom-Hardware-with-UIO/m-p/805185#M22515

Contributor
Contributor
2,598 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

In the attachment you see:

- Vivado Design

- petalinux dev-Folder with uio (for both GPIO's)

- Interrupts (/proc/interrupts)

 

Here is the code:

 

bool UIOAccess_Initialize(SUIOAccessPtr pUIOAccess, index_t nDeviceNumber, index_t nMapNumber) 

{

    bool bRetVal = false;

    uiostr_t info = { 0 };

    FILE* hSize = NULL;

 

    sprintf(info, "/sys/class/uio/uio%d/maps/map%d/size", nDeviceNumber, nMapNumber);

    sprintf(pUIOAccess->file, "/dev/uio%d", nDeviceNumber);

    pUIOAccess->fd = INVALID_FD;

    pUIOAccess->page_size = sysconf(_SC_PAGESIZE);

 

    if ((hSize = fopen(info, "r")) != NULL)

    {

       rewind(hSize);

       fscanf(hSize, "%x", (uint32_t*) &(pUIOAccess->map_size));

       fclose(hSize);

 

       if ((pUIOAccess->fd = open(pUIOAccess->file, O_RDWR)) != INVALID_FD)

       {

          pUIOAccess->base_addr = (memadr32_t) mmap(0, pUIOAccess->map_size, PROT_READ | PROT_WRITE, MAP_SHARED,

             pUIOAccess->fd, pUIOAccess->page_size * nMapNumber);

 

          bRetVal = true;

       }

    }

 

    return bRetVal; 

}

 

bool UIOAccess_ActivateInterrupt(SUIOAccessPtr pUIOAccess)

{

    bool bRetVal = false;

 

    if (pUIOAccess->fd != INVALID_FD)

    {

       memvalue32_t nValue = 0;

      bRetVal = write(pUIOAccess->fd, &nValue, sizeof(nValue)) != -1;

    }

 

    return bRetVal;

}

 

bool UIOAccess_WaitForInterrupt(SUIOAccessPtr pUIOAccess)

{

    bool bRetVal = false;

 

    if (pUIOAccess->fd != INVALID_FD)

    {

       memvalue32_t nValue = 0;

       bRetVal = read(pUIOAccess->fd, &nValue, sizeof(nValue)) != -1;

     }

 

    return bRetVal;

}

 

int main()

{

    SUIOAccess uio_sw = { 0 };

 

    if (UIOAccess_Initialize(&uio_sw, 1, 0))

    {

        MEMORY_ACCESS(uio_sw.base_addr, GPIO_CHANNEL_1_DIRECTION) = 0xFFFFFFFF;

        MEMORY_ACCESS(uio_sw.base_addr, GPIO_GLOBAL_IRQ_ENABLE) = 0x8000000;

        MEMORY_ACCESS(uio_sw.base_addr, GPIO_IRQ_ENABLE) = 0x00000001;

 

 

        while(true)

        {

            MEMORY_ACCESS(uio_sw.base_addr, GPIO_IRQ_STATUS) = 0x1;

 

            if (UIOAccess_ActivateInterrupt(&uio_sw))

            {

                UIOAccess_WaitForInterrupt(&uio_sw);

            }

        }

 

        UIOAccess_DeInitialize(&uio_sw);

    }

 

    return 0;

}

 

vivado design.JPG
dev.JPG
interrupts.JPG
0 Kudos
2,584 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

your /dev show uio0 uio1, thats ok ...if your device tree would be wrong it would not be there...

vavado design also looks ok at first sight...

 

just wondering about yout mmap line 

 

SyntaxEditor Code Snippet

 pUIOAccess->base_addr = (memadr32_t) mmap(0, pUIOAccess->map_size, PROT_READ | PROT_WRITE, MAP_SHARED,

             pUIOAccess->fd, pUIOAccess->page_size * nMapNumber);
pUIOAccess->page_size * nMapNumber

 the offset must be Zero when mmap the uio device...otherwise you have some offset within the memory map of the uio device -> you might be able to write an register and reads but in that case it would not be the register you think it is

 

by accessing the registers of the axi gpio, you activated the irq generation, right? (i dont know by hard which register is for what)

 

i also noticed in your activate irq function

SyntaxEditor Code Snippet

      memvalue32_t nValue = 0;

      bRetVal = write(pUIOAccess->fd, &nValue, sizeof(nValue)) != -1;

that you are wrting 0 to activate the IRQ, which is supposed to be a 1 (or at least it is in my working code)...might the reason your irq never gets armed

 

 

 

0 Kudos
Contributor
Contributor
2,576 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

1. memvalue32_t nValue = 0; to initialize the blocking read.

 

I have different versions, because i try it and may receive some Errors... But until now, their is no different between value = 1 and value = 0. Both did not work.

 

If i make a blocking read with "nValue" initialized with Zero, then i would get in "nValue" the total Interrupt count that happend until the last read. So i thought it could not wrong if i write a Zero into that device :-)

 

 

2. pUIOAccess->page_size * nMapNumber

 

The Code is from a "digilent" expert that Shows how to handle ("dual port" ???) devices. In my case "nMapNumber" is always Zero.

 

Your conclusion would be right, if i never used the nValue = 1 variant. Please look at the registered interrups in "/proc/Interrupt". The uio devices are not shown there. Someone told me, that they should.

 

The second aspect is, that i have also a Problem with the tcp/ip "select" Statement, which has a (the same?) Problem too. It does not return even when incomming Ethernet data is present.

0 Kudos
Adventurer
Adventurer
2,566 Views
Registered: ‎10-04-2017

Re: UIO Interrupt handling with petalinux

Your controller looks like it is only has GPIO output? Is that true? I seem to recall that interrupts are only generated when when the state changes on in *input* GPIO.
I don't understand why you have two /dev/uio entries but you need to look a the names and make sure you are opening the one associated with gpio(irq 61) that the first PL fabric interrupt.
0 Kudos
Contributor
Contributor
2,562 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

No, thats not true. It has one "three bit Input" (two Switches and one button), and one "three bit" Output (three LED's). A Button press throws the Interrupt.

 

 

In my design are two GPIO-IP-Cores with different base addresses, with or without uio i have two different devices in Linux.

 

Because of my uio device tree configuration, i know wich one has the Interrupt. You can also test the direction by reading and writing data with the GPIO's so you can test which one has the Interrupt. Furthermore you can test it with a bare metal implementation.

 

0 Kudos
Contributor
Contributor
2,552 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

Can you tell me, where i can find the kernel Settings:

 

CONFIG_UIO=y
CONFIG_UIO_PDRV_GENIRQ=y

 

I have the Linux/arm 4.9.0 Kernel Configuration available.

 

Tags (3)
0 Kudos
Explorer
Explorer
2,543 Views
Registered: ‎04-18-2017

Re: UIO Interrupt handling with petalinux

You can use / to search for that. It will tell you where to look.

2,433 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux


@deppenkaiserwrote:

 

 

If i make a blocking read with "nValue" initialized with Zero, then i would get in "nValue" the total Interrupt count that happend until the last read. So i thought it could not wrong if i write a Zero into that device :-)

 

 

Your conclusion would be right, if i never used the nValue = 1 variant. Please look at the registered interrups in "/proc/Interrupt". The uio devices are not shown there. Someone told me, that they should.

 

 




first according to the documentation of the uio framework it is wrong to write a 0 if you want to activate the irq...even the wrong amount of bytes wont activate it

based on the cat /proc/interrupts you posted, your gpio device is showing up at gic- 61...which should be right. the number there is offset by 32 (there is a lengths reason for that i dont understand fully) from the value in the device tree and is usually the spot of the first F2P_irq.

 

if you check the node of your gpio (the one with irq) in the device tree  it should say 

interrupts = <0x0 0x1d 0x4>;  right?  the middle number should be 29. but that usually happens automatically...just check it to be sure (yous till ahve not posted your device tree)

 

just bdw: you also added in the device tree the bdining of the 

uio_pdrv_genirq

to your generic-uio keyword? (i suppose so)

 

bootargs = "console=ttyPS0,115200 earlyprintk uio_pdrv_genirq.of_id=generic-uio";

 

 

from that it seems everything is ok hw vise and smt might be wrong in your software...

 

 

Contributor
Contributor
2,423 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

My device tree:

 

==========================================================================================

 

/include/ "system-conf.dtsi"
/
{
 chosen
 { 
  bootargs = "console=ttyPS0,115200 earlyprintk uio_pdrv_genirq.of_id=generic-uio"; 
 };
};

&axi_gpio_0
{
 compatible = "generic-uio";
};

&axi_gpio_1
{
 compatible = "generic-uio";
};

 

=============================================================================================

 

/*
 * CAUTION: This file is automatically generated by Xilinx.
 * Version: 
 * Today is: Wed Mar 28 00:28:26 2018
 */


/ {
 amba_pl: amba_pl {
  #address-cells = <1>;
  #size-cells = <1>;
  compatible = "simple-bus";
  ranges ;
  axi_gpio_0: gpio@41200000 {
   #gpio-cells = <2>;
   compatible = "xlnx,xps-gpio-1.00.a";
   gpio-controller ;
   reg = <0x41200000 0x10000>;
   xlnx,all-inputs = <0x0>;
   xlnx,all-inputs-2 = <0x0>;
   xlnx,all-outputs = <0x1>;
   xlnx,all-outputs-2 = <0x0>;
   xlnx,dout-default = <0x00000000>;
   xlnx,dout-default-2 = <0x00000000>;
   xlnx,gpio-width = <0x3>;
   xlnx,gpio2-width = <0x20>;
   xlnx,interrupt-present = <0x0>;
   xlnx,is-dual = <0x0>;
   xlnx,tri-default = <0xFFFFFFFF>;
   xlnx,tri-default-2 = <0xFFFFFFFF>;
  };
  axi_gpio_1: gpio@41210000 {
   #gpio-cells = <2>;
   #interrupt-cells = <2>;
   compatible = "xlnx,xps-gpio-1.00.a";
   gpio-controller ;
   interrupt-controller ;
   interrupt-parent = <&intc>;
   interrupts = <0 29 4>;
   reg = <0x41210000 0x10000>;
   xlnx,all-inputs = <0x1>;
   xlnx,all-inputs-2 = <0x0>;
   xlnx,all-outputs = <0x0>;
   xlnx,all-outputs-2 = <0x0>;
   xlnx,dout-default = <0x00000000>;
   xlnx,dout-default-2 = <0x00000000>;
   xlnx,gpio-width = <0x3>;
   xlnx,gpio2-width = <0x20>;
   xlnx,interrupt-present = <0x1>;
   xlnx,is-dual = <0x0>;
   xlnx,tri-default = <0xFFFFFFFF>;
   xlnx,tri-default-2 = <0xFFFFFFFF>;
  };
 };
};

 

============================================================================================

 

Ok, i now understand: 29 + 32 = 61

 

Someone told me, that in the /proc/Interrupts-table the keyword "uio" should be listed. But i see now it must not!

 

I try to give you more kudos...

0 Kudos
2,416 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

so from that it looks like your hw is fine...
device is shwoing up
device nodes are generated
interrupt is showing in proc file...
also concurent with your claim that bare metal everything works...

so the mistake might be how you activate the irq or how you config the gpio modulues...

look at the code example i pmd you...maybe spot smt differtent??
otherwise i am out of ideas..
0 Kudos
Contributor
Contributor
2,412 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

Ok, i have the same Problem, i have no more ideas too!

 

The current device tree is as shown in message above this message. I used nValue = 1 (activate interrupt) again, but it doesn't help. I changed my kernel config like it was told me:

 

CONFIG_UIO = y

CONFIG_UIO_PDRV_GENIRQ = y

 

before i had:

 

CONFIG_UIO = y

CONFIG_UIO_PDRV_GENIRQ = m

 

But i did this also in the past, I created my project again (three times). I told the community, that i have also a Problem with tcp/ip select, but this has not been discussed until now.

 

What development board do you use? Thank you for your help!

 

Here is my complete actual code (pictures):

 

 

main.JPG
uio_code.JPG
uio_code1.JPG
config00.JPG
config01.JPG
0 Kudos
2,402 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

frist i would enable irq on all channels of your gpio, right in the beginnign of your code where you config the gpio, just to be sure...

further i noticed that you are using type memvalue_32_t as buffer for writing to the device which i assume is an usinged type...

from the very comprehensive guide for uio under
https://www.kernel.org/doc/html/v4.13/driver-api/uio-howto.html
i remebered:

/dev/uioX is a read-only file. A read() will always block until an interrupt occurs. There is only one legal value for the count parameter of read(), and that is the size of a signed 32 bit integer (4). Any other value for count causes read() to fail. The signed 32 bit integer read is the interrupt count of your device.

a rule you are clearly violating by using an unsinged type...another possible cause
0 Kudos
Contributor
Contributor
2,394 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

Now i follow your strict guidance (see Pictures), but it won't help:

 

I think, it's not my day (week, month?)... One question: If i have no App reading the Interrupt, what would happen in the /proc/Interrupts file while pressing the button? Would Linux Register the Event even with no App running?

 

main1.JPG
uio_code2.JPG
0 Kudos
2,381 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

Strange... As I was just using the code again I sent you everything was working. I use it for different uio devices like vdma.

To your question.
No proc interrupts would not count anything. When there is no 1 written to the device, the irq line is just disabled, hence irq is not registered by the Uio kernel driver if I remember correctly (no guarantee but that's what I observed)
0 Kudos
Adventurer
Adventurer
2,369 Views
Registered: ‎10-04-2017

Re: UIO Interrupt handling with petalinux

I had a problem a couple of weeks ago where UIO wasn't working for me in python so I wrote a C program to see if it was working or not.  Here is the basic parts

 void seq_irq_handler(int fd)
{
    int nb, pending = 1;
    int sample_count = 1;


    nb = write(fd, &pending, sizeof(pending));
    if (nb < (int)sizeof(pending)) {
        perror("write");
        close(fd);
        exit(-1);
    }

    while(!do_exit) {
        pending = 0;
        nb = read(fd, (void *)&pending, sizeof(pending));
        if (nb == sizeof(pending) && pending) {
            if (debug) {
                printf("got intr\n");
            }
            // re-enable uio interrupt, pending is one if we are here
            write(fd, &pending, sizeof(pending));
        }
        else {
            printf("nb = %d\n", nb);
        }
        if (exit_samples && exit_samples == sample_count++)
            break;
    }
}


 // and in main
   sprintf(uio_dev, "/dev/uio%d", uio_num);
    fduio = open(uio_dev, O_RDWR); 
    if (fduio < 1) {
        printf("couldn't open uio for %s\n", imucap_name);
        ret = -1;
        goto err;
    }

   seq_irq_handler(fduio);

 My problem ended up being I had not assigned the AXI interrupt controller I was using an interrupt parent even though it was connected to the zynq.

 

 Have you confirmed that the GPIO interrupt is actually firing but looking on a scope or adding an ILA?

2,357 Views
Registered: ‎04-20-2017

Re: UIO Interrupt handling with petalinux

@deppenkaiser Jrhtech has also the void ptr cast in the read request. Maybe that's missing in your code. I could imagine the way you wrote it that sizeof(int)*&int is written in your case instead of one int. The Uio driver seems to be very picky about what is written
0 Kudos
Contributor
Contributor
2,345 Views
Registered: ‎06-28-2016

Re: UIO Interrupt handling with petalinux

juergen.kratochwill@grapho-metronic.com,

@jrhtech,

@aripod,

 

first i will thank you very much for your help! I'am now writing my Masterthesis and the core funcionality in my "Project" is a tcp/ip Server with ip-core Support (uio Interrupt). I'am using the Arty-Z7-20 board with petalinux 2017.4 and ubuntu 16.04 LTS as host.

 

It is very important to me, that i can handle uio-interrupt and tcp/ip-select, unfortunately both did not work. I think it demands on the same base functionality which must set up in the kernel. I build the kernel with only the "zynq" Option plus the two uio Settings plus a gcc package.

 

So i decided to buy a new board which has defititly the needed and proofed capabilities for my "Project".

 

Here my question:

 

Can you please tell me what board and petalinux Version you use?

 

I will buy me the same and will Setup my System in a similar way to achieve this.

0 Kudos