summaryrefslogtreecommitdiffstats
path: root/fw/v1/pam.p
diff options
context:
space:
mode:
Diffstat (limited to 'fw/v1/pam.p')
-rw-r--r--fw/v1/pam.p56
1 files changed, 56 insertions, 0 deletions
diff --git a/fw/v1/pam.p b/fw/v1/pam.p
index 7e9dc81..4e20d1a 100644
--- a/fw/v1/pam.p
+++ b/fw/v1/pam.p
@@ -1449,6 +1449,23 @@ l_nextRoute_copy:
1449 jmp l_nextRoute_eth_dest_copy_send 1449 jmp l_nextRoute_eth_dest_copy_send
1450 1450
1451l_nextRoute_eth_dest_copy_host: 1451l_nextRoute_eth_dest_copy_host:
1452l_nextRoute_eth_dest_copy_host_queue_bounce:
1453 // Check for Queue Bounce operation
1454l_nextRoute_eth_dest_copy_host_queue_bounce_ddr:
1455 qbbc l_nextRoute_eth_dest_copy_host_queue_bounce_msmc, s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_ddr
1456 clr s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_ddr
1457 sbco s_paPktCapScr.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
1458 lbco s_paPktCapScr.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2
1459 jmp l_nextRoute_eth_dest_copy_host_queue_bounce_end
1460
1461l_nextRoute_eth_dest_copy_host_queue_bounce_msmc:
1462 qbbc l_nextRoute_eth_dest_copy_host_queue_bounce_end, s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_msmc
1463 clr s_paPktCapScr.destQueue.t_pa_forward_queue_bounce_msmc
1464 sbco s_paPktCapScr.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
1465 lbco s_paPktCapScr.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2
1466 // pass through
1467l_nextRoute_eth_dest_copy_host_queue_bounce_end:
1468
1452 // Packet Capture activity 1469 // Packet Capture activity
1453 mov s_pktExtDescr.threadId, PA_DEST_CDMA 1470 mov s_pktExtDescr.threadId, PA_DEST_CDMA
1454 mov s_cdeCmdPkt.destQueue, s_paPktCapScr.destQueue 1471 mov s_cdeCmdPkt.destQueue, s_paPktCapScr.destQueue
@@ -4497,6 +4514,23 @@ l_rxVerifyPktErr_1_2:
4497 sbco s_pktCxt, cCdeOutPkt, SIZE(s_pktDescr), b0 4514 sbco s_pktCxt, cCdeOutPkt, SIZE(s_pktDescr), b0
4498 4515
4499l_rxVerifyPktErr_1_3: 4516l_rxVerifyPktErr_1_3:
4517l_rxVerifyPktErr_1_3_queue_bounce:
4518 // Check for Queue Bounce operation
4519l_rxVerifyPktErr_1_3_queue_bounce_ddr:
4520 qbbc l_rxVerifyPktErr_1_3_queue_bounce_msmc, s_rxCmdVerifyPktErr.queue.t_pa_forward_queue_bounce_ddr
4521 clr s_rxCmdVerifyPktErr.queue.t_pa_forward_queue_bounce_ddr
4522 sbco s_rxCmdVerifyPktErr.queue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
4523 lbco s_rxCmdVerifyPktErr.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2
4524 jmp l_rxVerifyPktErr_1_3_queue_bounce_end
4525
4526l_rxVerifyPktErr_1_3_queue_bounce_msmc:
4527 qbbc l_rxVerifyPktErr_1_3_queue_bounce_end, s_rxCmdVerifyPktErr.queue.t_pa_forward_queue_bounce_msmc
4528 clr s_rxCmdVerifyPktErr.queue.t_pa_forward_queue_bounce_msmc
4529 sbco s_rxCmdVerifyPktErr.queue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
4530 lbco s_rxCmdVerifyPktErr.queue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2
4531 // pass through
4532l_rxVerifyPktErr_1_3_queue_bounce_end:
4533
4500 // Send the packet on its way 4534 // Send the packet on its way
4501 ldi r4, CDE_CMD_PACKET_ADVANCE | ((CDE_FLG_SET_PSINFO | CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE) << 8) 4535 ldi r4, CDE_CMD_PACKET_ADVANCE | ((CDE_FLG_SET_PSINFO | CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE) << 8)
4502 mov s_cdeCmdPkt.psInfoSize, s_rxCmdCxt.psInfoSize 4536 mov s_cdeCmdPkt.psInfoSize, s_rxCmdCxt.psInfoSize
@@ -4768,6 +4802,28 @@ l_paRxPayloadSplit2:
4768 mov s_cdeCmdWd.byteCount, s_rxSplitCxt.hdrSize 4802 mov s_cdeCmdWd.byteCount, s_rxSplitCxt.hdrSize
4769 xout XID_CDECTRL, s_cdeCmdWd, SIZE(s_cdeCmdWd) 4803 xout XID_CDECTRL, s_cdeCmdWd, SIZE(s_cdeCmdWd)
4770 4804
4805l_paRxPayloadSplit2_queue_bounce:
4806 // Move to the end of the packet
4807 mov s_cdeCmd.v0.w0, CDE_CMD_ADVANCE_TO_END
4808 xout XID_CDECTRL, s_cdeCmd, 4 // Send the command
4809
4810 // Check for Queue Bounce operation
4811 wbs s_flags.info.tStatus_CDEOutPacket
4812l_paRxPayloadSplit2_queue_bounce_ddr:
4813 qbbc l_paRxPayloadSplit2_queue_bounce_msmc, s_rxSplitCxt.destQueue.t_pa_forward_queue_bounce_ddr
4814 clr s_rxSplitCxt.destQueue.t_pa_forward_queue_bounce_ddr
4815 sbco s_rxSplitCxt.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
4816 lbco s_rxSplitCxt.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG, 2
4817 jmp l_paRxPayloadSplit2_queue_bounce_end
4818
4819l_paRxPayloadSplit2_queue_bounce_msmc:
4820 qbbc l_paRxPayloadSplit2_queue_bounce_end, s_rxSplitCxt.destQueue.t_pa_forward_queue_bounce_msmc
4821 clr s_rxSplitCxt.destQueue.t_pa_forward_queue_bounce_msmc
4822 sbco s_rxSplitCxt.destQueue, cCdeOutPkt, OFFSET(s_pktDescr.swinfo1) + 2, 2
4823 lbco s_rxSplitCxt.destQueue, PAMEM_CONST_CUSTOM, OFFSET_QUEUE_BOUNCE_CFG+2, 2
4824 // pass through
4825l_paRxPayloadSplit2_queue_bounce_end:
4826
4771 // Forward the packet out 4827 // Forward the packet out
4772 zero &s_cdeCmdPkt, SIZE(s_cdeCmdPkt) 4828 zero &s_cdeCmdPkt, SIZE(s_cdeCmdPkt)
4773 mov s_cdeCmdPkt.optionsFlag, CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE 4829 mov s_cdeCmdPkt.optionsFlag, CDE_FLG_SET_FLOWID | CDE_FLG_SET_DESTQUEUE