This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PA LLD next failure route question

Eric,

I am trying to make a change to my design to be able to do the steps described below but am running into problems. The example below is on a single core but of course I intend to extend the idea to multicore.

For IPv4 and UDP packets, I want the PA after matching on MAC address and then IP address and protocol type and ip type matching to be directed to a regular LUT2 port # matching, if it fails then I want it to be directed to a custom LUT2 entry with a arange of UDP ports. So for example UDP port 0x8000 could be the port # I am trying to match on using the pa_addPort command and then if it fails then I want to setup in the pa_addIp to have the nextrtFail set to use custom LUT2 with a range of UDP ports. I am trying to do this so that I can have the PA differentiate between say port 0x8000 and ports 0x8001-0x80FF and can then have the PA tag them with different swInfo words and also possible remove the ethernet and other headers for those packets received on port 0x8000.

Is what I am trying feasible? I cannot see any reason why it should not be the case but...

When I tried setting up by using the pa_addIp command with routeInfo set to {DEST_CONTINUE_LUT2, no custom type} and ntFailInfo set to {DEST_CONTINUE_LUT2, custom LUT2 type and custom Index = 1), the PA LLD returned error -10 which is errconfig. Looking through the pa LLD code for pa_addIp it points to only two cases when this happens:

1. if the ipInfo fields spi, greProto, sctpPort are non-zero which is not the case for my ipInfo structure.

2. if the iptype is not IPV4 or IPv6 which is again not the case for me.

Thanks, Aamir

  • Hi, Aamir:

    Unfortunatly, I am not sure your intended use case is feasible.
    When a LUT1 entry is added, the caller can specify a routeInfo which will be invoked when match occurs and a nextFail routeInfo which will be invoked only if the packet is delivered to the next stage and no matched occurs. Please note that we can not deliver the packet back to the previous stage or perform another match at the current stage.
    Therefore, the only option for the nextFail route is to discard the packet or deliver it to host queue.

    The error is caused by unsupported nextFail Route configuration.

    Please click the "verify answer" button if I answer your question.

    Best reagrds,

    Eric

     

  • Eric,

    Thanks for your reply. Okay so I cannot setup the nextRtFail to be anything other than discard or send to host.

    What happens if two entries in a stage match a packet i.e. Can one enter two entries on  particular stage that will result in a packet matching both of them? If that is allowed, what is the behaviour of the PA?

    I have a case of four LUT1 entries (checking for IP type and protocols) linked to the same MAC entry so I would think a packet that matches on the MAC entry would then go the level 1 match and check the first IP entry if it matches, then onto the custom LUT2 entry linked to it, otherwise it will try the second entry and so on, discarding the packet if it remains unmatched (Is this not performing another match at the current stage?). So using the same idea, should I not be able to have two LUT2 entries linked to the IPv4 and UDP LUT1 entry and when it matches on the particular port # on the first entry, it sends to the host with a swInfo word. If it fails it then try to match on the second entry which is on a range of ports and if it matches it sends to the host too but with a different swInfo word. The packet  with UDP port # 0x8000 matches on the first so will not make it through to subsequent entries but those with ports 0x8001 to ox80ff make it through to the custom LUT2 rule that matches on the range of ports.

    Is their any way I might be able to do what I am requesting within the confines of the PA currently? What about in the future with changes to the PA (so long as it is within software changes and does not require any hardware change to the PA)? Of course, I could handle the packets differently on the corePac when they are received but having the PA do this would provide a very elegant design as well as a performance and memory boost if I could strip of the headers in the headers in the PA for those packets that match on the single port # as I am not interested in all of those headers for traffic on that port #. I have another thread on this subject and David Brown has replied that I cannot do so. I have a reply to that and a query on the use of the option pa_CMD_REMOVE_HEADER within the pa_configCmdSet function.

    Thanks, Aamir 

  • Hi, Aamir:

    Have you checked the PA version?
    I believe that you are using an old version of PA LLD. Please consider to upgrade.

    What happens if two entries in a stage match a packet?
    [Eric] No, the PASS will only match the first entry only. That is why we need to enter the more general entry to PASS berfore the more specific entry is added.

    I have a case of four LUT1 entries (checking for IP type and protocols) linked to the same MAC entry so I would think a packet that matches on the MAC entry would then go the level 1 match and check the first IP entry if it matches, then onto the custom LUT2 entry linked to it, otherwise it will try the second entry and so on, discarding the packet if it remains unmatched (Is this not performing another match at the current stage?). So using the same idea, should I not be able to have two LUT2 entries linked to the IPv4 and UDP LUT1 entry and when it matches on the particular port # on the first entry, it sends to the host with a swInfo word. If it fails it then try to match on the second entry which is on a range of ports and if it matches it sends to the host too but with a different swInfo word. The packet  with UDP port # 0x8000 matches on the first so will not make it through to subsequent entries but those with ports 0x8001 to ox80ff make it through to the custom LUT2 rule that matches on the range of ports.

    [Eric] No, that is not how it works. PASS will perform a single lookup at each stage, if there is a match, the packet will be delivered to the next stage or the host queue based on the routing information, if there is no match, the packet will be discarded or follow the nextFail route of the previous match.

    Is their any way I might be able to do what I am requesting within the confines of the PA currently?
    [Eric] No, PASS is not designed to do what you ask for.

    I am not going to answer the other thread since I have already provided the answer here.

    Best regards,

    Eric

     

     

     

     

     

     

     

  • Eric,

    thanks for your reply. Okay I am resigned to the fact that the PA is not able to do what I am suggesting.

    Thanks, Aamir

    P.s: what is the use of the config CmdSet generally speaking and what is the use case of the pa_CMD_REMOVE_HEADER? What is the parsed header that it is talking about?

  • Hi, Aamir:

    Please refer to pa.h or the PA doxygen for the general usage of tx commands and rx commad set operations!
    The pa_CMD_REMOVE_HEADER and pa_CMD_REMOVE_TAIL can be used to remove the current protocol header and other protocol tails so that only the protocol payload is delivered to  the host queue. For example:

    After
    LUT1 stage 1: MAC payload (including CRC)
    LUT1 stage 2: IP payload
    LUT2 stage 1:  UDP/TCP payload

    Best regards,

    Eric

     

     

     

  • Eric,

    I have had a look through the pa.h and the PA doxygen to get a sense of how the command actually operates and I feel that the documentation is inadequate in my opinion to address how to effectively use the PA and all of its features to do what I want in particular with the command set operation. It really could to with more examples that will specify when and how you call the function through examples.  If as you say the pa_CMD_REMOVE_HEADER can be used to remove headers then it begs the question that I should then be able to at least strip off all of the headers in the packets before sending them to the host for the case of UDP IPv4 packets.

    Can you provide some guidance on how I could go about calling the function and the settings etc? Can I setup the PA such that it only strips of the headers for certain matches i.e. those tied to UDP and IPv4. In other words can I configure the cmd set operation and then reset it back to normal for other entries.

    My PASS_setup works as follows for core 0 for IPv4 UDP packets as shown below. I have added more calls at step 2, 3 and 4 below for ICMP, IPv6 UDP and ICMP v6

    1. It adds the mac address for stage 1 through a call to ADD_MACAddress()

    2. It then adds the IPV4 UDP rule entry to LUT1 by calling Add_IPAddress() which calls the pa_addIp with ipLink=0, cusIndex=0

    3. It then configures the UDP port range for the cores by calling a function Config_PortRange that calls the pa_setCustomLUT2() and pushes command to PA and waits for response. The pa_setCustomLUT2 call uses custIndex=0, byteOffset={2, 3, 4, 5} and byteMask={0x7, 0, 0, 0}

    The step below is done for all cores.

    4. It then setups the LUT2 custom entry by calling the function Add_Portrange() which calls the pa_addCustomLUT2() and pushes the command and waits for the response. The pa_addCustomLUT2 call uses custIndex=0 and ipLink=0 linking this to the ip entry setup previously. Also match= {coreNum, 0, 0, 0}

    If I call the pa_configCmdSet with index=0, nCmd=1 as I just have one command pa_CMD_REMOVE_HEADER and the command array is specified in tCmdSet which is

    paCmdInfo_t tCmdSet[] = {

         pa_CMD_REMOVE_HEADER

        {

                {

                the fields ctrbbitfield,dest,pkttype,flowid,queue,swInfo0,swInfo1,multiroute? - not sure of the settings here?

                }

          }

    }

    Also where do I call the function that calls the pa_configCmdSet() and pushes to PA and awaits response. Before the Add_mac or after all of the steps or before the Add_PortRange? Note the queues used are 900 for core 0, 901 for core 1 etc and the flowIds are obtained by the getFlowId

    Can you provide some guidance here.

    THanks, Aamir

  • Eric,

    Just an update on what I tried to do. I setup a function Config_StripHeader() which calls pa_configCmdSet as specified in my previous post with index=0, nCmds=1 and pa_CMD_REMOVE_HEADER with the rest of the fields all zero.

    I then called this function prior to the Add_mac() call. In the Add_PortRange() function which calls the pa_addCustomLUT2 I added &t5CmdSetCmd to the routeInfo last field pCmd.

    I specified the t5CmdSetCmd as paCmdInfo_t t5CmdSetCmd = { pa_CMD_CMDSET

                                                                                                                          { 0 }

                                                                                                                         }

    When I sent a packet to the shannon DSP, In the buffer I see that the Ethernet and IP headers have been striped but the UDP header is still there and after my data pachet which is 4 bytes long I get some extra bytes there. Can you shed some light on what is happening?

    Thanks, Aamir

  • Hi, Aamir:

    I am glad that you figure out the right way to invoke the cmdSet feature. You might have found some (not perfect) examples at PA unit tests.
    Unfortunately the "Remove Header" command will  not solve your problem completely since you are using customLUT1 and customLUT2 operation so that the PASS does not know the custom  header size and the end of payload. Therefore this operation does not  remove  the UDP header. The extra 4 bytes at the end of packet is CRC. If you do normal  protocol parsing operation then you can  invoke "Remove Tail" command to remove the CRC bytes.

    Best regards,

    Eric

     


     

     

     

  • Hi Eric,

    I had figured out today how to remove the extra bytes at the end by making use of the "remove tail" operation. It is frustrating that I am so close to getting what I want but cannot get that last little bit solved.However it does not seem like it was a CRC as that is what I was suspecting. The reason why I say that is I tried keeping the data bytes over words or shorts to be the same. So I tried two packets one with data 0xfdfdfdfd00000000 and the other with data 0x00000000fdfdfdfd and they both resulted in different 4 bytes at the end so I concluded it could not be a CRC.

    I basically have IPV4 UDP packets addressed to a single port which is the start of the port range with ethernet and IP headers removed and all other ports in the port range I do not have the headers removed. I did that through calling the pa_addCustomLUT2 for each port and matching on the 2nd LSByte in the UDP dest port #.  Also I have IPv6 and ICMP, ICMPv6 packets pass through without stripping headers like I want. Anyways I think this may just do. I have to think a little bit more about it.

    Thanks for your help.

    Aamir

  • Hi, Aamir:

    I am not sure about your test environment and all the configurations. All the ingress packerts from the CPSW will contain the 4-byte MAC CRC and so internal end packet offset will point to the end of packet.  This pointer will be set to end of the protocol payload offset if a known L3/L4 protocol header such as IP and/or UDP/TCP has been processed so that you will be able to use "Remove Tail" command to get rid of them.

    We have enhanced the "Patch command" to be able to remove specific number of bytes in the packet. This feature is available at BIOS-MCSDK 2.0.7.

    Best regards,

    Eric

     

     

  • Eric,

    I take it the 4 bytes are supposed to represent the frame check sequence after the ethernet payload in an ethernet frame. I take it by default when not making use of the set command, the tail (these 4 bytes CRC) is removed prior to sending the packet data from the PA as it obviously does not show up in the buffers in the host. Is it when the routeInfo field pCmd is set to NULL, the start packet offset is set to the start of the ethernet header and the end packet offset is set to the start of the CRC so the CRC is not sent. When one uses pCmd to be set to something other than NULL, the start packet offset is roving and so as we are parsing the packet in the various LUT stages, and so it is being set to the start of the data but the end packet offset is being set to end of the data including tail i.e. CRC because of the use of the custom LUT2 rule. So if I had not used custom LUT2 and used pCmd and removed the header, once it removed the parsed UDP header it would also remove the tail i.e. CRC. Am I making sense?

    I take it from your reply that I can use the "patch" command that is provided in BIOS_MCSDK 2.0.7 to strip of the remaining UDP header even though it is making use of custom LUT2. When is 2.0.7 available? 

    I just wanted to give you a flavour of why stripping this off really helps us. Basically we use the start of the IPv4 UDP port range i.e. port 0 and 1 in a range of 256 ports say to mimic command traffic to our application and so want to distinguish it from regular RTP traffic which is encapsulated within UDP and IPv4. For IPv6 we only have RTP traffic. Our command traffic packet is UDP data with a proprietary header at the start of the command packet so stripping off the Ethernet, IP and UDP headers make the first thing you see in a buffer linked to  a descriptor as the proprietary header. For RTP data I envision creating holes in the buffer to place the proprietary header so that when the DSP core looks at any particular packet sent to the core for further processing, the common thing it sees is the proprietary header keeping it consistent with our current product implementation. In our current implementation the proprietary header is added by FPGAs in our hardware.

    So my current implementation of the PA etc results in the following in the 256 byte long buffers to store incoming packets

    IPv4 UDP port base+0/1: UDP header, then UDP data

    IPV4 UDP other ports base + 2-255 say: Ethernet, IP, UDP headers followed by UDP data.

    IPv6 UDP: same as above

    ICMP and ICMPv6: same as above except inset ICMP in place of UDP.

    Thanks, Aamir

  • Hi, Aamir:

    Eric,

    I take it the 4 bytes are supposed to represent the frame check sequence after the ethernet payload in an ethernet frame. I take it by default when not making use of the set command, the tail (these 4 bytes CRC) is removed prior to sending the packet data from the PA as it obviously does not show up in the buffers in the host. Is it when the routeInfo field pCmd is set to NULL, the start packet offset is set to the start of the ethernet header and the end packet offset is set to the start of the CRC so the CRC is not sent. When one uses pCmd to be set to something other than NULL, the start packet offset is roving and so as we are parsing the packet in the various LUT stages, and so it is being set to the start of the data but the end packet offset is being set to end of the data including tail i.e. CRC because of the use of the custom LUT2 rule. So if I had not used custom LUT2 and used pCmd and removed the header, once it removed the parsed UDP header it would also remove the tail i.e. CRC. Am I making sense?

    [Eric] No, it does not make any sense. The PASS protocol parsing opertaion has nothing to do with the routing rule of the matched traffic. As I explained before, the endOffset will point to the end of IP or UDP payload (i.e. excluding L2 CRC) only if the normal IP or UDP pasring is done respectively. In that case, the L2 CRC can be removed by the "REMOVE_TAIL" command.

    I take it from your reply that I can use the "patch" command that is provided in BIOS_MCSDK 2.0.7 to strip of the remaining UDP header even though it is making use of custom LUT2. When is 2.0.7 available? 

    [Eric] Yes. BIOS-MCSDK 2.0.7 is available at http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html. Please refer to the releaseNotes to find out all feature enhancements, bug fixes and API changes since the current release used.

    Best regards,

    Eric

     

  • Eric,

    Thanks for the clarification. I incorrectly though the L2 CRC was not included in the packets received by the host. I just was not paying attention to the bytes at the end of the packet in my earlier testing but only realized the CRC bytes being included when some of the headers were removed so yes my questioning does not make any sense now. I have got the PA stripping of headers and tails for IPv4 UDP on a specific port and removing tails otherwise. I will try mcsdk 2.0.7.

    Thanks, Aamir

  • Eric,

    I was unable to post this last week as I was having problems posting on teh Ti website due to some firewall setting changes. Anyways here is my email that I ahd composed for posting last week.

    I upgraded my MCSDK to use 2.0.7 and my CCS to 5.1.1, I was able to compile and run my multicore code. However, I ran into two issues.

    First problem was not happening for me when I was using the older MCSDK and PDK.  I would call my function Add_portRange () which calls the pa_addCustomLUT2 with the match[0] = coreNum and match[1] going from i=0 to 127 where i=0 corresponds to UDP port 0/1 pair, i=1 corresponds to port 2/3 pair etc. This would then basically create 128 lut2 entries for custom index 0 linked to lut1 index 0 for ip filtering for matching UDP IPv4 packets. However, after upgrading I am unable to run my loop to 128 times as it aborts on the i=124 run with pa_addCustomLUT2 returning error -11 which is insufficient command size which does not make sense as it should not work then for any i.   My Pa_addCustomLUT2 call in the function Add_portRange() looks like the following with custIndex=0 and ipLink=0

    retVal  =   Pa_addCustomLUT2  (gPAInstHnd, custIndex,  match,  gPaL3Handles [ipLink],  FALSE,   pa_PARAMS_NOT_SPECIFIED,  &routeInfo,  gPaL4Handles[custIndex],  (paCmd_t) pHostDesc->buffPtr,  &cmdSize,  &cmdReplyInfo,  &cmdDest);

    Second issue is the use of the patch data command. This is what I did and it did not seem to work in getting rid of the UDP header. I had the remove header before this command and the remove tail after this command and called the pa_configCmdSet with index=0 and nCmds=3 as they are 3 commands now. Am I using the command incorrectly as I do not really have an example to go by.

                   /* Command 1: Remove UDP header by  */                {                    pa_CMD_PATCH_DATA,                    {                        {                            pa_PATCH_OP_DELETE,     /* ctrlBitfield */                            8,                            /* nPatchBytes */                            0,                            /* totalPatchSize */                            0,                            /* offset */                            NULL,                         /* *patchData */                        }                    }                },

    where the configCmdSet call is as follows and the headerAndTailCmdSet is an array of 3 commands, remove header; patch data and remove tail.

        retVal  =   Pa_configCmdSet  (gPAInstHnd,                            index,                             nCmd,                             ((index == 0) ? headerAndTailCmdSet : tailCmdSet),                             (paCmd_t) pHostDesc->buffPtr,                             &cmdSize,                             &cmdReplyInfo,                             &cmdDest);

    Thanks, Aamir

  • Hi, Aamir:

    Could you please start a new thread for any new issue?! It is so confused with the unrelated message title.
    If you just want to ping me, you could send a short response to the existing chain and just points to the new post.

    For question #1, there seems to be an uninitialized variable issue. How do you set the variable cmdSize? You can set a break point and examine the value prior to API pa_addCustomLUT2 call.

    For question #2, there seems to be an issue with the current implementation. Can you send me the expected packet and the actual packet received?!

    Best regards,

    Eric

     

     

  • Eric,

    Thanks for the suggestion. I will in the future ping you on an existing thread and point to the new post. The forum should have an ability to direct a new thread email to a particular person. Currently it talks of BCC to a friend. Anyways I will suggest this to the E2E organizers. Thanks.

    As for my issues:

    I have resolved issue 1, it was due to incorrect multicore etc legacy code. Basically when a desciptor is popped of the Tx free Q and its length field (word 3 in the descriptor) is modified to specify the actual length of the Tx packet sent to the PA, when it is freed back after use and pushed back to the Tx Free Q it does not reset the length field to be the same as word 6 of the descriptor which is should do. So when it makes use of that buffer descriptor again in the future in the setup my code (and also legacy TI code in a function such as Add_Port etc) it sets the cmdSize to be equal to the descriptor buffer length (which has not been reset) and so the pa_addCustomLUt2 fails as the length is no longer sufficient.

    I fixed this by resetting the word 3 field in the descriptor if the host receives a reply back from the PA prior to popping the descriptor into the variable pHostDesc i.e. Just after the "if Qmss)getQueueEntryCOunt (gPaCfgCmdRespQHand) > 0).

    As for issue 2 I am not sure if you mean that you think there is an issue with how TI is implementing the delete capability or how I am implementing the use of it? Basically there is nothing complicated about the actual packet vs received packet. I am sending a short UDP packet over Ethernet to the EVM. The PA is stripping of the Ethernet and IP headers and the DRC at the end and is keeping the UDP header 8 bytes (0x8000 0x8000 0x0012 0x0178 and the body 10 bytes (0x00010203040506070809). I can share my code with you offline or you can try removing UDP headers.

    Thanks, Aamir

  • Hi, Aamir:

    As for issue 2 I am not sure if you mean that you think there is an issue with how TI is implementing the delete capability or how I am implementing the use of it? Basically there is nothing complicated about the actual packet vs received packet. I am sending a short UDP packet over Ethernet to the EVM. The PA is stripping of the Ethernet and IP headers and the DRC at the end and is keeping the UDP header 8 bytes (0x8000 0x8000 0x0012 0x0178 and the body 10 bytes (0x00010203040506070809). I can share my code with you offline or you can try removing UDP headers.

    [Eric] I have verified the current implementation and believed that the commad shall remove the UDP header successfully. However, there is some issue how we handle the end of payload offset after deletion operation. Therefore, it will delete some extra bytes prior to CRC. If this is the observed behavior, I can send you the firmware patches since the offical fix will not be available in the near future.  If you may provide the memory dump of the descriptor and data buffer of the received packet, I should be able to see whether there are other problems.

    Best regards,

    Eric

     

     

  • Hi Eric,

    I am not observing any deletion of the UDP header so I am not seeing your behaviour.

    This is the memory dump (in words - descriptor is 64 bytes) starting at an example descriptor at 0xc0124c0

    0000002C 00000000 800002E1 00000100 0C001300 00000000 00000100 0C001300
    00000000 55550004 33334444 00000000 00000000 00000000 00000000 00000000

    This is the memory dump (in words only show the first 64 bytes) starting at an example buffer at 0xc001300

    00800080 2DB82600 03020100 07060504 11100908 15141312 19181716 23222120
    27262524 00002928 00000000 00000000 00000000 00000000 00000000 00000000

    Can you share with my an example code that shows your use of the CMD_PATCH_DATA with the delete option (PA_PATCH_OP_DELETE)

    Thanks, Aamir

  • Eric,

    Sorry I did a memory dump of the descriptor prior to updating some of the elements of the descriptor. It should have read as follows:

    0E000026 00000000 860002E1 00000026 0C001300 00000000 00000100 0C001300
    00000000 CCCCCCCC 00000000 00000000 B8400000 00260440 0E000000 81360102

    Thanks, Aamir

  • Hi, Aamir:

    Here is some sample code:

    static  paPatchInfo_t t5PatchCmd2 =
            {
                pa_PATCH_OP_DELETE, /* ctrlBitfield */ 
                8,                  /* nPatchBytes */
                0,                  /* totalPatchSize */
                0,                  /* offset */
                NULL                /* Pointer to the patch data */
            };

    static paCmdInfo_t t5CmdSet2[] =
    {
        /* Command 0: Remove header */
        {
            pa_CMD_REMOVE_HEADER,
            {
                {
                    0,                            /* ctrlBitfield */
                    0,                            /* dest */
                    0,                            /* pktType */
                    0,                            /* flowId */ 
                    0,                            /* queue */
                    0,                            /* swInfo0 */
                    0,                            /* swInfo1 */
                    0                             /* multiRouteIndex */ 
                }
            }
        },
       
        /* Command 1: Delete Bytes */
        {
            pa_CMD_PATCH_DATA,
            {
                {
                    0,                            /* ctrlBitfield */
                    0,                            /* dest */
                    0,                            /* pktType */
                    0,                            /* flowId */ 
                    0,                            /* queue */
                    0,                            /* swInfo0 */
                    0,                            /* swInfo1 */
                    0                             /* multiRouteIndex */ 
                }
            }
        },
       
        /* Command 2: Remove Tail */
        {
            pa_CMD_REMOVE_TAIL,
            {
                {
                    0,                            /* ctrlBitfield */
                    0,                            /* dest */
                    0,                            /* pktType */
                    0,                            /* flowId */ 
                    0,                            /* queue */
                    0,                            /* swInfo0 */
                    0,                            /* swInfo1 */
                    0                             /* multiRouteIndex */ 
                }
            }
        }
       
    };

    static paCmdInfo_t t5CmdSetCmd2 =
        {
            pa_CMD_CMDSET,
            {
                
                {
                    T5_CMDSET_2_INDEX             /* Command set index */
                }                  
            }   
        };

    ...

        t5CmdSet2[1].params.patch  = t5PatchCmd2;  
        t5CmdSetCmd2.params.cmdSet.index = T5_CMDSET_2_INDEX;

    Best regards,

    Eric

     

     

  • Eric,

    I think I am essentially doing the same thing although your example does not actually show how you are making use of the command set within the pa_addPort or pa_addCustomLUt2 etc. Can you confirm the steps that I am doing are correct and have outlined in a previous posting on this same thread? I will repeat them here again as I cannot understand why it does not work for me.

    I first configure the PA making use of the pa_configCmdSet function call with the following parameters:

    Pa_configCmdSet (gPaInstHand, index=0, nCmd=3, headerAndTailCmdSet, pHostDesc->bufPtr, &cmdSize, &cmdReplyInfo, &cmdDest)

    where headerAndTailCmdSet is an array of 3 commands similar to what you have in t5CmdSet2[] above except that I have replaced the innermost {} in the middle command in the array

            pa_CMD_PATCH_DATA,
            {
                {
                    0,                            /* ctrlBitfield */
                    0,                            /* dest */
                    0,                            /* pktType */
                    0,                            /* flowId */ 
                    0,                            /* queue */
                    0,                            /* swInfo0 */
                    0,                            /* swInfo1 */
                    0                             /* multiRouteIndex */ 
                }
            }

    with

             {

               pa_PATCH_OP_DELETE, /* ctrlBitfield */ 
                8,                  /* nPatchBytes */
                0,                  /* totalPatchSize */
                0,                  /* offset */
                NULL                /* Pointer to the patch data */
            };

    The intent being that this is the command set to remove header, 8 bytes of remaining UDP header and tail. There are 3 commands as part of this set hence nCmds=3. The index of this command set is taken to be zero.

    Finally, when configuring the PA when using the pa_addCustomLUT2 function, need to configure the routeInfo.pCmd field within the routeInfo array in the  Pa_addCustomLUT2 call to make use of this command set index. This is done similar to what you have above by setting routeInfo.pCmd=t5CmdSetCmd2. This then implies that for this particular PA rule, process through the Cmdset 0 which includes remove headers, UDP headers and tail prior to sending to host.

    static paCmdInfo_t t5CmdSetCmd2 =
        {
            pa_CMD_CMDSET,
            {
                
                {
                    0             /* Command set index */
                }                  
            }   
        };

    Aamir

  • Hi, Aamir:

    The initialization table does not seem to work since the command parameters paCmdInfo_t.params is an Union and there is no way the compiler will know which element should be used.

    You need to initialize the patch parameters with the following code as I pointed out at the previous response:

       t5CmdSet2[1].params.patch  = t5PatchCmd2;  
        t5CmdSetCmd2.params.cmdSet.index = T5_CMDSET_2_INDEX;

    Best regards,

    Eric

     

     

     

     

     

  • Eric,

    Thanks!

    I had actually tried what you suggested with the red highlighted part prior to my earlier posting but did not realize it was kind of working as my packet was too small (10 bytes long) to realize what had happened. I tried it again and it does work except that in addition to removing the 8 byte header it also removes the 8 bytes from the end of the packet which you alluded to in an earlier post. Can you send me the patch for this problem. Thanks for your help.

    Aamir

  • /******************************************************************************
     * FILE PURPOSE: PASS Firmware Image  
     ******************************************************************************
     * FILE NAME:   pam_bin.c
     *
     * DESCRIPTION: PDSP Packet Modifier image
     *
     * REVISION HISTORY:
     *
     *  Copyright (c) Texas Instruments Incorporated 2009-2011
     * 
     *  Redistribution and use in source and binary forms, with or without 
     *  modification, are permitted provided that the following conditions 
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright 
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the 
     *    documentation and/or other materials provided with the   
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
    */
    #include <ti/drv/pa/fw/pafw.h>
    
    
    
    /* This file contains the PDSP instructions in a C array which are to  */
    /* be downloaded from the host CPU to the PDSP instruction memory.     */
    /* This file is generated by the PDSP assembler.                       */
    
    const uint32_t m[] =  {
         0x21007900,
         0x24505084,
         0x108484c4,
         0x10e4e4e5,
         0x10e4e4e6,
         0x10e4e4e7,
         0x10e4e4e8,
         0x10e4e4e9,
         0x10e4e4ea,
         0x10e4e4eb,
         0x8300e384,
         0x8320e384,
         0x8340e384,
         0x8360e384,
         0x8380e384,
         0x83a0e384,
         0x83c0e384,
         0x83e0e384,
         0x24004304,
         0x81040364,
         0x24004404,
         0x81290364,
         0x24000a04,
         0x81320364,
         0x24000c04,
         0x81330364,
         0x24000904,
         0x812f0364,
         0x24005304,
         0x81060364,
         0x24000504,
         0x81000364,
         0x24000604,
         0x812b0364,
         0x24000704,
         0x812c0364,
         0x24000804,
         0x813c0364,
         0x24005104,
         0x81110364,
         0x24005204,
         0x81880364,
         0x24000f04,
         0x81840364,
         0x2effa780,
         0x8900f380,
         0x8950f380,
         0x8700fa80,
         0x8740fa80,
         0x8780fa80,
         0x87c0fa80,
         0x240000e5,
         0x2401e0e1,
         0x2eff8788,
         0x24000568,
         0x80e5f488,
         0x0110e5e5,
         0x6ee1e5fe,
         0x248100c8,
         0x2488a888,
         0x240800c9,
         0x2486dd89,
         0x248847ca,
         0x2488488a,
         0x248864cb,
         0x2488638b,
         0x8140f588,
         0x240000e5,
         0x81603585,
         0x2eff9f89,
         0x24000085,
         0x240800c5,
         0x8685f689,
         0x01408585,
         0x6ec585fe,
         0x24000004,
         0x81001864,
         0x24000104,
         0x81201864,
         0x24000204,
         0x81401864,
         0x24000304,
         0x81601864,
         0x24000404,
         0x81801864,
         0x24000504,
         0x81a01864,
         0x240001e0,
         0x240064e1,
         0x81046a80,
         0x2eff8d82,
         0x83a0b382,
         0x24000262,
         0x24000242,
         0x24000222,
         0x81a03382,
         0x24004065,
         0x24004045,
         0x81ac3385,
         0x240400f4,
         0x240800f5,
         0x24a00080,
         0x24a000c0,
         0x80f42080,
         0x0104f4f4,
         0x6ef5f4fe,
         0x240800f4,
         0x241000f5,
         0x2eff9f80,
         0x86f4e080,
         0x0140f4f4,
         0x6ef5f4fe,
         0x240080f4,
         0x80f4e080,
         0x240180f4,
         0x80f4e080,
         0x240280f4,
         0x80f4e080,
         0x240380f4,
         0x80f4e080,
         0x209e0000,
         0x23058a9e,
         0x2eff8582,
         0x8104a482,
         0x240001e2,
         0x81002482,
         0xc900ff00,
         0xd100ff00,
         0xc901ff04,
         0x2300019e,
         0x240000e2,
         0x81042482,
         0x9100171d,
         0x2400005d,
         0x2eff819b,
         0x5100fb03,
         0x81082c9b,
         0x2eff819b,
         0x51057d13,
         0x2400046e,
         0x105d5d4e,
         0x51006e0f,
         0x09084e8e,
         0x01908ecf,
         0x01808e8e,
         0x908e00cf,
         0x01014e4e,
         0x11034e4e,
         0x05016e6e,
         0x562f0ff8,
         0x00cf2f81,
         0x90812090,
         0x01042f2f,
         0x111f2f2f,
         0x808e004f,
         0x2303499e,
         0x104e4e5d,
         0xcf04ffea,
         0x91002481,
         0x0101e1e1,
         0x81002481,
         0x2eff8394,
         0x240000f8,
         0x2e808f86,
         0xd10eca03,
         0x1f0e92ca,
         0x2f008f86,
         0x6900c90b,
         0xc913fc04,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x2400b0de,
         0x90def486,
         0x2eff8183,
         0x1f1ee3e3,
         0x2400879e,
         0x2104f500,
         0x24000804,
         0x2f000384,
         0x24003104,
         0x24002024,
         0x2f000384,
         0x2e808996,
         0x0b057601,
         0x51000110,
         0x5103014e,
         0x5102012f,
         0x5101011f,
         0x530501a5,
         0x530401a3,
         0x51060142,
         0x51070190,
         0x2eff8384,
         0x24002104,
         0x2f000384,
         0xcf13fcc3,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x21008700,
         0x5902750c,
         0x2e808586,
         0x240000e2,
         0x51007502,
         0x010ce2e2,
         0x80e2b986,
         0x01017575,
         0x24000104,
         0x24000cc4,
         0x2f000384,
         0xcf0635e4,
         0x20f40000,
         0x1f1efbfb,
         0xcf13fce1,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x2100b700,
         0xd1073509,
         0x2e808586,
         0x81c0b986,
         0x1f073535,
         0x24000104,
         0x24000cc4,
         0x2f000384,
         0xcf0635d5,
         0x20f40000,
         0x1f1efbfb,
         0xcf13fcd2,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x2100b700,
         0x5904550e,
         0x2e808986,
         0x0b044600,
         0x09020000,
         0x090555c3,
         0x0140c3c3,
         0x8ec3d906,
         0x24000104,
         0x0b0446c4,
         0x0902c4c4,
         0x2f000384,
         0x01015555,
         0xcf0635c1,
         0x20f40000,
         0x1f1efbfb,
         0xc913fc04,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x2eff8384,
         0x24002104,
         0x2f000384,
         0x21008700,
         0x2e80838e,
         0x81e0798e,
         0x1f033535,
         0x24000104,
         0x240008c4,
         0x2f000384,
         0x2100b700,
         0x2e808786,
         0x24000cc4,
         0xc9036617,
         0x0104c4c4,
         0x11076642,
         0x6900420d,
         0x11f86666,
         0x13066666,
         0x91080762,
         0x11070202,
         0x09036922,
         0x12220202,
         0x81080762,
         0x10020215,
         0x81206787,
         0x240010c4,
         0x1f053535,
         0x21012200,
         0x91090762,
         0x110f0202,
         0x12690202,
         0x81090762,
         0x10020215,
         0x1f043535,
         0x51074202,
         0x81186787,
         0x10e6e6f3,
         0x10e7e7ec,
         0x10e8e8ed,
         0x24000104,
         0x2f000184,
         0xc9046605,
         0x1f063535,
         0x24012c94,
         0x240000d4,
         0x2100b700,
         0xd1023538,
         0x2302019e,
         0x2eff8384,
         0x24002004,
         0x11077344,
         0x2400f024,
         0x109393c5,
         0x10535305,
         0xc9053502,
         0x24000864,
         0xc9033518,
         0x91e0798e,
         0x24002204,
         0x2f000384,
         0x243000e1,
         0xf1082180,
         0x24ffffc0,
         0x0480c080,
         0x91621580,
         0xc904ff00,
         0x2e80838b,
         0x10e0e0eb,
         0x10efefec,
         0x2f00838b,
         0x24000c04,
         0x2f000384,
         0x24001104,
         0x2f000384,
         0x2eff8384,
         0x24002004,
         0x24000644,
         0x2400f024,
         0x108e8ec5,
         0x104e4e05,
         0x2f000384,
         0x21008700,
         0x24000104,
         0x240004c4,
         0x2f000184,
         0x111f7601,
         0x57000163,
         0x6902010b,
         0x5f027561,
         0x24000276,
         0xc90f9603,
         0x24000476,
         0x1d0f9696,
         0x090275c3,
         0x01f8c3c3,
         0x80c33996,
         0x01017575,
         0x2100b700,
         0xd1063506,
         0x1f023535,
         0x81f03996,
         0x2100b700,
         0x91f03996,
         0x91f87982,
         0x2eff858e,
         0x109696ce,
         0x1056562e,
         0x24000c04,
         0x2f000384,
         0x24000004,
         0x102e2ec4,
         0x2f000384,
         0x2e808986,
         0x11f06600,
         0x51400003,
         0x0128c7cf,
         0x2101d500,
         0x108686cf,
         0x110f660e,
         0x09020e0e,
         0x58cfce5f,
         0xd10e875e,
         0x1087878f,
         0x040eced0,
         0x11f85050,
         0x0b0390e1,
         0x00e18f87,
         0x00d090e0,
         0x040ecfe1,
         0x48e0e103,
         0x0490e1d0,
         0x21018300,
         0x1f0d8787,
         0x000ed086,
         0x24000088,
         0x2f008586,
         0x51007511,
         0x24004304,
         0x10626224,
         0x104242c4,
         0x51022403,
         0x008682e5,
         0x21018e00,
         0x008682c5,
         0x2f000384,
         0x51017508,
         0x10636324,
         0x104343c4,
         0x51022403,
         0x008683e5,
         0x21019600,
         0x008683c5,
         0x2f000384,
         0x2eff8384,
         0x24005104,
         0x100e0ec4,
         0x24000a85,
         0x2f000384,
         0x24000004,
         0x100e0ec4,
         0x2f000184,
         0x5100904a,
         0x24000104,
         0x109090c4,
         0x2f000184,
         0x24000081,
         0x24000004,
         0x0481d0c4,
         0x2f000184,
         0x00d09090,
         0x000e90e1,
         0x58cfe124,
         0x24001104,
         0x2f000184,
         0x2eff8384,
         0x24002204,
         0x11077344,
         0x2400f224,
         0x109393c5,
         0x10535305,
         0xc9053502,
         0x24000864,
         0x2f000384,
         0xc904ff00,
         0xc9053503,
         0x10151568,
         0x2f008008,
         0xc9043503,
         0x10151548,
         0x2f008028,
         0x2f00838c,
         0x24000804,
         0x2f000184,
         0xc9053507,
         0x24003104,
         0x24000424,
         0x10ecece5,
         0x2f000384,
         0x10edede5,
         0x2f000384,
         0x24000d04,
         0x2f000184,
         0x24000004,
         0x102e2ec4,
         0x2f000184,
         0x2e808986,
         0x21017b00,
         0x002e86e0,
         0x5f3ce060,
         0x24001084,
         0x2f000184,
         0x24003384,
         0x0d3ce024,
         0x2f000184,
         0x21012e00,
         0x51007511,
         0x24004304,
         0x10626224,
         0x104242c4,
         0x51022403,
         0x00cf82e5,
         0x2101dd00,
         0x00cf82c5,
         0x2f000384,
         0x51017508,
         0x10636324,
         0x104343c4,
         0x51022403,
         0x00cf83e5,
         0x2101e500,
         0x00cf83c5,
         0x2f000384,
         0x102e2e82,
         0x24012e9e,
         0x21023b00,
         0x24000081,
         0x6f0155ba,
         0x24704480,
         0x240004c0,
         0x69057d02,
         0x01012020,
         0x24004041,
         0x90413986,
         0x002e0ec1,
         0x66c186b2,
         0xcf0346b1,
         0x04c186c4,
         0x10c4c481,
         0x2f000384,
         0x24000104,
         0x111f66c4,
         0x2f000384,
         0x00c48181,
         0x24003704,
         0x111f6624,
         0x240000c4,
         0x10e0e0e5,
         0x2f000384,
         0x2101a400,
         0x24000c04,
         0x2f000384,
         0x24000082,
         0x51007522,
         0x9100b986,
         0x24000004,
         0x108686c4,
         0x2f000384,
         0x10c4c482,
         0x24005104,
         0x10c7c7c4,
         0x10c8c8c5,
         0x10878785,
         0x0b074624,
         0x2f000384,
         0x71017516,
         0x910cb986,
         0x5882860a,
         0x1f1efbfb,
         0x24002104,
         0x2f000384,
         0x1f1efbfb,
         0xcd13fc70,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x21008700,
         0x24000004,
         0x048286c4,
         0x00c48282,
         0x2f000384,
         0x24005304,
         0x10c7c7c4,
         0x10c8c8c5,
         0x10878785,
         0x0b074624,
         0x2f000384,
         0xc9073515,
         0x91c0b986,
         0x58828609,
         0x1f1efbfb,
         0x24002104,
         0x2f000384,
         0xcd13fc5b,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x21008700,
         0x24000004,
         0x048286c4,
         0x00c48282,
         0x2f000384,
         0x24006104,
         0x10c7c7c4,
         0x10c8c8c5,
         0x10878785,
         0x110f4624,
         0x2f000384,
         0x51005525,
         0x24000003,
         0x24004023,
         0x24704480,
         0x240004c0,
         0x69057d02,
         0x01012020,
         0x7003551e,
         0x90233986,
         0x58828609,
         0x1f1efbfb,
         0x24002104,
         0x2f000384,
         0xcd13fc3f,
         0x2eff8180,
         0x1f13e0e0,
         0x81002d80,
         0x21008700,
         0x24000004,
         0x048286c4,
         0x00c48282,
         0x2f000384,
         0xc9034605,
         0x24000104,
         0x111f66c4,
         0x2f000384,
         0x00c48282,
         0xd1024606,
         0x24003704,
         0x111f6624,
         0x240000c4,
         0x10e0e0e5,
         0x2f000384,
         0x01010303,
         0x01202323,
         0x0120e0e0,
         0x21024200,
         0x209e0000,
         0x21036600,
         0x2400879e,
         0xc9075602,
         0x2104d300,
         0xd10556d0,
         0xd1065602,
         0x2100c100,
         0x24000d04,
         0x2f000384,
         0x107a7a00,
         0x2eff838c,
         0x2400182d,
         0x91ac338b,
         0x0906008c,
         0x69804b02,
         0x09018c8c,
         0x908c018c,
         0x01048c8c,
         0x6c006c4e,
         0x4d0a4c4d,
         0x51004c0c,
         0x908c2186,
         0x01048c8c,
         0x510b660b,
         0x510c6628,
         0x510d6658,
         0x510e6669,
         0x510f66a0,
         0x511066a7,
         0x511166b5,
         0x510366af,
         0x2100c100,
         0x1d006767,
         0x21028400,
         0x908c2187,
         0xd107350b,
         0xc9063503,
         0x0496d7d7,
         0x24000096,
         0x24000081,
         0xc9070d02,
         0x2400ff21,
         0x100d0d01,
         0x0081d7d7,
         0xc907ff00,
         0x83202796,
         0x24000644,
         0x24005024,
         0x102d2d64,
         0xd1006704,
         0x24002004,
         0x2f000384,
         0x209e0000,
         0x24002204,
         0x2f000384,
         0x24000804,
         0x2f000384,
         0x24003104,
         0x24002024,
         0x2f000384,
         0x24000d04,
         0x2f000384,
         0x09034737,
         0x2104d300,
         0x908ca187,
         0x010c8c8c,
         0x05014c4c,
         0x10c8c881,
         0x24000041,
         0x00968787,
         0x00968989,
         0xc907670b,
         0xc9046704,
         0x4e9688cb,
         0x04889688,
         0x2102ae00,
         0x00968888,
         0x013888c0,
         0xd106ff00,
         0x90c0068e,
         0x10c9ce81,
         0x04478181,
         0xc9056712,
         0x013887c0,
         0xd106ff00,
         0x90c0268e,
         0x110f6761,
         0x69006104,
         0x0b032e2e,
         0x24000641,
         0x2102be00,
         0x0b030e2e,
         0x24000441,
         0x09012e4e,
         0x0b012e6e,
         0x006e4e4e,
         0x004e4141,
         0xc9002e02,
         0x01014141,
         0x00418787,
         0x4e87cdb0,
         0x24000004,
         0x04cd87c4,
         0x2f000384,
         0x108787cd,
         0x2eff8384,
         0xd1066703,
         0x1f002424,
         0x04878985,
         0x24006004,
         0x044181c4,
         0x2f000384,
         0x21027500,
         0x908c2187,
         0x01048c8c,
         0x05014c4c,
         0xd1006703,
         0x00964747,
         0x2102d900,
         0x0407d747,
         0x013847c0,
         0xd106ff00,
         0x90c0e68e,
         0x0007272d,
         0x4f202d98,
         0x59142702,
         0x1f073535,
         0x10070700,
         0x01202720,
         0x8e20c70e,
         0x21027500,
         0x05044600,
         0x9e8cc107,
         0x01048cc0,
         0x00008c8c,
         0x05014c4c,
         0xc9016709,
         0x6f00cd8b,
         0x69007802,
         0x10969678,
         0x24000104,
         0x107878c4,
         0x2f000384,
         0x107878cd,
         0x21030400,
         0x00964747,
         0x4e47cd82,
         0x24000004,
         0x04cd47c4,
         0x2f000384,
         0x104747cd,
         0xc9026707,
         0x24000104,
         0x102727c4,
         0x2f000384,
         0x0027cdcd,
         0x04270d0d,
         0x21027500,
         0xd1006705,
         0x10272700,
         0x9ec0c10e,
         0x2f00be0e,
         0x21027500,
         0x240004c5,
         0x24200085,
         0x24003704,
         0x10272724,
         0x240000c4,
         0x00c08585,
         0x2f000384,
         0xc901670f,
         0x0478270d,
         0x51005803,
         0x00275858,
         0x04785858,
         0x51003803,
         0x00273838,
         0x04783838,
         0x51001803,
         0x00271818,
         0x04781818,
         0x00279696,
         0x04789696,
         0x10272778,
         0x21027500,
         0x00270d0d,
         0x21027500,
         0x05014c4c,
         0x6f00cd58,
         0x109696cd,
         0x1f063535,
         0x24000104,
         0x109696c4,
         0x2f000384,
         0x21027500,
         0x05014c4c,
         0x4ed7cd50,
         0x24000004,
         0x04cdd7c4,
         0x2f000384,
         0x10d7d7cd,
         0x24000104,
         0x04d789c4,
         0x2f000384,
         0x21027500,
         0x05014c4c,
         0x108686d0,
         0x10d7d790,
         0x2303499e,
         0x21027500,
         0x09032637,
         0x2104d300,
         0x2e80838b,
         0x24000d04,
         0x2f000384,
         0x24000004,
         0x10ccccc4,
         0x2f000384,
         0x2e80818e,
         0x50eeeb06,
         0x10ebebee,
         0x2f00818e,
         0x91090761,
         0x1f020101,
         0x81090761,
         0x83202796,
         0x24000644,
         0x24005024,
         0x24001864,
         0x24002004,
         0x2f000384,
         0x209e0000,
         0x91b0338a,
         0x09038a87,
         0x0901d086,
         0x90861c86,
         0xd10dc618,
         0x588ad00a,
         0x0903d0c7,
         0x90c77d88,
         0xd10ec603,
         0x0101e9e9,
         0x21035500,
         0x0090e9e9,
         0x0300e8e8,
         0x80c77d88,
         0x21036100,
         0x048ad081,
         0x090281c7,
         0x0087c7c7,
         0x90c73d88,
         0xd10ec603,
         0x0101e8e8,
         0x21036000,
         0x0090e8e8,
         0x80c73d88,
         0xd10fc604,
         0x10c6c6d0,
         0x110f7070,
         0x21034b00,
         0x209e0000,
         0x240000da,
         0x10898980,
         0x24000d04,
         0x2f000384,
         0x2e808786,
         0xc907ff00,
         0x81182788,
         0x51ce4704,
         0x240001e6,
         0x2f008186,
         0x21038500,
         0x2400005a,
         0x5101670f,
         0x5102670f,
         0x5103670f,
         0x5104670f,
         0x51066799,
         0x510c6757,
         0x530a673d,
         0x510867c5,
         0x510b67f8,
         0x53096717,
         0x51056724,
         0x510767b8,
         0x240002e6,
         0x2f008186,
         0x21038500,
         0x21058700,
         0x21058700,
         0x21058200,
         0x21058700,
         0x69062915,
         0x91082481,
         0x0101e1e1,
         0x81082481,
         0xc9007a06,
         0x24004304,
         0x105a5ac4,
         0x24000424,
         0x10e6e6e5,
         0x2f000384,
         0x24000064,
         0x10292944,
         0x10c9c9c5,
         0x10090905,
         0x24002004,
         0x2400f024,
         0x91001761,
         0x59030002,
         0x23058c9e,
         0x2f000384,
         0x21008700,
         0x240021e4,
         0x2f000184,
         0x910c2481,
         0x0101e1e1,
         0x810c2481,
         0x21008700,
         0x59348004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x240000e6,
         0x2f008186,
         0x2e80878a,
         0x24000004,
         0x240020c4,
         0x2f000384,
         0x2e80878e,
         0xc9006a02,
         0x81a0338b,
         0xc9016a05,
         0x81a4338c,
         0x24000161,
         0x240010e2,
         0xe1042281,
         0xc9026a05,
         0x81a8338d,
         0x24000161,
         0x240020e2,
         0xe1042281,
         0xc9036a02,
         0x81ac338e,
         0xc9046a02,
         0x81b0338f,
         0xc9056a02,
         0x81b43390,
         0xc9066a0e,
         0x240100c1,
         0x24000081,
         0xc9007102,
         0x24000181,
         0x240000e2,
         0xe10c2281,
         0x24000081,
         0xc9017102,
         0x24000181,
         0x240010e2,
         0xe10c2281,
         0x240020e2,
         0xe10c2281,
         0xcf076aba,
         0x10f2f2fc,
         0x21038500,
         0x240000e6,
         0x2f008186,
         0x2e80838a,
         0x24000004,
         0x69006a09,
         0x2401f8c0,
         0x58c08004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x240018c4,
         0x2f000384,
         0x21040500,
         0x240014c4,
         0x2f000384,
         0x69016a17,
         0x593c8004,
         0x24000fe6,
         0x1f007a7a,
         0x21038500,
         0x2e80838e,
         0x71046e04,
         0x240010e6,
         0x1f007a7a,
         0x21038500,
         0x09056e81,
         0x09036ec1,
         0x00c18181,
         0x01008181,
         0x8081738e,
         0x240008c4,
         0x2f000384,
         0x2e808f8e,
         0x01088181,
         0x8281f38e,
         0x240020c4,
         0x2f000384,
         0x21038500,
         0x69026a0e,
         0x59248004,
         0x24000fe6,
         0x1f007a7a,
         0x21038500,
         0x2e80878e,
         0x71106e04,
         0x240011e6,
         0x1f007a7a,
         0x21038500,
         0x09046e81,
         0x01008181,
         0x8081fa8e,
         0x21038500,
         0x240002e6,
         0x1f007a7a,
         0x21038500,
         0x240000e1,
         0x240010c4,
         0x2e80878e,
         0x2f000384,
         0xc801eb02,
         0x80c1f48e,
         0x01010101,
         0x0110c1c1,
         0x671e01fa,
         0x21038500,
         0x2e80838a,
         0x24000004,
         0x240018c4,
         0x2f000384,
         0x51014a19,
         0x240000e1,
         0x51006a02,
         0x2eff0181,
         0x810c2c81,
         0x240f0083,
         0x8083e286,
         0x240004c2,
         0x244f8082,
         0x246020e1,
         0xf700e186,
         0xe700e286,
         0x2eff8384,
         0x24004024,
         0x24003704,
         0x10e2e2e5,
         0x2f000384,
         0x0140e1e1,
         0x0140e2e2,
         0xf700e186,
         0xe700e286,
         0x10e2e2e5,
         0x2f000384,
         0x9083e286,
         0x21038500,
         0x51006a08,
         0x2eff8f8e,
         0x240800e2,
         0x240800e1,
         0x00e2e1e1,
         0x82e2e08e,
         0x0120e2e2,
         0x6ee1e2fe,
         0x21038500,
         0x24000004,
         0x240010c4,
         0x2f000384,
         0x24000c24,
         0x24003304,
         0x2f000384,
         0x9100b78e,
         0x2f00858e,
         0x21038500,
         0x240054c0,
         0x58c08004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x2e80818a,
         0x71206a04,
         0x24000ee6,
         0x2f008186,
         0x21038500,
         0x2eff8f8e,
         0x09066ac2,
         0x69004a14,
         0x24000004,
         0x240014c4,
         0x2f000384,
         0x24002060,
         0x59042a02,
         0x09032a60,
         0x2e80bf8e,
         0x82c2f68e,
         0x2eff8f8e,
         0x0120c2c2,
         0x71042a07,
         0x24000004,
         0x240020c4,
         0x2f000384,
         0x05042a60,
         0x09036060,
         0x2e80bf8e,
         0x82c2f68e,
         0x21038500,
         0x69014a05,
         0x82c2f68e,
         0x0120c2c2,
         0x82c2f68e,
         0x21038500,
         0x69024a0c,
         0x24000004,
         0x240014c4,
         0x2f000384,
         0x2eff8384,
         0x24004024,
         0x24004704,
         0x240004c5,
         0x24660085,
         0x00c2e5e5,
         0x2f000384,
         0x21038500,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x240014c0,
         0x58c08004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x2e80818a,
         0x91b0338b,
         0x70cb8a04,
         0x240013e6,
         0x2f008186,
         0x21038500,
         0xc9006a08,
         0x24040082,
         0x240800c2,
         0x24a00081,
         0x24a000c1,
         0x80822081,
         0x01048282,
         0x6ec282fe,
         0x24000004,
         0x240014c4,
         0x2f000384,
         0x240004c4,
         0x24040082,
         0x55008afb,
         0x2e80818e,
         0x0901cec2,
         0x0082c2c2,
         0x80c200ce,
         0x05018a8a,
         0x2f000384,
         0x21048a00,
         0x240058c0,
         0x58c08004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x2e80838a,
         0x106a6a24,
         0x10ebebe5,
         0x24006304,
         0x2f000384,
         0x24000004,
         0x240018c4,
         0x2f000384,
         0x2e808f8e,
         0x24000024,
         0x24006204,
         0x24003801,
         0x2c2201e5,
         0x2f000384,
         0x01040101,
         0x01012424,
         0x670824fc,
         0x24000004,
         0x240020c4,
         0x2f000384,
         0x2e808f8e,
         0x24000824,
         0x24006204,
         0x24003801,
         0x2c2201e5,
         0x2f000384,
         0x01040101,
         0x01012424,
         0x671024fc,
         0x21038500,
         0x240090c0,
         0x58c08004,
         0x24000fe6,
         0x2f008186,
         0x21038500,
         0x2e80818a,
         0x91ac338b,
         0x606b6a04,
         0x240012e6,
         0x2f008186,
         0x21038500,
         0x09066a81,
         0x69804b02,
         0x09018181,
         0x8081218a,
         0x01048181,
         0x24000004,
         0x240014c4,
         0x2f000384,
         0x240020c4,
         0x05044b40,
         0x2e808f8e,
         0x8281e18e,
         0x2f000384,
         0x05204040,
         0x01208181,
         0x4f2040fb,
         0x2e80bf0e,
         0x8e81e10e,
         0x21038500,
         0x0b033700,
         0x11073737,
         0x111f7676,
         0x110f5656,
         0x2f008316,
         0x090600c0,
         0x24000000,
         0x90c0768e,
         0xd1076e04,
         0x24002104,
         0x2f000384,
         0x209e0000,
         0xc9006e05,
         0x24000c04,
         0x2f000384,
         0x24001104,
         0x2f000384,
         0xc9016e03,
         0xd106ff00,
         0x8118278f,
         0x2eff8384,
         0x2400f024,
         0x24002204,
         0x24000644,
         0x108e8ec5,
         0x104e4e05,
         0x2f000384,
         0x0108c0c0,
         0x01010000,
         0xc904ff00,
         0x24000804,
         0x2f000384,
         0x570800e9,
         0x2104da00,
         0x10d7d790,
         0x69026615,
         0x5100470e,
         0x91260761,
         0x11070101,
         0x09032721,
         0x12210101,
         0x81260761,
         0x912c07c1,
         0x11e08181,
         0x51014703,
         0x240016c1,
         0x21050300,
         0x24000dc1,
         0x12c18181,
         0x812c07c1,
         0x245020e4,
         0x24001864,
         0x10676744,
         0x2f000384,
         0x5103696e,
         0x209e0000,
         0x69006627,
         0x81182787,
         0x51000805,
         0x91090762,
         0x110f0202,
         0x12080202,
         0x81090762,
         0x51016958,
         0x51046957,
         0x69026908,
         0x10494924,
         0x24003004,
         0x108989c5,
         0x2f000384,
         0x91240797,
         0x0049d7d7,
         0x81240797,
         0x69006809,
         0x24f020e4,
         0x24001864,
         0x24000644,
         0x108686c5,
         0x10464605,
         0x2f000384,
         0x51036954,
         0x209e0000,
         0x91206796,
         0x13a07676,
         0x1f075656,
         0x11073737,
         0x09034802,
         0x12023737,
         0x81206796,
         0x245020e4,
         0x24001864,
         0x10282844,
         0x2f000384,
         0x51036947,
         0x209e0000,
         0x69016614,
         0x81186787,
         0x51016936,
         0x51046935,
         0x69026908,
         0x10494924,
         0x24003004,
         0x108989c5,
         0x2f000384,
         0x91240797,
         0x0049d7d7,
         0x81240797,
         0x24f020e4,
         0x24001864,
         0x24000644,
         0x108686c5,
         0x10464605,
         0x2f000384,
         0x51036933,
         0x209e0000,
         0x6904660e,
         0x81206787,
         0x91080762,
         0x11070202,
         0x09036922,
         0x12220202,
         0x81080762,
         0x24f020e4,
         0x24000864,
         0x24000644,
         0x108686c5,
         0x10464605,
         0x2f000384,
         0x209e0000,
         0x6903660b,
         0x91090762,
         0x110f0202,
         0x12670202,
         0x81090762,
         0x245020e4,
         0x24000064,
         0x24000744,
         0x2f000384,
         0x5103691a,
         0x209e0000,
         0x51056606,
         0x1f14fbfb,
         0xc914fc04,
         0x2eff8182,
         0x1f14e2e2,
         0x81002d82,
         0x12e3fbfb,
         0x24002104,
         0x2f000384,
         0x5103690f,
         0x209e0000,
         0x91206796,
         0x13a07676,
         0x1f065656,
         0x81300729,
         0x81200796,
         0x810b0726,
         0x811207c6,
         0x245020e4,
         0x24001864,
         0x24000444,
         0x2f000384,
         0x51046902,
         0x209e0000,
         0x108989d0,
         0x9180198f,
         0x01044f01,
         0x111f0101,
         0x68016f03,
         0x1f14fbfb,
         0x209e0000,
         0x01904fc1,
         0x80c13990,
         0x81811961,
         0x209e0000,
         0x2e80838a,
         0xc9022a04,
         0x240000e1,
         0xe1342181,
         0x21038500,
         0x24000ce6,
         0x2f008186,
         0x21038500,
         0x2eff819c,
         0x209e0000,
         0x209e0000 };
    
    const int mSize = sizeof(m); 
    

    Hi, Aamir:

    Please try the firmware patch attached.

    Best regards,

    Eric

     

  • Thanks, it works!

  • Eric,

    Pinging you. Please respond to my question in the following thread http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/276840.aspx

    Thanks, Aamir