[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/tools/genverno.pl b/mcu/tools/genverno.pl
new file mode 100644
index 0000000..cb586b9
--- /dev/null
+++ b/mcu/tools/genverno.pl
@@ -0,0 +1,457 @@
+#!/usr/bin/perl

+#

+#  Copyright Statement:

+#  --------------------

+#  This software is protected by Copyright and the information contained

+#  herein is confidential. The software may not be copied and the information

+#  contained herein may not be used or disclosed except with the written

+#  permission of MediaTek Inc. (C) 2012

+#

+#  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES

+#  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")

+#  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON

+#  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,

+#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF

+#  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.

+#  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE

+#  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR

+#  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH

+#  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO

+#  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S

+#  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.

+#

+#  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE

+#  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,

+#  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,

+#  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO

+#  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.

+#

+#  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE

+#  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF

+#  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND

+#  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER

+#  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).

+#

+#*****************************************************************************

+#*

+#* Filename:

+#* ---------

+#*   genverno.pl

+#*

+#* Project:

+#* --------

+#*

+#*

+#* Description:

+#* ------------

+#*   This script is to generate verno.c/verno.h

+#*

+#* Author:

+#* -------

+#*   Ray Lin-Wang (mtk04222)

+#*

+#*============================================================================

+#*             HISTORY

+#* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!

+#*------------------------------------------------------------------------------

+#* $Revision$

+#* $Modtime$

+#* $Log$

+#*

+#* 07 28 2020 chi-chun.lu

+#* [MOLY00550711] update release_bb_chip()

+#* .

+#*

+#* 10 30 2018 gerry.liao

+#* [MOLY00356929] [Gen95/97][exception] refine DSP assert file name policy to fix findowner problem in co-branch

+#* .

+#*

+#* 10 30 2018 gerry.liao

+#* [MOLY00356929] [Gen95/97][exception] refine DSP assert file name policy to fix findowner problem in co-branch

+#* 	

+#* 	.

+#* 10 04 2018 gerry.liao

+#* [MOLY00356929] [Gen95/97][exception] refine DSP assert file name policy to fix findowner problem in co-branch

+#* .

+#*

+#*

+#* 10 04 2018 gerry.liao

+#* [MOLY00356929] [Gen95/97][exception] refine DSP assert file name policy to fix findowner problem in co-branch

+#* .

+#*

+#* 08 02 2018 chi-chun.lu

+#* [MOLY00343751] [MakeFile] [UMOLYE] [Modify Makefile Rules] move cxif checksum flow

+#* 	

+#* 	.

+#*

+#* 08 02 2018 chi-chun.lu

+#* [MOLY00343751] [MakeFile] [UMOLYE] [Modify Makefile Rules] move cxif checksum flow

+#* 	

+#* 	.

+#*

+#* 03 15 2018 yuri.huang

+#* [MOLY00313719] [MakeFile] [UMOLY] [Modify Makefile Rules] Modify genverno.pl for verno.c info

+#* (Qmei).

+#*

+#* 04 19 2017 gerry.liao

+#* [MOLY00242320] [SM] dsp update label feature

+#* 	

+#* 	.

+#*

+#* 03 03 2017 gerry.liao

+#* [MOLY00233116] add cxif checksum scripts

+#* .

+#*

+#* 12 01 2015 chi-chun.lu

+#* [MOLY00141748] [MakeFile][UMOLY] [Modify Makefile Rules] modify genverno scripts

+#* 	

+#* 	.

+#*

+#* 07 27 2015 gerry.liao

+#* [MOLY00132584] [SM] add $(DSP_PROJECT) and $(DSP_FLAVOR) get function

+#* 	.

+#*

+#*

+#*------------------------------------------------------------------------------

+#* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!

+#*============================================================================

+#****************************************************************************/

+#****************************************************************************

+# Included Modules

+#****************************************************************************

+BEGIN { push @INC, './tools/CXIF/'  }

+use strict;

+use CUIF_Structure_Check;

+use CMIF_Structure_Check;

+

+#****************************************************************************

+# Input Parameters & Global Variables

+#****************************************************************************

+my $verno_dir       = $ARGV[0]; # The output path of verno.c and verno.h

+my $verno           = $ARGV[1]; # The version number

+my $build_date_time = $ARGV[2]; # The date of building

+my $branch          = $ARGV[3]; # The branch name

+my $hal_verno       = $ARGV[4]; 

+my $hw_verno        = $ARGV[5];

+my $build           = $ARGV[6];

+my $flavor          = $ARGV[7];

+my $platform        = $ARGV[8];

+my $dsp_proj        = $ARGV[9];

+my $dsp_flavor      = $ARGV[10];

+my $project_name    = $ARGV[11];

+my $mtk_modem_arch  = $ARGV[12];

+my $source_file = "verno.c";

+my $header_file = "verno.h";

+

+#****************************************************************************

+# subroutines

+#****************************************************************************

+#****************************************************************************

+# Execute

+#****************************************************************************

+open (SRCFILE, ">$verno_dir/$source_file") or &error_handler("$verno_dir/$source_file : file error!", __FILE__, __LINE__);

+print SRCFILE &gen_verno_src_declare;

+print SRCFILE &gen_verno_src_rel_verno;

+print SRCFILE &gen_verno_src_hal_verno;

+print SRCFILE &gen_verno_src_hw_ver;

+print SRCFILE &gen_verno_src_proj_name;

+print SRCFILE &gen_verno_src_build_date;

+print SRCFILE &gen_verno_src_rel_build;

+print SRCFILE &gen_verno_src_rel_branch;

+print SRCFILE &gen_verno_src_rel_flavor;

+print SRCFILE &gen_verno_src_rel_platform;

+print SRCFILE &gen_verno_src_rel_dsp_proj;

+print SRCFILE &gen_verno_src_rel_dsp_flavor;

+print SRCFILE &gen_verno_src_rel_dsp_root;

+close SRCFILE;

+

+open (H_FILE, ">$verno_dir/$header_file") or &error_handler("$verno_dir/$header_file : file error!", __FILE__, __LINE__);

+print H_FILE &gen_verno_header_file;

+close H_FILE;

+

+#****************************************************************************

+# subroutine: genverno_verno

+#****************************************************************************

+sub genverno_verno

+{

+    return " v0.00 , initial version ";

+}

+

+#****************************************************************************

+# subroutine:  gen_verno_header_file

+#****************************************************************************

+sub gen_verno_header_file

+{    

+	my $template = <<"__TEMPLATE";

+#define VERNO_STR "$verno"

+#define HW_VER_STR "$hw_verno"

+#define PROJECT_NAME_STR "$project_name"

+#define BUILD_DATE_TIME_STR "$build_date_time"

+#define BUILD_STR "$build"

+#define BUILD_BRANCH_STR "$branch"

+#define PLATFORM "$platform"

+__TEMPLATE

+}

+

+#****************************************************************************

+# 1. subroutine:  gen_verno_src_declare

+#****************************************************************************

+sub gen_verno_src_declare

+{   

+	my $template = <<"__TEMPLATE";

+#include "kal_public_api.h"

+#define VERNO_LENGTH 128

+#if defined(__MTK_TARGET__)

+__attribute__ ((section ("RELEASE_VERNO_RW"))) static kal_char verno_str[VERNO_LENGTH] = "$verno";

+__attribute__ ((section ("BUILD_TIME_RW"))) static kal_char build_date_time_str[] = "$build_date_time";

+__attribute__ ((section ("RELEASE_BRANCH_RW"))) static kal_char build_branch_str[] = "$branch";

+kal_char build_flavor_str[] = "$flavor";

+kal_char build_platform_str[] = "$platform";

+kal_char build_dsp_proj_str[] = "$dsp_proj";

+

+extern kal_uint32 RELEASE_VERNO_RW\$\$Base;

+extern kal_uint32 BUILD_TIME_RW\$\$Base;

+extern kal_uint32 RELEASE_BRANCH_RW\$\$Base;

+#endif

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 2. subroutine:  gen_verno_src_rel_verno

+#****************************************************************************

+sub gen_verno_src_rel_verno

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_verno(void)

+{

+#if defined(__MTK_TARGET__)

+#if defined(__GNUC__)

+   return verno_str;

+#else

+   return (kal_char*)&RELEASE_VERNO_RW\$\$Base;

+#endif

+#else

+   static kal_char verno_str[VERNO_LENGTH] = "$verno";

+   return verno_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 3. subroutine:  gen_verno_src_hal_verno

+#****************************************************************************

+sub gen_verno_src_hal_verno

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_hal_verno(void)

+{

+   static kal_char hal_verno_str[] = "$hal_verno";

+   return hal_verno_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 4. subroutine:  gen_verno_src_hw_ver

+#****************************************************************************

+sub gen_verno_src_hw_ver

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_hw_ver(void)

+{

+   static kal_char hw_ver_str[] = "$hw_verno";

+   return hw_ver_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 5. subroutine:  gen_verno_src_build_date

+#****************************************************************************

+sub gen_verno_src_build_date

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* build_date_time(void)

+{

+#if defined(__MTK_TARGET__)

+#if defined(__GNUC__)

+   return build_date_time_str;

+#else

+   return (kal_char*)&BUILD_TIME_RW\$\$Base;

+#endif

+#else

+   static kal_char build_date_time_str[] = "$build_date_time";

+   return build_date_time_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 6. subroutine:  gen_verno_src_rel_build

+#****************************************************************************

+sub gen_verno_src_rel_build

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_build(void)

+{

+   static kal_char build_str[] = "$build";

+   return build_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 7. subroutine:  gen_verno_src_rel_branch

+#****************************************************************************

+sub gen_verno_src_rel_branch

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_branch(void)

+{

+#if defined(__MTK_TARGET__)

+#if defined(__GNUC__)

+   return build_branch_str;

+#else

+   return (kal_char*)&RELEASE_BRANCH_RW\$\$Base;

+#endif

+#else

+   static kal_char build_branch_str[] = "$branch";

+   return build_branch_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 8. subroutine:  gen_verno_src_rel_flavor

+#****************************************************************************

+sub gen_verno_src_rel_flavor

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_flavor(void)

+{

+#if defined(__MTK_TARGET__)

+   return build_flavor_str;

+#else

+   static kal_char build_flavor_str[] = "$flavor";

+   return build_flavor_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 9. subroutine:  gen_verno_src_rel_dsp_proj

+#****************************************************************************

+sub gen_verno_src_rel_dsp_proj

+{    

+  my $template = <<"__TEMPLATE";

+kal_char* release_dsp_proj(void)

+{

+#if defined(__MTK_TARGET__)

+   return build_dsp_proj_str;

+#else

+   static kal_char build_dsp_proj_str[] = "$dsp_proj";

+   return build_dsp_proj_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 10. subroutine:  gen_verno_src_rel_dsp_flavor

+#****************************************************************************

+sub gen_verno_src_rel_dsp_flavor

+{    

+  my $template = <<"__TEMPLATE";

+kal_char* release_dsp_flavor(void)

+{

+   static kal_char build_dsp_flavor_str[] = "$dsp_flavor";

+   return build_dsp_flavor_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 11. subroutine:  gen_verno_src_proj_name

+#****************************************************************************

+sub gen_verno_src_proj_name

+{    

+	my $template = <<"__TEMPLATE";

+kal_char* release_proj_name(void)

+{

+   static kal_char proj_name_str[] = "$project_name";

+   return proj_name_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 12. subroutine:  gen_verno_dsp_root

+#****************************************************************************

+sub gen_verno_src_rel_dsp_root

+{

+  my $dsp_root = "dsp/";

+  if ($mtk_modem_arch eq "mt6295")

+  {

+    $dsp_root = "dsp2/";

+  }

+  elsif ($mtk_modem_arch eq "mt6297")

+  {

+    $dsp_root = "dsp3/";

+  }

+  

+  my $template = <<"__TEMPLATE";

+kal_char* release_dsp_root(void)

+{

+   static kal_char build_dsp_root_str[] = "$dsp_root";

+   return build_dsp_root_str;

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# 13. subroutine:  gen_verno_src_rel_platform

+#****************************************************************************

+sub gen_verno_src_rel_platform {

+  my $template = <<"__TEMPLATE";

+kal_char* release_mcu_platform(void)

+{

+#if defined(__MTK_TARGET__)

+   return build_platform_str;

+#else

+   static kal_char build_platform_str[] = "$platform";

+   return build_platform_str;

+#endif

+}

+

+__TEMPLATE

+}

+

+#****************************************************************************

+# subroutine:  error_handler

+# input:       $error_msg:     error message

+#****************************************************************************

+sub error_handler

+{

+    my ($error_msg, $file, $line_no) = @_;

+    

+    my $final_error_msg = "GENVERNO ERROR: $error_msg at $file line $line_no\n";

+    print $final_error_msg;

+    die $final_error_msg;

+}

+