emigen.pl 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #!/usr/local/bin/perl
  2. #
  3. #*****************************************************************************
  4. # Copyright Statement:
  5. # --------------------
  6. # This software is protected by Copyright and the information contained
  7. # herein is confidential. The software may not be copied and the information
  8. # contained herein may not be used or disclosed except with the written
  9. # permission of MediaTek Inc. (C) 2008
  10. #
  11. # BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  12. # THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  13. # RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  14. # AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  15. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  16. # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  17. # NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  18. # SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  19. # SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  20. # THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  21. # NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  22. # SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  23. #
  24. # BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  25. # LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  26. # AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  27. # OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  28. # MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  29. #
  30. # THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  31. # WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  32. # LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  33. # RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  34. # THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  35. #
  36. #****************************************************************************/
  37. #*
  38. #* Filename:
  39. #* ---------
  40. #* emigen_sp.pl
  41. #*
  42. #* Project:
  43. #* --------
  44. #*
  45. #*
  46. #* Description:
  47. #* ------------
  48. #* This script will
  49. #* 1. parse custom_MemoryDevice.h to get memory device type and part number
  50. #* 2. read a excel file to get appropriate emi setting based on the part number
  51. #* 3. based on the emi settings, generate custom_EMI.c if not exist
  52. #* 4. based on the emi settings, generate custom_EMI.h if not exist
  53. #*
  54. #* Author:
  55. #* -------
  56. #*
  57. #*============================================================================
  58. #* HISTORY
  59. #* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  60. #*------------------------------------------------------------------------------
  61. #* $Revision$
  62. #* $Modtime$
  63. #* $Log$
  64. #*
  65. #*
  66. #*------------------------------------------------------------------------------
  67. #* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  68. #*============================================================================
  69. #****************************************************************************/
  70. #****************************************************************************
  71. # Included Modules
  72. #****************************************************************************
  73. # original design, but perl does not support array of structure, really?
  74. #
  75. #my $CustomChip = () ;
  76. #
  77. #
  78. # an array of following structure:
  79. #
  80. # CustChip => NAND_ID
  81. # => CS0_PART_NUMBER
  82. # => CS1_PART_NUMBER
  83. #
  84. #
  85. #
  86. #
  87. #
  88. #
  89. use strict;
  90. use File::Basename;
  91. my $LOCAL_PATH;
  92. BEGIN {
  93. $LOCAL_PATH = dirname($0);
  94. }
  95. use lib "$LOCAL_PATH/../common";
  96. use emigen_v1;
  97. &emigen_set_id("MT6761", "v38");
  98. #&emigen_set_id("MT6761", "v00");
  99. # combo rule in preloader must support same emmc id with different rank size
  100. &emigen_opt_set("COMBO_MCP_RULE_V", 2);
  101. # check if all select mdl have same type of pinmux
  102. &emigen_opt_set("PINMUX_CHECK", 1);
  103. # platform can support these type of dram
  104. &emigen_support_ddr("LPDDR3");
  105. &emigen_support_ddr("LPDDR4");
  106. &emigen_support_ddr("LPDR4X");
  107. #&emigen_support_ddr("LPDR4P");
  108. &emigen_support_hw_trap("LPDDR3");
  109. &emigen_support_hw_trap("LPDDR4");
  110. &emigen_support_hw_trap("LPDR4X");
  111. #&emigen_support_hw_trap("LPDR4P");
  112. &emigen_check_bldr(1);
  113. #&emigen_run("custom/evb6763_64_emmc/inc/custom_MemoryDevice.h", "tools/emigen/MT6763/MemoryDeviceList_MT6763.xls", "evb6763_64_emmc_otp", "out/xxx/", 0);
  114. &emigen_run($ARGV[0], $ARGV[1], $ARGV[3], $ARGV[4], $ARGV[5]);