summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAravind Batni2016-02-02 19:47:17 -0600
committerAravind Batni2016-02-02 19:47:17 -0600
commita7ee60730f3ef46f1a7eb14df569cc6ebb507378 (patch)
treee98c42178b26b49ddd6186d2c17c9290c2aec153
parent5fbde3cedc3223be5dc8c8cfb37e74f27c14715f (diff)
downloadpa-lld-a7ee60730f3ef46f1a7eb14df569cc6ebb507378.tar.gz
pa-lld-a7ee60730f3ef46f1a7eb14df569cc6ebb507378.tar.xz
pa-lld-a7ee60730f3ef46f1a7eb14df569cc6ebb507378.zip
bug fixes and CCS Project rename
-rw-r--r--fw/pafw.h2
-rw-r--r--fw/v0/classify1.p36
-rw-r--r--fw/v0/classify1_0.bibbin6748 -> 6744 bytes
-rw-r--r--fw/v0/classify1_0.p34
-rw-r--r--fw/v0/classify1_0_bin.c175
-rw-r--r--fw/v0/classify1_1.bibbin6704 -> 6696 bytes
-rw-r--r--fw/v0/classify1_1.p34
-rw-r--r--fw/v0/classify1_1_bin.c208
-rw-r--r--fw/v0/classify1_2.bibbin6704 -> 6696 bytes
-rw-r--r--fw/v0/classify1_2.p34
-rw-r--r--fw/v0/classify1_2_bin.c208
-rw-r--r--fw/v0/classify2.bibbin4084 -> 4100 bytes
-rw-r--r--fw/v0/classify2.p43
-rw-r--r--fw/v0/classify2_bin.c140
-rw-r--r--fw/v0/lut1_lut2.h335
-rw-r--r--fw/v0/meminit.p34
-rw-r--r--fw/v0/pacfgcmn.p34
-rw-r--r--fw/v0/pafw.h2
-rw-r--r--fw/v0/pam.bibbin7264 -> 7376 bytes
-rw-r--r--fw/v0/pam.p160
-rw-r--r--fw/v0/pam_bin.c258
-rw-r--r--fw/v0/parse1.p37
-rw-r--r--fw/v0/parsescope.h36
-rw-r--r--fw/v0/pdsp_ethproto.h165
-rw-r--r--fw/v0/pdsp_ipproto.h349
-rw-r--r--fw/v0/pdsp_mem.h35
-rw-r--r--fw/v0/pdsp_pa.h46
-rw-r--r--fw/v0/pdsp_protos.h35
-rw-r--r--fw/v0/pdsp_subs.h35
-rw-r--r--fw/v0/pm_config.h35
-rw-r--r--fw/v0/pm_constants.h34
-rwxr-xr-x[-rw-r--r--]fw/v1/classify1.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/classify2.p43
-rwxr-xr-x[-rw-r--r--]fw/v1/classify3.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/efp.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/eg0_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/eg0_pdsp1.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/eg0_pdsp2.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/eg1_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/eg2_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/in0_pdsp0.p34
-rw-r--r--fw/v1/in0_pdsp1.bibbin8304 -> 8300 bytes
-rwxr-xr-x[-rw-r--r--]fw/v1/in0_pdsp1.p34
-rw-r--r--fw/v1/in1_pdsp0.bibbin7296 -> 7292 bytes
-rwxr-xr-x[-rw-r--r--]fw/v1/in1_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/in1_pdsp1.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/in2_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/in3_pdsp0.p34
-rw-r--r--fw/v1/in4_pdsp0.bibbin7256 -> 7252 bytes
-rwxr-xr-x[-rw-r--r--]fw/v1/in4_pdsp0.p34
-rw-r--r--fw/v1/in4_pdsp1.bibbin4916 -> 4932 bytes
-rwxr-xr-x[-rw-r--r--]fw/v1/in4_pdsp1.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/lut1_lut2.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/meminit.p34
-rw-r--r--fw/v1/pa2_eg0_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_eg0_pdsp1_bin.c2
-rw-r--r--fw/v1/pa2_eg0_pdsp2_bin.c2
-rw-r--r--fw/v1/pa2_eg1_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_eg2_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_in0_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_in0_pdsp1_bin.c83
-rw-r--r--fw/v1/pa2_in1_pdsp0_bin.c61
-rw-r--r--fw/v1/pa2_in1_pdsp1_bin.c2
-rw-r--r--fw/v1/pa2_in2_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_in3_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_in4_pdsp0_bin.c59
-rw-r--r--fw/v1/pa2_in4_pdsp1_bin.c164
-rw-r--r--fw/v1/pa2_post_pdsp0_bin.c2
-rw-r--r--fw/v1/pa2_post_pdsp1_bin.c2
-rwxr-xr-x[-rw-r--r--]fw/v1/pacfgcmn.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/pafw.h2
-rwxr-xr-x[-rw-r--r--]fw/v1/pam.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/parse1.p40
-rwxr-xr-x[-rw-r--r--]fw/v1/parse_tx.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/parsescope.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_ethproto.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_ipproto.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_mem.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_mem2.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_pa.h38
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_protos.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pdsp_subs.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pm_config.h35
-rwxr-xr-x[-rw-r--r--]fw/v1/pm_constants.h34
-rwxr-xr-x[-rw-r--r--]fw/v1/post_pdsp0.p34
-rwxr-xr-x[-rw-r--r--]fw/v1/post_pdsp1.p34
-rw-r--r--nss_if.h100
-rw-r--r--pa.h44
-rw-r--r--[-rwxr-xr-x]package.xdc4
-rw-r--r--pasahost.h59
-rwxr-xr-xsrc/v0/pa.c24
-rwxr-xr-x[-rw-r--r--]src/v0/pafrm.h4
-rwxr-xr-xsrc/v1/pa.c3
-rwxr-xr-x[-rw-r--r--]src/v1/pafrm.h5
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2EC66BiosTestProject.txt (renamed from test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2E_testProject.txt)1
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/k2h/c66/bios/PA_UnitTest_K2HC66BiosTestProject.txt3
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/k2h/c66/bios/pa_utest_k2h.cfg8
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/k2k/c66/bios/PA_UnitTest_K2KC66BiosTestProject.txt3
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2LC66BiosTestProject.txt (renamed from test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2L_testProject.txt)1
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/src/c66x/bios/testMain.c19
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/src/pautest.h1
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/src/tests/test11.c71
-rwxr-xr-x[-rw-r--r--]test/PAUnitTest/src/tests/test11pkts.h248
-rwxr-xr-xtest/PAUnitTest/src/tests/test16.c791
-rwxr-xr-xtest/PAUnitTest/src/tests/test16pkts.h293
105 files changed, 4750 insertions, 1085 deletions
diff --git a/fw/pafw.h b/fw/pafw.h
index 2cd6f70..71dda86 100644
--- a/fw/pafw.h
+++ b/fw/pafw.h
@@ -10,7 +10,7 @@
10 * 10 *
11 * REVISION HISTORY: 11 * REVISION HISTORY:
12 * 12 *
13 * Copyright (c) Texas Instruments Incorporated 2013 13 * Copyright (c) Texas Instruments Incorporated 2013-2016
14 * 14 *
15 * Redistribution and use in source and binary forms, with or without 15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions 16 * modification, are permitted provided that the following conditions
diff --git a/fw/v0/classify1.p b/fw/v0/classify1.p
index 177c507..f4b6bcf 100644
--- a/fw/v0/classify1.p
+++ b/fw/v0/classify1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************************** 35// **************************************************************************************************************
2// * FILE PURPOSE: Peform packet classification on PDSPS with a LUT1 36// * FILE PURPOSE: Peform packet classification on PDSPS with a LUT1
3// ************************************************************************************************************** 37// **************************************************************************************************************
@@ -1486,7 +1520,7 @@ f_c1Parse:
1486 // Read the descriptor 1520 // Read the descriptor
1487 xin XID_CDEDATA, s_pktDescr, SIZE(s_pktDescr) 1521 xin XID_CDEDATA, s_pktDescr, SIZE(s_pktDescr)
1488 1522
1489 qbbs l_c1Parse3, s_pktDescr.pktId.t_pktIdAllocated 1523 // qbbs l_c1Parse3, s_pktDescr.pktId.t_pktIdAllocated
1490 1524
1491l_c1Parse2: 1525l_c1Parse2:
1492 // Have a new packet ID. Set the alloc bit 1526 // Have a new packet ID. Set the alloc bit
diff --git a/fw/v0/classify1_0.bib b/fw/v0/classify1_0.bib
index 95498f5..438d88f 100644
--- a/fw/v0/classify1_0.bib
+++ b/fw/v0/classify1_0.bib
Binary files differ
diff --git a/fw/v0/classify1_0.p b/fw/v0/classify1_0.p
index b1dee76..0fd0bdc 100644
--- a/fw/v0/classify1_0.p
+++ b/fw/v0/classify1_0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_GLOBAL_INIT 37#define PASS_GLOBAL_INIT
diff --git a/fw/v0/classify1_0_bin.c b/fw/v0/classify1_0_bin.c
index da8baac..fe7e928 100644
--- a/fw/v0/classify1_0_bin.c
+++ b/fw/v0/classify1_0_bin.c
@@ -185,7 +185,7 @@ const uint32_t c1_0[] = {
185 0x240300f4, 185 0x240300f4,
186 0x80f4e080, 186 0x80f4e080,
187 0x209e0000, 187 0x209e0000,
188 0x2302bc9e, 188 0x2302bb9e,
189 0x2eff8582, 189 0x2eff8582,
190 0x8104a482, 190 0x8104a482,
191 0x240001e2, 191 0x240001e2,
@@ -256,7 +256,7 @@ const uint32_t c1_0[] = {
256 0x81082c9c, 256 0x81082c9c,
257 0x2eff819c, 257 0x2eff819c,
258 0x21009b00, 258 0x21009b00,
259 0x2105a200, 259 0x2105a100,
260 0x2100cd00, 260 0x2100cd00,
261 0x1f08fcfc, 261 0x1f08fcfc,
262 0xc905ff00, 262 0xc905ff00,
@@ -466,7 +466,7 @@ const uint32_t c1_0[] = {
466 0x2eff8183, 466 0x2eff8183,
467 0x1f12e3e3, 467 0x1f12e3e3,
468 0x2400cb9e, 468 0x2400cb9e,
469 0x21047a00, 469 0x21047900,
470 0x1f09fcfc, 470 0x1f09fcfc,
471 0xd106ff00, 471 0xd106ff00,
472 0xc905ff00, 472 0xc905ff00,
@@ -562,13 +562,12 @@ const uint32_t c1_0[] = {
562 0x01148181, 562 0x01148181,
563 0x9081fe86, 563 0x9081fe86,
564 0x2400cb9e, 564 0x2400cb9e,
565 0x21047a00, 565 0x21047900,
566 0x1f00fcfc, 566 0x1f00fcfc,
567 0x91002481, 567 0x91002481,
568 0x0101e1e1, 568 0x0101e1e1,
569 0x81002481, 569 0x81002481,
570 0x2e808f86, 570 0x2e808f86,
571 0xd10eca10,
572 0x243000e1, 571 0x243000e1,
573 0xf1082180, 572 0xf1082180,
574 0x24ffffc0, 573 0x24ffffc0,
@@ -618,7 +617,7 @@ const uint32_t c1_0[] = {
618 0x2e810185, 617 0x2e810185,
619 0xc9030503, 618 0xc9030503,
620 0x2300d39e, 619 0x2300d39e,
621 0x21023d00, 620 0x21023c00,
622 0x2301a49e, 621 0x2301a49e,
623 0x1d077d7d, 622 0x1d077d7d,
624 0xc907ff00, 623 0xc907ff00,
@@ -629,7 +628,7 @@ const uint32_t c1_0[] = {
629 0x124e0202, 628 0x124e0202,
630 0x81090762, 629 0x81090762,
631 0x24000744, 630 0x24000744,
632 0x21024b00, 631 0x21024a00,
633 0x24000644, 632 0x24000644,
634 0x108e8ec5, 633 0x108e8ec5,
635 0x104e4e05, 634 0x104e4e05,
@@ -649,12 +648,12 @@ const uint32_t c1_0[] = {
649 0x2f000384, 648 0x2f000384,
650 0x2eff8b96, 649 0x2eff8b96,
651 0x108989d7, 650 0x108989d7,
652 0x21026500, 651 0x21026400,
653 0x2eff8a96, 652 0x2eff8a96,
654 0x108989d7, 653 0x108989d7,
655 0x24001059, 654 0x24001059,
656 0x24027e9e, 655 0x24027d9e,
657 0x21066700, 656 0x21066600,
658 0x24000104, 657 0x24000104,
659 0x240018c4, 658 0x240018c4,
660 0x2f000184, 659 0x2f000184,
@@ -671,7 +670,7 @@ const uint32_t c1_0[] = {
671 0x61100304, 670 0x61100304,
672 0x1f005d5d, 671 0x1f005d5d,
673 0x240002de, 672 0x240002de,
674 0x21029000, 673 0x21028f00,
675 0x2eff8f8e, 674 0x2eff8f8e,
676 0x2f01878e, 675 0x2f01878e,
677 0x2f020f8e, 676 0x2f020f8e,
@@ -679,7 +678,7 @@ const uint32_t c1_0[] = {
679 0x4896d704, 678 0x4896d704,
680 0x24002837, 679 0x24002837,
681 0x240002de, 680 0x240002de,
682 0x21029000, 681 0x21028f00,
683 0x09010300, 682 0x09010300,
684 0x01000000, 683 0x01000000,
685 0x90001580, 684 0x90001580,
@@ -698,7 +697,7 @@ const uint32_t c1_0[] = {
698 0xc9015604, 697 0xc9015604,
699 0xc9000207, 698 0xc9000207,
700 0xc9030206, 699 0xc9030206,
701 0x21028f00, 700 0x21028e00,
702 0xc9005604, 701 0xc9005604,
703 0xc9010203, 702 0xc9010203,
704 0xc9040202, 703 0xc9040202,
@@ -729,9 +728,9 @@ const uint32_t c1_0[] = {
729 0x24001864, 728 0x24001864,
730 0x24000644, 729 0x24000644,
731 0x2f000384, 730 0x2f000384,
732 0x21029f00, 731 0x21029e00,
733 0x5103de04, 732 0x5103de04,
734 0x5705de4c, 733 0x5705de4d,
735 0x0b0337de, 734 0x0b0337de,
736 0x21019d00, 735 0x21019d00,
737 0x24502084, 736 0x24502084,
@@ -740,7 +739,7 @@ const uint32_t c1_0[] = {
740 0x2f000384, 739 0x2f000384,
741 0x2100cb00, 740 0x2100cb00,
742 0x24002104, 741 0x24002104,
743 0x2102b200, 742 0x2102b100,
744 0x1f047d7d, 743 0x1f047d7d,
745 0x24002004, 744 0x24002004,
746 0x24000824, 745 0x24000824,
@@ -754,7 +753,7 @@ const uint32_t c1_0[] = {
754 0x24000205, 753 0x24000205,
755 0x2f010185, 754 0x2f010185,
756 0x0101e3e3, 755 0x0101e3e3,
757 0x2102bd00, 756 0x2102bc00,
758 0x2eff9183, 757 0x2eff9183,
759 0x1d006363, 758 0x1d006363,
760 0x24000564, 759 0x24000564,
@@ -769,11 +768,11 @@ const uint32_t c1_0[] = {
769 0x2eff818a, 768 0x2eff818a,
770 0x8108398a, 769 0x8108398a,
771 0x2eff9088, 770 0x2eff9088,
772 0x2405bbc8, 771 0x2405bac8,
773 0x24062388, 772 0x24062288,
774 0x240634c9, 773 0x240633c9,
775 0x240647cf, 774 0x240646cf,
776 0x240663d0, 775 0x240662d0,
777 0x24002200, 776 0x24002200,
778 0x8f00d508, 777 0x8f00d508,
779 0x91001760, 778 0x91001760,
@@ -785,11 +784,11 @@ const uint32_t c1_0[] = {
785 0x71406a04, 784 0x71406a04,
786 0x240004e6, 785 0x240004e6,
787 0x2f008186, 786 0x2f008186,
788 0x21031400, 787 0x21031300,
789 0x91007981, 788 0x91007981,
790 0x59206a03, 789 0x59206a03,
791 0x1c6ae2e2, 790 0x1c6ae2e2,
792 0x2102e900, 791 0x2102e800,
793 0x05206a4a, 792 0x05206a4a,
794 0x1c4ae1e1, 793 0x1c4ae1e1,
795 0x2eff918d, 794 0x2eff918d,
@@ -804,13 +803,13 @@ const uint32_t c1_0[] = {
804 0x2f010185, 803 0x2f010185,
805 0x09066a80, 804 0x09066a80,
806 0x8480318d, 805 0x8480318d,
807 0x21031400, 806 0x21031300,
808 0x2400006b, 807 0x2400006b,
809 0x106a6a4b, 808 0x106a6a4b,
810 0x8108398b, 809 0x8108398b,
811 0x850c398d, 810 0x850c398d,
812 0x1f057d7d, 811 0x1f057d7d,
813 0x21031400, 812 0x21031300,
814 0x240000da, 813 0x240000da,
815 0x10898980, 814 0x10898980,
816 0x24000d04, 815 0x24000d04,
@@ -821,7 +820,7 @@ const uint32_t c1_0[] = {
821 0x51ce4704, 820 0x51ce4704,
822 0x240001e6, 821 0x240001e6,
823 0x2f008186, 822 0x2f008186,
824 0x21031400, 823 0x21031300,
825 0x2400005a, 824 0x2400005a,
826 0x5101670a, 825 0x5101670a,
827 0x5102670a, 826 0x5102670a,
@@ -832,9 +831,9 @@ const uint32_t c1_0[] = {
832 0x5307673f, 831 0x5307673f,
833 0x240002e6, 832 0x240002e6,
834 0x2f008186, 833 0x2f008186,
835 0x21031400, 834 0x21031300,
836 0x21053800, 835 0x21053700,
837 0x2102de00, 836 0x2102dd00,
838 0x69062915, 837 0x69062915,
839 0x91082481, 838 0x91082481,
840 0x0101e1e1, 839 0x0101e1e1,
@@ -853,7 +852,7 @@ const uint32_t c1_0[] = {
853 0x2400f024, 852 0x2400f024,
854 0x91001761, 853 0x91001761,
855 0x59030002, 854 0x59030002,
856 0x23059a9e, 855 0x2305999e,
857 0x2f000384, 856 0x2f000384,
858 0x2100cd00, 857 0x2100cd00,
859 0x240021e4, 858 0x240021e4,
@@ -862,7 +861,7 @@ const uint32_t c1_0[] = {
862 0x59388004, 861 0x59388004,
863 0x240010e6, 862 0x240010e6,
864 0x2f008186, 863 0x2f008186,
865 0x21031400, 864 0x21031300,
866 0x240000e6, 865 0x240000e6,
867 0x2f008186, 866 0x2f008186,
868 0x2e80878a, 867 0x2e80878a,
@@ -954,7 +953,7 @@ const uint32_t c1_0[] = {
954 0xe10c2281, 953 0xe10c2281,
955 0x240050e2, 954 0x240050e2,
956 0xe10c2281, 955 0xe10c2281,
957 0x21031400, 956 0x21031300,
958 0x240000e6, 957 0x240000e6,
959 0x2f008186, 958 0x2f008186,
960 0x2e80838a, 959 0x2e80838a,
@@ -964,22 +963,22 @@ const uint32_t c1_0[] = {
964 0x58c08004, 963 0x58c08004,
965 0x240010e6, 964 0x240010e6,
966 0x2f008186, 965 0x2f008186,
967 0x21031400, 966 0x21031300,
968 0x240018c4, 967 0x240018c4,
969 0x2f000384, 968 0x2f000384,
970 0x21042700, 969 0x21042600,
971 0x240014c4, 970 0x240014c4,
972 0x2f000384, 971 0x2f000384,
973 0x69016a17, 972 0x69016a17,
974 0x593c8004, 973 0x593c8004,
975 0x240010e6, 974 0x240010e6,
976 0x1f007a7a, 975 0x1f007a7a,
977 0x21031400, 976 0x21031300,
978 0x2e80838e, 977 0x2e80838e,
979 0x71046e04, 978 0x71046e04,
980 0x240011e6, 979 0x240011e6,
981 0x1f007a7a, 980 0x1f007a7a,
982 0x21031400, 981 0x21031300,
983 0x09056e81, 982 0x09056e81,
984 0x09036ec1, 983 0x09036ec1,
985 0x00c18181, 984 0x00c18181,
@@ -992,26 +991,26 @@ const uint32_t c1_0[] = {
992 0x8281f38e, 991 0x8281f38e,
993 0x240020c4, 992 0x240020c4,
994 0x2f000384, 993 0x2f000384,
995 0x21031400, 994 0x21031300,
996 0x69026a0e, 995 0x69026a0e,
997 0x59248004, 996 0x59248004,
998 0x240010e6, 997 0x240010e6,
999 0x1f007a7a, 998 0x1f007a7a,
1000 0x21031400, 999 0x21031300,
1001 0x2e80878e, 1000 0x2e80878e,
1002 0x71106e04, 1001 0x71106e04,
1003 0x240012e6, 1002 0x240012e6,
1004 0x1f007a7a, 1003 0x1f007a7a,
1005 0x21031400, 1004 0x21031300,
1006 0x09046e81, 1005 0x09046e81,
1007 0x01008181, 1006 0x01008181,
1008 0x8081fa8e, 1007 0x8081fa8e,
1009 0x21031400, 1008 0x21031300,
1010 0x69036a0d, 1009 0x69036a0d,
1011 0x59188004, 1010 0x59188004,
1012 0x240010e6, 1011 0x240010e6,
1013 0x1f007a7a, 1012 0x1f007a7a,
1014 0x21031400, 1013 0x21031300,
1015 0x2e80818e, 1014 0x2e80818e,
1016 0x1d035d5d, 1015 0x1d035d5d,
1017 0xc9006e05, 1016 0xc9006e05,
@@ -1019,12 +1018,12 @@ const uint32_t c1_0[] = {
1019 0x1d045d5d, 1018 0x1d045d5d,
1020 0xc9016e02, 1019 0xc9016e02,
1021 0x1f045d5d, 1020 0x1f045d5d,
1022 0x21031400, 1021 0x21031300,
1023 0x69066a10, 1022 0x69066a10,
1024 0x59248004, 1023 0x59248004,
1025 0x240010e6, 1024 0x240010e6,
1026 0x1f007a7a, 1025 0x1f007a7a,
1027 0x21031400, 1026 0x21031300,
1028 0x2e80878e, 1027 0x2e80878e,
1029 0x51006e09, 1028 0x51006e09,
1030 0x09036f82, 1029 0x09036f82,
@@ -1034,13 +1033,13 @@ const uint32_t c1_0[] = {
1034 0x2f000384, 1033 0x2f000384,
1035 0x2e80858f, 1034 0x2e80858f,
1036 0x05016e6e, 1035 0x05016e6e,
1037 0x2103d300, 1036 0x2103d200,
1038 0x21031400, 1037 0x21031300,
1039 0x69076a10, 1038 0x69076a10,
1040 0x59248004, 1039 0x59248004,
1041 0x240010e6, 1040 0x240010e6,
1042 0x1f007a7a, 1041 0x1f007a7a,
1043 0x21031400, 1042 0x21031300,
1044 0x2e80878e, 1043 0x2e80878e,
1045 0x51006e09, 1044 0x51006e09,
1046 0x09036f82, 1045 0x09036f82,
@@ -1050,14 +1049,14 @@ const uint32_t c1_0[] = {
1050 0x2f000384, 1049 0x2f000384,
1051 0x2e80858f, 1050 0x2e80858f,
1052 0x05016e6e, 1051 0x05016e6e,
1053 0x2103e300, 1052 0x2103e200,
1054 0x21031400, 1053 0x21031300,
1055 0x69086a1b, 1054 0x69086a1b,
1056 0x24004cc0, 1055 0x24004cc0,
1057 0x58c08004, 1056 0x58c08004,
1058 0x240010e6, 1057 0x240010e6,
1059 0x1f007a7a, 1058 0x1f007a7a,
1060 0x21031400, 1059 0x21031300,
1061 0x2e808b8e, 1060 0x2e808b8e,
1062 0x240100c2, 1061 0x240100c2,
1063 0x51006e12, 1062 0x51006e12,
@@ -1077,14 +1076,14 @@ const uint32_t c1_0[] = {
1077 0x2f000184, 1076 0x2f000184,
1078 0x2e80898f, 1077 0x2e80898f,
1079 0x05016e6e, 1078 0x05016e6e,
1080 0x2103f500, 1079 0x2103f400,
1081 0x21031400, 1080 0x21031300,
1082 0x69096a1c, 1081 0x69096a1c,
1083 0x2400b0c0, 1082 0x2400b0c0,
1084 0x58c08004, 1083 0x58c08004,
1085 0x240010e6, 1084 0x240010e6,
1086 0x1f007a7a, 1085 0x1f007a7a,
1087 0x21031400, 1086 0x21031300,
1088 0x2e808d8e, 1087 0x2e808d8e,
1089 0x240200c2, 1088 0x240200c2,
1090 0x51006e13, 1089 0x51006e13,
@@ -1100,16 +1099,16 @@ const uint32_t c1_0[] = {
1100 0x8082fe91, 1099 0x8082fe91,
1101 0x01108282, 1100 0x01108282,
1102 0x05014e4e, 1101 0x05014e4e,
1103 0x21041600, 1102 0x21041500,
1104 0x240018c4, 1103 0x240018c4,
1105 0x2f000184, 1104 0x2f000184,
1106 0x2e808b8f, 1105 0x2e808b8f,
1107 0x05016e6e, 1106 0x05016e6e,
1108 0x21041000, 1107 0x21040f00,
1109 0x21031400, 1108 0x21031300,
1110 0x240002e6, 1109 0x240002e6,
1111 0x1f007a7a, 1110 0x1f007a7a,
1112 0x21031400, 1111 0x21031300,
1113 0x240000e1, 1112 0x240000e1,
1114 0x240010c4, 1113 0x240010c4,
1115 0x2e80878e, 1114 0x2e80878e,
@@ -1119,7 +1118,7 @@ const uint32_t c1_0[] = {
1119 0x01010101, 1118 0x01010101,
1120 0x0110c1c1, 1119 0x0110c1c1,
1121 0x671f01fa, 1120 0x671f01fa,
1122 0x21031400, 1121 0x21031300,
1123 0x2e80818a, 1122 0x2e80818a,
1124 0x24000004, 1123 0x24000004,
1125 0x240014c4, 1124 0x240014c4,
@@ -1146,8 +1145,8 @@ const uint32_t c1_0[] = {
1146 0x10e2e2e5, 1145 0x10e2e2e5,
1147 0x2f000384, 1146 0x2f000384,
1148 0x9083e286, 1147 0x9083e286,
1149 0x21031400, 1148 0x21031300,
1150 0x21031400, 1149 0x21031300,
1151 0x24000004, 1150 0x24000004,
1152 0x240010c4, 1151 0x240010c4,
1153 0x2f000384, 1152 0x2f000384,
@@ -1156,12 +1155,12 @@ const uint32_t c1_0[] = {
1156 0x2f000384, 1155 0x2f000384,
1157 0x9100b78e, 1156 0x9100b78e,
1158 0x2f00858e, 1157 0x2f00858e,
1159 0x21031400, 1158 0x21031300,
1160 0x240058c0, 1159 0x240058c0,
1161 0x58c08004, 1160 0x58c08004,
1162 0x240010e6, 1161 0x240010e6,
1163 0x2f008186, 1162 0x2f008186,
1164 0x21031400, 1163 0x21031300,
1165 0x1f027d7d, 1164 0x1f027d7d,
1166 0x2e80838a, 1165 0x2e80838a,
1167 0x106a6a24, 1166 0x106a6a24,
@@ -1192,7 +1191,7 @@ const uint32_t c1_0[] = {
1192 0x01040101, 1191 0x01040101,
1193 0x01012424, 1192 0x01012424,
1194 0x671024fc, 1193 0x671024fc,
1195 0x21031400, 1194 0x21031300,
1196 0x10d7d790, 1195 0x10d7d790,
1197 0x24000442, 1196 0x24000442,
1198 0x69026619, 1197 0x69026619,
@@ -1206,7 +1205,7 @@ const uint32_t c1_0[] = {
1206 0x11e08181, 1205 0x11e08181,
1207 0x51014703, 1206 0x51014703,
1208 0x240016c1, 1207 0x240016c1,
1209 0x21048900, 1208 0x21048800,
1210 0x24000dc1, 1209 0x24000dc1,
1211 0x12c18181, 1210 0x12c18181,
1212 0x812c07c1, 1211 0x812c07c1,
@@ -1248,7 +1247,7 @@ const uint32_t c1_0[] = {
1248 0x11c03900, 1247 0x11c03900,
1249 0x51000003, 1248 0x51000003,
1250 0x107b7b21, 1249 0x107b7b21,
1251 0x2104b800, 1250 0x2104b700,
1252 0xd1010106, 1251 0xd1010106,
1253 0x111f5900, 1252 0x111f5900,
1254 0x51030002, 1253 0x51030002,
@@ -1261,11 +1260,11 @@ const uint32_t c1_0[] = {
1261 0x00214646, 1260 0x00214646,
1262 0x00018686, 1261 0x00018686,
1263 0x24000642, 1262 0x24000642,
1264 0x2104c900, 1263 0x2104c800,
1265 0x00228686, 1264 0x00228686,
1266 0xc9016809, 1265 0xc9016809,
1267 0x00224646, 1266 0x00224646,
1268 0x2104c900, 1267 0x2104c800,
1269 0xc9026803, 1268 0xc9026803,
1270 0x007b8686, 1269 0x007b8686,
1271 0x24000642, 1270 0x24000642,
@@ -1382,7 +1381,7 @@ const uint32_t c1_0[] = {
1382 0x209e0000, 1381 0x209e0000,
1383 0x24000ce6, 1382 0x24000ce6,
1384 0x2f008186, 1383 0x2f008186,
1385 0x21031400, 1384 0x21031300,
1386 0x2e80818a, 1385 0x2e80818a,
1387 0x2eff818d, 1386 0x2eff818d,
1388 0x240034c0, 1387 0x240034c0,
@@ -1391,7 +1390,7 @@ const uint32_t c1_0[] = {
1391 0x58c08004, 1390 0x58c08004,
1392 0x240010e6, 1391 0x240010e6,
1393 0x2f008186, 1392 0x2f008186,
1394 0x21031400, 1393 0x21031300,
1395 0x91007981, 1394 0x91007981,
1396 0x69406a0b, 1395 0x69406a0b,
1397 0x2700e160, 1396 0x2700e160,
@@ -1400,14 +1399,14 @@ const uint32_t c1_0[] = {
1400 0x69206005, 1399 0x69206005,
1401 0x240004e6, 1400 0x240004e6,
1402 0x2f008186, 1401 0x2f008186,
1403 0x21031400, 1402 0x21031300,
1404 0x01206060, 1403 0x01206060,
1405 0x1060606a, 1404 0x1060606a,
1406 0x2f00800a, 1405 0x2f00800a,
1407 0x61406a04, 1406 0x61406a04,
1408 0x240004e6, 1407 0x240004e6,
1409 0x2f008186, 1408 0x2f008186,
1410 0x21031400, 1409 0x21031300,
1411 0x2400016b, 1410 0x2400016b,
1412 0x106a6a4b, 1411 0x106a6a4b,
1413 0x24000004, 1412 0x24000004,
@@ -1419,11 +1418,11 @@ const uint32_t c1_0[] = {
1419 0x51004a18, 1418 0x51004a18,
1420 0x240003e6, 1419 0x240003e6,
1421 0x1f007a7a, 1420 0x1f007a7a,
1422 0x21031400, 1421 0x21031300,
1423 0x61206a04, 1422 0x61206a04,
1424 0x05206a60, 1423 0x05206a60,
1425 0x1e60e1e1, 1424 0x1e60e1e1,
1426 0x21056200, 1425 0x21056100,
1427 0x1e6ae2e2, 1426 0x1e6ae2e2,
1428 0x2e808f8e, 1427 0x2e808f8e,
1429 0xd1077d0a, 1428 0xd1077d0a,
@@ -1435,11 +1434,11 @@ const uint32_t c1_0[] = {
1435 0x104b4b25, 1434 0x104b4b25,
1436 0x24000105, 1435 0x24000105,
1437 0x2f010185, 1436 0x2f010185,
1438 0x21031400, 1437 0x21031300,
1439 0x8108398b, 1438 0x8108398b,
1440 0x850c398d, 1439 0x850c398d,
1441 0x1f057d7d, 1440 0x1f057d7d,
1442 0x21031400, 1441 0x21031300,
1443 0x2e80878e, 1442 0x2e80878e,
1444 0x2f01878e, 1443 0x2f01878e,
1445 0x240010c4, 1444 0x240010c4,
@@ -1463,7 +1462,7 @@ const uint32_t c1_0[] = {
1463 0x10cece8b, 1462 0x10cece8b,
1464 0x240004c4, 1463 0x240004c4,
1465 0x2f000384, 1464 0x2f000384,
1466 0x21055d00, 1465 0x21055c00,
1467 0x2e80878e, 1466 0x2e80878e,
1468 0x2f01878e, 1467 0x2f01878e,
1469 0x240010c4, 1468 0x240010c4,
@@ -1480,7 +1479,7 @@ const uint32_t c1_0[] = {
1480 0x10cece8b, 1479 0x10cece8b,
1481 0x240004c4, 1480 0x240004c4,
1482 0x2f000384, 1481 0x2f000384,
1483 0x21055d00, 1482 0x21055c00,
1484 0xc9077d07, 1483 0xc9077d07,
1485 0x13082424, 1484 0x13082424,
1486 0x1f047d7d, 1485 0x1f047d7d,
@@ -1504,13 +1503,13 @@ const uint32_t c1_0[] = {
1504 0x59204b06, 1503 0x59204b06,
1505 0x51016b03, 1504 0x51016b03,
1506 0x1c4be2e2, 1505 0x1c4be2e2,
1507 0x2105b900, 1506 0x2105b800,
1508 0x1e4be2e2, 1507 0x1e4be2e2,
1509 0x2105b900, 1508 0x2105b800,
1510 0x05204b4b, 1509 0x05204b4b,
1511 0x51016b03, 1510 0x51016b03,
1512 0x1c4be1e1, 1511 0x1c4be1e1,
1513 0x2105b900, 1512 0x2105b800,
1514 0x1e4be1e1, 1513 0x1e4be1e1,
1515 0x81007981, 1514 0x81007981,
1516 0x2100cd00, 1515 0x2100cd00,
@@ -1553,11 +1552,11 @@ const uint32_t c1_0[] = {
1553 0x111f0101, 1552 0x111f0101,
1554 0x68013003, 1553 0x68013003,
1555 0x1f15fcfc, 1554 0x1f15fcfc,
1556 0x21062000, 1555 0x21061f00,
1557 0x019010c1, 1556 0x019010c1,
1558 0x80c13991, 1557 0x80c13991,
1559 0x81811961, 1558 0x81811961,
1560 0x21062000, 1559 0x21061f00,
1561 0x1f071919, 1560 0x1f071919,
1562 0x10d0d0ce, 1561 0x10d0d0ce,
1563 0x0108c4c4, 1562 0x0108c4c4,
@@ -1634,7 +1633,7 @@ const uint32_t c1_0[] = {
1634 0x01029696, 1633 0x01029696,
1635 0x240002c4, 1634 0x240002c4,
1636 0x2f000384, 1635 0x2f000384,
1637 0x2105d100, 1636 0x2105d000,
1638 0x1f07d9d9, 1637 0x1f07d9d9,
1639 0x1f0efcfc, 1638 0x1f0efcfc,
1640 0x2e80838e, 1639 0x2e80838e,
@@ -1675,13 +1674,13 @@ const uint32_t c1_0[] = {
1675 0x24000403, 1674 0x24000403,
1676 0x209e0000, 1675 0x209e0000,
1677 0x2400b837, 1676 0x2400b837,
1678 0x21065e00, 1677 0x21065d00,
1679 0x2400b037, 1678 0x2400b037,
1680 0x240002de, 1679 0x240002de,
1681 0x24001003, 1680 0x24001003,
1682 0x209e0000, 1681 0x209e0000,
1683 0x24002837, 1682 0x24002837,
1684 0x21065e00, 1683 0x21065d00,
1685 0x1f0ffcfc, 1684 0x1f0ffcfc,
1686 0x13283737, 1685 0x13283737,
1687 0x240002de, 1686 0x240002de,
@@ -1700,7 +1699,7 @@ const uint32_t c1_0[] = {
1700 0x1f031d1d, 1699 0x1f031d1d,
1701 0x10cecec7, 1700 0x10cecec7,
1702 0x108e8e87, 1701 0x108e8e87,
1703 0x21067900, 1702 0x21067800,
1704 0x1f021d1d, 1703 0x1f021d1d,
1705 0x11ffcec7, 1704 0x11ffcec7,
1706 0x11ff8e87, 1705 0x11ff8e87,
@@ -1720,7 +1719,7 @@ const uint32_t c1_0[] = {
1720 0x1f031d1d, 1719 0x1f031d1d,
1721 0x10cecec7, 1720 0x10cecec7,
1722 0x108e8e87, 1721 0x108e8e87,
1723 0x21068d00, 1722 0x21068c00,
1724 0x1f021d1d, 1723 0x1f021d1d,
1725 0x11ffcec7, 1724 0x11ffcec7,
1726 0x11ff8e87, 1725 0x11ff8e87,
@@ -1735,4 +1734,4 @@ const uint32_t c1_0[] = {
1735 0x2f028786, 1734 0x2f028786,
1736 0x209e0000 }; 1735 0x209e0000 };
1737 1736
1738const int c1_0Size = sizeof(c1_0); 1737const int c1_0Size = sizeof(c1_0);
diff --git a/fw/v0/classify1_1.bib b/fw/v0/classify1_1.bib
index bff6365..a9db143 100644
--- a/fw/v0/classify1_1.bib
+++ b/fw/v0/classify1_1.bib
Binary files differ
diff --git a/fw/v0/classify1_1.p b/fw/v0/classify1_1.p
index 27cee40..2570be1 100644
--- a/fw/v0/classify1_1.p
+++ b/fw/v0/classify1_1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_PROC_LUT1 37#define PASS_PROC_LUT1
diff --git a/fw/v0/classify1_1_bin.c b/fw/v0/classify1_1_bin.c
index 64996fd..f109422 100644
--- a/fw/v0/classify1_1_bin.c
+++ b/fw/v0/classify1_1_bin.c
@@ -50,7 +50,7 @@ const uint32_t c1_1[] = {
50 0x21000300, 50 0x21000300,
51 0xbabe0001, 51 0xbabe0001,
52 0x03000107, 52 0x03000107,
53 0x2301ae9e, 53 0x2301ad9e,
54 0x2eff8582, 54 0x2eff8582,
55 0x8104a482, 55 0x8104a482,
56 0x240001e2, 56 0x240001e2,
@@ -123,7 +123,7 @@ const uint32_t c1_1[] = {
123 0x81082c9c, 123 0x81082c9c,
124 0x2eff819c, 124 0x2eff819c,
125 0x21001000, 125 0x21001000,
126 0x21049b00, 126 0x21049a00,
127 0x21004800, 127 0x21004800,
128 0x1f08fcfc, 128 0x1f08fcfc,
129 0xc905ff00, 129 0xc905ff00,
@@ -332,7 +332,7 @@ const uint32_t c1_1[] = {
332 0x2eff8183, 332 0x2eff8183,
333 0x1f12e3e3, 333 0x1f12e3e3,
334 0x2400469e, 334 0x2400469e,
335 0x21037400, 335 0x21037300,
336 0x1f09fcfc, 336 0x1f09fcfc,
337 0xd106ff00, 337 0xd106ff00,
338 0xc905ff00, 338 0xc905ff00,
@@ -387,7 +387,6 @@ const uint32_t c1_1[] = {
387 0x0101e1e1, 387 0x0101e1e1,
388 0x81002481, 388 0x81002481,
389 0x2e808f86, 389 0x2e808f86,
390 0xd10eca01,
391 0x24000804, 390 0x24000804,
392 0x2f000184, 391 0x2f000184,
393 0x242031e4, 392 0x242031e4,
@@ -418,7 +417,7 @@ const uint32_t c1_1[] = {
418 0x61100304, 417 0x61100304,
419 0x1f005d5d, 418 0x1f005d5d,
420 0x240002de, 419 0x240002de,
421 0x21018300, 420 0x21018200,
422 0x2eff8f8e, 421 0x2eff8f8e,
423 0x2f01878e, 422 0x2f01878e,
424 0x2f020f8e, 423 0x2f020f8e,
@@ -426,7 +425,7 @@ const uint32_t c1_1[] = {
426 0x4896d704, 425 0x4896d704,
427 0x24002837, 426 0x24002837,
428 0x240002de, 427 0x240002de,
429 0x21018300, 428 0x21018200,
430 0x09010300, 429 0x09010300,
431 0x01800000, 430 0x01800000,
432 0x90001580, 431 0x90001580,
@@ -460,7 +459,7 @@ const uint32_t c1_1[] = {
460 0x24001864, 459 0x24001864,
461 0x24000644, 460 0x24000644,
462 0x2f000384, 461 0x2f000384,
463 0x21019200, 462 0x21019100,
464 0x5103de03, 463 0x5103de03,
465 0x0b0337de, 464 0x0b0337de,
466 0x21011700, 465 0x21011700,
@@ -470,7 +469,7 @@ const uint32_t c1_1[] = {
470 0x2f000384, 469 0x2f000384,
471 0x21004600, 470 0x21004600,
472 0x24002104, 471 0x24002104,
473 0x2101a400, 472 0x2101a300,
474 0x1f047d7d, 473 0x1f047d7d,
475 0x24002004, 474 0x24002004,
476 0x24000824, 475 0x24000824,
@@ -484,7 +483,7 @@ const uint32_t c1_1[] = {
484 0x24000205, 483 0x24000205,
485 0x2f010185, 484 0x2f010185,
486 0x0101e3e3, 485 0x0101e3e3,
487 0x2101af00, 486 0x2101ae00,
488 0x2eff9183, 487 0x2eff9183,
489 0x1d006363, 488 0x1d006363,
490 0x24000564, 489 0x24000564,
@@ -499,19 +498,19 @@ const uint32_t c1_1[] = {
499 0x2eff818a, 498 0x2eff818a,
500 0x8108398a, 499 0x8108398a,
501 0x2eff9088, 500 0x2eff9088,
502 0x2404b489, 501 0x2404b389,
503 0x240542ca, 502 0x240541ca,
504 0x2405cd8a, 503 0x2405cb8a,
505 0x2405d8cb, 504 0x2405d6cb,
506 0x2405e38b, 505 0x2405e18b,
507 0x2405efcc, 506 0x2405edcc,
508 0x2405fa8c, 507 0x2405f88c,
509 0x24061fcd, 508 0x24061dcd,
510 0x24062d8d, 509 0x24062b8d,
511 0x240636ce, 510 0x240634ce,
512 0x2406658e, 511 0x2406638e,
513 0x2406488f, 512 0x2406468f,
514 0x240661d0, 513 0x24065fd0,
515 0x24002200, 514 0x24002200,
516 0x8f80d508, 515 0x8f80d508,
517 0x91001760, 516 0x91001760,
@@ -523,11 +522,11 @@ const uint32_t c1_1[] = {
523 0x71406a04, 522 0x71406a04,
524 0x240004e6, 523 0x240004e6,
525 0x2f008186, 524 0x2f008186,
526 0x21020e00, 525 0x21020d00,
527 0x91007981, 526 0x91007981,
528 0x59206a03, 527 0x59206a03,
529 0x1c6ae2e2, 528 0x1c6ae2e2,
530 0x2101e300, 529 0x2101e200,
531 0x05206a4a, 530 0x05206a4a,
532 0x1c4ae1e1, 531 0x1c4ae1e1,
533 0x2eff918d, 532 0x2eff918d,
@@ -542,13 +541,13 @@ const uint32_t c1_1[] = {
542 0x2f010185, 541 0x2f010185,
543 0x09066a80, 542 0x09066a80,
544 0x8480318d, 543 0x8480318d,
545 0x21020e00, 544 0x21020d00,
546 0x2400006b, 545 0x2400006b,
547 0x106a6a4b, 546 0x106a6a4b,
548 0x8108398b, 547 0x8108398b,
549 0x850c398d, 548 0x850c398d,
550 0x1f057d7d, 549 0x1f057d7d,
551 0x21020e00, 550 0x21020d00,
552 0x240000da, 551 0x240000da,
553 0x10898980, 552 0x10898980,
554 0x24000d04, 553 0x24000d04,
@@ -559,7 +558,7 @@ const uint32_t c1_1[] = {
559 0x51ce4704, 558 0x51ce4704,
560 0x240001e6, 559 0x240001e6,
561 0x2f008186, 560 0x2f008186,
562 0x21020e00, 561 0x21020d00,
563 0x2400005a, 562 0x2400005a,
564 0x5101670a, 563 0x5101670a,
565 0x5102670a, 564 0x5102670a,
@@ -570,9 +569,9 @@ const uint32_t c1_1[] = {
570 0x5307673f, 569 0x5307673f,
571 0x240002e6, 570 0x240002e6,
572 0x2f008186, 571 0x2f008186,
573 0x21020e00, 572 0x21020d00,
574 0x21043100, 573 0x21043000,
575 0x2101d800, 574 0x2101d700,
576 0x69062915, 575 0x69062915,
577 0x91082481, 576 0x91082481,
578 0x0101e1e1, 577 0x0101e1e1,
@@ -591,7 +590,7 @@ const uint32_t c1_1[] = {
591 0x2400f024, 590 0x2400f024,
592 0x91001761, 591 0x91001761,
593 0x59030002, 592 0x59030002,
594 0x2304939e, 593 0x2304929e,
595 0x2f000384, 594 0x2f000384,
596 0x21004800, 595 0x21004800,
597 0x240021e4, 596 0x240021e4,
@@ -600,7 +599,7 @@ const uint32_t c1_1[] = {
600 0x59388004, 599 0x59388004,
601 0x240010e6, 600 0x240010e6,
602 0x2f008186, 601 0x2f008186,
603 0x21020e00, 602 0x21020d00,
604 0x240000e6, 603 0x240000e6,
605 0x2f008186, 604 0x2f008186,
606 0x2e80878a, 605 0x2e80878a,
@@ -692,7 +691,7 @@ const uint32_t c1_1[] = {
692 0xe10c2281, 691 0xe10c2281,
693 0x240050e2, 692 0x240050e2,
694 0xe10c2281, 693 0xe10c2281,
695 0x21020e00, 694 0x21020d00,
696 0x240000e6, 695 0x240000e6,
697 0x2f008186, 696 0x2f008186,
698 0x2e80838a, 697 0x2e80838a,
@@ -702,22 +701,22 @@ const uint32_t c1_1[] = {
702 0x58c08004, 701 0x58c08004,
703 0x240010e6, 702 0x240010e6,
704 0x2f008186, 703 0x2f008186,
705 0x21020e00, 704 0x21020d00,
706 0x240018c4, 705 0x240018c4,
707 0x2f000384, 706 0x2f000384,
708 0x21032100, 707 0x21032000,
709 0x240014c4, 708 0x240014c4,
710 0x2f000384, 709 0x2f000384,
711 0x69016a17, 710 0x69016a17,
712 0x593c8004, 711 0x593c8004,
713 0x240010e6, 712 0x240010e6,
714 0x1f007a7a, 713 0x1f007a7a,
715 0x21020e00, 714 0x21020d00,
716 0x2e80838e, 715 0x2e80838e,
717 0x71046e04, 716 0x71046e04,
718 0x240011e6, 717 0x240011e6,
719 0x1f007a7a, 718 0x1f007a7a,
720 0x21020e00, 719 0x21020d00,
721 0x09056e81, 720 0x09056e81,
722 0x09036ec1, 721 0x09036ec1,
723 0x00c18181, 722 0x00c18181,
@@ -730,26 +729,26 @@ const uint32_t c1_1[] = {
730 0x8281f38e, 729 0x8281f38e,
731 0x240020c4, 730 0x240020c4,
732 0x2f000384, 731 0x2f000384,
733 0x21020e00, 732 0x21020d00,
734 0x69026a0e, 733 0x69026a0e,
735 0x59248004, 734 0x59248004,
736 0x240010e6, 735 0x240010e6,
737 0x1f007a7a, 736 0x1f007a7a,
738 0x21020e00, 737 0x21020d00,
739 0x2e80878e, 738 0x2e80878e,
740 0x71106e04, 739 0x71106e04,
741 0x240012e6, 740 0x240012e6,
742 0x1f007a7a, 741 0x1f007a7a,
743 0x21020e00, 742 0x21020d00,
744 0x09046e81, 743 0x09046e81,
745 0x01008181, 744 0x01008181,
746 0x8081fa8e, 745 0x8081fa8e,
747 0x21020e00, 746 0x21020d00,
748 0x69036a0d, 747 0x69036a0d,
749 0x59188004, 748 0x59188004,
750 0x240010e6, 749 0x240010e6,
751 0x1f007a7a, 750 0x1f007a7a,
752 0x21020e00, 751 0x21020d00,
753 0x2e80818e, 752 0x2e80818e,
754 0x1d035d5d, 753 0x1d035d5d,
755 0xc9006e05, 754 0xc9006e05,
@@ -757,12 +756,12 @@ const uint32_t c1_1[] = {
757 0x1d045d5d, 756 0x1d045d5d,
758 0xc9016e02, 757 0xc9016e02,
759 0x1f045d5d, 758 0x1f045d5d,
760 0x21020e00, 759 0x21020d00,
761 0x69066a10, 760 0x69066a10,
762 0x59248004, 761 0x59248004,
763 0x240010e6, 762 0x240010e6,
764 0x1f007a7a, 763 0x1f007a7a,
765 0x21020e00, 764 0x21020d00,
766 0x2e80878e, 765 0x2e80878e,
767 0x51006e09, 766 0x51006e09,
768 0x09036f82, 767 0x09036f82,
@@ -772,13 +771,13 @@ const uint32_t c1_1[] = {
772 0x2f000384, 771 0x2f000384,
773 0x2e80858f, 772 0x2e80858f,
774 0x05016e6e, 773 0x05016e6e,
775 0x2102cd00, 774 0x2102cc00,
776 0x21020e00, 775 0x21020d00,
777 0x69076a10, 776 0x69076a10,
778 0x59248004, 777 0x59248004,
779 0x240010e6, 778 0x240010e6,
780 0x1f007a7a, 779 0x1f007a7a,
781 0x21020e00, 780 0x21020d00,
782 0x2e80878e, 781 0x2e80878e,
783 0x51006e09, 782 0x51006e09,
784 0x09036f82, 783 0x09036f82,
@@ -788,14 +787,14 @@ const uint32_t c1_1[] = {
788 0x2f000384, 787 0x2f000384,
789 0x2e80858f, 788 0x2e80858f,
790 0x05016e6e, 789 0x05016e6e,
791 0x2102dd00, 790 0x2102dc00,
792 0x21020e00, 791 0x21020d00,
793 0x69086a1b, 792 0x69086a1b,
794 0x24004cc0, 793 0x24004cc0,
795 0x58c08004, 794 0x58c08004,
796 0x240010e6, 795 0x240010e6,
797 0x1f007a7a, 796 0x1f007a7a,
798 0x21020e00, 797 0x21020d00,
799 0x2e808b8e, 798 0x2e808b8e,
800 0x240100c2, 799 0x240100c2,
801 0x51006e12, 800 0x51006e12,
@@ -815,14 +814,14 @@ const uint32_t c1_1[] = {
815 0x2f000184, 814 0x2f000184,
816 0x2e80898f, 815 0x2e80898f,
817 0x05016e6e, 816 0x05016e6e,
818 0x2102ef00, 817 0x2102ee00,
819 0x21020e00, 818 0x21020d00,
820 0x69096a1c, 819 0x69096a1c,
821 0x2400b0c0, 820 0x2400b0c0,
822 0x58c08004, 821 0x58c08004,
823 0x240010e6, 822 0x240010e6,
824 0x1f007a7a, 823 0x1f007a7a,
825 0x21020e00, 824 0x21020d00,
826 0x2e808d8e, 825 0x2e808d8e,
827 0x240200c2, 826 0x240200c2,
828 0x51006e13, 827 0x51006e13,
@@ -838,16 +837,16 @@ const uint32_t c1_1[] = {
838 0x8082fe91, 837 0x8082fe91,
839 0x01108282, 838 0x01108282,
840 0x05014e4e, 839 0x05014e4e,
841 0x21031000, 840 0x21030f00,
842 0x240018c4, 841 0x240018c4,
843 0x2f000184, 842 0x2f000184,
844 0x2e808b8f, 843 0x2e808b8f,
845 0x05016e6e, 844 0x05016e6e,
846 0x21030a00, 845 0x21030900,
847 0x21020e00, 846 0x21020d00,
848 0x240002e6, 847 0x240002e6,
849 0x1f007a7a, 848 0x1f007a7a,
850 0x21020e00, 849 0x21020d00,
851 0x240000e1, 850 0x240000e1,
852 0x240010c4, 851 0x240010c4,
853 0x2e80878e, 852 0x2e80878e,
@@ -857,7 +856,7 @@ const uint32_t c1_1[] = {
857 0x01010101, 856 0x01010101,
858 0x0110c1c1, 857 0x0110c1c1,
859 0x671f01fa, 858 0x671f01fa,
860 0x21020e00, 859 0x21020d00,
861 0x2e80818a, 860 0x2e80818a,
862 0x24000004, 861 0x24000004,
863 0x240014c4, 862 0x240014c4,
@@ -884,8 +883,8 @@ const uint32_t c1_1[] = {
884 0x10e2e2e5, 883 0x10e2e2e5,
885 0x2f000384, 884 0x2f000384,
886 0x9083e286, 885 0x9083e286,
887 0x21020e00, 886 0x21020d00,
888 0x21020e00, 887 0x21020d00,
889 0x24000004, 888 0x24000004,
890 0x240010c4, 889 0x240010c4,
891 0x2f000384, 890 0x2f000384,
@@ -894,12 +893,12 @@ const uint32_t c1_1[] = {
894 0x2f000384, 893 0x2f000384,
895 0x9100b78e, 894 0x9100b78e,
896 0x2f00858e, 895 0x2f00858e,
897 0x21020e00, 896 0x21020d00,
898 0x240058c0, 897 0x240058c0,
899 0x58c08004, 898 0x58c08004,
900 0x240010e6, 899 0x240010e6,
901 0x2f008186, 900 0x2f008186,
902 0x21020e00, 901 0x21020d00,
903 0x1f027d7d, 902 0x1f027d7d,
904 0x2e80838a, 903 0x2e80838a,
905 0x106a6a24, 904 0x106a6a24,
@@ -930,7 +929,7 @@ const uint32_t c1_1[] = {
930 0x01040101, 929 0x01040101,
931 0x01012424, 930 0x01012424,
932 0x671024fc, 931 0x671024fc,
933 0x21020e00, 932 0x21020d00,
934 0x10d7d790, 933 0x10d7d790,
935 0x24000442, 934 0x24000442,
936 0x69026619, 935 0x69026619,
@@ -944,7 +943,7 @@ const uint32_t c1_1[] = {
944 0x11e08181, 943 0x11e08181,
945 0x51014703, 944 0x51014703,
946 0x240016c1, 945 0x240016c1,
947 0x21038300, 946 0x21038200,
948 0x24000dc1, 947 0x24000dc1,
949 0x12c18181, 948 0x12c18181,
950 0x812c07c1, 949 0x812c07c1,
@@ -986,7 +985,7 @@ const uint32_t c1_1[] = {
986 0x11c03900, 985 0x11c03900,
987 0x51000003, 986 0x51000003,
988 0x107b7b21, 987 0x107b7b21,
989 0x2103b100, 988 0x2103b000,
990 0xd1010105, 989 0xd1010105,
991 0x11073900, 990 0x11073900,
992 0x51000003, 991 0x51000003,
@@ -998,11 +997,11 @@ const uint32_t c1_1[] = {
998 0x00214646, 997 0x00214646,
999 0x00018686, 998 0x00018686,
1000 0x24000642, 999 0x24000642,
1001 0x2103c200, 1000 0x2103c100,
1002 0x00228686, 1001 0x00228686,
1003 0xc9016809, 1002 0xc9016809,
1004 0x00224646, 1003 0x00224646,
1005 0x2103c200, 1004 0x2103c100,
1006 0xc9026803, 1005 0xc9026803,
1007 0x007b8686, 1006 0x007b8686,
1008 0x24000642, 1007 0x24000642,
@@ -1119,7 +1118,7 @@ const uint32_t c1_1[] = {
1119 0x209e0000, 1118 0x209e0000,
1120 0x24000ce6, 1119 0x24000ce6,
1121 0x2f008186, 1120 0x2f008186,
1122 0x21020e00, 1121 0x21020d00,
1123 0x2e80818a, 1122 0x2e80818a,
1124 0x2eff818d, 1123 0x2eff818d,
1125 0x240034c0, 1124 0x240034c0,
@@ -1128,7 +1127,7 @@ const uint32_t c1_1[] = {
1128 0x58c08004, 1127 0x58c08004,
1129 0x240010e6, 1128 0x240010e6,
1130 0x2f008186, 1129 0x2f008186,
1131 0x21020e00, 1130 0x21020d00,
1132 0x91007981, 1131 0x91007981,
1133 0x69406a0b, 1132 0x69406a0b,
1134 0x2700e160, 1133 0x2700e160,
@@ -1137,14 +1136,14 @@ const uint32_t c1_1[] = {
1137 0x69206005, 1136 0x69206005,
1138 0x240004e6, 1137 0x240004e6,
1139 0x2f008186, 1138 0x2f008186,
1140 0x21020e00, 1139 0x21020d00,
1141 0x01206060, 1140 0x01206060,
1142 0x1060606a, 1141 0x1060606a,
1143 0x2f00800a, 1142 0x2f00800a,
1144 0x61406a04, 1143 0x61406a04,
1145 0x240004e6, 1144 0x240004e6,
1146 0x2f008186, 1145 0x2f008186,
1147 0x21020e00, 1146 0x21020d00,
1148 0x2400016b, 1147 0x2400016b,
1149 0x106a6a4b, 1148 0x106a6a4b,
1150 0x24000004, 1149 0x24000004,
@@ -1156,11 +1155,11 @@ const uint32_t c1_1[] = {
1156 0x51004a18, 1155 0x51004a18,
1157 0x240003e6, 1156 0x240003e6,
1158 0x1f007a7a, 1157 0x1f007a7a,
1159 0x21020e00, 1158 0x21020d00,
1160 0x61206a04, 1159 0x61206a04,
1161 0x05206a60, 1160 0x05206a60,
1162 0x1e60e1e1, 1161 0x1e60e1e1,
1163 0x21045b00, 1162 0x21045a00,
1164 0x1e6ae2e2, 1163 0x1e6ae2e2,
1165 0x2e808f8e, 1164 0x2e808f8e,
1166 0xd1077d0a, 1165 0xd1077d0a,
@@ -1172,11 +1171,11 @@ const uint32_t c1_1[] = {
1172 0x104b4b25, 1171 0x104b4b25,
1173 0x24000105, 1172 0x24000105,
1174 0x2f010185, 1173 0x2f010185,
1175 0x21020e00, 1174 0x21020d00,
1176 0x8108398b, 1175 0x8108398b,
1177 0x850c398d, 1176 0x850c398d,
1178 0x1f057d7d, 1177 0x1f057d7d,
1179 0x21020e00, 1178 0x21020d00,
1180 0x2e80878e, 1179 0x2e80878e,
1181 0x2f01878e, 1180 0x2f01878e,
1182 0x240010c4, 1181 0x240010c4,
@@ -1200,7 +1199,7 @@ const uint32_t c1_1[] = {
1200 0x10cece8b, 1199 0x10cece8b,
1201 0x240004c4, 1200 0x240004c4,
1202 0x2f000384, 1201 0x2f000384,
1203 0x21045600, 1202 0x21045500,
1204 0x2e80878e, 1203 0x2e80878e,
1205 0x2f01878e, 1204 0x2f01878e,
1206 0x240010c4, 1205 0x240010c4,
@@ -1217,7 +1216,7 @@ const uint32_t c1_1[] = {
1217 0x10cece8b, 1216 0x10cece8b,
1218 0x240004c4, 1217 0x240004c4,
1219 0x2f000384, 1218 0x2f000384,
1220 0x21045600, 1219 0x21045500,
1221 0xc9077d07, 1220 0xc9077d07,
1222 0x13082424, 1221 0x13082424,
1223 0x1f047d7d, 1222 0x1f047d7d,
@@ -1241,13 +1240,13 @@ const uint32_t c1_1[] = {
1241 0x59204b06, 1240 0x59204b06,
1242 0x51016b03, 1241 0x51016b03,
1243 0x1c4be2e2, 1242 0x1c4be2e2,
1244 0x2104b200, 1243 0x2104b100,
1245 0x1e4be2e2, 1244 0x1e4be2e2,
1246 0x2104b200, 1245 0x2104b100,
1247 0x05204b4b, 1246 0x05204b4b,
1248 0x51016b03, 1247 0x51016b03,
1249 0x1c4be1e1, 1248 0x1c4be1e1,
1250 0x2104b200, 1249 0x2104b100,
1251 0x1e4be1e1, 1250 0x1e4be1e1,
1252 0x81007981, 1251 0x81007981,
1253 0x21004800, 1252 0x21004800,
@@ -1273,7 +1272,7 @@ const uint32_t c1_1[] = {
1273 0x0b0697c9, 1272 0x0b0697c9,
1274 0x1107c9c9, 1273 0x1107c9c9,
1275 0x113f1789, 1274 0x113f1789,
1276 0x2104ce00, 1275 0x2104cd00,
1277 0x240003c9, 1276 0x240003c9,
1278 0x103a3a89, 1277 0x103a3a89,
1279 0x1d099797, 1278 0x1d099797,
@@ -1312,7 +1311,7 @@ const uint32_t c1_1[] = {
1312 0x2700ea01, 1311 0x2700ea01,
1313 0x69200103, 1312 0x69200103,
1314 0x1f025656, 1313 0x1f025656,
1315 0x2104f500, 1314 0x2104f400,
1316 0x61e06a03, 1315 0x61e06a03,
1317 0x49ef6a02, 1316 0x49ef6a02,
1318 0x1f035656, 1317 0x1f035656,
@@ -1328,7 +1327,7 @@ const uint32_t c1_1[] = {
1328 0x1f031d1d, 1327 0x1f031d1d,
1329 0x209e0000, 1328 0x209e0000,
1330 0x24002837, 1329 0x24002837,
1331 0x21050300, 1330 0x21050200,
1332 0x2400c837, 1331 0x2400c837,
1333 0x240002de, 1332 0x240002de,
1334 0x209e0000, 1333 0x209e0000,
@@ -1352,7 +1351,7 @@ const uint32_t c1_1[] = {
1352 0x6e484bf9, 1351 0x6e484bf9,
1353 0x01016b6b, 1352 0x01016b6b,
1354 0x808e1a0b, 1353 0x808e1a0b,
1355 0x21052900, 1354 0x21052800,
1356 0xcf0afc9c, 1355 0xcf0afc9c,
1357 0x586e4e0d, 1356 0x586e4e0d,
1358 0x2700f07a, 1357 0x2700f07a,
@@ -1366,7 +1365,7 @@ const uint32_t c1_1[] = {
1366 0x2400016b, 1365 0x2400016b,
1367 0x09047a8e, 1366 0x09047a8e,
1368 0x808eba8b, 1367 0x808eba8b,
1369 0x21052900, 1368 0x21052800,
1370 0x2400ff7a, 1369 0x2400ff7a,
1371 0x2400015a, 1370 0x2400015a,
1372 0x1f045656, 1371 0x1f045656,
@@ -1384,7 +1383,7 @@ const uint32_t c1_1[] = {
1384 0x705a6b04, 1383 0x705a6b04,
1385 0x045a6b6b, 1384 0x045a6b6b,
1386 0x80813a8b, 1385 0x80813a8b,
1387 0x21053f00, 1386 0x21053e00,
1388 0x9100bb8e, 1387 0x9100bb8e,
1389 0x1c7af0f0, 1388 0x1c7af0f0,
1390 0x51004e02, 1389 0x51004e02,
@@ -1393,7 +1392,7 @@ const uint32_t c1_1[] = {
1393 0xcf055677, 1392 0xcf055677,
1394 0x240004de, 1393 0x240004de,
1395 0x209e0000, 1394 0x209e0000,
1396 0xd1055644, 1395 0xd1055643,
1397 0x2e808386, 1396 0x2e808386,
1398 0x11f06600, 1397 0x11f06600,
1399 0x6f6000bd, 1398 0x6f6000bd,
@@ -1403,25 +1402,24 @@ const uint32_t c1_1[] = {
1403 0x2f000384, 1402 0x2f000384,
1404 0x2e808f8e, 1403 0x2e808f8e,
1405 0x2f020f8e, 1404 0x2f020f8e,
1406 0xd1005b4b, 1405 0xd1005b4a,
1407 0xc9037d4a, 1406 0xc9037d49,
1408 0xd1045638, 1407 0xd1045637,
1409 0x2eff8280, 1408 0x2eff8280,
1410 0x10272760, 1409 0x10272760,
1411 0x01689680, 1410 0x01689680,
1412 0x240140c1, 1411 0x240140c1,
1413 0x58c1800e, 1412 0x58c1800d,
1414 0x512c600b, 1413 0x512c600a,
1415 0x51006005, 1414 0x51006004,
1416 0x512b6004, 1415 0x512b6003,
1417 0x513c6003, 1416 0x513c6002,
1418 0x513b6002, 1417 0x21055f00,
1419 0x21056100,
1420 0x90800680, 1418 0x90800680,
1421 0x01014040, 1419 0x01014040,
1422 0x09034040, 1420 0x09034040,
1423 0x00408080, 1421 0x00408080,
1424 0x21055300, 1422 0x21055200,
1425 0x90800600, 1423 0x90800600,
1426 0x1f0afcfc, 1424 0x1f0afcfc,
1427 0x10f1f1e1, 1425 0x10f1f1e1,
@@ -1437,7 +1435,7 @@ const uint32_t c1_1[] = {
1437 0x6e604bf9, 1435 0x6e604bf9,
1438 0x01016b6b, 1436 0x01016b6b,
1439 0x808e1a0b, 1437 0x808e1a0b,
1440 0x21057e00, 1438 0x21057c00,
1441 0xc90afc28, 1439 0xc90afc28,
1442 0x586e4e0d, 1440 0x586e4e0d,
1443 0x2700f07a, 1441 0x2700f07a,
@@ -1451,7 +1449,7 @@ const uint32_t c1_1[] = {
1451 0x2400016b, 1449 0x2400016b,
1452 0x09047a8e, 1450 0x09047a8e,
1453 0x808eba8b, 1451 0x808eba8b,
1454 0x21057e00, 1452 0x21057c00,
1455 0x2400ff7a, 1453 0x2400ff7a,
1456 0x2400015a, 1454 0x2400015a,
1457 0x1f045656, 1455 0x1f045656,
@@ -1463,13 +1461,13 @@ const uint32_t c1_1[] = {
1463 0x209e0000, 1461 0x209e0000,
1464 0x1d045656, 1462 0x1d045656,
1465 0x51ff7a0d, 1463 0x51ff7a0d,
1466 0x5f207a78, 1464 0x5f207a79,
1467 0x09047a81, 1465 0x09047a81,
1468 0x90813a8b, 1466 0x90813a8b,
1469 0x705a6b04, 1467 0x705a6b04,
1470 0x045a6b6b, 1468 0x045a6b6b,
1471 0x80813a8b, 1469 0x80813a8b,
1472 0x21059400, 1470 0x21059200,
1473 0x9100bb8e, 1471 0x9100bb8e,
1474 0x1c7af0f0, 1472 0x1c7af0f0,
1475 0x51004e02, 1473 0x51004e02,
@@ -1500,7 +1498,7 @@ const uint32_t c1_1[] = {
1500 0x0b0697c9, 1498 0x0b0697c9,
1501 0x1107c9c9, 1499 0x1107c9c9,
1502 0x113f1789, 1500 0x113f1789,
1503 0x2105b100, 1501 0x2105af00,
1504 0x240003c9, 1502 0x240003c9,
1505 0x103a3a89, 1503 0x103a3a89,
1506 0x1d099797, 1504 0x1d099797,
@@ -1691,7 +1689,7 @@ const uint32_t c1_1[] = {
1691 0x0b0697c9, 1689 0x0b0697c9,
1692 0x1107c9c9, 1690 0x1107c9c9,
1693 0x113f1789, 1691 0x113f1789,
1694 0x21067000, 1692 0x21066e00,
1695 0x240003c9, 1693 0x240003c9,
1696 0x103a3a89, 1694 0x103a3a89,
1697 0x1d099797, 1695 0x1d099797,
@@ -1724,4 +1722,4 @@ const uint32_t c1_1[] = {
1724 0x1f071d1d, 1722 0x1f071d1d,
1725 0x209e0000 }; 1723 0x209e0000 };
1726 1724
1727const int c1_1Size = sizeof(c1_1); 1725const int c1_1Size = sizeof(c1_1);
diff --git a/fw/v0/classify1_2.bib b/fw/v0/classify1_2.bib
index 062e702..bbc7929 100644
--- a/fw/v0/classify1_2.bib
+++ b/fw/v0/classify1_2.bib
Binary files differ
diff --git a/fw/v0/classify1_2.p b/fw/v0/classify1_2.p
index 4be27bd..6186be8 100644
--- a/fw/v0/classify1_2.p
+++ b/fw/v0/classify1_2.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_PROC_LUT1 37#define PASS_PROC_LUT1
diff --git a/fw/v0/classify1_2_bin.c b/fw/v0/classify1_2_bin.c
index 0c7d172..6b0685b 100644
--- a/fw/v0/classify1_2_bin.c
+++ b/fw/v0/classify1_2_bin.c
@@ -50,7 +50,7 @@ const uint32_t c1_2[] = {
50 0x21000300, 50 0x21000300,
51 0xbabe0001, 51 0xbabe0001,
52 0x03000107, 52 0x03000107,
53 0x2301ae9e, 53 0x2301ad9e,
54 0x2eff8582, 54 0x2eff8582,
55 0x8104a482, 55 0x8104a482,
56 0x240001e2, 56 0x240001e2,
@@ -123,7 +123,7 @@ const uint32_t c1_2[] = {
123 0x81082c9c, 123 0x81082c9c,
124 0x2eff819c, 124 0x2eff819c,
125 0x21001000, 125 0x21001000,
126 0x21049b00, 126 0x21049a00,
127 0x21004800, 127 0x21004800,
128 0x1f08fcfc, 128 0x1f08fcfc,
129 0xc905ff00, 129 0xc905ff00,
@@ -332,7 +332,7 @@ const uint32_t c1_2[] = {
332 0x2eff8183, 332 0x2eff8183,
333 0x1f12e3e3, 333 0x1f12e3e3,
334 0x2400469e, 334 0x2400469e,
335 0x21037400, 335 0x21037300,
336 0x1f09fcfc, 336 0x1f09fcfc,
337 0xd106ff00, 337 0xd106ff00,
338 0xc905ff00, 338 0xc905ff00,
@@ -387,7 +387,6 @@ const uint32_t c1_2[] = {
387 0x0101e1e1, 387 0x0101e1e1,
388 0x81002481, 388 0x81002481,
389 0x2e808f86, 389 0x2e808f86,
390 0xd10eca01,
391 0x24000804, 390 0x24000804,
392 0x2f000184, 391 0x2f000184,
393 0x242031e4, 392 0x242031e4,
@@ -418,7 +417,7 @@ const uint32_t c1_2[] = {
418 0x61100304, 417 0x61100304,
419 0x1f005d5d, 418 0x1f005d5d,
420 0x240002de, 419 0x240002de,
421 0x21018300, 420 0x21018200,
422 0x2eff8f8e, 421 0x2eff8f8e,
423 0x2f01878e, 422 0x2f01878e,
424 0x2f020f8e, 423 0x2f020f8e,
@@ -426,7 +425,7 @@ const uint32_t c1_2[] = {
426 0x4896d704, 425 0x4896d704,
427 0x24002837, 426 0x24002837,
428 0x240002de, 427 0x240002de,
429 0x21018300, 428 0x21018200,
430 0x09010300, 429 0x09010300,
431 0x01800000, 430 0x01800000,
432 0x90001580, 431 0x90001580,
@@ -460,7 +459,7 @@ const uint32_t c1_2[] = {
460 0x24001864, 459 0x24001864,
461 0x24000644, 460 0x24000644,
462 0x2f000384, 461 0x2f000384,
463 0x21019200, 462 0x21019100,
464 0x5103de03, 463 0x5103de03,
465 0x0b0337de, 464 0x0b0337de,
466 0x21011700, 465 0x21011700,
@@ -470,7 +469,7 @@ const uint32_t c1_2[] = {
470 0x2f000384, 469 0x2f000384,
471 0x21004600, 470 0x21004600,
472 0x24002104, 471 0x24002104,
473 0x2101a400, 472 0x2101a300,
474 0x1f047d7d, 473 0x1f047d7d,
475 0x24002004, 474 0x24002004,
476 0x24000824, 475 0x24000824,
@@ -484,7 +483,7 @@ const uint32_t c1_2[] = {
484 0x24000205, 483 0x24000205,
485 0x2f010185, 484 0x2f010185,
486 0x0101e3e3, 485 0x0101e3e3,
487 0x2101af00, 486 0x2101ae00,
488 0x2eff9183, 487 0x2eff9183,
489 0x1d006363, 488 0x1d006363,
490 0x24000564, 489 0x24000564,
@@ -499,19 +498,19 @@ const uint32_t c1_2[] = {
499 0x2eff818a, 498 0x2eff818a,
500 0x8108398a, 499 0x8108398a,
501 0x2eff9088, 500 0x2eff9088,
502 0x2404b489, 501 0x2404b389,
503 0x240542ca, 502 0x240541ca,
504 0x2405cd8a, 503 0x2405cb8a,
505 0x2405d8cb, 504 0x2405d6cb,
506 0x2405e38b, 505 0x2405e18b,
507 0x2405efcc, 506 0x2405edcc,
508 0x2405fa8c, 507 0x2405f88c,
509 0x24061fcd, 508 0x24061dcd,
510 0x24062d8d, 509 0x24062b8d,
511 0x240636ce, 510 0x240634ce,
512 0x2406658e, 511 0x2406638e,
513 0x2406488f, 512 0x2406468f,
514 0x240661d0, 513 0x24065fd0,
515 0x24002200, 514 0x24002200,
516 0x8f80d508, 515 0x8f80d508,
517 0x91001760, 516 0x91001760,
@@ -523,11 +522,11 @@ const uint32_t c1_2[] = {
523 0x71406a04, 522 0x71406a04,
524 0x240004e6, 523 0x240004e6,
525 0x2f008186, 524 0x2f008186,
526 0x21020e00, 525 0x21020d00,
527 0x91007981, 526 0x91007981,
528 0x59206a03, 527 0x59206a03,
529 0x1c6ae2e2, 528 0x1c6ae2e2,
530 0x2101e300, 529 0x2101e200,
531 0x05206a4a, 530 0x05206a4a,
532 0x1c4ae1e1, 531 0x1c4ae1e1,
533 0x2eff918d, 532 0x2eff918d,
@@ -542,13 +541,13 @@ const uint32_t c1_2[] = {
542 0x2f010185, 541 0x2f010185,
543 0x09066a80, 542 0x09066a80,
544 0x8480318d, 543 0x8480318d,
545 0x21020e00, 544 0x21020d00,
546 0x2400006b, 545 0x2400006b,
547 0x106a6a4b, 546 0x106a6a4b,
548 0x8108398b, 547 0x8108398b,
549 0x850c398d, 548 0x850c398d,
550 0x1f057d7d, 549 0x1f057d7d,
551 0x21020e00, 550 0x21020d00,
552 0x240000da, 551 0x240000da,
553 0x10898980, 552 0x10898980,
554 0x24000d04, 553 0x24000d04,
@@ -559,7 +558,7 @@ const uint32_t c1_2[] = {
559 0x51ce4704, 558 0x51ce4704,
560 0x240001e6, 559 0x240001e6,
561 0x2f008186, 560 0x2f008186,
562 0x21020e00, 561 0x21020d00,
563 0x2400005a, 562 0x2400005a,
564 0x5101670a, 563 0x5101670a,
565 0x5102670a, 564 0x5102670a,
@@ -570,9 +569,9 @@ const uint32_t c1_2[] = {
570 0x5307673f, 569 0x5307673f,
571 0x240002e6, 570 0x240002e6,
572 0x2f008186, 571 0x2f008186,
573 0x21020e00, 572 0x21020d00,
574 0x21043100, 573 0x21043000,
575 0x2101d800, 574 0x2101d700,
576 0x69062915, 575 0x69062915,
577 0x91082481, 576 0x91082481,
578 0x0101e1e1, 577 0x0101e1e1,
@@ -591,7 +590,7 @@ const uint32_t c1_2[] = {
591 0x2400f024, 590 0x2400f024,
592 0x91001761, 591 0x91001761,
593 0x59030002, 592 0x59030002,
594 0x2304939e, 593 0x2304929e,
595 0x2f000384, 594 0x2f000384,
596 0x21004800, 595 0x21004800,
597 0x240021e4, 596 0x240021e4,
@@ -600,7 +599,7 @@ const uint32_t c1_2[] = {
600 0x59388004, 599 0x59388004,
601 0x240010e6, 600 0x240010e6,
602 0x2f008186, 601 0x2f008186,
603 0x21020e00, 602 0x21020d00,
604 0x240000e6, 603 0x240000e6,
605 0x2f008186, 604 0x2f008186,
606 0x2e80878a, 605 0x2e80878a,
@@ -692,7 +691,7 @@ const uint32_t c1_2[] = {
692 0xe10c2281, 691 0xe10c2281,
693 0x240050e2, 692 0x240050e2,
694 0xe10c2281, 693 0xe10c2281,
695 0x21020e00, 694 0x21020d00,
696 0x240000e6, 695 0x240000e6,
697 0x2f008186, 696 0x2f008186,
698 0x2e80838a, 697 0x2e80838a,
@@ -702,22 +701,22 @@ const uint32_t c1_2[] = {
702 0x58c08004, 701 0x58c08004,
703 0x240010e6, 702 0x240010e6,
704 0x2f008186, 703 0x2f008186,
705 0x21020e00, 704 0x21020d00,
706 0x240018c4, 705 0x240018c4,
707 0x2f000384, 706 0x2f000384,
708 0x21032100, 707 0x21032000,
709 0x240014c4, 708 0x240014c4,
710 0x2f000384, 709 0x2f000384,
711 0x69016a17, 710 0x69016a17,
712 0x593c8004, 711 0x593c8004,
713 0x240010e6, 712 0x240010e6,
714 0x1f007a7a, 713 0x1f007a7a,
715 0x21020e00, 714 0x21020d00,
716 0x2e80838e, 715 0x2e80838e,
717 0x71046e04, 716 0x71046e04,
718 0x240011e6, 717 0x240011e6,
719 0x1f007a7a, 718 0x1f007a7a,
720 0x21020e00, 719 0x21020d00,
721 0x09056e81, 720 0x09056e81,
722 0x09036ec1, 721 0x09036ec1,
723 0x00c18181, 722 0x00c18181,
@@ -730,26 +729,26 @@ const uint32_t c1_2[] = {
730 0x8281f38e, 729 0x8281f38e,
731 0x240020c4, 730 0x240020c4,
732 0x2f000384, 731 0x2f000384,
733 0x21020e00, 732 0x21020d00,
734 0x69026a0e, 733 0x69026a0e,
735 0x59248004, 734 0x59248004,
736 0x240010e6, 735 0x240010e6,
737 0x1f007a7a, 736 0x1f007a7a,
738 0x21020e00, 737 0x21020d00,
739 0x2e80878e, 738 0x2e80878e,
740 0x71106e04, 739 0x71106e04,
741 0x240012e6, 740 0x240012e6,
742 0x1f007a7a, 741 0x1f007a7a,
743 0x21020e00, 742 0x21020d00,
744 0x09046e81, 743 0x09046e81,
745 0x01008181, 744 0x01008181,
746 0x8081fa8e, 745 0x8081fa8e,
747 0x21020e00, 746 0x21020d00,
748 0x69036a0d, 747 0x69036a0d,
749 0x59188004, 748 0x59188004,
750 0x240010e6, 749 0x240010e6,
751 0x1f007a7a, 750 0x1f007a7a,
752 0x21020e00, 751 0x21020d00,
753 0x2e80818e, 752 0x2e80818e,
754 0x1d035d5d, 753 0x1d035d5d,
755 0xc9006e05, 754 0xc9006e05,
@@ -757,12 +756,12 @@ const uint32_t c1_2[] = {
757 0x1d045d5d, 756 0x1d045d5d,
758 0xc9016e02, 757 0xc9016e02,
759 0x1f045d5d, 758 0x1f045d5d,
760 0x21020e00, 759 0x21020d00,
761 0x69066a10, 760 0x69066a10,
762 0x59248004, 761 0x59248004,
763 0x240010e6, 762 0x240010e6,
764 0x1f007a7a, 763 0x1f007a7a,
765 0x21020e00, 764 0x21020d00,
766 0x2e80878e, 765 0x2e80878e,
767 0x51006e09, 766 0x51006e09,
768 0x09036f82, 767 0x09036f82,
@@ -772,13 +771,13 @@ const uint32_t c1_2[] = {
772 0x2f000384, 771 0x2f000384,
773 0x2e80858f, 772 0x2e80858f,
774 0x05016e6e, 773 0x05016e6e,
775 0x2102cd00, 774 0x2102cc00,
776 0x21020e00, 775 0x21020d00,
777 0x69076a10, 776 0x69076a10,
778 0x59248004, 777 0x59248004,
779 0x240010e6, 778 0x240010e6,
780 0x1f007a7a, 779 0x1f007a7a,
781 0x21020e00, 780 0x21020d00,
782 0x2e80878e, 781 0x2e80878e,
783 0x51006e09, 782 0x51006e09,
784 0x09036f82, 783 0x09036f82,
@@ -788,14 +787,14 @@ const uint32_t c1_2[] = {
788 0x2f000384, 787 0x2f000384,
789 0x2e80858f, 788 0x2e80858f,
790 0x05016e6e, 789 0x05016e6e,
791 0x2102dd00, 790 0x2102dc00,
792 0x21020e00, 791 0x21020d00,
793 0x69086a1b, 792 0x69086a1b,
794 0x24004cc0, 793 0x24004cc0,
795 0x58c08004, 794 0x58c08004,
796 0x240010e6, 795 0x240010e6,
797 0x1f007a7a, 796 0x1f007a7a,
798 0x21020e00, 797 0x21020d00,
799 0x2e808b8e, 798 0x2e808b8e,
800 0x240100c2, 799 0x240100c2,
801 0x51006e12, 800 0x51006e12,
@@ -815,14 +814,14 @@ const uint32_t c1_2[] = {
815 0x2f000184, 814 0x2f000184,
816 0x2e80898f, 815 0x2e80898f,
817 0x05016e6e, 816 0x05016e6e,
818 0x2102ef00, 817 0x2102ee00,
819 0x21020e00, 818 0x21020d00,
820 0x69096a1c, 819 0x69096a1c,
821 0x2400b0c0, 820 0x2400b0c0,
822 0x58c08004, 821 0x58c08004,
823 0x240010e6, 822 0x240010e6,
824 0x1f007a7a, 823 0x1f007a7a,
825 0x21020e00, 824 0x21020d00,
826 0x2e808d8e, 825 0x2e808d8e,
827 0x240200c2, 826 0x240200c2,
828 0x51006e13, 827 0x51006e13,
@@ -838,16 +837,16 @@ const uint32_t c1_2[] = {
838 0x8082fe91, 837 0x8082fe91,
839 0x01108282, 838 0x01108282,
840 0x05014e4e, 839 0x05014e4e,
841 0x21031000, 840 0x21030f00,
842 0x240018c4, 841 0x240018c4,
843 0x2f000184, 842 0x2f000184,
844 0x2e808b8f, 843 0x2e808b8f,
845 0x05016e6e, 844 0x05016e6e,
846 0x21030a00, 845 0x21030900,
847 0x21020e00, 846 0x21020d00,
848 0x240002e6, 847 0x240002e6,
849 0x1f007a7a, 848 0x1f007a7a,
850 0x21020e00, 849 0x21020d00,
851 0x240000e1, 850 0x240000e1,
852 0x240010c4, 851 0x240010c4,
853 0x2e80878e, 852 0x2e80878e,
@@ -857,7 +856,7 @@ const uint32_t c1_2[] = {
857 0x01010101, 856 0x01010101,
858 0x0110c1c1, 857 0x0110c1c1,
859 0x671f01fa, 858 0x671f01fa,
860 0x21020e00, 859 0x21020d00,
861 0x2e80818a, 860 0x2e80818a,
862 0x24000004, 861 0x24000004,
863 0x240014c4, 862 0x240014c4,
@@ -884,8 +883,8 @@ const uint32_t c1_2[] = {
884 0x10e2e2e5, 883 0x10e2e2e5,
885 0x2f000384, 884 0x2f000384,
886 0x9083e286, 885 0x9083e286,
887 0x21020e00, 886 0x21020d00,
888 0x21020e00, 887 0x21020d00,
889 0x24000004, 888 0x24000004,
890 0x240010c4, 889 0x240010c4,
891 0x2f000384, 890 0x2f000384,
@@ -894,12 +893,12 @@ const uint32_t c1_2[] = {
894 0x2f000384, 893 0x2f000384,
895 0x9100b78e, 894 0x9100b78e,
896 0x2f00858e, 895 0x2f00858e,
897 0x21020e00, 896 0x21020d00,
898 0x240058c0, 897 0x240058c0,
899 0x58c08004, 898 0x58c08004,
900 0x240010e6, 899 0x240010e6,
901 0x2f008186, 900 0x2f008186,
902 0x21020e00, 901 0x21020d00,
903 0x1f027d7d, 902 0x1f027d7d,
904 0x2e80838a, 903 0x2e80838a,
905 0x106a6a24, 904 0x106a6a24,
@@ -930,7 +929,7 @@ const uint32_t c1_2[] = {
930 0x01040101, 929 0x01040101,
931 0x01012424, 930 0x01012424,
932 0x671024fc, 931 0x671024fc,
933 0x21020e00, 932 0x21020d00,
934 0x10d7d790, 933 0x10d7d790,
935 0x24000442, 934 0x24000442,
936 0x69026619, 935 0x69026619,
@@ -944,7 +943,7 @@ const uint32_t c1_2[] = {
944 0x11e08181, 943 0x11e08181,
945 0x51014703, 944 0x51014703,
946 0x240016c1, 945 0x240016c1,
947 0x21038300, 946 0x21038200,
948 0x24000dc1, 947 0x24000dc1,
949 0x12c18181, 948 0x12c18181,
950 0x812c07c1, 949 0x812c07c1,
@@ -986,7 +985,7 @@ const uint32_t c1_2[] = {
986 0x11c03900, 985 0x11c03900,
987 0x51000003, 986 0x51000003,
988 0x107b7b21, 987 0x107b7b21,
989 0x2103b100, 988 0x2103b000,
990 0xd1010105, 989 0xd1010105,
991 0x11073900, 990 0x11073900,
992 0x51000003, 991 0x51000003,
@@ -998,11 +997,11 @@ const uint32_t c1_2[] = {
998 0x00214646, 997 0x00214646,
999 0x00018686, 998 0x00018686,
1000 0x24000642, 999 0x24000642,
1001 0x2103c200, 1000 0x2103c100,
1002 0x00228686, 1001 0x00228686,
1003 0xc9016809, 1002 0xc9016809,
1004 0x00224646, 1003 0x00224646,
1005 0x2103c200, 1004 0x2103c100,
1006 0xc9026803, 1005 0xc9026803,
1007 0x007b8686, 1006 0x007b8686,
1008 0x24000642, 1007 0x24000642,
@@ -1119,7 +1118,7 @@ const uint32_t c1_2[] = {
1119 0x209e0000, 1118 0x209e0000,
1120 0x24000ce6, 1119 0x24000ce6,
1121 0x2f008186, 1120 0x2f008186,
1122 0x21020e00, 1121 0x21020d00,
1123 0x2e80818a, 1122 0x2e80818a,
1124 0x2eff818d, 1123 0x2eff818d,
1125 0x240034c0, 1124 0x240034c0,
@@ -1128,7 +1127,7 @@ const uint32_t c1_2[] = {
1128 0x58c08004, 1127 0x58c08004,
1129 0x240010e6, 1128 0x240010e6,
1130 0x2f008186, 1129 0x2f008186,
1131 0x21020e00, 1130 0x21020d00,
1132 0x91007981, 1131 0x91007981,
1133 0x69406a0b, 1132 0x69406a0b,
1134 0x2700e160, 1133 0x2700e160,
@@ -1137,14 +1136,14 @@ const uint32_t c1_2[] = {
1137 0x69206005, 1136 0x69206005,
1138 0x240004e6, 1137 0x240004e6,
1139 0x2f008186, 1138 0x2f008186,
1140 0x21020e00, 1139 0x21020d00,
1141 0x01206060, 1140 0x01206060,
1142 0x1060606a, 1141 0x1060606a,
1143 0x2f00800a, 1142 0x2f00800a,
1144 0x61406a04, 1143 0x61406a04,
1145 0x240004e6, 1144 0x240004e6,
1146 0x2f008186, 1145 0x2f008186,
1147 0x21020e00, 1146 0x21020d00,
1148 0x2400016b, 1147 0x2400016b,
1149 0x106a6a4b, 1148 0x106a6a4b,
1150 0x24000004, 1149 0x24000004,
@@ -1156,11 +1155,11 @@ const uint32_t c1_2[] = {
1156 0x51004a18, 1155 0x51004a18,
1157 0x240003e6, 1156 0x240003e6,
1158 0x1f007a7a, 1157 0x1f007a7a,
1159 0x21020e00, 1158 0x21020d00,
1160 0x61206a04, 1159 0x61206a04,
1161 0x05206a60, 1160 0x05206a60,
1162 0x1e60e1e1, 1161 0x1e60e1e1,
1163 0x21045b00, 1162 0x21045a00,
1164 0x1e6ae2e2, 1163 0x1e6ae2e2,
1165 0x2e808f8e, 1164 0x2e808f8e,
1166 0xd1077d0a, 1165 0xd1077d0a,
@@ -1172,11 +1171,11 @@ const uint32_t c1_2[] = {
1172 0x104b4b25, 1171 0x104b4b25,
1173 0x24000105, 1172 0x24000105,
1174 0x2f010185, 1173 0x2f010185,
1175 0x21020e00, 1174 0x21020d00,
1176 0x8108398b, 1175 0x8108398b,
1177 0x850c398d, 1176 0x850c398d,
1178 0x1f057d7d, 1177 0x1f057d7d,
1179 0x21020e00, 1178 0x21020d00,
1180 0x2e80878e, 1179 0x2e80878e,
1181 0x2f01878e, 1180 0x2f01878e,
1182 0x240010c4, 1181 0x240010c4,
@@ -1200,7 +1199,7 @@ const uint32_t c1_2[] = {
1200 0x10cece8b, 1199 0x10cece8b,
1201 0x240004c4, 1200 0x240004c4,
1202 0x2f000384, 1201 0x2f000384,
1203 0x21045600, 1202 0x21045500,
1204 0x2e80878e, 1203 0x2e80878e,
1205 0x2f01878e, 1204 0x2f01878e,
1206 0x240010c4, 1205 0x240010c4,
@@ -1217,7 +1216,7 @@ const uint32_t c1_2[] = {
1217 0x10cece8b, 1216 0x10cece8b,
1218 0x240004c4, 1217 0x240004c4,
1219 0x2f000384, 1218 0x2f000384,
1220 0x21045600, 1219 0x21045500,
1221 0xc9077d07, 1220 0xc9077d07,
1222 0x13082424, 1221 0x13082424,
1223 0x1f047d7d, 1222 0x1f047d7d,
@@ -1241,13 +1240,13 @@ const uint32_t c1_2[] = {
1241 0x59204b06, 1240 0x59204b06,
1242 0x51016b03, 1241 0x51016b03,
1243 0x1c4be2e2, 1242 0x1c4be2e2,
1244 0x2104b200, 1243 0x2104b100,
1245 0x1e4be2e2, 1244 0x1e4be2e2,
1246 0x2104b200, 1245 0x2104b100,
1247 0x05204b4b, 1246 0x05204b4b,
1248 0x51016b03, 1247 0x51016b03,
1249 0x1c4be1e1, 1248 0x1c4be1e1,
1250 0x2104b200, 1249 0x2104b100,
1251 0x1e4be1e1, 1250 0x1e4be1e1,
1252 0x81007981, 1251 0x81007981,
1253 0x21004800, 1252 0x21004800,
@@ -1273,7 +1272,7 @@ const uint32_t c1_2[] = {
1273 0x0b0697c9, 1272 0x0b0697c9,
1274 0x1107c9c9, 1273 0x1107c9c9,
1275 0x113f1789, 1274 0x113f1789,
1276 0x2104ce00, 1275 0x2104cd00,
1277 0x240003c9, 1276 0x240003c9,
1278 0x103a3a89, 1277 0x103a3a89,
1279 0x1d099797, 1278 0x1d099797,
@@ -1312,7 +1311,7 @@ const uint32_t c1_2[] = {
1312 0x2700ea01, 1311 0x2700ea01,
1313 0x69200103, 1312 0x69200103,
1314 0x1f025656, 1313 0x1f025656,
1315 0x2104f500, 1314 0x2104f400,
1316 0x61e06a03, 1315 0x61e06a03,
1317 0x49ef6a02, 1316 0x49ef6a02,
1318 0x1f035656, 1317 0x1f035656,
@@ -1328,7 +1327,7 @@ const uint32_t c1_2[] = {
1328 0x1f031d1d, 1327 0x1f031d1d,
1329 0x209e0000, 1328 0x209e0000,
1330 0x24002837, 1329 0x24002837,
1331 0x21050300, 1330 0x21050200,
1332 0x2400c837, 1331 0x2400c837,
1333 0x240002de, 1332 0x240002de,
1334 0x209e0000, 1333 0x209e0000,
@@ -1352,7 +1351,7 @@ const uint32_t c1_2[] = {
1352 0x6e484bf9, 1351 0x6e484bf9,
1353 0x01016b6b, 1352 0x01016b6b,
1354 0x808e1a0b, 1353 0x808e1a0b,
1355 0x21052900, 1354 0x21052800,
1356 0xcf0afc9c, 1355 0xcf0afc9c,
1357 0x586e4e0d, 1356 0x586e4e0d,
1358 0x2700f07a, 1357 0x2700f07a,
@@ -1366,7 +1365,7 @@ const uint32_t c1_2[] = {
1366 0x2400016b, 1365 0x2400016b,
1367 0x09047a8e, 1366 0x09047a8e,
1368 0x808eba8b, 1367 0x808eba8b,
1369 0x21052900, 1368 0x21052800,
1370 0x2400ff7a, 1369 0x2400ff7a,
1371 0x2400015a, 1370 0x2400015a,
1372 0x1f045656, 1371 0x1f045656,
@@ -1384,7 +1383,7 @@ const uint32_t c1_2[] = {
1384 0x705a6b04, 1383 0x705a6b04,
1385 0x045a6b6b, 1384 0x045a6b6b,
1386 0x80813a8b, 1385 0x80813a8b,
1387 0x21053f00, 1386 0x21053e00,
1388 0x9100bb8e, 1387 0x9100bb8e,
1389 0x1c7af0f0, 1388 0x1c7af0f0,
1390 0x51004e02, 1389 0x51004e02,
@@ -1393,7 +1392,7 @@ const uint32_t c1_2[] = {
1393 0xcf055677, 1392 0xcf055677,
1394 0x240004de, 1393 0x240004de,
1395 0x209e0000, 1394 0x209e0000,
1396 0xd1055644, 1395 0xd1055643,
1397 0x2e808386, 1396 0x2e808386,
1398 0x11f06600, 1397 0x11f06600,
1399 0x6f6000bd, 1398 0x6f6000bd,
@@ -1403,25 +1402,24 @@ const uint32_t c1_2[] = {
1403 0x2f000384, 1402 0x2f000384,
1404 0x2e808f8e, 1403 0x2e808f8e,
1405 0x2f020f8e, 1404 0x2f020f8e,
1406 0xd1005b4b, 1405 0xd1005b4a,
1407 0xc9037d4a, 1406 0xc9037d49,
1408 0xd1045638, 1407 0xd1045637,
1409 0x2eff8280, 1408 0x2eff8280,
1410 0x10272760, 1409 0x10272760,
1411 0x01689680, 1410 0x01689680,
1412 0x240140c1, 1411 0x240140c1,
1413 0x58c1800e, 1412 0x58c1800d,
1414 0x512c600b, 1413 0x512c600a,
1415 0x51006005, 1414 0x51006004,
1416 0x512b6004, 1415 0x512b6003,
1417 0x513c6003, 1416 0x513c6002,
1418 0x513b6002, 1417 0x21055f00,
1419 0x21056100,
1420 0x90800680, 1418 0x90800680,
1421 0x01014040, 1419 0x01014040,
1422 0x09034040, 1420 0x09034040,
1423 0x00408080, 1421 0x00408080,
1424 0x21055300, 1422 0x21055200,
1425 0x90800600, 1423 0x90800600,
1426 0x1f0afcfc, 1424 0x1f0afcfc,
1427 0x10f1f1e1, 1425 0x10f1f1e1,
@@ -1437,7 +1435,7 @@ const uint32_t c1_2[] = {
1437 0x6e604bf9, 1435 0x6e604bf9,
1438 0x01016b6b, 1436 0x01016b6b,
1439 0x808e1a0b, 1437 0x808e1a0b,
1440 0x21057e00, 1438 0x21057c00,
1441 0xc90afc28, 1439 0xc90afc28,
1442 0x586e4e0d, 1440 0x586e4e0d,
1443 0x2700f07a, 1441 0x2700f07a,
@@ -1451,7 +1449,7 @@ const uint32_t c1_2[] = {
1451 0x2400016b, 1449 0x2400016b,
1452 0x09047a8e, 1450 0x09047a8e,
1453 0x808eba8b, 1451 0x808eba8b,
1454 0x21057e00, 1452 0x21057c00,
1455 0x2400ff7a, 1453 0x2400ff7a,
1456 0x2400015a, 1454 0x2400015a,
1457 0x1f045656, 1455 0x1f045656,
@@ -1463,13 +1461,13 @@ const uint32_t c1_2[] = {
1463 0x209e0000, 1461 0x209e0000,
1464 0x1d045656, 1462 0x1d045656,
1465 0x51ff7a0d, 1463 0x51ff7a0d,
1466 0x5f207a78, 1464 0x5f207a79,
1467 0x09047a81, 1465 0x09047a81,
1468 0x90813a8b, 1466 0x90813a8b,
1469 0x705a6b04, 1467 0x705a6b04,
1470 0x045a6b6b, 1468 0x045a6b6b,
1471 0x80813a8b, 1469 0x80813a8b,
1472 0x21059400, 1470 0x21059200,
1473 0x9100bb8e, 1471 0x9100bb8e,
1474 0x1c7af0f0, 1472 0x1c7af0f0,
1475 0x51004e02, 1473 0x51004e02,
@@ -1500,7 +1498,7 @@ const uint32_t c1_2[] = {
1500 0x0b0697c9, 1498 0x0b0697c9,
1501 0x1107c9c9, 1499 0x1107c9c9,
1502 0x113f1789, 1500 0x113f1789,
1503 0x2105b100, 1501 0x2105af00,
1504 0x240003c9, 1502 0x240003c9,
1505 0x103a3a89, 1503 0x103a3a89,
1506 0x1d099797, 1504 0x1d099797,
@@ -1691,7 +1689,7 @@ const uint32_t c1_2[] = {
1691 0x0b0697c9, 1689 0x0b0697c9,
1692 0x1107c9c9, 1690 0x1107c9c9,
1693 0x113f1789, 1691 0x113f1789,
1694 0x21067000, 1692 0x21066e00,
1695 0x240003c9, 1693 0x240003c9,
1696 0x103a3a89, 1694 0x103a3a89,
1697 0x1d099797, 1695 0x1d099797,
@@ -1724,4 +1722,4 @@ const uint32_t c1_2[] = {
1724 0x1f071d1d, 1722 0x1f071d1d,
1725 0x209e0000 }; 1723 0x209e0000 };
1726 1724
1727const int c1_2Size = sizeof(c1_2); 1725const int c1_2Size = sizeof(c1_2);
diff --git a/fw/v0/classify2.bib b/fw/v0/classify2.bib
index b422fc7..fe2d92a 100644
--- a/fw/v0/classify2.bib
+++ b/fw/v0/classify2.bib
Binary files differ
diff --git a/fw/v0/classify2.p b/fw/v0/classify2.p
index e4015ca..11302c2 100644
--- a/fw/v0/classify2.p
+++ b/fw/v0/classify2.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ********************************************************************************************************* 35// *********************************************************************************************************
2// * FILE PURPOSE: Perform packet classification on PDSPS with a LUT2 36// * FILE PURPOSE: Perform packet classification on PDSPS with a LUT2
3// ********************************************************************************************************* 37// *********************************************************************************************************
@@ -754,13 +788,20 @@ f_paComDelLut1:
754f_paComAddRepLut2: 788f_paComAddRepLut2:
755 789
756 // If there is an active add or delete the command must be rejected 790 // If there is an active add or delete the command must be rejected
757 qbbc l_paComAddRepLut2_a, s_flags.info.tStatus_Lut2AddDelBusy 791 qbbc l_paComAddRepLut2_check_full, s_flags.info.tStatus_Lut2AddDelBusy
758 792
759 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_ADD_BUSY 793 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_ADD_BUSY
760 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult) 794 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult)
761 jmp f_cfgReply 795 jmp f_cfgReply
762 796
797l_paComAddRepLut2_check_full:
798 // check if LUT2 is full
799 qbbc l_paComAddRepLut2_a, s_flags.info.tStatus_Lut2Full
763 800
801 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_FULL
802 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult)
803 jmp f_cfgReply
804
764l_paComAddRepLut2_a: 805l_paComAddRepLut2_a:
765 806
766 // Verify that the packet has all the data 807 // Verify that the packet has all the data
diff --git a/fw/v0/classify2_bin.c b/fw/v0/classify2_bin.c
index 922bc63..70644a8 100644
--- a/fw/v0/classify2_bin.c
+++ b/fw/v0/classify2_bin.c
@@ -50,7 +50,7 @@ const uint32_t c2[] = {
50 0x21000300, 50 0x21000300,
51 0xbabe0002, 51 0xbabe0002,
52 0x03000107, 52 0x03000107,
53 0x2300e59e, 53 0x2300e99e,
54 0x2eff8582, 54 0x2eff8582,
55 0x8104a482, 55 0x8104a482,
56 0x240001e2, 56 0x240001e2,
@@ -87,7 +87,7 @@ const uint32_t c2[] = {
87 0x2e808b96, 87 0x2e808b96,
88 0x0b057601, 88 0x0b057601,
89 0x51000106, 89 0x51000106,
90 0x530401b3, 90 0x530401b7,
91 0x1f1cfcfc, 91 0x1f1cfcfc,
92 0x24002104, 92 0x24002104,
93 0x2f000384, 93 0x2f000384,
@@ -105,7 +105,7 @@ const uint32_t c2[] = {
105 0x2f000384, 105 0x2f000384,
106 0x240000de, 106 0x240000de,
107 0x690b0302, 107 0x690b0302,
108 0x2301d39e, 108 0x2301d79e,
109 0x71100302, 109 0x71100302,
110 0x71160308, 110 0x71160308,
111 0x2400109e, 111 0x2400109e,
@@ -138,12 +138,12 @@ const uint32_t c2[] = {
138 0x2eff8183, 138 0x2eff8183,
139 0x1f1ce3e3, 139 0x1f1ce3e3,
140 0x2400109e, 140 0x2400109e,
141 0x21034300, 141 0x21034700,
142 0x2e818786, 142 0x2e818786,
143 0x2eff8183, 143 0x2eff8183,
144 0x1f1ce3e3, 144 0x1f1ce3e3,
145 0x2400109e, 145 0x2400109e,
146 0x21034300, 146 0x21034700,
147 0x2e818786, 147 0x2e818786,
148 0xc90ed908, 148 0xc90ed908,
149 0x11073737, 149 0x11073737,
@@ -167,13 +167,13 @@ const uint32_t c2[] = {
167 0x1f1ce3e3, 167 0x1f1ce3e3,
168 0x6900c103, 168 0x6900c103,
169 0x9081e086, 169 0x9081e086,
170 0x21034300, 170 0x21034700,
171 0x6901c103, 171 0x6901c103,
172 0x9081e186, 172 0x9081e186,
173 0x21034300, 173 0x21034700,
174 0x6902c103, 174 0x6902c103,
175 0x9081e286, 175 0x9081e286,
176 0x21034300, 176 0x21034700,
177 0x11073737, 177 0x11073737,
178 0x13583737, 178 0x13583737,
179 0x21008200, 179 0x21008200,
@@ -184,25 +184,29 @@ const uint32_t c2[] = {
184 0x2eff8183, 184 0x2eff8183,
185 0x1f1ce3e3, 185 0x1f1ce3e3,
186 0x2400109e, 186 0x2400109e,
187 0x21034300, 187 0x21034700,
188 0x24000ce6, 188 0x24000ce6,
189 0x2f008186, 189 0x2f008186,
190 0x2101f300, 190 0x2101f700,
191 0xc90aff04, 191 0xc90aff04,
192 0x24000ae6, 192 0x24000ae6,
193 0x2f008186, 193 0x2f008186,
194 0x2101f300, 194 0x2101f700,
195 0xc90dff04,
196 0x240015e6,
197 0x2f008186,
198 0x2101f700,
195 0x59188004, 199 0x59188004,
196 0x240010e6, 200 0x240010e6,
197 0x2f008186, 201 0x2f008186,
198 0x2101f300, 202 0x2101f700,
199 0x2e80838a, 203 0x2e80838a,
200 0xd1002a06, 204 0xd1002a06,
201 0x0101dddd, 205 0x0101dddd,
202 0x24200081, 206 0x24200081,
203 0x7081dd03, 207 0x7081dd03,
204 0x240008e6, 208 0x240008e6,
205 0x21009d00, 209 0x2100a100,
206 0x240000e6, 210 0x240000e6,
207 0x2f008186, 211 0x2f008186,
208 0x24000004, 212 0x24000004,
@@ -215,7 +219,7 @@ const uint32_t c2[] = {
215 0x61104a04, 219 0x61104a04,
216 0x240012e6, 220 0x240012e6,
217 0x1f007a7a, 221 0x1f007a7a,
218 0x2101f300, 222 0x2101f700,
219 0x09044a81, 223 0x09044a81,
220 0x01018181, 224 0x01018181,
221 0x90811a01, 225 0x90811a01,
@@ -246,15 +250,15 @@ const uint32_t c2[] = {
246 0xd10aff00, 250 0xd10aff00,
247 0xd101ff00, 251 0xd101ff00,
248 0x21001000, 252 0x21001000,
249 0x2101f300, 253 0x2101f700,
250 0xc90aff04, 254 0xc90aff04,
251 0x24000ae6, 255 0x24000ae6,
252 0x2f008186, 256 0x2f008186,
253 0x2101f300, 257 0x2101f700,
254 0x6900dd04, 258 0x6900dd04,
255 0x240009e6, 259 0x240009e6,
256 0x2f008186, 260 0x2f008186,
257 0x2100d300, 261 0x2100d700,
258 0x240000e6, 262 0x240000e6,
259 0x2f008186, 263 0x2f008186,
260 0x0501dddd, 264 0x0501dddd,
@@ -266,26 +270,26 @@ const uint32_t c2[] = {
266 0x71104a04, 270 0x71104a04,
267 0x240012e6, 271 0x240012e6,
268 0x2f008186, 272 0x2f008186,
269 0x2101f300, 273 0x2101f700,
270 0x09044a81, 274 0x09044a81,
271 0x01018181, 275 0x01018181,
272 0x90811a01, 276 0x90811a01,
273 0x12617272, 277 0x12617272,
274 0x2100e300, 278 0x2100e700,
275 0xc9012a02, 279 0xc9012a02,
276 0x1d001d1d, 280 0x1d001d1d,
277 0x81306b92, 281 0x81306b92,
278 0x2101f300, 282 0x2101f700,
279 0x240001e3, 283 0x240001e3,
280 0x81042b83, 284 0x81042b83,
281 0x2eff819d, 285 0x2eff819d,
282 0x9100175d, 286 0x9100175d,
283 0x2400f490, 287 0x2400f890,
284 0x240131d1, 288 0x240135d1,
285 0x24015a91, 289 0x24015e91,
286 0x240174d2, 290 0x240178d2,
287 0x2401d392, 291 0x2401d792,
288 0x2401aed3, 292 0x2401b2d3,
289 0x24002c00, 293 0x24002c00,
290 0x01020000, 294 0x01020000,
291 0x05220000, 295 0x05220000,
@@ -345,7 +349,7 @@ const uint32_t c2[] = {
345 0x2eff8185, 349 0x2eff8185,
346 0xd1099703, 350 0xd1099703,
347 0x10171705, 351 0x10171705,
348 0x21012d00, 352 0x21013100,
349 0x103a3a05, 353 0x103a3a05,
350 0x13c00505, 354 0x13c00505,
351 0x108686a5, 355 0x108686a5,
@@ -382,7 +386,7 @@ const uint32_t c2[] = {
382 0x2eff8185, 386 0x2eff8185,
383 0xd1099703, 387 0xd1099703,
384 0x10171705, 388 0x10171705,
385 0x21015200, 389 0x21015600,
386 0x103a3a05, 390 0x103a3a05,
387 0x13c00505, 391 0x13c00505,
388 0x108686a5, 392 0x108686a5,
@@ -399,7 +403,7 @@ const uint32_t c2[] = {
399 0x2eff8185, 403 0x2eff8185,
400 0xd1099703, 404 0xd1099703,
401 0x10171705, 405 0x10171705,
402 0x21016300, 406 0x21016700,
403 0x103a3a05, 407 0x103a3a05,
404 0x13c00505, 408 0x13c00505,
405 0x108686a5, 409 0x108686a5,
@@ -452,7 +456,7 @@ const uint32_t c2[] = {
452 0x0908e7e5, 456 0x0908e7e5,
453 0xd1099703, 457 0xd1099703,
454 0x10171705, 458 0x10171705,
455 0x21019800, 459 0x21019c00,
456 0x103a3a05, 460 0x103a3a05,
457 0x13c00505, 461 0x13c00505,
458 0x2f010185, 462 0x2f010185,
@@ -472,7 +476,7 @@ const uint32_t c2[] = {
472 0x209e0000, 476 0x209e0000,
473 0x69fe4605, 477 0x69fe4605,
474 0xc9031d02, 478 0xc9031d02,
475 0x21018000, 479 0x21018400,
476 0x13a03737, 480 0x13a03737,
477 0x209e0000, 481 0x209e0000,
478 0x13a83737, 482 0x13a83737,
@@ -532,7 +536,7 @@ const uint32_t c2[] = {
532 0x51ce4704, 536 0x51ce4704,
533 0x240001e6, 537 0x240001e6,
534 0x2f008186, 538 0x2f008186,
535 0x2101f300, 539 0x2101f700,
536 0x2400005a, 540 0x2400005a,
537 0x5103670a, 541 0x5103670a,
538 0x5104670a, 542 0x5104670a,
@@ -543,9 +547,9 @@ const uint32_t c2[] = {
543 0x5307672a, 547 0x5307672a,
544 0x240002e6, 548 0x240002e6,
545 0x2f008186, 549 0x2f008186,
546 0x2101f300, 550 0x2101f700,
547 0x21008d00, 551 0x21008d00,
548 0x2100c800, 552 0x2100cc00,
549 0x69062915, 553 0x69062915,
550 0x91082481, 554 0x91082481,
551 0x0101e1e1, 555 0x0101e1e1,
@@ -564,7 +568,7 @@ const uint32_t c2[] = {
564 0x2400f024, 568 0x2400f024,
565 0x91001761, 569 0x91001761,
566 0x59030002, 570 0x59030002,
567 0x2301da9e, 571 0x2301de9e,
568 0x2f000384, 572 0x2f000384,
569 0x21001000, 573 0x21001000,
570 0x240021e4, 574 0x240021e4,
@@ -573,7 +577,7 @@ const uint32_t c2[] = {
573 0x59388004, 577 0x59388004,
574 0x240010e6, 578 0x240010e6,
575 0x2f008186, 579 0x2f008186,
576 0x2101f300, 580 0x2101f700,
577 0x240000e6, 581 0x240000e6,
578 0x2f008186, 582 0x2f008186,
579 0x2e80878a, 583 0x2e80878a,
@@ -665,7 +669,7 @@ const uint32_t c2[] = {
665 0xe10c2281, 669 0xe10c2281,
666 0x240050e2, 670 0x240050e2,
667 0xe10c2281, 671 0xe10c2281,
668 0x2101f300, 672 0x2101f700,
669 0x240000e6, 673 0x240000e6,
670 0x2f008186, 674 0x2f008186,
671 0x2e80838a, 675 0x2e80838a,
@@ -675,22 +679,22 @@ const uint32_t c2[] = {
675 0x58c08004, 679 0x58c08004,
676 0x240010e6, 680 0x240010e6,
677 0x2f008186, 681 0x2f008186,
678 0x2101f300, 682 0x2101f700,
679 0x240018c4, 683 0x240018c4,
680 0x2f000384, 684 0x2f000384,
681 0x2102f100, 685 0x2102f500,
682 0x240014c4, 686 0x240014c4,
683 0x2f000384, 687 0x2f000384,
684 0x69016a17, 688 0x69016a17,
685 0x593c8004, 689 0x593c8004,
686 0x240010e6, 690 0x240010e6,
687 0x1f007a7a, 691 0x1f007a7a,
688 0x2101f300, 692 0x2101f700,
689 0x2e80838e, 693 0x2e80838e,
690 0x71046e04, 694 0x71046e04,
691 0x240011e6, 695 0x240011e6,
692 0x1f007a7a, 696 0x1f007a7a,
693 0x2101f300, 697 0x2101f700,
694 0x09056e81, 698 0x09056e81,
695 0x09036ec1, 699 0x09036ec1,
696 0x00c18181, 700 0x00c18181,
@@ -703,37 +707,37 @@ const uint32_t c2[] = {
703 0x8281f38e, 707 0x8281f38e,
704 0x240020c4, 708 0x240020c4,
705 0x2f000384, 709 0x2f000384,
706 0x2101f300, 710 0x2101f700,
707 0x69026a0e, 711 0x69026a0e,
708 0x59248004, 712 0x59248004,
709 0x240010e6, 713 0x240010e6,
710 0x1f007a7a, 714 0x1f007a7a,
711 0x2101f300, 715 0x2101f700,
712 0x2e80878e, 716 0x2e80878e,
713 0x71106e04, 717 0x71106e04,
714 0x240012e6, 718 0x240012e6,
715 0x1f007a7a, 719 0x1f007a7a,
716 0x2101f300, 720 0x2101f700,
717 0x09046e81, 721 0x09046e81,
718 0x01008181, 722 0x01008181,
719 0x8081fa8e, 723 0x8081fa8e,
720 0x2101f300, 724 0x2101f700,
721 0x69046a0b, 725 0x69046a0b,
722 0x59188004, 726 0x59188004,
723 0x240010e6, 727 0x240010e6,
724 0x1f007a7a, 728 0x1f007a7a,
725 0x2101f300, 729 0x2101f700,
726 0x2e80818e, 730 0x2e80818e,
727 0x1d021d1d, 731 0x1d021d1d,
728 0xc9006e02, 732 0xc9006e02,
729 0x1f021d1d, 733 0x1f021d1d,
730 0x81b8338e, 734 0x81b8338e,
731 0x2101f300, 735 0x2101f700,
732 0x69056a0d, 736 0x69056a0d,
733 0x59188004, 737 0x59188004,
734 0x240010e6, 738 0x240010e6,
735 0x1f007a7a, 739 0x1f007a7a,
736 0x2101f300, 740 0x2101f700,
737 0x2e80818e, 741 0x2e80818e,
738 0x1d011d1d, 742 0x1d011d1d,
739 0xc9006e02, 743 0xc9006e02,
@@ -741,13 +745,13 @@ const uint32_t c2[] = {
741 0x1d031d1d, 745 0x1d031d1d,
742 0xc9016e02, 746 0xc9016e02,
743 0x1f031d1d, 747 0x1f031d1d,
744 0x2101f300, 748 0x2101f700,
745 0x69086a1b, 749 0x69086a1b,
746 0x24004cc0, 750 0x24004cc0,
747 0x58c08004, 751 0x58c08004,
748 0x240010e6, 752 0x240010e6,
749 0x1f007a7a, 753 0x1f007a7a,
750 0x2101f300, 754 0x2101f700,
751 0x2e808b8e, 755 0x2e808b8e,
752 0x240100c2, 756 0x240100c2,
753 0x51006e12, 757 0x51006e12,
@@ -767,14 +771,14 @@ const uint32_t c2[] = {
767 0x2f000184, 771 0x2f000184,
768 0x2e80898f, 772 0x2e80898f,
769 0x05016e6e, 773 0x05016e6e,
770 0x2102bf00, 774 0x2102c300,
771 0x2101f300, 775 0x2101f700,
772 0x69096a1c, 776 0x69096a1c,
773 0x2400b0c0, 777 0x2400b0c0,
774 0x58c08004, 778 0x58c08004,
775 0x240010e6, 779 0x240010e6,
776 0x1f007a7a, 780 0x1f007a7a,
777 0x2101f300, 781 0x2101f700,
778 0x2e808d8e, 782 0x2e808d8e,
779 0x240200c2, 783 0x240200c2,
780 0x51006e13, 784 0x51006e13,
@@ -790,16 +794,16 @@ const uint32_t c2[] = {
790 0x8082fe91, 794 0x8082fe91,
791 0x01108282, 795 0x01108282,
792 0x05014e4e, 796 0x05014e4e,
793 0x2102e000, 797 0x2102e400,
794 0x240018c4, 798 0x240018c4,
795 0x2f000184, 799 0x2f000184,
796 0x2e808b8f, 800 0x2e808b8f,
797 0x05016e6e, 801 0x05016e6e,
798 0x2102da00, 802 0x2102de00,
799 0x2101f300, 803 0x2101f700,
800 0x240002e6, 804 0x240002e6,
801 0x1f007a7a, 805 0x1f007a7a,
802 0x2101f300, 806 0x2101f700,
803 0x240000e1, 807 0x240000e1,
804 0x240010c4, 808 0x240010c4,
805 0x2e80878e, 809 0x2e80878e,
@@ -809,7 +813,7 @@ const uint32_t c2[] = {
809 0x01010101, 813 0x01010101,
810 0x0110c1c1, 814 0x0110c1c1,
811 0x671f01fa, 815 0x671f01fa,
812 0x2101f300, 816 0x2101f700,
813 0x2e80818a, 817 0x2e80818a,
814 0x24000004, 818 0x24000004,
815 0x240014c4, 819 0x240014c4,
@@ -836,8 +840,8 @@ const uint32_t c2[] = {
836 0x10e2e2e5, 840 0x10e2e2e5,
837 0x2f000384, 841 0x2f000384,
838 0x9083e286, 842 0x9083e286,
839 0x2101f300, 843 0x2101f700,
840 0x2101f300, 844 0x2101f700,
841 0x24000004, 845 0x24000004,
842 0x240010c4, 846 0x240010c4,
843 0x2f000384, 847 0x2f000384,
@@ -846,12 +850,12 @@ const uint32_t c2[] = {
846 0x2f000384, 850 0x2f000384,
847 0x9100b78e, 851 0x9100b78e,
848 0x2f00858e, 852 0x2f00858e,
849 0x2101f300, 853 0x2101f700,
850 0x240058c0, 854 0x240058c0,
851 0x58c08004, 855 0x58c08004,
852 0x240010e6, 856 0x240010e6,
853 0x2f008186, 857 0x2f008186,
854 0x2101f300, 858 0x2101f700,
855 0x2e80838a, 859 0x2e80838a,
856 0x106a6a24, 860 0x106a6a24,
857 0x10ebebe5, 861 0x10ebebe5,
@@ -881,7 +885,7 @@ const uint32_t c2[] = {
881 0x01040101, 885 0x01040101,
882 0x01012424, 886 0x01012424,
883 0x671024fc, 887 0x671024fc,
884 0x2101f300, 888 0x2101f700,
885 0x10d7d790, 889 0x10d7d790,
886 0x24000442, 890 0x24000442,
887 0x69026619, 891 0x69026619,
@@ -895,7 +899,7 @@ const uint32_t c2[] = {
895 0x11e08181, 899 0x11e08181,
896 0x51014703, 900 0x51014703,
897 0x240016c1, 901 0x240016c1,
898 0x21035200, 902 0x21035600,
899 0x24000dc1, 903 0x24000dc1,
900 0x12c18181, 904 0x12c18181,
901 0x812c07c1, 905 0x812c07c1,
@@ -937,7 +941,7 @@ const uint32_t c2[] = {
937 0x11c03900, 941 0x11c03900,
938 0x51000003, 942 0x51000003,
939 0x107b7b21, 943 0x107b7b21,
940 0x21038000, 944 0x21038400,
941 0xd1010105, 945 0xd1010105,
942 0x11073900, 946 0x11073900,
943 0x51000003, 947 0x51000003,
@@ -949,11 +953,11 @@ const uint32_t c2[] = {
949 0x00214646, 953 0x00214646,
950 0x00018686, 954 0x00018686,
951 0x24000642, 955 0x24000642,
952 0x21039100, 956 0x21039500,
953 0x00228686, 957 0x00228686,
954 0xc9016809, 958 0xc9016809,
955 0x00224646, 959 0x00224646,
956 0x21039100, 960 0x21039500,
957 0xc9026803, 961 0xc9026803,
958 0x007b8686, 962 0x007b8686,
959 0x24000642, 963 0x24000642,
@@ -1069,4 +1073,4 @@ const uint32_t c2[] = {
1069 0x81811961, 1073 0x81811961,
1070 0x209e0000 }; 1074 0x209e0000 };
1071 1075
1072const int c2Size = sizeof(c2); 1076const int c2Size = sizeof(c2);
diff --git a/fw/v0/lut1_lut2.h b/fw/v0/lut1_lut2.h
index 7a98f49..679f564 100644
--- a/fw/v0/lut1_lut2.h
+++ b/fw/v0/lut1_lut2.h
@@ -1,150 +1,185 @@
1#ifndef _LUT1_LUT2_H 1//
2#define _LUT1_LUT2_H 1 2// *
3// ********************************************************************************************************* 3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// * FILE PURPOSE: LUT1 and LUT2 definitions 4// *
5// ********************************************************************************************************* 5// *
6// * FILE NAME: lut1_lut2.h 6// * Redistribution and use in source and binary forms, with or without
7// * 7// * modification, are permitted provided that the following conditions
8// * DESCRIPTION: Defines the LUT1 and LUT2 structures 8// * are met:
9// * The command values are defined in pm_config.h 9// *
10// * 10// * Redistributions of source code must retain the above copyright
11// ********************************************************************************************************* 11// * notice, this list of conditions and the following disclaimer.
12 12// *
13.struct struct_lut1Status 13// * Redistributions in binary form must reproduce the above copyright
14 .u16 rsvd 14// * notice, this list of conditions and the following disclaimer in the
15 .u8 index 15// * documentation and/or other materials provided with the
16 .u8 status 16// * distribution.
17.ends 17// *
18 18// * Neither the name of Texas Instruments Incorporated nor the names of
19#define L1_STATUS_ENTRY_MATCH t3 19// * its contributors may be used to endorse or promote products derived
20 20// * from this software without specific prior written permission.
21.struct struct_lut1Cmd 21// *
22 .u16 careFlags 22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 .u8 index 23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 .u8 cmd 24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25.ends 25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27.struct struct_View1 27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 .u16 DstAddr_01 28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 .u16 DstAddr_23 29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 .u16 DstAddr_45 30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 .u16 SrcAddr_01 31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 .u16 SrcAddr_23 32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 .u16 SrcAddr_45 33// *
34 .u16 EtherType 34// *
35 .u16 VLAN 35
36.ends 36#ifndef _LUT1_LUT2_H
37 37#define _LUT1_LUT2_H 1
38.struct struct_View1Srio 38// *********************************************************************************************************
39 .u32 rsvd1 39// * FILE PURPOSE: LUT1 and LUT2 definitions
40 .u16 srcId 40// *********************************************************************************************************
41 41// * FILE NAME: lut1_lut2.h
42 .u16 dstId 42// *
43 .u32 rsvd2 43// * DESCRIPTION: Defines the LUT1 and LUT2 structures
44 44// * The command values are defined in pm_config.h
45 .u16 rsvd3 45// *
46 .u16 rsvd4 46// *********************************************************************************************************
47.ends 47
48 48.struct struct_lut1Status
49.struct struct_View1Rio 49 .u16 rsvd
50 .u32 rio0 50 .u8 index
51 .u32 rsvd1 51 .u8 status
52 .u32 rio1 52.ends
53 .u32 rsvd2 53
54.ends 54#define L1_STATUS_ENTRY_MATCH t3
55 55
56.struct struct_View2 56.struct struct_lut1Cmd
57 .u32 SrcIp_0 57 .u16 careFlags
58 .u32 SrcIp_1 58 .u8 index
59 .u32 SrcIp_2 59 .u8 cmd
60 .u32 SrcIp_3 60.ends
61 .u32 DstIp_0 61
62 .u32 DstIp_1 62.struct struct_View1
63 .u32 DstIp_2 63 .u16 DstAddr_01
64 .u32 DstIp_3 64 .u16 DstAddr_23
65.ends 65 .u16 DstAddr_45
66 66 .u16 SrcAddr_01
67.struct struct_View2Srio 67 .u16 SrcAddr_23
68 .u32 rsvd1 68 .u16 SrcAddr_45
69 .u32 rsvd2 69 .u16 EtherType
70 .u32 rsvd3 70 .u16 VLAN
71 .u32 rsvd4 71.ends
72 72
73 .u32 rsvd5 73.struct struct_View1Srio
74 .u32 rsvd6 74 .u32 rsvd1
75 .u32 rsvd7 75 .u16 srcId
76 .u16 rsvd8 76
77 .u16 typeParam1 // stream ID or mailbox */ 77 .u16 dstId
78.ends 78 .u32 rsvd2
79 79
80 80 .u16 rsvd3
81.struct struct_View3 81 .u16 rsvd4
82 .u32 SPI 82.ends
83 .u32 FlowLabel 83
84 .u16 SrcPort 84.struct struct_View1Rio
85 .u16 DstPort 85 .u32 rio0
86 .u8 Protocol 86 .u32 rsvd1
87 .u8 Tos 87 .u32 rio1
88 .u8 IngressPort 88 .u32 rsvd2
89 .u8 KeyByte 89.ends
90.ends 90
91 91.struct struct_View2
92.struct struct_View3Srio 92 .u32 SrcIp_0
93 .u32 rsvd1 93 .u32 SrcIp_1
94 .u32 rsvd2 94 .u32 SrcIp_2
95 .u32 rsvd3 95 .u32 SrcIp_3
96 .u8 pri 96 .u32 DstIp_0
97 .u8 typeParam2 // cos or letter 97 .u32 DstIp_1
98 .u8 msgType 98 .u32 DstIp_2
99 .u8 keyByte 99 .u32 DstIp_3
100.ends 100.ends
101 101
102 102.struct struct_View2Srio
103.struct struct_View3mpls 103 .u32 rsvd1
104 .u32 SPI 104 .u32 rsvd2
105 .u32 FlowLabel 105 .u32 rsvd3
106 .u32 mpls 106 .u32 rsvd4
107 .u8 Protocol 107
108 .u8 Tos 108 .u32 rsvd5
109 .u8 IngressPort 109 .u32 rsvd6
110 .u8 KeyByte 110 .u32 rsvd7
111.ends 111 .u16 rsvd8
112 112 .u16 typeParam1 // stream ID or mailbox */
113 113.ends
114// Define a structure that is used to write a complete entry to the LUT 114
115.struct struct_l2Entry 115
116 .u32 data0 116.struct struct_View3
117 .u32 data1 117 .u32 SPI
118 .u32 data2 118 .u32 FlowLabel
119 .u32 data3 119 .u16 SrcPort
120 .u32 key 120 .u16 DstPort
121 .u32 ctrl 121 .u8 Protocol
122.ends 122 .u8 Tos
123 123 .u8 IngressPort
124.struct struct_l2Search 124 .u8 KeyByte
125 .u8 rsvd 125.ends
126 .u16 dstPort 126
127 .u8 IdIdx 127.struct struct_View3Srio
128.ends 128 .u32 rsvd1
129 129 .u32 rsvd2
130.struct struct_l2Search2 130 .u32 rsvd3
131 .u32 data 131 .u8 pri
132.ends 132 .u8 typeParam2 // cos or letter
133 133 .u8 msgType
134 134 .u8 keyByte
135 135.ends
136.struct struct_l2SCustom 136
137 .u8 cb0 137
138 .u8 cb1 138.struct struct_View3mpls
139 .u8 cb2 139 .u32 SPI
140 .u8 cb3 140 .u32 FlowLabel
141.ends 141 .u32 mpls
142 142 .u8 Protocol
143 143 .u8 Tos
144 144 .u8 IngressPort
145#endif // _LUT1__LUT2_H 145 .u8 KeyByte
146 146.ends
147 147
148 148
149 149// Define a structure that is used to write a complete entry to the LUT
150 150.struct struct_l2Entry
151 .u32 data0
152 .u32 data1
153 .u32 data2
154 .u32 data3
155 .u32 key
156 .u32 ctrl
157.ends
158
159.struct struct_l2Search
160 .u8 rsvd
161 .u16 dstPort
162 .u8 IdIdx
163.ends
164
165.struct struct_l2Search2
166 .u32 data
167.ends
168
169
170
171.struct struct_l2SCustom
172 .u8 cb0
173 .u8 cb1
174 .u8 cb2
175 .u8 cb3
176.ends
177
178
179
180#endif // _LUT1__LUT2_H
181
182
183
184
185
diff --git a/fw/v0/meminit.p b/fw/v0/meminit.p
index 71beea2..c39aef7 100644
--- a/fw/v0/meminit.p
+++ b/fw/v0/meminit.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// *********************************************************************************************************** 35// ***********************************************************************************************************
2// * FILE PURPOSE: Perform PDSP memory intialization 36// * FILE PURPOSE: Perform PDSP memory intialization
3// *********************************************************************************************************** 37// ***********************************************************************************************************
diff --git a/fw/v0/pacfgcmn.p b/fw/v0/pacfgcmn.p
index 2a13302..3d3edf7 100644
--- a/fw/v0/pacfgcmn.p
+++ b/fw/v0/pacfgcmn.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ******************************************************************************************* 35// *******************************************************************************************
2// * FILE PURPOSE: Perform common PA configuration 36// * FILE PURPOSE: Perform common PA configuration
3// ******************************************************************************************* 37// *******************************************************************************************
diff --git a/fw/v0/pafw.h b/fw/v0/pafw.h
index 006014a..bcc2d00 100644
--- a/fw/v0/pafw.h
+++ b/fw/v0/pafw.h
@@ -16,7 +16,7 @@
16 * 16 *
17 * REVISION HISTORY: 17 * REVISION HISTORY:
18 * 18 *
19 * Copyright (c) Texas Instruments Incorporated 2009-2013 19 * Copyright (c) Texas Instruments Incorporated 2009-2016
20 * 20 *
21 * Redistribution and use in source and binary forms, with or without 21 * Redistribution and use in source and binary forms, with or without
22 * modification, are permitted provided that the following conditions 22 * modification, are permitted provided that the following conditions
diff --git a/fw/v0/pam.bib b/fw/v0/pam.bib
index 3b1b7c7..994f6de 100644
--- a/fw/v0/pam.bib
+++ b/fw/v0/pam.bib
Binary files differ
diff --git a/fw/v0/pam.p b/fw/v0/pam.p
index cd7cc71..4cd54ea 100644
--- a/fw/v0/pam.p
+++ b/fw/v0/pam.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************ 35// ************************************************************************************************
2// * FILE PURPOSE: Packet processing on PDSPs without LUTs 36// * FILE PURPOSE: Packet processing on PDSPs without LUTs
3// ************************************************************************************************ 37// ************************************************************************************************
@@ -1293,7 +1327,7 @@ f_group7Cmd:
1293 // Extract the sub command code 1327 // Extract the sub command code
1294 and r1.b0, s_ipFrag.cmdId_subCode, PA_SUB_CMD_CODE_MASK 1328 and r1.b0, s_ipFrag.cmdId_subCode, PA_SUB_CMD_CODE_MASK
1295 qbeq fci_mProc4, r1.b0, PA_SUB_CMD_CODE_DUMMY 1329 qbeq fci_mProc4, r1.b0, PA_SUB_CMD_CODE_DUMMY
1296 1330 qbeq l_group7Cmd_crcVerify, r1.b0, PA_SUB_CMD_CODE_EMAC_CRC_VERIFY
1297 qbne f_ipFrag, r1.b0, PA_SUB_CMD_CODE_PATCH_MSG_LEN 1331 qbne f_ipFrag, r1.b0, PA_SUB_CMD_CODE_PATCH_MSG_LEN
1298 1332
1299f_patchMsgLen: 1333f_patchMsgLen:
@@ -1321,6 +1355,9 @@ l_patchMsgLen1:
1321 add s_modState.chkSumCount, s_modState.chkSumCount, 1 1355 add s_modState.chkSumCount, s_modState.chkSumCount, 1
1322 1356
1323 jmp fci_mProc4 1357 jmp fci_mProc4
1358
1359l_group7Cmd_crcVerify:
1360 jmp f_emacCrcVerify
1324 1361
1325f_ipFrag: 1362f_ipFrag:
1326 qbbs l_ipFrag1, s_modState.flags.t_subsMCxtTerminate 1363 qbbs l_ipFrag1, s_modState.flags.t_subsMCxtTerminate
@@ -2602,6 +2639,127 @@ l_modComplete8:
2602 .leave cdeScope 2639 .leave cdeScope
2603 .leave modifyScope 2640 .leave modifyScope
2604 .leave eQosCompScope 2641 .leave eQosCompScope
2642
2643
2644// *******************************************************************************
2645// * FUNCTION PURPOSE: EMAC CRC Verify Command
2646// *******************************************************************************
2647// * DESCRIPTION: Process the EMAC CRC Verify
2648// *
2649// * Register Usage:
2650// *
2651// * R0: | CRC recalculated
2652// * R1:
2653// * R2:
2654// * R3:
2655// * R4: | CDE commands - cdeScope
2656// * R5: |
2657// * R6: | CRC stored
2658// * R7:
2659// * R8:
2660// * R9:
2661// * R10:
2662// * R11:
2663// * R12:
2664// * R13:
2665// * R14:
2666// * R15:
2667// * R16:
2668// * R17:
2669// * R18:
2670// * R19:
2671// * R20: | Modify State machine (s_modState)
2672// * R21:
2673// * R22: | s_msg or s_emacCrcVerify
2674// * R23:
2675// * R24:
2676// * R25:
2677// * R26:
2678// * R27:
2679// * R28: statistics (s_statsFlags) - Global scope
2680// * R29: Modify context (s_modCxt) -
2681// * R30: w0-function return address -
2682// * R31: System Flags (s_flags) -
2683// *
2684// *******************************************************************************
2685 .using cdeScope
2686 .using pktScope // For offset info
2687 .using modifyScope
2688
2689f_emacCrcVerify:
2690
2691 // Flush out the control info (ignore all other commands)
2692 mov s_cdeCmdWd.operation, CDE_CMD_FLUSH_TO_PACKET
2693 xout XID_CDECTRL, s_cdeCmdWd, 4
2694
2695 // Check if the packet is a valid packet (at least has 4 bytes)
2696 qbgt l_emacCrcVerify_badCRC, s_modState.pktSize, 4
2697 //
2698 // Generate CRC and place it at packet description swinfo0 for comparison
2699 //
2700 mov s_cdeCmd.v0, CDE_CMD_CRC_COMPUTE | ((PA_CRC_FLAG_CRC_OFFSET_VALID | PA_CRC_FLAG_CRC_OFFSET_FROM_DESC)<< 8)
2701 //mov s_cdeCmdChk.operation, CDE_CMD_CRC_COMPUTE
2702 //mov s_cdeCmdChk.options, PA_CRC_FLAG_CRC_OFFSET_VALID
2703 sub s_cdeCmdChk.byteLen, s_modState.pktSize, 4
2704 // mov s_cdeCmdChk.initSum, 0
2705 mov s_cdeCmdChk.offset, OFFSET(s_pktDescr.swinfo0)
2706 xout XID_CDECTRL, s_cdeCmdChk, SIZE(s_cdeCmdChk)
2707
2708 //Advance the packet to the end of packet (keep the same length)
2709 mov s_cdeCmdWd.operation, CDE_CMD_WINDOW_ADVANCE
2710 xout XID_CDECTRL, s_cdeCmdWd, 4
2711
2712 // Record the original CRC
2713 xin XID_CDEDATA, r6, 4
2714
2715 // Trim CRC (to the current window) from the packet and hold
2716 mov s_cdeCmd.v0, CDE_CMD_PACKET_ADVANCE | ((CDE_FLG_HOLD_PACKET | CDE_FLG_TRUNCATE)<<8)
2717 mov s_cdeCmd.v1, (4<<8)
2718 xout XID_CDECTRL, s_cdeCmd, 8 // Send the command
2719
2720 // Wait for the held packet to appear in the CDE
2721 wbs s_flags.info.tStatus_CDEHeldPacket
2722
2723 // Wait for the CDE to be idle
2724 wbc s_flags.info.tStatus_CDEBusy
2725
2726 // Get the CRC
2727 lbco r0, cCdeHeldPkt, OFFSET(s_pktDescr.swinfo0), 4
2728
2729 // Verify CRC
2730 qbne l_emacCrcVerify_badCRC, r0, r6
2731 // Forward the packet out
2732 // Patch the psflags
2733 // Note: There will be no errorFlags for host-generated packets,
2734 // therefor, the following code can be commented out
2735 //
2736 //lbco r2.b0, cCdeHeldPkt, OFFSET(s_pktDescr.psFlags_errorFlags), 1
2737 //and r2.b0, r2.b0, NOT_PA_PKT_PS_FLAGS_MASK
2738 //or r2.b0, r2.b0, s_emacCrcVerify.psflags
2739 //sbco r2.b0, cCdeHeldPkt, OFFSET(s_pktDescr.psFlags_errorFlags), 1
2740 sbco s_emacCrcVerify.psflags, cCdeHeldPkt, OFFSET(s_pktDescr.psFlags_errorFlags), 1
2741
2742 // Send the packet on its way
2743 mov s_cdeCmd.v0, CDE_CMD_HPKT_RELEASE | (CDE_FLG_SET_THREADID << 8)
2744 mov s_cdeCmdPkt.threadId, PA_DEST_ETH
2745 xout XID_CDECTRL, s_cdeCmdPkt, SIZE( s_cdeCmdPkt)
2746
2747 jmp f_mainLoop
2748
2749l_emacCrcVerify_badCRC:
2750 // CRC is bad - Discard Packet
2751 mov s_cdeCmdPkt.operation, CDE_CMD_HPKT_DISCARD
2752 xout XID_CDECTRL, s_cdeCmdPkt, 4 // Send the command
2753
2754 // Increment Tx CRC drop stats
2755 set s_statsFlags.event.t_nTxEthCrcErr
2756
2757 jmp f_mainLoop
2758
2759 .leave cdeScope
2760 .leave pktScope
2761 .leave modifyScope
2762
2605 2763
2606// *********************************************************************************** 2764// ***********************************************************************************
2607// * FUNCTION PURPOSE: Setup the system to process a PA Configure message 2765// * FUNCTION PURPOSE: Setup the system to process a PA Configure message
diff --git a/fw/v0/pam_bin.c b/fw/v0/pam_bin.c
index 9180498..c0c790a 100644
--- a/fw/v0/pam_bin.c
+++ b/fw/v0/pam_bin.c
@@ -92,7 +92,7 @@ const uint32_t m[] = {
92 0x01042f2f, 92 0x01042f2f,
93 0x111f2f2f, 93 0x111f2f2f,
94 0x808e004f, 94 0x808e004f,
95 0x2304cb9e, 95 0x2304e79e,
96 0x104e4e5d, 96 0x104e4e5d,
97 0x91001acf, 97 0x91001acf,
98 0x502f0f07, 98 0x502f0f07,
@@ -101,7 +101,7 @@ const uint32_t m[] = {
101 0x01042f2f, 101 0x01042f2f,
102 0x111f2f2f, 102 0x111f2f2f,
103 0x81001a4f, 103 0x81001a4f,
104 0x2304cb9e, 104 0x2304e79e,
105 0xcf04ffdb, 105 0xcf04ffdb,
106 0x91002481, 106 0x91002481,
107 0x0101e1e1, 107 0x0101e1e1,
@@ -141,10 +141,10 @@ const uint32_t m[] = {
141 0x51010125, 141 0x51010125,
142 0x51050102, 142 0x51050102,
143 0x21005f00, 143 0x21005f00,
144 0x21035c00, 144 0x21037800,
145 0x51040102, 145 0x51040102,
146 0x21006200, 146 0x21006200,
147 0x21035b00, 147 0x21037700,
148 0x51060144, 148 0x51060144,
149 0x510701ef, 149 0x510701ef,
150 0x2eff8384, 150 0x2eff8384,
@@ -274,9 +274,9 @@ const uint32_t m[] = {
274 0x69074204, 274 0x69074204,
275 0x11701542, 275 0x11701542,
276 0x51004202, 276 0x51004202,
277 0x2302a99e, 277 0x2302ab9e,
278 0xd1023586, 278 0xd1023588,
279 0x2303049e, 279 0x2303069e,
280 0xc9013509, 280 0xc9013509,
281 0x593c9408, 281 0x593c9408,
282 0x24001084, 282 0x24001084,
@@ -318,7 +318,7 @@ const uint32_t m[] = {
318 0x10d4d4d0, 318 0x10d4d4d0,
319 0x10949490, 319 0x10949490,
320 0xc9007d03, 320 0xc9007d03,
321 0x2304cb9e, 321 0x2304e79e,
322 0x21011a00, 322 0x21011a00,
323 0x91001acf, 323 0x91001acf,
324 0x01040f00, 324 0x01040f00,
@@ -338,7 +338,7 @@ const uint32_t m[] = {
338 0x1f0ec0c0, 338 0x1f0ec0c0,
339 0x80801c80, 339 0x80801c80,
340 0xd1007d03, 340 0xd1007d03,
341 0x2304cb9e, 341 0x2304e79e,
342 0x21012e00, 342 0x21012e00,
343 0x91001acf, 343 0x91001acf,
344 0x01040f00, 344 0x01040f00,
@@ -393,8 +393,9 @@ const uint32_t m[] = {
393 0x00c41d1d, 393 0x00c41d1d,
394 0x111f7601, 394 0x111f7601,
395 0x550001fd, 395 0x550001fd,
396 0x6902010b, 396 0x5103010c,
397 0x5d0275fb, 397 0x6902010c,
398 0x5d0275fa,
398 0x24000276, 399 0x24000276,
399 0xc90f9603, 400 0xc90f9603,
400 0x24000476, 401 0x24000476,
@@ -404,6 +405,7 @@ const uint32_t m[] = {
404 0x80c33996, 405 0x80c33996,
405 0x01017575, 406 0x01017575,
406 0x21005600, 407 0x21005600,
408 0x21035d00,
407 0xd1063506, 409 0xd1063506,
408 0x1f023535, 410 0x1f023535,
409 0x1f013535, 411 0x1f013535,
@@ -424,7 +426,7 @@ const uint32_t m[] = {
424 0x11f06600, 426 0x11f06600,
425 0x51400003, 427 0x51400003,
426 0x51600095, 428 0x51600095,
427 0x2101e100, 429 0x2101e300,
428 0x108686cf, 430 0x108686cf,
429 0x110f660e, 431 0x110f660e,
430 0x09020e0e, 432 0x09020e0e,
@@ -439,7 +441,7 @@ const uint32_t m[] = {
439 0x040ecfe1, 441 0x040ecfe1,
440 0x48e0e103, 442 0x48e0e103,
441 0x0490e1d0, 443 0x0490e1d0,
442 0x21018a00, 444 0x21018c00,
443 0x1f0d8787, 445 0x1f0d8787,
444 0x000ed086, 446 0x000ed086,
445 0x24000088, 447 0x24000088,
@@ -454,7 +456,7 @@ const uint32_t m[] = {
454 0x104242c4, 456 0x104242c4,
455 0x51022403, 457 0x51022403,
456 0x008682e5, 458 0x008682e5,
457 0x21019900, 459 0x21019b00,
458 0x008682c5, 460 0x008682c5,
459 0x2f000384, 461 0x2f000384,
460 0x51017508, 462 0x51017508,
@@ -462,7 +464,7 @@ const uint32_t m[] = {
462 0x104343c4, 464 0x104343c4,
463 0x51022403, 465 0x51022403,
464 0x008683e5, 466 0x008683e5,
465 0x2101a100, 467 0x2101a300,
466 0x008683c5, 468 0x008683c5,
467 0x2f000384, 469 0x2f000384,
468 0x2eff8384, 470 0x2eff8384,
@@ -526,7 +528,7 @@ const uint32_t m[] = {
526 0x102e2ec4, 528 0x102e2ec4,
527 0x2f000184, 529 0x2f000184,
528 0x2e808986, 530 0x2e808986,
529 0x21018200, 531 0x21018400,
530 0x2100e600, 532 0x2100e600,
531 0x51007511, 533 0x51007511,
532 0x24004304, 534 0x24004304,
@@ -534,7 +536,7 @@ const uint32_t m[] = {
534 0x104242c4, 536 0x104242c4,
535 0x51022403, 537 0x51022403,
536 0x00cf82e5, 538 0x00cf82e5,
537 0x2101e900, 539 0x2101eb00,
538 0x00cf82c5, 540 0x00cf82c5,
539 0x2f000384, 541 0x2f000384,
540 0x51017508, 542 0x51017508,
@@ -542,12 +544,12 @@ const uint32_t m[] = {
542 0x104343c4, 544 0x104343c4,
543 0x51022403, 545 0x51022403,
544 0x00cf83e5, 546 0x00cf83e5,
545 0x2101f100, 547 0x2101f300,
546 0x00cf83c5, 548 0x00cf83c5,
547 0x2f000384, 549 0x2f000384,
548 0x102e2e82, 550 0x102e2e82,
549 0x2400e69e, 551 0x2400e69e,
550 0x21033700, 552 0x21033900,
551 0x24000081, 553 0x24000081,
552 0x6f0155b9, 554 0x6f0155b9,
553 0x24704480, 555 0x24704480,
@@ -571,7 +573,7 @@ const uint32_t m[] = {
571 0x240000c4, 573 0x240000c4,
572 0x10e0e0e5, 574 0x10e0e0e5,
573 0x2f000384, 575 0x2f000384,
574 0x2101af00, 576 0x2101b100,
575 0x11f84e4e, 577 0x11f84e4e,
576 0x0128c7cf, 578 0x0128c7cf,
577 0x2400280e, 579 0x2400280e,
@@ -583,14 +585,14 @@ const uint32_t m[] = {
583 0x51007104, 585 0x51007104,
584 0x512b7103, 586 0x512b7103,
585 0x513c7102, 587 0x513c7102,
586 0x21022000, 588 0x21022200,
587 0x2f000184, 589 0x2f000184,
588 0x2e808086, 590 0x2e808086,
589 0x10666671, 591 0x10666671,
590 0x010146c4, 592 0x010146c4,
591 0x0903c4c4, 593 0x0903c4c4,
592 0x00c40e0e, 594 0x00c40e0e,
593 0x21021400, 595 0x21021600,
594 0x01080ee0, 596 0x01080ee0,
595 0x04e0ced0, 597 0x04e0ced0,
596 0x70e0ce84, 598 0x70e0ce84,
@@ -607,7 +609,7 @@ const uint32_t m[] = {
607 0x01042ec4, 609 0x01042ec4,
608 0x0528cec5, 610 0x0528cec5,
609 0x2f000384, 611 0x2f000384,
610 0x21023500, 612 0x21023700,
611 0x24002c27, 613 0x24002c27,
612 0x0528cec7, 614 0x0528cec7,
613 0x2f008386, 615 0x2f008386,
@@ -623,7 +625,7 @@ const uint32_t m[] = {
623 0x104242c4, 625 0x104242c4,
624 0x51022403, 626 0x51022403,
625 0x008182e5, 627 0x008182e5,
626 0x21024200, 628 0x21024400,
627 0x008182c5, 629 0x008182c5,
628 0x2f000384, 630 0x2f000384,
629 0x51017508, 631 0x51017508,
@@ -631,7 +633,7 @@ const uint32_t m[] = {
631 0x104343c4, 633 0x104343c4,
632 0x51022403, 634 0x51022403,
633 0x008183e5, 635 0x008183e5,
634 0x21024a00, 636 0x21024c00,
635 0x008183c5, 637 0x008183c5,
636 0x2f000384, 638 0x2f000384,
637 0x24003304, 639 0x24003304,
@@ -698,7 +700,7 @@ const uint32_t m[] = {
698 0x2f008386, 700 0x2f008386,
699 0x100e0ec4, 701 0x100e0ec4,
700 0x2f000184, 702 0x2f000184,
701 0x21023500, 703 0x21023700,
702 0x2100e600, 704 0x2100e600,
703 0x24000081, 705 0x24000081,
704 0x6f0155cd, 706 0x6f0155cd,
@@ -724,10 +726,10 @@ const uint32_t m[] = {
724 0x240000c4, 726 0x240000c4,
725 0x10e0e0e5, 727 0x10e0e0e5,
726 0x2f000384, 728 0x2f000384,
727 0x21025b00, 729 0x21025d00,
728 0x2f000184, 730 0x2f000184,
729 0x000e2e2e, 731 0x000e2e2e,
730 0x2101e100, 732 0x2101e300,
731 0x24000c04, 733 0x24000c04,
732 0x2f000384, 734 0x2f000384,
733 0x2eff8192, 735 0x2eff8192,
@@ -765,23 +767,23 @@ const uint32_t m[] = {
765 0x240002c4, 767 0x240002c4,
766 0x2f000384, 768 0x2f000384,
767 0x00c48282, 769 0x00c48282,
768 0x2102ba00, 770 0x2102bc00,
769 0x688ec605, 771 0x688ec605,
770 0x240002c4, 772 0x240002c4,
771 0x2f000384, 773 0x2f000384,
772 0x00c48282, 774 0x00c48282,
773 0x2102ba00, 775 0x2102bc00,
774 0x68cfc605, 776 0x68cfc605,
775 0x2e808186, 777 0x2e808186,
776 0x0b024612, 778 0x0b024612,
777 0x1f017272, 779 0x1f017272,
778 0x2102f500, 780 0x2102f700,
779 0x688fc606, 781 0x688fc606,
780 0x2e808186, 782 0x2e808186,
781 0x0b04c612, 783 0x0b04c612,
782 0x0b021212, 784 0x0b021212,
783 0x1f017272, 785 0x1f017272,
784 0x2102f500, 786 0x2102f700,
785 0x68d0c60a, 787 0x68d0c60a,
786 0x2e808386, 788 0x2e808386,
787 0x240004c4, 789 0x240004c4,
@@ -791,7 +793,7 @@ const uint32_t m[] = {
791 0x0b046703, 793 0x0b046703,
792 0x570403ef, 794 0x570403ef,
793 0x570603f3, 795 0x570603f3,
794 0x2102f500, 796 0x2102f700,
795 0x5690c6f7, 797 0x5690c6f7,
796 0x68d1c60a, 798 0x68d1c60a,
797 0x2e808386, 799 0x2e808386,
@@ -802,12 +804,12 @@ const uint32_t m[] = {
802 0x56c287e5, 804 0x56c287e5,
803 0x240057c2, 805 0x240057c2,
804 0x56c287e8, 806 0x56c287e8,
805 0x2102f500, 807 0x2102f700,
806 0x5691c6f7, 808 0x5691c6f7,
807 0xc9006905, 809 0xc9006905,
808 0xc9007203, 810 0xc9007203,
809 0x10323252, 811 0x10323252,
810 0x2102fd00, 812 0x2102ff00,
811 0xd1016904, 813 0xd1016904,
812 0xc9017203, 814 0xc9017203,
813 0x10121252, 815 0x10121252,
@@ -904,17 +906,43 @@ const uint32_t m[] = {
904 0x01010303, 906 0x01010303,
905 0x01202323, 907 0x01202323,
906 0x0120e0e0, 908 0x0120e0e0,
907 0x21033e00, 909 0x21034000,
908 0x209e0000, 910 0x209e0000,
909 0x2104e800, 911 0x24000d04,
912 0x2f000184,
913 0x61049414,
914 0x240361e4,
915 0x050494c4,
916 0x24001885,
917 0x2f000384,
918 0x24000004,
919 0x2f000184,
920 0x2e808186,
921 0x240c20e4,
922 0x240400e5,
923 0x2f000384,
924 0xc905ff00,
925 0xd106ff00,
926 0x91182880,
927 0x68e6e006,
928 0x81090836,
929 0x241023e4,
930 0x24000744,
931 0x2f000384,
932 0x21001200,
933 0x24002404,
934 0x2f000184,
935 0x1f1ffcfc,
936 0x21001200,
937 0x21050400,
910 0x2400129e, 938 0x2400129e,
911 0xc9075602, 939 0xc9075602,
912 0x2106ed00, 940 0x21070900,
913 0xd1055603, 941 0xd1055603,
914 0xd1065604, 942 0xd1065604,
915 0x21006400, 943 0x21006400,
916 0xd3007d4b, 944 0xd3007d4b,
917 0x21049500, 945 0x2104b100,
918 0x24000104, 946 0x24000104,
919 0x240018c4, 947 0x240018c4,
920 0x2f000184, 948 0x2f000184,
@@ -933,7 +961,7 @@ const uint32_t m[] = {
933 0x01048c8c, 961 0x01048c8c,
934 0x68006c03, 962 0x68006c03,
935 0x490a4c02, 963 0x490a4c02,
936 0x21037800, 964 0x21039400,
937 0x21006400, 965 0x21006400,
938 0x51004c0e, 966 0x51004c0e,
939 0x908c2186, 967 0x908c2186,
@@ -950,7 +978,7 @@ const uint32_t m[] = {
950 0x51136665, 978 0x51136665,
951 0x21006400, 979 0x21006400,
952 0x24000067, 980 0x24000067,
953 0x21038900, 981 0x2103a500,
954 0x908c2187, 982 0x908c2187,
955 0xc9065403, 983 0xc9065403,
956 0x0496d7d7, 984 0x0496d7d7,
@@ -988,7 +1016,7 @@ const uint32_t m[] = {
988 0x24000d04, 1016 0x24000d04,
989 0x2f000384, 1017 0x2f000384,
990 0x09034737, 1018 0x09034737,
991 0x2106ed00, 1019 0x21070900,
992 0xc9026705, 1020 0xc9026705,
993 0x91090762, 1021 0x91090762,
994 0x110f0202, 1022 0x110f0202,
@@ -1010,7 +1038,7 @@ const uint32_t m[] = {
1010 0xc9046704, 1038 0xc9046704,
1011 0x4e9688b7, 1039 0x4e9688b7,
1012 0x04889688, 1040 0x04889688,
1013 0x2103c500, 1041 0x2103e100,
1014 0x00968888, 1042 0x00968888,
1015 0x014088c0, 1043 0x014088c0,
1016 0xd106ff00, 1044 0xd106ff00,
@@ -1025,7 +1053,7 @@ const uint32_t m[] = {
1025 0x69006104, 1053 0x69006104,
1026 0x0b032e2e, 1054 0x0b032e2e,
1027 0x24000641, 1055 0x24000641,
1028 0x2103d500, 1056 0x2103f100,
1029 0x0b030e2e, 1057 0x0b030e2e,
1030 0x24000441, 1058 0x24000441,
1031 0x09012e4e, 1059 0x09012e4e,
@@ -1047,7 +1075,7 @@ const uint32_t m[] = {
1047 0x24006004, 1075 0x24006004,
1048 0x044181c4, 1076 0x044181c4,
1049 0x2f000384, 1077 0x2f000384,
1050 0x21037800, 1078 0x21039400,
1051 0x908c6187, 1079 0x908c6187,
1052 0x01088c8c, 1080 0x01088c8c,
1053 0x05014c4c, 1081 0x05014c4c,
@@ -1059,7 +1087,7 @@ const uint32_t m[] = {
1059 0x69002704, 1087 0x69002704,
1060 0x0b032e2e, 1088 0x0b032e2e,
1061 0x24000641, 1089 0x24000641,
1062 0x2103f700, 1090 0x21041300,
1063 0x0b030e2e, 1091 0x0b030e2e,
1064 0x24000441, 1092 0x24000441,
1065 0x09012e4e, 1093 0x09012e4e,
@@ -1074,13 +1102,13 @@ const uint32_t m[] = {
1074 0x24000874, 1102 0x24000874,
1075 0x10888895, 1103 0x10888895,
1076 0x10484855, 1104 0x10484855,
1077 0x21037800, 1105 0x21039400,
1078 0x908c2187, 1106 0x908c2187,
1079 0x01048c8c, 1107 0x01048c8c,
1080 0x05014c4c, 1108 0x05014c4c,
1081 0xd1006703, 1109 0xd1006703,
1082 0x00964747, 1110 0x00964747,
1083 0x21040b00, 1111 0x21042700,
1084 0x0407d747, 1112 0x0407d747,
1085 0x014047c0, 1113 0x014047c0,
1086 0xd106ff00, 1114 0xd106ff00,
@@ -1098,7 +1126,7 @@ const uint32_t m[] = {
1098 0x01202720, 1126 0x01202720,
1099 0xc907ff00, 1127 0xc907ff00,
1100 0x8e20c70e, 1128 0x8e20c70e,
1101 0x21037800, 1129 0x21039400,
1102 0x05044600, 1130 0x05044600,
1103 0x9e8cc107, 1131 0x9e8cc107,
1104 0x01048cc0, 1132 0x01048cc0,
@@ -1112,7 +1140,7 @@ const uint32_t m[] = {
1112 0x107878c4, 1140 0x107878c4,
1113 0x2f000384, 1141 0x2f000384,
1114 0x107878cd, 1142 0x107878cd,
1115 0x21044200, 1143 0x21045e00,
1116 0x00964747, 1144 0x00964747,
1117 0x4e47cd4d, 1145 0x4e47cd4d,
1118 0x24000004, 1146 0x24000004,
@@ -1127,16 +1155,16 @@ const uint32_t m[] = {
1127 0x04cd7500, 1155 0x04cd7500,
1128 0x70270003, 1156 0x70270003,
1129 0x04277575, 1157 0x04277575,
1130 0x21043a00, 1158 0x21045600,
1131 0x04007575, 1159 0x04007575,
1132 0x0027cdcd, 1160 0x0027cdcd,
1133 0x04270d0d, 1161 0x04270d0d,
1134 0x21037800, 1162 0x21039400,
1135 0xd1006705, 1163 0xd1006705,
1136 0x10272700, 1164 0x10272700,
1137 0x9ec0c10e, 1165 0x9ec0c10e,
1138 0x2f00be0e, 1166 0x2f00be0e,
1139 0x21037800, 1167 0x21039400,
1140 0x240004c5, 1168 0x240004c5,
1141 0x24200085, 1169 0x24200085,
1142 0x24003704, 1170 0x24003704,
@@ -1161,11 +1189,11 @@ const uint32_t m[] = {
1161 0x00279696, 1189 0x00279696,
1162 0x04789696, 1190 0x04789696,
1163 0x10272778, 1191 0x10272778,
1164 0x21037800, 1192 0x21039400,
1165 0x60cd7502, 1193 0x60cd7502,
1166 0x00277575, 1194 0x00277575,
1167 0x00270d0d, 1195 0x00270d0d,
1168 0x21037800, 1196 0x21039400,
1169 0x05014c4c, 1197 0x05014c4c,
1170 0x6f00cd18, 1198 0x6f00cd18,
1171 0x109696cd, 1199 0x109696cd,
@@ -1173,7 +1201,7 @@ const uint32_t m[] = {
1173 0x24000104, 1201 0x24000104,
1174 0x109696c4, 1202 0x109696c4,
1175 0x2f000384, 1203 0x2f000384,
1176 0x21037800, 1204 0x21039400,
1177 0x05014c4c, 1205 0x05014c4c,
1178 0x4ed7cd10, 1206 0x4ed7cd10,
1179 0x24000004, 1207 0x24000004,
@@ -1183,14 +1211,14 @@ const uint32_t m[] = {
1183 0x24000104, 1211 0x24000104,
1184 0x04d789c4, 1212 0x04d789c4,
1185 0x2f000384, 1213 0x2f000384,
1186 0x21037800, 1214 0x21039400,
1187 0x05014c4c, 1215 0x05014c4c,
1188 0x108686d0, 1216 0x108686d0,
1189 0x10d7d790, 1217 0x10d7d790,
1190 0x2304cb9e, 1218 0x2304e79e,
1191 0x21037800, 1219 0x21039400,
1192 0x09032637, 1220 0x09032637,
1193 0x2106ed00, 1221 0x21070900,
1194 0x908ca187, 1222 0x908ca187,
1195 0x010c8c8c, 1223 0x010c8c8c,
1196 0x05014c4c, 1224 0x05014c4c,
@@ -1284,24 +1312,24 @@ const uint32_t m[] = {
1284 0x90c77d88, 1312 0x90c77d88,
1285 0xd10ec603, 1313 0xd10ec603,
1286 0x0101e9e9, 1314 0x0101e9e9,
1287 0x2104d700, 1315 0x2104f300,
1288 0x0090e9e9, 1316 0x0090e9e9,
1289 0x0300e8e8, 1317 0x0300e8e8,
1290 0x80c77d88, 1318 0x80c77d88,
1291 0x2104e300, 1319 0x2104ff00,
1292 0x048ad081, 1320 0x048ad081,
1293 0x090281c7, 1321 0x090281c7,
1294 0x0087c7c7, 1322 0x0087c7c7,
1295 0x90c73d88, 1323 0x90c73d88,
1296 0xd10ec603, 1324 0xd10ec603,
1297 0x0101e8e8, 1325 0x0101e8e8,
1298 0x2104e200, 1326 0x2104fe00,
1299 0x0090e8e8, 1327 0x0090e8e8,
1300 0x80c73d88, 1328 0x80c73d88,
1301 0xd10fc604, 1329 0xd10fc604,
1302 0x10c6c6d0, 1330 0x10c6c6d0,
1303 0x110f7070, 1331 0x110f7070,
1304 0x2104cd00, 1332 0x2104e900,
1305 0x209e0000, 1333 0x209e0000,
1306 0x240000da, 1334 0x240000da,
1307 0x10898980, 1335 0x10898980,
@@ -1313,7 +1341,7 @@ const uint32_t m[] = {
1313 0x51ce4704, 1341 0x51ce4704,
1314 0x240001e6, 1342 0x240001e6,
1315 0x2f008186, 1343 0x2f008186,
1316 0x21050300, 1344 0x21051f00,
1317 0x2400005a, 1345 0x2400005a,
1318 0x5103670d, 1346 0x5103670d,
1319 0x5104670d, 1347 0x5104670d,
@@ -1327,9 +1355,9 @@ const uint32_t m[] = {
1327 0x53076752, 1355 0x53076752,
1328 0x240002e6, 1356 0x240002e6,
1329 0x2f008186, 1357 0x2f008186,
1330 0x21050300, 1358 0x21051f00,
1331 0x21070f00, 1359 0x21072b00,
1332 0x21071400, 1360 0x21073000,
1333 0x69062915, 1361 0x69062915,
1334 0x91082481, 1362 0x91082481,
1335 0x0101e1e1, 1363 0x0101e1e1,
@@ -1348,7 +1376,7 @@ const uint32_t m[] = {
1348 0x2400f024, 1376 0x2400f024,
1349 0x91001761, 1377 0x91001761,
1350 0x59030002, 1378 0x59030002,
1351 0x2307179e, 1379 0x2307339e,
1352 0x2f000384, 1380 0x2f000384,
1353 0x21001200, 1381 0x21001200,
1354 0x240021e4, 1382 0x240021e4,
@@ -1357,7 +1385,7 @@ const uint32_t m[] = {
1357 0x59388004, 1385 0x59388004,
1358 0x240010e6, 1386 0x240010e6,
1359 0x2f008186, 1387 0x2f008186,
1360 0x21050300, 1388 0x21051f00,
1361 0x240000e6, 1389 0x240000e6,
1362 0x2f008186, 1390 0x2f008186,
1363 0x2e80878a, 1391 0x2e80878a,
@@ -1449,7 +1477,7 @@ const uint32_t m[] = {
1449 0xe10c2281, 1477 0xe10c2281,
1450 0x240050e2, 1478 0x240050e2,
1451 0xe10c2281, 1479 0xe10c2281,
1452 0x21050300, 1480 0x21051f00,
1453 0x240000e6, 1481 0x240000e6,
1454 0x2f008186, 1482 0x2f008186,
1455 0x2e80838a, 1483 0x2e80838a,
@@ -1459,22 +1487,22 @@ const uint32_t m[] = {
1459 0x58c08004, 1487 0x58c08004,
1460 0x240010e6, 1488 0x240010e6,
1461 0x2f008186, 1489 0x2f008186,
1462 0x21050300, 1490 0x21051f00,
1463 0x240018c4, 1491 0x240018c4,
1464 0x2f000384, 1492 0x2f000384,
1465 0x2105e900, 1493 0x21060500,
1466 0x240014c4, 1494 0x240014c4,
1467 0x2f000384, 1495 0x2f000384,
1468 0x69016a17, 1496 0x69016a17,
1469 0x593c8004, 1497 0x593c8004,
1470 0x240010e6, 1498 0x240010e6,
1471 0x1f007a7a, 1499 0x1f007a7a,
1472 0x21050300, 1500 0x21051f00,
1473 0x2e80838e, 1501 0x2e80838e,
1474 0x71046e04, 1502 0x71046e04,
1475 0x240011e6, 1503 0x240011e6,
1476 0x1f007a7a, 1504 0x1f007a7a,
1477 0x21050300, 1505 0x21051f00,
1478 0x09056e81, 1506 0x09056e81,
1479 0x09036ec1, 1507 0x09036ec1,
1480 0x00c18181, 1508 0x00c18181,
@@ -1487,27 +1515,27 @@ const uint32_t m[] = {
1487 0x8281f38e, 1515 0x8281f38e,
1488 0x240020c4, 1516 0x240020c4,
1489 0x2f000384, 1517 0x2f000384,
1490 0x21050300, 1518 0x21051f00,
1491 0x69026a0e, 1519 0x69026a0e,
1492 0x59248004, 1520 0x59248004,
1493 0x240010e6, 1521 0x240010e6,
1494 0x1f007a7a, 1522 0x1f007a7a,
1495 0x21050300, 1523 0x21051f00,
1496 0x2e80878e, 1524 0x2e80878e,
1497 0x71106e04, 1525 0x71106e04,
1498 0x240012e6, 1526 0x240012e6,
1499 0x1f007a7a, 1527 0x1f007a7a,
1500 0x21050300, 1528 0x21051f00,
1501 0x09046e81, 1529 0x09046e81,
1502 0x01008181, 1530 0x01008181,
1503 0x8081fa8e, 1531 0x8081fa8e,
1504 0x21050300, 1532 0x21051f00,
1505 0x69086a1b, 1533 0x69086a1b,
1506 0x24004cc0, 1534 0x24004cc0,
1507 0x58c08004, 1535 0x58c08004,
1508 0x240010e6, 1536 0x240010e6,
1509 0x1f007a7a, 1537 0x1f007a7a,
1510 0x21050300, 1538 0x21051f00,
1511 0x2e808b8e, 1539 0x2e808b8e,
1512 0x240100c2, 1540 0x240100c2,
1513 0x51006e12, 1541 0x51006e12,
@@ -1527,14 +1555,14 @@ const uint32_t m[] = {
1527 0x2f000184, 1555 0x2f000184,
1528 0x2e80898f, 1556 0x2e80898f,
1529 0x05016e6e, 1557 0x05016e6e,
1530 0x2105b700, 1558 0x2105d300,
1531 0x21050300, 1559 0x21051f00,
1532 0x69096a1c, 1560 0x69096a1c,
1533 0x2400b0c0, 1561 0x2400b0c0,
1534 0x58c08004, 1562 0x58c08004,
1535 0x240010e6, 1563 0x240010e6,
1536 0x1f007a7a, 1564 0x1f007a7a,
1537 0x21050300, 1565 0x21051f00,
1538 0x2e808d8e, 1566 0x2e808d8e,
1539 0x240200c2, 1567 0x240200c2,
1540 0x51006e13, 1568 0x51006e13,
@@ -1550,16 +1578,16 @@ const uint32_t m[] = {
1550 0x8082fe91, 1578 0x8082fe91,
1551 0x01108282, 1579 0x01108282,
1552 0x05014e4e, 1580 0x05014e4e,
1553 0x2105d800, 1581 0x2105f400,
1554 0x240018c4, 1582 0x240018c4,
1555 0x2f000184, 1583 0x2f000184,
1556 0x2e808b8f, 1584 0x2e808b8f,
1557 0x05016e6e, 1585 0x05016e6e,
1558 0x2105d200, 1586 0x2105ee00,
1559 0x21050300, 1587 0x21051f00,
1560 0x240002e6, 1588 0x240002e6,
1561 0x1f007a7a, 1589 0x1f007a7a,
1562 0x21050300, 1590 0x21051f00,
1563 0x240000e1, 1591 0x240000e1,
1564 0x240010c4, 1592 0x240010c4,
1565 0x2e80878e, 1593 0x2e80878e,
@@ -1569,7 +1597,7 @@ const uint32_t m[] = {
1569 0x01010101, 1597 0x01010101,
1570 0x0110c1c1, 1598 0x0110c1c1,
1571 0x671f01fa, 1599 0x671f01fa,
1572 0x21050300, 1600 0x21051f00,
1573 0x2e80818a, 1601 0x2e80818a,
1574 0x24000004, 1602 0x24000004,
1575 0x240014c4, 1603 0x240014c4,
@@ -1596,7 +1624,7 @@ const uint32_t m[] = {
1596 0x10e2e2e5, 1624 0x10e2e2e5,
1597 0x2f000384, 1625 0x2f000384,
1598 0x9083e286, 1626 0x9083e286,
1599 0x21050300, 1627 0x21051f00,
1600 0xc9016a06, 1628 0xc9016a06,
1601 0x240037e4, 1629 0x240037e4,
1602 0x240008c4, 1630 0x240008c4,
@@ -1615,7 +1643,7 @@ const uint32_t m[] = {
1615 0x0140e2e2, 1643 0x0140e2e2,
1616 0x6ee1e2fe, 1644 0x6ee1e2fe,
1617 0x9083e286, 1645 0x9083e286,
1618 0x21050300, 1646 0x21051f00,
1619 0x91b0338b, 1647 0x91b0338b,
1620 0x608acb2c, 1648 0x608acb2c,
1621 0x24000004, 1649 0x24000004,
@@ -1625,7 +1653,7 @@ const uint32_t m[] = {
1625 0x51008b04, 1653 0x51008b04,
1626 0x24000800, 1654 0x24000800,
1627 0x09038bd0, 1655 0x09038bd0,
1628 0x21062c00, 1656 0x21064800,
1629 0x24000400, 1657 0x24000400,
1630 0x2e80818e, 1658 0x2e80818e,
1631 0x2f000184, 1659 0x2f000184,
@@ -1643,12 +1671,12 @@ const uint32_t m[] = {
1643 0x0b018181, 1671 0x0b018181,
1644 0x0081d08f, 1672 0x0081d08f,
1645 0x24000400, 1673 0x24000400,
1646 0x21062c00, 1674 0x21064800,
1647 0x1081818f, 1675 0x1081818f,
1648 0x21062c00, 1676 0x21064800,
1649 0x090220c0, 1677 0x090220c0,
1650 0x00c08f8f, 1678 0x00c08f8f,
1651 0x21062c00, 1679 0x21064800,
1652 0xc830ee04, 1680 0xc830ee04,
1653 0x8e8fdd12, 1681 0x8e8fdd12,
1654 0x1c30eeee, 1682 0x1c30eeee,
@@ -1660,8 +1688,8 @@ const uint32_t m[] = {
1660 0x00008f8f, 1688 0x00008f8f,
1661 0x6ed08fe4, 1689 0x6ed08fe4,
1662 0x24000400, 1690 0x24000400,
1663 0x21062f00, 1691 0x21064b00,
1664 0x21050300, 1692 0x21051f00,
1665 0x24000004, 1693 0x24000004,
1666 0x240010c4, 1694 0x240010c4,
1667 0x2f000384, 1695 0x2f000384,
@@ -1670,17 +1698,17 @@ const uint32_t m[] = {
1670 0x2f000384, 1698 0x2f000384,
1671 0x9100b78e, 1699 0x9100b78e,
1672 0x2f00858e, 1700 0x2f00858e,
1673 0x21050300, 1701 0x21051f00,
1674 0x240054c0, 1702 0x240054c0,
1675 0x58c08004, 1703 0x58c08004,
1676 0x240010e6, 1704 0x240010e6,
1677 0x2f008186, 1705 0x2f008186,
1678 0x21050300, 1706 0x21051f00,
1679 0x2e80818a, 1707 0x2e80818a,
1680 0x71206a04, 1708 0x71206a04,
1681 0x24000ee6, 1709 0x24000ee6,
1682 0x2f008186, 1710 0x2f008186,
1683 0x21050300, 1711 0x21051f00,
1684 0x2eff8f8e, 1712 0x2eff8f8e,
1685 0x09066ac2, 1713 0x09066ac2,
1686 0x69004a14, 1714 0x69004a14,
@@ -1702,12 +1730,12 @@ const uint32_t m[] = {
1702 0x09036060, 1730 0x09036060,
1703 0x2e80bf8e, 1731 0x2e80bf8e,
1704 0x82c2f68e, 1732 0x82c2f68e,
1705 0x21050300, 1733 0x21051f00,
1706 0x69014a05, 1734 0x69014a05,
1707 0x82c2f68e, 1735 0x82c2f68e,
1708 0x0120c2c2, 1736 0x0120c2c2,
1709 0x82c2f68e, 1737 0x82c2f68e,
1710 0x21050300, 1738 0x21051f00,
1711 0x69024a0c, 1739 0x69024a0c,
1712 0x24000004, 1740 0x24000004,
1713 0x240014c4, 1741 0x240014c4,
@@ -1719,21 +1747,21 @@ const uint32_t m[] = {
1719 0x24660085, 1747 0x24660085,
1720 0x00c2e5e5, 1748 0x00c2e5e5,
1721 0x2f000384, 1749 0x2f000384,
1722 0x21050300, 1750 0x21051f00,
1723 0x24000fe6, 1751 0x24000fe6,
1724 0x2f008186, 1752 0x2f008186,
1725 0x21050300, 1753 0x21051f00,
1726 0x240014c0, 1754 0x240014c0,
1727 0x58c08004, 1755 0x58c08004,
1728 0x240010e6, 1756 0x240010e6,
1729 0x2f008186, 1757 0x2f008186,
1730 0x21050300, 1758 0x21051f00,
1731 0x2e80818a, 1759 0x2e80818a,
1732 0x91b0338b, 1760 0x91b0338b,
1733 0x70cb8a04, 1761 0x70cb8a04,
1734 0x240014e6, 1762 0x240014e6,
1735 0x2f008186, 1763 0x2f008186,
1736 0x21050300, 1764 0x21051f00,
1737 0xc9006a08, 1765 0xc9006a08,
1738 0x24040082, 1766 0x24040082,
1739 0x240800c2, 1767 0x240800c2,
@@ -1754,12 +1782,12 @@ const uint32_t m[] = {
1754 0x80c200ce, 1782 0x80c200ce,
1755 0x05018a8a, 1783 0x05018a8a,
1756 0x2f000384, 1784 0x2f000384,
1757 0x2106a400, 1785 0x2106c000,
1758 0x240058c0, 1786 0x240058c0,
1759 0x58c08004, 1787 0x58c08004,
1760 0x240010e6, 1788 0x240010e6,
1761 0x2f008186, 1789 0x2f008186,
1762 0x21050300, 1790 0x21051f00,
1763 0x2e80838a, 1791 0x2e80838a,
1764 0x106a6a24, 1792 0x106a6a24,
1765 0x10ebebe5, 1793 0x10ebebe5,
@@ -1789,18 +1817,18 @@ const uint32_t m[] = {
1789 0x01040101, 1817 0x01040101,
1790 0x01012424, 1818 0x01012424,
1791 0x671024fc, 1819 0x671024fc,
1792 0x21050300, 1820 0x21051f00,
1793 0x240090c0, 1821 0x240090c0,
1794 0x58c08004, 1822 0x58c08004,
1795 0x240010e6, 1823 0x240010e6,
1796 0x2f008186, 1824 0x2f008186,
1797 0x21050300, 1825 0x21051f00,
1798 0x2e80818a, 1826 0x2e80818a,
1799 0x91ac338b, 1827 0x91ac338b,
1800 0x606b6a04, 1828 0x606b6a04,
1801 0x240013e6, 1829 0x240013e6,
1802 0x2f008186, 1830 0x2f008186,
1803 0x21050300, 1831 0x21051f00,
1804 0x09066a81, 1832 0x09066a81,
1805 0x69804b02, 1833 0x69804b02,
1806 0x09018181, 1834 0x09018181,
@@ -1819,7 +1847,7 @@ const uint32_t m[] = {
1819 0x4f2040fb, 1847 0x4f2040fb,
1820 0x2e80bf0e, 1848 0x2e80bf0e,
1821 0x8e81e10e, 1849 0x8e81e10e,
1822 0x21050300, 1850 0x21051f00,
1823 0x0b033700, 1851 0x0b033700,
1824 0x11073737, 1852 0x11073737,
1825 0x111f7676, 1853 0x111f7676,
@@ -1853,15 +1881,15 @@ const uint32_t m[] = {
1853 0x24000804, 1881 0x24000804,
1854 0x2f000384, 1882 0x2f000384,
1855 0x570800e9, 1883 0x570800e9,
1856 0x2106f400, 1884 0x21071000,
1857 0x2e80838a, 1885 0x2e80838a,
1858 0xc9022a04, 1886 0xc9022a04,
1859 0x240000e1, 1887 0x240000e1,
1860 0xe1342181, 1888 0xe1342181,
1861 0x21050300, 1889 0x21051f00,
1862 0x24000ce6, 1890 0x24000ce6,
1863 0x2f008186, 1891 0x2f008186,
1864 0x21050300, 1892 0x21051f00,
1865 0x209e0000 }; 1893 0x209e0000 };
1866 1894
1867const int mSize = sizeof(m); 1895const int mSize = sizeof(m);
diff --git a/fw/v0/parse1.p b/fw/v0/parse1.p
index 795ddbd..a722feb 100644
--- a/fw/v0/parse1.p
+++ b/fw/v0/parse1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ******************************************************************************** 35// ********************************************************************************
2// * FILE PURPOSE: Packet parsing functions 36// * FILE PURPOSE: Packet parsing functions
3// ******************************************************************************** 37// ********************************************************************************
@@ -1314,7 +1348,8 @@ l_c1Ipv6ExtReasm_exthdrCheck:
1314 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP 1348 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP
1315 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE 1349 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE
1316 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT 1350 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT
1317 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT 1351// below would save one cycle since jmp is to header done.
1352// qbeq l_c1Ipv6ExtReasm_exthdrDone, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT
1318 jmp l_c1Ipv6ExtReasm_exthdrDone 1353 jmp l_c1Ipv6ExtReasm_exthdrDone
1319 1354
1320l_c1Ipv6ExtReasm_exthdrNext: 1355l_c1Ipv6ExtReasm_exthdrNext:
diff --git a/fw/v0/parsescope.h b/fw/v0/parsescope.h
index da88533..da40fbb 100644
--- a/fw/v0/parsescope.h
+++ b/fw/v0/parsescope.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PARSESCOPE_H 36#ifndef _PARSESCOPE_H
2#define _PARSESCOPE_H 1 37#define _PARSESCOPE_H 1
3 38
@@ -396,6 +431,7 @@
396 .assign struct_ipFragCmd, r22, r22, s_ipFrag // Must match with s_msg 431 .assign struct_ipFragCmd, r22, r22, s_ipFrag // Must match with s_msg
397 .assign struct_patchMsgLenCmd, r22, r22, s_patchMsgLenCmd// Must match with s_msg 432 .assign struct_patchMsgLenCmd, r22, r22, s_patchMsgLenCmd// Must match with s_msg
398 .assign struct_patchMsgLen, r22, r22, s_patchMsgLen3 // Must match with s_msg 433 .assign struct_patchMsgLen, r22, r22, s_patchMsgLen3 // Must match with s_msg
434 .assign struct_emacCrcVerifyCmd, r22, r22, s_emacCrcVerify // Must match with s_msg
399 .assign struct_modifyState, r20, r21, s_modState 435 .assign struct_modifyState, r20, r21, s_modState
400 .assign struct_modifyState2, r20, r21, s_modState2 436 .assign struct_modifyState2, r20, r21, s_modState2
401 .assign struct_nextRouteStub, r19, r19, s_nRouteStub 437 .assign struct_nextRouteStub, r19, r19, s_nRouteStub
diff --git a/fw/v0/pdsp_ethproto.h b/fw/v0/pdsp_ethproto.h
index 7ae588c..e8530e6 100644
--- a/fw/v0/pdsp_ethproto.h
+++ b/fw/v0/pdsp_ethproto.h
@@ -1,65 +1,100 @@
1#ifndef _PDSP_ETHPROTO_H 1//
2#define _PDSP_ETHPROTO_H 1 2// *
3// ************************************************************************************** 3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// * FILE PURPOSE: Provide ethernet header definitions 4// *
5// ************************************************************************************** 5// *
6// * FILE NAME: pdsp_ethproto.h 6// * Redistribution and use in source and binary forms, with or without
7// * 7// * modification, are permitted provided that the following conditions
8// * DESCRIPTION: Ethernet header definitions 8// * are met:
9// * 9// *
10// ************************************************************************************** 10// * Redistributions of source code must retain the above copyright
11 11// * notice, this list of conditions and the following disclaimer.
12// Ethertypes 12// *
13#define ETH_TAG_VLAN 0x8100 13// * Redistributions in binary form must reproduce the above copyright
14#define ETH_TAG_SP_OUTER_VLAN 0x88a8 // 802.1ad - service provider outer vlan tag 14// * notice, this list of conditions and the following disclaimer in the
15#define ETH_TYPE_IP 0x0800 15// * documentation and/or other materials provided with the
16#define ETH_TYPE_IPV6 0x86dd 16// * distribution.
17#define ETH_TYPE_MPLS 0x8847 17// *
18#define ETH_TYPE_MPLS_MULTI 0x8848 18// * Neither the name of Texas Instruments Incorporated nor the names of
19#define ETH_TYPE_PPPoE_DISCOVER 0x8863 19// * its contributors may be used to endorse or promote products derived
20#define ETH_TYPE_PPPoE_SESSION 0x8864 20// * from this software without specific prior written permission.
21#define ETH_TYPE_802_1AG 0x8902 21// *
22 22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// Dest/Source MAC address used during parse 23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24.struct struct_MacAddr 24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 .u16 DstAddr_01 25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 .u16 DstAddr_23 26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 .u16 DstAddr_45 27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 .u16 SrcAddr_01 28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 .u16 SrcAddr_23 29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 .u16 SrcAddr_45 30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31.ends 31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// MAC Multicast indication bit: b0 of MSB 33// *
34#define t_eth_multicast_ind t8 34// *
35 35
36// Ethertype tag/length llc/snap used during parse 36#ifndef _PDSP_ETHPROTO_H
37.struct struct_tagOrLen 37#define _PDSP_ETHPROTO_H 1
38 .u16 len 38// **************************************************************************************
39 .u8 dsap 39// * FILE PURPOSE: Provide ethernet header definitions
40 .u8 asap 40// **************************************************************************************
41 .u8 ctrl 41// * FILE NAME: pdsp_ethproto.h
42 .u8 oui_0 // Organizationally unique identifier 42// *
43 .u8 oui_1 43// * DESCRIPTION: Ethernet header definitions
44 .u8 oui_2 44// *
45 .u16 etype2 45// **************************************************************************************
46 .u16 rsvd 46
47.ends 47// Ethertypes
48 48#define ETH_TAG_VLAN 0x8100
49.struct struct_vtag 49#define ETH_TAG_SP_OUTER_VLAN 0x88a8 // 802.1ad - service provider outer vlan tag
50 .u16 tag 50#define ETH_TYPE_IP 0x0800
51 .u16 rsvd 51#define ETH_TYPE_IPV6 0x86dd
52.ends 52#define ETH_TYPE_MPLS 0x8847
53 53#define ETH_TYPE_MPLS_MULTI 0x8848
54#define VLAN_PCP_SHIFT 13 54#define ETH_TYPE_PPPoE_DISCOVER 0x8863
55#define VLAN_CFI_SHIFT 12 55#define ETH_TYPE_PPPoE_SESSION 0x8864
56#define VLAN_PCP_MASK 0x07 56#define ETH_TYPE_802_1AG 0x8902
57#define VLAN_CFI_MASK 0x01 57
58#define VLAN_VID_SHIFT 0 58// Dest/Source MAC address used during parse
59#define VLAN_VID_MASK 0x0FFF 59.struct struct_MacAddr
60#define VLAN_VID_B1_MASK 0x0F 60 .u16 DstAddr_01
61 61 .u16 DstAddr_23
62 62 .u16 DstAddr_45
63#endif // _PDSP_ETHPROTO_H 63 .u16 SrcAddr_01
64 64 .u16 SrcAddr_23
65 65 .u16 SrcAddr_45
66.ends
67
68// MAC Multicast indication bit: b0 of MSB
69#define t_eth_multicast_ind t8
70
71// Ethertype tag/length llc/snap used during parse
72.struct struct_tagOrLen
73 .u16 len
74 .u8 dsap
75 .u8 asap
76 .u8 ctrl
77 .u8 oui_0 // Organizationally unique identifier
78 .u8 oui_1
79 .u8 oui_2
80 .u16 etype2
81 .u16 rsvd
82.ends
83
84.struct struct_vtag
85 .u16 tag
86 .u16 rsvd
87.ends
88
89#define VLAN_PCP_SHIFT 13
90#define VLAN_CFI_SHIFT 12
91#define VLAN_PCP_MASK 0x07
92#define VLAN_CFI_MASK 0x01
93#define VLAN_VID_SHIFT 0
94#define VLAN_VID_MASK 0x0FFF
95#define VLAN_VID_B1_MASK 0x0F
96
97
98#endif // _PDSP_ETHPROTO_H
99
100
diff --git a/fw/v0/pdsp_ipproto.h b/fw/v0/pdsp_ipproto.h
index a534512..ec59979 100644
--- a/fw/v0/pdsp_ipproto.h
+++ b/fw/v0/pdsp_ipproto.h
@@ -1,157 +1,192 @@
1#ifndef _PDSP_IPPROTO_H 1//
2#define _PDSP_IPPROTO_H 1 2// *
3// ****************************************************************************** 3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// * FILE PURPOSE: IP header definitions 4// *
5// ****************************************************************************** 5// *
6// * FILE NAME: pdsp_ipproto.h 6// * Redistribution and use in source and binary forms, with or without
7// * 7// * modification, are permitted provided that the following conditions
8// * DESCRIPTION: Defines values used for ipv4 and ipv6 parsing 8// * are met:
9// * 9// *
10// ****************************************************************************** 10// * Redistributions of source code must retain the above copyright
11 11// * notice, this list of conditions and the following disclaimer.
12 12// *
13// Ipv4 13// * Redistributions in binary form must reproduce the above copyright
14.struct struct_Ip 14// * notice, this list of conditions and the following disclaimer in the
15 .u8 VerLen 15// * documentation and/or other materials provided with the
16 .u8 Tos 16// * distribution.
17 .u16 TotalLen 17// *
18 .u16 Id 18// * Neither the name of Texas Instruments Incorporated nor the names of
19 .u16 FragOff 19// * its contributors may be used to endorse or promote products derived
20 .u8 Ttl 20// * from this software without specific prior written permission.
21 .u8 Protocol 21// *
22 .u16 Checksum 22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 .u32 SrcIp 23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 .u32 DstIp 24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25.ends 25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27#define IPV4_MIN_HDR_SIZE 20 27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28#define IPV4_FRAG_MASK 0x3fff 28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29#define t_ipv4_frag_df t14 // Don't not flag 29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30#define t_ipv4_frag_m t13 // more fragments 30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33.struct struct_IpOpt 33// *
34 .u8 opt 34// *
35 .u8 len 35
36 .u8 pointer 36#ifndef _PDSP_IPPROTO_H
37 .u8 rsvd 37#define _PDSP_IPPROTO_H 1
38.ends 38// ******************************************************************************
39 39// * FILE PURPOSE: IP header definitions
40.struct struct_Ipv6a 40// ******************************************************************************
41 .u32 ver_tclass_flow 41// * FILE NAME: pdsp_ipproto.h
42 .u16 payloadLen 42// *
43 .u8 next 43// * DESCRIPTION: Defines values used for ipv4 and ipv6 parsing
44 .u8 hopLimit 44// *
45.ends 45// ******************************************************************************
46 46
47.struct struct_Ipv6b 47
48 .u32 srcIp_0 48// Ipv4
49 .u32 srcIp_1 49.struct struct_Ip
50 .u32 srcIp_2 50 .u8 VerLen
51 .u32 srcIp_3 51 .u8 Tos
52 .u32 dstIp_0 52 .u16 TotalLen
53 .u32 dstIp_1 53 .u16 Id
54 .u32 dstIp_2 54 .u16 FragOff
55 .u32 dstIp_3 55 .u8 Ttl
56.ends 56 .u8 Protocol
57 57 .u16 Checksum
58// IPV4 multicast 58 .u32 SrcIp
59// 224.0.0.0 - 239.255.255.255 59 .u32 DstIp
60#define IPV4_MULTICAST_START 224 60.ends
61#define IPV4_MULTICAST_END 239 61
62 62#define IPV4_MIN_HDR_SIZE 20
63//IPV6 multicast 63#define IPV4_FRAG_MASK 0x3fff
64// FF00::/8 64#define t_ipv4_frag_df t14 // Don't not flag
65#define IPV6_MULTICAST_ADDR_BYTE0 0xFF 65#define t_ipv4_frag_m t13 // more fragments
66#define IPV6_MULTICAST_ADDR_BYTE1 0x00 66
67 67
68 68.struct struct_IpOpt
69 69 .u8 opt
70 70 .u8 len
71// IPv4/IPV6 type identifiers 71 .u8 pointer
72#define IP_TYPE_IPV4 4 72 .u8 rsvd
73#define IP_TYPE_IPV6 6 73.ends
74 74
75// IPv4 options 75.struct struct_Ipv6a
76#define IPV4_OPT_MASK 0x1f 76 .u32 ver_tclass_flow
77#define IPV4_OPT_END_OF_LIST 0 77 .u16 payloadLen
78#define IPV4_OPT_NOP 1 78 .u8 next
79#define IPV4_OPT_LOOSE_SOURCE_ROUTE 3 79 .u8 hopLimit
80#define IPV4_OPT_STRICT_SOURCE_ROUTE 9 80.ends
81 81
82 82.struct struct_Ipv6b
83// Protocol field values (IPV4) / next header (IPV6) 83 .u32 srcIp_0
84#define IP_PROTO_NEXT_IPV6_HOP_BY_HOP 0 // IPv6 extension header - hop by hop 84 .u32 srcIp_1
85#define IP_PROTO_NEXT_IP_IN_IP 4 // IP tunneling 85 .u32 srcIp_2
86#define IP_PROTO_NEXT_TCP 6 86 .u32 srcIp_3
87#define IP_PROTO_NEXT_UDP 17 87 .u32 dstIp_0
88#define IP_PROTO_NEXT_IPV6_IN_IPV4 41 // IP tunneling 88 .u32 dstIp_1
89#define IP_PROTO_NEXT_IPV6_ROUTE 43 // IPv6 extension header - route 89 .u32 dstIp_2
90#define IP_PROTO_NEXT_IPV6_FRAG 44 // IPv6 extension header - fragmentation 90 .u32 dstIp_3
91#define IP_PROTO_NEXT_GRE 47 91.ends
92#define IP_PROTO_NEXT_ESP 50 // Encapsulating security payload 92
93#define IP_PROTO_NEXT_AUTH 51 // Authentication header (ipv4) 93// IPV4 multicast
94#define IP_PROTO_NEXT_IPV6_NO_NEXT 59 // IPv6 extention header - no next header 94// 224.0.0.0 - 239.255.255.255
95#define IP_PROTO_NEXT_IPV6_DEST_OPT 60 // IPv6 extension header - destination options 95#define IPV4_MULTICAST_START 224
96#define IP_PROTO_NEXT_SCTP 132 96#define IPV4_MULTICAST_END 239
97#define IP_PROTO_NEXT_UDP_LITE 136 97
98 98//IPV6 multicast
99 99// FF00::/8
100#define IPV6_HEADER_LEN_BYTES 40 100#define IPV6_MULTICAST_ADDR_BYTE0 0xFF
101 101#define IPV6_MULTICAST_ADDR_BYTE1 0x00
102// IPv6 hop by hop options 102
103#define IPV6_OPT_HOP_BY_HOP_OPT_PAD0 0 103
104#define IPV6_OPT_HOP_BY_HOP_OPT_PADN 1 104
105#define IPV6_OPT_HOP_BY_HOP_OPT_JUMBO 0xc2 105
106 106// IPv4/IPV6 type identifiers
107// Fixed length IPv6 extension header options 107#define IP_TYPE_IPV4 4
108#define IPV6_OPT_FRAG_EXTENSION_LEN_BYTES 8 108#define IP_TYPE_IPV6 6
109 109
110.struct struct_ipv6Opt 110// IPv4 options
111 .u8 proto 111#define IPV4_OPT_MASK 0x1f
112 .u8 optlen 112#define IPV4_OPT_END_OF_LIST 0
113.ends 113#define IPV4_OPT_NOP 1
114 114#define IPV4_OPT_LOOSE_SOURCE_ROUTE 3
115 115#define IPV4_OPT_STRICT_SOURCE_ROUTE 9
116.struct struct_ipv6ExtRt 116
117 .u8 proto 117
118 .u8 hdrlen 118// Protocol field values (IPV4) / next header (IPV6)
119 .u8 segsleft 119#define IP_PROTO_NEXT_IPV6_HOP_BY_HOP 0 // IPv6 extension header - hop by hop
120 .u8 rsvd 120#define IP_PROTO_NEXT_IP_IN_IP 4 // IP tunneling
121.ends 121#define IP_PROTO_NEXT_TCP 6
122 122#define IP_PROTO_NEXT_UDP 17
123// Least significant byte mask 123#define IP_PROTO_NEXT_IPV6_IN_IPV4 41 // IP tunneling
124#define IPV6_FRAG_MASK 0xf8 124#define IP_PROTO_NEXT_IPV6_ROUTE 43 // IPv6 extension header - route
125#define t_ipv6_frag_m t0 // more fragments 125#define IP_PROTO_NEXT_IPV6_FRAG 44 // IPv6 extension header - fragmentation
126 126#define IP_PROTO_NEXT_GRE 47
127.struct struct_ipv6Frag 127#define IP_PROTO_NEXT_ESP 50 // Encapsulating security payload
128 .u8 proto 128#define IP_PROTO_NEXT_AUTH 51 // Authentication header (ipv4)
129 .u8 rsvd1 129#define IP_PROTO_NEXT_IPV6_NO_NEXT 59 // IPv6 extention header - no next header
130 .u16 fragnFlag 130#define IP_PROTO_NEXT_IPV6_DEST_OPT 60 // IPv6 extension header - destination options
131 131#define IP_PROTO_NEXT_SCTP 132
132 .u32 id 132#define IP_PROTO_NEXT_UDP_LITE 136
133.ends 133
134 134
135 135#define IPV6_HEADER_LEN_BYTES 40
136.struct struct_esp 136
137 .u32 spi 137// IPv6 hop by hop options
138 138#define IPV6_OPT_HOP_BY_HOP_OPT_PAD0 0
139 // seq number (.u32) not read 139#define IPV6_OPT_HOP_BY_HOP_OPT_PADN 1
140.ends 140#define IPV6_OPT_HOP_BY_HOP_OPT_JUMBO 0xc2
141 141
142#define ESP_HEADER_LEN_BYTES 8 142// Fixed length IPv6 extension header options
143 143#define IPV6_OPT_FRAG_EXTENSION_LEN_BYTES 8
144 144
145.struct struct_ah 145.struct struct_ipv6Opt
146 .u8 proto 146 .u8 proto
147 .u8 len 147 .u8 optlen
148 .u16 rsvd 148.ends
149 149
150 .u32 spi 150
151 151.struct struct_ipv6ExtRt
152 .u32 seq 152 .u8 proto
153.ends 153 .u8 hdrlen
154 154 .u8 segsleft
155#define AH_HEADER_LEN32 3 155 .u8 rsvd
156 156.ends
157#endif // _PDSP_IPPROTO_H 157
158// Least significant byte mask
159#define IPV6_FRAG_MASK 0xf8
160#define t_ipv6_frag_m t0 // more fragments
161
162.struct struct_ipv6Frag
163 .u8 proto
164 .u8 rsvd1
165 .u16 fragnFlag
166
167 .u32 id
168.ends
169
170
171.struct struct_esp
172 .u32 spi
173
174 // seq number (.u32) not read
175.ends
176
177#define ESP_HEADER_LEN_BYTES 8
178
179
180.struct struct_ah
181 .u8 proto
182 .u8 len
183 .u16 rsvd
184
185 .u32 spi
186
187 .u32 seq
188.ends
189
190#define AH_HEADER_LEN32 3
191
192#endif // _PDSP_IPPROTO_H
diff --git a/fw/v0/pdsp_mem.h b/fw/v0/pdsp_mem.h
index 8561b74..b0266b5 100644
--- a/fw/v0/pdsp_mem.h
+++ b/fw/v0/pdsp_mem.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PA_MEM_H 36#ifndef _PA_MEM_H
2#define _PA_MEM_H 1 37#define _PA_MEM_H 1
3 38
diff --git a/fw/v0/pdsp_pa.h b/fw/v0/pdsp_pa.h
index fffe39c..7f9c23f 100644
--- a/fw/v0/pdsp_pa.h
+++ b/fw/v0/pdsp_pa.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_PA_H 36#ifndef _PDSP_PA_H
2#define _PDSP_PA_H 1 37#define _PDSP_PA_H 1
3 38
@@ -479,7 +514,7 @@
479#define t_nCommandFail t30 514#define t_nCommandFail t30
480 515
481// Common statistics 516// Common statistics
482#define t_nIdAllocationFail t31 // not used 517#define t_nTxEthCrcErr t31
483 518
484// Event reporting 519// Event reporting
485.struct struct_paComEvents 520.struct struct_paComEvents
@@ -1186,6 +1221,7 @@
1186#define PA_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX 18 1221#define PA_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX 18
1187#define PA_COMMAND_RESULT_INVALID_CMDSET_IDX 19 1222#define PA_COMMAND_RESULT_INVALID_CMDSET_IDX 19
1188#define PA_COMMAND_RESULT_USR_STATS_INVALID_CONFIG 20 1223#define PA_COMMAND_RESULT_USR_STATS_INVALID_CONFIG 20
1224#define PA_COMMAND_RESULT_LUT2_FULL 21
1189 1225
1190// Packet descriptor - course view 1226// Packet descriptor - course view
1191.struct struct_pktDscCourse 1227.struct struct_pktDscCourse
@@ -1358,11 +1394,19 @@
1358.ends 1394.ends
1359 1395
1360#define t_patch_msg_len_size32 t15 1396#define t_patch_msg_len_size32 t15
1397// EMAC CRC verify command
1398.struct struct_emacCrcVerifyCmd
1399 .u8 cmdId_subCode
1400 .u8 psFlags // specify destination port number in psFlags field of packet descriptor
1401 .u16 rsvd
1402.ends
1403
1361 1404
1362#define PA_SUB_CMD_CODE_MASK 0x1F 1405#define PA_SUB_CMD_CODE_MASK 0x1F
1363#define PA_SUB_CMD_CODE_DUMMY 0 1406#define PA_SUB_CMD_CODE_DUMMY 0
1364#define PA_SUB_CMD_CODE_IP_FRAG 1 1407#define PA_SUB_CMD_CODE_IP_FRAG 1
1365#define PA_SUB_CMD_CODE_PATCH_MSG_LEN 2 1408#define PA_SUB_CMD_CODE_PATCH_MSG_LEN 2
1409#define PA_SUB_CMD_CODE_EMAC_CRC_VERIFY 3
1366 1410
1367// General message 1411// General message
1368.struct struct_msg 1412.struct struct_msg
diff --git a/fw/v0/pdsp_protos.h b/fw/v0/pdsp_protos.h
index e4af636..a1d9a54 100644
--- a/fw/v0/pdsp_protos.h
+++ b/fw/v0/pdsp_protos.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_PROTOS_H 36#ifndef _PDSP_PROTOS_H
2#define _PDSP_PROTOS_H 1 37#define _PDSP_PROTOS_H 1
3 38
diff --git a/fw/v0/pdsp_subs.h b/fw/v0/pdsp_subs.h
index 9b681a2..543ee72 100644
--- a/fw/v0/pdsp_subs.h
+++ b/fw/v0/pdsp_subs.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_SUBS_H 36#ifndef _PDSP_SUBS_H
2#define _PDSP_SUBS_H 1 37#define _PDSP_SUBS_H 1
3 38
diff --git a/fw/v0/pm_config.h b/fw/v0/pm_config.h
index eec3075..0822947 100644
--- a/fw/v0/pm_config.h
+++ b/fw/v0/pm_config.h
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1 35
2//============================================================================ 36//============================================================================
3// pm_config.h 37// pm_config.h
@@ -276,6 +310,7 @@
276#define tStatus_Lut2AddDelBusy t10 310#define tStatus_Lut2AddDelBusy t10
277#define tStatus_Lut2LookupBusy t11 311#define tStatus_Lut2LookupBusy t11
278#define tStatus_Lut2MatchData t12 312#define tStatus_Lut2MatchData t12
313#define tStatus_Lut2Full t13
279 314
280 315
281//----------------------------------------------------- 316//-----------------------------------------------------
diff --git a/fw/v0/pm_constants.h b/fw/v0/pm_constants.h
index c5b25db..a1ddaf4 100644
--- a/fw/v0/pm_constants.h
+++ b/fw/v0/pm_constants.h
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1 35
2//============================================================================ 36//============================================================================
3// pm_constants.h 37// pm_constants.h
diff --git a/fw/v1/classify1.p b/fw/v1/classify1.p
index fa48278..6ea46ad 100644..100755
--- a/fw/v1/classify1.p
+++ b/fw/v1/classify1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************************** 35// **************************************************************************************************************
2// * FILE PURPOSE: Peform packet classification on PDSPS with a LUT1 36// * FILE PURPOSE: Peform packet classification on PDSPS with a LUT1
3// ************************************************************************************************************** 37// **************************************************************************************************************
diff --git a/fw/v1/classify2.p b/fw/v1/classify2.p
index f77a518..6f268b8 100644..100755
--- a/fw/v1/classify2.p
+++ b/fw/v1/classify2.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ********************************************************************************************************* 35// *********************************************************************************************************
2// * FILE PURPOSE: Perform packet classification on PDSPS with a LUT2 36// * FILE PURPOSE: Perform packet classification on PDSPS with a LUT2
3// ********************************************************************************************************* 37// *********************************************************************************************************
@@ -801,12 +835,19 @@ f_paComDelLut1:
801f_paComAddRepLut2: 835f_paComAddRepLut2:
802 836
803 // If there is an active add or delete the command must be rejected 837 // If there is an active add or delete the command must be rejected
804 qbbc l_paComAddRepLut2_a, s_flags.info.tStatus_Lut2AddDelBusy 838 qbbc l_paComAddRepLut2_check_full, s_flags.info.tStatus_Lut2AddDelBusy
805 839
806 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_ADD_BUSY 840 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_ADD_BUSY
807 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult) 841 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult)
808 jmp f_cfgReply 842 jmp f_cfgReply
809 843
844l_paComAddRepLut2_check_full:
845 // If there is an active add or delete the command must be rejected
846 qbbc l_paComAddRepLut2_a, s_flags.info.tStatus_Lut2Full
847 mov s_paCmd1.commandResult, PA_COMMAND_RESULT_LUT2_FULL
848 xout XID_CDEDATA, s_paCmd1.commandResult, SIZE(s_paCmd1.commandResult)
849 jmp f_cfgReply
850
810l_paComAddRepLut2_a: 851l_paComAddRepLut2_a:
811 852
812 // Verify that the packet has all the data 853 // Verify that the packet has all the data
diff --git a/fw/v1/classify3.p b/fw/v1/classify3.p
index 4f301f8..3b8eda8 100644..100755
--- a/fw/v1/classify3.p
+++ b/fw/v1/classify3.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************************** 35// **************************************************************************************************************
2// * FILE PURPOSE: Peform packet classification on PDSPS with a Flow Cache LUT1 36// * FILE PURPOSE: Peform packet classification on PDSPS with a Flow Cache LUT1
3// ************************************************************************************************************** 37// **************************************************************************************************************
diff --git a/fw/v1/efp.p b/fw/v1/efp.p
index 5368068..4d5a671 100644..100755
--- a/fw/v1/efp.p
+++ b/fw/v1/efp.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************ 35// ************************************************************************************************
2// * FILE PURPOSE: Egress Flow Processing on PDSPs without LUTs 36// * FILE PURPOSE: Egress Flow Processing on PDSPs without LUTs
3// ************************************************************************************************ 37// ************************************************************************************************
diff --git a/fw/v1/eg0_pdsp0.p b/fw/v1/eg0_pdsp0.p
index 483f73c..13a96a2 100644..100755
--- a/fw/v1/eg0_pdsp0.p
+++ b/fw/v1/eg0_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_FIRST_PDSP 36#define PASS_FIRST_PDSP
3#define HEADER_MAGIC 0xBABE0600 37#define HEADER_MAGIC 0xBABE0600
diff --git a/fw/v1/eg0_pdsp1.p b/fw/v1/eg0_pdsp1.p
index f06603a..66745b9 100644..100755
--- a/fw/v1/eg0_pdsp1.p
+++ b/fw/v1/eg0_pdsp1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_PROC_PKT_FORWARD 36#define PASS_PROC_PKT_FORWARD
3#define PASS_PROC_EGRESS_CMD 37#define PASS_PROC_EGRESS_CMD
diff --git a/fw/v1/eg0_pdsp2.p b/fw/v1/eg0_pdsp2.p
index 2a8dba5..5fb5800 100644..100755
--- a/fw/v1/eg0_pdsp2.p
+++ b/fw/v1/eg0_pdsp2.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_LAST_PDSP 36#define PASS_LAST_PDSP
3#define PASS_PROC_PKT_FORWARD 37#define PASS_PROC_PKT_FORWARD
diff --git a/fw/v1/eg1_pdsp0.p b/fw/v1/eg1_pdsp0.p
index 4d0b644..1cf491b 100644..100755
--- a/fw/v1/eg1_pdsp0.p
+++ b/fw/v1/eg1_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_FIRST_PDSP 36#define PASS_FIRST_PDSP
3#define PASS_LAST_PDSP 37#define PASS_LAST_PDSP
diff --git a/fw/v1/eg2_pdsp0.p b/fw/v1/eg2_pdsp0.p
index c2d2088..6aaaafc 100644..100755
--- a/fw/v1/eg2_pdsp0.p
+++ b/fw/v1/eg2_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_FIRST_PDSP 36#define PASS_FIRST_PDSP
3#define PASS_LAST_PDSP 37#define PASS_LAST_PDSP
diff --git a/fw/v1/in0_pdsp0.p b/fw/v1/in0_pdsp0.p
index 4219bbb..9dd3ae0 100644..100755
--- a/fw/v1/in0_pdsp0.p
+++ b/fw/v1/in0_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_FIRST_PDSP 37#define PASS_FIRST_PDSP
diff --git a/fw/v1/in0_pdsp1.bib b/fw/v1/in0_pdsp1.bib
index 2df08c0..e3c18bf 100644
--- a/fw/v1/in0_pdsp1.bib
+++ b/fw/v1/in0_pdsp1.bib
Binary files differ
diff --git a/fw/v1/in0_pdsp1.p b/fw/v1/in0_pdsp1.p
index 4586d8b..6b80b93 100644..100755
--- a/fw/v1/in0_pdsp1.p
+++ b/fw/v1/in0_pdsp1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_LAST_PDSP 37#define PASS_LAST_PDSP
diff --git a/fw/v1/in1_pdsp0.bib b/fw/v1/in1_pdsp0.bib
index 1e9c804..c4bdf0f 100644
--- a/fw/v1/in1_pdsp0.bib
+++ b/fw/v1/in1_pdsp0.bib
Binary files differ
diff --git a/fw/v1/in1_pdsp0.p b/fw/v1/in1_pdsp0.p
index d00eaf1..553c582 100644..100755
--- a/fw/v1/in1_pdsp0.p
+++ b/fw/v1/in1_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_FIRST_PDSP 37#define PASS_FIRST_PDSP
diff --git a/fw/v1/in1_pdsp1.p b/fw/v1/in1_pdsp1.p
index dc0b5d4..8d2edc9 100644..100755
--- a/fw/v1/in1_pdsp1.p
+++ b/fw/v1/in1_pdsp1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_LAST_PDSP 37#define PASS_LAST_PDSP
diff --git a/fw/v1/in2_pdsp0.p b/fw/v1/in2_pdsp0.p
index a8eaf38..60b5fa3 100644..100755
--- a/fw/v1/in2_pdsp0.p
+++ b/fw/v1/in2_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_FIRST_PDSP 37#define PASS_FIRST_PDSP
diff --git a/fw/v1/in3_pdsp0.p b/fw/v1/in3_pdsp0.p
index a679392..6fcbd3b 100644..100755
--- a/fw/v1/in3_pdsp0.p
+++ b/fw/v1/in3_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_FIRST_PDSP 37#define PASS_FIRST_PDSP
diff --git a/fw/v1/in4_pdsp0.bib b/fw/v1/in4_pdsp0.bib
index 2344aad..6678225 100644
--- a/fw/v1/in4_pdsp0.bib
+++ b/fw/v1/in4_pdsp0.bib
Binary files differ
diff --git a/fw/v1/in4_pdsp0.p b/fw/v1/in4_pdsp0.p
index 7510090..737871c 100644..100755
--- a/fw/v1/in4_pdsp0.p
+++ b/fw/v1/in4_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#include "pdsp_mem.h" 36#include "pdsp_mem.h"
3#define PASS_FIRST_PDSP 37#define PASS_FIRST_PDSP
diff --git a/fw/v1/in4_pdsp1.bib b/fw/v1/in4_pdsp1.bib
index 3dd2be8..e9cbd98 100644
--- a/fw/v1/in4_pdsp1.bib
+++ b/fw/v1/in4_pdsp1.bib
Binary files differ
diff --git a/fw/v1/in4_pdsp1.p b/fw/v1/in4_pdsp1.p
index 62e631e..7c3b3e0 100644..100755
--- a/fw/v1/in4_pdsp1.p
+++ b/fw/v1/in4_pdsp1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_LAST_PDSP 36#define PASS_LAST_PDSP
3#define PASS_PROC_PKT_FORWARD 37#define PASS_PROC_PKT_FORWARD
diff --git a/fw/v1/lut1_lut2.h b/fw/v1/lut1_lut2.h
index 14722ae..1f788f4 100644..100755
--- a/fw/v1/lut1_lut2.h
+++ b/fw/v1/lut1_lut2.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _LUT1_LUT2_H 36#ifndef _LUT1_LUT2_H
2#define _LUT1_LUT2_H 1 37#define _LUT1_LUT2_H 1
3// ********************************************************************************************************* 38// *********************************************************************************************************
diff --git a/fw/v1/meminit.p b/fw/v1/meminit.p
index da099bb..6036b67 100644..100755
--- a/fw/v1/meminit.p
+++ b/fw/v1/meminit.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// *********************************************************************************************************** 35// ***********************************************************************************************************
2// * FILE PURPOSE: Perform PDSP memory intialization 36// * FILE PURPOSE: Perform PDSP memory intialization
3// *********************************************************************************************************** 37// ***********************************************************************************************************
diff --git a/fw/v1/pa2_eg0_pdsp0_bin.c b/fw/v1/pa2_eg0_pdsp0_bin.c
index 7d140dd..8778e67 100644
--- a/fw/v1/pa2_eg0_pdsp0_bin.c
+++ b/fw/v1/pa2_eg0_pdsp0_bin.c
@@ -1076,4 +1076,4 @@ const uint32_t eg0_pdsp0[] = {
1076 0x240001de, 1076 0x240001de,
1077 0x209e0000 }; 1077 0x209e0000 };
1078 1078
1079const int eg0_pdsp0Size = sizeof(eg0_pdsp0); 1079const int eg0_pdsp0Size = sizeof(eg0_pdsp0);
diff --git a/fw/v1/pa2_eg0_pdsp1_bin.c b/fw/v1/pa2_eg0_pdsp1_bin.c
index fe8773c..a2adbf3 100644
--- a/fw/v1/pa2_eg0_pdsp1_bin.c
+++ b/fw/v1/pa2_eg0_pdsp1_bin.c
@@ -2106,4 +2106,4 @@ const uint32_t eg0_pdsp1[] = {
2106 0x8081f188, 2106 0x8081f188,
2107 0x209e0000 }; 2107 0x209e0000 };
2108 2108
2109const int eg0_pdsp1Size = sizeof(eg0_pdsp1); 2109const int eg0_pdsp1Size = sizeof(eg0_pdsp1);
diff --git a/fw/v1/pa2_eg0_pdsp2_bin.c b/fw/v1/pa2_eg0_pdsp2_bin.c
index dc1943d..f65ef6f 100644
--- a/fw/v1/pa2_eg0_pdsp2_bin.c
+++ b/fw/v1/pa2_eg0_pdsp2_bin.c
@@ -1949,4 +1949,4 @@ const uint32_t eg0_pdsp2[] = {
1949 0x82eaf880, 1949 0x82eaf880,
1950 0x209e0000 }; 1950 0x209e0000 };
1951 1951
1952const int eg0_pdsp2Size = sizeof(eg0_pdsp2); 1952const int eg0_pdsp2Size = sizeof(eg0_pdsp2);
diff --git a/fw/v1/pa2_eg1_pdsp0_bin.c b/fw/v1/pa2_eg1_pdsp0_bin.c
index 589c678..180fd73 100644
--- a/fw/v1/pa2_eg1_pdsp0_bin.c
+++ b/fw/v1/pa2_eg1_pdsp0_bin.c
@@ -1480,4 +1480,4 @@ const uint32_t eg1_pdsp0[] = {
1480 0x81007b84, 1480 0x81007b84,
1481 0x209e0000 }; 1481 0x209e0000 };
1482 1482
1483const int eg1_pdsp0Size = sizeof(eg1_pdsp0); 1483const int eg1_pdsp0Size = sizeof(eg1_pdsp0);
diff --git a/fw/v1/pa2_eg2_pdsp0_bin.c b/fw/v1/pa2_eg2_pdsp0_bin.c
index 2041226..2564f00 100644
--- a/fw/v1/pa2_eg2_pdsp0_bin.c
+++ b/fw/v1/pa2_eg2_pdsp0_bin.c
@@ -1727,4 +1727,4 @@ const uint32_t eg2_pdsp0[] = {
1727 0x81007b84, 1727 0x81007b84,
1728 0x209e0000 }; 1728 0x209e0000 };
1729 1729
1730const int eg2_pdsp0Size = sizeof(eg2_pdsp0); 1730const int eg2_pdsp0Size = sizeof(eg2_pdsp0);
diff --git a/fw/v1/pa2_in0_pdsp0_bin.c b/fw/v1/pa2_in0_pdsp0_bin.c
index 4ec855a..eaf0e49 100644
--- a/fw/v1/pa2_in0_pdsp0_bin.c
+++ b/fw/v1/pa2_in0_pdsp0_bin.c
@@ -1838,4 +1838,4 @@ const uint32_t in0_pdsp0[] = {
1838 0x240002de, 1838 0x240002de,
1839 0x209e0000 }; 1839 0x209e0000 };
1840 1840
1841const int in0_pdsp0Size = sizeof(in0_pdsp0); 1841const int in0_pdsp0Size = sizeof(in0_pdsp0);
diff --git a/fw/v1/pa2_in0_pdsp1_bin.c b/fw/v1/pa2_in0_pdsp1_bin.c
index aa4adf7..a425a80 100644
--- a/fw/v1/pa2_in0_pdsp1_bin.c
+++ b/fw/v1/pa2_in0_pdsp1_bin.c
@@ -685,7 +685,7 @@ const uint32_t in0_pdsp1[] = {
685 0x2f05098e, 685 0x2f05098e,
686 0x24001097, 686 0x24001097,
687 0x2402b19e, 687 0x2402b19e,
688 0x2106f400, 688 0x2106f300,
689 0x24000104, 689 0x24000104,
690 0x0508c9c4, 690 0x0508c9c4,
691 0xc9001d02, 691 0xc9001d02,
@@ -899,25 +899,25 @@ const uint32_t in0_pdsp1[] = {
899 0x2eff8983, 899 0x2eff8983,
900 0x83242e83, 900 0x83242e83,
901 0x2405fac8, 901 0x2405fac8,
902 0x2406c588, 902 0x2406c488,
903 0x2406d2c9, 903 0x2406d1c9,
904 0x24072a89, 904 0x24072989,
905 0x240761ca, 905 0x240760ca,
906 0x2407838a, 906 0x2407828a,
907 0x24078fcb, 907 0x24078ecb,
908 0x24079b8b, 908 0x24079a8b,
909 0x2407b3cc, 909 0x2407b2cc,
910 0x2407bf8c, 910 0x2407be8c,
911 0x2407eacd, 911 0x2407e9cd,
912 0x2407ec8d, 912 0x2407eb8d,
913 0x2407ecce, 913 0x2407ebce,
914 0x2406f78e, 914 0x2406f68e,
915 0x2406e1cf, 915 0x2406e0cf,
916 0x2407ee8f, 916 0x2407ed8f,
917 0x240812d0, 917 0x240811d0,
918 0x2407f490, 918 0x2407f390,
919 0x2407fed1, 919 0x2407fdd1,
920 0x24080891, 920 0x24080791,
921 0x8500f588, 921 0x8500f588,
922 0x248100c8, 922 0x248100c8,
923 0x2488a888, 923 0x2488a888,
@@ -1578,7 +1578,7 @@ const uint32_t in0_pdsp1[] = {
1578 0x1d011d1d, 1578 0x1d011d1d,
1579 0x209e0000, 1579 0x209e0000,
1580 0xd1001d02, 1580 0xd1001d02,
1581 0x21081900, 1581 0x21081800,
1582 0x240000fb, 1582 0x240000fb,
1583 0x2eff878a, 1583 0x2eff878a,
1584 0x1028284c, 1584 0x1028284c,
@@ -1621,16 +1621,16 @@ const uint32_t in0_pdsp1[] = {
1621 0x21068e00, 1621 0x21068e00,
1622 0x68d2ce03, 1622 0x68d2ce03,
1623 0x1f006a6a, 1623 0x1f006a6a,
1624 0x2106c500, 1624 0x2106c400,
1625 0x6892ce03, 1625 0x6892ce03,
1626 0x1f016a6a, 1626 0x1f016a6a,
1627 0x2106c500, 1627 0x2106c400,
1628 0x68d4ce02, 1628 0x68d4ce02,
1629 0x2106d200, 1629 0x2106d100,
1630 0x6894ce02, 1630 0x6894ce02,
1631 0x2106d200, 1631 0x2106d100,
1632 0x68d5ce02, 1632 0x68d5ce02,
1633 0x2106e100, 1633 0x2106e000,
1634 0x6895ce02, 1634 0x6895ce02,
1635 0x1f046a6a, 1635 0x1f046a6a,
1636 0x24890280, 1636 0x24890280,
@@ -1743,12 +1743,11 @@ const uint32_t in0_pdsp1[] = {
1743 0x24000004, 1743 0x24000004,
1744 0x240008c4, 1744 0x240008c4,
1745 0x2f000384, 1745 0x2f000384,
1746 0x512c600d, 1746 0x512c600c,
1747 0x51006005, 1747 0x51006004,
1748 0x512b6004, 1748 0x512b6003,
1749 0x513c6003, 1749 0x513c6002,
1750 0x513b6002, 1750 0x2106b600,
1751 0x2106b700,
1752 0x90800680, 1751 0x90800680,
1753 0x01014040, 1752 0x01014040,
1754 0x09034040, 1753 0x09034040,
@@ -1785,7 +1784,7 @@ const uint32_t in0_pdsp1[] = {
1785 0x10cececb, 1784 0x10cececb,
1786 0x110f6b6b, 1785 0x110f6b6b,
1787 0x0b0dce8c, 1786 0x0b0dce8c,
1788 0x2106ce00, 1787 0x2106cd00,
1789 0x10cece8b, 1788 0x10cece8b,
1790 0x110f2b2b, 1789 0x110f2b2b,
1791 0x0b0dcecd, 1790 0x0b0dcecd,
@@ -1825,9 +1824,9 @@ const uint32_t in0_pdsp1[] = {
1825 0x68808f03, 1824 0x68808f03,
1826 0x01021818, 1825 0x01021818,
1827 0x21068e00, 1826 0x21068e00,
1828 0x2106f300, 1827 0x2106f200,
1829 0x2102b200, 1828 0x2102b200,
1830 0x21081900, 1829 0x21081800,
1831 0x240002de, 1830 0x240002de,
1832 0x209e0000, 1831 0x209e0000,
1833 0x240002de, 1832 0x240002de,
@@ -1837,7 +1836,7 @@ const uint32_t in0_pdsp1[] = {
1837 0x11f066e0, 1836 0x11f066e0,
1838 0x5140e003, 1837 0x5140e003,
1839 0x5160e018, 1838 0x5160e018,
1840 0x21081900, 1839 0x21081800,
1841 0x10949480, 1840 0x10949480,
1842 0x10d5d5c0, 1841 0x10d5d5c0,
1843 0x2eff8792, 1842 0x2eff8792,
@@ -1930,8 +1929,8 @@ const uint32_t in0_pdsp1[] = {
1930 0x209e0000, 1929 0x209e0000,
1931 0x11033737, 1930 0x11033737,
1932 0x13143737, 1931 0x13143737,
1933 0x21075f00, 1932 0x21075e00,
1934 0x21081900, 1933 0x21081800,
1935 0x11033737, 1934 0x11033737,
1936 0x13643737, 1935 0x13643737,
1937 0x240002de, 1936 0x240002de,
@@ -2090,7 +2089,7 @@ const uint32_t in0_pdsp1[] = {
2090 0x240001de, 2089 0x240001de,
2091 0xc9001d03, 2090 0xc9001d03,
2092 0xd104b602, 2091 0xd104b602,
2093 0x2106f900, 2092 0x2106f800,
2094 0x1d04b6b6, 2093 0x1d04b6b6,
2095 0x209e0000, 2094 0x209e0000,
2096 0x2e808386, 2095 0x2e808386,
@@ -2100,7 +2099,7 @@ const uint32_t in0_pdsp1[] = {
2100 0x240001de, 2099 0x240001de,
2101 0xc9001d03, 2100 0xc9001d03,
2102 0xd104b602, 2101 0xd104b602,
2103 0x2106f900, 2102 0x2106f800,
2104 0x1d04b6b6, 2103 0x1d04b6b6,
2105 0x209e0000, 2104 0x209e0000,
2106 0x2e808986, 2105 0x2e808986,
@@ -2110,7 +2109,7 @@ const uint32_t in0_pdsp1[] = {
2110 0x240001de, 2109 0x240001de,
2111 0xc9001d03, 2110 0xc9001d03,
2112 0xd104b602, 2111 0xd104b602,
2113 0x2106f900, 2112 0x2106f800,
2114 0x1d04b6b6, 2113 0x1d04b6b6,
2115 0x209e0000, 2114 0x209e0000,
2116 0x240001de, 2115 0x240001de,
@@ -2124,4 +2123,4 @@ const uint32_t in0_pdsp1[] = {
2124 0x240002de, 2123 0x240002de,
2125 0x209e0000 }; 2124 0x209e0000 };
2126 2125
2127const int in0_pdsp1Size = sizeof(in0_pdsp1); 2126const int in0_pdsp1Size = sizeof(in0_pdsp1);
diff --git a/fw/v1/pa2_in1_pdsp0_bin.c b/fw/v1/pa2_in1_pdsp0_bin.c
index fbf6605..ba8a0a7 100644
--- a/fw/v1/pa2_in1_pdsp0_bin.c
+++ b/fw/v1/pa2_in1_pdsp0_bin.c
@@ -752,21 +752,21 @@ const uint32_t in1_pdsp0[] = {
752 0x24053cc9, 752 0x24053cc9,
753 0x24055f89, 753 0x24055f89,
754 0x2405f2ca, 754 0x2405f2ca,
755 0x2406828a, 755 0x2406818a,
756 0x24068dcb, 756 0x24068ccb,
757 0x2406988b, 757 0x2406978b,
758 0x2406a9cc, 758 0x2406a8cc,
759 0x2406b48c, 759 0x2406b38c,
760 0x2406dccd, 760 0x2406dbcd,
761 0x2406e58d, 761 0x2406e48d,
762 0x2406e5ce, 762 0x2406e4ce,
763 0x24053e8e, 763 0x24053e8e,
764 0x24053ccf, 764 0x24053ccf,
765 0x2407008f, 765 0x2406ff8f,
766 0x24071bd0, 766 0x24071ad0,
767 0x24071b90, 767 0x24071a90,
768 0x24071bd1, 768 0x24071ad1,
769 0x24071b91, 769 0x24071a91,
770 0x8500f588, 770 0x8500f588,
771 0x24505084, 771 0x24505084,
772 0x108484c4, 772 0x108484c4,
@@ -1569,7 +1569,7 @@ const uint32_t in1_pdsp0[] = {
1569 0xcf05b672, 1569 0xcf05b672,
1570 0x24000ade, 1570 0x24000ade,
1571 0x209e0000, 1571 0x209e0000,
1572 0xd105b649, 1572 0xd105b648,
1573 0x2e808386, 1573 0x2e808386,
1574 0x11f06600, 1574 0x11f06600,
1575 0x6f6000be, 1575 0x6f6000be,
@@ -1579,9 +1579,9 @@ const uint32_t in1_pdsp0[] = {
1579 0x2e808f8e, 1579 0x2e808f8e,
1580 0x2f01878e, 1580 0x2f01878e,
1581 0x2f020792, 1581 0x2f020792,
1582 0xd101b650, 1582 0xd101b64f,
1583 0xc9037d4f, 1583 0xc9037d4e,
1584 0xd104b63d, 1584 0xd104b63c,
1585 0x2eff8300, 1585 0x2eff8300,
1586 0x10272760, 1586 0x10272760,
1587 0x01681680, 1587 0x01681680,
@@ -1591,13 +1591,12 @@ const uint32_t in1_pdsp0[] = {
1591 0xc9001d03, 1591 0xc9001d03,
1592 0x01088080, 1592 0x01088080,
1593 0x0108a1a1, 1593 0x0108a1a1,
1594 0x58a1800e, 1594 0x58a1800d,
1595 0x512c600b, 1595 0x512c600a,
1596 0x51006005, 1596 0x51006004,
1597 0x512b6004, 1597 0x512b6003,
1598 0x513c6003, 1598 0x513c6002,
1599 0x513b6002, 1599 0x21061500,
1600 0x21061600,
1601 0x90800680, 1600 0x90800680,
1602 0x01014040, 1601 0x01014040,
1603 0x09034040, 1602 0x09034040,
@@ -1618,7 +1617,7 @@ const uint32_t in1_pdsp0[] = {
1618 0x6e604bf9, 1617 0x6e604bf9,
1619 0x01016b6b, 1618 0x01016b6b,
1620 0x808e100b, 1619 0x808e100b,
1621 0x21063300, 1620 0x21063200,
1622 0xc9006128, 1621 0xc9006128,
1623 0x586e4e0d, 1622 0x586e4e0d,
1624 0x2700f07b, 1623 0x2700f07b,
@@ -1632,7 +1631,7 @@ const uint32_t in1_pdsp0[] = {
1632 0x2400016b, 1631 0x2400016b,
1633 0x09047b8e, 1632 0x09047b8e,
1634 0x808eb08b, 1633 0x808eb08b,
1635 0x21063300, 1634 0x21063200,
1636 0x2400ff7b, 1635 0x2400ff7b,
1637 0x2400015b, 1636 0x2400015b,
1638 0x1f04b6b6, 1637 0x1f04b6b6,
@@ -1644,13 +1643,13 @@ const uint32_t in1_pdsp0[] = {
1644 0x209e0000, 1643 0x209e0000,
1645 0x1d04b6b6, 1644 0x1d04b6b6,
1646 0x51ff7b0d, 1645 0x51ff7b0d,
1647 0x5f207b73, 1646 0x5f207b74,
1648 0x09047b81, 1647 0x09047b81,
1649 0x9081308b, 1648 0x9081308b,
1650 0x705b6b04, 1649 0x705b6b04,
1651 0x045b6b6b, 1650 0x045b6b6b,
1652 0x8081308b, 1651 0x8081308b,
1653 0x21064900, 1652 0x21064800,
1654 0x9100b18e, 1653 0x9100b18e,
1655 0x1c7bf0f0, 1654 0x1c7bf0f0,
1656 0x51004e02, 1655 0x51004e02,
@@ -1679,7 +1678,7 @@ const uint32_t in1_pdsp0[] = {
1679 0x2eff878a, 1678 0x2eff878a,
1680 0xd102b603, 1679 0xd102b603,
1681 0x10d9d98d, 1680 0x10d9d98d,
1682 0x21066400, 1681 0x21066300,
1683 0x10dada8d, 1682 0x10dada8d,
1684 0x111f2d2d, 1683 0x111f2d2d,
1685 0x1d02b6b6, 1684 0x1d02b6b6,
@@ -1825,7 +1824,7 @@ const uint32_t in1_pdsp0[] = {
1825 0x1f046c6c, 1824 0x1f046c6c,
1826 0xd102b603, 1825 0xd102b603,
1827 0x10d9d98d, 1826 0x10d9d98d,
1828 0x2106f600, 1827 0x2106f500,
1829 0x10dada8d, 1828 0x10dada8d,
1830 0x111f2d2d, 1829 0x111f2d2d,
1831 0x1d02b6b6, 1830 0x1d02b6b6,
@@ -1872,4 +1871,4 @@ const uint32_t in1_pdsp0[] = {
1872 0x240002de, 1871 0x240002de,
1873 0x209e0000 }; 1872 0x209e0000 };
1874 1873
1875const int in1_pdsp0Size = sizeof(in1_pdsp0); 1874const int in1_pdsp0Size = sizeof(in1_pdsp0);
diff --git a/fw/v1/pa2_in1_pdsp1_bin.c b/fw/v1/pa2_in1_pdsp1_bin.c
index 67864b3..a1b94ff 100644
--- a/fw/v1/pa2_in1_pdsp1_bin.c
+++ b/fw/v1/pa2_in1_pdsp1_bin.c
@@ -1443,4 +1443,4 @@ const uint32_t in1_pdsp1[] = {
1443 0x240002de, 1443 0x240002de,
1444 0x209e0000 }; 1444 0x209e0000 };
1445 1445
1446const int in1_pdsp1Size = sizeof(in1_pdsp1); 1446const int in1_pdsp1Size = sizeof(in1_pdsp1);
diff --git a/fw/v1/pa2_in2_pdsp0_bin.c b/fw/v1/pa2_in2_pdsp0_bin.c
index cb09cac..e612a31 100644
--- a/fw/v1/pa2_in2_pdsp0_bin.c
+++ b/fw/v1/pa2_in2_pdsp0_bin.c
@@ -1403,4 +1403,4 @@ const uint32_t in2_pdsp0[] = {
1403 0x240002de, 1403 0x240002de,
1404 0x209e0000 }; 1404 0x209e0000 };
1405 1405
1406const int in2_pdsp0Size = sizeof(in2_pdsp0); 1406const int in2_pdsp0Size = sizeof(in2_pdsp0);
diff --git a/fw/v1/pa2_in3_pdsp0_bin.c b/fw/v1/pa2_in3_pdsp0_bin.c
index 7dab6dd..e1d4fd5 100644
--- a/fw/v1/pa2_in3_pdsp0_bin.c
+++ b/fw/v1/pa2_in3_pdsp0_bin.c
@@ -1738,4 +1738,4 @@ const uint32_t in3_pdsp0[] = {
1738 0x240002de, 1738 0x240002de,
1739 0x209e0000 }; 1739 0x209e0000 };
1740 1740
1741const int in3_pdsp0Size = sizeof(in3_pdsp0); 1741const int in3_pdsp0Size = sizeof(in3_pdsp0);
diff --git a/fw/v1/pa2_in4_pdsp0_bin.c b/fw/v1/pa2_in4_pdsp0_bin.c
index 217ffcf..334dc14 100644
--- a/fw/v1/pa2_in4_pdsp0_bin.c
+++ b/fw/v1/pa2_in4_pdsp0_bin.c
@@ -763,21 +763,21 @@ const uint32_t in4_pdsp0[] = {
763 0x240547c9, 763 0x240547c9,
764 0x24056a89, 764 0x24056a89,
765 0x2405feca, 765 0x2405feca,
766 0x24068f8a, 766 0x24068e8a,
767 0x24069acb, 767 0x240699cb,
768 0x2406a58b, 768 0x2406a48b,
769 0x2406b6cc, 769 0x2406b5cc,
770 0x2406c18c, 770 0x2406c08c,
771 0x2406e9cd, 771 0x2406e8cd,
772 0x2406e98d, 772 0x2406e88d,
773 0x2406f6ce, 773 0x2406f5ce,
774 0x2405498e, 774 0x2405498e,
775 0x240547cf, 775 0x240547cf,
776 0x2406f68f, 776 0x2406f58f,
777 0x240711d0, 777 0x240710d0,
778 0x24071190, 778 0x24071090,
779 0x240711d1, 779 0x240710d1,
780 0x24071191, 780 0x24071091,
781 0x8500f588, 781 0x8500f588,
782 0x24505084, 782 0x24505084,
783 0x108484c4, 783 0x108484c4,
@@ -1581,7 +1581,7 @@ const uint32_t in4_pdsp0[] = {
1581 0xcf05b671, 1581 0xcf05b671,
1582 0x24000ade, 1582 0x24000ade,
1583 0x209e0000, 1583 0x209e0000,
1584 0xd105b649, 1584 0xd105b648,
1585 0x2e808386, 1585 0x2e808386,
1586 0x11f06600, 1586 0x11f06600,
1587 0x6f6000be, 1587 0x6f6000be,
@@ -1591,9 +1591,9 @@ const uint32_t in4_pdsp0[] = {
1591 0x2e808f8e, 1591 0x2e808f8e,
1592 0x2f01878e, 1592 0x2f01878e,
1593 0x2f020792, 1593 0x2f020792,
1594 0xd101b650, 1594 0xd101b64f,
1595 0xc9037d4f, 1595 0xc9037d4e,
1596 0xd104b63d, 1596 0xd104b63c,
1597 0x2eff8300, 1597 0x2eff8300,
1598 0x10272760, 1598 0x10272760,
1599 0x01681680, 1599 0x01681680,
@@ -1603,13 +1603,12 @@ const uint32_t in4_pdsp0[] = {
1603 0xc9001d03, 1603 0xc9001d03,
1604 0x01088080, 1604 0x01088080,
1605 0x0108a1a1, 1605 0x0108a1a1,
1606 0x58a1800e, 1606 0x58a1800d,
1607 0x512c600b, 1607 0x512c600a,
1608 0x51006005, 1608 0x51006004,
1609 0x512b6004, 1609 0x512b6003,
1610 0x513c6003, 1610 0x513c6002,
1611 0x513b6002, 1611 0x21062100,
1612 0x21062200,
1613 0x90800680, 1612 0x90800680,
1614 0x01014040, 1613 0x01014040,
1615 0x09034040, 1614 0x09034040,
@@ -1630,7 +1629,7 @@ const uint32_t in4_pdsp0[] = {
1630 0x6e604bf9, 1629 0x6e604bf9,
1631 0x01016b6b, 1630 0x01016b6b,
1632 0x808e100b, 1631 0x808e100b,
1633 0x21063f00, 1632 0x21063e00,
1634 0xc9006128, 1633 0xc9006128,
1635 0x586e4e0d, 1634 0x586e4e0d,
1636 0x2700f07b, 1635 0x2700f07b,
@@ -1644,7 +1643,7 @@ const uint32_t in4_pdsp0[] = {
1644 0x2400016b, 1643 0x2400016b,
1645 0x09047b8e, 1644 0x09047b8e,
1646 0x808eb08b, 1645 0x808eb08b,
1647 0x21063f00, 1646 0x21063e00,
1648 0x2400ff7b, 1647 0x2400ff7b,
1649 0x2400015b, 1648 0x2400015b,
1650 0x1f04b6b6, 1649 0x1f04b6b6,
@@ -1656,13 +1655,13 @@ const uint32_t in4_pdsp0[] = {
1656 0x209e0000, 1655 0x209e0000,
1657 0x1d04b6b6, 1656 0x1d04b6b6,
1658 0x51ff7b0d, 1657 0x51ff7b0d,
1659 0x5f207b73, 1658 0x5f207b74,
1660 0x09047b81, 1659 0x09047b81,
1661 0x9081308b, 1660 0x9081308b,
1662 0x705b6b04, 1661 0x705b6b04,
1663 0x045b6b6b, 1662 0x045b6b6b,
1664 0x8081308b, 1663 0x8081308b,
1665 0x21065500, 1664 0x21065400,
1666 0x9100b18e, 1665 0x9100b18e,
1667 0x1c7bf0f0, 1666 0x1c7bf0f0,
1668 0x51004e02, 1667 0x51004e02,
@@ -1692,7 +1691,7 @@ const uint32_t in4_pdsp0[] = {
1692 0x2eff878a, 1691 0x2eff878a,
1693 0xd102b603, 1692 0xd102b603,
1694 0x10d9d98d, 1693 0x10d9d98d,
1695 0x21067100, 1694 0x21067000,
1696 0x10dada8d, 1695 0x10dada8d,
1697 0x111f2d2d, 1696 0x111f2d2d,
1698 0x1d02b6b6, 1697 0x1d02b6b6,
@@ -1862,4 +1861,4 @@ const uint32_t in4_pdsp0[] = {
1862 0x240002de, 1861 0x240002de,
1863 0x209e0000 }; 1862 0x209e0000 };
1864 1863
1865const int in4_pdsp0Size = sizeof(in4_pdsp0); 1864const int in4_pdsp0Size = sizeof(in4_pdsp0);
diff --git a/fw/v1/pa2_in4_pdsp1_bin.c b/fw/v1/pa2_in4_pdsp1_bin.c
index c0f8ef1..a2514ad 100644
--- a/fw/v1/pa2_in4_pdsp1_bin.c
+++ b/fw/v1/pa2_in4_pdsp1_bin.c
@@ -50,7 +50,7 @@ const uint32_t in4_pdsp1[] = {
50 0x21000300, 50 0x21000300,
51 0xbabe0401, 51 0xbabe0401,
52 0x03000107, 52 0x03000107,
53 0x2300f39e, 53 0x2300f79e,
54 0x2eff8582, 54 0x2eff8582,
55 0x8104a482, 55 0x8104a482,
56 0x240001e2, 56 0x240001e2,
@@ -93,10 +93,10 @@ const uint32_t in4_pdsp1[] = {
93 0x24801d9f, 93 0x24801d9f,
94 0x21007b00, 94 0x21007b00,
95 0xc905b602, 95 0xc905b602,
96 0x21010200, 96 0x21010600,
97 0x0b057601, 97 0x0b057601,
98 0x51000105, 98 0x51000105,
99 0x530401e5, 99 0x530401e9,
100 0x24801c9f, 100 0x24801c9f,
101 0x1f060e0e, 101 0x1f060e0e,
102 0x21008100, 102 0x21008100,
@@ -146,7 +146,7 @@ const uint32_t in4_pdsp1[] = {
146 0x2e838786, 146 0x2e838786,
147 0x24801c83, 147 0x24801c83,
148 0x2400109e, 148 0x2400109e,
149 0x2103e600, 149 0x2103ea00,
150 0x2e838786, 150 0x2e838786,
151 0xc90d9908, 151 0xc90d9908,
152 0x11033737, 152 0x11033737,
@@ -169,13 +169,13 @@ const uint32_t in4_pdsp1[] = {
169 0x90413882, 169 0x90413882,
170 0xf081e286, 170 0xf081e286,
171 0x24801c83, 171 0x24801c83,
172 0x2103e600, 172 0x2103ea00,
173 0x0b0237de, 173 0x0b0237de,
174 0x0904dede, 174 0x0904dede,
175 0x90def486, 175 0x90def486,
176 0x24801c83, 176 0x24801c83,
177 0x2400109e, 177 0x2400109e,
178 0x2103e600, 178 0x2103ea00,
179 0xd106ff00, 179 0xd106ff00,
180 0x9110078a, 180 0x9110078a,
181 0x24002004, 181 0x24002004,
@@ -190,22 +190,26 @@ const uint32_t in4_pdsp1[] = {
190 0x21001000, 190 0x21001000,
191 0x24000c86, 191 0x24000c86,
192 0x2f0080c6, 192 0x2f0080c6,
193 0x21024e00, 193 0x21025200,
194 0xc90aff04, 194 0xc90aff04,
195 0x24000a86, 195 0x24000a86,
196 0x2f0080c6, 196 0x2f0080c6,
197 0x21024e00, 197 0x21025200,
198 0xc90dff04,
199 0x24001586,
200 0x2f0080c6,
201 0x21025200,
198 0x590c8004, 202 0x590c8004,
199 0x24001086, 203 0x24001086,
200 0x2f0080c6, 204 0x2f0080c6,
201 0x21024e00, 205 0x21025200,
202 0x2e80858a, 206 0x2e80858a,
203 0xd1002a06, 207 0xd1002a06,
204 0x0101dddd, 208 0x0101dddd,
205 0x24200081, 209 0x24200081,
206 0x7081dd03, 210 0x7081dd03,
207 0x24000886, 211 0x24000886,
208 0x2100a000, 212 0x2100a400,
209 0x24000086, 213 0x24000086,
210 0x2f0080c6, 214 0x2f0080c6,
211 0x24000004, 215 0x24000004,
@@ -222,7 +226,7 @@ const uint32_t in4_pdsp1[] = {
222 0x240012d9, 226 0x240012d9,
223 0x1f047b7b, 227 0x1f047b7b,
224 0x1d057b7b, 228 0x1d057b7b,
225 0x21024e00, 229 0x21025200,
226 0x09044a81, 230 0x09044a81,
227 0x01018181, 231 0x01018181,
228 0x90811001, 232 0x90811001,
@@ -257,15 +261,15 @@ const uint32_t in4_pdsp1[] = {
257 0xd10aff00, 261 0xd10aff00,
258 0xd101ff00, 262 0xd101ff00,
259 0x21001000, 263 0x21001000,
260 0x21024e00, 264 0x21025200,
261 0xc90aff04, 265 0xc90aff04,
262 0x24000a86, 266 0x24000a86,
263 0x2f0080c6, 267 0x2f0080c6,
264 0x21024e00, 268 0x21025200,
265 0x6900dd04, 269 0x6900dd04,
266 0x24000986, 270 0x24000986,
267 0x2f0080c6, 271 0x2f0080c6,
268 0x2100de00, 272 0x2100e200,
269 0x24000086, 273 0x24000086,
270 0x2f0080c6, 274 0x2f0080c6,
271 0x0501dddd, 275 0x0501dddd,
@@ -280,24 +284,24 @@ const uint32_t in4_pdsp1[] = {
280 0x71104a04, 284 0x71104a04,
281 0x24001286, 285 0x24001286,
282 0x2f0080c6, 286 0x2f0080c6,
283 0x21024e00, 287 0x21025200,
284 0x09044a81, 288 0x09044a81,
285 0x01018181, 289 0x01018181,
286 0x90811001, 290 0x90811001,
287 0x12617373, 291 0x12617373,
288 0x2100f100, 292 0x2100f500,
289 0xc9012a02, 293 0xc9012a02,
290 0x1d001d1d, 294 0x1d001d1d,
291 0x8130ab92, 295 0x8130ab92,
292 0x21024e00, 296 0x21025200,
293 0x240001e3, 297 0x240001e3,
294 0x81042b83, 298 0x81042b83,
295 0x24011a90, 299 0x24011e90,
296 0x24015bd1, 300 0x24015fd1,
297 0x24018891, 301 0x24018c91,
298 0x2401a6d2, 302 0x2401aad2,
299 0x24020992, 303 0x24020d92,
300 0x2401e3d3, 304 0x2401e7d3,
301 0x8500f588, 305 0x8500f588,
302 0x2eff9f80, 306 0x2eff9f80,
303 0x8700f080, 307 0x8700f080,
@@ -387,7 +391,7 @@ const uint32_t in4_pdsp1[] = {
387 0x24008024, 391 0x24008024,
388 0xd102b603, 392 0xd102b603,
389 0x10d9d9c4, 393 0x10d9d9c4,
390 0x21015800, 394 0x21015c00,
391 0x10dadac4, 395 0x10dadac4,
392 0x111f6464, 396 0x111f6464,
393 0x1d02b6b6, 397 0x1d02b6b6,
@@ -428,7 +432,7 @@ const uint32_t in4_pdsp1[] = {
428 0x24008024, 432 0x24008024,
429 0xd102b603, 433 0xd102b603,
430 0x10d9d9c4, 434 0x10d9d9c4,
431 0x21018100, 435 0x21018500,
432 0x10dadac4, 436 0x10dadac4,
433 0x111f6464, 437 0x111f6464,
434 0x1d02b6b6, 438 0x1d02b6b6,
@@ -447,7 +451,7 @@ const uint32_t in4_pdsp1[] = {
447 0x24008024, 451 0x24008024,
448 0xd102b603, 452 0xd102b603,
449 0x10d9d9c4, 453 0x10d9d9c4,
450 0x21019400, 454 0x21019800,
451 0x10dadac4, 455 0x10dadac4,
452 0x111f6464, 456 0x111f6464,
453 0x1d02b6b6, 457 0x1d02b6b6,
@@ -504,7 +508,7 @@ const uint32_t in4_pdsp1[] = {
504 0x24004024, 508 0x24004024,
505 0xd102b603, 509 0xd102b603,
506 0x10d9d9c4, 510 0x10d9d9c4,
507 0x2101cd00, 511 0x2101d100,
508 0x10dadac4, 512 0x10dadac4,
509 0x111f6464, 513 0x111f6464,
510 0x1d02b6b6, 514 0x1d02b6b6,
@@ -525,7 +529,7 @@ const uint32_t in4_pdsp1[] = {
525 0x209e0000, 529 0x209e0000,
526 0x69fe4605, 530 0x69fe4605,
527 0xc9031d02, 531 0xc9031d02,
528 0x2101b300, 532 0x2101b700,
529 0x13503737, 533 0x13503737,
530 0x209e0000, 534 0x209e0000,
531 0x13543737, 535 0x13543737,
@@ -590,15 +594,15 @@ const uint32_t in4_pdsp1[] = {
590 0x10e9e9fa, 594 0x10e9e9fa,
591 0x51ce0703, 595 0x51ce0703,
592 0x1f077b7b, 596 0x1f077b7b,
593 0x21024e00, 597 0x21025200,
594 0x51006602, 598 0x51006602,
595 0x21024e00, 599 0x21025200,
596 0x51004606, 600 0x51004606,
597 0x05014646, 601 0x05014646,
598 0x2f008026, 602 0x2f008026,
599 0x2400045b, 603 0x2400045b,
600 0x1f057b7b, 604 0x1f057b7b,
601 0x21024e00, 605 0x21025200,
602 0x81182788, 606 0x81182788,
603 0x2f05098e, 607 0x2f05098e,
604 0x1f067b7b, 608 0x1f067b7b,
@@ -632,11 +636,11 @@ const uint32_t in4_pdsp1[] = {
632 0x5105273b, 636 0x5105273b,
633 0x24000286, 637 0x24000286,
634 0x2f0080c6, 638 0x2f0080c6,
635 0x21024e00, 639 0x21025200,
636 0x21008d00, 640 0x21008d00,
637 0x21008d00, 641 0x21008d00,
638 0x21009000, 642 0x21009000,
639 0x2100d300, 643 0x2100d700,
640 0xc9067b02, 644 0xc9067b02,
641 0x2e85098e, 645 0x2e85098e,
642 0xc9047b08, 646 0xc9047b08,
@@ -656,11 +660,11 @@ const uint32_t in4_pdsp1[] = {
656 0x1f0f8181, 660 0x1f0f8181,
657 0x811007c1, 661 0x811007c1,
658 0x1f060e0e, 662 0x1f060e0e,
659 0x21027800, 663 0x21027c00,
660 0xc9057b04, 664 0xc9057b04,
661 0x24008000, 665 0x24008000,
662 0x81200760, 666 0x81200760,
663 0x21026900, 667 0x21026d00,
664 0x911007c1, 668 0x911007c1,
665 0x1f0f8181, 669 0x1f0f8181,
666 0x811007c1, 670 0x811007c1,
@@ -669,7 +673,7 @@ const uint32_t in4_pdsp1[] = {
669 0x81082481, 673 0x81082481,
670 0x51003a03, 674 0x51003a03,
671 0x1f060e0e, 675 0x1f060e0e,
672 0x21027800, 676 0x21027c00,
673 0x8112079a, 677 0x8112079a,
674 0x101a1a05, 678 0x101a1a05,
675 0x13202424, 679 0x13202424,
@@ -691,7 +695,7 @@ const uint32_t in4_pdsp1[] = {
691 0x59388004, 695 0x59388004,
692 0x24001086, 696 0x24001086,
693 0x2f0080c6, 697 0x2f0080c6,
694 0x21024e00, 698 0x21025200,
695 0x24000086, 699 0x24000086,
696 0x2f0080c6, 700 0x2f0080c6,
697 0x2e80878a, 701 0x2e80878a,
@@ -870,7 +874,7 @@ const uint32_t in4_pdsp1[] = {
870 0xf1042280, 874 0xf1042280,
871 0x6f00e0ff, 875 0x6f00e0ff,
872 0xe1042281, 876 0xe1042281,
873 0x21024e00, 877 0x21025200,
874 0x24000086, 878 0x24000086,
875 0x2f0080c6, 879 0x2f0080c6,
876 0x2e80838a, 880 0x2e80838a,
@@ -880,20 +884,20 @@ const uint32_t in4_pdsp1[] = {
880 0x58c08004, 884 0x58c08004,
881 0x24001086, 885 0x24001086,
882 0x2f0080c6, 886 0x2f0080c6,
883 0x21024e00, 887 0x21025200,
884 0x240018c4, 888 0x240018c4,
885 0x2f000384, 889 0x2f000384,
886 0x2103d700, 890 0x2103db00,
887 0x240014c4, 891 0x240014c4,
888 0x2f000384, 892 0x2f000384,
889 0x69016a13, 893 0x69016a13,
890 0x592c8002, 894 0x592c8002,
891 0x2103d400, 895 0x2103d800,
892 0x2e80838e, 896 0x2e80838e,
893 0x71046e04, 897 0x71046e04,
894 0x240011d9, 898 0x240011d9,
895 0x1f047b7b, 899 0x1f047b7b,
896 0x21024e00, 900 0x21025200,
897 0x09056e81, 901 0x09056e81,
898 0x09036ec1, 902 0x09036ec1,
899 0x00c18181, 903 0x00c18181,
@@ -904,31 +908,31 @@ const uint32_t in4_pdsp1[] = {
904 0x2e808f8e, 908 0x2e808f8e,
905 0x01088181, 909 0x01088181,
906 0x8281f38e, 910 0x8281f38e,
907 0x21024e00, 911 0x21025200,
908 0x69026a0c, 912 0x69026a0c,
909 0x59148002, 913 0x59148002,
910 0x2103d400, 914 0x2103d800,
911 0x2e80878e, 915 0x2e80878e,
912 0x71106e04, 916 0x71106e04,
913 0x240012d9, 917 0x240012d9,
914 0x1f047b7b, 918 0x1f047b7b,
915 0x21024e00, 919 0x21025200,
916 0x09046e81, 920 0x09046e81,
917 0x01008181, 921 0x01008181,
918 0x8081f08e, 922 0x8081f08e,
919 0x21024e00, 923 0x21025200,
920 0x69046a09, 924 0x69046a09,
921 0x59088002, 925 0x59088002,
922 0x2103d400, 926 0x2103d800,
923 0x2e80818e, 927 0x2e80818e,
924 0x1d021d1d, 928 0x1d021d1d,
925 0xc9006e02, 929 0xc9006e02,
926 0x1f021d1d, 930 0x1f021d1d,
927 0x81b8338e, 931 0x81b8338e,
928 0x21024e00, 932 0x21025200,
929 0x69056a0b, 933 0x69056a0b,
930 0x59088002, 934 0x59088002,
931 0x2103d400, 935 0x2103d800,
932 0x2e80818e, 936 0x2e80818e,
933 0x1d011d1d, 937 0x1d011d1d,
934 0xc9006e02, 938 0xc9006e02,
@@ -936,10 +940,10 @@ const uint32_t in4_pdsp1[] = {
936 0x1d031d1d, 940 0x1d031d1d,
937 0xc9016e02, 941 0xc9016e02,
938 0x1f031d1d, 942 0x1f031d1d,
939 0x21024e00, 943 0x21025200,
940 0x69066a0e, 944 0x69066a0e,
941 0x59148002, 945 0x59148002,
942 0x2103d400, 946 0x2103d800,
943 0x2e80878e, 947 0x2e80878e,
944 0x24000cc4, 948 0x24000cc4,
945 0x51006e08, 949 0x51006e08,
@@ -949,11 +953,11 @@ const uint32_t in4_pdsp1[] = {
949 0x2f000384, 953 0x2f000384,
950 0x2e80858f, 954 0x2e80858f,
951 0x05016e6e, 955 0x05016e6e,
952 0x21037f00, 956 0x21038300,
953 0x21024e00, 957 0x21025200,
954 0x69076a0e, 958 0x69076a0e,
955 0x59148002, 959 0x59148002,
956 0x2103d400, 960 0x2103d800,
957 0x2e80878e, 961 0x2e80878e,
958 0x24000cc4, 962 0x24000cc4,
959 0x51006e08, 963 0x51006e08,
@@ -963,12 +967,12 @@ const uint32_t in4_pdsp1[] = {
963 0x2f000384, 967 0x2f000384,
964 0x2e80858f, 968 0x2e80858f,
965 0x05016e6e, 969 0x05016e6e,
966 0x21038d00, 970 0x21039100,
967 0x21024e00, 971 0x21025200,
968 0x69086a19, 972 0x69086a19,
969 0x24003cc0, 973 0x24003cc0,
970 0x58c08002, 974 0x58c08002,
971 0x2103d400, 975 0x2103d800,
972 0x2e808b8e, 976 0x2e808b8e,
973 0x240100c2, 977 0x240100c2,
974 0x51006e12, 978 0x51006e12,
@@ -988,12 +992,12 @@ const uint32_t in4_pdsp1[] = {
988 0x2f000184, 992 0x2f000184,
989 0x2e80898f, 993 0x2e80898f,
990 0x05016e6e, 994 0x05016e6e,
991 0x21039c00, 995 0x2103a000,
992 0x21024e00, 996 0x21025200,
993 0x69096a1a, 997 0x69096a1a,
994 0x2400a0c0, 998 0x2400a0c0,
995 0x58c08002, 999 0x58c08002,
996 0x2103d400, 1000 0x2103d800,
997 0x2e808d8e, 1001 0x2e808d8e,
998 0x240300c2, 1002 0x240300c2,
999 0x51006e13, 1003 0x51006e13,
@@ -1009,27 +1013,27 @@ const uint32_t in4_pdsp1[] = {
1009 0x8082fc91, 1013 0x8082fc91,
1010 0x01108282, 1014 0x01108282,
1011 0x05014e4e, 1015 0x05014e4e,
1012 0x2103bb00, 1016 0x2103bf00,
1013 0x240018c4, 1017 0x240018c4,
1014 0x2f000184, 1018 0x2f000184,
1015 0x2e808b8f, 1019 0x2e808b8f,
1016 0x05016e6e, 1020 0x05016e6e,
1017 0x2103b500, 1021 0x2103b900,
1018 0x21024e00, 1022 0x21025200,
1019 0x690a6a08, 1023 0x690a6a08,
1020 0x590c8002, 1024 0x590c8002,
1021 0x2103d400, 1025 0x2103d800,
1022 0x2e80838e, 1026 0x2e80838e,
1023 0x24ffa8c2, 1027 0x24ffa8c2,
1024 0x24100082, 1028 0x24100082,
1025 0xe1d0628e, 1029 0xe1d0628e,
1026 0x21024e00, 1030 0x21025200,
1027 0x240002d9, 1031 0x240002d9,
1028 0x1f047b7b, 1032 0x1f047b7b,
1029 0x21024e00, 1033 0x21025200,
1030 0x240010d9, 1034 0x240010d9,
1031 0x1f047b7b, 1035 0x1f047b7b,
1032 0x21024e00, 1036 0x21025200,
1033 0x240000e1, 1037 0x240000e1,
1034 0x240010c4, 1038 0x240010c4,
1035 0x2e80878e, 1039 0x2e80878e,
@@ -1039,12 +1043,12 @@ const uint32_t in4_pdsp1[] = {
1039 0x01010101, 1043 0x01010101,
1040 0x0110c1c1, 1044 0x0110c1c1,
1041 0x671f01fa, 1045 0x671f01fa,
1042 0x21024e00, 1046 0x21025200,
1043 0x21024e00, 1047 0x21025200,
1044 0x21024e00, 1048 0x21025200,
1045 0x21024e00, 1049 0x21025200,
1046 0x21024e00, 1050 0x21025200,
1047 0x21024e00, 1051 0x21025200,
1048 0xc907ff00, 1052 0xc907ff00,
1049 0x911007ca, 1053 0x911007ca,
1050 0x1d0f8a8a, 1054 0x1d0f8a8a,
@@ -1060,7 +1064,7 @@ const uint32_t in4_pdsp1[] = {
1060 0x11c00101, 1064 0x11c00101,
1061 0x51014703, 1065 0x51014703,
1062 0x24001641, 1066 0x24001641,
1063 0x2103f700, 1067 0x2103fb00,
1064 0x24000d41, 1068 0x24000d41,
1065 0x12410101, 1069 0x12410101,
1066 0x812607c1, 1070 0x812607c1,
@@ -1106,7 +1110,7 @@ const uint32_t in4_pdsp1[] = {
1106 0x11c01a00, 1110 0x11c01a00,
1107 0x51000003, 1111 0x51000003,
1108 0x0b057a21, 1112 0x0b057a21,
1109 0x21042900, 1113 0x21042d00,
1110 0xd1010105, 1114 0xd1010105,
1111 0x11071a00, 1115 0x11071a00,
1112 0x51000003, 1116 0x51000003,
@@ -1118,11 +1122,11 @@ const uint32_t in4_pdsp1[] = {
1118 0x00214646, 1122 0x00214646,
1119 0x00018686, 1123 0x00018686,
1120 0x24000042, 1124 0x24000042,
1121 0x21043b00, 1125 0x21043f00,
1122 0x00228686, 1126 0x00228686,
1123 0xc901680a, 1127 0xc901680a,
1124 0x00224646, 1128 0x00224646,
1125 0x21043b00, 1129 0x21043f00,
1126 0xc9026804, 1130 0xc9026804,
1127 0x0b057a02, 1131 0x0b057a02,
1128 0x00028686, 1132 0x00028686,
@@ -1166,9 +1170,9 @@ const uint32_t in4_pdsp1[] = {
1166 0x69010206, 1170 0x69010206,
1167 0xd1076603, 1171 0xd1076603,
1168 0x2400002e, 1172 0x2400002e,
1169 0x21046400, 1173 0x21046800,
1170 0x2400012e, 1174 0x2400012e,
1171 0x21046400, 1175 0x21046800,
1172 0x69050214, 1176 0x69050214,
1173 0x1046462e, 1177 0x1046462e,
1174 0x81186787, 1178 0x81186787,
@@ -1277,4 +1281,4 @@ const uint32_t in4_pdsp1[] = {
1277 0x81011961, 1281 0x81011961,
1278 0x209e0000 }; 1282 0x209e0000 };
1279 1283
1280const int in4_pdsp1Size = sizeof(in4_pdsp1); 1284const int in4_pdsp1Size = sizeof(in4_pdsp1);
diff --git a/fw/v1/pa2_post_pdsp0_bin.c b/fw/v1/pa2_post_pdsp0_bin.c
index 40b7f32..a9a6a74 100644
--- a/fw/v1/pa2_post_pdsp0_bin.c
+++ b/fw/v1/pa2_post_pdsp0_bin.c
@@ -1401,4 +1401,4 @@ const uint32_t post_pdsp0[] = {
1401 0x6ef5f4fe, 1401 0x6ef5f4fe,
1402 0x209e0000 }; 1402 0x209e0000 };
1403 1403
1404const int post_pdsp0Size = sizeof(post_pdsp0); 1404const int post_pdsp0Size = sizeof(post_pdsp0);
diff --git a/fw/v1/pa2_post_pdsp1_bin.c b/fw/v1/pa2_post_pdsp1_bin.c
index 84c13e8..8a942d2 100644
--- a/fw/v1/pa2_post_pdsp1_bin.c
+++ b/fw/v1/pa2_post_pdsp1_bin.c
@@ -980,4 +980,4 @@ const uint32_t post_pdsp1[] = {
980 0x6ec585fe, 980 0x6ec585fe,
981 0x209e0000 }; 981 0x209e0000 };
982 982
983const int post_pdsp1Size = sizeof(post_pdsp1); 983const int post_pdsp1Size = sizeof(post_pdsp1);
diff --git a/fw/v1/pacfgcmn.p b/fw/v1/pacfgcmn.p
index ce998e4..5080986 100644..100755
--- a/fw/v1/pacfgcmn.p
+++ b/fw/v1/pacfgcmn.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ******************************************************************************************* 35// *******************************************************************************************
2// * FILE PURPOSE: Perform common PA configuration 36// * FILE PURPOSE: Perform common PA configuration
3// ******************************************************************************************* 37// *******************************************************************************************
diff --git a/fw/v1/pafw.h b/fw/v1/pafw.h
index 261c798..720adfb 100644..100755
--- a/fw/v1/pafw.h
+++ b/fw/v1/pafw.h
@@ -27,7 +27,7 @@
27 * 27 *
28 * REVISION HISTORY: 28 * REVISION HISTORY:
29 * 29 *
30 * Copyright (c) Texas Instruments Incorporated 2013 30 * Copyright (c) Texas Instruments Incorporated 2013-2016
31 * 31 *
32 * Redistribution and use in source and binary forms, with or without 32 * Redistribution and use in source and binary forms, with or without
33 * modification, are permitted provided that the following conditions 33 * modification, are permitted provided that the following conditions
diff --git a/fw/v1/pam.p b/fw/v1/pam.p
index d956a1b..149a57c 100644..100755
--- a/fw/v1/pam.p
+++ b/fw/v1/pam.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ************************************************************************************************ 35// ************************************************************************************************
2// * FILE PURPOSE: Packet processing on PDSPs without LUTs 36// * FILE PURPOSE: Packet processing on PDSPs without LUTs
3// ************************************************************************************************ 37// ************************************************************************************************
diff --git a/fw/v1/parse1.p b/fw/v1/parse1.p
index d672ef8..703a467 100644..100755
--- a/fw/v1/parse1.p
+++ b/fw/v1/parse1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ******************************************************************************** 35// ********************************************************************************
2// * FILE PURPOSE: Packet parsing functions 36// * FILE PURPOSE: Packet parsing functions
3// ******************************************************************************** 37// ********************************************************************************
@@ -807,7 +841,8 @@ l_l2Ipv6Proc_exthdrCheck:
807 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP 841 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP
808 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE 842 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE
809 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT 843 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT
810 qbeq l_l2Ipv6Proc_exthdrNext, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT 844// below would save one cycle since jmp is to header done.
845// qbeq l_l2Ipv6Proc_exthdrDone, s_ipv6Frag_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT
811 jmp l_l2Ipv6Proc_exthdrDone 846 jmp l_l2Ipv6Proc_exthdrDone
812 847
813l_l2Ipv6Proc_exthdrNext: 848l_l2Ipv6Proc_exthdrNext:
@@ -2449,7 +2484,8 @@ l_c1Ipv6ExtReasm_exthdrCheck:
2449 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP 2484 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_HOP_BY_HOP
2450 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE 2485 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_ROUTE
2451 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT 2486 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_DEST_OPT
2452 qbeq l_c1Ipv6ExtReasm_exthdrNext, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT 2487// below would save one cycle since jmp is to header done.
2488// qbeq l_c1Ipv6ExtReasm_exthdrDone, s_ipv6Reassm_ctrl.nextHdr, IP_PROTO_NEXT_IPV6_NO_NEXT
2453 jmp l_c1Ipv6ExtReasm_exthdrDone 2489 jmp l_c1Ipv6ExtReasm_exthdrDone
2454 2490
2455l_c1Ipv6ExtReasm_exthdrNext: 2491l_c1Ipv6ExtReasm_exthdrNext:
diff --git a/fw/v1/parse_tx.p b/fw/v1/parse_tx.p
index d278279..2f55260 100644..100755
--- a/fw/v1/parse_tx.p
+++ b/fw/v1/parse_tx.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1// ******************************************************************************** 35// ********************************************************************************
2// * FILE PURPOSE: Tx Packet parsing functions 36// * FILE PURPOSE: Tx Packet parsing functions
3// ******************************************************************************** 37// ********************************************************************************
diff --git a/fw/v1/parsescope.h b/fw/v1/parsescope.h
index 8f8c28c..d68fc2e 100644..100755
--- a/fw/v1/parsescope.h
+++ b/fw/v1/parsescope.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PARSESCOPE_H 36#ifndef _PARSESCOPE_H
2#define _PARSESCOPE_H 1 37#define _PARSESCOPE_H 1
3 38
diff --git a/fw/v1/pdsp_ethproto.h b/fw/v1/pdsp_ethproto.h
index d9b9d9d..27a26a2 100644..100755
--- a/fw/v1/pdsp_ethproto.h
+++ b/fw/v1/pdsp_ethproto.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_ETHPROTO_H 36#ifndef _PDSP_ETHPROTO_H
2#define _PDSP_ETHPROTO_H 1 37#define _PDSP_ETHPROTO_H 1
3// ************************************************************************************** 38// **************************************************************************************
diff --git a/fw/v1/pdsp_ipproto.h b/fw/v1/pdsp_ipproto.h
index cab7fb1..23dd12e 100644..100755
--- a/fw/v1/pdsp_ipproto.h
+++ b/fw/v1/pdsp_ipproto.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_IPPROTO_H 36#ifndef _PDSP_IPPROTO_H
2#define _PDSP_IPPROTO_H 1 37#define _PDSP_IPPROTO_H 1
3// ****************************************************************************** 38// ******************************************************************************
diff --git a/fw/v1/pdsp_mem.h b/fw/v1/pdsp_mem.h
index 29c19d9..b07db4b 100644..100755
--- a/fw/v1/pdsp_mem.h
+++ b/fw/v1/pdsp_mem.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PA_MEM_H 36#ifndef _PA_MEM_H
2#define _PA_MEM_H 1 37#define _PA_MEM_H 1
3 38
diff --git a/fw/v1/pdsp_mem2.h b/fw/v1/pdsp_mem2.h
index 7aec54f..dece212 100644..100755
--- a/fw/v1/pdsp_mem2.h
+++ b/fw/v1/pdsp_mem2.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PA_MEM2_H 36#ifndef _PA_MEM2_H
2#define _PA_MEM2_H 1 37#define _PA_MEM2_H 1
3 38
diff --git a/fw/v1/pdsp_pa.h b/fw/v1/pdsp_pa.h
index 95adb61..7937286 100644..100755
--- a/fw/v1/pdsp_pa.h
+++ b/fw/v1/pdsp_pa.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_PA_H 36#ifndef _PDSP_PA_H
2#define _PDSP_PA_H 1 37#define _PDSP_PA_H 1
3 38
@@ -1262,6 +1297,9 @@
1262#define PA_COMMAND_RESULT_INVALID_CMDSET_IDX 19 1297#define PA_COMMAND_RESULT_INVALID_CMDSET_IDX 19
1263#define PA_COMMAND_RESULT_USR_STATS_INVALID_CONFIG 20 1298#define PA_COMMAND_RESULT_USR_STATS_INVALID_CONFIG 20
1264 1299
1300// LUT2 is full
1301#define PA_COMMAND_RESULT_LUT2_FULL 21
1302
1265// Compute Checksum/CRC command 1303// Compute Checksum/CRC command
1266.struct struct_cmdChkCrc 1304.struct struct_cmdChkCrc
1267 .u8 cmdId 1305 .u8 cmdId
diff --git a/fw/v1/pdsp_protos.h b/fw/v1/pdsp_protos.h
index 228dd03..24d480c 100644..100755
--- a/fw/v1/pdsp_protos.h
+++ b/fw/v1/pdsp_protos.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_PROTOS_H 36#ifndef _PDSP_PROTOS_H
2#define _PDSP_PROTOS_H 1 37#define _PDSP_PROTOS_H 1
3 38
diff --git a/fw/v1/pdsp_subs.h b/fw/v1/pdsp_subs.h
index 4395700..446ab1f 100644..100755
--- a/fw/v1/pdsp_subs.h
+++ b/fw/v1/pdsp_subs.h
@@ -1,3 +1,38 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
35
1#ifndef _PDSP_SUBS_H 36#ifndef _PDSP_SUBS_H
2#define _PDSP_SUBS_H 1 37#define _PDSP_SUBS_H 1
3 38
diff --git a/fw/v1/pm_config.h b/fw/v1/pm_config.h
index 8823419..f7f547b 100644..100755
--- a/fw/v1/pm_config.h
+++ b/fw/v1/pm_config.h
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1 35
2//============================================================================ 36//============================================================================
3// pm_config.h 37// pm_config.h
@@ -434,6 +468,7 @@
434#define tStatus_Lut2AddDelBusy t10 468#define tStatus_Lut2AddDelBusy t10
435#define tStatus_Lut2LookupBusy t11 469#define tStatus_Lut2LookupBusy t11
436#define tStatus_Lut2MatchData t12 470#define tStatus_Lut2MatchData t12
471#define tStatus_Lut2Full t13
437 472
438 473
439//----------------------------------------------------- 474//-----------------------------------------------------
diff --git a/fw/v1/pm_constants.h b/fw/v1/pm_constants.h
index abbf6bb..3707830 100644..100755
--- a/fw/v1/pm_constants.h
+++ b/fw/v1/pm_constants.h
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1 35
2//============================================================================ 36//============================================================================
3// pm_constants.h 37// pm_constants.h
diff --git a/fw/v1/post_pdsp0.p b/fw/v1/post_pdsp0.p
index 86ccc84..aa2323e 100644..100755
--- a/fw/v1/post_pdsp0.p
+++ b/fw/v1/post_pdsp0.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_FIRST_PDSP 36#define PASS_FIRST_PDSP
3#define PASS_PROC_PKT_FORWARD 37#define PASS_PROC_PKT_FORWARD
diff --git a/fw/v1/post_pdsp1.p b/fw/v1/post_pdsp1.p
index 5e3bab2..7e6fd53 100644..100755
--- a/fw/v1/post_pdsp1.p
+++ b/fw/v1/post_pdsp1.p
@@ -1,3 +1,37 @@
1//
2// *
3// * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
4// *
5// *
6// * Redistribution and use in source and binary forms, with or without
7// * modification, are permitted provided that the following conditions
8// * are met:
9// *
10// * Redistributions of source code must retain the above copyright
11// * notice, this list of conditions and the following disclaimer.
12// *
13// * Redistributions in binary form must reproduce the above copyright
14// * notice, this list of conditions and the following disclaimer in the
15// * documentation and/or other materials provided with the
16// * distribution.
17// *
18// * Neither the name of Texas Instruments Incorporated nor the names of
19// * its contributors may be used to endorse or promote products derived
20// * from this software without specific prior written permission.
21// *
22// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33// *
34// *
1#include "pm_config.h" 35#include "pm_config.h"
2#define PASS_LAST_PDSP 36#define PASS_LAST_PDSP
3#define PASS_PROC_PKT_FORWARD 37#define PASS_PROC_PKT_FORWARD
diff --git a/nss_if.h b/nss_if.h
index 23796ba..c42c49b 100644
--- a/nss_if.h
+++ b/nss_if.h
@@ -90,17 +90,39 @@ extern "C" {
90#define NSS_NUM_RX_PKTDMA_CHANNELS_GEN2 91 /**< Number of PKTDMA Receive channels at second generation NSS */ 90#define NSS_NUM_RX_PKTDMA_CHANNELS_GEN2 91 /**< Number of PKTDMA Receive channels at second generation NSS */
91#define NSS_NUM_TX_PKTDMA_CHANNELS_GEN2 21 /**< Number of PKTDMA Transmit channels at second generation NSS */ 91#define NSS_NUM_TX_PKTDMA_CHANNELS_GEN2 21 /**< Number of PKTDMA Transmit channels at second generation NSS */
92 92
93/*@}*/ /* nssPktDmaGen2 */
94/** @}*/ /* NSS PKTDMA definitions for Second Generation NSS */
95
96/**
97 * @defgroup nssPktDmaLite NSS PKTDMA definitions for NSS Lite
98 * @ingroup nss_if_constants
99 * @{
100 *
101 * @name NSS PKTDMA definitions for NSS Lite
102 *
103 * Define NSS PKTDMA related constants for NSS Lite
104 */
105/*@{*/
106
107#define NSS_NUM_RX_PKTDMA_CHANNELS_LITE 32 /**< Number of PKTDMA Receive channels at NSS Lite */
108#define NSS_NUM_TX_PKTDMA_CHANNELS_LITE 21 /**< Number of PKTDMA Transmit channels at NSS Lite*/
109
110/*@}*/ /* nssPktDmaLite */
111/** @}*/ /* NSS PKTDMA definitions for NSS Lite */
112
93 113
94/** NSS maximum number of PKTDMA channels in all devices */ 114/** NSS maximum number of PKTDMA channels in all devices */
95#define NSS_MAX_RX_PKTDMA_CHANNELS 91 115#define NSS_MAX_RX_PKTDMA_CHANNELS 91
96#if (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN1) || \ 116#if (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN1) || \
97 (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN2) 117 (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_GEN2) || \
118 (NSS_MAX_RX_PKTDMA_CHANNELS < NSS_NUM_RX_PKTDMA_CHANNELS_LITE)
98#error check NSS_MAX_RX_PKTDMA_CHANNELS 119#error check NSS_MAX_RX_PKTDMA_CHANNELS
99#endif 120#endif
100 121
101#define NSS_MAX_TX_PKTDMA_CHANNELS 21 122#define NSS_MAX_TX_PKTDMA_CHANNELS 21
102#if (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN1) || \ 123#if (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN1) || \
103 (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN2) 124 (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_GEN2) || \
125 (NSS_MAX_TX_PKTDMA_CHANNELS < NSS_NUM_TX_PKTDMA_CHANNELS_LITE)
104#error check NSS_MAX_TX_PKTDMA_CHANNELS 126#error check NSS_MAX_TX_PKTDMA_CHANNELS
105#endif 127#endif
106 128
@@ -119,9 +141,12 @@ extern "C" {
119 */ 141 */
120/*@{*/ 142/*@{*/
121 143
122#ifdef NSS_GEN2 144#if defined (NSS_GEN2)
123#define NSS_NUM_RX_PKTDMA_CHANNELS NSS_NUM_RX_PKTDMA_CHANNELS_GEN2 /**< Number of PKTDMA Receive channels at NSS */ 145#define NSS_NUM_RX_PKTDMA_CHANNELS NSS_NUM_RX_PKTDMA_CHANNELS_GEN2 /**< Number of PKTDMA Receive channels at NSS */
124#define NSS_NUM_TX_PKTDMA_CHANNELS NSS_NUM_TX_PKTDMA_CHANNELS_GEN2 /**< Number of PKTDMA Transmit channels at NSS */ 146#define NSS_NUM_TX_PKTDMA_CHANNELS NSS_NUM_TX_PKTDMA_CHANNELS_GEN2 /**< Number of PKTDMA Transmit channels at NSS */
147#elif defined (NSS_LITE)
148#define NSS_NUM_RX_PKTDMA_CHANNELS NSS_NUM_RX_PKTDMA_CHANNELS_LITE /**< Number of PKTDMA Receive channels at NSS */
149#define NSS_NUM_TX_PKTDMA_CHANNELS NSS_NUM_TX_PKTDMA_CHANNELS_LITE /**< Number of PKTDMA Transmit channels at NSS */
125#else 150#else
126#define NSS_NUM_RX_PKTDMA_CHANNELS NSS_NUM_RX_PKTDMA_CHANNELS_GEN1 /**< Number of PKTDMA Receive channels at NSS */ 151#define NSS_NUM_RX_PKTDMA_CHANNELS NSS_NUM_RX_PKTDMA_CHANNELS_GEN1 /**< Number of PKTDMA Receive channels at NSS */
127#define NSS_NUM_TX_PKTDMA_CHANNELS NSS_NUM_TX_PKTDMA_CHANNELS_GEN1 /**< Number of PKTDMA Transmit channels at NSS */ 152#define NSS_NUM_TX_PKTDMA_CHANNELS NSS_NUM_TX_PKTDMA_CHANNELS_GEN1 /**< Number of PKTDMA Transmit channels at NSS */
@@ -192,9 +217,12 @@ extern "C" {
192 */ 217 */
193/*@{*/ 218/*@{*/
194 219
195#ifdef NSS_GEN2 220#if defined (NSS_GEN2)
196#define NSS_PA_NUM_PDSPS NSS_PA_NUM_PDSPS_GEN2 /**< Number of PASS PDSPs at NSS */ 221#define NSS_PA_NUM_PDSPS NSS_PA_NUM_PDSPS_GEN2 /**< Number of PASS PDSPs at NSS */
197#define NSS_SA_NUM_PDSPS NSS_SA_NUM_PDSPS_GEN2 /**< Number of SASS PDSPs at NSS */ 222#define NSS_SA_NUM_PDSPS NSS_SA_NUM_PDSPS_GEN2 /**< Number of SASS PDSPs at NSS */
223#elif defined (NSS_LITE)
224#define NSS_PA_NUM_PDSPS 0 /**< Number of PASS PDSPs at NSS */
225#define NSS_SA_NUM_PDSPS 0 /**< Number of SASS PDSPs at NSS */
198#else 226#else
199#define NSS_PA_NUM_PDSPS NSS_PA_NUM_PDSPS_GEN1 /**< Number of PASS PDSPs at NSS */ 227#define NSS_PA_NUM_PDSPS NSS_PA_NUM_PDSPS_GEN1 /**< Number of PASS PDSPs at NSS */
200#define NSS_SA_NUM_PDSPS NSS_SA_NUM_PDSPS_GEN1 /**< Number of SASS PDSPs at NSS */ 228#define NSS_SA_NUM_PDSPS NSS_SA_NUM_PDSPS_GEN1 /**< Number of SASS PDSPs at NSS */
@@ -285,10 +313,41 @@ extern "C" {
285/*@}*/ /* nssTxQueueGen2 */ 313/*@}*/ /* nssTxQueueGen2 */
286/** @}*/ /* NSS Transmit Queue related definitions for Second Generation NSS */ 314/** @}*/ /* NSS Transmit Queue related definitions for Second Generation NSS */
287 315
316/**
317 * @defgroup nssTxQueueLite NSS Transmit Queue related definitions for NSS Lite
318 * @ingroup nss_if_constants
319 * @{
320 *
321 * @name NSS Transmit Queue related definitions for NSS Lite
322 *
323 * Define NSS Transmit Queue related constants for NSS Lite
324 */
325/*@{*/
326
327
328#define NSS_NUM_TX_QUEUES_LITE 9 /**< Number of Transmit Queues at NSS Lite */
329
330
331#define NSS_SA_QUEUE_SASS_INDEX_LITE 0 /**< Offset to the first SASS input queue at NSS Lite */
332#define NSS_SA_QUEUE_SASS2_INDEX_LITE 0 /**< Offset to the second SASS input queue at NSS Lite */
333#define NSS_CPSW_QUEUE_ETH_INDEX_LITE 1 /**< Offset to the CPSW input queue at NSS Lite */
334#define NSS_CPSW_QUEUE_ETH_PRI0_INDEX_LITE 1 /**< Offset to the CPSW input queue for priority 0 packets at NSS Lite */
335#define NSS_CPSW_QUEUE_ETH_PRI1_INDEX_LITE 2 /**< Offset to the CPSW input queue for priority 1 packets at NSS Lite */
336#define NSS_CPSW_QUEUE_ETH_PRI2_INDEX_LITE 3 /**< Offset to the CPSW input queue for priority 2 packets at NSS Lite */
337#define NSS_CPSW_QUEUE_ETH_PRI3_INDEX_LITE 4 /**< Offset to the CPSW input queue for priority 3 packets at NSS Lite */
338#define NSS_CPSW_QUEUE_ETH_PRI4_INDEX_LITE 5 /**< Offset to the CPSW input queue for priority 4 packets at NSS Lite */
339#define NSS_CPSW_QUEUE_ETH_PRI5_INDEX_LITE 6 /**< Offset to the CPSW input queue for priority 5 packets at NSS Lite */
340#define NSS_CPSW_QUEUE_ETH_PRI6_INDEX_LITE 7 /**< Offset to the CPSW input queue for priority 6 packets at NSS Lite */
341#define NSS_CPSW_QUEUE_ETH_PRI7_INDEX_LITE 8 /**< Offset to the CPSW input queue for priority 7 packets at NSS Lite */
342
343/*@}*/ /* nssTxQueueLite */
344/** @}*/ /* NSS Transmit Queue related definitions for NSS Lite */
345
288/** NSS maximum number of Tx queues in all devices */ 346/** NSS maximum number of Tx queues in all devices */
289#define NSS_MAX_TX_QUEUES 21 347#define NSS_MAX_TX_QUEUES 21
290#if (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN1) || \ 348#if (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN1) || \
291 (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN2) 349 (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_GEN2) || \
350 (NSS_MAX_TX_QUEUES < NSS_NUM_TX_QUEUES_LITE)
292#error check NSS_MAX_TX_QUEUES 351#error check NSS_MAX_TX_QUEUES
293#endif 352#endif
294 353
@@ -303,7 +362,7 @@ extern "C" {
303 */ 362 */
304/*@{*/ 363/*@{*/
305 364
306#ifdef NSS_GEN2 365#if defined (NSS_GEN2)
307#define NSS_NUM_TX_QUEUES NSS_NUM_TX_QUEUES_GEN2 /**< Number of Transmit Queues at NSS */ 366#define NSS_NUM_TX_QUEUES NSS_NUM_TX_QUEUES_GEN2 /**< Number of Transmit Queues at NSS */
308 367
309#define NSS_PA_QUEUE_INPUT_INDEX NSS_PA_QUEUE_INPUT_INDEX_GEN2 /**< Offset to the system input queue at NSS */ 368#define NSS_PA_QUEUE_INPUT_INDEX NSS_PA_QUEUE_INPUT_INDEX_GEN2 /**< Offset to the system input queue at NSS */
@@ -333,6 +392,35 @@ extern "C" {
333#define NSS_CPSW_QUEUE_ETH_PRI6_INDEX NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN2 /**< Offset to the CPSW input queue for priority 6 packets at NSS */ 392#define NSS_CPSW_QUEUE_ETH_PRI6_INDEX NSS_CPSW_QUEUE_ETH_PRI6_INDEX_GEN2 /**< Offset to the CPSW input queue for priority 6 packets at NSS */
334#define NSS_CPSW_QUEUE_ETH_PRI7_INDEX NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN2 /**< Offset to the CPSW input queue for priority 7 packets at NSS */ 393#define NSS_CPSW_QUEUE_ETH_PRI7_INDEX NSS_CPSW_QUEUE_ETH_PRI7_INDEX_GEN2 /**< Offset to the CPSW input queue for priority 7 packets at NSS */
335 394
395#elif defined (NSS_LITE)
396#define NSS_NUM_TX_QUEUES NSS_NUM_TX_QUEUES_LITE /**< Number of Transmit Queues at NSS */
397
398#define NSS_PA_QUEUE_INPUT_INDEX -1 /**< Offset to the system input queue at NSS */
399#define NSS_PA_QUEUE_MAC_INDEX -1 /**< Offset to the MAC input queue at NSS */
400#define NSS_PA_QUEUE_OUTER_IP_INDEX -1 /**< Offset to the (Outer) IP input queue at NSS */
401#define NSS_PA_QUEUE_INNER_IP_INDEX -1 /**< Offset to the Inner IP input queue at NSS */
402#define NSS_PA_QUEUE_LUT2_INDEX -1 /**< Offset to the LUT2 (UDP/TCP) input queue at NSS */
403#define NSS_PA_QUEUE_IPSEC_INDEX -1 /**< Offset to the first layer IPSEC input queue at NSS */
404#define NSS_PA_QUEUE_IPSEC2_INDEX -1 /**< Offset to the second layer IPSEC input queue at NSS */
405#define NSS_PA_QUEUE_POST_INDEX -1 /**< Offset to the post-classification input queue at NSS */
406#define NSS_PA_QUEUE_TXCMD_INDEX -1 /**< Offset to the Tx command input queue at NSS */
407#define NSS_PA_QUEUE_FIREWALL_INDEX -1 /**< Offset to the first Firewall (ACL) input queue at NSS */
408#define NSS_PA_QUEUE_FIREWALL2_INDEX -1 /**< Offset to the second Firewall (ACL) input queue at NSS */
409#define NSS_PA_QUEUE_EGRESS0_INDEX -1 /**< Offset to the input queue of the first egress stage at NSS */
410#define NSS_PA_QUEUE_EGRESS1_INDEX -1 /**< Offset to the input queue of the second egress stage at NSS */
411#define NSS_PA_QUEUE_EGRESS2_INDEX -1 /**< Offset to the input queue of the third egress stage at NSS */
412#define NSS_SA_QUEUE_SASS_INDEX NSS_SA_QUEUE_SASS_INDEX_LITE /**< Offset to the first SASS input queue at NSS */
413#define NSS_SA_QUEUE_SASS2_INDEX NSS_SA_QUEUE_SASS2_INDEX_LITE /**< Offset to the second SASS input queue at NSS */
414#define NSS_CPSW_QUEUE_ETH_INDEX NSS_CPSW_QUEUE_ETH_INDEX_LITE /**< Offset to the CPSW input queue at NSS */
415#define NSS_CPSW_QUEUE_ETH_PRI0_INDEX NSS_CPSW_QUEUE_ETH_PRI0_INDEX_LITE /**< Offset to the CPSW input queue for priority 0 packets at NSS */
416#define NSS_CPSW_QUEUE_ETH_PRI1_INDEX NSS_CPSW_QUEUE_ETH_PRI1_INDEX_LITE /**< Offset to the CPSW input queue for priority 1 packets at NSS */
417#define NSS_CPSW_QUEUE_ETH_PRI2_INDEX NSS_CPSW_QUEUE_ETH_PRI2_INDEX_LITE /**< Offset to the CPSW input queue for priority 2 packets at NSS */
418#define NSS_CPSW_QUEUE_ETH_PRI3_INDEX NSS_CPSW_QUEUE_ETH_PRI3_INDEX_LITE /**< Offset to the CPSW input queue for priority 3 packets at NSS */
419#define NSS_CPSW_QUEUE_ETH_PRI4_INDEX NSS_CPSW_QUEUE_ETH_PRI4_INDEX_LITE /**< Offset to the CPSW input queue for priority 4 packets at NSS */
420#define NSS_CPSW_QUEUE_ETH_PRI5_INDEX NSS_CPSW_QUEUE_ETH_PRI5_INDEX_LITE /**< Offset to the CPSW input queue for priority 5 packets at NSS */
421#define NSS_CPSW_QUEUE_ETH_PRI6_INDEX NSS_CPSW_QUEUE_ETH_PRI6_INDEX_LITE /**< Offset to the CPSW input queue for priority 6 packets at NSS */
422#define NSS_CPSW_QUEUE_ETH_PRI7_INDEX NSS_CPSW_QUEUE_ETH_PRI7_INDEX_LITE /**< Offset to the CPSW input queue for priority 7 packets at NSS */
423
336#else 424#else
337 425
338#define NSS_NUM_TX_QUEUES NSS_NUM_TX_QUEUES_GEN1 /**< Number of Transmit Queues at NSS */ 426#define NSS_NUM_TX_QUEUES NSS_NUM_TX_QUEUES_GEN1 /**< Number of Transmit Queues at NSS */
diff --git a/pa.h b/pa.h
index e9558c8..693b627 100644
--- a/pa.h
+++ b/pa.h
@@ -482,6 +482,15 @@ extern "C" {
482 */ 482 */
483#define pa_SUB_SYSTEM_BASE_ADDR_NULL -42 483#define pa_SUB_SYSTEM_BASE_ADDR_NULL -42
484 484
485
486/**
487 * @def pa_LUT2_TABLE_FULL
488 * PASS LUT2 Table is full, no more entries can be added unless an
489 * entry is deleted to create a room to a next entry
490 */
491#define pa_LUT2_TABLE_FULL -43
492
493
485/*@}*/ 494/*@}*/
486/** @} */ 495/** @} */
487 496
@@ -3231,6 +3240,12 @@ paReturn_t Pa_close (Pa_Handle handle, void* bases[]);
3231 */ 3240 */
3232#define pa_CMD_PATCH_COUNT 20 3241#define pa_CMD_PATCH_COUNT 20
3233 3242
3243/* @def pa_CMD_EMAC_CRC_VERIFY
3244 * Perfrom the Ethernet CRC verification for egress traffic. (Applicable only for Gen1)
3245 * Refer to the description of data structure @ref paCmdEmacCrcVerify_t for details.
3246 */
3247
3248#define pa_CMD_EMAC_CRC_VERIFY 21
3234 3249
3235/* @} */ 3250/* @} */
3236/** @} */ 3251/** @} */
@@ -3912,6 +3927,34 @@ typedef struct {
3912} paCmdVerifyPktErr_t; 3927} paCmdVerifyPktErr_t;
3913 3928
3914/** 3929/**
3930 * @ingroup palld_api_structures
3931 * @brief EMAC CRC Verification information
3932 *
3933 * @details paCmdEmacCrcVerify_t is used to create the EMAC CRC verification command which is used to instruct the PASS to
3934 * perform Ethernet CRC verification for forwarding to-network traffic. The egress packet with this command is
3935 * expected to be a forwarding Ethernet packet with CRC. PASS will perform CRC verification against the CRC
3936 * value at the packet, if CRC is good, the packet will be forwarded to the desired EMAC port and if CRC
3937 * is bad, then the packet will be dropped.
3938 * Application should invoke Pa_configCrcEngine() API to format the CRC configuration packet for Ethernet CRC and
3939 * then forward configuration packet to Tx command prtocessing PDSP (PDSP5) before this command is used.
3940 *
3941 * This command is used to provide a workaround for following GbE errata at some keystone devices:
3942 *
3943 * The GbE switch may drop packets in TX path when:
3944 * - full gigabit speeds are sustained and
3945 * - the packet size is not a 32 bit multiple (1499, 1498, 1497, 1495, etc.) and
3946 * - Ethernet CRC is included in the last 4 bytes of the packet sent to the switch
3947 *
3948 * @note The Ethernet CRC Verify command can not be combined with any other tx commands, all other commands will be ignored
3949 * by PASS when this command is processed.
3950 *
3951 */
3952
3953typedef struct {
3954 uint16_t emacPort; /**< Specify the output EMAC port number as define at @ref paEmacPort. */
3955} paCmdEmacCrcVerify_t;
3956
3957/**
3915 * @defgroup efOpCtrlInfo PA Egress Flow Command Control Info Bit Definitions 3958 * @defgroup efOpCtrlInfo PA Egress Flow Command Control Info Bit Definitions
3916 * @ingroup palld_api_constants 3959 * @ingroup palld_api_constants
3917 * @{ 3960 * @{
@@ -4010,6 +4053,7 @@ typedef struct {
4010 paPatchMsgLenInfo_t patchMsgLen; /**< Specify Patch Message Length command specific parameters */ 4053 paPatchMsgLenInfo_t patchMsgLen; /**< Specify Patch Message Length command specific parameters */
4011 paCmdVerifyPktErr_t verifyPktErr; /**< Specify Packet error Verification command specific parameters */ 4054 paCmdVerifyPktErr_t verifyPktErr; /**< Specify Packet error Verification command specific parameters */
4012 paCmdSplitOp_t split; /**< Specify Split command sepcific parameters */ 4055 paCmdSplitOp_t split; /**< Specify Split command sepcific parameters */
4056 paCmdEmacCrcVerify_t emacCrc;/**< Specify the EMAC CRC Verify command specific parameters */
4013 paCmdEfOp_t efOp; /**< Specify Egress Flow operation command specific parameters (PASS Gen2 only) */ 4057 paCmdEfOp_t efOp; /**< Specify Egress Flow operation command specific parameters (PASS Gen2 only) */
4014 paPatchTime_t patchTime; /**< Specify insert time in the messages like Ethernet OAM packets (PASS Gen2 only)*/ 4058 paPatchTime_t patchTime; /**< Specify insert time in the messages like Ethernet OAM packets (PASS Gen2 only)*/
4015 paPatchCount_t patchCount; /**< Specify insert count in the messages like Ethernet OAM packets (PASS Gen2 only)*/ 4059 paPatchCount_t patchCount; /**< Specify insert count in the messages like Ethernet OAM packets (PASS Gen2 only)*/
diff --git a/package.xdc b/package.xdc
index 66b4f16..3a90a04 100755..100644
--- a/package.xdc
+++ b/package.xdc
@@ -6,10 +6,10 @@
6 * DESCRIPTION: 6 * DESCRIPTION:
7 * This file contains the package specification for the CPPI LLD library 7 * This file contains the package specification for the CPPI LLD library
8 * 8 *
9 * Copyright (C) 2009-2015, Texas Instruments, Inc. 9 * Copyright (C) 2009-2016, Texas Instruments, Inc.
10 *****************************************************************************/ 10 *****************************************************************************/
11 11
12package ti.drv.pa[3,0,1,7] { 12package ti.drv.pa[3,0,1,8] {
13 module Settings; 13 module Settings;
14} 14}
15 15
diff --git a/pasahost.h b/pasahost.h
index e9eb36b..e490b05 100644
--- a/pasahost.h
+++ b/pasahost.h
@@ -174,8 +174,24 @@ extern "C" {
174#define PASAHO_PAMOD_PATCH_MSG_LEN PASAHO_PAMOD_GROUP_7 174#define PASAHO_PAMOD_PATCH_MSG_LEN PASAHO_PAMOD_GROUP_7
175 175
176/** 176/**
177 * @def PASAHO_PAMOD_EMAC_CRC_VERIFY
178 * Instruct PDSP to perform Ethernet CRC verification for egress traffic. This command is provided as a workarond
179 * for the following GbE errata at some keystone devices. (Gen1 support only)
180 *
181 * The GbE switch may drop packets in TX path when:
182 * - full gigabit speeds are sustained and
183 * - the packet size is not a 32 bit multiple (1499, 1498, 1497, 1495, etc.) and
184 * - Ethernet CRC is included in the last 4 bytes of the packet sent to the switch
185 *
186 * @note The Ethernet CRC Verify command can not be combined with any other tx commands, all other commands will be ignored
187 * by PASS when this command is processed.
188 */
189
190#define PASAHO_PAMOD_EMAC_CRC_VERIFY PASAHO_PAMOD_GROUP_7
191
192/**
177 * @def PASAHO_PAMOD_PATCH_MSG_TIME 193 * @def PASAHO_PAMOD_PATCH_MSG_TIME
178 * Instruct PDSP to perform message time insert for packets such as Ethernet OAM. 194 * Instruct PDSP to perform message time insert for packets such as Ethernet OAM. (Gen2 support only)
179 */ 195 */
180#define PASAHO_PAMOD_PATCH_MSG_TIME PASAHO_PAMOD_GROUP_7 196#define PASAHO_PAMOD_PATCH_MSG_TIME PASAHO_PAMOD_GROUP_7
181 197
@@ -316,11 +332,12 @@ typedef enum {
316 332
317typedef enum { 333typedef enum {
318 334
319 PASAHO_SUB_CMD_DUMMY = 0, /**< Dummy */ 335 PASAHO_SUB_CMD_DUMMY = 0, /**< Dummy */
320 PASAHO_SUB_CMD_IP_FRAG, /**< IPv4 fragmentation */ 336 PASAHO_SUB_CMD_IP_FRAG = 1, /**< IPv4 fragmentation */
321 PASAHO_SUB_CMD_PATCH_MSG_LEN, /**< Message length Patching */ 337 PASAHO_SUB_CMD_PATCH_MSG_LEN = 2, /**< Message length Patching */
322 PASAHO_SUB_CMD_INS_TIME, /**< Ethernet EOAM insert time at specified offset */ 338 PASAHO_SUB_CMD_INS_TIME = 3, /**< Ethernet EOAM insert time at specified offset (Gen2 only) */
323 PASAHO_SUB_CMD_INS_COUNT /**< Ethernet EOAM insert count at specified offset */ 339 PASAHO_SUB_CMD_INS_COUNT = 4, /**< Ethernet EOAM insert count at specified offset (Gen2 only) */
340 PASAHO_SUB_CMD_EMAC_CRC_VERIFY = 3 /**< Ethernet CRC Verification (Gen1 only)*/
324} pasaho_SubCmdCode_e; 341} pasaho_SubCmdCode_e;
325/*@}*/ 342/*@}*/
326/** @} */ 343/** @} */
@@ -1326,6 +1343,36 @@ typedef struct pasahoEfOp_s {
1326/** @} */ 1343/** @} */
1327 1344
1328 1345
1346/* EMAC CRC Verify command */
1347/**
1348 * @ingroup pasaho_if_structures
1349 * @brief pasahoEmacCrcVerify_t defines the Ethernet CRC Verify command. The command structure is defined as 32 bit
1350 * values to work with the hardware regardless of the device endianness.
1351 *
1352 * @details
1353 */
1354
1355typedef struct pasahoEmacCrcVerify_s {
1356 uint32_t word0; /**< Contains the Ethernet CRC Verify command information. @ref PASAHO_emac_crc_verify_command_macros */
1357} pasahoEmacCrcVerify_t;
1358
1359/**
1360 * @defgroup PASAHO_emac_crc_verify_command_macros PASAHO EMAC CRC Verify Command Macros
1361 * @ingroup pasaho_if_macros
1362 * @{
1363 * @name PASAHO EMAC CRC Verify Command Macros
1364 * Macros used by the PASAHO EMAC CRC Verify Command
1365 *
1366 */
1367/*@{*/
1368
1369#define PASAHO_SET_SUB_CODE_EMAC_CRC_VERIFY(x) PASAHO_SET_BITFIELD((x)->word0, PASAHO_SUB_CMD_EMAC_CRC_VERIFY, 24, 5) /**< Set sub-command code to indicate EMAC CRC Verify command */
1370#define PASAHO_SET_EMACPORT(x,v) PASAHO_SET_BITFIELD((x)->word0, (v), 20, 4) /**< Specifies the one-based destination EMAC port number
1371 where 0 indicates standard ethernet switch forwarding */
1372
1373/*@}*/ /* @name PASAHO EMAC CRC Verify Command Macros */
1374/** @}*/ /* PASAHO_emac_crc_verify_command_macros */
1375
1329/* Insert Message time command */ 1376/* Insert Message time command */
1330/** 1377/**
1331 * @ingroup pasaho_if_structures 1378 * @ingroup pasaho_if_structures
diff --git a/src/v0/pa.c b/src/v0/pa.c
index 66c3d83..250eee3 100755
--- a/src/v0/pa.c
+++ b/src/v0/pa.c
@@ -4514,6 +4514,9 @@ paReturn_t Pa_forwardResult (Pa_Handle iHandle, void *vresult, paEntryHandle_t *
4514 *cmdDest = pa_CMD_TX_DEST_3; 4514 *cmdDest = pa_CMD_TX_DEST_3;
4515 ret = pa_RESUBMIT_COMMAND; 4515 ret = pa_RESUBMIT_COMMAND;
4516 } 4516 }
4517 else if (fcmd->commandResult == PAFRM_COMMAND_RESULT_LUT2_FULL) {
4518 ret = pa_LUT2_TABLE_FULL;
4519 }
4517 4520
4518 } else { 4521 } else {
4519 4522
@@ -6578,6 +6581,27 @@ paReturn_t Pa_formatTxCmd (int nCmd,
6578 } 6581 }
6579 break; 6582 break;
6580 6583
6584 case pa_CMD_EMAC_CRC_VERIFY:
6585 {
6586 paCmdEmacCrcVerify_t *emacCrc = &cmdInfo[index].params.emacCrc;
6587 pasahoEmacCrcVerify_t *emacCrcInfo = (pasahoEmacCrcVerify_t *)(bufAddr + cmdOffset);
6588
6589 if (nCmd == 1)
6590 {
6591 PASAHO_SET_CMDID (emacCrcInfo, PASAHO_PAMOD_EMAC_CRC_VERIFY);
6592 PASAHO_SET_SUB_CODE_EMAC_CRC_VERIFY(emacCrcInfo);
6593 PASAHO_SET_EMACPORT(emacCrcInfo, (uint8_t)emacCrc->emacPort);
6594 cmdOffset += sizeof(pasahoEmacCrcVerify_t);
6595 if(fAlignDetect)
6596 cmdBlockSize+=sizeof(pasahoEmacCrcVerify_t);
6597 }
6598 else
6599 {
6600 /* This command does not work with any other commands */
6601 return (pa_ERR_CONFIG);
6602 }
6603 }
6604 break;
6581 6605
6582 case pa_CMD_SA_PAYLOAD: 6606 case pa_CMD_SA_PAYLOAD:
6583 { 6607 {
diff --git a/src/v0/pafrm.h b/src/v0/pafrm.h
index e17c3dd..b60686e 100644..100755
--- a/src/v0/pafrm.h
+++ b/src/v0/pafrm.h
@@ -1185,8 +1185,10 @@ enum {
1185 PAFRM_COMMAND_RESULT_INVALID_C1_CUSTOM_IDX, /* Illegal Custom LUT1 index value used */ 1185 PAFRM_COMMAND_RESULT_INVALID_C1_CUSTOM_IDX, /* Illegal Custom LUT1 index value used */
1186 PAFRM_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX, /* Illegal Custom LUT2 index value used */ 1186 PAFRM_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX, /* Illegal Custom LUT2 index value used */
1187 PAFRM_COMMAND_RESULT_INVALID_CMDSET_IDX, /* Illegal Custom Command Set index value used */ 1187 PAFRM_COMMAND_RESULT_INVALID_CMDSET_IDX, /* Illegal Custom Command Set index value used */
1188 PAFRM_COMMAND_RESULT_USR_STATS_INVALID_CONFIG /* Illegal User Stats Configuration */ 1188 PAFRM_COMMAND_RESULT_USR_STATS_INVALID_CONFIG, /* Illegal User Stats Configuration */
1189 1189
1190 /* LUT2 entry failure - is FULL */
1191 PAFRM_COMMAND_RESULT_LUT2_FULL /* LUT2 is full */
1190 1192
1191}; 1193};
1192 1194
diff --git a/src/v1/pa.c b/src/v1/pa.c
index 52fd355..834bf4d 100755
--- a/src/v1/pa.c
+++ b/src/v1/pa.c
@@ -6950,6 +6950,9 @@ paReturn_t Pa_forwardResult (Pa_Handle iHandle, void *vresult, paEntryHandle_t *
6950 *cmdDest = pa_CMD_TX_DEST_4; 6950 *cmdDest = pa_CMD_TX_DEST_4;
6951 ret = pa_RESUBMIT_COMMAND; 6951 ret = pa_RESUBMIT_COMMAND;
6952 } 6952 }
6953 else if (fcmd->commandResult == PAFRM_COMMAND_RESULT_LUT2_FULL) {
6954 ret = pa_LUT2_TABLE_FULL;
6955 }
6953 } 6956 }
6954 else if (fcmd->command == PAFRM_CONFIG_COMMAND_MULTI_CMDS) { 6957 else if (fcmd->command == PAFRM_CONFIG_COMMAND_MULTI_CMDS) {
6955 6958
diff --git a/src/v1/pafrm.h b/src/v1/pafrm.h
index 576d70d..ec904ac 100644..100755
--- a/src/v1/pafrm.h
+++ b/src/v1/pafrm.h
@@ -1510,7 +1510,10 @@ enum {
1510 PAFRM_COMMAND_RESULT_INVALID_C1_CUSTOM_IDX, /* Illegal Custom LUT1 index value used */ 1510 PAFRM_COMMAND_RESULT_INVALID_C1_CUSTOM_IDX, /* Illegal Custom LUT1 index value used */
1511 PAFRM_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX, /* Illegal Custom LUT2 index value used */ 1511 PAFRM_COMMAND_RESULT_INVALID_C2_CUSTOM_IDX, /* Illegal Custom LUT2 index value used */
1512 PAFRM_COMMAND_RESULT_INVALID_CMDSET_IDX, /* Illegal Custom Command Set index value used */ 1512 PAFRM_COMMAND_RESULT_INVALID_CMDSET_IDX, /* Illegal Custom Command Set index value used */
1513 PAFRM_COMMAND_RESULT_USR_STATS_INVALID_CONFIG /* Illegal User Stats Configuration */ 1513 PAFRM_COMMAND_RESULT_USR_STATS_INVALID_CONFIG, /* Illegal User Stats Configuration */
1514
1515 /* LUT2 entry failure - is FULL */
1516 PAFRM_COMMAND_RESULT_LUT2_FULL /* LUT2 is full */
1514 1517
1515}; 1518};
1516 1519
diff --git a/test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2E_testProject.txt b/test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2EC66BiosTestProject.txt
index b4c3b33..25fd15e 100644..100755
--- a/test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2E_testProject.txt
+++ b/test/PAUnitTest/k2e/c66/bios/PA_UnitTest_K2EC66BiosTestProject.txt
@@ -19,6 +19,7 @@
19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test13.c" 19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test13.c"
20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test14.c" 20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test14.c"
21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test15.c" 21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test15.c"
22-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test16.c"
22-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c" 23-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c"
23-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp0_bin.c" 24-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp0_bin.c"
24-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp1_bin.c" 25-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp1_bin.c"
diff --git a/test/PAUnitTest/k2h/c66/bios/PA_UnitTest_K2HC66BiosTestProject.txt b/test/PAUnitTest/k2h/c66/bios/PA_UnitTest_K2HC66BiosTestProject.txt
index df17a80..664f44b 100644..100755
--- a/test/PAUnitTest/k2h/c66/bios/PA_UnitTest_K2HC66BiosTestProject.txt
+++ b/test/PAUnitTest/k2h/c66/bios/PA_UnitTest_K2HC66BiosTestProject.txt
@@ -14,7 +14,8 @@
14-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test8.c" 14-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test8.c"
15-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test9.c" 15-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test9.c"
16-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test10.c" 16-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test10.c"
17-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test11.c" 17-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test11.c"
18-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test16.c"
18-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c" 19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c"
19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_0_bin.c" 20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_0_bin.c"
20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_1_bin.c" 21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_1_bin.c"
diff --git a/test/PAUnitTest/k2h/c66/bios/pa_utest_k2h.cfg b/test/PAUnitTest/k2h/c66/bios/pa_utest_k2h.cfg
index c880c25..aa13528 100644..100755
--- a/test/PAUnitTest/k2h/c66/bios/pa_utest_k2h.cfg
+++ b/test/PAUnitTest/k2h/c66/bios/pa_utest_k2h.cfg
@@ -12,6 +12,14 @@ var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
12var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore'); 12var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
13var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi'); 13var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi');
14 14
15/* Start of Lines added for secure device */
16/*
17BIOS.useSK = true;
18BIOS.libType = BIOS.LibType_Custom;
19BIOS.setupSecureContext = true;
20*/
21/* End of Lines added for secure device */
22
15/* Load and use the CSL, CPPI and QMSS packages */ 23/* Load and use the CSL, CPPI and QMSS packages */
16var devType = "k2h" 24var devType = "k2h"
17var Csl = xdc.useModule('ti.csl.Settings'); 25var Csl = xdc.useModule('ti.csl.Settings');
diff --git a/test/PAUnitTest/k2k/c66/bios/PA_UnitTest_K2KC66BiosTestProject.txt b/test/PAUnitTest/k2k/c66/bios/PA_UnitTest_K2KC66BiosTestProject.txt
index 8aa7ed8..9bc699e 100644..100755
--- a/test/PAUnitTest/k2k/c66/bios/PA_UnitTest_K2KC66BiosTestProject.txt
+++ b/test/PAUnitTest/k2k/c66/bios/PA_UnitTest_K2KC66BiosTestProject.txt
@@ -14,7 +14,8 @@
14-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test8.c" 14-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test8.c"
15-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test9.c" 15-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test9.c"
16-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test10.c" 16-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test10.c"
17-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test11.c" 17-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test11.c"
18-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test16.c"
18-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c" 19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c"
19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_0_bin.c" 20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_0_bin.c"
20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_1_bin.c" 21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v0/classify1_1_bin.c"
diff --git a/test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2L_testProject.txt b/test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2LC66BiosTestProject.txt
index 317e056..443e0ba 100644..100755
--- a/test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2L_testProject.txt
+++ b/test/PAUnitTest/k2l/c66/bios/PA_UnitTest_K2LC66BiosTestProject.txt
@@ -19,6 +19,7 @@
19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test13.c" 19-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test13.c"
20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test14.c" 20-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test14.c"
21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test15.c" 21-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test15.c"
22-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/test/PAUnitTest/src/tests/test16.c"
22-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c" 23-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/example/reassemLib/reassemLib.c"
23-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp0_bin.c" 24-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp0_bin.c"
24-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp1_bin.c" 25-ccs.linkFile "PASS_INSTALL_PATH/ti/drv/pa/fw/v1/pa2_in0_pdsp1_bin.c"
diff --git a/test/PAUnitTest/src/c66x/bios/testMain.c b/test/PAUnitTest/src/c66x/bios/testMain.c
index 852bfcb..ed55365 100644..100755
--- a/test/PAUnitTest/src/c66x/bios/testMain.c
+++ b/test/PAUnitTest/src/c66x/bios/testMain.c
@@ -44,26 +44,29 @@ volatile int iteration;
44paTest_t paTestList[] = { 44paTest_t paTestList[] = {
45#ifdef NSS_GEN2 45#ifdef NSS_GEN2
46#ifndef __LINUX_USER_SPACE 46#ifndef __LINUX_USER_SPACE
47 { paTestEOAMFlow, "Pa_addEoamFlow and Ethernet OAM Support", PA_TEST_NOT_RUN }, 47 { paTestEOAMFlow, "Pa_addEoamFlow and Ethernet OAM Support", PA_TEST_NOT_RUN },
48#endif 48#endif
49#endif 49#endif
50 { paTestUnconfigured, "Packet reception while unconfigured", PA_TEST_NOT_RUN }, 50 { paTestUnconfigured, "Packet reception while unconfigured", PA_TEST_NOT_RUN },
51#ifndef __LINUX_USER_SPACE
52 { paTestLUT2Full, "Pa_addPort and check LUT2 full signal", PA_TEST_NOT_RUN },
53#endif
51 { paTestSrioRouting, "Pa_addSrio and SRIO routing", PA_TEST_NOT_RUN }, 54 { paTestSrioRouting, "Pa_addSrio and SRIO routing", PA_TEST_NOT_RUN },
52 { paTestL2Routing, "Pa_addMac and L2 routing", PA_TEST_NOT_RUN }, 55 { paTestL2Routing, "Pa_addMac and L2 routing", PA_TEST_NOT_RUN },
53 { paTestL3Routing, "Pa_addIp and L3 Routing", PA_TEST_NOT_RUN }, 56 { paTestL3Routing, "Pa_addIp and L3 Routing", PA_TEST_NOT_RUN },
54#ifdef NSS_GEN2 57#ifdef NSS_GEN2
55 { paTestACL, "Pa_addAcl and ACL filtering", PA_TEST_NOT_RUN }, 58 { paTestACL, "Pa_addAcl and ACL filtering", PA_TEST_NOT_RUN },
56 { paTestACLRescore, "Pa_addAcl and ACL filtering with Rescoring", PA_TEST_NOT_RUN }, 59 { paTestACLRescore, "Pa_addAcl and ACL filtering with Rescoring", PA_TEST_NOT_RUN },
57#endif 60#endif
58 { paTestL4Routing, "Pa_addPort and L4 Routing", PA_TEST_NOT_RUN }, 61 { paTestL4Routing, "Pa_addPort and L4 Routing", PA_TEST_NOT_RUN },
59 { paTestPatchRoute, "Blind patch and route", PA_TEST_NOT_RUN }, 62 { paTestPatchRoute, "Blind patch and route", PA_TEST_NOT_RUN },
60 { paTestTxFmtRt, "Tx checksum and routing", PA_TEST_NOT_RUN }, 63 { paTestTxFmtRt, "Tx checksum and routing", PA_TEST_NOT_RUN },
61 { paTestCustom, "Custom routing", PA_TEST_NOT_RUN }, 64 { paTestCustom, "Custom routing", PA_TEST_NOT_RUN },
62 { paTestMultiRouting, "Multi-routing", PA_TEST_NOT_RUN }, 65 { paTestMultiRouting, "Multi-routing", PA_TEST_NOT_RUN },
63 { paTestIPv4FragReassem,"IPv4 Fragmentation and Reassembly", PA_TEST_NOT_RUN }, 66 { paTestIPv4FragReassem,"IPv4 Fragmentation and Reassembly", PA_TEST_NOT_RUN },
64 { paTestIPv6FragReassem,"IPv6 Fragmentation and Reassembly", PA_TEST_NOT_RUN }, 67 { paTestIPv6FragReassem,"IPv6 Fragmentation and Reassembly", PA_TEST_NOT_RUN },
65#ifdef NSS_GEN2 68#ifdef NSS_GEN2
66 { paTestEflow, "Egress Flow and Packet Forwarding Test", PA_TEST_NOT_RUN }, 69 { paTestEflow, "Egress Flow and Packet Forwarding Test", PA_TEST_NOT_RUN },
67#endif 70#endif
68 { paTestUnconfigured, "Packet reception while unconfigured", PA_TEST_NOT_RUN }, 71 { paTestUnconfigured, "Packet reception while unconfigured", PA_TEST_NOT_RUN },
69 { NULL, NULL, PA_TEST_NOT_RUN } 72 { NULL, NULL, PA_TEST_NOT_RUN }
diff --git a/test/PAUnitTest/src/pautest.h b/test/PAUnitTest/src/pautest.h
index c796558..295d25e 100644..100755
--- a/test/PAUnitTest/src/pautest.h
+++ b/test/PAUnitTest/src/pautest.h
@@ -889,5 +889,6 @@ void paTestACL (UArg a0, UArg a1);
889void paTestACLRescore (UArg a0, UArg a1); 889void paTestACLRescore (UArg a0, UArg a1);
890void paTestEOAMFlow(UArg a0, UArg a1); 890void paTestEOAMFlow(UArg a0, UArg a1);
891void paTestEflow (UArg a0, UArg a1); 891void paTestEflow (UArg a0, UArg a1);
892void paTestLUT2Full (UArg a0, UArg a1);
892#endif 893#endif
893#endif /* _PAUTEST_H */ 894#endif /* _PAUTEST_H */
diff --git a/test/PAUnitTest/src/tests/test11.c b/test/PAUnitTest/src/tests/test11.c
index a000a1c..0f65ab7 100644..100755
--- a/test/PAUnitTest/src/tests/test11.c
+++ b/test/PAUnitTest/src/tests/test11.c
@@ -1185,6 +1185,72 @@ static void t11SendDataPkts (t11TestEncap_t *tencap, int nL4Handles, int group,
1185 } 1185 }
1186} 1186}
1187 1187
1188static void t11SendFragDataPkts (t11TestEncap_t *tencap, int nL4Handles)
1189{
1190 Qmss_Queue q;
1191 int32_t i;
1192 uint8_t *buf;
1193 uint16_t payloadLen;
1194
1195 /* Attach one free descriptor to each of the packets */
1196 for (i = 0; i < nL4Handles; i++) {
1197 tencap->hd[i] = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QfreeDesc)) & ~15);
1198
1199 if (tencap->hd[i] == NULL) {
1200 System_printf ("%s (%s:%d): Failed to pop a descriptor from the free queue (%d)\n", tfName, __FILE__, __LINE__, tencap->tf->QfreeDesc);
1201 t11Cleanup (tencap, PA_TEST_FAILED);
1202 }
1203
1204 /* Setup the return for the descriptor */
1205 q.qMgr = 0;
1206 q.qNum = tencap->tf->QGen[Q_DPKT_RECYCLE];
1207 Cppi_setReturnQueue (Cppi_DescType_HOST, (Cppi_Desc *)(tencap->hd[i]), q);
1208
1209 buf = t11pktBuf[i];
1210 payloadLen = t11MalFPktInfo[i].pktLen;
1211
1212 Cppi_setData (Cppi_DescType_HOST, (Cppi_Desc *)(tencap->hd[i]), (uint8_t *)utilgAddr((uint32_t)buf), (uint32_t)(payloadLen));
1213 Cppi_setPacketLen (Cppi_DescType_HOST, (Cppi_Desc *)(tencap->hd[i]), (uint32_t) payloadLen);
1214 Cppi_setPSLen (Cppi_DescType_HOST, (Cppi_Desc *)(tencap->hd[i]), 0);
1215
1216 memcpy(buf, t11MalFPktInfo[i].pkt, t11MalFPktInfo[i].pktLen);
1217
1218 /* Send the data to the PDSP0 */
1219 //mdebugHaltPdsp(5);
1220 Qmss_queuePush (tencap->tf->QPaTx[TF_PA_Q_INPUT], (Ptr)tencap->hd[i], (uint32_t)t11PktInfo[i].pktLen + payloadLen, TF_SIZE_DESC, Qmss_Location_TAIL);
1221 //while (mdebugWait);
1222 testCommonIncStats (t11MalFPktInfo[i].statsMap, &paTestL4ExpectedStats);
1223 }
1224
1225 /* Wait for descriptors to return. It is assumed that they are returning in order. */
1226 for (i = 0; i < 100; i++) {
1227
1228 if ((Qmss_getQueueEntryCount (tencap->tf->QGen[Q_DPKT_RECYCLE])) >= nL4Handles)
1229 break;
1230
1231 utilCycleDelay (500);
1232 }
1233
1234 if (i == 100) {
1235 System_printf ("%s (%s:%d): Timeout waiting for descriptors to modify PDSP to be recycled\n", tfName, __FILE__, __LINE__);
1236 t11Cleanup (tencap, PA_TEST_FAILED);
1237 }
1238
1239 /* Recycle the descriptors */
1240 for (i = 0; i < nL4Handles; i++) {
1241 tencap->hd[i] = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_DPKT_RECYCLE])) & ~15);
1242 if (tencap->hd[i] == NULL) {
1243 System_printf ("%s (%s:%d): Failed to pop recycled data packet descriptor\n", tfName, __FILE__, __LINE__);
1244 t11Cleanup (tencap, PA_TEST_FAILED);
1245 }
1246
1247 Qmss_queuePushDesc (tencap->tf->QfreeDesc, (Ptr) tencap->hd[i]);
1248 tencap->hd[i] = NULL;
1249
1250 }
1251}
1252
1253
1188#define MAX_RX_FRAGS_PER_CALL 20 1254#define MAX_RX_FRAGS_PER_CALL 20
1189 1255
1190static int t11RxFrags(t11TestEncap_t *tencap, Qmss_QueueHnd inQ, Qmss_QueueHnd outQ, int* pExpCnt) 1256static int t11RxFrags(t11TestEncap_t *tencap, Qmss_QueueHnd inQ, Qmss_QueueHnd outQ, int* pExpCnt)
@@ -1543,6 +1609,10 @@ void paTestIPv6FragReassem (UArg a0, UArg a1)
1543 if (newStatus == PA_TEST_FAILED) 1609 if (newStatus == PA_TEST_FAILED)
1544 t11Cleanup (&t11Encap, newStatus); 1610 t11Cleanup (&t11Encap, newStatus);
1545 1611
1612 /* Send the malformed packet test. The full fragmented packet
1613 * needs to be pushed to Mac Look up pdsp - this should not affect the regular tests */
1614 t11SendFragDataPkts (&t11Encap, sizeof (t11MalFPktInfo)/sizeof (pktTestInfo_t));
1615
1546 /* Send the packets. Use the modify PDSP to generate the TCP/UDP checksums. 1616 /* Send the packets. Use the modify PDSP to generate the TCP/UDP checksums.
1547 * Use the modify PDSP to genertae IP fragments if necessary */ 1617 * Use the modify PDSP to genertae IP fragments if necessary */
1548 for (k = 0; k < T11_NUM_PACKET_GROUPS; k+=1) 1618 for (k = 0; k < T11_NUM_PACKET_GROUPS; k+=1)
@@ -1575,7 +1645,6 @@ void paTestIPv6FragReassem (UArg a0, UArg a1)
1575 1645
1576 #endif 1646 #endif
1577 1647
1578
1579 /* Verify and clear the stats */ 1648 /* Verify and clear the stats */
1580 newStatus = testCommonCheckStats (t11Encap.tf, t11Encap.pat, tfName, &paTestL4ExpectedStats, t11Encap.tf->QLinkedBuf1, 1649 newStatus = testCommonCheckStats (t11Encap.tf, t11Encap.pat, tfName, &paTestL4ExpectedStats, t11Encap.tf->QLinkedBuf1,
1581 t11Encap.tf->QGen[Q_CMD_RECYCLE], t11Encap.tf->QGen[Q_CMD_REPLY], TRUE); 1650 t11Encap.tf->QGen[Q_CMD_RECYCLE], t11Encap.tf->QGen[Q_CMD_REPLY], TRUE);
diff --git a/test/PAUnitTest/src/tests/test11pkts.h b/test/PAUnitTest/src/tests/test11pkts.h
index 8a3b15d..01ea9a5 100644..100755
--- a/test/PAUnitTest/src/tests/test11pkts.h
+++ b/test/PAUnitTest/src/tests/test11pkts.h
@@ -715,10 +715,258 @@ static pasahoLongInfo_t pkt7Info = {
715}; 715};
716#endif 716#endif
717 717
718
719/* packet 8
720 * mac dest = 00:01:02:03:04:aa (MAC Info 0)
721*/
722#ifdef _TMS320C6X
723#pragma DATA_SECTION (pkt8, ".testPkts")
724#endif
725/* Frame (1514 bytes) */
726static const unsigned char pkt8[1514] = {
7270x00, 0x01, 0x02, 0x03, 0x04, 0xaa, 0x0a, 0xc0, /* ....7B.. */
7280xde, 0x35, 0xd8, 0x6c, 0x86, 0xdd, 0x60, 0x00, /* .5.l..`. */
7290x00, 0x00, 0x0f, 0x94, 0x3c, 0x40, 0xba, 0xba, /* ....<@.. */
7300xba, 0xba, 0xba, 0xba, 0xba, 0xba, 0x08, 0xc0, /* ........ */
7310xde, 0xff, 0xfe, 0x35, 0xd8, 0x6c, 0xfe, 0x80, /* ...5.l.. */
7320x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, /* ........ */
7330xde, 0xff, 0xfe, 0x35, 0xd8, 0x6c, 0x3b, 0x46, /* ...5.l;F */
7340x00, 0xd9, 0xd8, 0x01, 0x02, 0x03, 0x04, 0x05, /* ........ */
7350x06, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7360x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7370x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7380x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7390x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7400x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7410x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7420x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7430x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7440x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7450x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7460x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7470x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7480x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7490x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7500x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7510x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7520x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7530x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7540x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7550x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7560x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7570x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7580x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7590x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7600x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7610x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7620x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7630x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7640x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7650x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7660x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7670x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7680x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7690x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7700x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7710x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7720x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7730x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7740x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7750x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7760x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7770x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7780x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7790x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7800x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7810x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7820x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7830x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7840x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7850x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7860x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7870x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7880x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7890x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7900x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7910x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7920x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7930x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7940x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7950x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7960x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7970x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7980x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
7990x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8000x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8010x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8020x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8030x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8040x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8050x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8060x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8070x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8080x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8090x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8100x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8110x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8120x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8130x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8140x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8150x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8160x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8170x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8180x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8190x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8200x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8210x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8220x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8230x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8240x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8250x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8260x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8270x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8280x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8290x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8300x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8310x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8320x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8330x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8340x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8350x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8360x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8370x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8380x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8390x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8400x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8410x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8420x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8430x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8440x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8450x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8460x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8470x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8480x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8490x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8500x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8510x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8520x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8530x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8540x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8550x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8560x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8570x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8580x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8590x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8600x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8610x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8620x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8630x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8640x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8650x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8660x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8670x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8680x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8690x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8700x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8710x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8720x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8730x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8740x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8750x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8760x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8770x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8780x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8790x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8800x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8810x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8820x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8830x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8840x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8850x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8860x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8870x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8880x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8890x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8900x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8910x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8920x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8930x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8940x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8950x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8960x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8970x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8980x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
8990x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9000x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9010x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9020x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9030x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9040x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9050x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9060x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9070x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9080x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9090x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9100x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9110x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9120x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9130x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9140x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9150x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* ........ */
9160x00, 0xff /* .. */
917};
918
919
920#ifdef _TMS320C6X
921#pragma DATA_SECTION (pkt8Info, ".testPkts")
922#endif
923#ifdef NSS_GEN2
924static pasahoLongInfo_t pkt8Info = {
925 TF_FORM_PKT_INFO_WORD0(0,24,1,0,54), /* cmd len = 24, pmatch = 1, frag = 0, start offset */
926 TF_FORM_PKT_INFO_WORD1(142,0,0,PASAHO_HDR_UDP), /* end offset, errIdx, portNum = 0, nextHdr = UDP */
927 TF_FORM_PKT_INFO_WORD2(14,0,0,0), /* L3 offset = 14 */
928 TF_FORM_PKT_INFO_WORD3((PASAHO_HDR_BITMASK_MAC | PASAHO_HDR_BITMASK_IPv6),
929 0, 0), /* bitmap, pdspNum = 1, liIndex = 0 */
930 TF_FORM_PKT_INFO_WORD4(0, 0, 0, 0, 1), /* VC, pri, vlan Count = 0, greCount = 0, ipCount = 1 */
931 TF_FORM_PKT_INFO_WORD5(0)
932};
933#else
934static pasahoLongInfo_t pkt8Info = {
935
936 TF_FORM_PKT_INFO_WORD0(0,24,622), /* cmd len = 24, start offset = 622 (UDP Header) */
937 TF_FORM_PKT_INFO_WORD1(142,0,1,0,0,0), /* end offset */
938 TF_FORM_PKT_INFO_WORD2(14,0,0,0), /* L3 offset = 14, l4Offset = 0, l5Offset = 0, ahEspOffset = 0 */
939
940 /* bitmap, next header = UDP, vlan count = 0, ip count = 1, gre count = 0, frag = 0, ip route options = 0, multi route = 0 */
941 TF_FORM_PKT_INFO_WORD3((PASAHO_HDR_BITMASK_MAC | PASAHO_HDR_BITMASK_IP),PASAHO_HDR_UDP,0,1,0,0,0,0),
942 TF_FORM_PKT_INFO_WORD4(0)
943};
944#endif
945
946
718#define T11_SWINFO0_PKT_ID 0xAAAA0000 947#define T11_SWINFO0_PKT_ID 0xAAAA0000
719#define T11_PKTBUF_SIZE 3500 948#define T11_PKTBUF_SIZE 3500
720 949
721#ifdef _TMS320C6X 950#ifdef _TMS320C6X
951#pragma DATA_SECTION (t11MalFPktInfo, ".testPkts")
952#endif
953static pktTestInfo_t t11MalFPktInfo[] = {
954 /* Packet 8 */
955 {
956 (uint8_t *)pkt8,
957 (pasahoLongInfo_t *)&pkt8Info,
958 sizeof(pkt8),
959 {
960 (1 << TF_STATS_BM_C1_NUM_PACKETS) | (1 << TF_STATS_BM_C1_TABLE_MATCH), /* MAC match */
961 (1 << TF_STATS_BM_C1_NUM_PACKETS) | (1 << TF_STATS_BM_C1_NO_TABLE_MATCH) | (1 << TF_STATS_BM_C1_SILENT_DISCARD) | (1 << TF_STATS_BM_C1_NUM_IPV6), /* IP match */
962 0
963 }, /* no other match */
964 0 /* Packet will be discard */
965 },
966};
967
968
969#ifdef _TMS320C6X
722#pragma DATA_SECTION (t11PktInfo, ".testPkts") 970#pragma DATA_SECTION (t11PktInfo, ".testPkts")
723#endif 971#endif
724static pktTestInfo_t t11PktInfo[] = { 972static pktTestInfo_t t11PktInfo[] = {
diff --git a/test/PAUnitTest/src/tests/test16.c b/test/PAUnitTest/src/tests/test16.c
new file mode 100755
index 0000000..eb10647
--- /dev/null
+++ b/test/PAUnitTest/src/tests/test16.c
@@ -0,0 +1,791 @@
1/*
2 *
3 * Copyright (C) 2010-2013 Texas Instruments Incorporated - http://www.ti.com/
4 *
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34*/
35
36#include "../pautest.h"
37
38/* This test suite verifies the following PASS features:
39 * - Add/Delete LUT2 (UDP/TCP/GTP-U) entries
40 * - LUT2 FULL test
41 *
42 * This test invokes the following LLD APIs:
43 * - Pa_addMac
44 * - Pa_addIp
45 * - Pa_addPort
46 * - Pa_delL4Handle
47 * - Pa_delHandle
48 * - Pa_forwardResult
49 * - Pa_control
50 * - Pa_formatTxRoute
51 * - Pa_requestStats
52 * - Pa_formatStatsReply
53 * - Pa_requestUsrStats
54 * - Pa_formatUsrStatsReply
55 *
56 * This test verifies PDSP firmware for checking LUT2 full signal after all LUT2 entries are utilized.
57 */
58
59 static char *tfName = "paTestLUT2Full";
60
61 #define T16_NUM_PACKET_ITERATIONS 1 /* Number of times the packet stream is passed through */
62 #define T16_FIRST_DEST_PORT 0 /* First TCP/UDP destination port used */
63
64 /* General purpose queue usage */
65 #define Q_CMD_RECYCLE 0 /* Command descriptors/buffers recycled here after sent to PA */
66 #define Q_CMD_REPLY 1 /* Replies from PA routed here */
67 #define Q_MATCH 2 /* Packets from PA which match a lookup criteria */
68 #define Q_NFAIL 3 /* Packets from PA which matches a mac lookup, but failed an L3 lookup */
69 #define Q_PARSE_ERR 4 /* Packets which resulted in a parse error */
70 #define Q_DPKT_RECYCLE 5 /* Data packet recycle queue */
71#ifdef SIMULATOR_SUPPORT
72 /* Simulator does not support Queue diversion operation */
73 #define Q_MATCH2 2 /* Packest from PA which match a loop criteria after queue diversion (should be 6) */
74#else
75 #define Q_MATCH2 6 /* Packest from PA which match a loop criteria after queue diversion (should be 6) */
76#endif
77
78#include "test16pkts.h"
79
80/* The number of PA L2 and L3 handles maintained by this test */
81#define T16_NUM_LOCAL_L2_HANDLES (sizeof(t16EthSetup)/sizeof(t16EthSetup_t))
82#define T16_NUM_LOCAL_L3_HANDLES (sizeof(t16IpSetup)/sizeof(t16IpSetup_t))
83#define T16_NUM_LOCAL_L4_HANDLES T16_SOC_MAX_LUT2_SIZE
84
85 /* L3 handles are managed. This structure is used to track the handle and
86 * the activation state state of the handle */
87enum {
88 T16_HANDLE_UNCONFIGURED = 0,
89 T16_HANDLE_PENDING_ACK,
90 T16_HANDLE_ACTIVE,
91 T16_HANDLE_DISABLED
92};
93
94#define T16_CMD_SWINFO0_TYPE_MASK 0xffff0000
95#define T16_CMD_SWINFO0_ID_MASK 0x0000ffff
96
97/* SWInfo values on command replies */
98#define T16_CMD_SWINFO0_ADD_MAC_ID 0x51110000
99#define T16_CMD_SWINFO0_ADD_IP_ID 0x51120000
100#define T16_CMD_SWINFO0_ADD_PORT_ID 0x51130000
101#define T16_CMD_SWINFO0_ADD_TEID_ID 0x51140000
102#define T16_CMD_SWINFO0_EROUTE_CFG_ID 0x51150000
103#define T16_CMD_SWINFO0_CMDSET_CFG_ID 0x51160000
104#define T16_CMD_SWINFO0_GLOBAL_CFG_ID 0x51170000
105#define T16_CMD_SWINFO0_USR_STATS_CFG_ID 0x51180000
106#define T16_CMD_SWINFO0_NAT_T_CFG_ID 0x51190000
107#define T16_CMD_SWINFO0_GTPU_CFG_ID 0x511a0000
108#define T16_CMD_SWINFO0_ADD_SPI_IP_ID 0x511b0000
109
110#define T16_CMD_SWINFO0_DEL_MAC_ID 0x50010000
111#define T16_CMD_SWINFO0_DEL_IP_ID 0x50020000
112#define T16_CMD_SWINFO0_DEL_PORT_ID 0x50030000
113#define T16_CMD_SWINFO0_DEL_TEID_ID 0x50040000
114#define T16_CMD_SWINFO0_PKT_ID 0x50050000
115#define T16_CMD_SWINFO0_GLOB_PKT_ID 0x50060000
116#define T16_CMD_SWINFO0_DEL_SPI_IP_ID 0x50070000
117
118
119 typedef struct t16Handles_s {
120
121 paHandleL2L3_t paHandle; /* The L3 handle returned by the PA LLD */
122
123 unsigned int state; /* T4_HANDLE_UNCONFIGURED = handle not configured
124 * T4_HANDLE_PENDING_ACK = handle configured and sent to pa
125 * T4_HANDLE_ACTIVE = handle creation acknowledged by pa
126 * T4_HANDLE_DISABLED = handle was created then released */
127 unsigned int linkCnt;
128
129 } t16Handles_t;
130
131 typedef struct t16HandlesL4_s {
132
133 paHandleL4_t paHandle;
134
135 unsigned int state;
136
137 } t16HandlesL4_t;
138
139 /* A grouping of run time created grouped together to make cleanup easier on
140 * error exit */
141
142 typedef struct t16TestEncap_s {
143 tFramework_t *tf;
144 paTest_t *pat;
145
146 /* There is one base packet for each L3 table entry */
147 Cppi_HostDesc *hd[T16_NUM_LOCAL_L3_HANDLES];
148
149 /* The command to the modify PDSP to add the TCP/UDP checksum and route to PA receive */
150 uint32_t cmdStack[T16_NUM_LOCAL_L3_HANDLES][(sizeof(pasahoNextRoute_t) + sizeof(pasahoComChkCrc_t)) / sizeof (uint32_t)];
151
152 /* The +1 is a place holder handle used to pass known invalid configuration into the PA LLD */
153 t16Handles_t l2Handles[T16_NUM_LOCAL_L2_HANDLES]; /* MAC handles */
154 t16Handles_t l3Handles[T16_NUM_LOCAL_L3_HANDLES]; /* IP handles */
155 t16HandlesL4_t l4Handles[T16_NUM_LOCAL_L4_HANDLES+1]; /* UDP/TCP handles */
156 } t16TestEncap_t;
157
158static paSysStats_t paTestL4ExpectedStats; /* Expected stats results */
159
160static paCmdReply_t cmdReply = { pa_DEST_HOST, /* Dest */
161 0, /* Reply ID (returned in swinfo0) */
162 0, /* Queue */
163 0 }; /* Flow ID */
164
165static paRouteInfo_t matchRoute[3] = { { pa_DEST_HOST, /* Dest */
166 0, /* Flow ID */
167 0, /* queue */
168 -1, /* Multi route */
169 0, /* sw Info 0 */
170 0, /* sw Info 1 */
171 0, /* customType : not used */
172 0, /* customIndex: not used */
173 0, /* pkyType: for SRIO only */
174 NULL}, /* No commands */
175
176 { pa_DEST_CONTINUE_PARSE_LUT1,/* Dest */
177 0, /* Flow ID */
178 0, /* queue */
179 -1, /* Multi route */
180 0, /* sw Info 0 */
181 0, /* sw Info 1 */
182 0, /* customType : pa_CUSTOM_TYPE_NONE */
183 0, /* customIndex: not used */
184 0, /* pkyType: for SRIO only */
185 NULL}, /* No commands */
186
187 { pa_DEST_CONTINUE_PARSE_LUT2,/* Dest */
188 0, /* Flow ID */
189 0, /* queue */
190 -1, /* Multi route */
191 0, /* sw Info 0 */
192 0, /* sw Info 1 */
193 0, /* customType : pa_CUSTOM_TYPE_NONE */
194 0, /* customIndex: not used */
195 0, /* pkyType: for SRIO only */
196 NULL} /* No commands */
197 };
198static paRouteInfo_t nfailRoute = { pa_DEST_DISCARD, /* Dest */
199 0, /* Flow ID */
200 0, /* queue */
201 -1, /* Multi route */
202 0, /* sw Info 0 */
203 0, /* sw Info 1 */
204 0, /* customType : not used */
205 0, /* customIndex: not used */
206 0, /* pkyType: for SRIO only */
207 NULL}; /* No commands */
208
209#pragma DATA_SECTION(t16Encap, ".testPkts")
210static t16TestEncap_t t16Encap;
211
212static void t16Cleanup (t16TestEncap_t *tencap, paTestStatus_t status)
213{
214 int i, retval;
215 int cmdDest;
216 uint16_t cmdSize;
217 paReturn_t paret;
218 paTestStatus_t newStatus;
219 Cppi_HostDesc *hd;
220
221
222 /* Wait a bit for any packets in PA to complete */
223 utilCycleDelay (5000);
224
225 /* Return the descriptors which are pointing to packets */
226 for (i = 0; i < T16_NUM_LOCAL_L3_HANDLES; i++) {
227 if (tencap->hd[i] != NULL)
228 Qmss_queuePushDesc (tencap->tf->QfreeDesc, (Ptr) tencap->hd[i]);
229 }
230
231 System_flush ();
232
233 /* Delete active L4 handles */
234 for (i = 0; i < T16_NUM_LOCAL_L4_HANDLES; i++) {
235
236 cmdReply.replyId = T16_CMD_SWINFO0_DEL_PORT_ID + i;
237 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
238
239 if ((tencap->l4Handles[i].state == T16_HANDLE_PENDING_ACK) || (tencap->l4Handles[i].state == T16_HANDLE_ACTIVE)) {
240 hd = testCommonDelL4Handles (tencap->tf, tencap->l4Handles[i].paHandle, tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1,
241 &cmdReply, &cmdDest, &cmdSize, &paret);
242
243 if (paret != pa_OK) {
244 System_printf ("%s (%s:%d): PA LLD returned error code %d\n", tfName, __FILE__, __LINE__, paret);
245 status = PA_TEST_FAILED;
246 continue;
247 }
248
249 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
250 paTestL4ExpectedStats.classify2.nPackets += 1;
251 #ifdef NSS_GEN2
252 paTestL4ExpectedStats.classify1.nPackets += 1;
253 #endif
254
255 /* Wait for the response */
256 utilCycleDelay (100000);
257 retval = testCommonWaitCmdReply (tencap->tf, tencap->pat, tfName, cmdReply.queue, cmdReply.replyId, __LINE__);
258
259 if (retval != 0)
260 {
261 System_printf ("%s (%s:%d): testCommonWaitCmdReply failed\n", tfName, __FILE__, __LINE__);
262 status = PA_TEST_FAILED;
263 }
264
265 /* Recycle the command packet as well */
266 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_RECYCLE])) & ~15);
267 if (hd == NULL) {
268 System_printf ("%s (%s:%d): Did not find an expected command in the recycle queue\n", tfName, __FILE__, __LINE__);
269 status = PA_TEST_FAILED;
270 continue;
271 }
272 testCommonRecycleLBDesc (tencap->tf, hd);
273 }
274 }
275
276 System_flush ();
277 /* Delete active L3 Handles */
278 for (i = 0; i < T16_NUM_LOCAL_L3_HANDLES; i++) {
279 cmdReply.replyId = T16_CMD_SWINFO0_DEL_IP_ID + i;
280 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
281
282 if ((tencap->l3Handles[i].state == T16_HANDLE_PENDING_ACK) || (tencap->l3Handles[i].state == T16_HANDLE_ACTIVE)) {
283 hd = testCommonDelHandle (tencap->tf, &tencap->l3Handles[i].paHandle, tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1,
284 &cmdReply, &cmdDest, &cmdSize, &paret);
285
286 if (paret != pa_OK) {
287 System_printf ("%s (%s:%d): PA LLD returned error code %d\n", tfName, __FILE__, __LINE__, paret);
288 status = PA_TEST_FAILED;
289 continue;
290 }
291
292 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
293 paTestL4ExpectedStats.classify1.nPackets += 1;
294
295 /* Wait for the response */
296 if (testCommonWaitCmdReply (tencap->tf, tencap->pat, tfName, cmdReply.queue, cmdReply.replyId, __LINE__)) {
297 System_printf ("%s (%s:%d): testCommonWaitCmdReply failed\n", tfName, __FILE__, __LINE__);
298 status = PA_TEST_FAILED;
299 }
300 /* Recycle the command packet as well */
301 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_RECYCLE])) & ~15);
302 if (hd == NULL) {
303 System_printf ("%s (%s:%d): Did not find an expected command in the recycle queue\n", tfName, __FILE__, __LINE__);
304 status = PA_TEST_FAILED;
305 continue;
306 }
307 testCommonRecycleLBDesc (tencap->tf, hd);
308
309
310 }
311 }
312 System_flush ();
313
314 /* Delete active L2 Handles */
315 for (i = 0; i < T16_NUM_LOCAL_L2_HANDLES; i++) {
316 cmdReply.replyId = T16_CMD_SWINFO0_DEL_MAC_ID + i; /* T2_CMD_SWINFO0_ADD_ID identifies command, 16 LS bits identify the local handle number */
317 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
318
319 if ((tencap->l2Handles[i].state == T16_HANDLE_PENDING_ACK) || (tencap->l2Handles[i].state == T16_HANDLE_ACTIVE)) {
320 hd = testCommonDelHandle (tencap->tf, &tencap->l2Handles[i].paHandle, tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1,
321 &cmdReply, &cmdDest, &cmdSize, &paret);
322
323 if (paret != pa_OK) {
324 System_printf ("%s (%s:%d): PA LLD returned error code %d\n", tfName, __FILE__, __LINE__, paret);
325 status = PA_TEST_FAILED;
326 testCommonRecycleLBDesc (tencap->tf, hd);
327 continue;
328 }
329
330 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
331 paTestL4ExpectedStats.classify1.nPackets += 1;
332
333 /* Wait for the response */
334 if (testCommonWaitCmdReply (tencap->tf, tencap->pat, tfName, cmdReply.queue, cmdReply.replyId, __LINE__)) {
335 System_printf ("%s (%s:%d): testCommonWaitCmdReply failed\n", tfName, __FILE__, __LINE__);
336 status = PA_TEST_FAILED;
337 }
338
339 /* Recycle the command packet as well */
340 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_RECYCLE])) & ~15);
341 if (hd == NULL) {
342 System_printf ("%s (%s:%d): Did not find an expected command in the recycle queue\n", tfName, __FILE__, __LINE__);
343 continue;
344 }
345 testCommonRecycleLBDesc (tencap->tf, hd);
346
347
348 }
349 }
350 System_flush ();
351 /* Pop any descriptors off of the return queues and restore them to the linked buffer queues or the free Q */
352 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_CMD_RECYCLE])> 0) {
353 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_RECYCLE])) & ~15);
354 testCommonRecycleLBDesc (tencap->tf, hd);
355 }
356
357 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_CMD_REPLY]) > 0) {
358 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_REPLY])) & ~15);
359 testCommonRecycleLBDesc (tencap->tf, hd);
360 }
361
362 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_MATCH]) > 0) {
363 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_MATCH])) & ~15);
364 testCommonRecycleLBDesc (tencap->tf, hd);
365 }
366
367 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_NFAIL]) > 0) {
368 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_NFAIL])) & ~15);
369 testCommonRecycleLBDesc (tencap->tf, hd);
370 }
371
372 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_PARSE_ERR]) > 0) {
373 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_PARSE_ERR])) & ~15);
374 testCommonRecycleLBDesc (tencap->tf, hd);
375 }
376
377 while (Qmss_getQueueEntryCount (tencap->tf->QGen[Q_DPKT_RECYCLE]) > 0) {
378 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_DPKT_RECYCLE])) & ~15);
379 Qmss_queuePush (tencap->tf->QfreeDesc, (Ptr)hd, hd->buffLen, TF_SIZE_DESC, Qmss_Location_TAIL);
380 }
381
382 newStatus = testCommonCheckStats (tencap->tf, tencap->pat, tfName, &paTestL4ExpectedStats, tencap->tf->QLinkedBuf1,
383 tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QGen[Q_CMD_REPLY], TRUE);
384
385 if (newStatus == PA_TEST_FAILED)
386 status = PA_TEST_FAILED;
387
388 /* Return result */
389 tencap->pat->testStatus = status;
390
391 /* Return */
392 Task_exit();
393}
394
395static paReturn_t t16CmdRep (t16TestEncap_t *tencap)
396{
397 Cppi_HostDesc *hd;
398 uint32_t *swinfo;
399 paReturn_t paret;
400 uint32_t swinfoType;
401 uint32_t swinfoIdx;
402 paEntryHandle_t reth;
403 int htype;
404 int cmdDest;
405 char *s;
406 unsigned int *stateP;
407 unsigned int stateV;
408 int max;
409
410 while (Qmss_getQueueEntryCount(tencap->tf->QGen[Q_CMD_REPLY]) > 0) {
411 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_REPLY])) & ~15);
412
413 Cppi_getSoftwareInfo (Cppi_DescType_HOST, (Cppi_Desc *)hd, (uint8_t **)&swinfo);
414
415 swinfoType = swinfo[0] & T16_CMD_SWINFO0_TYPE_MASK;
416 swinfoIdx = swinfo[0] & T16_CMD_SWINFO0_ID_MASK;
417
418 paret = Pa_forwardResult (tencap->tf->passHandle, (void *)hd->buffPtr, &reth, &htype, &cmdDest);
419
420
421 switch (swinfoType) {
422
423 case T16_CMD_SWINFO0_ADD_MAC_ID:
424 stateP = &tencap->l2Handles[swinfoIdx].state;
425 stateV = T16_HANDLE_ACTIVE;
426 max = T16_NUM_LOCAL_L2_HANDLES;
427 s = "pa_addMac";
428 break;
429
430 case T16_CMD_SWINFO0_ADD_IP_ID:
431 stateP = &tencap->l3Handles[swinfoIdx].state;
432 stateV = T16_HANDLE_ACTIVE;
433 max = T16_NUM_LOCAL_L3_HANDLES;
434 s = "pa_addIp";
435 break;
436
437 case T16_CMD_SWINFO0_ADD_PORT_ID:
438 stateP = &tencap->l4Handles[swinfoIdx].state;
439 stateV = T16_HANDLE_ACTIVE;
440 max = T16_NUM_LOCAL_L4_HANDLES;
441 s = "pa_addPort";
442 break;
443
444 case T16_CMD_SWINFO0_DEL_MAC_ID:
445 stateP = &tencap->l2Handles[swinfoIdx].state;
446 stateV = T16_HANDLE_DISABLED;
447 max = T16_NUM_LOCAL_L2_HANDLES;
448 s = "pa_delMac";
449 break;
450
451 case T16_CMD_SWINFO0_DEL_IP_ID:
452 stateP = &tencap->l3Handles[swinfoIdx].state;
453 stateV = T16_HANDLE_DISABLED;
454 max = T16_NUM_LOCAL_L3_HANDLES;
455 s = "pa_delIp";
456 break;
457
458 case T16_CMD_SWINFO0_DEL_PORT_ID:
459 stateP = &tencap->l4Handles[swinfoIdx].state;
460 stateV = T16_HANDLE_DISABLED;
461 max = T16_NUM_LOCAL_L4_HANDLES;
462 s = "pa_delPort";
463 break;
464
465 default:
466 System_printf ("%s (%s:%d): Unknown command ID found in swinfo0 (0x%08x)\n", tfName, __FILE__, __LINE__, swinfo[0]);
467 t16Cleanup (tencap, PA_TEST_FAILED);
468 break;
469
470 }
471
472 /* In this test only valid responses are exected from PA */
473 if (paret != pa_OK) {
474
475 if (paret != pa_LUT2_TABLE_FULL) {
476 System_printf ("%s (%s:%d): PA command %s returned error code %d, Index = %d\n", tfName, __FILE__, __LINE__, s, paret, swinfoIdx);
477 t16Cleanup (tencap, PA_TEST_FAILED);
478 }
479 }
480
481
482 if (swinfoIdx >= max) {
483 System_printf ("%s (%s:%d): Received command ack (%s) for out of range handle (%d, max = %d)\n",
484 tfName, __FILE__, __LINE__, s, swinfoIdx, max);
485 t16Cleanup (tencap, PA_TEST_FAILED);
486 }
487
488 /* Response looks valid. Change the internal handle state */
489 *stateP = stateV;
490
491 /* Return the descriptor used to received the reply from PA */
492 testCommonRecycleLBDesc (tencap->tf, hd);
493 }
494
495 /* Recycle the command packet */
496 while (Qmss_getQueueEntryCount(tencap->tf->QGen[Q_CMD_RECYCLE]) > 0) {
497 hd = (Cppi_HostDesc *)(((uint32_t)Qmss_queuePop (tencap->tf->QGen[Q_CMD_RECYCLE])) & ~15);
498 if (hd == NULL) {
499 System_printf ("%s (%s:%d): Did not find an expected command in the recycle queue\n", tfName, __FILE__, __LINE__);
500 continue;
501 }
502 testCommonRecycleLBDesc (tencap->tf, hd);
503 }
504
505 return (paret);
506}
507
508static paTestStatus_t t16OpenL2 (t16TestEncap_t *tencap, t16EthSetup_t *ethSetup, int nL2Handles)
509{
510 int i, j, m;
511 Cppi_HostDesc *hd;
512 paReturn_t paret;
513 int cmdDest;
514 uint16_t cmdSize;
515
516 for (i = 0; i < nL2Handles; i++) {
517 cmdReply.replyId = T16_CMD_SWINFO0_ADD_MAC_ID + i;
518 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
519
520 /* Specify the user statistics associated with the MAC input */
521 //cmdInfo.params.usrStats.index = t16L2UsrStats[i];
522
523 hd = testCommonAddMac (tencap->tf, pa_LUT1_INDEX_NOT_SPECIFIED, (paEthInfo_t *)&t16EthSetup[i].ethInfo, &matchRoute[1], &nfailRoute,
524 &tencap->l2Handles[i].paHandle, tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1,
525 &cmdReply, &cmdDest, &cmdSize, &paret);
526
527 if (hd == NULL) {
528
529 System_printf ("%s: (%s:%d): Failure in common addMac command, entry number %d\n", tfName, __FILE__, __LINE__, i);
530 t16Cleanup (tencap, PA_TEST_FAILED);
531 }
532
533 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
534 tencap->l2Handles[i].state = T16_HANDLE_PENDING_ACK;
535 paTestL4ExpectedStats.classify1.nPackets += 1;
536
537 t16CmdRep (tencap);
538 }
539
540 /* All the packets should have been acked */
541 for (i = 0; i < 100; i++) {
542 t16CmdRep (tencap);
543
544 for (j = m = 0; j < nL2Handles; j++) {
545 if (tencap->l2Handles[j].state == T16_HANDLE_ACTIVE)
546 m += 1;
547 }
548
549 if (m == nL2Handles)
550 break;
551 else
552 utilCycleDelay (1000);
553 }
554
555 if (i == 100) {
556 System_printf ("%s: (%s:%d): %d (out of %d) pa_addMac commands were acked\n", tfName, __FILE__, __LINE__, m, nL2Handles);
557 return (PA_TEST_FAILED);
558 }
559 return (PA_TEST_PASSED);
560}
561
562static paTestStatus_t t16OpenL3 (t16TestEncap_t *tencap, t16IpSetup_t *ipSetup, int nL3Handles)
563{
564 int i, j, m;
565 Cppi_HostDesc *hd;
566 paReturn_t paret;
567 int cmdDest;
568 uint16_t cmdSize;
569
570 for (i = 0; i < nL3Handles; i++) {
571 cmdReply.replyId = T16_CMD_SWINFO0_ADD_IP_ID + i;
572 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
573
574 hd = testCommonAddIp (tencap->tf, pa_LUT1_INDEX_NOT_SPECIFIED, &t16IpSetup[i].ipInfo, &matchRoute[2], &nfailRoute,
575 &tencap->l3Handles[i].paHandle,
576 tencap->l2Handles[t16IpSetup[i].lHandleIdx].paHandle,
577 tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1,
578 &cmdReply, &cmdDest, &cmdSize, &paret);
579
580
581 if (hd == NULL) {
582
583 System_printf ("%s: (%s:%d): Failure in common addIp command, entry number %d\n", tfName, __FILE__, __LINE__, i);
584 t16Cleanup (tencap, PA_TEST_FAILED);
585 }
586
587 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
588 tencap->l3Handles[i].state = T16_HANDLE_PENDING_ACK;
589 paTestL4ExpectedStats.classify1.nPackets += 1;
590 tencap->l2Handles[t16IpSetup[i].lHandleIdx].linkCnt++;
591 t16CmdRep (tencap);
592 }
593
594 /* All the packets should have been acked */
595 for (i = 0; i < 100; i++) {
596 t16CmdRep (tencap);
597
598 for (j = m = 0; j < nL3Handles; j++) {
599 if (tencap->l3Handles[j].state == T16_HANDLE_ACTIVE)
600 m += 1;
601 }
602
603 if (m == nL3Handles)
604 break;
605 else
606 utilCycleDelay (1000);
607 }
608
609 if (i == 100) {
610 System_printf ("%s: (%s:%d): %d (out of %d) pa_addIp commands were acked\n", tfName, __FILE__, __LINE__, m, nL3Handles);
611 return (PA_TEST_FAILED);
612 }
613
614 return (PA_TEST_PASSED);
615}
616
617static paTestStatus_t t16GenericOpenL4 (t16TestEncap_t *tencap, unsigned int fDestPort, int nL3Handles, int nL4Handles)
618{
619 int i, j, m;
620 Cppi_HostDesc *hd;
621 paReturn_t paret;
622 int cmdDest;
623 uint16_t cmdSize;
624
625 for (i = nL4Handles-1; i >= 0; i--) {
626
627 cmdReply.replyId = T16_CMD_SWINFO0_ADD_PORT_ID + i;
628 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
629
630 hd = testCommonAddPort (tencap->tf, pa_LUT2_PORT_SIZE_16, T16_FIRST_DEST_PORT+i, &matchRoute[0], &tencap->l4Handles[i].paHandle,
631 &tencap->l3Handles[(T16_FIRST_DEST_PORT+i) % T16_NUM_LOCAL_L3_HANDLES].paHandle,
632 tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1, &cmdReply, &cmdDest, &cmdSize, &paret);
633
634
635
636 if (hd == NULL) {
637
638 System_printf ("%s: (%s:%d): Failure in common addPort command, entry number %d\n", tfName, __FILE__, __LINE__, i);
639 t16Cleanup (tencap, PA_TEST_FAILED);
640 }
641
642 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
643 tencap->l4Handles[i].state = T16_HANDLE_PENDING_ACK;
644 tencap->l3Handles[(T16_FIRST_DEST_PORT+i) % T16_NUM_LOCAL_L3_HANDLES].linkCnt++;
645 paTestL4ExpectedStats.classify2.nPackets += 1;
646 #ifdef NSS_GEN2
647 paTestL4ExpectedStats.classify1.nPackets += 1;
648 #endif
649
650 utilCycleDelay (100000);
651
652 t16CmdRep (tencap);
653 }
654
655
656 /* All the packets should have been acked */
657 for (i = 0; i < 100; i++) {
658 t16CmdRep (tencap);
659
660 for (j = m = 0; j < nL4Handles; j++) {
661 if (tencap->l4Handles[j].state == T16_HANDLE_ACTIVE)
662 m += 1;
663 }
664
665 if (m == nL4Handles)
666 break;
667 else
668 utilCycleDelay (1000);
669 }
670
671 if (i == 100) {
672 System_printf ("%s: (%s:%d): %d (out of %d) pa_addPort commands were acked\n", tfName, __FILE__, __LINE__, m, nL4Handles);
673 return (PA_TEST_FAILED);
674 }
675
676 return (PA_TEST_PASSED);
677}
678
679 /* Now attempt to add one more entry in LUT2, should expect LUT2 FULL signal indication from the hardware */
680paReturn_t t16_expect_lut2_full(t16TestEncap_t *tencap, unsigned int fDestPort)
681{
682 paReturn_t paret;
683 int cmdDest;
684 uint16_t cmdSize;
685 Cppi_HostDesc *hd;
686
687 cmdReply.replyId = T16_CMD_SWINFO0_ADD_PORT_ID;
688 cmdReply.queue = tencap->tf->QGen[Q_CMD_REPLY];
689
690 hd = testCommonAddPort (tencap->tf, pa_LUT2_PORT_SIZE_16, fDestPort, &matchRoute[0], &tencap->l4Handles[0].paHandle,
691 &tencap->l3Handles[0].paHandle,
692 tencap->tf->QGen[Q_CMD_RECYCLE], tencap->tf->QLinkedBuf1, &cmdReply, &cmdDest, &cmdSize, &paret);
693
694 if (hd == NULL) {
695
696 System_printf ("%s: (%s:%d): Failure in common addPort command, entry port number %d\n", tfName, __FILE__, __LINE__, fDestPort);
697 t16Cleanup (tencap, PA_TEST_FAILED);
698 }
699
700 Qmss_queuePush (tencap->tf->QPaTx[cmdDest - pa_CMD_TX_DEST_0 + TF_PA_Q_CONFIG_BASE], (Ptr)hd, cmdSize, TF_SIZE_DESC, Qmss_Location_TAIL);
701 paTestL4ExpectedStats.classify2.nPackets += 1;
702
703 /* Wait a bit for any packets in PA to complete */
704 utilCycleDelay (100000);
705 return(t16CmdRep (tencap));
706}
707void paTestLUT2Full (UArg a0, UArg a1)
708{
709 int i;
710 paTestStatus_t newStatus = PA_TEST_PASSED;
711 paReturn_t paret;
712
713 memset (&t16Encap, 0, sizeof(t16Encap));
714 t16Encap.tf = (tFramework_t *)a0;
715 t16Encap.pat = (paTest_t *)a1;
716 for (i = 0; i < T16_NUM_LOCAL_L4_HANDLES; i++)
717 t16Encap.l4Handles[i].state = T16_HANDLE_UNCONFIGURED;
718 for (i = 0; i < T16_NUM_LOCAL_L3_HANDLES; i++)
719 t16Encap.l3Handles[i].state = T16_HANDLE_UNCONFIGURED;
720 for (i = 0; i < T16_NUM_LOCAL_L2_HANDLES; i++)
721 t16Encap.l2Handles[i].state = T16_HANDLE_UNCONFIGURED;
722 for (i = 0; i < T16_NUM_LOCAL_L3_HANDLES; i++)
723 t16Encap.hd[i] = NULL;
724
725 /* Runtime initial values */
726 matchRoute[0].queue = (uint16_t) t16Encap.tf->QGen[Q_MATCH];
727 matchRoute[0].flowId= t16Encap.tf->tfFlowNum[0];
728 nfailRoute.queue = (uint16_t) t16Encap.tf->QGen[Q_NFAIL];
729 cmdReply.queue = (uint16_t) t16Encap.tf->QGen[Q_CMD_REPLY];
730 cmdReply.flowId = t16Encap.tf->tfFlowNum[0];
731
732 /* Zero out the expected stats. The stats will be updated as packets are sent into PA */
733 memset (&paTestL4ExpectedStats, 0, sizeof(paTestL4ExpectedStats));
734
735
736 /* Use default Global Configuration */
737 /* Burst in the L2 configuraton */
738 newStatus = t16OpenL2 (&t16Encap, t16EthSetup, T16_NUM_LOCAL_L2_HANDLES);
739 if (newStatus == PA_TEST_FAILED)
740 t16Cleanup (&t16Encap, newStatus); /* No return */
741
742 System_flush ();
743
744 /* Burst in the L3 configuration */
745 newStatus = t16OpenL3 (&t16Encap, t16IpSetup, T16_NUM_LOCAL_L3_HANDLES);
746 if (newStatus == PA_TEST_FAILED)
747 t16Cleanup (&t16Encap, newStatus);
748
749 System_flush ();
750
751 /* Completely fill the L4 table. There is a one to one mapping of UDP destination port
752 * values to the IP entries in the lookup table. */
753 newStatus = t16GenericOpenL4 (&t16Encap, T16_FIRST_DEST_PORT, T16_NUM_LOCAL_L3_HANDLES, T16_NUM_LOCAL_L4_HANDLES);
754 if (newStatus == PA_TEST_FAILED)
755 t16Cleanup (&t16Encap, newStatus);
756
757 /* Now expect LUT2 FULL here */
758 paret = t16_expect_lut2_full(&t16Encap, T16_FIRST_DEST_PORT+300);
759
760 if (paret != pa_LUT2_TABLE_FULL) {
761 t16Cleanup(&t16Encap, PA_TEST_FAILED);
762 }
763
764 /* Verify and clear the stats */
765 newStatus = testCommonCheckStats (t16Encap.tf, t16Encap.pat, tfName, &paTestL4ExpectedStats, t16Encap.tf->QLinkedBuf1,
766 t16Encap.tf->QGen[Q_CMD_RECYCLE], t16Encap.tf->QGen[Q_CMD_REPLY], TRUE);
767 if (newStatus == PA_TEST_FAILED)
768 {
769 System_printf ("%s (%s:%d): testCommonCheckStats Failed\n", tfName, __FILE__, __LINE__);
770 t16Cleanup (&t16Encap, newStatus); /* No return */
771 }
772
773
774 /* Verify and clear the stats */
775 newStatus = testCommonCheckStats (t16Encap.tf, t16Encap.pat, tfName, &paTestL4ExpectedStats, t16Encap.tf->QLinkedBuf1,
776 t16Encap.tf->QGen[Q_CMD_RECYCLE], t16Encap.tf->QGen[Q_CMD_REPLY], TRUE);
777
778 if (newStatus == PA_TEST_FAILED)
779 {
780 System_printf ("%s (%s:%d): testCommonCheckStats Failed\n", tfName, __FILE__, __LINE__);
781 t16Cleanup (&t16Encap, PA_TEST_FAILED); /* no return */
782 }
783
784 /* No return from cleanup */
785 t16Cleanup (&t16Encap, newStatus);
786#ifdef __LINUX_USER_SPACE
787 return (void *)0;
788#endif
789
790}
791
diff --git a/test/PAUnitTest/src/tests/test16pkts.h b/test/PAUnitTest/src/tests/test16pkts.h
new file mode 100755
index 0000000..143cdf0
--- /dev/null
+++ b/test/PAUnitTest/src/tests/test16pkts.h
@@ -0,0 +1,293 @@
1/*
2 *
3 * Copyright (C) 2010-2013 Texas Instruments Incorporated - http://www.ti.com/
4 *
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34*/
35
36
37
38#ifndef TEST16PKTS_H_
39#define TEST16PKTS_H_
40
41
42#ifdef NSS_GEN2
43#define T16_SOC_MAX_LUT2_SIZE (3000)
44#else
45#define T16_SOC_MAX_LUT2_SIZE (8192)
46#endif
47
48/* Valid rx MAC addresses used during the test */
49typedef struct t16EthSetup {
50 paEthInfo_t ethInfo; /* PA Ethernet configuration structure */
51 Bool acked; /* Set to TRUE when the reply to the command is received */
52} t16EthSetup_t;
53
54
55#ifdef _TMS320C6X
56#pragma DATA_SECTION (t16EthSetup, ".testPkts")
57#endif
58static t16EthSetup_t t16EthSetup[] = {
59
60 {
61 { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* Source mac is dont care */
62 { 0x00, 0x01, 0x02, 0x03, 0x04, 0xaa }, /* Dest mac */
63 0, /* Vlan */
64 0, /* ethertype */
65 0, /* mpls tag */
66 0 /* input EMAC port */
67 },
68 FALSE },
69
70 {
71 { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* Source mac is dont care */
72 { 0x00, 0xe0, 0xa6, 0x66, 0x57, 0x09 }, /* Dest mac */
73 0, /* Vlan */
74 0, /* ethertype */
75 0, /* mpls tag */
76 0 /* input EMAC port */
77 },
78 FALSE }
79
80
81};
82
83typedef struct t16IpSetup_s {
84 int lHandleIdx; /* Linked handle (to previous L2 or L3 layer) */
85 paIpInfo_t ipInfo; /* PA IP configuration structure */
86 Bool acked; /* Set to TRUE when the reply to the command is received */
87
88} t16IpSetup_t;
89
90#ifdef _TMS320C6X
91#pragma DATA_SECTION(t16IpSetup, ".testPkts")
92#endif
93static t16IpSetup_t t16IpSetup[] = {
94
95 {
96 /* IP Entry 0 */
97 0, /* Linked to dest mac index 0 */
98 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
99 { 200, 201, 202, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
100 0, /* SPI */
101 0, /* Flow */
102 pa_IPV4, /* IP Type */
103 0, /* GRE Protocol */
104 0, /* Protocol */
105 0, /* TOS */
106 0, /* TOS Care flag */
107 0 /* SCTP port */
108 },
109 FALSE
110 },
111
112 /* IP Entry 1 */
113 { 1, /* Linked to dest mac index 1 */
114 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
115 { 200, 201, 202, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
116 0, /* SPI */
117 0, /* Flow */
118 pa_IPV4, /* IP Type */
119 0, /* GRE Protocol */
120 0, /* Protocol */
121 0, /* TOS */
122 0, /* TOS Care flag */
123 0 /* SCTP port */
124 },
125 FALSE
126 },
127
128 /* IP Entry 2 */
129 { 0, /* Linked to dest mac index 0 */
130 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
131 { 200, 201, 202, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
132 0, /* SPI */
133 0, /* Flow */
134 pa_IPV4, /* IP Type */
135 0, /* GRE Protocol */
136 0, /* Protocol */
137 0, /* TOS */
138 0, /* TOS Care flag */
139 0 /* SCTP port */
140 },
141 FALSE
142 },
143
144
145 /* IP Entry 3 */
146 { 1, /* Linked to dest mac index 1 */
147 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
148 { 200, 201, 202, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
149 0, /* SPI */
150 0, /* Flow */
151 pa_IPV4, /* IP Type */
152 0, /* GRE Protocol */
153 0, /* Protocol */
154 0, /* TOS */
155 0, /* TOS Care flag */
156 0 /* SCTP port */
157 },
158 FALSE
159 },
160
161 /* IP Entry 4 */
162 { 0, /* Linked to dest mac index 0 */
163 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
164 { 200, 201, 202, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
165 0, /* SPI */
166 0, /* Flow */
167 pa_IPV4, /* IP Type */
168 0, /* GRE Protocol */
169 0, /* Protocol */
170 0, /* TOS */
171 0, /* TOS Care flag */
172 0 /* SCTP port */
173 },
174 FALSE
175 },
176
177 /* IP Entry 5 */
178 { 1, /* Linked to dest mac index 1 */
179 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
180 { 200, 201, 202, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
181 0, /* SPI */
182 0, /* Flow */
183 pa_IPV4, /* IP Type */
184 0, /* GRE Protocol */
185 0, /* Protocol */
186 0, /* TOS */
187 0, /* TOS Care flag */
188 0 /* SCTP port */
189 },
190 FALSE
191 },
192
193 /* IP Entry 6 */
194 { 0, /* Linked to dest mac index 0 */
195 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
196 { 200, 201, 202, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
197 0, /* SPI */
198 0, /* Flow */
199 pa_IPV4, /* IP Type */
200 0, /* GRE Protocol */
201 0, /* Protocol */
202 0, /* TOS */
203 0, /* TOS Care flag */
204 0 /* SCTP port */
205 },
206 FALSE
207 },
208
209 /* IP Entry 7 */
210 { 1, /* Linked to dest mac index 1 */
211 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
212 { 200, 201, 202, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
213 0, /* SPI */
214 0, /* Flow */
215 pa_IPV4, /* IP Type */
216 0, /* GRE Protocol */
217 0, /* Protocol */
218 0, /* TOS */
219 0, /* TOS Care flag */
220 0 /* SCTP port */
221 },
222 FALSE
223 },
224
225 /* IP Entry 8 */
226 { 0, /* Linked to dest mac index 0 */
227 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
228 { 200, 201, 202, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
229 0, /* SPI */
230 0, /* Flow */
231 pa_IPV4, /* IP Type */
232 0, /* GRE Protocol */
233 0, /* Protocol */
234 0, /* TOS */
235 0, /* TOS Care flag */
236 0 /* SCTP port */
237 },
238 FALSE
239 },
240
241
242 /* IP Entry 9 */
243 { 1, /* Linked to dest mac index 1 */
244 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
245 { 200, 201, 202, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
246 0, /* SPI */
247 0, /* Flow */
248 pa_IPV4, /* IP Type */
249 0, /* GRE Protocol */
250 0, /* Protocol */
251 0, /* TOS */
252 0, /* TOS Care flag */
253 0 /* SCTP port */
254 },
255 FALSE
256 },
257
258
259 /* IP Entry 10 */
260 { 0, /* Linked to dest mac index 0 */
261 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
262 { 200, 201, 202, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
263 0, /* SPI */
264 0, /* Flow */
265 pa_IPV4, /* IP Type */
266 0, /* GRE Protocol */
267 0, /* Protocol */
268 0, /* TOS */
269 0, /* TOS Care flag */
270 0 /* SCTP port */
271 },
272 FALSE
273 },
274
275 /* IP Entry 11 */
276 { 1, /* Linked to dest mac index 1 */
277 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Source address */
278 { 200, 201, 202, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* IP Destination address */
279 0, /* SPI */
280 0, /* Flow */
281 pa_IPV4, /* IP Type */
282 0, /* GRE Protocol */
283 0, /* Protocol */
284 0, /* TOS */
285 0, /* TOS Care flag */
286 0 /* SCTP port */
287 },
288 FALSE
289 }
290
291};
292
293#endif /*TEST16PKTS_H_*/