How to generate an interrupt on a received network packet?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to generate an interrupt on a received network packet?

1,716 Views
pbender22
Contributor I

I am working on implementing the frame manager on a custom in house RTOS. I have managed to configure the MAC, PHY and send and receive network packets.  I would like to generate an interrupt when a network packet is received but I am unable to find such interrupt. How generate an interrupt when a packet is received?

Labels (1)
0 Kudos
5 Replies

1,626 Views
bpe
NXP Employee
NXP Employee

If you still cannot get interrupts form FMAN in IM, then:

  • Make sure you loaded a valid FMAN microcode. IM is an FM controller feature  which requires the presence of the microcode. Microcode binaries can be found  at the link below:
       
       https://github.com/NXP/qoriq-fm-ucode
       
  • Make sure that ingress frames are actually received and RxBD status is properly  updated.
  • For each received (and confirmed in an RxBD) frame, check that the  flag is  set in FMFP_FCEV. This helps to understand  at what level interrupt requests stop. Note that FMFP_FCEV is a W1C  register.
       
       

Have a great day,

Platon

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,626 Views
pbender22
Contributor I

My configuration is using all six of the 1G ethernet ports. So I have a receive queue for each port with RxFIntM enabled (set to 1) and FPMEVT_SEL set to 0.  I have enabled the interrupt in  FMFP_CEE0, FPM FMan Controller Event Enable 0 by setting RxF, Receive frame interrupt event (bit0) to 1. I would expect that FMFP_FCEV0, FPM FMan Controller Event 0, RxF Receive frame interrupt event should be set to 1 if a packet is received on any of the mapped ports.

This in turn generate an interrupt at vector 76 , FMAN normal irq, on the GIC.

0 Kudos

1,626 Views
bpe
NXP Employee
NXP Employee

Frame Rx interrupt generation in independent mode is controlled by
RxQD[RxFIntM] - See Section 5.12.15.5.2 of LS1043ADPAARM. The interrupt
request is reflected in FMFP_FCEV and by default is masked in FMFP_CEE.
These registers are described in Sections 5.7.3.7 and 5.7.3.8, bit mapping
is defined in Section 5.12.22.

Further handling is done according to the global SoC mappings and
rules, refer to LS1043ARM, Chapter 5 and ARM GIC-400 Technical Reference Manual.


Have a great day,
Platon

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,626 Views
pbender22
Contributor I

I am not using any specific IDE. I use EMACS and a compiler from Mentor Graphics. The device that I am using is a LS1034. I have extracted the much of the code from Uboot fman driver. I am unable to figure out how to generate an interrupt when a network packet is received. I am able to sent packets on the network and receive them into fman buffers. Is there an network API available for bare metal projects? The end goal is to port a custom OS to the LS1043.   

0 Kudos

1,626 Views
Fabian_R
NXP TechSupport
NXP TechSupport

Hello Patrik,

Could you provide a little more info about the NXP product and IDE you are using? 


Have a great day,
Fabian

Best Regards,
Fabian
0 Kudos