From 94a9bcf188cf4b7072c11ca1d4f814cb4a0b927a Mon Sep 17 00:00:00 2001 From: Aravind Batni Date: Tue, 19 Jul 2016 13:56:44 -0400 Subject: added firmware build check for linux bin file, eliminated redundant includes for pdsp_ver.h Signed-off-by: Aravind Batni --- fw/classify1_0_bin.c | 6 +- fw/classify1_1_bin.c | 6 +- fw/classify1_2_bin.c | 6 +- fw/classify2_bin.c | 6 +- fw/pam_bin.c | 6 +- fw/pdsp_blob_hdr.h | 74 +++++++++++++++++ fw/v0/build.sh | 6 +- fw/v0/classify1_0.bib | Bin 6764 -> 6764 bytes fw/v0/classify1_0_bin.c | 6 +- fw/v0/classify1_1.bib | Bin 6728 -> 6728 bytes fw/v0/classify1_1_bin.c | 6 +- fw/v0/classify1_2.bib | Bin 6728 -> 6728 bytes fw/v0/classify1_2_bin.c | 6 +- fw/v0/classify2.bib | Bin 4100 -> 4100 bytes fw/v0/classify2_bin.c | 6 +- fw/v0/ks2_pa_pdsp0_classify1.bin | Bin 6796 -> 6796 bytes fw/v0/ks2_pa_pdsp1_classify1.bin | Bin 6760 -> 6760 bytes fw/v0/ks2_pa_pdsp2_classify1.bin | Bin 6760 -> 6760 bytes fw/v0/ks2_pa_pdsp3_classify2.bin | Bin 4132 -> 4132 bytes fw/v0/ks2_pa_pdsp4_pam.bin | Bin 7412 -> 7412 bytes fw/v0/ks2_pa_pdsp5_pam.bin | Bin 7412 -> 7412 bytes fw/v0/pa2bin.c | 135 ++++++++++++++---------------- fw/v0/pabinchk.c | 135 ++++++++++++++++++++++++++++++ fw/v0/pam.bib | Bin 7380 -> 7380 bytes fw/v0/pam_bin.c | 6 +- fw/v0/pdsp_ver.h | 4 +- fw/v1/build.sh | 6 +- fw/v1/eg0_pdsp0.bib | Bin 4116 -> 4116 bytes fw/v1/eg0_pdsp0.p | 1 - fw/v1/eg0_pdsp1.bib | Bin 8240 -> 8240 bytes fw/v1/eg0_pdsp2.bib | Bin 7608 -> 7608 bytes fw/v1/eg1_pdsp0.bib | Bin 5728 -> 5728 bytes fw/v1/eg1_pdsp0.p | 1 - fw/v1/eg2_pdsp0.bib | Bin 6716 -> 6716 bytes fw/v1/eg2_pdsp0.p | 1 - fw/v1/in0_pdsp0.bib | Bin 7164 -> 7164 bytes fw/v1/in0_pdsp0.p | 1 - fw/v1/in0_pdsp1.bib | Bin 8332 -> 8332 bytes fw/v1/in0_pdsp1.p | 1 - fw/v1/in1_pdsp0.bib | Bin 7308 -> 7308 bytes fw/v1/in1_pdsp0.p | 1 - fw/v1/in1_pdsp1.bib | Bin 5584 -> 5584 bytes fw/v1/in1_pdsp1.p | 1 - fw/v1/in2_pdsp0.bib | Bin 5424 -> 5424 bytes fw/v1/in2_pdsp0.p | 1 - fw/v1/in3_pdsp0.bib | Bin 6780 -> 6780 bytes fw/v1/in3_pdsp0.p | 1 - fw/v1/in4_pdsp0.bib | Bin 7268 -> 7268 bytes fw/v1/in4_pdsp0.p | 1 - fw/v1/in4_pdsp1.bib | Bin 4932 -> 4932 bytes fw/v1/in4_pdsp1.p | 1 - fw/v1/ks2_pa_eg0_pdsp0.bin | Bin 4260 -> 4260 bytes fw/v1/ks2_pa_eg0_pdsp1.bin | Bin 8384 -> 8384 bytes fw/v1/ks2_pa_eg0_pdsp2.bin | Bin 7752 -> 7752 bytes fw/v1/ks2_pa_eg1_pdsp0.bin | Bin 5872 -> 5872 bytes fw/v1/ks2_pa_eg2_pdsp0.bin | Bin 6860 -> 6860 bytes fw/v1/ks2_pa_in0_pdsp0.bin | Bin 7308 -> 7308 bytes fw/v1/ks2_pa_in0_pdsp1.bin | Bin 8476 -> 8476 bytes fw/v1/ks2_pa_in1_pdsp0.bin | Bin 7452 -> 7452 bytes fw/v1/ks2_pa_in1_pdsp1.bin | Bin 5728 -> 5728 bytes fw/v1/ks2_pa_in2_pdsp0.bin | Bin 5568 -> 5568 bytes fw/v1/ks2_pa_in3_pdsp0.bin | Bin 6924 -> 6924 bytes fw/v1/ks2_pa_in4_pdsp0.bin | Bin 7412 -> 7412 bytes fw/v1/ks2_pa_in4_pdsp1.bin | Bin 5076 -> 5076 bytes fw/v1/ks2_pa_post_pdsp0.bin | Bin 5556 -> 5556 bytes fw/v1/ks2_pa_post_pdsp1.bin | Bin 3872 -> 3872 bytes fw/v1/pa2_eg0_pdsp0_bin.c | 6 +- fw/v1/pa2_eg0_pdsp1_bin.c | 6 +- fw/v1/pa2_eg0_pdsp2_bin.c | 6 +- fw/v1/pa2_eg1_pdsp0_bin.c | 6 +- fw/v1/pa2_eg2_pdsp0_bin.c | 6 +- fw/v1/pa2_in0_pdsp0_bin.c | 6 +- fw/v1/pa2_in0_pdsp1_bin.c | 6 +- fw/v1/pa2_in1_pdsp0_bin.c | 6 +- fw/v1/pa2_in1_pdsp1_bin.c | 6 +- fw/v1/pa2_in2_pdsp0_bin.c | 6 +- fw/v1/pa2_in3_pdsp0_bin.c | 6 +- fw/v1/pa2_in4_pdsp0_bin.c | 6 +- fw/v1/pa2_in4_pdsp1_bin.c | 6 +- fw/v1/pa2_post_pdsp0_bin.c | 6 +- fw/v1/pa2_post_pdsp1_bin.c | 6 +- fw/v1/pa2bin.c | 175 +++++++++++++++++++-------------------- fw/v1/pabinchk.c | 162 ++++++++++++++++++++++++++++++++++++ fw/v1/pam.p | 1 + fw/v1/pdsp_ver.h | 4 +- fw/v1/post_pdsp0.bib | Bin 5412 -> 5412 bytes fw/v1/post_pdsp0.p | 1 - fw/v1/post_pdsp1.bib | Bin 3728 -> 3728 bytes fw/v1/post_pdsp1.p | 1 - 89 files changed, 608 insertions(+), 257 deletions(-) create mode 100644 fw/pdsp_blob_hdr.h create mode 100644 fw/v0/pabinchk.c create mode 100644 fw/v1/pabinchk.c diff --git a/fw/classify1_0_bin.c b/fw/classify1_0_bin.c index b13a419..f5c214a 100644 --- a/fw/classify1_0_bin.c +++ b/fw/classify1_0_bin.c @@ -72,7 +72,7 @@ const uint32_t c1_0[] = { 0x21008a00, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x24505084, 0x108484c4, 0x10e4e4e5, @@ -222,8 +222,8 @@ const uint32_t c1_0[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc909ff06, 0x1f09ffff, diff --git a/fw/classify1_1_bin.c b/fw/classify1_1_bin.c index dfd8785..25ad624 100644 --- a/fw/classify1_1_bin.c +++ b/fw/classify1_1_bin.c @@ -73,7 +73,7 @@ const uint32_t c1_1[] = { 0x21000300, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x2301b29e, 0x2eff8582, 0x8104a482, @@ -84,8 +84,8 @@ const uint32_t c1_1[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc901ff0f, 0x2400a481, diff --git a/fw/classify1_2_bin.c b/fw/classify1_2_bin.c index 08555ed..ab6d7b6 100644 --- a/fw/classify1_2_bin.c +++ b/fw/classify1_2_bin.c @@ -74,7 +74,7 @@ const uint32_t c1_2[] = { 0x21000300, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x2301b29e, 0x2eff8582, 0x8104a482, @@ -85,8 +85,8 @@ const uint32_t c1_2[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc901ff0f, 0x2400a881, diff --git a/fw/classify2_bin.c b/fw/classify2_bin.c index 251606e..d71301b 100644 --- a/fw/classify2_bin.c +++ b/fw/classify2_bin.c @@ -74,7 +74,7 @@ const uint32_t c2[] = { 0x21000300, 0xbabe0002, - 0xffffffff, + 0x03000200, 0x2300e99e, 0x2eff8582, 0x8104a482, @@ -85,8 +85,8 @@ const uint32_t c2[] = { 0x2eff819d, 0x2eff819c, 0x9100175d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x5100fc03, 0x81082c9c, diff --git a/fw/pam_bin.c b/fw/pam_bin.c index 87ef227..ec88ddf 100644 --- a/fw/pam_bin.c +++ b/fw/pam_bin.c @@ -74,7 +74,7 @@ const uint32_t m[] = { 0x21000300, 0xbabe0003, - 0xffffffff, + 0x03000200, 0x2eff8582, 0x8104a482, 0x240001e2, @@ -84,8 +84,8 @@ const uint32_t m[] = { 0x9100171d, 0x11017d7d, 0x2400005d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/pdsp_blob_hdr.h b/fw/pdsp_blob_hdr.h new file mode 100644 index 0000000..43a8205 --- /dev/null +++ b/fw/pdsp_blob_hdr.h @@ -0,0 +1,74 @@ +//============================================================================ +// pdsp_blob_hdr.h +// +// +// +// TEXAS INSTRUMENTS TEXT FILE LICENSE +// +// Copyright (c) 2016 Texas Instruments Incorporated +// +// All rights reserved not granted herein. +// +// Limited License. +// +// Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive +// license under copyrights and patents it now or hereafter owns or controls to +// make, have made, use, import, offer to sell and sell ("Utilize") this software +// subject to the terms herein. With respect to the foregoing patent license, +// such license is granted solely to the extent that any such patent is necessary +// to Utilize the software alone. The patent license shall not apply to any +// combinations which include this software, other than combinations with devices +// manufactured by or for TI (“TI Devices”). No hardware patent is licensed hereunder. +// +// Redistributions must preserve existing copyright notices and reproduce this license +// (including the above copyright notice and the disclaimer and (if applicable) source +// code license limitations below) in the documentation and/or other materials provided +// with the distribution. +// +// Redistribution and use in binary form, without modification, are permitted provided +// that the following conditions are met: +// No reverse engineering, decompilation, or disassembly of this software is +// permitted with respect to any software provided in binary form. +// Any redistribution and use are licensed by TI for use only with TI Devices. +// Nothing shall obligate TI to provide you with source code for the software +// licensed and provided to you in object code. +// +// If software source code is provided to you, modification and redistribution of the +// source code are permitted provided that the following conditions are met: +// Any redistribution and use of the source code, including any resulting derivative +// works, are licensed by TI for use only with TI Devices. +// Any redistribution and use of any object code compiled from the source code +// and any resulting derivative works, are licensed by TI for use only with TI Devices. +// +// Neither the name of Texas Instruments Incorporated nor the names of its suppliers +// may be used to endorse or promote products derived from this software without +// specific prior written permission. +// +// DISCLAIMER. +// +// THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TI AND TI’S +// LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// +// + +#ifndef PDSP_BLOB_HDR_H +#define PDSP_BLOB_HDR_H 1 + +typedef uint32_t u32; + +/* header to the firmware blob */ +struct pa_pdsp_firmware { + char version[PASS_VER_STR_LEN]; + u32 constants[PA_PDSP_CONST_NUM_REG]; +}; + +#endif + diff --git a/fw/v0/build.sh b/fw/v0/build.sh index e1d8ab7..39b347b 100755 --- a/fw/v0/build.sh +++ b/fw/v0/build.sh @@ -40,7 +40,11 @@ cp classify2_bin.c .. cp pam_bin.c .. # rem create the bin files for linux -gcc -I../../../../.. -I../.. -I../../src/v0 pa2bin.c +gcc -I../../../../.. -I../.. -I.. -I../../src/v0 pa2bin.c ./a.out rm a.out +# rem check the bin files generated for linux +gcc -I../../../../.. -I../.. -I.. -I../../src/v0 pabinchk.c +./a.out +rm a.out diff --git a/fw/v0/classify1_0.bib b/fw/v0/classify1_0.bib index cc3ace3..77ce38d 100644 Binary files a/fw/v0/classify1_0.bib and b/fw/v0/classify1_0.bib differ diff --git a/fw/v0/classify1_0_bin.c b/fw/v0/classify1_0_bin.c index b13a419..f5c214a 100644 --- a/fw/v0/classify1_0_bin.c +++ b/fw/v0/classify1_0_bin.c @@ -72,7 +72,7 @@ const uint32_t c1_0[] = { 0x21008a00, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x24505084, 0x108484c4, 0x10e4e4e5, @@ -222,8 +222,8 @@ const uint32_t c1_0[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc909ff06, 0x1f09ffff, diff --git a/fw/v0/classify1_1.bib b/fw/v0/classify1_1.bib index 05fa9f3..7a9264d 100644 Binary files a/fw/v0/classify1_1.bib and b/fw/v0/classify1_1.bib differ diff --git a/fw/v0/classify1_1_bin.c b/fw/v0/classify1_1_bin.c index dfd8785..25ad624 100644 --- a/fw/v0/classify1_1_bin.c +++ b/fw/v0/classify1_1_bin.c @@ -73,7 +73,7 @@ const uint32_t c1_1[] = { 0x21000300, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x2301b29e, 0x2eff8582, 0x8104a482, @@ -84,8 +84,8 @@ const uint32_t c1_1[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc901ff0f, 0x2400a481, diff --git a/fw/v0/classify1_2.bib b/fw/v0/classify1_2.bib index da3d8c8..fe543c4 100644 Binary files a/fw/v0/classify1_2.bib and b/fw/v0/classify1_2.bib differ diff --git a/fw/v0/classify1_2_bin.c b/fw/v0/classify1_2_bin.c index 08555ed..ab6d7b6 100644 --- a/fw/v0/classify1_2_bin.c +++ b/fw/v0/classify1_2_bin.c @@ -74,7 +74,7 @@ const uint32_t c1_2[] = { 0x21000300, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x2301b29e, 0x2eff8582, 0x8104a482, @@ -85,8 +85,8 @@ const uint32_t c1_2[] = { 0x2eff819d, 0x2eff819c, 0x9100171d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc901ff0f, 0x2400a881, diff --git a/fw/v0/classify2.bib b/fw/v0/classify2.bib index baf01a9..16cb2a6 100644 Binary files a/fw/v0/classify2.bib and b/fw/v0/classify2.bib differ diff --git a/fw/v0/classify2_bin.c b/fw/v0/classify2_bin.c index 251606e..d71301b 100644 --- a/fw/v0/classify2_bin.c +++ b/fw/v0/classify2_bin.c @@ -74,7 +74,7 @@ const uint32_t c2[] = { 0x21000300, 0xbabe0002, - 0xffffffff, + 0x03000200, 0x2300e99e, 0x2eff8582, 0x8104a482, @@ -85,8 +85,8 @@ const uint32_t c2[] = { 0x2eff819d, 0x2eff819c, 0x9100175d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x5100fc03, 0x81082c9c, diff --git a/fw/v0/ks2_pa_pdsp0_classify1.bin b/fw/v0/ks2_pa_pdsp0_classify1.bin index 65c6195..3caa355 100644 Binary files a/fw/v0/ks2_pa_pdsp0_classify1.bin and b/fw/v0/ks2_pa_pdsp0_classify1.bin differ diff --git a/fw/v0/ks2_pa_pdsp1_classify1.bin b/fw/v0/ks2_pa_pdsp1_classify1.bin index 6212738..6c3f0c6 100644 Binary files a/fw/v0/ks2_pa_pdsp1_classify1.bin and b/fw/v0/ks2_pa_pdsp1_classify1.bin differ diff --git a/fw/v0/ks2_pa_pdsp2_classify1.bin b/fw/v0/ks2_pa_pdsp2_classify1.bin index 3129151..2a66aff 100644 Binary files a/fw/v0/ks2_pa_pdsp2_classify1.bin and b/fw/v0/ks2_pa_pdsp2_classify1.bin differ diff --git a/fw/v0/ks2_pa_pdsp3_classify2.bin b/fw/v0/ks2_pa_pdsp3_classify2.bin index 441a269..f384073 100644 Binary files a/fw/v0/ks2_pa_pdsp3_classify2.bin and b/fw/v0/ks2_pa_pdsp3_classify2.bin differ diff --git a/fw/v0/ks2_pa_pdsp4_pam.bin b/fw/v0/ks2_pa_pdsp4_pam.bin index d3a017c..8d92ee4 100644 Binary files a/fw/v0/ks2_pa_pdsp4_pam.bin and b/fw/v0/ks2_pa_pdsp4_pam.bin differ diff --git a/fw/v0/ks2_pa_pdsp5_pam.bin b/fw/v0/ks2_pa_pdsp5_pam.bin index 1dd96ee..2042462 100644 Binary files a/fw/v0/ks2_pa_pdsp5_pam.bin and b/fw/v0/ks2_pa_pdsp5_pam.bin differ diff --git a/fw/v0/pa2bin.c b/fw/v0/pa2bin.c index 3cad6a6..da4667e 100644 --- a/fw/v0/pa2bin.c +++ b/fw/v0/pa2bin.c @@ -5,28 +5,24 @@ #include "pdsp_ver.h" #include "paconst.c" -#define DEVICE_PA_NUM_PDSPS (6U) -#define PA_PDSP_CONST_NUM_REG (4U) +#define DEVICE_PA_NUM_PDSPS (6U) +#define PA_PDSP_CONST_NUM_REG (4U) #define PASS_VER_STR_LEN (16U) -typedef unsigned int u32; +typedef uint32_t u32; -/* header to the firmware blob */ -struct pa_pdsp_firmware { - char version[PASS_VER_STR_LEN]; - u32 constants[PA_PDSP_CONST_NUM_REG]; -}; +#include "pdsp_blob_hdr.h" static char *versions[DEVICE_PA_NUM_PDSPS] = { - PASS_VERSION_STR, - PASS_VERSION_STR, - PASS_VERSION_STR, - PASS_VERSION_STR, - PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, PASS_VERSION_STR }; -static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { - "classify1_0.bib", +static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { + "classify1_0.bib", "classify1_1.bib", "classify1_2.bib", "classify2.bib", @@ -34,67 +30,64 @@ static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { "pam.bib", }; -static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { - "ks2_pa_pdsp0_classify1", - "ks2_pa_pdsp1_classify1", - "ks2_pa_pdsp2_classify1", - "ks2_pa_pdsp3_classify2", - "ks2_pa_pdsp4_pam", - "ks2_pa_pdsp5_pam", +static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { + "ks2_pa_pdsp0_classify1", + "ks2_pa_pdsp1_classify1", + "ks2_pa_pdsp2_classify1", + "ks2_pa_pdsp3_classify2", + "ks2_pa_pdsp4_pam", + "ks2_pa_pdsp5_pam", }; int main(int argc, char **argv) { - unsigned long b_sz, total = 0; - struct pa_pdsp_firmware pdsp; - char in_file_name[128]; - char out_file_name[128]; - char buf[1024]; - char *pc; - FILE *outfp, *infp; - int j, i; - int size; + unsigned long b_sz, total = 0; + struct pa_pdsp_firmware pdsp; + char in_file_name[128]; + char out_file_name[128]; + char buf[1024]; + char *pc; + FILE *outfp, *infp; + int j, i; + int size; + + for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { + if (!pdsp_in_file_names[i]) + continue; + bzero(in_file_name, sizeof(in_file_name)); + bzero(out_file_name, sizeof(out_file_name)); + strcpy(in_file_name, (char *)pdsp_in_file_names[i]); + strcpy(out_file_name, (char *)pdsp_out_file_names[i]); + pc = &out_file_name[strlen(out_file_name)]; - for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { - if (!pdsp_in_file_names[i]) - continue; - bzero(in_file_name, sizeof(in_file_name)); - bzero(out_file_name, sizeof(out_file_name)); - strcpy(in_file_name, (char *)pdsp_in_file_names[i]); - strcpy(out_file_name, (char *)pdsp_out_file_names[i]); - pc = &out_file_name[strlen(out_file_name)]; -#if 0 - strcat(pc, "-"); - strcat(pc, (char *)versions[i]); -#endif - strcat(pc, ".bin"); - outfp=fopen(out_file_name,"wb"); - infp=fopen(in_file_name,"rb"); - printf("input file: %s\n",in_file_name); - printf("output file: %s\n",out_file_name); - if (!outfp) - { - printf("Unable to open output file! %s", out_file_name); - exit(1); - } + strcat(pc, ".bin"); + outfp=fopen(out_file_name,"wb"); + infp=fopen(in_file_name,"rb"); + printf("input file: %s\n",in_file_name); + printf("output file: %s\n",out_file_name); + if (!outfp) + { + printf("Unable to open output file! %s", out_file_name); + exit(1); + } - if (!infp) - { - printf("Unable to open input file! %s", in_file_name); - fclose(outfp); - exit(2); - } + if (!infp) + { + printf("Unable to open input file! %s", in_file_name); + fclose(outfp); + exit(2); + } - strncpy((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN); - memcpy(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG); - fwrite(&pdsp, sizeof(pdsp), 1, outfp); - while(1) { - size = fread(buf, 1, 1024, infp); - if (size <= 0) - break; - fwrite(buf, size, 1, outfp); - } - fclose(outfp); - fclose(infp); - } + strncpy((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN); + memcpy(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG); + fwrite(&pdsp, sizeof(pdsp), 1, outfp); + while(1) { + size = fread(buf, 1, 1024, infp); + if (size <= 0) + break; + fwrite(buf, size, 1, outfp); + } + fclose(outfp); + fclose(infp); + } } diff --git a/fw/v0/pabinchk.c b/fw/v0/pabinchk.c new file mode 100644 index 0000000..13edb10 --- /dev/null +++ b/fw/v0/pabinchk.c @@ -0,0 +1,135 @@ +#include +#include +#include +#include "pa.h" +#include "pdsp_ver.h" +#include "paconst.c" + +#define DEVICE_PA_NUM_PDSPS (6U) +#define PA_PDSP_CONST_NUM_REG (4U) +#define PASS_VER_STR_LEN (16U) + +#include "pdsp_blob_hdr.h" + +static char *versions[DEVICE_PA_NUM_PDSPS] = { + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR +}; +static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { + "classify1_0.bib", + "classify1_1.bib", + "classify1_2.bib", + "classify2.bib", + "pam.bib", + "pam.bib", +}; + +static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { + "ks2_pa_pdsp0_classify1", + "ks2_pa_pdsp1_classify1", + "ks2_pa_pdsp2_classify1", + "ks2_pa_pdsp3_classify2", + "ks2_pa_pdsp4_pam", + "ks2_pa_pdsp5_pam", +}; + +int main(int argc, char **argv) +{ + unsigned long b_sz, total = 0; + struct pa_pdsp_firmware pdsp; + char in_file_name[128]; + char out_file_name[128]; + char buf_in[1024]; + char buf_out[1024]; + char *pc; + FILE *outfp, *infp; + int j, i; + int size, mismatch = 0; + + for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { + if (!pdsp_in_file_names[i]) + continue; + bzero(in_file_name, sizeof(in_file_name)); + bzero(out_file_name, sizeof(out_file_name)); + strcpy(in_file_name, (char *)pdsp_in_file_names[i]); + strcpy(out_file_name, (char *)pdsp_out_file_names[i]); + pc = &out_file_name[strlen(out_file_name)]; + + strcat(pc, ".bin"); + outfp=fopen(out_file_name,"rb"); + infp=fopen(in_file_name,"rb"); + + if (!outfp) + { + printf("Unable to open output file! %s", out_file_name); + exit(1); + } + + if (!infp) + { + printf("Unable to open input file! %s", in_file_name); + fclose(outfp); + exit(2); + } + + /* Check the version */ + fread(&pdsp, sizeof(pdsp), 1, outfp); + if ( 0 != strncmp((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN)) + { + mismatch = 1; + } + + /* Check the constant */ + if ( 0 != memcmp(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG)) + { + mismatch = 2; + } + + while(mismatch == 0) { + size = fread(buf_out, 1, 1024, outfp); + if (size <= 0) + break; + + size = fread(buf_in, 1, 1024, infp); + if (size <= 0) + break; + + if ( 0 != memcmp(buf_in, buf_out, size)) + { + mismatch = 3; + } + } + fclose(outfp); + fclose(infp); + + if (mismatch != 0) + break; + } + + switch (mismatch) + { + + case 3: + printf ("blob mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + case 2: + printf ("constants mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + case 1: + printf ("version mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + default: + printf ("all firmware written successfully...all matched \n"); + break; + } +} diff --git a/fw/v0/pam.bib b/fw/v0/pam.bib index 4395dd8..994a93f 100644 Binary files a/fw/v0/pam.bib and b/fw/v0/pam.bib differ diff --git a/fw/v0/pam_bin.c b/fw/v0/pam_bin.c index 87ef227..ec88ddf 100644 --- a/fw/v0/pam_bin.c +++ b/fw/v0/pam_bin.c @@ -74,7 +74,7 @@ const uint32_t m[] = { 0x21000300, 0xbabe0003, - 0xffffffff, + 0x03000200, 0x2eff8582, 0x8104a482, 0x240001e2, @@ -84,8 +84,8 @@ const uint32_t m[] = { 0x9100171d, 0x11017d7d, 0x2400005d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v0/pdsp_ver.h b/fw/v0/pdsp_ver.h index 0c02ef0..ad7c056 100644 --- a/fw/v0/pdsp_ver.h +++ b/fw/v0/pdsp_ver.h @@ -62,9 +62,9 @@ #ifndef _PDSP_VER_GEN1_H #define _PDSP_VER_GEN1_H 1 -#define PASS_VERSION_STR "FF.FF.FF.FF" +#define PASS_VERSION_STR "03.00.02.00" // Common PDSP version number -#define PASS_VERSION 0xFFFFFFFF +#define PASS_VERSION 0x03000200 #endif diff --git a/fw/v1/build.sh b/fw/v1/build.sh index 95d3471..a1da7f2 100755 --- a/fw/v1/build.sh +++ b/fw/v1/build.sh @@ -94,7 +94,11 @@ rm eg2_pdsp0_bin.h # rem create the bin files for linux -gcc -I../../../../.. -I../.. -I../../src/v1 pa2bin.c +gcc -I../../../../.. -I../.. -I.. -I../../src/v1 pa2bin.c ./a.out rm a.out +# rem check the bin files generated for linux +gcc -I../../../../.. -I../.. -I.. -I../../src/v1 pabinchk.c +./a.out +rm a.out diff --git a/fw/v1/eg0_pdsp0.bib b/fw/v1/eg0_pdsp0.bib index 61bd23f..35edb95 100644 Binary files a/fw/v1/eg0_pdsp0.bib and b/fw/v1/eg0_pdsp0.bib differ diff --git a/fw/v1/eg0_pdsp0.p b/fw/v1/eg0_pdsp0.p index 9489b61..34a08f9 100644 --- a/fw/v1/eg0_pdsp0.p +++ b/fw/v1/eg0_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_FIRST_PDSP #define HEADER_MAGIC 0xBABE0600 #define PASS_PDSP_ID 10 diff --git a/fw/v1/eg0_pdsp1.bib b/fw/v1/eg0_pdsp1.bib index 814d552..54b494d 100644 Binary files a/fw/v1/eg0_pdsp1.bib and b/fw/v1/eg0_pdsp1.bib differ diff --git a/fw/v1/eg0_pdsp2.bib b/fw/v1/eg0_pdsp2.bib index 07b07ad..892325a 100644 Binary files a/fw/v1/eg0_pdsp2.bib and b/fw/v1/eg0_pdsp2.bib differ diff --git a/fw/v1/eg1_pdsp0.bib b/fw/v1/eg1_pdsp0.bib index a84e996..9e06382 100644 Binary files a/fw/v1/eg1_pdsp0.bib and b/fw/v1/eg1_pdsp0.bib differ diff --git a/fw/v1/eg1_pdsp0.p b/fw/v1/eg1_pdsp0.p index 11bc324..d9506be 100644 --- a/fw/v1/eg1_pdsp0.p +++ b/fw/v1/eg1_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_FIRST_PDSP #define PASS_LAST_PDSP #define PASS_PROC_PKT_FORWARD diff --git a/fw/v1/eg2_pdsp0.bib b/fw/v1/eg2_pdsp0.bib index 16dc7a5..d76a7ac 100644 Binary files a/fw/v1/eg2_pdsp0.bib and b/fw/v1/eg2_pdsp0.bib differ diff --git a/fw/v1/eg2_pdsp0.p b/fw/v1/eg2_pdsp0.p index 7b961fc..069706e 100644 --- a/fw/v1/eg2_pdsp0.p +++ b/fw/v1/eg2_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_FIRST_PDSP #define PASS_LAST_PDSP #define PASS_PROC_PKT_FORWARD diff --git a/fw/v1/in0_pdsp0.bib b/fw/v1/in0_pdsp0.bib index ac6e112..c1a4721 100644 Binary files a/fw/v1/in0_pdsp0.bib and b/fw/v1/in0_pdsp0.bib differ diff --git a/fw/v1/in0_pdsp0.p b/fw/v1/in0_pdsp0.p index c769a7f..1cd1020 100644 --- a/fw/v1/in0_pdsp0.p +++ b/fw/v1/in0_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_FIRST_PDSP #define PASS_PROC_L2 diff --git a/fw/v1/in0_pdsp1.bib b/fw/v1/in0_pdsp1.bib index 82adc91..a396a90 100644 Binary files a/fw/v1/in0_pdsp1.bib and b/fw/v1/in0_pdsp1.bib differ diff --git a/fw/v1/in0_pdsp1.p b/fw/v1/in0_pdsp1.p index 3079e16..b118f40 100644 --- a/fw/v1/in0_pdsp1.p +++ b/fw/v1/in0_pdsp1.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_LAST_PDSP #define PASS_PROC_L3 diff --git a/fw/v1/in1_pdsp0.bib b/fw/v1/in1_pdsp0.bib index 6e0ddf9..77b8b40 100644 Binary files a/fw/v1/in1_pdsp0.bib and b/fw/v1/in1_pdsp0.bib differ diff --git a/fw/v1/in1_pdsp0.p b/fw/v1/in1_pdsp0.p index 3ab9f54..532bcb1 100644 --- a/fw/v1/in1_pdsp0.p +++ b/fw/v1/in1_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_FIRST_PDSP #define PASS_PROC_IPSEC diff --git a/fw/v1/in1_pdsp1.bib b/fw/v1/in1_pdsp1.bib index 793bc34..e08f816 100644 Binary files a/fw/v1/in1_pdsp1.bib and b/fw/v1/in1_pdsp1.bib differ diff --git a/fw/v1/in1_pdsp1.p b/fw/v1/in1_pdsp1.p index 0e32399..274f213 100644 --- a/fw/v1/in1_pdsp1.p +++ b/fw/v1/in1_pdsp1.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_LAST_PDSP #define PASS_PROC_IPSEC diff --git a/fw/v1/in2_pdsp0.bib b/fw/v1/in2_pdsp0.bib index 1915f50..84a52f5 100644 Binary files a/fw/v1/in2_pdsp0.bib and b/fw/v1/in2_pdsp0.bib differ diff --git a/fw/v1/in2_pdsp0.p b/fw/v1/in2_pdsp0.p index c0eb0f7..49c6b77 100644 --- a/fw/v1/in2_pdsp0.p +++ b/fw/v1/in2_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_FIRST_PDSP #define PASS_LAST_PDSP diff --git a/fw/v1/in3_pdsp0.bib b/fw/v1/in3_pdsp0.bib index 9c0ba94..0c44b69 100644 Binary files a/fw/v1/in3_pdsp0.bib and b/fw/v1/in3_pdsp0.bib differ diff --git a/fw/v1/in3_pdsp0.p b/fw/v1/in3_pdsp0.p index 269512f..9dbd0cc 100644 --- a/fw/v1/in3_pdsp0.p +++ b/fw/v1/in3_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_FIRST_PDSP #define PASS_LAST_PDSP diff --git a/fw/v1/in4_pdsp0.bib b/fw/v1/in4_pdsp0.bib index 3c11321..830d5f6 100644 Binary files a/fw/v1/in4_pdsp0.bib and b/fw/v1/in4_pdsp0.bib differ diff --git a/fw/v1/in4_pdsp0.p b/fw/v1/in4_pdsp0.p index a32bf68..c20cd3c 100644 --- a/fw/v1/in4_pdsp0.p +++ b/fw/v1/in4_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #include "pdsp_mem.h" #define PASS_FIRST_PDSP #define PASS_PROC_L3 diff --git a/fw/v1/in4_pdsp1.bib b/fw/v1/in4_pdsp1.bib index 7b42726..c60071b 100644 Binary files a/fw/v1/in4_pdsp1.bib and b/fw/v1/in4_pdsp1.bib differ diff --git a/fw/v1/in4_pdsp1.p b/fw/v1/in4_pdsp1.p index c007012..d41fb5b 100644 --- a/fw/v1/in4_pdsp1.p +++ b/fw/v1/in4_pdsp1.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_LAST_PDSP #define PASS_PROC_PKT_FORWARD #define PASS_PROC_L4_CHECKSUM diff --git a/fw/v1/ks2_pa_eg0_pdsp0.bin b/fw/v1/ks2_pa_eg0_pdsp0.bin index 3be8c4e..43a0425 100644 Binary files a/fw/v1/ks2_pa_eg0_pdsp0.bin and b/fw/v1/ks2_pa_eg0_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_eg0_pdsp1.bin b/fw/v1/ks2_pa_eg0_pdsp1.bin index ecbe60e..acb1297 100644 Binary files a/fw/v1/ks2_pa_eg0_pdsp1.bin and b/fw/v1/ks2_pa_eg0_pdsp1.bin differ diff --git a/fw/v1/ks2_pa_eg0_pdsp2.bin b/fw/v1/ks2_pa_eg0_pdsp2.bin index 0e69fad..12acc52 100644 Binary files a/fw/v1/ks2_pa_eg0_pdsp2.bin and b/fw/v1/ks2_pa_eg0_pdsp2.bin differ diff --git a/fw/v1/ks2_pa_eg1_pdsp0.bin b/fw/v1/ks2_pa_eg1_pdsp0.bin index b51900b..5e8e083 100644 Binary files a/fw/v1/ks2_pa_eg1_pdsp0.bin and b/fw/v1/ks2_pa_eg1_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_eg2_pdsp0.bin b/fw/v1/ks2_pa_eg2_pdsp0.bin index 846a571..717b1d7 100644 Binary files a/fw/v1/ks2_pa_eg2_pdsp0.bin and b/fw/v1/ks2_pa_eg2_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in0_pdsp0.bin b/fw/v1/ks2_pa_in0_pdsp0.bin index 9938ec5..cf40759 100644 Binary files a/fw/v1/ks2_pa_in0_pdsp0.bin and b/fw/v1/ks2_pa_in0_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in0_pdsp1.bin b/fw/v1/ks2_pa_in0_pdsp1.bin index d349172..3ef969d 100644 Binary files a/fw/v1/ks2_pa_in0_pdsp1.bin and b/fw/v1/ks2_pa_in0_pdsp1.bin differ diff --git a/fw/v1/ks2_pa_in1_pdsp0.bin b/fw/v1/ks2_pa_in1_pdsp0.bin index 3e9a36b..3f3f583 100644 Binary files a/fw/v1/ks2_pa_in1_pdsp0.bin and b/fw/v1/ks2_pa_in1_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in1_pdsp1.bin b/fw/v1/ks2_pa_in1_pdsp1.bin index 938084f..a158bb6 100644 Binary files a/fw/v1/ks2_pa_in1_pdsp1.bin and b/fw/v1/ks2_pa_in1_pdsp1.bin differ diff --git a/fw/v1/ks2_pa_in2_pdsp0.bin b/fw/v1/ks2_pa_in2_pdsp0.bin index 8d24655..5dae14b 100644 Binary files a/fw/v1/ks2_pa_in2_pdsp0.bin and b/fw/v1/ks2_pa_in2_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in3_pdsp0.bin b/fw/v1/ks2_pa_in3_pdsp0.bin index b03d1d0..b3069bd 100644 Binary files a/fw/v1/ks2_pa_in3_pdsp0.bin and b/fw/v1/ks2_pa_in3_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in4_pdsp0.bin b/fw/v1/ks2_pa_in4_pdsp0.bin index 1fd9810..f6fd281 100644 Binary files a/fw/v1/ks2_pa_in4_pdsp0.bin and b/fw/v1/ks2_pa_in4_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_in4_pdsp1.bin b/fw/v1/ks2_pa_in4_pdsp1.bin index c8cd7be..31aaaea 100644 Binary files a/fw/v1/ks2_pa_in4_pdsp1.bin and b/fw/v1/ks2_pa_in4_pdsp1.bin differ diff --git a/fw/v1/ks2_pa_post_pdsp0.bin b/fw/v1/ks2_pa_post_pdsp0.bin index e5b3f87..2626429 100644 Binary files a/fw/v1/ks2_pa_post_pdsp0.bin and b/fw/v1/ks2_pa_post_pdsp0.bin differ diff --git a/fw/v1/ks2_pa_post_pdsp1.bin b/fw/v1/ks2_pa_post_pdsp1.bin index 8f43247..a6cf804 100644 Binary files a/fw/v1/ks2_pa_post_pdsp1.bin and b/fw/v1/ks2_pa_post_pdsp1.bin differ diff --git a/fw/v1/pa2_eg0_pdsp0_bin.c b/fw/v1/pa2_eg0_pdsp0_bin.c index 83e11ab..5c87cdb 100644 --- a/fw/v1/pa2_eg0_pdsp0_bin.c +++ b/fw/v1/pa2_eg0_pdsp0_bin.c @@ -74,10 +74,10 @@ const uint32_t eg0_pdsp0[] = { 0x21000300, 0xbabe0600, - 0xffffffff, + 0x03000200, 0x2300d79e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_eg0_pdsp1_bin.c b/fw/v1/pa2_eg0_pdsp1_bin.c index ed34f78..3f583cd 100644 --- a/fw/v1/pa2_eg0_pdsp1_bin.c +++ b/fw/v1/pa2_eg0_pdsp1_bin.c @@ -74,7 +74,7 @@ const uint32_t eg0_pdsp1[] = { 0x21017600, 0xbabe0601, - 0xffffffff, + 0x03000200, 0xc907ff00, 0x911007c0, 0x1f0f8080, @@ -454,8 +454,8 @@ const uint32_t eg0_pdsp1[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2_eg0_pdsp2_bin.c b/fw/v1/pa2_eg0_pdsp2_bin.c index ab34943..8dff610 100644 --- a/fw/v1/pa2_eg0_pdsp2_bin.c +++ b/fw/v1/pa2_eg0_pdsp2_bin.c @@ -74,7 +74,7 @@ const uint32_t eg0_pdsp2[] = { 0x21028f00, 0xbabe0602, - 0xffffffff, + 0x03000200, 0xc907ff00, 0x911007c0, 0x1d0f8080, @@ -735,8 +735,8 @@ const uint32_t eg0_pdsp2[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2_eg1_pdsp0_bin.c b/fw/v1/pa2_eg1_pdsp0_bin.c index a8f5d86..3fe315f 100644 --- a/fw/v1/pa2_eg1_pdsp0_bin.c +++ b/fw/v1/pa2_eg1_pdsp0_bin.c @@ -74,7 +74,7 @@ const uint32_t eg1_pdsp0[] = { 0x2100f800, 0xbabe0700, - 0xffffffff, + 0x03000200, 0xc907ff00, 0x911007c0, 0x1d0f8080, @@ -328,8 +328,8 @@ const uint32_t eg1_pdsp0[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2_eg2_pdsp0_bin.c b/fw/v1/pa2_eg2_pdsp0_bin.c index b871a96..bc23c76 100644 --- a/fw/v1/pa2_eg2_pdsp0_bin.c +++ b/fw/v1/pa2_eg2_pdsp0_bin.c @@ -74,7 +74,7 @@ const uint32_t eg2_pdsp0[] = { 0x2101ef00, 0xbabe0800, - 0xffffffff, + 0x03000200, 0xc907ff00, 0x911007c0, 0x1d0f8080, @@ -575,8 +575,8 @@ const uint32_t eg2_pdsp0[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2_in0_pdsp0_bin.c b/fw/v1/pa2_in0_pdsp0_bin.c index 185b7de..da5106f 100644 --- a/fw/v1/pa2_in0_pdsp0_bin.c +++ b/fw/v1/pa2_in0_pdsp0_bin.c @@ -74,7 +74,7 @@ const uint32_t in0_pdsp0[] = { 0x21002c00, 0xbabe0000, - 0xffffffff, + 0x03000200, 0x2effa780, 0x8900f380, 0x8950f380, @@ -117,8 +117,8 @@ const uint32_t in0_pdsp0[] = { 0x81c4338a, 0x209e0000, 0x23037b9e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in0_pdsp1_bin.c b/fw/v1/pa2_in0_pdsp1_bin.c index 9cbc5a1..75396a8 100644 --- a/fw/v1/pa2_in0_pdsp1_bin.c +++ b/fw/v1/pa2_in0_pdsp1_bin.c @@ -74,10 +74,10 @@ const uint32_t in0_pdsp1[] = { 0x21000300, 0xbabe0001, - 0xffffffff, + 0x03000200, 0x2303419e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in1_pdsp0_bin.c b/fw/v1/pa2_in1_pdsp0_bin.c index 9f6ab38..c7690df 100644 --- a/fw/v1/pa2_in1_pdsp0_bin.c +++ b/fw/v1/pa2_in1_pdsp0_bin.c @@ -74,10 +74,10 @@ const uint32_t in1_pdsp0[] = { 0x21000300, 0xbabe0002, - 0xffffffff, + 0x03000200, 0x2302ab9e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in1_pdsp1_bin.c b/fw/v1/pa2_in1_pdsp1_bin.c index 17a353c..612f897 100644 --- a/fw/v1/pa2_in1_pdsp1_bin.c +++ b/fw/v1/pa2_in1_pdsp1_bin.c @@ -74,10 +74,10 @@ const uint32_t in1_pdsp1[] = { 0x21000300, 0xbabe0101, - 0xffffffff, + 0x03000200, 0x23027f9e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in2_pdsp0_bin.c b/fw/v1/pa2_in2_pdsp0_bin.c index 5449673..ad20c8a 100644 --- a/fw/v1/pa2_in2_pdsp0_bin.c +++ b/fw/v1/pa2_in2_pdsp0_bin.c @@ -74,10 +74,10 @@ const uint32_t in2_pdsp0[] = { 0x21000300, 0xbabe0200, - 0xffffffff, + 0x03000200, 0x23027b9e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in3_pdsp0_bin.c b/fw/v1/pa2_in3_pdsp0_bin.c index 0f4e00c..d04e39f 100644 --- a/fw/v1/pa2_in3_pdsp0_bin.c +++ b/fw/v1/pa2_in3_pdsp0_bin.c @@ -74,10 +74,10 @@ const uint32_t in3_pdsp0[] = { 0x21000300, 0xbabe0300, - 0xffffffff, + 0x03000200, 0x23029e9e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in4_pdsp0_bin.c b/fw/v1/pa2_in4_pdsp0_bin.c index d1c2917..5c3e758 100644 --- a/fw/v1/pa2_in4_pdsp0_bin.c +++ b/fw/v1/pa2_in4_pdsp0_bin.c @@ -74,10 +74,10 @@ const uint32_t in4_pdsp0[] = { 0x21000300, 0xbabe0401, - 0xffffffff, + 0x03000200, 0x2302b69e, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8582, 0x8104a482, diff --git a/fw/v1/pa2_in4_pdsp1_bin.c b/fw/v1/pa2_in4_pdsp1_bin.c index 3f24aa6..a849199 100644 --- a/fw/v1/pa2_in4_pdsp1_bin.c +++ b/fw/v1/pa2_in4_pdsp1_bin.c @@ -74,7 +74,7 @@ const uint32_t in4_pdsp1[] = { 0x21000300, 0xbabe0401, - 0xffffffff, + 0x03000200, 0x2300f79e, 0x2eff8582, 0x8104a482, @@ -85,8 +85,8 @@ const uint32_t in4_pdsp1[] = { 0x2eff819d, 0x24000702, 0x81001762, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0xc901ff08, 0x91042481, diff --git a/fw/v1/pa2_post_pdsp0_bin.c b/fw/v1/pa2_post_pdsp0_bin.c index f3998ae..e75ccb7 100644 --- a/fw/v1/pa2_post_pdsp0_bin.c +++ b/fw/v1/pa2_post_pdsp0_bin.c @@ -74,7 +74,7 @@ const uint32_t post_pdsp0[] = { 0x21000300, 0xbabe0500, - 0xffffffff, + 0x03000200, 0x2305369e, 0x2eff8582, 0x8104a482, @@ -83,8 +83,8 @@ const uint32_t post_pdsp0[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2_post_pdsp1_bin.c b/fw/v1/pa2_post_pdsp1_bin.c index 6a12083..c87ddb4 100644 --- a/fw/v1/pa2_post_pdsp1_bin.c +++ b/fw/v1/pa2_post_pdsp1_bin.c @@ -74,7 +74,7 @@ const uint32_t post_pdsp1[] = { 0x21000300, 0xbabe0501, - 0xffffffff, + 0x03000200, 0x23039d9e, 0x2eff8582, 0x8104a482, @@ -83,8 +83,8 @@ const uint32_t post_pdsp1[] = { 0xc900ff00, 0xd100ff00, 0x2eff819d, - 0x24ffff82, - 0x24ffffc2, + 0x24020082, + 0x240300c2, 0x81043782, 0x2eff8780, 0x8110f780, diff --git a/fw/v1/pa2bin.c b/fw/v1/pa2bin.c index 8e588f9..8662c40 100644 --- a/fw/v1/pa2bin.c +++ b/fw/v1/pa2bin.c @@ -5,17 +5,11 @@ #include "pdsp_ver.h" #include "paconst.c" -#define DEVICE_PA_NUM_PDSPS (15U) -#define PA_PDSP_CONST_NUM_REG (32U) -#define PASS_VER_STR_LEN (16U) +#define DEVICE_PA_NUM_PDSPS (15U) +#define PA_PDSP_CONST_NUM_REG (32U) +#define PASS_VER_STR_LEN (16U) -typedef unsigned int u32; - -/* header to the firmware blob */ -struct pa_pdsp_firmware { - char version[PASS_VER_STR_LEN]; - u32 constants[PA_PDSP_CONST_NUM_REG]; -}; +#include "pdsp_blob_hdr.h" static char *versions[DEVICE_PA_NUM_PDSPS] = { PASS_VERSION_STR, @@ -32,96 +26,93 @@ static char *versions[DEVICE_PA_NUM_PDSPS] = { PASS_VERSION_STR, PASS_VERSION_STR, PASS_VERSION_STR, - PASS_VERSION_STR + PASS_VERSION_STR }; -static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { - "in0_pdsp0.bib", /* 0 */ - "in0_pdsp1.bib", /* 1 */ - "in1_pdsp0.bib", /* 2 */ - "in1_pdsp1.bib", /* 3 */ - "in2_pdsp0.bib", /* 4 */ - "in3_pdsp0.bib", /* 5 */ - "in4_pdsp0.bib", /* 6 */ - "in4_pdsp1.bib", /* 7 */ - "post_pdsp0.bib", /* 8 */ - "post_pdsp1.bib", /* 9 */ - "eg0_pdsp0.bib", /* 10 */ - "eg0_pdsp1.bib", /* 11 */ - "eg0_pdsp2.bib", /* 12 */ - "eg1_pdsp0.bib", /* 13 */ - "eg2_pdsp0.bib", /* 14 */ +static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { + "in0_pdsp0.bib", /* 0 */ + "in0_pdsp1.bib", /* 1 */ + "in1_pdsp0.bib", /* 2 */ + "in1_pdsp1.bib", /* 3 */ + "in2_pdsp0.bib", /* 4 */ + "in3_pdsp0.bib", /* 5 */ + "in4_pdsp0.bib", /* 6 */ + "in4_pdsp1.bib", /* 7 */ + "post_pdsp0.bib", /* 8 */ + "post_pdsp1.bib", /* 9 */ + "eg0_pdsp0.bib", /* 10 */ + "eg0_pdsp1.bib", /* 11 */ + "eg0_pdsp2.bib", /* 12 */ + "eg1_pdsp0.bib", /* 13 */ + "eg2_pdsp0.bib", /* 14 */ }; -static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { - "ks2_pa_in0_pdsp0", /* 0 */ - "ks2_pa_in0_pdsp1", /* 1 */ - "ks2_pa_in1_pdsp0", /* 2 */ - "ks2_pa_in1_pdsp1", /* 3 */ - "ks2_pa_in2_pdsp0", /* 4 */ - "ks2_pa_in3_pdsp0", /* 5 */ - "ks2_pa_in4_pdsp0", /* 6 */ - "ks2_pa_in4_pdsp1", /* 7 */ - "ks2_pa_post_pdsp0", /* 8 */ - "ks2_pa_post_pdsp1", /* 9 */ - "ks2_pa_eg0_pdsp0", /* 10 */ - "ks2_pa_eg0_pdsp1", /* 11 */ - "ks2_pa_eg0_pdsp2", /* 12 */ - "ks2_pa_eg1_pdsp0", /* 13 */ - "ks2_pa_eg2_pdsp0", /* 14 */ +static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { + "ks2_pa_in0_pdsp0", /* 0 */ + "ks2_pa_in0_pdsp1", /* 1 */ + "ks2_pa_in1_pdsp0", /* 2 */ + "ks2_pa_in1_pdsp1", /* 3 */ + "ks2_pa_in2_pdsp0", /* 4 */ + "ks2_pa_in3_pdsp0", /* 5 */ + "ks2_pa_in4_pdsp0", /* 6 */ + "ks2_pa_in4_pdsp1", /* 7 */ + "ks2_pa_post_pdsp0", /* 8 */ + "ks2_pa_post_pdsp1", /* 9 */ + "ks2_pa_eg0_pdsp0", /* 10 */ + "ks2_pa_eg0_pdsp1", /* 11 */ + "ks2_pa_eg0_pdsp2", /* 12 */ + "ks2_pa_eg1_pdsp0", /* 13 */ + "ks2_pa_eg2_pdsp0", /* 14 */ }; int main(int argc, char **argv) { - unsigned long b_sz, total = 0; - struct pa_pdsp_firmware pdsp; - char in_file_name[128]; - char out_file_name[128]; - char buf[1024]; - char *pc; - FILE *outfp, *infp; - int j, i; - int size; + unsigned long b_sz, total = 0; + struct pa_pdsp_firmware pdsp; + char in_file_name[128]; + char out_file_name[128]; + char buf[1024]; + char *pc; + FILE *outfp, *infp; + int j, i; + int size; + + for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { + if (!pdsp_in_file_names[i]) + continue; + bzero(in_file_name, sizeof(in_file_name)); + bzero(out_file_name, sizeof(out_file_name)); + strcpy(in_file_name, (char *)pdsp_in_file_names[i]); + strcpy(out_file_name, (char *)pdsp_out_file_names[i]); + pc = &out_file_name[strlen(out_file_name)]; - for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { - if (!pdsp_in_file_names[i]) - continue; - bzero(in_file_name, sizeof(in_file_name)); - bzero(out_file_name, sizeof(out_file_name)); - strcpy(in_file_name, (char *)pdsp_in_file_names[i]); - strcpy(out_file_name, (char *)pdsp_out_file_names[i]); - pc = &out_file_name[strlen(out_file_name)]; -#if 0 - strcat(pc, "-"); - strcat(pc, (char *)versions[i]); -#endif - strcat(pc, ".bin"); - outfp=fopen(out_file_name,"wb"); - infp=fopen(in_file_name,"rb"); - printf("input file: %s\n",in_file_name); - printf("output file: %s\n",out_file_name); - if (!outfp) - { - printf("Unable to open output file! %s", out_file_name); - exit(1); - } + strcat(pc, ".bin"); + outfp=fopen(out_file_name,"wb"); + infp=fopen(in_file_name,"rb"); + printf("input file: %s\n",in_file_name); + printf("output file: %s\n",out_file_name); + if (!outfp) + { + printf("Unable to open output file! %s", out_file_name); + exit(1); + } - if (!infp) - { - printf("Unable to open input file! %s", in_file_name); - fclose(outfp); - exit(2); - } + if (!infp) + { + printf("Unable to open input file! %s", in_file_name); + fclose(outfp); + exit(2); + } - strncpy((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN); - memcpy(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG); - fwrite(&pdsp, sizeof(pdsp), 1, outfp); - while(1) { - size = fread(buf, 1, 1024, infp); - if (size <= 0) - break; - fwrite(buf, size, 1, outfp); - } - fclose(outfp); - fclose(infp); - } + strncpy((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN); + memcpy(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG); + fwrite(&pdsp, sizeof(pdsp), 1, outfp); + while(1) { + size = fread(buf, 1, 1024, infp); + if (size <= 0) + break; + fwrite(buf, size, 1, outfp); + } + fclose(outfp); + fclose(infp); + } } diff --git a/fw/v1/pabinchk.c b/fw/v1/pabinchk.c new file mode 100644 index 0000000..fe196a2 --- /dev/null +++ b/fw/v1/pabinchk.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include "pa.h" +#include "pdsp_ver.h" +#include "paconst.c" + +#define DEVICE_PA_NUM_PDSPS (15U) +#define PA_PDSP_CONST_NUM_REG (32U) +#define PASS_VER_STR_LEN (16U) + +#include "pdsp_blob_hdr.h" + +static char *versions[DEVICE_PA_NUM_PDSPS] = { + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR, + PASS_VERSION_STR +}; +static char *pdsp_in_file_names[DEVICE_PA_NUM_PDSPS] = { + "in0_pdsp0.bib", /* 0 */ + "in0_pdsp1.bib", /* 1 */ + "in1_pdsp0.bib", /* 2 */ + "in1_pdsp1.bib", /* 3 */ + "in2_pdsp0.bib", /* 4 */ + "in3_pdsp0.bib", /* 5 */ + "in4_pdsp0.bib", /* 6 */ + "in4_pdsp1.bib", /* 7 */ + "post_pdsp0.bib", /* 8 */ + "post_pdsp1.bib", /* 9 */ + "eg0_pdsp0.bib", /* 10 */ + "eg0_pdsp1.bib", /* 11 */ + "eg0_pdsp2.bib", /* 12 */ + "eg1_pdsp0.bib", /* 13 */ + "eg2_pdsp0.bib", /* 14 */ +}; + +static char *pdsp_out_file_names[DEVICE_PA_NUM_PDSPS] = { + "ks2_pa_in0_pdsp0", /* 0 */ + "ks2_pa_in0_pdsp1", /* 1 */ + "ks2_pa_in1_pdsp0", /* 2 */ + "ks2_pa_in1_pdsp1", /* 3 */ + "ks2_pa_in2_pdsp0", /* 4 */ + "ks2_pa_in3_pdsp0", /* 5 */ + "ks2_pa_in4_pdsp0", /* 6 */ + "ks2_pa_in4_pdsp1", /* 7 */ + "ks2_pa_post_pdsp0", /* 8 */ + "ks2_pa_post_pdsp1", /* 9 */ + "ks2_pa_eg0_pdsp0", /* 10 */ + "ks2_pa_eg0_pdsp1", /* 11 */ + "ks2_pa_eg0_pdsp2", /* 12 */ + "ks2_pa_eg1_pdsp0", /* 13 */ + "ks2_pa_eg2_pdsp0", /* 14 */ +}; + +int main(int argc, char **argv) +{ + unsigned long b_sz, total = 0; + struct pa_pdsp_firmware pdsp; + char in_file_name[128]; + char out_file_name[128]; + char buf_in[1024]; + char buf_out[1024]; + char *pc; + FILE *outfp, *infp; + int j, i; + int size, mismatch = 0; + + for (i = 0; i < DEVICE_PA_NUM_PDSPS; i++) { + if (!pdsp_in_file_names[i]) + continue; + bzero(in_file_name, sizeof(in_file_name)); + bzero(out_file_name, sizeof(out_file_name)); + strcpy(in_file_name, (char *)pdsp_in_file_names[i]); + strcpy(out_file_name, (char *)pdsp_out_file_names[i]); + pc = &out_file_name[strlen(out_file_name)]; + + strcat(pc, ".bin"); + outfp=fopen(out_file_name,"rb"); + infp=fopen(in_file_name,"rb"); + + if (!outfp) + { + printf("Unable to open output file! %s", out_file_name); + exit(1); + } + + if (!infp) + { + printf("Unable to open input file! %s", in_file_name); + fclose(outfp); + exit(2); + } + + /* Check the version */ + fread(&pdsp, sizeof(pdsp), 1, outfp); + if ( 0 != strncmp((char *)&pdsp.version[0], (char *)versions[i], PASS_VER_STR_LEN)) + { + mismatch = 1; + } + + /* Check the constant */ + if ( 0 != memcmp(&pdsp.constants[0], &pap_pdsp_const_reg_map[i][0], sizeof(u32) * PA_PDSP_CONST_NUM_REG)) + { + mismatch = 2; + } + + while(mismatch == 0) { + size = fread(buf_out, 1, 1024, outfp); + if (size <= 0) + break; + + size = fread(buf_in, 1, 1024, infp); + if (size <= 0) + break; + + if ( 0 != memcmp(buf_in, buf_out, size)) + { + mismatch = 3; + } + } + fclose(outfp); + fclose(infp); + + if (mismatch != 0) + break; + } + + switch (mismatch) + { + + case 3: + printf ("blob mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + case 2: + printf ("constants mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + case 1: + printf ("version mismatch noticed on writing %s.bin file \n", pdsp_out_file_names[i]); + printf ("firmware write failed ....recheck \n"); + break; + + default: + printf ("all firmware written successfully...all matched \n"); + break; + } +} diff --git a/fw/v1/pam.p b/fw/v1/pam.p index b16d5f0..7e9dc81 100644 --- a/fw/v1/pam.p +++ b/fw/v1/pam.p @@ -73,6 +73,7 @@ #include "pdsp_mem.h" #include "pdsp_subs.h" #include "pm_config.h" +#include "pdsp_ver.h" #include "pm_constants.h" #include "parsescope.h" diff --git a/fw/v1/pdsp_ver.h b/fw/v1/pdsp_ver.h index 7edaed1..713d6d3 100644 --- a/fw/v1/pdsp_ver.h +++ b/fw/v1/pdsp_ver.h @@ -62,9 +62,9 @@ #ifndef _PDSP_VER_GEN2_H #define _PDSP_VER_GEN2_H 1 -#define PASS_VERSION_STR "FF.FF.FF.FF" +#define PASS_VERSION_STR "03.00.02.00" // Common PDSP version number -#define PASS_VERSION 0xFFFFFFFF +#define PASS_VERSION 0x03000200 #endif diff --git a/fw/v1/post_pdsp0.bib b/fw/v1/post_pdsp0.bib index 5872263..7c161d4 100644 Binary files a/fw/v1/post_pdsp0.bib and b/fw/v1/post_pdsp0.bib differ diff --git a/fw/v1/post_pdsp0.p b/fw/v1/post_pdsp0.p index 863718d..ab24b3f 100644 --- a/fw/v1/post_pdsp0.p +++ b/fw/v1/post_pdsp0.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_FIRST_PDSP #define PASS_PROC_PKT_FORWARD #define PASS_PROC_USR_STATS_FIFO diff --git a/fw/v1/post_pdsp1.bib b/fw/v1/post_pdsp1.bib index f8d4a5f..8559cfe 100644 Binary files a/fw/v1/post_pdsp1.bib and b/fw/v1/post_pdsp1.bib differ diff --git a/fw/v1/post_pdsp1.p b/fw/v1/post_pdsp1.p index 7f02a9d..af83a6c 100644 --- a/fw/v1/post_pdsp1.p +++ b/fw/v1/post_pdsp1.p @@ -55,7 +55,6 @@ // // #include "pm_config.h" -#include "pdsp_ver.h" #define PASS_LAST_PDSP #define PASS_PROC_PKT_FORWARD #define PASS_POST_PROCESSING -- cgit v1.2.3-54-g00ecf