Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12599 Discussions

Interrupts from HPS peripherals

Altera_Forum
Honored Contributor II
1,264 Views

Board : DE-10 ( Cyclone V SoC ) 

OS : FreeRTOS 

 

Hi, I'm writing a driver for FreeRTOS+TCP stack. I configured the EMAC1 and DMA peripherals. 

At this moment, everything works fine, except that I don't get any interrupt from EMAC1. 

So for the moment I poll the EMAC and DMA status bits. I see them come high, and I can clear them by writing 1's. 

 

What I did is : 

 

● Program the GIC to enable interrupt 152 ( ALT_INT_INTERRUPT_EMAC1_IRQ ) 

● Set the handler + data 

● Set a priority and trigger level 

● program the peripheral ( EMAC interrupt mask reg 15, and EMAC/DMA interrupt enable DMA register 7 ) 

 

As a test, I tried to get interrupt from UART-0. The device works fine, but I don't see interrupts neither. 

 

The only interrupt that does work is interrupt 29 ( ALT_INT_INTERRUPT_PPI_TIMER_PRIVATE ). That timer is used to get a FreeRTOS system clock. 

 

I asked the same question on the FreeRTOS forum, but without success. 

See https://sourceforge.net/p/freertos/discussion/382005/thread/a80a5ff7/?limit=250#d738 

 

Thanks.
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
399 Views

The problem is solved. 

 

I had to call: 

 

alt_int_dist_target_set( ALT_INT_INTERRUPT_EMAC1_IRQ, (alt_int_cpu_target_t) 0x01); 

 

in order to direct the EMAC1 interrupts to the first core. 

 

That call will set "Interrupt Processor Targets Registers", which start at 0x800 of the GIC. 

 

Regards.
0 Kudos
Reply