I'm currently trying to develop a simple Kernel module packet reflector based on LSDK 19.09 on LS1043ARDB board. The rx side is ok since i manage to dump the received frames, however it crashes when i enqueue the packets back to an egress queue.
The set up is the following: I send a ping from my pc to the board through an ethernet connection to the SGMII port. On the board I have a rx frame queue mapped to a core and a tx frame queue mapped to the SGMII.P2 port (fm1-mac5). I configure them using fsl_qman.h APIs. To be shure that packets arrive to the rx queue I use the fmc tool with a PCD configuration that steers all received packet to it.
When a packet arrives it raises an interrupt that launches a dqrr callback. I enqueue back the packets with qman_enqueue() API and then it crashes. Could you tell me if it is because of bad rx/tx queue initialization or have I missed something on ressource allocation like buffer allocation or port initialization? Should I use dpdk instead? I have attached my module code and the crash log.