diff options
Diffstat (limited to 'fw/v1/pam.p')
-rw-r--r-- | fw/v1/pam.p | 56 |
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 | ||
1451 | l_nextRoute_eth_dest_copy_host: | 1451 | l_nextRoute_eth_dest_copy_host: |
1452 | l_nextRoute_eth_dest_copy_host_queue_bounce: | ||
1453 | // Check for Queue Bounce operation | ||
1454 | l_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 | |||
1461 | l_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 | ||
1467 | l_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 | ||
4499 | l_rxVerifyPktErr_1_3: | 4516 | l_rxVerifyPktErr_1_3: |
4517 | l_rxVerifyPktErr_1_3_queue_bounce: | ||
4518 | // Check for Queue Bounce operation | ||
4519 | l_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 | |||
4526 | l_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 | ||
4532 | l_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 | ||
4805 | l_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 | ||
4812 | l_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 | |||
4819 | l_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 | ||
4825 | l_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 |