Forráskód Böngészése

init: mediatek bsp q preloader

Signed-off-by: svoboda18 <dev.svoboda18@gmail.com>
svoboda18 2 éve
commit
039f573549
100 módosított fájl, 6443 hozzáadás és 0 törlés
  1. 2 0
      .gitignore
  2. 66 0
      Android.mk
  3. 2 0
      CleanSpec.mk
  4. BIN
      MTK_Loader_Info.tag
  5. 687 0
      Makefile
  6. 2 0
      README
  7. 12 0
      alignment_check.sh
  8. 48 0
      bl_sign_v10.mak
  9. 10 0
      bl_sign_v11.mak
  10. 29 0
      bl_sign_v21.mak
  11. 59 0
      build.sh
  12. 73 0
      build/common-dir.mak
  13. 145 0
      build/common.mak
  14. 69 0
      build/common_no_optimize.mak
  15. 13 0
      build/debug.in
  16. 24 0
      build/setting.in
  17. 115 0
      build_preloader.mk
  18. 136 0
      codesize_profiling.sh
  19. 2 0
      custom/README
  20. 52 0
      custom/k37mv1_64_bsp/cust_bldr.mak
  21. 124 0
      custom/k37mv1_64_bsp/cust_msdc.c
  22. BIN
      custom/k37mv1_64_bsp/dct/dct/codegen.dws
  23. 85 0
      custom/k37mv1_64_bsp/inc/cust_bldr.h
  24. 87 0
      custom/k37mv1_64_bsp/inc/cust_msdc.h
  25. 100 0
      custom/k37mv1_64_bsp/inc/cust_nand.h
  26. 50 0
      custom/k37mv1_64_bsp/inc/cust_rtc.h
  27. 243 0
      custom/k37mv1_64_bsp/inc/cust_sec_ctrl.h
  28. 52 0
      custom/k37mv1_64_bsp/inc/cust_usb.h
  29. 115 0
      custom/k37mv1_64_bsp/inc/custom_MemoryDevice.h
  30. 63 0
      custom/k37mv1_64_bsp/inc/memory.h
  31. 30 0
      custom/k37mv1_64_bsp/k37mv1_64_bsp.mk
  32. 64 0
      custom/k37mv1_64_bsp/makefile
  33. 6 0
      custom/k37mv1_64_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini
  34. 1 0
      custom/k37mv1_64_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini
  35. 36 0
      custom/k37mv1_64_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini
  36. 23 0
      custom/k37mv1_64_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini
  37. 18 0
      custom/k37mv1_64_bsp/security/image_auth/IMG_AUTH_CFG.ini
  38. 2 0
      custom/k37mv1_64_bsp/security/image_auth/IMG_AUTH_KEY.ini
  39. 52 0
      custom/k37mv1_bsp/cust_bldr.mak
  40. 124 0
      custom/k37mv1_bsp/cust_msdc.c
  41. BIN
      custom/k37mv1_bsp/dct/dct/codegen.dws
  42. 85 0
      custom/k37mv1_bsp/inc/cust_bldr.h
  43. 87 0
      custom/k37mv1_bsp/inc/cust_msdc.h
  44. 100 0
      custom/k37mv1_bsp/inc/cust_nand.h
  45. 50 0
      custom/k37mv1_bsp/inc/cust_rtc.h
  46. 245 0
      custom/k37mv1_bsp/inc/cust_sec_ctrl.h
  47. 52 0
      custom/k37mv1_bsp/inc/cust_usb.h
  48. 117 0
      custom/k37mv1_bsp/inc/custom_MemoryDevice.h
  49. 63 0
      custom/k37mv1_bsp/inc/memory.h
  50. 30 0
      custom/k37mv1_bsp/k37mv1_bsp.mk
  51. 64 0
      custom/k37mv1_bsp/makefile
  52. 6 0
      custom/k37mv1_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini
  53. 1 0
      custom/k37mv1_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini
  54. 36 0
      custom/k37mv1_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini
  55. 23 0
      custom/k37mv1_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini
  56. 18 0
      custom/k37mv1_bsp/security/image_auth/IMG_AUTH_CFG.ini
  57. 2 0
      custom/k37mv1_bsp/security/image_auth/IMG_AUTH_KEY.ini
  58. 52 0
      custom/k37mv1_bsp_512/cust_bldr.mak
  59. 124 0
      custom/k37mv1_bsp_512/cust_msdc.c
  60. BIN
      custom/k37mv1_bsp_512/dct/dct/codegen.dws
  61. 85 0
      custom/k37mv1_bsp_512/inc/cust_bldr.h
  62. 87 0
      custom/k37mv1_bsp_512/inc/cust_msdc.h
  63. 100 0
      custom/k37mv1_bsp_512/inc/cust_nand.h
  64. 50 0
      custom/k37mv1_bsp_512/inc/cust_rtc.h
  65. 245 0
      custom/k37mv1_bsp_512/inc/cust_sec_ctrl.h
  66. 52 0
      custom/k37mv1_bsp_512/inc/cust_usb.h
  67. 115 0
      custom/k37mv1_bsp_512/inc/custom_MemoryDevice.h
  68. 63 0
      custom/k37mv1_bsp_512/inc/memory.h
  69. 30 0
      custom/k37mv1_bsp_512/k37mv1_bsp_512.mk
  70. 64 0
      custom/k37mv1_bsp_512/makefile
  71. 6 0
      custom/k37mv1_bsp_512/security/chip_config/s/cfg/CHIP_CONFIG.ini
  72. 1 0
      custom/k37mv1_bsp_512/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini
  73. 36 0
      custom/k37mv1_bsp_512/security/chip_config/s/gfh/GFH_CONFIG.ini
  74. 23 0
      custom/k37mv1_bsp_512/security/chip_config/s/key/CHIP_TEST_KEY.ini
  75. 18 0
      custom/k37mv1_bsp_512/security/image_auth/IMG_AUTH_CFG.ini
  76. 2 0
      custom/k37mv1_bsp_512/security/image_auth/IMG_AUTH_KEY.ini
  77. 51 0
      custom/k37tv1_64_bsp/cust_bldr.mak
  78. 124 0
      custom/k37tv1_64_bsp/cust_msdc.c
  79. BIN
      custom/k37tv1_64_bsp/dct/dct/codegen.dws
  80. 85 0
      custom/k37tv1_64_bsp/inc/cust_bldr.h
  81. 87 0
      custom/k37tv1_64_bsp/inc/cust_msdc.h
  82. 100 0
      custom/k37tv1_64_bsp/inc/cust_nand.h
  83. 50 0
      custom/k37tv1_64_bsp/inc/cust_rtc.h
  84. 241 0
      custom/k37tv1_64_bsp/inc/cust_sec_ctrl.h
  85. 52 0
      custom/k37tv1_64_bsp/inc/cust_usb.h
  86. 111 0
      custom/k37tv1_64_bsp/inc/custom_MemoryDevice.h
  87. 63 0
      custom/k37tv1_64_bsp/inc/memory.h
  88. 29 0
      custom/k37tv1_64_bsp/k37tv1_64_bsp.mk
  89. 64 0
      custom/k37tv1_64_bsp/makefile
  90. 6 0
      custom/k37tv1_64_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini
  91. 1 0
      custom/k37tv1_64_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini
  92. 36 0
      custom/k37tv1_64_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini
  93. 23 0
      custom/k37tv1_64_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini
  94. 18 0
      custom/k37tv1_64_bsp/security/image_auth/IMG_AUTH_CFG.ini
  95. 2 0
      custom/k37tv1_64_bsp/security/image_auth/IMG_AUTH_KEY.ini
  96. 51 0
      custom/k37tv1_bsp_512/cust_bldr.mak
  97. 124 0
      custom/k37tv1_bsp_512/cust_msdc.c
  98. BIN
      custom/k37tv1_bsp_512/dct/dct/codegen.dws
  99. 85 0
      custom/k37tv1_bsp_512/inc/cust_bldr.h
  100. 87 0
      custom/k37tv1_bsp_512/inc/cust_msdc.h

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+tools/gcc
+Build-*

+ 66 - 0
Android.mk

@@ -0,0 +1,66 @@
+LOCAL_PATH := $(call my-dir)
+PRELOADER_ROOT_DIR := $(PWD)
+
+ifdef PRELOADER_TARGET_PRODUCT
+ifeq ($(BUILD_PRELOADER),yes)
+
+  PRELOADER_DIR := $(LOCAL_PATH)
+
+include $(LOCAL_PATH)/platform/$(MTK_PLATFORM_DIR)/default.mak
+include $(LOCAL_PATH)/custom/$(MTK_PROJECT_NAME)/cust_bldr.mak
+
+PRELOADER_UFS_HEADER_BLOCK := $(LOCAL_PATH)/platform/$(MTK_PLATFORM_DIR)/headerblock_for_ota_fastboot_ufs
+PRELOADER_EMMC_HEADER_BLOCK := $(LOCAL_PATH)/platform/$(MTK_PLATFORM_DIR)/headerblock_for_ota_fastboot_emmc
+
+ifeq ("$(CFG_BOOT_DEV)", "BOOTDEV_UFS")
+  PRELOADER_HEADER_BLOCK := $(LOCAL_PATH)/platform/$(MTK_PLATFORM_DIR)/headerblock_for_ota_fastboot_ufs
+else
+  ifeq ("$(CFG_BOOT_DEV)", "BOOTDEV_SDMMC")
+    PRELOADER_HEADER_BLOCK := $(LOCAL_PATH)/platform/$(MTK_PLATFORM_DIR)/headerblock_for_ota_fastboot_emmc
+  endif
+endif
+
+  ifeq ($(PRELOADER_CROSS_COMPILE),)
+    ifeq ($(TARGET_ARCH), arm)
+      PRELOADER_CROSS_COMPILE := $(PRELOADER_ROOT_DIR)/$(TARGET_TOOLS_PREFIX)
+    else ifeq ($(TARGET_2ND_ARCH), arm)
+      PRELOADER_CROSS_COMPILE := $(PRELOADER_ROOT_DIR)/$($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_TOOLS_PREFIX)
+    endif
+  endif
+  # Check flavor support
+  PROJECT_CONFIGS         := $(PRELOADER_DIR)/custom/$(PRELOADER_TARGET_PRODUCT)/$(PRELOADER_TARGET_PRODUCT).mk
+
+  PL_MODE :=
+  include $(LOCAL_PATH)/build_preloader.mk
+
+  ifeq (yes,$(BOARD_BUILD_SBOOT_DIS_PL))
+    PL_MODE := SBOOT_DIS
+    include $(LOCAL_PATH)/build_preloader.mk
+  endif
+
+  ifeq (yes,$(BOARD_BUILD_RPMB_KEY_PL))
+    PL_MODE := RPMB_KEY
+    include $(LOCAL_PATH)/build_preloader.mk
+  endif
+
+.PHONY: clean-preloader check-mtk-config check-pl-config
+preloader pl: check-pl-config
+
+check-mtk-config: check-pl-config
+check-pl-config:
+ifneq (yes,$(strip $(DISABLE_MTK_CONFIG_CHECK)))
+	python device/mediatek/build/build/tools/check_kernel_config.py -c $(MTK_TARGET_PROJECT_FOLDER)/ProjectConfig.mk -b $(PROJECT_CONFIGS) -p $(MTK_PROJECT_NAME)
+else
+	-python device/mediatek/build/build/tools/check_kernel_config.py -c $(MTK_TARGET_PROJECT_FOLDER)/ProjectConfig.mk -b $(PROJECT_CONFIGS) -p $(MTK_PROJECT_NAME)
+endif
+
+else
+
+  PL_MODE :=
+  include $(LOCAL_PATH)/prebuilt_preloader.mk
+
+endif#BUILD_PRELOADER
+.PHONY: preloader pl
+droidcore: preloader
+endif#PRELOADER_TARGET_PRODUCT
+

+ 2 - 0
CleanSpec.mk

@@ -0,0 +1,2 @@
+# Copyright (c) 2015 MediaTek Inc.
+# dummy file

BIN
MTK_Loader_Info.tag


+ 687 - 0
Makefile

@@ -0,0 +1,687 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+#
+# MediaTek Inc. (C) 2011. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+# Compatible with Ubuntu 12.04
+SHELL := /bin/bash
+
+.DELETE_ON_ERROR:
+all:
+
+HOST_OS ?= $(shell uname | tr '[A-Z]' '[a-z]')
+##############################################################
+# Including Neccesary Files
+#
+
+ifndef PRELOADER_OUT
+  PRELOADER_OUT := .
+endif
+ifndef MTK_PROJECT
+  $(error MTK_PROJECT is not defined)
+else
+  export MTK_PROJECT
+endif
+
+
+##############################################################
+# Secure Library Building Control
+#
+
+export CREATE_SEC_LIB := FALSE
+export STANDALONE_SEC_DEVINFO := TRUE
+export CREATE_DEVINFO_LIB := FALSE
+
+##############################################################
+# Variable Initialization
+#
+
+export D_ROOT           := $(CURDIR)
+export MTK_ROOT_OUT     := $(CURDIR)
+export PWD              := $(CURDIR)
+ALL                     ?= show_title show_internal_feature show_feature
+ALL_PREGEN_FILE         :=
+export MTK_ROOT_CUSTOM  := $(D_ROOT)/custom
+
+PROJECT_CONFIGS         := $(MTK_ROOT_CUSTOM)/$(MTK_PROJECT)/$(MTK_PROJECT).mk
+include $(PROJECT_CONFIGS)
+
+ifndef TARGET
+  $(error TARGET is not defined)
+else
+  export TARGET
+endif
+export MTK_PATH_CUSTOM  := $(MTK_ROOT_CUSTOM)/$(TARGET)
+
+ifndef MTK_PLATFORM
+  $(error MTK_PLATFORM is not defined)
+else
+  export MTK_PLATFORM
+  PLATFORM := $(shell echo $(MTK_PLATFORM) | tr A-Z a-z)
+endif
+export MTK_PATH_PLATFORM := $(D_ROOT)/platform/$(PLATFORM)
+
+export MTK_PATH_COMMON         := $(D_ROOT)/platform/common
+export MTK_PATH_PAL            := $(D_ROOT)/platform/pal
+
+export INCLUDE_FILE_COMMON := -I$(MTK_PATH_COMMON)/inc \
+				-I$(MTK_PATH_COMMON)/geniezone/inc \
+				-I$(MTK_PATH_PAL)/inc \
+				-I$(PRELOADER_OUT)/inc \
+				-I$(MTK_PATH_PLATFORM)/src/init/inc \
+				-I$(MTK_PATH_PLATFORM)/src/core/inc \
+				-I$(MTK_PATH_PLATFORM)/src/drivers/inc \
+				-I$(MTK_PATH_PLATFORM)/src/security/inc \
+				-I$(MTK_PATH_PLATFORM)/src/security/trustzone/inc \
+				-I$(MTK_ROOT_CUSTOM)/$(PLATFORM)/drdi
+
+#
+# Image Auth
+#
+CUSTOM_PATH             := $(MTK_PATH_CUSTOM)/security
+IMAGE_AUTH_CFG_FILE     := ${PRELOADER_OUT}/inc/KEY_IMAGE_AUTH.h
+#IMAGE_AUTH_CONFIG_PATH  := ${CUSTOM_PATH}/image_auth
+IMAGE_AUTH_CONFIG_PATH  := ${CUSTOM_PATH}/image_auth
+IMAGE_AUTH_KEY          := ${IMAGE_AUTH_CONFIG_PATH}/IMG_AUTH_KEY.ini
+IMAGE_AUTH_CFG          := ${IMAGE_AUTH_CONFIG_PATH}/IMG_AUTH_CFG.ini
+IMAGE_AUTH_KEY_EXIST    := $(if $(wildcard $(IMAGE_AUTH_KEY)),TRUE,FALSE)
+ifeq ("$(IMAGE_AUTH_KEY_EXIST)","TRUE")
+ALL                     += img_auth_info
+ALL_PREGEN_FILE         += $(IMAGE_AUTH_CFG_FILE)
+endif
+CHIP_CONFIG_PATH        := $(CUSTOM_PATH)/chip_config
+GFH_PATH                := $(CHIP_CONFIG_PATH)/s/gfh
+CONFIG_PATH             := $(CHIP_CONFIG_PATH)/s/cfg
+KEY_PATH                := $(CHIP_CONFIG_PATH)/s/key
+ifneq ($(wildcard $(CONFIG_PATH)/PADDING_TYPE.ini),)
+PADDING_TYPE            := $(shell cat $(CONFIG_PATH)/PADDING_TYPE.ini)
+endif
+
+#
+# preloader extension
+#
+PRELOADER_EXT_BIN       := $(MTK_ROOT_CUSTOM)/$(PLATFORM)/preloader/preloader_ext.bin
+PRELOADER_EXT_BIN_EXIST := $(if $(wildcard $(PRELOADER_EXT_BIN)),TRUE,FALSE)
+
+#
+# Tool
+#
+EFUSE_PY_FILE			:= tools/efuse/efuse_bingen_v2.py
+EFUSE_PY_DEF			:= tools/efuse/$(MTK_PLATFORM)/efuse_definition.xml
+EFUSE_INPUT_FILE		:= $(D_ROOT)/../../../../../../vendor/mediatek/proprietary/custom/$(TARGET)/security/efuse/input.xml
+EFUSE_IMAGE_NAME        := efuse_$(MTK_PROJECT).img
+
+TOOL_PATH               ?= $(D_ROOT)/../../../../../../device/mediatek/build/build/tools
+
+ifeq ($(HOST_OS),darwin)
+SIGN_TOOL               := tools/signtool/SignTool_PL.darwin
+CIPHER_TOOL             := tools/ciphertool/CipherTool.darwin
+else
+SIGN_TOOL               := tools/signtool/SignTool_PL
+CIPHER_TOOL             := tools/ciphertool/CipherTool
+endif
+
+ifdef PL_MODE
+PL_IMAGE_NAME           := preloader_$(MTK_PROJECT)_$(PL_MODE)
+else
+PL_IMAGE_NAME           := preloader_$(MTK_PROJECT)
+endif
+
+SEC_LIB                 := $(MTK_PATH_PLATFORM)/lib/libsec.a
+SEC_PLAT_LIB            := $(MTK_PATH_PLATFORM)/lib/libsecplat.a
+CRYPTO_LIB              := $(MTK_PATH_PLATFORM)/lib/libcrypto.a
+DEVINFO_LIB     	    := $(MTK_PATH_PLATFORM)/lib/libdevinfo.a
+DEVINFO_DEBUG_LIB       := $(MTK_PATH_PLATFORM)/lib/libdevinfo_debug.a
+
+HW_CRYPTO_LIB           := $(MTK_PATH_PLATFORM)/src/HwCryptoLib.a
+PICACHU_LIB             := $(MTK_PATH_PLATFORM)/src/PicachuLib.a
+ALL                     += build_info project_info
+ALL_PREGEN_FILE         += $(PRELOADER_OUT)/inc/preloader.h $(PRELOADER_OUT)/inc/proj_cfg.h
+COMMON_DIR_MK           := $(D_ROOT)/build/common-dir.mak
+COMMON_FILE_MK          := $(D_ROOT)/build/common.mak
+export COMMON_DIR_MK COMMON_FILE_MK
+
+SUBDIRS                 := $(MTK_PATH_PLATFORM)/src/ $(MTK_PATH_CUSTOM)/ $(MTK_PATH_COMMON)/ $(MTK_PATH_PAL)/
+ifeq ($(CREATE_SEC_LIB),TRUE)
+    ALL                 += $(SEC_LIB) $(CRYPTO_LIB) $(SEC_PLAT_LIB)
+ifeq ($(STANDALONE_SEC_DEVINFO),TRUE)
+    ALL                 +=  $(DEVINFO_LIB) $(DEVINFO_DEBUG_LIB)
+endif
+endif
+ifeq ($(CREATE_DEVINFO_LIB),TRUE)
+    ALL                 +=  $(DEVINFO_LIB) $(DEVINFO_DEBUG_LIB)
+endif
+ALL                     += preloader_bin
+ALL                     += dump_build_info
+
+include build/debug.in build/setting.in
+include $(MTK_PATH_PLATFORM)/makefile.mak
+export EMIGEN_OUT := $(PRELOADER_OUT)
+export DRVGEN_OUT := $(PRELOADER_OUT)
+export PTGEN_OUT := $(PRELOADER_OUT)
+include tools/emigen/emigen.mk
+include tools/drvgen/drvgen.mk
+-include tools/ptgen/$(MTK_PLATFORM)/ptgen.mk
+ALL_PREGEN_FILE += $(EMIGEN_FILE_LIST)
+ALL_PREGEN_FILE += $(DRVGEN_FILE_LIST)
+ALL_PREGEN_FILE += $(PTGEN_FILE_LIST)
+export ALL_DEPENDENCY_FILE := $(foreach m,$(MAKEFILE_LIST),$(if $(filter /% ~%,$(m)),$(m),$(D_ROOT)/$(m)))
+
+.PHONY: clean
+.PHONY: $(ALL)
+all: $(ALL)
+
+#########
+# recursive
+#
+# $(1): subdir
+# $(2): target flag
+# $(3): dependency
+define build-topdirs
+$(2): $(3) FORCE
+	@mkdir -p $$(dir $$@)
+	$$(MAKE) -C $(1) --no-print-directory
+endef
+
+.PHONY: FORCE
+FORCE:
+SUBDIRS_FLAGS :=
+$(foreach d,$(SUBDIRS),\
+  $(eval r := $(patsubst $(D_ROOT)/%,%,$(patsubst %/,%,$(if $(filter /%,$(d)),,$(CURDIR)/)$(d))))\
+  $(eval t := $(PRELOADER_OUT)/obj/$(subst /,_,$(r)).flag)\
+  $(eval $(call build-topdirs,$(d),$(t),$(ALL_PREGEN_FILE)))\
+  $(eval SUBDIRS_FLAGS += $(t))\
+)
+
+##############################################################
+# ELF Generation
+#
+CFG_PRELOADER_EXT_COMMON_BUILD := 0
+ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+ifeq ($(CREATE_SEC_LIB),FALSE)
+	CFG_PRELOADER_EXT_COMMON_BUILD := 1
+endif
+endif
+
+ifeq ($(CFG_PRELOADER_EXT_COMMON_BUILD), 1)
+	SECLIB2OBJ_TOOL := tools/efuse/seclib2obj_convertor.py
+	SECLIB_OBJ_LIST_FILE := $(PRELOADER_OUT)/seclib_obj_list.txt
+	DEVINFO_OBJ_DIR       := $(PRELOADER_OUT)/obj/libdevinfo_obj
+else
+	SECLIB2OBJ_TOOL :=
+	SECLIB_OBJ_LIST_FILE :=
+	DEVINFO_OBJ_DIR       :=
+endif
+
+ifeq ($(CFG_PRELOADER_DRAM_USE), 1)
+  PL_IMG_SECOND_PARTION_SECTION :=.pl_dram.text .pl_dram.data .pl_dram.rodata .pl_dram.start
+  OBJONCHIP_FLAG := $(addprefix -R , $(PL_IMG_SECOND_PARTION_SECTION))
+  OBJSECOND_FLAG := $(addprefix -j , $(PL_IMG_SECOND_PARTION_SECTION))
+  PL_DRAM_IMAGE_NAME := $(PL_IMAGE_NAME)_dram
+  PL_DRAM_HDRBIN_PATH := $(D_BIN)/hd_$(PL_DRAM_IMAGE_NAME).bin
+  LDSCRIPT := $(D_BIN)/$(MTK_PROJECT)_gen.ld
+else
+  OBJONCHIP_FLAG :=
+  OBJSECOND_FLAG :=
+  PL_DRAM_IMAGE_NAME :=
+  PL_DRAM_HDRBIN_PATH :=
+endif
+
+ifdef CFG_TEE_DRAM_SIZE
+PL_DRAM_RESERVE_SIZE := $(CFG_TEE_DRAM_SIZE)
+else
+PL_DRAM_RESERVE_SIZE := 0
+endif
+
+ifdef CFG_PRELOADER_DRAM_USE
+ifeq ($(CFG_PRELOADER_DRAM_USE), 1)
+$(LDSCRIPT): $(LDSCRIPT_DRAM)
+$(LDSCRIPT): $(ALL_DEPENDENCY_FILE)
+	@echo generating $@
+	$(MKDIR)
+	sed "s/%CFG_DRAM_SIZE%/$(CFG_DRAM_SIZE)/;s/%EXT_PRELOAER_DRAMSIZE%/$(EXT_PRELOAER_DRAMSIZE)/;s/%PL_DRAM_RESERVE_SIZE%/$(PL_DRAM_RESERVE_SIZE)/" < $< > $@
+endif
+endif
+
+ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+MKIMAGE                    := tools/mkimage/mkimage
+LOADER_EXT_NAME            := loader_ext
+LOADER_EXT_ETC_HEADER_CFG  := loader_ext_etc_hdr.cfg
+LOADER_EXT_DRAM_HEADER_CFG := loader_ext_dram_hdr.cfg
+endif #($(CFG_PRELOADER_EXTENSION), 1)
+
+ifneq ($(wildcard $(CONFIG_PATH)/PBP_PY_SUPPORT),)
+PBP_TOOL := tools/pbp/pbp.py
+BIN_TO_TXT_TOOL := tools/pbp/bin2txt.py
+CHIP_KEY := $(KEY_PATH)/pl_key.ini
+else
+ifeq ($(HOST_OS),darwin)
+PBP_TOOL := tools/pbp/PBP.darwin
+else
+PBP_TOOL := tools/pbp/PBP
+endif
+CHIP_CONFIG := $(CONFIG_PATH)/CHIP_CONFIG.ini
+CHIP_KEY := $(KEY_PATH)/CHIP_TEST_KEY.ini
+endif
+
+preloader_bin: $(D_BIN)/$(PL_IMAGE_NAME).bin $(PRELOADER_OUT)/report-codesize.csv $(PRELOADER_OUT)/codesize_profiling.csv
+ifeq ($(MTK_EFUSE_WRITER_SUPPORT),yes)
+preloader_bin: $(D_BIN)/efuse.img
+endif
+
+$(D_BIN)/keyhash.bin: $(PBP_TOOL) $(KEY_PATH)/root_prvk.pem
+ifneq (,$(findstring legacy,$(PADDING_TYPE)))
+	PYTHONDONTWRITEBYTECODE=True python $(PBP_TOOL) -j $(KEY_PATH)/root_prvk.pem -func keyhash_legacy -o $@
+else
+	PYTHONDONTWRITEBYTECODE=True python $(PBP_TOOL) -j $(KEY_PATH)/root_prvk.pem -func keyhash_pss -o $@
+endif
+
+$(D_BIN)/keyhash.txt: $(D_BIN)/keyhash.bin $(BIN_TO_TXT_TOOL) $(PBP_TOOL) $(CHIP_KEY)
+ifneq ($(wildcard $(CONFIG_PATH)/PBP_PY_SUPPORT),)
+	python $(BIN_TO_TXT_TOOL) $< $@
+else
+	$(PBP_TOOL) -func keyhash -i $(CHIP_KEY) -o $@
+endif
+
+$(D_BIN)/$(EFUSE_IMAGE_NAME): $(D_BIN)/keyhash.txt $(EFUSE_PY_FILE) $(EFUSE_INPUT_FILE) $(EFUSE_PY_DEF)
+	rm -rf $(PRELOADER_OUT)/efuse_bingen.log
+	python $(EFUSE_PY_FILE) -f $(EFUSE_INPUT_FILE) -d $(EFUSE_PY_DEF) -k $< -o $@ -l $(PRELOADER_OUT)/efuse_bingen.log
+	rm -rf $(D_BIN)/keyhash.txt
+
+$(D_BIN)/efuse.img: $(D_BIN)/$(EFUSE_IMAGE_NAME)
+ifeq ($(MTK_EFUSE_WRITER_SUPPORT),yes)
+	rm -rf $@
+	cp -f $< $@
+endif
+
+$(D_BIN)/$(PL_IMAGE_NAME).elf: $(SUBDIRS_FLAGS) $(LDSCRIPT)
+$(D_BIN)/$(PL_IMAGE_NAME).elf: $(wildcard $(PICACHU_LIB)) $(SEC_LIB) $(CRYPTO_LIB) $(SEC_PLAT_LIB) $(wildcard $(HW_CRYPTO_LIB)) $(wildcard $(DEVINFO_LIB)) $(wildcard $(DEVINFO_DEBUG_LIB))
+$(D_BIN)/$(PL_IMAGE_NAME).elf: $(ALL_DEPENDENCY_FILE)
+	@mkdir -p $(dir $@)
+
+ifeq ($(CFG_PRELOADER_EXT_COMMON_BUILD), 1)
+	rm -rf $(DEVINFO_OBJ_DIR)
+	mkdir -p $(DEVINFO_OBJ_DIR)
+	$(AR) -t $(DEVINFO_LIB) | grep "\.o" > $(SECLIB_OBJ_LIST_FILE)
+	python $(SECLIB2OBJ_TOOL) -b $(SECLIB_OBJ_LIST_FILE) -r $(D_ROOT) -p $(DEVINFO_OBJ_DIR) -s $(DEVINFO_LIB) -t $(PRELOADER_OUT)
+	rm -rf $(SECLIB_OBJ_LIST_FILE)
+	$(LD) --gc-sections -Bstatic -T$(LDSCRIPT) \
+	`cat $(PRELOADER_OUT)/obj/*.flag | tr ' ' '\n' | grep "\.o$$" | LC_COLLATE=C sort` \
+	$(wildcard $(PICACHU_LIB)) \
+	--start-group \
+	$(SEC_LIB) \
+	$(CRYPTO_LIB) \
+	$(SEC_PLAT_LIB) \
+	$(DEVINFO_OBJ_DIR)/*.o \
+	$(wildcard $(DEVINFO_DEBUG_LIB)) \
+	$(wildcard $(HW_CRYPTO_LIB)) \
+	--end-group \
+	-Map $(PRELOADER_OUT)/system.map -o $(D_BIN)/$(PL_IMAGE_NAME).elf
+	rm -rf $(DEVINFO_OBJ_DIR)
+else
+	$(LD) --gc-sections -Bstatic -T$(LDSCRIPT) \
+	`cat $(PRELOADER_OUT)/obj/*.flag | tr ' ' '\n' | grep "\.o$$" | LC_COLLATE=C sort` \
+	$(wildcard $(PICACHU_LIB)) \
+	--start-group \
+	$(SEC_LIB) \
+	$(CRYPTO_LIB) \
+	$(SEC_PLAT_LIB) \
+	$(wildcard $(DEVINFO_LIB)) \
+	$(wildcard $(DEVINFO_DEBUG_LIB)) \
+	$(wildcard $(HW_CRYPTO_LIB)) \
+	--end-group \
+	-Map $(PRELOADER_OUT)/system.map -o $(D_BIN)/$(PL_IMAGE_NAME).elf
+endif
+
+$(D_BIN)/preloader.elf: $(D_BIN)/$(PL_IMAGE_NAME).elf
+	$(OBJCOPY) -R .dram $(D_BIN)/$(PL_IMAGE_NAME).elf -O elf32-littlearm $(D_BIN)/preloader.elf
+
+ifeq ($(CFG_PRELOADER_DRAM_USE), 1)
+preloader_bin: $(D_BIN)/$(PL_DRAM_IMAGE_NAME).bin
+$(D_BIN)/$(PL_DRAM_IMAGE_NAME).bin: $(D_BIN)/$(PL_IMAGE_NAME).elf
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) $(OBJSECOND_FLAG) $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $(D_BIN)/$(PL_DRAM_IMAGE_NAME).bin
+endif
+
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(D_BIN)/$(PL_IMAGE_NAME).elf
+ifeq ($(PRELOADER_EXT_BIN_EXIST),TRUE)
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(PRELOADER_EXT_BIN)
+endif
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(PRELOADER_OUT)/MTK_Loader_Info.tag
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: zero_padding.sh
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(PRELOADER_OUT)/report-objsize.txt
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(PRELOADER_OUT)/report-codesize.txt
+$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin: $(PRELOADER_OUT)/function.map
+ifeq ($(CFG_PRELOADER_DRAM_USE), 1)
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) $(OBJONCHIP_FLAG) $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $@
+else
+ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+	# loader_ext_etc
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) -j .loader_ext_etc $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $(D_BIN)/$(PL_IMAGE_NAME)_ETC_NO_HDR.bin
+	$(hide) $(MKIMAGE) $(D_BIN)/$(PL_IMAGE_NAME)_ETC_NO_HDR.bin $(MTK_PATH_PLATFORM)/$(LOADER_EXT_ETC_HEADER_CFG) > $(D_BIN)/$(PL_IMAGE_NAME)_ETC.bin
+
+	# loader_ext_dram
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) -j .loader_ext_dram $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $(D_BIN)/$(PL_IMAGE_NAME)_DRAM_NO_HDR.bin
+	$(hide) $(MKIMAGE) $(D_BIN)/$(PL_IMAGE_NAME)_DRAM_NO_HDR.bin $(MTK_PATH_PLATFORM)/$(LOADER_EXT_DRAM_HEADER_CFG) > $(D_BIN)/$(PL_IMAGE_NAME)_DRAM.bin
+
+	# loader_ext.img = loader_ext_dram + loader_ext_etc
+	cp $(D_BIN)/$(PL_IMAGE_NAME)_DRAM.bin $(D_BIN)/$(LOADER_EXT_NAME).img
+	cat $(D_BIN)/$(PL_IMAGE_NAME)_ETC.bin >> $(D_BIN)/$(LOADER_EXT_NAME).img
+
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) -R .loader_ext_etc -R .loader_ext_dram $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $@
+else # original flow
+	$(hide) $(OBJCOPY) $(OBJCFLAGS) $(D_BIN)/$(PL_IMAGE_NAME).elf -O binary $@
+endif #($(CFG_PRELOADER_EXTENSION), 1)
+endif
+ifeq ("$(PRELOADER_EXT_BIN_EXIST)","TRUE")
+	cat $(PRELOADER_EXT_BIN) >> $@
+endif
+	./zero_padding.sh $@ 4
+	./alignment_check.sh $(PRELOADER_OUT)/MTK_Loader_Info.tag 4
+	cat $(PRELOADER_OUT)/MTK_Loader_Info.tag >> $@
+
+$(PRELOADER_OUT)/report-codesize.txt: $(D_BIN)/$(PL_IMAGE_NAME).elf
+	$(CROSS_COMPILE)readelf -s $(D_BIN)/$(PL_IMAGE_NAME).elf | awk -F':' '/Num/ {print $$2}' > $@
+	$(CROSS_COMPILE)readelf -s $(D_BIN)/$(PL_IMAGE_NAME).elf | awk -F':' '{if ($$1>0) print $$2}' | awk -F' ' '{if ($$2>0) print $$0}' | sort -k1 >> $@
+
+$(PRELOADER_OUT)/report-codesize.csv: $(PRELOADER_OUT)/report-codesize.txt
+	cat $(PRELOADER_OUT)/report-codesize.txt | sed 's/[ ]+/,/g' > $@
+
+$(PRELOADER_OUT)/report-objsize.txt: $(D_BIN)/$(PL_IMAGE_NAME).elf
+	$(CROSS_COMPILE)size `ls $(PRELOADER_OUT)/obj/*.o` > $@
+
+$(PRELOADER_OUT)/codesize_profiling.csv: $(D_BIN)/$(PL_IMAGE_NAME).elf
+$(PRELOADER_OUT)/codesize_profiling.csv: codesize_profiling.sh
+	./codesize_profiling.sh $(PRELOADER_OUT)/system.map $@
+
+##############################################################
+# Security Library Generation
+#
+
+ifeq ($(CREATE_SEC_LIB),TRUE)
+$(SEC_LIB): $(SUBDIRS_FLAGS)
+	rm -rf $@
+	@echo AR $(PRELOADER_OUT)/out/*.o
+	$(AR) -r $@ $(PRELOADER_OUT)/out/*.o
+	@echo =================================================================
+	@echo Security Library Common
+	@echo '$@' built at
+	@echo time : $(shell date)
+	@echo =================================================================
+
+$(CRYPTO_LIB): $(SUBDIRS_FLAGS)
+	rm -rf $@
+	@echo AR $(PRELOADER_OUT)/out_crypto/*.o
+	$(AR) -r $@ $(PRELOADER_OUT)/out_crypto/*.o
+	@echo =================================================================
+	@echo Crypto Library
+	@echo '$@' built at
+	@echo time : $(shell date)
+	@echo =================================================================
+
+$(SEC_PLAT_LIB): $(SUBDIRS_FLAGS)
+	rm -rf $@
+	@echo AR $(PRELOADER_OUT)/out_plat/*.o
+	$(AR) -r $@ $(PRELOADER_OUT)/out_plat/*.o
+	@echo =================================================================
+	@echo Security Library Platform
+	@echo '$@' built at
+	@echo time : $(shell date)
+	@echo =================================================================
+endif
+
+ifeq ($(CREATE_DEVINFO_LIB), TRUE)
+$(DEVINFO_LIB): $(SUBDIRS_FLAGS)
+	rm -rf $@
+	@echo AR $(PRELOADER_OUT)/out_devinfo/*.o
+	-$(AR) -r $@ $(PRELOADER_OUT)/out_devinfo/*.o
+	@echo =================================================================
+	@echo Devinfo Security Library
+	@echo '$@' built at
+	@echo time : $(shell date)
+	@echo =================================================================
+
+$(DEVINFO_DEBUG_LIB): $(SUBDIRS_FLAGS)
+	rm -rf $@
+	@echo AR $(PRELOADER_OUT)/out_devinfo_debug/*.o
+	-$(AR) -r $@ $(PRELOADER_OUT)/out_devinfo_debug/*.o
+	@echo =================================================================
+	@echo Devinfo Security Library Debug Version
+	@echo '$@' built at
+	@echo time : $(shell date)
+	@echo =================================================================
+endif
+
+##############################################################
+# File for Debugging
+#
+
+$(PRELOADER_OUT)/function.map: $(D_BIN)/$(PL_IMAGE_NAME).elf
+	$(NM) $< | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > $@
+
+##############################################################
+# Dump Configurations
+#
+
+show_title:
+	@echo =================================================================
+	@echo Building Configuration:
+	@echo Project              = $(MTK_PROJECT)
+	@echo Platform             = $(MTK_PLATFORM)
+	@echo Buildspec            = buildspec.mak
+	@echo Create SecLib        = $(CREATE_SEC_LIB)
+	@echo Image Auth key exist = $(IMAGE_AUTH_KEY_EXIST)
+	@echo Preloader EXT exist  = $(PRELOADER_EXT_BIN_EXIST)
+	@echo SECRO AC support     = $(MTK_SEC_SECRO_AC_SUPPORT)
+	@echo =================================================================
+
+show_internal_feature:
+	@echo =================================================================
+	@echo Internal Feature:
+	@echo HW_INIT_ONLY         = $(HW_INIT_ONLY)
+	@echo CFG_MDJTAG_SWITCH= $(CFG_MDJTAG_SWITCH)
+	@echo CFG_MDMETA_DETECT= $(CFG_MDMETA_DETECT)
+	@echo CFG_HW_WATCHDOG= $(CFG_HW_WATCHDOG)
+	@echo CFG_APWDT= $(CFG_APWDT)
+	@echo CFG_APWDT_DISABLE= $(CFG_APWDT_DISABLE)
+	@echo CFG_MDWDT_DISABLE= $(CFG_MDWDT_DISABLE)
+	@echo CFG_SYS_STACK_SZ= $(CFG_SYS_STACK_SZ)
+	@echo CFG_MMC_ADDR_TRANS= $(CFG_MMC_ADDR_TRANS)
+	@echo CFG_BOOT_ARGUMENT= $(CFG_BOOT_ARGUMENT)
+	@echo CFG_RAM_CONSOLE= $(CFG_RAM_CONSOLE)
+	@echo =================================================================
+	@echo MTK_PATH_PLATFORM= $(MTK_PATH_PLATFORM)
+	@echo MTK_PATH_CUSTOM= $(MTK_PATH_CUSTOM)
+	@echo MTK_ROOT_CUSTOM= $(MTK_ROOT_CUSTOM)
+	@echo CUSTOM_PATH= $(CUSTOM_PATH)
+	@echo =================================================================
+
+show_feature:
+	@if [ -e "$(MTK_PATH_CUSTOM)/cust_bldr.mak" ]; then \
+	echo  =========================================== ; \
+	echo Platform Feature: ; \
+	echo 'CFG_FPGA_PLATFORM'= $(CFG_FPGA_PLATFORM) ; \
+	echo 'CFG_EVB_PLATFORM'= $(CFG_EVB_PLATFORM) ; \
+	echo 'CFG_BATTERY_DETECT'= $(CFG_BATTERY_DETECT) ; \
+	echo 'CFG_PMT_SUPPORT'= $(CFG_PMT_SUPPORT) ; \
+	echo  =========================================== ; \
+	echo Communication Feature: ; \
+	echo 'CFG_UART_TOOL_HANDSHAKE'= $(CFG_UART_TOOL_HANDSHAKE) ; \
+	echo 'CFG_USB_TOOL_HANDSHAKE'= $(CFG_USB_TOOL_HANDSHAKE) ; \
+	echo 'CFG_USB_DOWNLOAD'= $(CFG_USB_DOWNLOAD) ; \
+	echo 'CFG_LOG_BAUDRATE'= $(CFG_LOG_BAUDRATE) ; \
+	echo 'CFG_META_BAUDRATE'= $(CFG_META_BAUDRATE) ; \
+	echo 'CFG_UART_LOG'= $(CFG_UART_LOG) ; \
+	echo 'CFG_UART_META'= $(CFG_UART_META) ; \
+	echo 'CFG_EMERGENCY_DL_SUPPORT'= $(CFG_EMERGENCY_DL_SUPPORT) ; \
+	echo 'CFG_EMERGENCY_DL_TIMEOUT_MS'= $(CFG_EMERGENCY_DL_TIMEOUT_MS) ; \
+	echo 'MTK_UART_USB_SWITCH'= $(MTK_UART_USB_SWITCH) ; \
+	echo  =========================================== ; \
+	echo Image Loading: ; \
+	echo 'CFG_LOAD_UBOOT'= $(CFG_LOAD_UBOOT) ; \
+	echo 'CFG_LOAD_AP_ROM'= $(CFG_LOAD_AP_ROM) ; \
+	echo 'CFG_LOAD_MD_ROM'= $(CFG_LOAD_MD_ROM) ; \
+	echo 'CFG_LOAD_MD_RAMDISK'= $(CFG_LOAD_MD_RAMDISK) ; \
+	echo 'CFG_LOAD_CONN_SYS'= $(CFG_LOAD_CONN_SYS) ; \
+	echo 'CFG_UBOOT_MEMADDR'= $(CFG_UBOOT_MEMADDR) ; \
+	echo 'CFG_AP_ROM_MEMADDR'= $(CFG_AP_ROM_MEMADDR) ; \
+	echo 'CFG_MD1_ROM_MEMADDR'= $(CFG_MD1_ROM_MEMADDR) ; \
+	echo 'CFG_MD1_RAMDISK_MEMADDR'= $(CFG_MD1_RAMDISK_MEMADDR) ; \
+	echo 'CFG_MD2_ROM_MEMADDR'= $(CFG_MD2_ROM_MEMADDR) ; \
+	echo 'CFG_MD2_RAMDISK_MEMADDR'= $(CFG_MD2_RAMDISK_MEMADDR) ; \
+	echo 'CFG_CONN_SYS_MEMADDR'= $(CFG_CONN_SYS_MEMADDR) ; \
+	echo 'ONEKEY_REBOOT_NORMAL_MODE_PL'= $(ONEKEY_REBOOT_NORMAL_MODE_PL) ; \
+	echo 'KPD_USE_EXTEND_TYPE'= $(KPD_USE_EXTEND_TYPE) ; \
+	echo 'KPD_PMIC_LPRST_TD'= $(KPD_PMIC_LPRST_TD) ; \
+	echo 'MTK_PMIC_RST_KEY'= $(MTK_PMIC_RST_KEY) ; \
+	echo 'CFG_ATF_SUPPORT'= $(CFG_ATF_SUPPORT) ; \
+	echo 'CFG_ATF_LOG_SUPPORT'= $(CFG_ATF_LOG_SUPPORT) ; \
+	echo 'CFG_TEE_SUPPORT'= $(CFG_TEE_SUPPORT) ; \
+	echo 'CFG_TEE_VIRTUAL_RPMB_SUPPORT'= $(CFG_TEE_VIRTUAL_RPMB_SUPPORT) ; \
+	echo 'CFG_RPMB_SET_KEY'= $(CFG_RPMB_SET_KEY) ; \
+	echo 'CFG_TRUSTONIC_TEE_SUPPORT'= $(CFG_TRUSTONIC_TEE_SUPPORT) ; \
+	echo 'CFG_MICROTRUST_TEE_SUPPORT'= $(CFG_MICROTRUST_TEE_SUPPORT) ; \
+	echo 'CFG_MICROTRUST_TEE_LITE_SUPPORT'= $(CFG_MICROTRUST_TEE_LITE_SUPPORT) ; \
+	echo 'CFG_TRUSTKERNEL_TEE_SUPPORT'= $(CFG_TRUSTKERNEL_TEE_SUPPORT) ; \
+	echo 'CFG_TEE_SECURE_MEM_PROTECTED'= $(CFG_TEE_SECURE_MEM_PROTECTED) ; \
+	echo 'CFG_TEE_SECURE_MEM_TAG_FORMAT'= $(CFG_TEE_SECURE_MEM_TAG_FORMAT) ; \
+	echo 'CFG_TEE_SECURE_MEM_SHARED'= $(CFG_TEE_SECURE_MEM_SHARED) ; \
+	echo 'CFG_TEE_TRUSTED_APP_HEAP_SIZE'= $(CFG_TEE_TRUSTED_APP_HEAP_SIZE) ; \
+	echo 'CFG_RPMB_KEY_PROGRAMED_IN_KERNEL'= $(CFG_RPMB_KEY_PROGRAMED_IN_KERNEL) ; \
+	echo 'MTK_EFUSE_WRITER_SUPPORT'= $(MTK_EFUSE_WRITER_SUPPORT) ; \
+	echo 'CFG_GOOGLE_TRUSTY_SUPPORT'= $(CFG_GOOGLE_TRUSTY_SUPPORT) ; \
+	echo 'CFG_GZ_SUPPORT'= $(CFG_GZ_SUPPORT) ; \
+	echo 'CFG_GZ_NEED_DESCRAMBLE'= $(CFG_GZ_NEED_DESCRAMBLE) ; \
+	echo 'CFG_GZ_REMAP'= $(CFG_GZ_REMAP) ; \
+	echo 'CFG_NEBULA_VM_SUPPORT'= $(CFG_NEBULA_VM_SUPPORT) ; \
+	echo 'CFG_NEBULA_LOAD_IN_PART2'= $(CFG_NEBULA_LOAD_IN_PART2) ; \
+	echo 'CFG_GZ_PWRAP_ENABLE'= $(CFG_GZ_PWRAP_ENABLE) ; \
+	fi
+##############################################################
+# Adding Build Time
+#
+
+build_info: $(PRELOADER_OUT)/inc/preloader.h
+$(PRELOADER_OUT)/inc/preloader.h: $(ALL_DEPENDENCY_FILE)
+	@mkdir -p $(dir $@)
+	@echo // Auto generated. Build Time Information > $@
+	@echo '#'define BUILD_TIME '"'$(shell date +%Y%m%d-%H%M%S)'"' >> $@
+
+##############################################################
+# Adding Project Configuration
+#
+
+project_info: $(PRELOADER_OUT)/inc/proj_cfg.h
+$(PRELOADER_OUT)/inc/proj_cfg.h: $(MTK_PATH_PLATFORM)/default.mak $(MTK_PATH_CUSTOM)/cust_bldr.mak $(PROJECT_CONFIGS)
+$(PRELOADER_OUT)/inc/proj_cfg.h: $(ALL_DEPENDENCY_FILE)
+	@mkdir -p $(dir $@)
+	@echo // Auto generated. Import ProjectConfig.mk > $@
+	@echo '#'define CUSTOM_SUSBDL_CFG $(MTK_SEC_USBDL) >> $@
+	@echo '#'define CUSTOM_SBOOT_CFG $(MTK_SEC_BOOT) >> $@
+	@echo '#'define MTK_SEC_MODEM_AUTH $(MTK_SEC_MODEM_AUTH) >> $@
+ifdef MTK_SEC_SECRO_AC_SUPPORT
+	@echo '#'define MTK_SEC_SECRO_AC_SUPPORT $(MTK_SEC_SECRO_AC_SUPPORT) >> $@
+endif
+
+##############################################################
+# Generate Key Info File
+#
+
+img_auth_info: $(IMAGE_AUTH_CFG_FILE)
+$(IMAGE_AUTH_CFG_FILE): $(SIGN_TOOL) $(IMAGE_AUTH_KEY) $(IMAGE_AUTH_CFG)
+$(IMAGE_AUTH_CFG_FILE): $(ALL_DEPENDENCY_FILE)
+	@mkdir -p $(dir $@)
+	@touch $@
+	@chmod 777 $@
+	$(SIGN_TOOL) $(IMAGE_AUTH_KEY) $(IMAGE_AUTH_CFG) $@ IMG
+
+##############################################################
+# Clean
+#
+
+clean:
+	@rm -rf $(PRELOADER_OUT)/obj
+	@rm -rf $(PRELOADER_OUT)/inc
+	@rm -rf $(PRELOADER_OUT)/bin
+	@rm -rf $(PRELOADER_OUT)/out_crypto
+	@rm -rf $(PRELOADER_OUT)/out_plat
+	@rm -rf $(PRELOADER_OUT)/out_devinfo
+	@rm -rf $(PRELOADER_OUT)/out_devinfo_debug
+	@rm -rf $(PRELOADER_OUT)/out_hw_crypto_lib
+
+#
+# Encode Key
+#
+ifeq ($(HOST_OS),darwin)
+KEY_ENCODE_TOOL := tools/ke/KeyEncode.darwin
+else
+KEY_ENCODE_TOOL := tools/ke/KeyEncode
+endif
+
+#key_encode
+$(D_BIN)/KEY_ENCODED_PL: $(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin | $(KEY_ENCODE_TOOL)
+	$(KEY_ENCODE_TOOL) $< $@
+	@echo "$(KEY_ENCODE_TOOL) pass !!!!"
+
+ifdef SEC_ROM_INFO_V2
+$(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin: $(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin
+	@echo "[ Load Chip Config. ]"
+	@echo "============================================"
+	@echo " : MTK_SEC_CHIP_SUPPORT - $(MTK_SEC_CHIP_SUPPORT)"
+	cp -f $< $@
+else
+$(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin: $(D_BIN)/KEY_ENCODED_PL
+	@echo "[ Load Chip Config. ]"
+	@echo "============================================"
+	@echo " : MTK_SEC_CHIP_SUPPORT - $(MTK_SEC_CHIP_SUPPORT)"
+	cp -f $< $@
+endif
+
+ifneq ($(wildcard $(CONFIG_PATH)/PBP_PY_SUPPORT),)
+include bl_sign_v21.mak
+else
+ifneq ($(wildcard $(GFH_PATH)/GFH_CONFIG.ini),)
+include bl_sign_v11.mak
+else
+include bl_sign_v10.mak
+endif
+endif
+
+dump_build_info: $(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin $(D_BIN)/$(PL_IMAGE_NAME).elf
+	@echo "============================================"
+	@echo "${MTK_PROJECT} preloader load"
+	@echo "$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin built at"
+	@echo "time : $(shell date)"
+	@echo "img  size : `wc -c < $(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin` byte"
+	@echo "bss  size : 0x`$(CROSS_COMPILE)readelf -SW $(D_BIN)/$(PL_IMAGE_NAME).elf | grep bss | awk '{if (NF==11) print $$6; else print $$7;}'` byte"
+	@echo "dram size : 0x`$(CROSS_COMPILE)readelf -SW $(D_BIN)/$(PL_IMAGE_NAME).elf | grep dram | awk '{if (NF==11) print $$6; else print $$7;}'` byte"
+	@echo ============================================
+

+ 2 - 0
README

@@ -0,0 +1,2 @@
+The "mediatek/preloader/" directory is intended for Mediatek solution preloader.
+

+ 12 - 0
alignment_check.sh

@@ -0,0 +1,12 @@
+#!/bin/bash
+
+FILE_PATH=$1
+ALIGNMENT=$2
+
+FILE_SIZE=$(($(wc -c < "${FILE_PATH}")))
+REMAINDER=$((${FILE_SIZE} % ${ALIGNMENT}))
+if [ ${REMAINDER} -ne 0 ]; then
+	echo
+	echo ${FILE_PATH} is not ${ALIGNMENT} byte alignment
+	exit 1;
+fi

+ 48 - 0
bl_sign_v10.mak

@@ -0,0 +1,48 @@
+#s_chip_legacy
+ifeq ($(MTK_EMMC_SUPPORT),yes)
+GFH_INFO := $(GFH_PATH)/GFH_INFO_EMMC.txt
+else
+GFH_INFO := $(GFH_PATH)/GFH_INFO.txt
+endif
+GFH_SEC_KEY := $(GFH_PATH)/GFH_SEC_KEY.txt
+GFH_ANTI_CLONE := $(GFH_PATH)/GFH_ANTI_CLONE.txt
+GFH_HASH_SIGNATURE := $(GFH_PATH)/GFH_HASH_AND_SIG.txt
+GFH_PADDING := $(GFH_PATH)/GFH_PADDING.txt
+include $(CONFIG_PATH)/SECURE_JTAG_CONFIG.ini
+ifeq ($(strip $(SECURE_JTAG_ENABLE)),TRUE)
+SECURE_JTAG_GFH := $(GFH_PATH)/GFH_SEC_CFG_JTAG_ON.txt
+else ifeq ($(strip $(SECURE_JTAG_ENABLE)),FALSE)
+SECURE_JTAG_GFH := $(GFH_PATH)/GFH_SEC_CFG_JTAG_OFF.txt
+else
+$(error BUILD FAIL. Unexpected SECURE_JTAG_ENABLE=$(SECURE_JTAG_ENABLE) in $(CONFIG_PATH)/SECURE_JTAG_CONFIG.ini)
+endif
+
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin $(GFH_INFO) $(GFH_SEC_KEY) $(GFH_ANTI_CLONE) $(SECURE_JTAG_GFH) $(GFH_PADDING) $(GFH_HASH_SIGNATURE) $(PBP_TOOL) $(CHIP_CONFIG) $(CHIP_KEY) $(CONFIG_PATH)/SECURE_JTAG_CONFIG.ini
+	@echo "[ Enable Secure Chip Support ]"
+	@echo "============================================"
+	@echo "INI_GFH_GEN=NO"
+	@echo " : SECURE_JTAG_ENABLE - $(SECURE_JTAG_ENABLE)"
+	@echo "[ Attach $(MTK_PLATFORM) GFH ]"
+	@echo "============================================"
+	@echo " : GFH_INFO             - $(GFH_INFO)"
+	@echo " : GFH_SEC_KEY          - $(GFH_SEC_KEY)"
+	@echo " : GFH_ANTI_CLONE       - $(GFH_ANTI_CLONE)"
+	@echo " : GFH_JTAG_CFG         - $(SECURE_JTAG_GFH)"
+	@echo " : GFH_PADDING          - $(GFH_PADDING)"
+	@echo " : GFH_HASH_SIGNATURE   - $(GFH_HASH_SIGNATURE)"
+	cp -f $(GFH_INFO) $@
+	@chmod 777 $@
+	cat $(GFH_SEC_KEY) >> $@
+	cat $(GFH_ANTI_CLONE) >> $@
+	cat $(SECURE_JTAG_GFH) >> $@
+	cat $(GFH_PADDING) >> $@
+	cat $< >> $@
+	cat $(GFH_HASH_SIGNATURE) >> $@
+	@echo "[ Load Configuration ]"
+	@echo "============================================"
+	@echo " : CONFIG               - $(CHIP_CONFIG)"
+	@echo " : RSA KEY              - $(CHIP_KEY)"
+	@echo " : AC_K                 - $(CHIP_KEY)"
+	$(PBP_TOOL) -m $(CHIP_CONFIG) -i $(CHIP_KEY) $@
+	@echo "$(PBP_TOOL) pass !!!!"
+	PL_IMAGE=$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin PL_FUN_MAP=$(PRELOADER_OUT)/function.map PRELOADER_OUT=$(PRELOADER_OUT) $(SHELL) $(MTK_PATH_PLATFORM)/check_size.sh

+ 10 - 0
bl_sign_v11.mak

@@ -0,0 +1,10 @@
+#s_chip_ini
+
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin $(PBP_TOOL) $(CHIP_CONFIG) $(CHIP_KEY) $(GFH_PATH)/GFH_CONFIG.ini
+	@echo "[ Enable Secure Chip Support ]"
+	@echo "============================================"
+	@echo "INI_GFH_GEN=YES"
+	cp -f $< $@
+	$(PBP_TOOL) -m $(CHIP_CONFIG) -i $(CHIP_KEY) -g $(GFH_PATH)/GFH_CONFIG.ini $@
+	@echo "$(PBP_TOOL) pass !!!!"
+	PL_IMAGE=$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin PL_FUN_MAP=$(PRELOADER_OUT)/function.map PRELOADER_OUT=$(PRELOADER_OUT) $(SHELL) $(MTK_PATH_PLATFORM)/check_size.sh

+ 29 - 0
bl_sign_v21.mak

@@ -0,0 +1,29 @@
+ifneq (,$(findstring cert_chain,$(PADDING_TYPE)))
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(GFH_PATH)/pl_gfh_config_cert_chain.ini
+endif
+ifneq (,$(findstring pss,$(PADDING_TYPE)))
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(GFH_PATH)/pl_gfh_config_pss.ini
+endif
+ifneq (,$(findstring legacy,$(PADDING_TYPE)))
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(GFH_PATH)/GFH_CONFIG.ini
+endif
+$(D_BIN)/$(PL_IMAGE_NAME).bin: $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin $(PBP_TOOL) $(CHIP_KEY)
+	@echo "[ Enable Secure Chip Support ]"
+	@echo "============================================"
+	@echo "PBP_PY_SUPPORT=YES"
+	cp -f $< $@
+	@echo "PBP_PATH = " $(PBP_TOOL)
+ifneq (,$(findstring cert_chain,$(PADDING_TYPE)))
+	@echo "padding = cert_chain"
+	PYTHONDONTWRITEBYTECODE=True python $(PBP_TOOL) -i $(CHIP_KEY) -k ${PRELOADER_OUT}/key_cert.bin -g $(GFH_PATH)/pl_gfh_config_cert_chain.ini -c ${KEY_PATH}/pl_content.ini -func sign -o $@  $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin
+endif
+ifneq (,$(findstring pss,$(PADDING_TYPE)))
+	@echo "padding = pss"
+	PYTHONDONTWRITEBYTECODE=True python $(PBP_TOOL) -i $(CHIP_KEY) -g $(GFH_PATH)/pl_gfh_config_pss.ini -func sign -o $@  $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin
+endif
+ifneq (,$(findstring legacy,$(PADDING_TYPE)))
+	@echo "padding = legacy"
+	PYTHONDONTWRITEBYTECODE=True python $(PBP_TOOL) -i $(CHIP_KEY) -g $(GFH_PATH)/GFH_CONFIG.ini -func sign -o $@  $(D_BIN)/$(PL_IMAGE_NAME)_NO_GFH.bin
+endif
+	@echo "$(PBP_TOOL) pass !!!!"
+	@PL_IMAGE=$(D_BIN)/$(PL_IMAGE_NAME)_LINKED.bin PL_FUN_MAP=$(PRELOADER_OUT)/function.map PRELOADER_OUT=$(PRELOADER_OUT) $(SHELL) $(MTK_PATH_PLATFORM)/check_size.sh

+ 59 - 0
build.sh

@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# WARNING: build.sh is used only for fast standalone build, nolonger called from Android.mk
+# WARNING: post_process is moved to Makefile for incremental build
+# WARNING: parameters in build.sh and Android.mk must be identical
+
+# tells sh to exit with a non-zero status as soon as any executed command fails
+# (i.e. exits with a non-zero exit status).
+set -e
+
+if [ -z ${TARGET_PRODUCT} ]; then
+  echo "[ERROR] TARGET_PRODUCT is not defined"
+  exit 1
+fi
+if [ -z ${MTK_TARGET_PROJECT} ]; then 
+  MTK_TARGET_PROJECT=${TARGET_PRODUCT/full_}
+fi
+if [ -z ${MTK_PROJECT} ]; then
+  MTK_PROJECT=${MTK_TARGET_PROJECT}
+fi
+if [ -z ${PRELOADER_ROOT_DIR} ]; then
+  if [ -z ${ANDROID_BUILD_TOP} ]; then
+    PRELOADER_ROOT_DIR=`pwd`/../../..
+  else
+    PRELOADER_ROOT_DIR=${ANDROID_BUILD_TOP}
+  fi
+fi
+if [ -z ${PRELOADER_OUT} ]; then
+  if [ -z ${ANDROID_PRODUCT_OUT} ]; then
+    PRELOADER_OUT=${PRELOADER_ROOT_DIR}/out/target/product/${MTK_TARGET_PROJECT}/obj/PRELOADER_OBJ
+  else
+    PRELOADER_OUT=${ANDROID_PRODUCT_OUT}/obj/PRELOADER_OBJ
+  fi
+fi
+TOOL_PATH=${PRELOADER_ROOT_DIR}/device/mediatek/build/build/tools 
+
+if [ "${HOST_OS}" = "" ]; then
+HOST_OS=`uname | awk '{print tolower($0)}'`
+fi
+
+PRELOADER_CROSS_COMPILE=${PRELOADER_ROOT_DIR}/prebuilts/gcc/${HOST_OS}-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-
+
+echo Clean PRELOADER_OUT
+rm -rf ${PRELOADER_OUT}
+echo make -f Makefile PRELOADER_OUT=${PRELOADER_OUT} MTK_PROJECT=${MTK_PROJECT} TOOL_PATH=${TOOL_PATH} ROOTDIR=${PRELOADER_ROOT_DIR}
+make -f Makefile CROSS_COMPILE=${PRELOADER_CROSS_COMPILE} PRELOADER_OUT=${PRELOADER_OUT} MTK_PROJECT=${MTK_PROJECT} TOOL_PATH=${TOOL_PATH} ROOTDIR=${PRELOADER_ROOT_DIR}
+
+if [ -f "../../../../internal/sboot_disable" ]; then
+  if [ -z ${ANDROID_PRODUCT_OUT} ]; then
+    PRELOADER_OUT=${PRELOADER_ROOT_DIR}/out/target/product/${MTK_TARGET_PROJECT}/obj/PRELOADER_SBOOT_DIS_OBJ
+  else
+    PRELOADER_OUT=${ANDROID_PRODUCT_OUT}/obj/PRELOADER_SBOOT_DIS_OBJ
+  fi
+
+echo Clean PRELOADER_OUT
+rm -rf ${PRELOADER_OUT}
+echo make -f Makefile PRELOADER_OUT=${PRELOADER_OUT} MTK_PROJECT=${MTK_PROJECT} TOOL_PATH=${TOOL_PATH} ROOTDIR=${PRELOADER_ROOT_DIR}
+make -f Makefile CROSS_COMPILE=${PRELOADER_CROSS_COMPILE} PL_MODE=SBOOT_DIS PRELOADER_OUT=${PRELOADER_OUT} MTK_PROJECT=${MTK_PROJECT} TOOL_PATH=${TOOL_PATH} ROOTDIR=${PRELOADER_ROOT_DIR}
+fi

+ 73 - 0
build/common-dir.mak

@@ -0,0 +1,73 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+#
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+
+include $(MTK_PATH_PLATFORM)/makefile.mak
+
+CURDIR_FLAG := $(PRELOADER_OUT)/obj/$(subst /,_,$(patsubst $(D_ROOT)/%,%,$(patsubst %/,%,$(CURDIR)))).flag
+
+all: $(CURDIR_FLAG)
+.PHONY: all
+
+
+#########
+# recursive
+#
+# $(1): subdir
+# $(2): target flag
+# $(3): dependency
+define build-subdirs
+$(2): $(3) FORCE
+	$$(MAKE) -e -r -C $(1) --no-print-directory
+endef
+
+.PHONY: FORCE
+FORCE:
+SUBDIRS_FLAGS :=
+$(foreach d,$(SUBDIRS),\
+  $(eval r := $(patsubst $(D_ROOT)/%,%,$(patsubst %/,%,$(if $(filter /%,$(d)),,$(CURDIR)/)$(d))))\
+  $(eval t := $(PRELOADER_OUT)/obj/$(subst /,_,$(r)).flag)\
+  $(eval $(call build-subdirs,$(d),$(t),$(ALL_PREGEN_FILE)))\
+  $(eval SUBDIRS_FLAGS += $(t))\
+)
+
+$(CURDIR_FLAG): $(SUBDIRS_FLAGS)
+
+ifndef CURDIR_FLAG_RULE
+CURDIR_FLAG_RULE := true
+$(CURDIR_FLAG):
+	@mkdir -p $(dir $@)
+	echo "$^" > $@
+
+endif

+ 145 - 0
build/common.mak

@@ -0,0 +1,145 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+##############################################################
+# Include MakeFile
+##############################################################
+
+include $(MTK_PATH_PLATFORM)/makefile.mak
+
+##############################################################
+# Initialize Variables
+##############################################################
+
+C_FILES         := $(filter %.c, $(MOD_SRC))
+ASM_FILES       := $(filter %.s, $(MOD_SRC))
+ASM_FILES_S     := $(filter %.S, $(MOD_SRC))
+CRYPTO_FILES := $(filter %.c, $(CRYPTO_SRC))
+CRYPTO_FILES_ASM_FILES_S := $(filter %.S, $(CRYPTO_SRC))
+PLAT_MOD_FILES  := $(filter %.c, $(MOD_PLAT_SRC))
+DEVINFO_MOD_FILES  := $(filter %.c, $(MOD_DEVINFO_SRC))
+DEVINFO_DEBUG_MOD_FILES  := $(filter %.c, $(MOD_DEVINFO_DEBUG_SRC))
+C_FILES_PLUS    := $(filter %.c, $(MOD_SRC_PLUS))
+HW_CYRPTO_LIB_FILES := $(filter %.c, $(HW_CYRPTO_LIB_SRC))
+
+OBJS_FROM_C           := $(addprefix $(MOD_OBJ)/, $(C_FILES:%.c=%.o))
+OBJS_FROM_ASM         := $(addprefix $(MOD_OBJ)/, $(ASM_FILES:%.s=%.o))
+OBJS_FROM_ASM_S       := $(addprefix $(MOD_OBJ)/, $(ASM_FILES_S:%.S=%.o))
+CRYPTO_OBJS_FROM_C := $(addprefix $(CRYPTO_OBJ)/, $(CRYPTO_FILES:%.c=%.o))
+CRYPTO_OBJS_FROM_ASM  := $(addprefix $(CRYPTO_OBJ)/, $(CRYPTO_FILES_ASM_FILES_S:%.S=%.o))
+PLAT_MOD_OBJS_FROM_C  := $(addprefix $(MOD_PLAT_OBJ)/, $(PLAT_MOD_FILES:%.c=%.o))
+DEVINFO_MOD_OBJS_FROM_C  := $(addprefix $(MOD_DEVINFO_OBJ)/, $(DEVINFO_MOD_FILES:%.c=%.o))
+DEVINFO_DEBUG_MOD_OBJS_FROM_C  := $(addprefix $(MOD_DEVINFO_DEBUG_OBJ)/, $(DEVINFO_DEBUG_MOD_FILES:%.c=%.o))
+OBJS_FROM_C_PLUS      := $(addprefix $(MOD_OBJ)/, $(C_FILES_PLUS:%.c=%.o))
+HW_CYRPTO_LIB_OBJS_FROM_C := $(addprefix $(HW_CYRPTO_LIB_OBJ)/, $(HW_CYRPTO_LIB_FILES:%.c=%.o))
+
+DEPS_FROM_OBJS        := $(wildcard $(patsubst %.o,%.d,$(OBJS_FROM_C) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C)))
+DEPS_FROM_MAKEFILE    := $(filter-out %.d,$(ALL_DEPENDENCY_FILE) $(MAKEFILE_LIST))
+
+##############################################################
+# Specify Builld Command
+##############################################################
+
+define COMPILE_C
+	$(CC) $(C_OPTION) -MP -MD -MF $(patsubst %.o,%.d,$@) -o $@ $<
+endef
+
+define COMPILE_ASM
+	$(AS) $(AFLAGS) -o $@ $<
+endef
+
+define COMPILE_ASM_ARMV8
+       $(CC) $(C_OPTION) -MP -MD -MF $(patsubst %.o,%.d,$@) -DASSEMBLY -o $@ $<
+endef
+##############################################################
+# Main Flow
+##############################################################
+
+CURDIR_FLAG := $(PRELOADER_OUT)/obj/$(subst /,_,$(patsubst $(D_ROOT)/%,%,$(patsubst %/,%,$(CURDIR)))).flag
+all: $(CURDIR_FLAG)
+
+$(OBJS_FROM_C) : $(MOD_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(OBJS_FROM_ASM_S) : $(MOD_OBJ)/%.o : $(CURDIR)/%.S
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(OBJS_FROM_ASM) : $(MOD_OBJ)/%.o : $(CURDIR)/%.s
+	@mkdir -p $(dir $@)
+	$(COMPILE_ASM)
+
+$(CRYPTO_OBJS_FROM_C) : $(CRYPTO_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(PLAT_MOD_OBJS_FROM_C) : $(MOD_PLAT_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(CRYPTO_OBJS_FROM_ASM) : $(CRYPTO_OBJ)/%.o : $(CURDIR)/%.S
+	@mkdir -p $(dir $@)
+	$(COMPILE_ASM_ARMV8)
+
+$(DEVINFO_MOD_OBJS_FROM_C) : $(MOD_DEVINFO_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(DEVINFO_DEBUG_MOD_OBJS_FROM_C) : $(MOD_DEVINFO_DEBUG_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+$(HW_CYRPTO_LIB_OBJS_FROM_C) : $(HW_CYRPTO_LIB_OBJ)/%.o : $(CURDIR)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+# add for custom_emi.c/cust_part.c
+$(OBJS_FROM_C_PLUS) : $(MOD_OBJ)/%.o : $(PRELOADER_OUT)/%.c
+	@mkdir -p $(dir $@)
+	$(COMPILE_C)
+
+-include $(DEPS_FROM_OBJS)
+
+$(OBJS_FROM_C) $(OBJS_FROM_ASM) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C): $(DEPS_FROM_MAKEFILE)
+$(CURDIR_FLAG): $(OBJS_FROM_C) $(OBJS_FROM_ASM) $(OBJS_FROM_ASM_S) $(CRYPTO_OBJS_FROM_C) $(CRYPTO_OBJS_FROM_ASM) $(PLAT_MOD_OBJS_FROM_C) $(DEVINFO_MOD_OBJS_FROM_C) $(DEVINFO_DEBUG_MOD_OBJS_FROM_C) $(OBJS_FROM_C_PLUS) $(HW_CYRPTO_LIB_OBJS_FROM_C)
+
+ifndef CURDIR_FLAG_RULE
+# avoid warning when common-dir.mak and common.mak are both included
+CURDIR_FLAG_RULE := true
+$(CURDIR_FLAG):
+	@mkdir -p $(dir $@)
+	echo "$^" > $@
+
+endif

+ 69 - 0
build/common_no_optimize.mak

@@ -0,0 +1,69 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+include $(MTK_PATH_PLATFORM)/makefile.mak
+
+C_FILES   := $(filter %.c, $(MOD_SRC))
+ASM_FILES := $(filter %.s, $(MOD_SRC)) 
+
+OBJS_FROM_C := $(C_FILES:%.c=%.o)
+OBJS_FROM_ASM := $(ASM_FILES:%.s=%.o)
+
+All_OBJS += OBJS_FROM_C
+All_OBJS += OBJS_FROM_ASM
+
+OBJS_FROM_C := $(addprefix $(MOD_OBJ)/, $(C_FILES:%.c=%.o))
+OBJS_FROM_ASM := $(addprefix $(MOD_OBJ)/, $(ASM_FILES:%.s=%.o))
+
+
+define COMPILE_C
+	@echo [CC] $@
+	@$(CC) $(C_OPTION_NO_OPTIMIZE) -o $@ $<
+endef
+
+define COMPILE_ASM
+	@echo [AS] $@
+	@$(CC) $(AFLAGS_NO_OPTIMIZE) -o $@ $<
+endef
+
+all: show $(OBJS_FROM_C) $(OBJS_FROM_ASM) 
+
+show:
+	@echo .......... Complete .........
+
+$(OBJS_FROM_C) : $(MOD_OBJ)/%.o : %.c
+	$(COMPILE_C)	
+
+$(OBJS_FROM_ASM) : $(MOD_OBJ)/%.o : %.s
+	$(COMPILE_ASM)

+ 13 - 0
build/debug.in

@@ -0,0 +1,13 @@
+######################################################
+# 20090722 Shu-Hsin : define some flags for debugging
+######################################################
+
+TEST_MODE = 0
+MSDC_WRITER_MODE = 0
+NFI_WRITER_MODE = 0
+SF_WRITER_MODE = 0
+RTC_WRITER_MODE = 0
+RTC_TIEMOUT_TEST = 0
+ONENAND_WRITER_MODE = 0
+DOWNLOAD_ECHO_TEST = 0
+_DEBUG = 1

+ 24 - 0
build/setting.in

@@ -0,0 +1,24 @@
+###################################################################
+# Symbol
+###################################################################
+
+D_BIN	= $(PRELOADER_OUT)/bin
+D_OBJ	= $(PRELOADER_OUT)/obj
+###################################################################
+# CHIP , PLATFORM , TGTCPU and ENV definition
+###################################################################
+
+VERSION = 2
+C_DEF	+= $(CHIP) BOOTROM_VERSION=$(VERSION)
+
+
+PLATFORM = _BOARD
+C_DEF	+= $(PLATFORM)
+
+TGTCPU = $(_CPU)
+
+ENV = preloader
+
+C_DEF	+= $(ENV)
+
+DEFINE   = $(foreach def,$(C_DEF),-D$(def))

+ 115 - 0
build_preloader.mk

@@ -0,0 +1,115 @@
+ifneq (,$(PL_MODE))
+  PRELOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/PRELOADER_$(PL_MODE)_OBJ
+  INSTALLED_PRELOADER_TARGET := $(PRODUCT_OUT)/preloader_$(PRELOADER_TARGET_PRODUCT)_$(PL_MODE).bin
+  BUILT_PRELOADER_TARGET := $(PRELOADER_OUT)/bin/preloader_$(PRELOADER_TARGET_PRODUCT)_$(PL_MODE).bin
+  PRELOADER_BIN := $(PRODUCT_OUT)/preloader_$(PL_MODE).bin
+  TARGET_PRELOADER := $(PRODUCT_OUT)/preloader_$(PL_MODE).img
+  MTK_OTA_PREPROCESS_EXTRA_IMAGES := $(MTK_OTA_PREPROCESS_EXTRA_IMAGES) $(notdir $(TARGET_PRELOADER))
+  BOARD_PACK_RADIOIMAGES := $(BOARD_PACK_RADIOIMAGES) $(notdir $(TARGET_PRELOADER))
+  INSTALLED_RADIOIMAGE_TARGET := $(INSTALLED_RADIOIMAGE_TARGET) $(TARGET_PRELOADER)
+  ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+    BUILT_LOADER_EXT_TARGET := $(PRELOADER_OUT)/bin/loader_ext.img
+    INSTALLED_LOADER_EXT_TARGET := $(PRODUCT_OUT)/loader_ext_$(PL_MODE).img
+    SIGN_LOADER_EXT_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LOADER_EXT_TARGET)),$(basename $(INSTALLED_LOADER_EXT_TARGET)))
+  endif
+else
+  PRELOADER_OUT := $(TARGET_OUT_INTERMEDIATES)/PRELOADER_OBJ
+  INSTALLED_PRELOADER_TARGET := $(PRODUCT_OUT)/preloader_$(PRELOADER_TARGET_PRODUCT).bin
+  BUILT_PRELOADER_TARGET := $(PRELOADER_OUT)/bin/preloader_$(PRELOADER_TARGET_PRODUCT).bin
+  PRELOADER_BIN := $(PRODUCT_OUT)/preloader.bin
+  TARGET_PRELOADER := $(PRODUCT_OUT)/preloader.img
+  MTK_OTA_PREPROCESS_EXTRA_IMAGES := $(MTK_OTA_PREPROCESS_EXTRA_IMAGES) $(notdir $(TARGET_PRELOADER))
+  BOARD_PACK_RADIOIMAGES := $(BOARD_PACK_RADIOIMAGES) $(notdir $(TARGET_PRELOADER))
+  INSTALLED_RADIOIMAGE_TARGET := $(INSTALLED_RADIOIMAGE_TARGET) $(TARGET_PRELOADER) $(INSTALLED_PRELOADER_TARGET)
+  ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+    BUILT_LOADER_EXT_TARGET := $(PRELOADER_OUT)/bin/loader_ext.img
+    INSTALLED_LOADER_EXT_TARGET := $(PRODUCT_OUT)/loader_ext.img
+    SIGN_LOADER_EXT_TARGET := $(addsuffix -verified$(suffix $(INSTALLED_LOADER_EXT_TARGET)),$(basename $(INSTALLED_LOADER_EXT_TARGET)))
+  endif
+  INSTALLED_EFUSE_IMAGE_TARGET := $(PRODUCT_OUT)/efuse.img
+  BUILT_EFUSE_IMAGE_TARGET := $(PRELOADER_OUT)/bin/efuse.img
+endif
+
+  PRELOADER_ROOT_OUT := $(if $(filter /% ~%,$(PRELOADER_OUT)),,$(PRELOADER_ROOT_DIR)/)$(PRELOADER_OUT)
+  PRELOADER_MAKE_OPTION := $(if $(SHOW_COMMANDS),,-s) -f Makefile $(if $(PRELOADER_CROSS_COMPILE),CROSS_COMPILE=$(PRELOADER_CROSS_COMPILE)) PRELOADER_OUT=$(PRELOADER_ROOT_OUT) MTK_PROJECT=$(PRELOADER_TARGET_PRODUCT) TOOL_PATH=$(PRELOADER_ROOT_DIR)/device/mediatek/build/build/tools ROOTDIR=$(PRELOADER_ROOT_DIR) PL_MODE=$(PL_MODE)
+ifdef PERL
+  PRELOADER_MAKE_OPTION += PERL=$(abspath $(PERL))
+endif
+
+ifeq ($(wildcard $(TARGET_PREBUILT_PRELOADER)),)
+PRELOADER_MAKE_DEPENDENCIES := $(shell find $(PRELOADER_DIR) -name .git -prune -o -type f | sort)
+PRELOADER_MAKE_DEPENDENCIES := $(filter-out %/.git %/.gitignore %/.gitattributes,$(PRELOADER_MAKE_DEPENDENCIES))
+
+.KATI_RESTAT: $(BUILT_PRELOADER_TARGET)
+$(BUILT_PRELOADER_TARGET): PRIVATE_PRELOADER_MAKE_OPTION := $(PRELOADER_MAKE_OPTION)
+$(BUILT_PRELOADER_TARGET): $(PRELOADER_MAKE_DEPENDENCIES)
+	$(hide) mkdir -p $(dir $@)
+	$(PREBUILT_MAKE_PREFIX)$(MAKE) -C $(PRELOADER_DIR) $(PRIVATE_PRELOADER_MAKE_OPTION)
+
+endif#TARGET_PREBUILT_PRELOADER
+
+ifneq ($(INSTALLED_PRELOADER_TARGET),$(BUILT_PRELOADER_TARGET))
+$(INSTALLED_PRELOADER_TARGET): $(BUILT_PRELOADER_TARGET) | $(ACP)
+	$(copy-file-to-target)
+endif
+
+$(PRELOADER_BIN): $(INSTALLED_PRELOADER_TARGET)
+	$(hide) mkdir -p $(dir $@)
+	$(hide) cp -f $< $@
+
+$(TARGET_PRELOADER): PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
+$(TARGET_PRELOADER): $(INSTALLED_PRELOADER_TARGET) $(PRELOADER_DIR)/tools/gen-preloader-img.py
+ifneq ("$(wildcard $(PRELOADER_HEADER_BLOCK))","")
+	cat $(PRELOADER_HEADER_BLOCK) $(PRIVATE_INSTALLED_PRELOADER_TARGET) > $@
+else
+	$(hide) $(PRELOADER_DIR)/tools/gen-preloader-img.py $< $@
+endif
+
+ifeq (,$(PL_MODE))
+ifneq ($(wildcard $(PRELOADER_UFS_HEADER_BLOCK)),)
+preloader pl: $(PRODUCT_OUT)/preloader_ufs.img
+$(PRODUCT_OUT)/preloader_ufs.img: $(PRELOADER_UFS_HEADER_BLOCK) $(INSTALLED_PRELOADER_TARGET)
+	$(hide) mkdir -p $(dir $@)
+	$(hide) cat $^ > $@
+
+endif
+ifneq ($(wildcard $(PRELOADER_EMMC_HEADER_BLOCK)),)
+preloader pl: $(PRODUCT_OUT)/preloader_emmc.img
+$(PRODUCT_OUT)/preloader_emmc.img: $(PRELOADER_EMMC_HEADER_BLOCK) $(INSTALLED_PRELOADER_TARGET)
+	$(hide) mkdir -p $(dir $@)
+	$(hide) cat $^ > $@
+
+endif
+endif
+
+preloader pl: $(INSTALLED_PRELOADER_TARGET) $(TARGET_PRELOADER) $(PRELOADER_BIN) $(INSTALLED_LOADER_EXT_TARGET) $(SIGN_LOADER_EXT_TARGET)
+$(SIGN_LOADER_EXT_TARGET):
+ifeq ($(CFG_PRELOADER_EXTENSION), 1)
+$(INSTALLED_LOADER_EXT_TARGET): PRIVATE_BUILT_LOADER_EXT_TARGET := $(BUILT_LOADER_EXT_TARGET)
+$(INSTALLED_LOADER_EXT_TARGET): $(BUILT_PRELOADER_TARGET)
+	$(hide) cp -f $(PRIVATE_BUILT_LOADER_EXT_TARGET) $@
+endif
+
+ifeq (,$(PL_MODE))
+preloader pl: $(INSTALLED_EFUSE_IMAGE_TARGET)
+$(INSTALLED_EFUSE_IMAGE_TARGET): $(BUILT_PRELOADER_TARGET)
+	$(hide) if [ -f $(BUILT_EFUSE_IMAGE_TARGET) ]; then cp -f $(BUILT_EFUSE_IMAGE_TARGET) $@; fi
+endif
+
+ifneq (,$(PL_MODE))
+.PHONY: clean-preloader-$(PL_MODE)
+clean-preloader: clean-preloader-$(PL_MODE)
+clean-preloader-$(PL_MODE): PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
+clean-preloader-$(PL_MODE): PRIVATE_TARGET_PRELOADER := $(TARGET_PRELOADER)
+clean-preloader-$(PL_MODE): PRIVATE_PRELOADER_OUT := $(PRELOADER_OUT)
+clean-preloader-$(PL_MODE):
+	$(hide) rm -rf $(PRIVATE_INSTALLED_PRELOADER_TARGET) $(PRIVATE_TARGET_PRELOADER) $(PRIVATE_PRELOADER_OUT) $(INSTALLED_LOADER_EXT_TARGET)
+else
+.PHONY: clean-preloader-normal
+clean-preloader: clean-preloader-normal
+clean-preloader-normal: PRIVATE_INSTALLED_PRELOADER_TARGET := $(INSTALLED_PRELOADER_TARGET)
+clean-preloader-normal: PRIVATE_TARGET_PRELOADER := $(TARGET_PRELOADER)
+clean-preloader-normal: PRIVATE_PRELOADER_OUT := $(PRELOADER_OUT)
+clean-preloader-normal:
+	$(hide) rm -rf $(PRIVATE_INSTALLED_PRELOADER_TARGET) $(PRIVATE_TARGET_PRELOADER) $(PRIVATE_PRELOADER_OUT) $(INSTALLED_LOADER_EXT_TARGET)
+endif

+ 136 - 0
codesize_profiling.sh

@@ -0,0 +1,136 @@
+INPUT_FILE=$1
+OUTPUT_FILE=$2
+
+AWK_ARG=""
+if [[ $(awk --version) = GNU* ]]; then
+  AWK_ARG="--non-decimal-data"
+fi
+
+echo "Symbol,Address,Size,Object" > ${OUTPUT_FILE}.tmp
+awk ${AWK_ARG} '/^ .text/ {
+    if ($2 != "" && $2 >= "0x00200000") {
+        $4 = substr($4, match($4, /[^\/]+$/));
+        printf("%s,%s,%d,%s\n", $1, $2, $3, $4);
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .text/ {
+    if ($2 == "") {
+        A = $1;
+        getline;
+        $3 = substr($3, match($3, /[^\/]+$/));
+        A = A "," sprintf("%s,%d,%s", $1, $2, $3);
+        if ($1 >= "0x00200000")
+            print A;
+        A = "";
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .data/ {
+    if ($2 != "" && $2 >= "0x00200000") {
+        $4 = substr($4, match($4, /[^\/]+$/));
+        printf("%s,%s,%d,%s\n", $1, $2, $3, $4);
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .data/ {
+    if ($2 == "") {
+        A = $1;
+        getline;
+        $3 = substr($3, match($3, /[^\/]+$/));
+        A = A "," sprintf("%s,%d,%s", $1, $2, $3);
+        if ($1 >= "0x00200000")
+            print A;
+        A = "";
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .rodata/ {
+    if ($2 != "" && $2 >= "0x00200000") {
+        $4 = substr($4, match($4, /[^\/]+$/));
+        printf("%s,%s,%d,%s\n", $1, $2, $3, $4);
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .rodata/ {
+    if ($2 == "") {
+        A = $1;
+        getline;
+        $3 = substr($3, match($3, /[^\/]+$/));
+        A = A "," sprintf("%s,%d,%s", $1, $2, $3);
+        if ($1 >= "0x00200000")
+            print A;
+        A = "";
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .bss/ {
+    if ($2 != "" && ($2 >= "0x00200000" || $2 >= "0x00100000")) {
+        $4 = substr($4, match($4, /[^\/]+$/));
+        printf("%s,%s,%d,%s\n", $1, $2, $3, $4);
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ .bss/ {
+    if ($2 == "") {
+        A = $1;
+        getline;
+        $3 = substr($3, match($3, /[^\/]+$/));
+        A = A "," sprintf("%s,%d,%s", $1, $2, $3);
+        if (($1 >= "0x00200000") || ($1 >= "0x00100000"))
+            print A;
+        A = "";
+    }
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^ \*\* merge strings/ {
+    A = $1" "$2" "$3;
+    getline;
+    A = A "," sprintf("%s,%d", $1, $2);
+    if ($1 >= "0x00200000")
+        print A;
+    A = "";
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk ${AWK_ARG} '/^.got/ {
+    printf("%s,%s,%d\n", $1, $2, $3, $4);
+}' ${INPUT_FILE} >> ${OUTPUT_FILE}.tmp
+
+awk '
+    BEGIN {
+        FS = ",";
+        print "Object,Symbol,Size";
+    }
+
+    {
+        if (NR > 1) {
+            obj_sym = $4 " " $1;    # use object + symbol as key
+            object[obj_sym] = $4;
+            size[obj_sym] = $3;
+            total += $3;
+        }
+    }
+
+    END {
+            for (obj_sym in object) {
+                sum[object[obj_sym]] += size[obj_sym];
+            }
+
+            PROCINFO["sorted_in"] = "@val_num_desc"
+            for (filename in sum) {
+                print filename",," sum[filename];
+
+                for (obj_sym in object) {
+                    if (object[obj_sym] == filename) {
+                        symbol = substr(obj_sym, match(obj_sym, / /) + 1);
+                        print "," symbol "," size[obj_sym]
+                    }
+                }
+            }
+
+            print "Total,," total;
+    }
+' ${OUTPUT_FILE}.tmp > ${OUTPUT_FILE}
+
+rm ${OUTPUT_FILE}.tmp
+echo "End of Profiling..."

+ 2 - 0
custom/README

@@ -0,0 +1,2 @@
+The "preloader/custom" directory is intended for Mediatek preloader customization.
+

+ 52 - 0
custom/k37mv1_64_bsp/cust_bldr.mak

@@ -0,0 +1,52 @@
+###################################################################
+# Include Project Feautre  (cust_bldr.h)
+###################################################################
+#ifeq ("$(MTK_EMMC_SUPPORT)","yes")
+ifdef MTK_EMMC_SUPPORT
+CFG_BOOT_DEV :=BOOTDEV_SDMMC
+else
+CFG_BOOT_DEV :=BOOTDEV_NAND
+endif
+CFG_UART_LOG :=UART1
+CFG_UART_META :=UART1
+MTK_UART_USB_SWITCH:=0
+CFG_TEE_SUPPORT = 1
+CFG_TRUSTONIC_TEE_SUPPORT = 0
+CFG_MICROTRUST_TEE_SUPPORT = 1
+
+
+##### TEE >PLEASE ADD CONFIGS ABOVE THIS LINE< TEE #####
+ifeq ($(strip $(MTK_TEE_SUPPORT)),yes)
+  CFG_TEE_SUPPORT = 1
+  ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)),yes)
+    CFG_TRUSTONIC_TEE_SUPPORT = 1
+  else
+    CFG_TRUSTONIC_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(WATCHDATA_TEE_SUPPORT)),yes)
+    CFG_WATCHDATA_TEE_SUPPORT = 1
+  else
+    CFG_WATCHDATA_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)),yes)
+    CFG_MICROTRUST_TEE_SUPPORT = 1
+  else
+    CFG_MICROTRUST_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MTK_GOOGLE_TRUSTY_SUPPORT)),yes)
+    CFG_GOOGLE_TRUSTY_SUPPORT = 1
+  else
+    CFG_GOOGLE_TRUSTY_SUPPORT = 0
+  endif
+else
+  CFG_TEE_SUPPORT = 0
+  CFG_TRUSTONIC_TEE_SUPPORT = 0
+  CFG_WATCHDATA_TEE_SUPPORT = 0
+  CFG_MICROTRUST_TEE_SUPPORT = 0
+  CFG_GOOGLE_TRUSTY_SUPPORT = 0
+endif
+$(warning CFG_TEE_SUPPORT=$(CFG_TEE_SUPPORT))
+$(warning CFG_TRUSTONIC_TEE_SUPPORT=$(CFG_TRUSTONIC_TEE_SUPPORT))
+$(warning CFG_WATCHDATA_TEE_SUPPORT=$(CFG_WATCHDATA_TEE_SUPPORT))
+$(warning CFG_MICROTRUST_TEE_SUPPORT=$(CFG_MICROTRUST_TEE_SUPPORT))
+$(warning CFG_GOOGLE_TRUSTY_SUPPORT=$(CFG_GOOGLE_TRUSTY_SUPPORT))

+ 124 - 0
custom/k37mv1_64_bsp/cust_msdc.c

@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#include "cust_msdc.h"
+#include "msdc.h"
+
+
+struct msdc_cust msdc_cap[MSDC_MAX_NUM] =
+{
+    {
+        MSDC50_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_GEAR1,    /* rst pad driving               */
+        MSDC_DRVN_GEAR1,    /* ds pad driving                */
+        MSDC_DRVN_DONT_CARE,/* clock pad driving on 1.8V     */
+        MSDC_DRVN_DONT_CARE,/* command pad driving on 1.8V   */
+        MSDC_DRVN_DONT_CARE,/* data pad driving on 1.8V      */
+        8,                  /* data pins                     */
+        0,                  /* data address offset           */
+#if MSDC_USE_EMMC45_POWER
+        MSDC_HIGHSPEED | MSDC_DDR | MSDC_RST_PIN_EN 
+#else
+        MSDC_HIGHSPEED | MSDC_DDR
+#endif
+    }
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1 ,   /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    },
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+#endif
+};
+
+
+

BIN
custom/k37mv1_64_bsp/dct/dct/codegen.dws


+ 85 - 0
custom/k37mv1_64_bsp/inc/cust_bldr.h

@@ -0,0 +1,85 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_BLDR_H
+#define CUST_BLDR_H
+
+#include "boot_device.h"
+#include "uart.h"
+
+/* cust_bldr.h is not used any more, please refer to cust_bldr.mak */
+
+#if 0
+/*=======================================================================*/
+/* Pre-Loader Features                                                   */
+/*=======================================================================*/
+#define CFG_FPGA_PLATFORM           (1)
+
+#if CFG_FPGA_PLATFORM
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#ifdef MTK_EMMC_SUPPORT
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#define CFG_BOOT_DEV                (BOOTDEV_NAND)
+#endif
+#endif
+
+#define CFG_BATTERY_DETECT          (0)
+
+#define CFG_UART_TOOL_HANDSHAKE     (1)
+#define CFG_USB_TOOL_HANDSHAKE      (1)
+#define CFG_USB_DOWNLOAD            (1)
+#define CFG_PMT_SUPPORT             (0)
+
+#define CFG_LOG_BAUDRATE            (921600)
+#define CFG_META_BAUDRATE           (115200)
+#define CFG_UART_LOG                (UART1)
+#define CFG_UART_META               (UART1)
+
+#define CFG_EMERGENCY_DL_SUPPORT    (0)
+#define CFG_EMERGENCY_DL_TIMEOUT_MS (1000 * 60 * 5) /* 5 mins */
+
+#define CFG_SWITCH_USB_UART_SUPPORT (0)
+#define CFG_SWITCH_FORCE_USB        (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+#define CFG_SWITCH_FORCE_UART       (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+
+/*=======================================================================*/
+/* Misc Options                                                          */	
+/*=======================================================================*/
+#define FEATURE_MMC_ADDR_TRANS
+#endif
+
+#endif /* CUST_BLDR_H */

+ 87 - 0
custom/k37mv1_64_bsp/inc/cust_msdc.h

@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef CUST_MSDC_H
+#define CUST_MSDC_H
+
+#include "msdc_cfg.h"
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+#define MSDC_MAX_NUM            (4)
+#else
+#define MSDC_MAX_NUM            (1)
+#endif
+
+#define MSDC_CD_PIN_EN      (1 << 0)  /* card detection pin is wired   */
+#define MSDC_WP_PIN_EN      (1 << 1)  /* write protection pin is wired */
+#define MSDC_RST_PIN_EN     (1 << 2)  /* emmc reset pin is wired       */
+#define MSDC_SDIO_IRQ       (1 << 3)  /* use internal sdio irq (bus)   */
+#define MSDC_EXT_SDIO_IRQ   (1 << 4)  /* use external sdio irq         */
+#define MSDC_REMOVABLE      (1 << 5)  /* removable slot                */
+#define MSDC_SYS_SUSPEND    (1 << 6)  /* suspended by system           */
+#define MSDC_HIGHSPEED      (1 << 7)  /* high-speed mode support       */
+#define MSDC_UHS1           (1 << 8)  /* uhs-1 mode support            */
+#define MSDC_DDR            (1 << 9)  /* ddr mode support              */
+#define MSDC_HS200          (1 << 10) /* hs200 mode support(eMMC4.5)   */
+#define MSDC_HS400          (1 << 11) /* hs200 mode support(eMMC5.0)   */
+
+#define MSDC_SMPL_RISING        (0)
+#define MSDC_SMPL_FALLING       (1)
+#define MSDC_SMPL_SEPERATE      (2)
+
+
+struct msdc_cust {
+    unsigned char  clk_src;           /* host clock source             */
+    unsigned char  cmd_edge;          /* command latch edge            */
+    unsigned char  data_edge;         /* data latch edge               */
+    unsigned char  clk_drv;           /* clock pad driving             */
+    unsigned char  cmd_drv;           /* command pad driving           */
+    unsigned char  dat_drv;           /* data pad driving              */
+    unsigned char  rst_drv;           /* reset pin pad driving         */
+    unsigned char  ds_drv;            /* ds pad driving                */
+    unsigned char  clk_18v_drv;       /* clock pad driving             */
+    unsigned char  cmd_18v_drv;       /* command pad driving on 1.8V   */
+    unsigned char  dat_18v_drv;       /* data pad driving on 1.8V      */
+    unsigned char  data_pins;         /* data pins on 1.8V             */
+    unsigned int   data_offset;       /* data address offset           */
+    unsigned int   flags;             /* hardware capability flags     */
+};
+
+extern struct msdc_cust msdc_cap[MSDC_MAX_NUM];
+
+
+
+#endif /* end of _MSDC_CUST_H_ */
+

+ 100 - 0
custom/k37mv1_64_bsp/inc/cust_nand.h

@@ -0,0 +1,100 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_NAND_H 
+#define CUST_NAND_H
+
+#include "typedefs.h"
+
+#if 0
+#define RAMDOM_READ 1<<0
+#define CACHE_READ  1<<1
+
+typedef struct
+{
+   u16 id;          //deviceid+menuid
+   u8  addr_cycle;
+   u8  iowidth;
+   u16 totalsize;   
+   u16 blocksize;
+   u16 pagesize;
+   u32 timmingsetting;
+   char devciename[14];
+   u32 advancedmode;   //
+}flashdev_info,*pflashdev_info;
+
+static const flashdev_info g_FlashTable[]={
+	//micro
+	{0xAA2C,  5,  8,  256,  128,  2048,  0x01113,  "MT29F2G08ABD",  0},
+	{0xB12C,  4,  16, 128,  128,  2048,  0x01113,  "MT29F1G16ABC",  0},
+	{0xBA2C,  5,  16, 256,  128,  2048,  0x01113,  "MT29F2G16ABD",  0},	
+	{0xAC2C,  5,  8,  512,	128,  2048,  0x01113,  "MT29F4G08ABC",	0},
+    {0xA12C,  4,  8,  128,  128,  2048,  0x01113,  "MT29F1G08ABB",	0},
+    {0xBC2C,  5,  16, 512, 128,  2048,  0x01112,  "MT29F4G16ABBDA",	0},
+	//samsung 
+	{0xBAEC,  5,  16, 256,  128,  2048,  0x01123,  "K522H1GACE",    0},
+	{0xBCEC,  5,  16, 512,  128,  2048,  0x01123,  "K524G2GACB",    RAMDOM_READ},
+	{0xDAEC,  5,  8,  256,  128,  2048,  0x33222,  "K9F2G08U0A",    RAMDOM_READ},
+	{0xF1EC,  4,  8,  128,  128,  2048,  0x01123,  "K9F1G08U0A",    RAMDOM_READ},
+	{0xAAEC,  5,  8,  256,  128,  2048,  0x01123,  "K9F2G08R0A",    0},
+    //hynix
+	{0xD3AD,  5,  8,  1024, 256,  2048,  0x44333,  "HY27UT088G2A",  0},
+	{0xA1AD,  4,  8,  128,  128,  2048,  0x01123,  "H8BCSOPJOMCP",  0},
+	{0xBCAD,  5,  16, 512,  128,  2048,  0x01123,  "H8BCSOUNOMCR",  0},
+	{0xBAAD,  5,  16, 256,  128,  2048,  0x01123,  "H8BCSOSNOMCR",  0},
+	//toshiba
+	{0x9598,  5,  16, 816,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+	{0x9498,  5,  16, 375,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+    {0xBC98,  5,  16, 512, 128,  2048,  0x02113,  "TY58NYG2S8E",	0},
+	{0xC198,  4,  16, 128,  128,  2048,  0x44333,  "TC58NWGOS8C",   0},
+	{0xBA98,  5,  16, 256,  128,  2048,  0x02113,  "TC58NYG1S8C",   0},
+	//st-micro
+	{0xBA20,  5,  16, 256,  128,  2048,  0x01123,  "ND02CGR4B2DI6", 0},
+
+	// elpida
+	{0xBC20,  5,  16, 512,  128,  2048,  0x01123,  "04GR4B2DDI6",   0},
+	{0x0000,  0,  0,  0,	0,	  0,	 0, 	   "xxxxxxxxxxxxx", 0}
+};
+#endif
+
+#define NFI_DEFAULT_ACCESS_TIMING        (0x44333)
+
+//preloader only support 1 cs
+//#define NFI_CS_NUM                  	(2)
+#define NFI_DEFAULT_CS				(0)
+
+#define USE_AHB_MODE                	(0)
+
+#endif

+ 50 - 0
custom/k37mv1_64_bsp/inc/cust_rtc.h

@@ -0,0 +1,50 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef __CUST_RTC_H__
+#define __CUST_RTC_H__
+
+/*
+ * Default values for RTC initialization
+ * Year (YEA)        : 1970 ~ 2037
+ * Month (MTH)       : 1 ~ 12
+ * Day of Month (DOM): 1 ~ 31
+ */
+#define RTC_DEFAULT_YEA		2010
+#define RTC_DEFAULT_MTH		1
+#define RTC_DEFAULT_DOM		1
+#define RTC_2SEC_REBOOT_ENABLE  1
+#define RTC_2SEC_MODE		0
+#endif /* __CUST_RTC_H__ */

+ 243 - 0
custom/k37mv1_64_bsp/inc/cust_sec_ctrl.h

@@ -0,0 +1,243 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2011. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+
+#ifndef CUST_SEC_CTRL_H
+#define CUST_SEC_CTRL_H
+
+#include "typedefs.h"
+#include "proj_cfg.h"
+#include "keypad.h"
+
+/**************************************************************************
+ * [ROM INFO]
+ **************************************************************************/
+#define PROJECT_NAME                        "CUST"
+#define PLATFORM_NAME                       "MT6752"
+
+
+/**************************************************************************
+ * [CRYPTO SEED]
+ **************************************************************************/
+#define CUSTOM_CRYPTO_SEED_SIZE             (16)
+#define CUSTOM_CRYPTO_SEED                  "1A52A367CB12C458"
+
+/**************************************************************************
+ * [SML AES KEY CONTROL]
+ **************************************************************************/
+/* It can be enabled only if SUSBDL is turned on */
+/* Please make sure SUSBDL is on before enabling this flag */
+//#define SML_AES_KEY_ANTICLONE_EN
+
+/**************************************************************************
+ * [S-USBDL]
+ **************************************************************************/
+/* S-USBDL Attribute */
+#define ATTR_SUSBDL_DISABLE                 0x00
+#define ATTR_SUSBDL_ENABLE                  0x11
+#define ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP    0x22
+/* S-USBDL Control */
+#define SEC_USBDL_CFG                       CUSTOM_SUSBDL_CFG
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG for (for both of SLA and NON-SLA mode], 32bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_SEC_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG
+//#define BYPASS_CHECK_IMAGE_0_NAME           ""
+//#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_0_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_1_NAME           ""
+//#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_1_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_2_NAME           ""
+//#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_2_LENGTH         0x0
+
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG (for both of SLA and NON-SLA mode], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG_64
+#ifdef FLASHTOOL_SEC_CFG_64
+#define BYPASS_CHECK_IMAGE_0_NAME           ""
+#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_1_NAME           ""
+#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_2_NAME           ""
+#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+#endif
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)] , 32 bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_FORBID_DL_NSLA_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG
+//#define FORBID_DL_IMAGE_0_NAME              ""
+//#define FORBID_DL_IMAGE_0_OFFSET            0x0
+//#define FORBID_DL_IMAGE_0_LENGTH            0x0
+//#define FORBID_DL_IMAGE_1_NAME              ""
+//#define FORBID_DL_IMAGE_1_OFFSET            0x0
+//#define FORBID_DL_IMAGE_1_LENGTH            0x0
+
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#ifdef FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#define FORBID_DL_IMAGE_0_NAME              ""
+#define FORBID_DL_IMAGE_0_OFFSET            0x0
+#define FORBID_DL_IMAGE_1_NAME              ""
+#define FORBID_DL_IMAGE_1_OFFSET            0x0
+#endif
+
+#define SEC_USBDL_WITHOUT_SLA_ENABLE
+
+#ifdef SEC_USBDL_WITHOUT_SLA_ENABLE
+//#define USBDL_DETECT_VIA_KEY
+/* if com port wait key is enabled, define the key*/
+#ifdef USBDL_DETECT_VIA_KEY
+#define COM_WAIT_KEY    KPD_DL_KEY3
+#endif
+//#define USBDL_DETECT_VIA_AT_COMMAND
+#endif
+
+/**************************************************************************
+ * [S-BOOT]
+ **************************************************************************/
+/* S-BOOT Attribute */
+#define ATTR_SBOOT_DISABLE                  0x00
+#define ATTR_SBOOT_ENABLE                   0x11
+#define ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP     0x22
+/* S-BOOT Control */
+#define SEC_BOOT_CFG                        CUSTOM_SBOOT_CFG
+
+/* Customized Secure Boot */
+//#define CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#ifdef CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#define SBOOT_CUST_PART1    ""
+#define SBOOT_CUST_PART2    ""
+#endif
+
+/* For Custom Partition Verification*/
+#define VERIFY_PART_CUST                   (FALSE)
+#define VERIFY_PART_CUST_NAME              ""
+
+/* 
+    RSA2048 public key for verifying mtee image
+    It should be the same as AUTH_PARAM_N in alps\mediatek\custom\mt6752_evb\trustzone\TRUSTZONE_IMG_PROTECT_CFG.ini
+*/
+#define MTEE_IMG_VFY_PUBK_SZ 256
+
+#define MTEE_IMG_VFY_PUBK 0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+/* OEM_PUBK is set as the same as MTEE public key for convenience, but they can be different */
+/* OEM_PUBK will be used to verify oemkeystore, and use oemkeystore to verify images */
+#define OEM_PUBK_SZ 256
+
+#define OEM_PUBK          0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+
+/**************************************************************************
+ * [DEFINITION CHECK]
+ **************************************************************************/
+#ifdef SML_AES_KEY_ANTICLONE_EN
+#ifndef SECRO_IMG_ANTICLONE_EN
+#error "SML_AES_KEY_ANTICLONE_EN is defined. Should also enable SECRO_IMG_ANTICLONE_EN"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_CFG "
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_BOOT_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_BOOT_CFG"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_WITHOUT_SLA_ENABLE"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_KEY
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_KEY can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#ifndef COM_WAIT_KEY
+#error "COM_WAIT_KEY is not defined!!"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_AT_COMMAND
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_AT_COMMAND can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#endif
+
+
+#endif   /* CUST_SEC_CTRL_H */

+ 52 - 0
custom/k37mv1_64_bsp/inc/cust_usb.h

@@ -0,0 +1,52 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+
+#ifndef CUST_USB_H
+#define CUST_USB_H
+
+
+/*=======================================================================*/
+/* USB Control                                                           */	
+/*=======================================================================*/
+#define USBD_MANUFACTURER               "MediaTek"
+#define USBD_PRODUCT_NAME               "MT65xx Preloader"
+#define USBD_VENDORID                   (0x0E8D)
+#define USBD_PRODUCTID                  (0x2000)
+
+#define CFG_USB_HANDSHAKE_TIMEOUT_EN    (1)
+#define CFG_USB_ENUM_TIMEOUT_EN         (1)
+
+#endif   /*_CUST_USBDL_FLOW_H*/

+ 115 - 0
custom/k37mv1_64_bsp/inc/custom_MemoryDevice.h

@@ -0,0 +1,115 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ *
+ * MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+/*****************************************************************************
+*  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) 2008
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef __CUSTOM_MEMORYDEVICE__
+#define __CUSTOM_MEMORYDEVICE__
+
+/*
+ ****************************************************************************
+ [README , VERY IMPORTANT NOTICE]
+ --------------------------------
+ After user configured this C header file, not only C compiler compile it but
+ also auto-gen tool parse user's configure setting.
+ Here are recommend configure convention to make both work fine.
+
+ 1. All configurations in this file form as #define MACRO_NAME MACRO_VALUE format.
+    Note the #define must be the first non-space character of a line
+
+ 2. To disable the optional configurable item. Please use // before #define,
+    for example: //#define MEMORY_DEVICE_TYPE
+
+ 3. Please don't use #if , #elif , #else , #endif conditional macro key word here.
+    Such usage might cause compile result conflict with auto-gen tool parsing result.
+    Auto-Gen tool will show error and stop.
+    3.1.  any conditional keyword such as #if , #ifdef , #ifndef , #elif , #else detected.
+          execpt this #ifndef __CUSTOM_MEMORYDEVICE__
+    3.2.  any duplicated MACRO_NAME parsed. For example auto-gen tool got 
+          2nd MEMORY_DEVICE_TYPE macro value.
+ ****************************************************************************
+*/
+
+/*
+ ****************************************************************************
+ Step 1: Specify memory device type and its complete part number
+         Possible memory device type: LPSDRAM (SDR, DDR)
+ ****************************************************************************
+*/
+
+#define BOARD_ID                MT6735_EVB
+
+#define CS_PART_NUMBER[0]       H9TQ64A8GTMCUR_KUM
+#define CS_PART_NUMBER[1]       KMQ7X000SA_B315
+//#define CS_PART_NUMBER[2]       H9TQ17ABJTMCUR_KUM
+//#define CS_PART_NUMBER[2]       KMR820001M_B609
+//#define CS_PART_NUMBER[3]       KMF5X0005C_B211
+//#define CS_PART_NUMBER[0]       H9TP64A8JDMCPR_KGM
+//#define CS_PART_NUMBER[4]       H9TP32A4GDDCPR_KGM
+
+#endif /* __CUSTOM_MEMORYDEVICE__ */

+ 63 - 0
custom/k37mv1_64_bsp/inc/memory.h

@@ -0,0 +1,63 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2010. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+#ifndef MT6516_MEMORY_H
+#define MT6516_MEMORY_H
+
+/**************************************************************************
+*  DEBUG CONTROL
+**************************************************************************/
+#define MEM_TEST                (1)
+
+// do not change the test size !!!!
+#define MEM_TEST_SIZE           (0x2000)
+
+/**************************************************************************
+*  DRAM SIZE 
+**************************************************************************/
+#define E1_DRAM_SIZE            (0x10000000)
+#define E2_DRAM_SIZE            (0x08000000)
+
+/**************************************************************************
+*  EXPOSED API
+**************************************************************************/
+extern u32 mt6516_get_hardware_ver (void);
+extern void mt6516_mem_init (void);
+
+#if MEM_TEST
+extern int complex_mem_test (unsigned int start, unsigned int len);
+#endif
+
+#endif

+ 30 - 0
custom/k37mv1_64_bsp/k37mv1_64_bsp.mk

@@ -0,0 +1,30 @@
+# Common
+TARGET=k37mv1_64_bsp
+MTK_PLATFORM=MT6735
+MACH_TYPE=mt6737m
+MTK_SEC_CHIP_SUPPORT=yes
+MTK_SEC_USBDL=ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP
+MTK_SEC_BOOT=ATTR_SBOOT_ENABLE
+MTK_SEC_MODEM_AUTH=no
+MTK_SEC_SECRO_AC_SUPPORT=yes
+# Platform
+MTK_MT6333_SUPPORT=no
+MTK_FAN5405_SUPPORT=no
+MTK_EMMC_SUPPORT=yes
+MTK_MT8193_SUPPORT=no
+MTK_SECURITY_SW_SUPPORT=yes
+MTK_FACTORY_LOCK_SUPPORT=no
+CUSTOM_SEC_AUTH_SUPPORT=no
+MTK_KERNEL_POWER_OFF_CHARGING=yes
+## MTK_EMMC_SUPPORT_OTP=no
+MTK_COMBO_NAND_SUPPORT=no
+MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION=no
+MTK_BQ24160_SUPPORT=no
+MTK_SEC_VIDEO_PATH_SUPPORT=no
+MTK_EFUSE_DOWNGRADE=no
+CUSTOM_CONFIG_MAX_DRAM_SIZE=0x800000000
+MTK_TEE_SUPPORT = no
+TRUSTONIC_TEE_SUPPORT = no
+MICROTRUST_TEE_SUPPORT = no
+MTK_GOOGLE_TRUSTY_SUPPORT = no
+export MTK_PLATFORM MACH_TYPE MTK_MT6333_SUPPORT MTK_FAN5405_SUPPORT MTK_EMMC_SUPPORT MTK_8193_SUPPORT MTK_SECURITY_SW_SUPPORT MTK_SEC_CHIP_SUPPORT MTK_SEC_USBDL MTK_SEC_BOOT MTK_SEC_MODEM_AUTH MTK_SEC_SECRO_AC_SUPPORT CUSTOM_SEC_AUTH_SUPPORT MTK_KERNEL_POWER_OFF_CHARGING MTK_EMMC_SUPPORT_OTP MTK_COMBO_NAND_SUPPORT MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION MTK_BQ24160_SUPPORT MTK_SEC_VIDEO_PATH_SUPPORT MTK_FACTORY_LOCK_SUPPORT MTK_EFUSE_DOWNGRADE CUSTOM_CONFIG_MAX_DRAM_SIZE MTK_TEE_SUPPORT TRUSTONIC_TEE_SUPPORT MICROTRUST_TEE_SUPPORT MTK_GOOGLE_TRUSTY_SUPPORT

+ 64 - 0
custom/k37mv1_64_bsp/makefile

@@ -0,0 +1,64 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+
+###################################################################
+# flag
+###################################################################
+
+MOD_SRC  =
+MOD_OBJ  = $(PRELOADER_OUT)/obj
+
+###################################################################
+# source files
+# - add your file here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+###################################################################
+
+# these code are not generated by tool
+MOD_SRC  := \
+cust_msdc.c
+#cust_gpio.c
+
+
+# these code are generated by tool
+ifneq ($(CFG_FPGA_PLATFORM),1)
+MOD_SRC_PLUS := \
+#custom_emi.c
+endif
+
+###################################################################
+# target
+###################################################################
+
+include $(COMMON_FILE_MK)

+ 6 - 0
custom/k37mv1_64_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini

@@ -0,0 +1,6 @@
+PLATFORM=MT6582
+SECURE_SUPPORT=TRUE
+SECURE_VERSION=1
+SECURE_CUSTOM_NAME=
+SECURE_ANTICLONE_BY_CHIP=FALSE
+SECURE_ANTICLONE_BY_KEY=FALSE

+ 1 - 0
custom/k37mv1_64_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini

@@ -0,0 +1 @@
+SECURE_JTAG_ENABLE=TRUE

+ 36 - 0
custom/k37mv1_64_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini

@@ -0,0 +1,36 @@
+[CHIP]
+version = "6752"
+[GFH_FILE_INFO]
+version = "1"
+start_addr = "0x00201000"
+flash_dev  = "emmc"
+sig_type = "SINGLE_AND_PHASH"
+max_size = "0x00040000"
+sig_len = "292"
+attr = "0"
+[GFH_BL_INFO]
+version = "1"
+attr = "0x00000001"
+[GFH_BROM_CFG]
+version = "3"
+usbdl_auto_detect_dis = "1"
+usbdl_by_auto_detect_timeout_en = "0"
+usbdl_by_auto_detect_timeout_ms = "0x00000000"
+usbdl_by_kcol0_timeout_en = "1"
+usbdl_by_kcol0_timeout_ms = "0x00001388"
+usbdl_by_flag_timeout_en = "1"
+usbdl_by_flag_timeout_ms = "0"
+[GFH_BL_SEC_KEY]
+version = "1"
+[GFH_ANTI_CLONE]
+version = "1"
+ac_b2k = "0"
+ac_b2c = "0"
+ac_offset = "0x00000010"
+ac_len = "0x00000080"
+[GFH_BROM_SEC_CFG]
+version = "1"
+customer_name = ""
+jtag_en = "0"
+debug_en = "0"
+

+ 23 - 0
custom/k37mv1_64_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini

@@ -0,0 +1,23 @@
+; #################################
+; Code Signature Key
+; #################################
+
+[Code Sig Key]
+; Hex format
+private_key_d = "00D57BCF5934CE1A035F4598B42DAD4BC8AE7577FB6D81FA232317E8EE7C4FBB33772EFE378DF7DFE5369BB9ACAB1008FA1CFBA737890012A883B372B15932335B689B46A32F1B383B75F0DE2E1B5B0B9F4E1C3E780C2AB0CD3671EB4E34F30BB4C630A60D168CA124810D0F91A1ACC8EFDCEE52D4762BB35813BCC93878E1D15B750561B78006B4C13A8F76B5F10C941E5776C21192357A9B9D7E02C0FC812D2B154671863DE97CE3ED07F90624A0CADD04079E145168A3558A64786820192F5B638354DA69520288B976296961C337FB18A90120F2B6B365C0E1A57CE4119AE8BC718E08FDA33F1F42AA1C91AED090EC6B5656A66C246F89FDE5FD41A76671"
+private_key_n = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+[Install Sig Key]
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+; #################################
+; Anticlone key
+; #################################
+
+[Anticlone key]
+; Customer's anticlone key in BB chip
+; Hex format
+anticlone_key = "0x11111111, 0x22222222, 0x33333333, 0x44444444"

+ 18 - 0
custom/k37mv1_64_bsp/security/image_auth/IMG_AUTH_CFG.ini

@@ -0,0 +1,18 @@
+; ################################
+;
+; Parameter 'IMAGE_VERSION'
+;    - Flash Tool will compare download image version with existing one in Flash.
+;
+; Parameter 'VERIFY_LENGTH'
+;    - It can be configured to any length. SignTool will do the error check while signing image
+;    - If VERIFY_LENGTH is configured as 0, the whole image will be signed.
+;
+; ################################
+
+CUSTOM_NAME = NULL
+IMAGE_VERSION = 1
+VERIFY_COUNT = 1
+VERIFY_OFFSET[0] = 0
+VERIFY_LENGTH[0] = 10240
+CHUNK_SIZE = 1048576
+CFG_VERSION = 4

+ 2 - 0
custom/k37mv1_64_bsp/security/image_auth/IMG_AUTH_KEY.ini

@@ -0,0 +1,2 @@
+CUSTOM_RSA_N = 0x5FFF0B70D5DE3FC5BF41CB824B4BFD14820571CE57EDD3E7C668CC570E718DB07DCC7A6CACD0E80DADC38AA33DB37816839D97980DF3E577A6E0B1169D708071E17DD259CFE538DBDA804A2FC07D795841F2F59DEE023A9919360D0A3F4647FDF5657D9FC5944C8BFA2802336BA23AFDCDE8D546E8806EB532AA7F95A01D8DD1
+CUSTOM_RSA_E = 0x10001

+ 52 - 0
custom/k37mv1_bsp/cust_bldr.mak

@@ -0,0 +1,52 @@
+###################################################################
+# Include Project Feautre  (cust_bldr.h)
+###################################################################
+#ifeq ("$(MTK_EMMC_SUPPORT)","yes")
+ifdef MTK_EMMC_SUPPORT
+CFG_BOOT_DEV :=BOOTDEV_SDMMC
+else
+CFG_BOOT_DEV :=BOOTDEV_NAND
+endif
+CFG_UART_LOG :=UART1
+CFG_UART_META :=UART1
+CFG_USB_UART_SWITCH := 0
+CFG_TEE_SUPPORT = 1
+CFG_TRUSTONIC_TEE_SUPPORT = 0
+CFG_MICROTRUST_TEE_SUPPORT = 1
+
+
+##### TEE >PLEASE ADD CONFIGS ABOVE THIS LINE< TEE #####
+ifeq ($(strip $(MTK_TEE_SUPPORT)),yes)
+  CFG_TEE_SUPPORT = 1
+  ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)),yes)
+    CFG_TRUSTONIC_TEE_SUPPORT = 1
+  else
+    CFG_TRUSTONIC_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(WATCHDATA_TEE_SUPPORT)),yes)
+    CFG_WATCHDATA_TEE_SUPPORT = 1
+  else
+    CFG_WATCHDATA_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)),yes)
+    CFG_MICROTRUST_TEE_SUPPORT = 1
+  else
+    CFG_MICROTRUST_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MTK_GOOGLE_TRUSTY_SUPPORT)),yes)
+    CFG_GOOGLE_TRUSTY_SUPPORT = 1
+  else
+    CFG_GOOGLE_TRUSTY_SUPPORT = 0
+  endif
+else
+  CFG_TEE_SUPPORT = 0
+  CFG_TRUSTONIC_TEE_SUPPORT = 0
+  CFG_WATCHDATA_TEE_SUPPORT = 0
+  CFG_MICROTRUST_TEE_SUPPORT = 0
+  CFG_GOOGLE_TRUSTY_SUPPORT = 0
+endif
+$(warning CFG_TEE_SUPPORT=$(CFG_TEE_SUPPORT))
+$(warning CFG_TRUSTONIC_TEE_SUPPORT=$(CFG_TRUSTONIC_TEE_SUPPORT))
+$(warning CFG_WATCHDATA_TEE_SUPPORT=$(CFG_WATCHDATA_TEE_SUPPORT))
+$(warning CFG_MICROTRUST_TEE_SUPPORT=$(CFG_MICROTRUST_TEE_SUPPORT))
+$(warning CFG_GOOGLE_TRUSTY_SUPPORT=$(CFG_GOOGLE_TRUSTY_SUPPORT))

+ 124 - 0
custom/k37mv1_bsp/cust_msdc.c

@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#include "cust_msdc.h"
+#include "msdc.h"
+
+
+struct msdc_cust msdc_cap[MSDC_MAX_NUM] =
+{
+    {
+        MSDC50_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_GEAR1,    /* rst pad driving               */
+        MSDC_DRVN_GEAR1,    /* ds pad driving                */
+        MSDC_DRVN_DONT_CARE,/* clock pad driving on 1.8V     */
+        MSDC_DRVN_DONT_CARE,/* command pad driving on 1.8V   */
+        MSDC_DRVN_DONT_CARE,/* data pad driving on 1.8V      */
+        8,                  /* data pins                     */
+        0,                  /* data address offset           */
+#if MSDC_USE_EMMC45_POWER
+        MSDC_HIGHSPEED /*| MSDC_DDR */| MSDC_RST_PIN_EN 
+#else
+        MSDC_HIGHSPEED //| MSDC_DDR
+#endif
+    }
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 //| MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1 ,   /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    },
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+#endif
+};
+
+
+

BIN
custom/k37mv1_bsp/dct/dct/codegen.dws


+ 85 - 0
custom/k37mv1_bsp/inc/cust_bldr.h

@@ -0,0 +1,85 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_BLDR_H
+#define CUST_BLDR_H
+
+#include "boot_device.h"
+#include "uart.h"
+
+/* cust_bldr.h is not used any more, please refer to cust_bldr.mak */
+
+#if 0
+/*=======================================================================*/
+/* Pre-Loader Features                                                   */
+/*=======================================================================*/
+#define CFG_FPGA_PLATFORM           (1)
+
+#if CFG_FPGA_PLATFORM
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#ifdef MTK_EMMC_SUPPORT
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#define CFG_BOOT_DEV                (BOOTDEV_NAND)
+#endif
+#endif
+
+#define CFG_BATTERY_DETECT          (0)
+
+#define CFG_UART_TOOL_HANDSHAKE     (1)
+#define CFG_USB_TOOL_HANDSHAKE      (1)
+#define CFG_USB_DOWNLOAD            (1)
+#define CFG_PMT_SUPPORT             (0)
+
+#define CFG_LOG_BAUDRATE            (921600)
+#define CFG_META_BAUDRATE           (115200)
+#define CFG_UART_LOG                (UART1)
+#define CFG_UART_META               (UART1)
+
+#define CFG_EMERGENCY_DL_SUPPORT    (0)
+#define CFG_EMERGENCY_DL_TIMEOUT_MS (1000 * 60 * 5) /* 5 mins */
+
+#define CFG_SWITCH_USB_UART_SUPPORT (0)
+#define CFG_SWITCH_FORCE_USB        (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+#define CFG_SWITCH_FORCE_UART       (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+
+/*=======================================================================*/
+/* Misc Options                                                          */	
+/*=======================================================================*/
+#define FEATURE_MMC_ADDR_TRANS
+#endif
+
+#endif /* CUST_BLDR_H */

+ 87 - 0
custom/k37mv1_bsp/inc/cust_msdc.h

@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef CUST_MSDC_H
+#define CUST_MSDC_H
+
+#include "msdc_cfg.h"
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+#define MSDC_MAX_NUM            (4)
+#else
+#define MSDC_MAX_NUM            (1)
+#endif
+
+#define MSDC_CD_PIN_EN      (1 << 0)  /* card detection pin is wired   */
+#define MSDC_WP_PIN_EN      (1 << 1)  /* write protection pin is wired */
+#define MSDC_RST_PIN_EN     (1 << 2)  /* emmc reset pin is wired       */
+#define MSDC_SDIO_IRQ       (1 << 3)  /* use internal sdio irq (bus)   */
+#define MSDC_EXT_SDIO_IRQ   (1 << 4)  /* use external sdio irq         */
+#define MSDC_REMOVABLE      (1 << 5)  /* removable slot                */
+#define MSDC_SYS_SUSPEND    (1 << 6)  /* suspended by system           */
+#define MSDC_HIGHSPEED      (1 << 7)  /* high-speed mode support       */
+#define MSDC_UHS1           (1 << 8)  /* uhs-1 mode support            */
+#define MSDC_DDR            (1 << 9)  /* ddr mode support              */
+#define MSDC_HS200          (1 << 10) /* hs200 mode support(eMMC4.5)   */
+#define MSDC_HS400          (1 << 11) /* hs200 mode support(eMMC5.0)   */
+
+#define MSDC_SMPL_RISING        (0)
+#define MSDC_SMPL_FALLING       (1)
+#define MSDC_SMPL_SEPERATE      (2)
+
+
+struct msdc_cust {
+    unsigned char  clk_src;           /* host clock source             */
+    unsigned char  cmd_edge;          /* command latch edge            */
+    unsigned char  data_edge;         /* data latch edge               */
+    unsigned char  clk_drv;           /* clock pad driving             */
+    unsigned char  cmd_drv;           /* command pad driving           */
+    unsigned char  dat_drv;           /* data pad driving              */
+    unsigned char  rst_drv;           /* reset pin pad driving         */
+    unsigned char  ds_drv;            /* ds pad driving                */
+    unsigned char  clk_18v_drv;       /* clock pad driving             */
+    unsigned char  cmd_18v_drv;       /* command pad driving on 1.8V   */
+    unsigned char  dat_18v_drv;       /* data pad driving on 1.8V      */
+    unsigned char  data_pins;         /* data pins on 1.8V             */
+    unsigned int   data_offset;       /* data address offset           */
+    unsigned int   flags;             /* hardware capability flags     */
+};
+
+extern struct msdc_cust msdc_cap[MSDC_MAX_NUM];
+
+
+
+#endif /* end of _MSDC_CUST_H_ */
+

+ 100 - 0
custom/k37mv1_bsp/inc/cust_nand.h

@@ -0,0 +1,100 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_NAND_H 
+#define CUST_NAND_H
+
+#include "typedefs.h"
+
+#if 0
+#define RAMDOM_READ 1<<0
+#define CACHE_READ  1<<1
+
+typedef struct
+{
+   u16 id;          //deviceid+menuid
+   u8  addr_cycle;
+   u8  iowidth;
+   u16 totalsize;   
+   u16 blocksize;
+   u16 pagesize;
+   u32 timmingsetting;
+   char devciename[14];
+   u32 advancedmode;   //
+}flashdev_info,*pflashdev_info;
+
+static const flashdev_info g_FlashTable[]={
+	//micro
+	{0xAA2C,  5,  8,  256,  128,  2048,  0x01113,  "MT29F2G08ABD",  0},
+	{0xB12C,  4,  16, 128,  128,  2048,  0x01113,  "MT29F1G16ABC",  0},
+	{0xBA2C,  5,  16, 256,  128,  2048,  0x01113,  "MT29F2G16ABD",  0},	
+	{0xAC2C,  5,  8,  512,	128,  2048,  0x01113,  "MT29F4G08ABC",	0},
+    {0xA12C,  4,  8,  128,  128,  2048,  0x01113,  "MT29F1G08ABB",	0},
+    {0xBC2C,  5,  16, 512, 128,  2048,  0x01112,  "MT29F4G16ABBDA",	0},
+	//samsung 
+	{0xBAEC,  5,  16, 256,  128,  2048,  0x01123,  "K522H1GACE",    0},
+	{0xBCEC,  5,  16, 512,  128,  2048,  0x01123,  "K524G2GACB",    RAMDOM_READ},
+	{0xDAEC,  5,  8,  256,  128,  2048,  0x33222,  "K9F2G08U0A",    RAMDOM_READ},
+	{0xF1EC,  4,  8,  128,  128,  2048,  0x01123,  "K9F1G08U0A",    RAMDOM_READ},
+	{0xAAEC,  5,  8,  256,  128,  2048,  0x01123,  "K9F2G08R0A",    0},
+    //hynix
+	{0xD3AD,  5,  8,  1024, 256,  2048,  0x44333,  "HY27UT088G2A",  0},
+	{0xA1AD,  4,  8,  128,  128,  2048,  0x01123,  "H8BCSOPJOMCP",  0},
+	{0xBCAD,  5,  16, 512,  128,  2048,  0x01123,  "H8BCSOUNOMCR",  0},
+	{0xBAAD,  5,  16, 256,  128,  2048,  0x01123,  "H8BCSOSNOMCR",  0},
+	//toshiba
+	{0x9598,  5,  16, 816,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+	{0x9498,  5,  16, 375,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+    {0xBC98,  5,  16, 512, 128,  2048,  0x02113,  "TY58NYG2S8E",	0},
+	{0xC198,  4,  16, 128,  128,  2048,  0x44333,  "TC58NWGOS8C",   0},
+	{0xBA98,  5,  16, 256,  128,  2048,  0x02113,  "TC58NYG1S8C",   0},
+	//st-micro
+	{0xBA20,  5,  16, 256,  128,  2048,  0x01123,  "ND02CGR4B2DI6", 0},
+
+	// elpida
+	{0xBC20,  5,  16, 512,  128,  2048,  0x01123,  "04GR4B2DDI6",   0},
+	{0x0000,  0,  0,  0,	0,	  0,	 0, 	   "xxxxxxxxxxxxx", 0}
+};
+#endif
+
+#define NFI_DEFAULT_ACCESS_TIMING        (0x44333)
+
+//preloader only support 1 cs
+//#define NFI_CS_NUM                  	(2)
+#define NFI_DEFAULT_CS				(0)
+
+#define USE_AHB_MODE                	(0)
+
+#endif

+ 50 - 0
custom/k37mv1_bsp/inc/cust_rtc.h

@@ -0,0 +1,50 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef __CUST_RTC_H__
+#define __CUST_RTC_H__
+
+/*
+ * Default values for RTC initialization
+ * Year (YEA)        : 1970 ~ 2037
+ * Month (MTH)       : 1 ~ 12
+ * Day of Month (DOM): 1 ~ 31
+ */
+#define RTC_DEFAULT_YEA		2010
+#define RTC_DEFAULT_MTH		1
+#define RTC_DEFAULT_DOM		1
+#define RTC_2SEC_REBOOT_ENABLE  1
+#define RTC_2SEC_MODE		0
+#endif /* __CUST_RTC_H__ */

+ 245 - 0
custom/k37mv1_bsp/inc/cust_sec_ctrl.h

@@ -0,0 +1,245 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2011. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+
+#ifndef CUST_SEC_CTRL_H
+#define CUST_SEC_CTRL_H
+
+#include "typedefs.h"
+#include "proj_cfg.h"
+#include "keypad.h"
+
+/**************************************************************************
+ * [ROM INFO]
+ **************************************************************************/
+#define PROJECT_NAME                        "CUST"
+#define PLATFORM_NAME                       "MT6752"
+
+
+/**************************************************************************
+ * [CRYPTO SEED]
+ **************************************************************************/
+#define CUSTOM_CRYPTO_SEED_SIZE             (16)
+#define CUSTOM_CRYPTO_SEED                  "1A52A367CB12C458"
+
+/**************************************************************************
+ * [SML AES KEY CONTROL]
+ **************************************************************************/
+/* It can be enabled only if SUSBDL is turned on */
+/* Please make sure SUSBDL is on before enabling this flag */
+//#define SML_AES_KEY_ANTICLONE_EN
+
+/**************************************************************************
+ * [S-USBDL]
+ **************************************************************************/
+/* S-USBDL Attribute */
+#define ATTR_SUSBDL_DISABLE                 0x00
+#define ATTR_SUSBDL_ENABLE                  0x11
+#define ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP    0x22
+/* S-USBDL Control */
+#define SEC_USBDL_CFG                       CUSTOM_SUSBDL_CFG
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG for (for both of SLA and NON-SLA mode], 32bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_SEC_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG
+//#define BYPASS_CHECK_IMAGE_0_NAME           ""
+//#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_0_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_1_NAME           ""
+//#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_1_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_2_NAME           ""
+//#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_2_LENGTH         0x0
+
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG (for both of SLA and NON-SLA mode], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG_64
+#ifdef FLASHTOOL_SEC_CFG_64
+#define BYPASS_CHECK_IMAGE_0_NAME           ""
+#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_1_NAME           ""
+#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_2_NAME           ""
+#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+#endif
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)] , 32 bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_FORBID_DL_NSLA_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG
+//#define FORBID_DL_IMAGE_0_NAME              ""
+//#define FORBID_DL_IMAGE_0_OFFSET            0x0
+//#define FORBID_DL_IMAGE_0_LENGTH            0x0
+//#define FORBID_DL_IMAGE_1_NAME              ""
+//#define FORBID_DL_IMAGE_1_OFFSET            0x0
+//#define FORBID_DL_IMAGE_1_LENGTH            0x0
+
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#ifdef FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#define FORBID_DL_IMAGE_0_NAME              ""
+#define FORBID_DL_IMAGE_0_OFFSET            0x0
+#define FORBID_DL_IMAGE_1_NAME              ""
+#define FORBID_DL_IMAGE_1_OFFSET            0x0
+#endif
+
+#define SEC_USBDL_WITHOUT_SLA_ENABLE
+
+#ifdef SEC_USBDL_WITHOUT_SLA_ENABLE
+//#define USBDL_DETECT_VIA_KEY
+/* if com port wait key is enabled, define the key*/
+#ifdef USBDL_DETECT_VIA_KEY
+#define COM_WAIT_KEY    KPD_DL_KEY3
+#endif
+//#define USBDL_DETECT_VIA_AT_COMMAND
+#endif
+
+/**************************************************************************
+ * [S-BOOT]
+ **************************************************************************/
+/* S-BOOT Attribute */
+#define ATTR_SBOOT_DISABLE                  0x00
+#define ATTR_SBOOT_ENABLE                   0x11
+#define ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP     0x22
+/* S-BOOT Control */
+#define SEC_BOOT_CFG                        CUSTOM_SBOOT_CFG
+
+/* Customized Secure Boot */
+//#define CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#ifdef CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#define SBOOT_CUST_PART1    ""
+#define SBOOT_CUST_PART2    ""
+#endif
+
+/* For Custom Partition Verification*/
+#define VERIFY_PART_CUST                   (FALSE)
+#define VERIFY_PART_CUST_NAME              ""
+
+/* 
+    RSA2048 public key for verifying mtee image
+    It should be the same as AUTH_PARAM_N in alps\mediatek\custom\mt6752_evb\trustzone\TRUSTZONE_IMG_PROTECT_CFG.ini
+*/
+#define MTEE_IMG_VFY_PUBK_SZ 256
+
+#define MTEE_IMG_VFY_PUBK 0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+/* OEM_PUBK is set as the same as MTEE public key for convenience, but they can be different */
+/* OEM_PUBK will be used to verify oemkeystore, and use oemkeystore to verify images */
+#define OEM_PUBK_SZ 256
+
+#define OEM_PUBK          0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+
+
+
+/**************************************************************************
+ * [DEFINITION CHECK]
+ **************************************************************************/
+#ifdef SML_AES_KEY_ANTICLONE_EN
+#ifndef SECRO_IMG_ANTICLONE_EN
+#error "SML_AES_KEY_ANTICLONE_EN is defined. Should also enable SECRO_IMG_ANTICLONE_EN"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_CFG "
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_BOOT_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_BOOT_CFG"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_WITHOUT_SLA_ENABLE"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_KEY
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_KEY can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#ifndef COM_WAIT_KEY
+#error "COM_WAIT_KEY is not defined!!"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_AT_COMMAND
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_AT_COMMAND can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#endif
+
+
+#endif   /* CUST_SEC_CTRL_H */

+ 52 - 0
custom/k37mv1_bsp/inc/cust_usb.h

@@ -0,0 +1,52 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+
+#ifndef CUST_USB_H
+#define CUST_USB_H
+
+
+/*=======================================================================*/
+/* USB Control                                                           */	
+/*=======================================================================*/
+#define USBD_MANUFACTURER               "MediaTek"
+#define USBD_PRODUCT_NAME               "MT65xx Preloader"
+#define USBD_VENDORID                   (0x0E8D)
+#define USBD_PRODUCTID                  (0x2000)
+
+#define CFG_USB_HANDSHAKE_TIMEOUT_EN    (1)
+#define CFG_USB_ENUM_TIMEOUT_EN         (1)
+
+#endif   /*_CUST_USBDL_FLOW_H*/

+ 117 - 0
custom/k37mv1_bsp/inc/custom_MemoryDevice.h

@@ -0,0 +1,117 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ *
+ * MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+/*****************************************************************************
+*  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) 2008
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef __CUSTOM_MEMORYDEVICE__
+#define __CUSTOM_MEMORYDEVICE__
+
+/*
+ ****************************************************************************
+ [README , VERY IMPORTANT NOTICE]
+ --------------------------------
+ After user configured this C header file, not only C compiler compile it but
+ also auto-gen tool parse user's configure setting.
+ Here are recommend configure convention to make both work fine.
+
+ 1. All configurations in this file form as #define MACRO_NAME MACRO_VALUE format.
+    Note the #define must be the first non-space character of a line
+
+ 2. To disable the optional configurable item. Please use // before #define,
+    for example: //#define MEMORY_DEVICE_TYPE
+
+ 3. Please don't use #if , #elif , #else , #endif conditional macro key word here.
+    Such usage might cause compile result conflict with auto-gen tool parsing result.
+    Auto-Gen tool will show error and stop.
+    3.1.  any conditional keyword such as #if , #ifdef , #ifndef , #elif , #else detected.
+          execpt this #ifndef __CUSTOM_MEMORYDEVICE__
+    3.2.  any duplicated MACRO_NAME parsed. For example auto-gen tool got 
+          2nd MEMORY_DEVICE_TYPE macro value.
+ ****************************************************************************
+*/
+
+/*
+ ****************************************************************************
+ Step 1: Specify memory device type and its complete part number
+         Possible memory device type: LPSDRAM (SDR, DDR)
+ ****************************************************************************
+*/
+
+#define BOARD_ID                MT6735_EVB
+
+#define CS_PART_NUMBER[0]       H9TQ64A8GTMCUR_KUM
+#define CS_PART_NUMBER[1]       KMQ7X000SA_B315
+#define CS_PART_NUMBER[2]       KMFN60012M_B214
+#define CS_PART_NUMBER[3]       KMR820001M_B609
+//#define CS_PART_NUMBER[2]       H9TQ17ABJTMCUR_KUM
+//#define CS_PART_NUMBER[2]       KMR820001M_B609
+//#define CS_PART_NUMBER[3]       KMF5X0005C_B211
+//#define CS_PART_NUMBER[0]       H9TP64A8JDMCPR_KGM
+//#define CS_PART_NUMBER[4]       H9TP32A4GDDCPR_KGM
+
+#endif /* __CUSTOM_MEMORYDEVICE__ */

+ 63 - 0
custom/k37mv1_bsp/inc/memory.h

@@ -0,0 +1,63 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2010. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+#ifndef MT6516_MEMORY_H
+#define MT6516_MEMORY_H
+
+/**************************************************************************
+*  DEBUG CONTROL
+**************************************************************************/
+#define MEM_TEST                (1)
+
+// do not change the test size !!!!
+#define MEM_TEST_SIZE           (0x2000)
+
+/**************************************************************************
+*  DRAM SIZE 
+**************************************************************************/
+#define E1_DRAM_SIZE            (0x10000000)
+#define E2_DRAM_SIZE            (0x08000000)
+
+/**************************************************************************
+*  EXPOSED API
+**************************************************************************/
+extern u32 mt6516_get_hardware_ver (void);
+extern void mt6516_mem_init (void);
+
+#if MEM_TEST
+extern int complex_mem_test (unsigned int start, unsigned int len);
+#endif
+
+#endif

+ 30 - 0
custom/k37mv1_bsp/k37mv1_bsp.mk

@@ -0,0 +1,30 @@
+# Common
+TARGET=k37mv1_bsp
+MTK_PLATFORM=MT6735
+MACH_TYPE=mt6737m
+MTK_SEC_CHIP_SUPPORT=yes
+MTK_SEC_USBDL=ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP
+MTK_SEC_BOOT=ATTR_SBOOT_ENABLE
+MTK_SEC_MODEM_AUTH=no
+MTK_SEC_SECRO_AC_SUPPORT=yes
+# Platform
+MTK_MT6333_SUPPORT=no
+MTK_FAN5405_SUPPORT=no
+MTK_EMMC_SUPPORT=yes
+MTK_MT8193_SUPPORT=no
+MTK_SECURITY_SW_SUPPORT=yes
+MTK_FACTORY_LOCK_SUPPORT=no
+CUSTOM_SEC_AUTH_SUPPORT=no
+MTK_KERNEL_POWER_OFF_CHARGING=yes
+## MTK_EMMC_SUPPORT_OTP=no
+MTK_COMBO_NAND_SUPPORT=no
+MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION=no
+MTK_BQ24160_SUPPORT=no
+MTK_SEC_VIDEO_PATH_SUPPORT=no
+MTK_EFUSE_DOWNGRADE=no
+CUSTOM_CONFIG_MAX_DRAM_SIZE=0x40000000
+MTK_TEE_SUPPORT = no
+TRUSTONIC_TEE_SUPPORT = no
+MICROTRUST_TEE_SUPPORT = no
+MTK_GOOGLE_TRUSTY_SUPPORT = no
+export MTK_PLATFORM MACH_TYPE MTK_MT6333_SUPPORT MTK_FAN5405_SUPPORT MTK_EMMC_SUPPORT MTK_8193_SUPPORT MTK_SECURITY_SW_SUPPORT MTK_SEC_CHIP_SUPPORT MTK_SEC_USBDL MTK_SEC_BOOT MTK_SEC_MODEM_AUTH MTK_SEC_SECRO_AC_SUPPORT CUSTOM_SEC_AUTH_SUPPORT MTK_KERNEL_POWER_OFF_CHARGING MTK_EMMC_SUPPORT_OTP MTK_COMBO_NAND_SUPPORT MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION MTK_BQ24160_SUPPORT MTK_SEC_VIDEO_PATH_SUPPORT MTK_FACTORY_LOCK_SUPPORT MTK_EFUSE_DOWNGRADE CUSTOM_CONFIG_MAX_DRAM_SIZE MTK_TEE_SUPPORT TRUSTONIC_TEE_SUPPORT MICROTRUST_TEE_SUPPORT MTK_GOOGLE_TRUSTY_SUPPORT

+ 64 - 0
custom/k37mv1_bsp/makefile

@@ -0,0 +1,64 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+
+###################################################################
+# flag
+###################################################################
+
+MOD_SRC  =
+MOD_OBJ  = $(PRELOADER_OUT)/obj
+
+###################################################################
+# source files
+# - add your file here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+###################################################################
+
+# these code are not generated by tool
+MOD_SRC  := \
+cust_msdc.c
+#cust_gpio.c
+
+
+# these code are generated by tool
+ifneq ($(CFG_FPGA_PLATFORM),1)
+MOD_SRC_PLUS := \
+#custom_emi.c
+endif
+
+###################################################################
+# target
+###################################################################
+
+include $(COMMON_FILE_MK)

+ 6 - 0
custom/k37mv1_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini

@@ -0,0 +1,6 @@
+PLATFORM=MT6582
+SECURE_SUPPORT=TRUE
+SECURE_VERSION=1
+SECURE_CUSTOM_NAME=
+SECURE_ANTICLONE_BY_CHIP=FALSE
+SECURE_ANTICLONE_BY_KEY=FALSE

+ 1 - 0
custom/k37mv1_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini

@@ -0,0 +1 @@
+SECURE_JTAG_ENABLE=TRUE

+ 36 - 0
custom/k37mv1_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini

@@ -0,0 +1,36 @@
+[CHIP]
+version = "6752"
+[GFH_FILE_INFO]
+version = "1"
+start_addr = "0x00201000"
+flash_dev  = "emmc"
+sig_type = "SINGLE_AND_PHASH"
+max_size = "0x00040000"
+sig_len = "292"
+attr = "0"
+[GFH_BL_INFO]
+version = "1"
+attr = "0x00000001"
+[GFH_BROM_CFG]
+version = "3"
+usbdl_auto_detect_dis = "1"
+usbdl_by_auto_detect_timeout_en = "0"
+usbdl_by_auto_detect_timeout_ms = "0x00000000"
+usbdl_by_kcol0_timeout_en = "1"
+usbdl_by_kcol0_timeout_ms = "0x00001388"
+usbdl_by_flag_timeout_en = "1"
+usbdl_by_flag_timeout_ms = "0"
+[GFH_BL_SEC_KEY]
+version = "1"
+[GFH_ANTI_CLONE]
+version = "1"
+ac_b2k = "0"
+ac_b2c = "0"
+ac_offset = "0x00000010"
+ac_len = "0x00000080"
+[GFH_BROM_SEC_CFG]
+version = "1"
+customer_name = ""
+jtag_en = "0"
+debug_en = "0"
+

+ 23 - 0
custom/k37mv1_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini

@@ -0,0 +1,23 @@
+; #################################
+; Code Signature Key
+; #################################
+
+[Code Sig Key]
+; Hex format
+private_key_d = "00D57BCF5934CE1A035F4598B42DAD4BC8AE7577FB6D81FA232317E8EE7C4FBB33772EFE378DF7DFE5369BB9ACAB1008FA1CFBA737890012A883B372B15932335B689B46A32F1B383B75F0DE2E1B5B0B9F4E1C3E780C2AB0CD3671EB4E34F30BB4C630A60D168CA124810D0F91A1ACC8EFDCEE52D4762BB35813BCC93878E1D15B750561B78006B4C13A8F76B5F10C941E5776C21192357A9B9D7E02C0FC812D2B154671863DE97CE3ED07F90624A0CADD04079E145168A3558A64786820192F5B638354DA69520288B976296961C337FB18A90120F2B6B365C0E1A57CE4119AE8BC718E08FDA33F1F42AA1C91AED090EC6B5656A66C246F89FDE5FD41A76671"
+private_key_n = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+[Install Sig Key]
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+; #################################
+; Anticlone key
+; #################################
+
+[Anticlone key]
+; Customer's anticlone key in BB chip
+; Hex format
+anticlone_key = "0x11111111, 0x22222222, 0x33333333, 0x44444444"

+ 18 - 0
custom/k37mv1_bsp/security/image_auth/IMG_AUTH_CFG.ini

@@ -0,0 +1,18 @@
+; ################################
+;
+; Parameter 'IMAGE_VERSION'
+;    - Flash Tool will compare download image version with existing one in Flash.
+;
+; Parameter 'VERIFY_LENGTH'
+;    - It can be configured to any length. SignTool will do the error check while signing image
+;    - If VERIFY_LENGTH is configured as 0, the whole image will be signed.
+;
+; ################################
+
+CUSTOM_NAME = NULL
+IMAGE_VERSION = 1
+VERIFY_COUNT = 1
+VERIFY_OFFSET[0] = 0
+VERIFY_LENGTH[0] = 10240
+CHUNK_SIZE = 1048576
+CFG_VERSION = 4

+ 2 - 0
custom/k37mv1_bsp/security/image_auth/IMG_AUTH_KEY.ini

@@ -0,0 +1,2 @@
+CUSTOM_RSA_N = 0x5FFF0B70D5DE3FC5BF41CB824B4BFD14820571CE57EDD3E7C668CC570E718DB07DCC7A6CACD0E80DADC38AA33DB37816839D97980DF3E577A6E0B1169D708071E17DD259CFE538DBDA804A2FC07D795841F2F59DEE023A9919360D0A3F4647FDF5657D9FC5944C8BFA2802336BA23AFDCDE8D546E8806EB532AA7F95A01D8DD1
+CUSTOM_RSA_E = 0x10001

+ 52 - 0
custom/k37mv1_bsp_512/cust_bldr.mak

@@ -0,0 +1,52 @@
+###################################################################
+# Include Project Feautre  (cust_bldr.h)
+###################################################################
+#ifeq ("$(MTK_EMMC_SUPPORT)","yes")
+ifdef MTK_EMMC_SUPPORT
+CFG_BOOT_DEV :=BOOTDEV_SDMMC
+else
+CFG_BOOT_DEV :=BOOTDEV_NAND
+endif
+CFG_UART_LOG :=UART1
+CFG_UART_META :=UART1
+MTK_UART_USB_SWITCH:=0
+CFG_TEE_SUPPORT = 1
+CFG_TRUSTONIC_TEE_SUPPORT = 0
+CFG_MICROTRUST_TEE_SUPPORT = 1
+
+
+##### TEE >PLEASE ADD CONFIGS ABOVE THIS LINE< TEE #####
+ifeq ($(strip $(MTK_TEE_SUPPORT)),yes)
+  CFG_TEE_SUPPORT = 1
+  ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)),yes)
+    CFG_TRUSTONIC_TEE_SUPPORT = 1
+  else
+    CFG_TRUSTONIC_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(WATCHDATA_TEE_SUPPORT)),yes)
+    CFG_WATCHDATA_TEE_SUPPORT = 1
+  else
+    CFG_WATCHDATA_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)),yes)
+    CFG_MICROTRUST_TEE_SUPPORT = 1
+  else
+    CFG_MICROTRUST_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MTK_GOOGLE_TRUSTY_SUPPORT)),yes)
+    CFG_GOOGLE_TRUSTY_SUPPORT = 1
+  else
+    CFG_GOOGLE_TRUSTY_SUPPORT = 0
+  endif
+else
+  CFG_TEE_SUPPORT = 0
+  CFG_TRUSTONIC_TEE_SUPPORT = 0
+  CFG_WATCHDATA_TEE_SUPPORT = 0
+  CFG_MICROTRUST_TEE_SUPPORT = 0
+  CFG_GOOGLE_TRUSTY_SUPPORT = 0
+endif
+$(warning CFG_TEE_SUPPORT=$(CFG_TEE_SUPPORT))
+$(warning CFG_TRUSTONIC_TEE_SUPPORT=$(CFG_TRUSTONIC_TEE_SUPPORT))
+$(warning CFG_WATCHDATA_TEE_SUPPORT=$(CFG_WATCHDATA_TEE_SUPPORT))
+$(warning CFG_MICROTRUST_TEE_SUPPORT=$(CFG_MICROTRUST_TEE_SUPPORT))
+$(warning CFG_GOOGLE_TRUSTY_SUPPORT=$(CFG_GOOGLE_TRUSTY_SUPPORT))

+ 124 - 0
custom/k37mv1_bsp_512/cust_msdc.c

@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#include "cust_msdc.h"
+#include "msdc.h"
+
+
+struct msdc_cust msdc_cap[MSDC_MAX_NUM] =
+{
+    {
+        MSDC50_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_GEAR1,    /* rst pad driving               */
+        MSDC_DRVN_GEAR1,    /* ds pad driving                */
+        MSDC_DRVN_DONT_CARE,/* clock pad driving on 1.8V     */
+        MSDC_DRVN_DONT_CARE,/* command pad driving on 1.8V   */
+        MSDC_DRVN_DONT_CARE,/* data pad driving on 1.8V      */
+        8,                  /* data pins                     */
+        0,                  /* data address offset           */
+#if MSDC_USE_EMMC45_POWER
+        MSDC_HIGHSPEED /*| MSDC_DDR */| MSDC_RST_PIN_EN 
+#else
+        MSDC_HIGHSPEED //| MSDC_DDR
+#endif
+    }
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 //| MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1 ,   /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    },
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+#endif
+};
+
+
+

BIN
custom/k37mv1_bsp_512/dct/dct/codegen.dws


+ 85 - 0
custom/k37mv1_bsp_512/inc/cust_bldr.h

@@ -0,0 +1,85 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_BLDR_H
+#define CUST_BLDR_H
+
+#include "boot_device.h"
+#include "uart.h"
+
+/* cust_bldr.h is not used any more, please refer to cust_bldr.mak */
+
+#if 0
+/*=======================================================================*/
+/* Pre-Loader Features                                                   */
+/*=======================================================================*/
+#define CFG_FPGA_PLATFORM           (1)
+
+#if CFG_FPGA_PLATFORM
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#ifdef MTK_EMMC_SUPPORT
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#define CFG_BOOT_DEV                (BOOTDEV_NAND)
+#endif
+#endif
+
+#define CFG_BATTERY_DETECT          (0)
+
+#define CFG_UART_TOOL_HANDSHAKE     (1)
+#define CFG_USB_TOOL_HANDSHAKE      (1)
+#define CFG_USB_DOWNLOAD            (1)
+#define CFG_PMT_SUPPORT             (0)
+
+#define CFG_LOG_BAUDRATE            (921600)
+#define CFG_META_BAUDRATE           (115200)
+#define CFG_UART_LOG                (UART1)
+#define CFG_UART_META               (UART1)
+
+#define CFG_EMERGENCY_DL_SUPPORT    (0)
+#define CFG_EMERGENCY_DL_TIMEOUT_MS (1000 * 60 * 5) /* 5 mins */
+
+#define CFG_SWITCH_USB_UART_SUPPORT (0)
+#define CFG_SWITCH_FORCE_USB        (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+#define CFG_SWITCH_FORCE_UART       (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+
+/*=======================================================================*/
+/* Misc Options                                                          */	
+/*=======================================================================*/
+#define FEATURE_MMC_ADDR_TRANS
+#endif
+
+#endif /* CUST_BLDR_H */

+ 87 - 0
custom/k37mv1_bsp_512/inc/cust_msdc.h

@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef CUST_MSDC_H
+#define CUST_MSDC_H
+
+#include "msdc_cfg.h"
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+#define MSDC_MAX_NUM            (4)
+#else
+#define MSDC_MAX_NUM            (1)
+#endif
+
+#define MSDC_CD_PIN_EN      (1 << 0)  /* card detection pin is wired   */
+#define MSDC_WP_PIN_EN      (1 << 1)  /* write protection pin is wired */
+#define MSDC_RST_PIN_EN     (1 << 2)  /* emmc reset pin is wired       */
+#define MSDC_SDIO_IRQ       (1 << 3)  /* use internal sdio irq (bus)   */
+#define MSDC_EXT_SDIO_IRQ   (1 << 4)  /* use external sdio irq         */
+#define MSDC_REMOVABLE      (1 << 5)  /* removable slot                */
+#define MSDC_SYS_SUSPEND    (1 << 6)  /* suspended by system           */
+#define MSDC_HIGHSPEED      (1 << 7)  /* high-speed mode support       */
+#define MSDC_UHS1           (1 << 8)  /* uhs-1 mode support            */
+#define MSDC_DDR            (1 << 9)  /* ddr mode support              */
+#define MSDC_HS200          (1 << 10) /* hs200 mode support(eMMC4.5)   */
+#define MSDC_HS400          (1 << 11) /* hs200 mode support(eMMC5.0)   */
+
+#define MSDC_SMPL_RISING        (0)
+#define MSDC_SMPL_FALLING       (1)
+#define MSDC_SMPL_SEPERATE      (2)
+
+
+struct msdc_cust {
+    unsigned char  clk_src;           /* host clock source             */
+    unsigned char  cmd_edge;          /* command latch edge            */
+    unsigned char  data_edge;         /* data latch edge               */
+    unsigned char  clk_drv;           /* clock pad driving             */
+    unsigned char  cmd_drv;           /* command pad driving           */
+    unsigned char  dat_drv;           /* data pad driving              */
+    unsigned char  rst_drv;           /* reset pin pad driving         */
+    unsigned char  ds_drv;            /* ds pad driving                */
+    unsigned char  clk_18v_drv;       /* clock pad driving             */
+    unsigned char  cmd_18v_drv;       /* command pad driving on 1.8V   */
+    unsigned char  dat_18v_drv;       /* data pad driving on 1.8V      */
+    unsigned char  data_pins;         /* data pins on 1.8V             */
+    unsigned int   data_offset;       /* data address offset           */
+    unsigned int   flags;             /* hardware capability flags     */
+};
+
+extern struct msdc_cust msdc_cap[MSDC_MAX_NUM];
+
+
+
+#endif /* end of _MSDC_CUST_H_ */
+

+ 100 - 0
custom/k37mv1_bsp_512/inc/cust_nand.h

@@ -0,0 +1,100 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_NAND_H 
+#define CUST_NAND_H
+
+#include "typedefs.h"
+
+#if 0
+#define RAMDOM_READ 1<<0
+#define CACHE_READ  1<<1
+
+typedef struct
+{
+   u16 id;          //deviceid+menuid
+   u8  addr_cycle;
+   u8  iowidth;
+   u16 totalsize;   
+   u16 blocksize;
+   u16 pagesize;
+   u32 timmingsetting;
+   char devciename[14];
+   u32 advancedmode;   //
+}flashdev_info,*pflashdev_info;
+
+static const flashdev_info g_FlashTable[]={
+	//micro
+	{0xAA2C,  5,  8,  256,  128,  2048,  0x01113,  "MT29F2G08ABD",  0},
+	{0xB12C,  4,  16, 128,  128,  2048,  0x01113,  "MT29F1G16ABC",  0},
+	{0xBA2C,  5,  16, 256,  128,  2048,  0x01113,  "MT29F2G16ABD",  0},	
+	{0xAC2C,  5,  8,  512,	128,  2048,  0x01113,  "MT29F4G08ABC",	0},
+    {0xA12C,  4,  8,  128,  128,  2048,  0x01113,  "MT29F1G08ABB",	0},
+    {0xBC2C,  5,  16, 512, 128,  2048,  0x01112,  "MT29F4G16ABBDA",	0},
+	//samsung 
+	{0xBAEC,  5,  16, 256,  128,  2048,  0x01123,  "K522H1GACE",    0},
+	{0xBCEC,  5,  16, 512,  128,  2048,  0x01123,  "K524G2GACB",    RAMDOM_READ},
+	{0xDAEC,  5,  8,  256,  128,  2048,  0x33222,  "K9F2G08U0A",    RAMDOM_READ},
+	{0xF1EC,  4,  8,  128,  128,  2048,  0x01123,  "K9F1G08U0A",    RAMDOM_READ},
+	{0xAAEC,  5,  8,  256,  128,  2048,  0x01123,  "K9F2G08R0A",    0},
+    //hynix
+	{0xD3AD,  5,  8,  1024, 256,  2048,  0x44333,  "HY27UT088G2A",  0},
+	{0xA1AD,  4,  8,  128,  128,  2048,  0x01123,  "H8BCSOPJOMCP",  0},
+	{0xBCAD,  5,  16, 512,  128,  2048,  0x01123,  "H8BCSOUNOMCR",  0},
+	{0xBAAD,  5,  16, 256,  128,  2048,  0x01123,  "H8BCSOSNOMCR",  0},
+	//toshiba
+	{0x9598,  5,  16, 816,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+	{0x9498,  5,  16, 375,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+    {0xBC98,  5,  16, 512, 128,  2048,  0x02113,  "TY58NYG2S8E",	0},
+	{0xC198,  4,  16, 128,  128,  2048,  0x44333,  "TC58NWGOS8C",   0},
+	{0xBA98,  5,  16, 256,  128,  2048,  0x02113,  "TC58NYG1S8C",   0},
+	//st-micro
+	{0xBA20,  5,  16, 256,  128,  2048,  0x01123,  "ND02CGR4B2DI6", 0},
+
+	// elpida
+	{0xBC20,  5,  16, 512,  128,  2048,  0x01123,  "04GR4B2DDI6",   0},
+	{0x0000,  0,  0,  0,	0,	  0,	 0, 	   "xxxxxxxxxxxxx", 0}
+};
+#endif
+
+#define NFI_DEFAULT_ACCESS_TIMING        (0x44333)
+
+//preloader only support 1 cs
+//#define NFI_CS_NUM                  	(2)
+#define NFI_DEFAULT_CS				(0)
+
+#define USE_AHB_MODE                	(0)
+
+#endif

+ 50 - 0
custom/k37mv1_bsp_512/inc/cust_rtc.h

@@ -0,0 +1,50 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef __CUST_RTC_H__
+#define __CUST_RTC_H__
+
+/*
+ * Default values for RTC initialization
+ * Year (YEA)        : 1970 ~ 2037
+ * Month (MTH)       : 1 ~ 12
+ * Day of Month (DOM): 1 ~ 31
+ */
+#define RTC_DEFAULT_YEA		2010
+#define RTC_DEFAULT_MTH		1
+#define RTC_DEFAULT_DOM		1
+#define RTC_2SEC_REBOOT_ENABLE  1
+#define RTC_2SEC_MODE		0
+#endif /* __CUST_RTC_H__ */

+ 245 - 0
custom/k37mv1_bsp_512/inc/cust_sec_ctrl.h

@@ -0,0 +1,245 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2011. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+
+#ifndef CUST_SEC_CTRL_H
+#define CUST_SEC_CTRL_H
+
+#include "typedefs.h"
+#include "proj_cfg.h"
+#include "keypad.h"
+
+/**************************************************************************
+ * [ROM INFO]
+ **************************************************************************/
+#define PROJECT_NAME                        "CUST"
+#define PLATFORM_NAME                       "MT6752"
+
+
+/**************************************************************************
+ * [CRYPTO SEED]
+ **************************************************************************/
+#define CUSTOM_CRYPTO_SEED_SIZE             (16)
+#define CUSTOM_CRYPTO_SEED                  "1A52A367CB12C458"
+
+/**************************************************************************
+ * [SML AES KEY CONTROL]
+ **************************************************************************/
+/* It can be enabled only if SUSBDL is turned on */
+/* Please make sure SUSBDL is on before enabling this flag */
+//#define SML_AES_KEY_ANTICLONE_EN
+
+/**************************************************************************
+ * [S-USBDL]
+ **************************************************************************/
+/* S-USBDL Attribute */
+#define ATTR_SUSBDL_DISABLE                 0x00
+#define ATTR_SUSBDL_ENABLE                  0x11
+#define ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP    0x22
+/* S-USBDL Control */
+#define SEC_USBDL_CFG                       CUSTOM_SUSBDL_CFG
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG for (for both of SLA and NON-SLA mode], 32bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_SEC_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG
+//#define BYPASS_CHECK_IMAGE_0_NAME           ""
+//#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_0_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_1_NAME           ""
+//#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_1_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_2_NAME           ""
+//#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_2_LENGTH         0x0
+
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG (for both of SLA and NON-SLA mode], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG_64
+#ifdef FLASHTOOL_SEC_CFG_64
+#define BYPASS_CHECK_IMAGE_0_NAME           ""
+#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_1_NAME           ""
+#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_2_NAME           ""
+#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+#endif
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)] , 32 bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_FORBID_DL_NSLA_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG
+//#define FORBID_DL_IMAGE_0_NAME              ""
+//#define FORBID_DL_IMAGE_0_OFFSET            0x0
+//#define FORBID_DL_IMAGE_0_LENGTH            0x0
+//#define FORBID_DL_IMAGE_1_NAME              ""
+//#define FORBID_DL_IMAGE_1_OFFSET            0x0
+//#define FORBID_DL_IMAGE_1_LENGTH            0x0
+
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#ifdef FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#define FORBID_DL_IMAGE_0_NAME              ""
+#define FORBID_DL_IMAGE_0_OFFSET            0x0
+#define FORBID_DL_IMAGE_1_NAME              ""
+#define FORBID_DL_IMAGE_1_OFFSET            0x0
+#endif
+
+#define SEC_USBDL_WITHOUT_SLA_ENABLE
+
+#ifdef SEC_USBDL_WITHOUT_SLA_ENABLE
+//#define USBDL_DETECT_VIA_KEY
+/* if com port wait key is enabled, define the key*/
+#ifdef USBDL_DETECT_VIA_KEY
+#define COM_WAIT_KEY    KPD_DL_KEY3
+#endif
+//#define USBDL_DETECT_VIA_AT_COMMAND
+#endif
+
+/**************************************************************************
+ * [S-BOOT]
+ **************************************************************************/
+/* S-BOOT Attribute */
+#define ATTR_SBOOT_DISABLE                  0x00
+#define ATTR_SBOOT_ENABLE                   0x11
+#define ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP     0x22
+/* S-BOOT Control */
+#define SEC_BOOT_CFG                        CUSTOM_SBOOT_CFG
+
+/* Customized Secure Boot */
+//#define CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#ifdef CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#define SBOOT_CUST_PART1    ""
+#define SBOOT_CUST_PART2    ""
+#endif
+
+/* For Custom Partition Verification*/
+#define VERIFY_PART_CUST                   (FALSE)
+#define VERIFY_PART_CUST_NAME              ""
+
+/* 
+    RSA2048 public key for verifying mtee image
+    It should be the same as AUTH_PARAM_N in alps\mediatek\custom\mt6752_evb\trustzone\TRUSTZONE_IMG_PROTECT_CFG.ini
+*/
+#define MTEE_IMG_VFY_PUBK_SZ 256
+
+#define MTEE_IMG_VFY_PUBK 0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+/* OEM_PUBK is set as the same as MTEE public key for convenience, but they can be different */
+/* OEM_PUBK will be used to verify oemkeystore, and use oemkeystore to verify images */
+#define OEM_PUBK_SZ 256
+
+#define OEM_PUBK          0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+
+
+
+/**************************************************************************
+ * [DEFINITION CHECK]
+ **************************************************************************/
+#ifdef SML_AES_KEY_ANTICLONE_EN
+#ifndef SECRO_IMG_ANTICLONE_EN
+#error "SML_AES_KEY_ANTICLONE_EN is defined. Should also enable SECRO_IMG_ANTICLONE_EN"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_CFG "
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_BOOT_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_BOOT_CFG"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_WITHOUT_SLA_ENABLE"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_KEY
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_KEY can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#ifndef COM_WAIT_KEY
+#error "COM_WAIT_KEY is not defined!!"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_AT_COMMAND
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_AT_COMMAND can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#endif
+
+
+#endif   /* CUST_SEC_CTRL_H */

+ 52 - 0
custom/k37mv1_bsp_512/inc/cust_usb.h

@@ -0,0 +1,52 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+
+#ifndef CUST_USB_H
+#define CUST_USB_H
+
+
+/*=======================================================================*/
+/* USB Control                                                           */	
+/*=======================================================================*/
+#define USBD_MANUFACTURER               "MediaTek"
+#define USBD_PRODUCT_NAME               "MT65xx Preloader"
+#define USBD_VENDORID                   (0x0E8D)
+#define USBD_PRODUCTID                  (0x2000)
+
+#define CFG_USB_HANDSHAKE_TIMEOUT_EN    (1)
+#define CFG_USB_ENUM_TIMEOUT_EN         (1)
+
+#endif   /*_CUST_USBDL_FLOW_H*/

+ 115 - 0
custom/k37mv1_bsp_512/inc/custom_MemoryDevice.h

@@ -0,0 +1,115 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ *
+ * MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+/*****************************************************************************
+*  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) 2008
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef __CUSTOM_MEMORYDEVICE__
+#define __CUSTOM_MEMORYDEVICE__
+
+/*
+ ****************************************************************************
+ [README , VERY IMPORTANT NOTICE]
+ --------------------------------
+ After user configured this C header file, not only C compiler compile it but
+ also auto-gen tool parse user's configure setting.
+ Here are recommend configure convention to make both work fine.
+
+ 1. All configurations in this file form as #define MACRO_NAME MACRO_VALUE format.
+    Note the #define must be the first non-space character of a line
+
+ 2. To disable the optional configurable item. Please use // before #define,
+    for example: //#define MEMORY_DEVICE_TYPE
+
+ 3. Please don't use #if , #elif , #else , #endif conditional macro key word here.
+    Such usage might cause compile result conflict with auto-gen tool parsing result.
+    Auto-Gen tool will show error and stop.
+    3.1.  any conditional keyword such as #if , #ifdef , #ifndef , #elif , #else detected.
+          execpt this #ifndef __CUSTOM_MEMORYDEVICE__
+    3.2.  any duplicated MACRO_NAME parsed. For example auto-gen tool got 
+          2nd MEMORY_DEVICE_TYPE macro value.
+ ****************************************************************************
+*/
+
+/*
+ ****************************************************************************
+ Step 1: Specify memory device type and its complete part number
+         Possible memory device type: LPSDRAM (SDR, DDR)
+ ****************************************************************************
+*/
+
+#define BOARD_ID                MT6735_EVB
+
+#define CS_PART_NUMBER[0]       H9TQ64A8GTMCUR_KUM
+#define CS_PART_NUMBER[1]       KMQ7X000SA_B315
+//#define CS_PART_NUMBER[2]       H9TQ17ABJTMCUR_KUM
+//#define CS_PART_NUMBER[2]       KMR820001M_B609
+//#define CS_PART_NUMBER[3]       KMF5X0005C_B211
+//#define CS_PART_NUMBER[0]       H9TP64A8JDMCPR_KGM
+//#define CS_PART_NUMBER[4]       H9TP32A4GDDCPR_KGM
+
+#endif /* __CUSTOM_MEMORYDEVICE__ */

+ 63 - 0
custom/k37mv1_bsp_512/inc/memory.h

@@ -0,0 +1,63 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2010. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+#ifndef MT6516_MEMORY_H
+#define MT6516_MEMORY_H
+
+/**************************************************************************
+*  DEBUG CONTROL
+**************************************************************************/
+#define MEM_TEST                (1)
+
+// do not change the test size !!!!
+#define MEM_TEST_SIZE           (0x2000)
+
+/**************************************************************************
+*  DRAM SIZE 
+**************************************************************************/
+#define E1_DRAM_SIZE            (0x10000000)
+#define E2_DRAM_SIZE            (0x08000000)
+
+/**************************************************************************
+*  EXPOSED API
+**************************************************************************/
+extern u32 mt6516_get_hardware_ver (void);
+extern void mt6516_mem_init (void);
+
+#if MEM_TEST
+extern int complex_mem_test (unsigned int start, unsigned int len);
+#endif
+
+#endif

+ 30 - 0
custom/k37mv1_bsp_512/k37mv1_bsp_512.mk

@@ -0,0 +1,30 @@
+# Common
+TARGET=k37mv1_bsp_512
+MTK_PLATFORM=MT6735
+MACH_TYPE=mt6737m
+MTK_SEC_CHIP_SUPPORT=yes
+MTK_SEC_USBDL=ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP
+MTK_SEC_BOOT=ATTR_SBOOT_ENABLE
+MTK_SEC_MODEM_AUTH=no
+MTK_SEC_SECRO_AC_SUPPORT=yes
+# Platform
+MTK_MT6333_SUPPORT=no
+MTK_FAN5405_SUPPORT=no
+MTK_EMMC_SUPPORT=yes
+MTK_MT8193_SUPPORT=no
+MTK_SECURITY_SW_SUPPORT=yes
+MTK_FACTORY_LOCK_SUPPORT=no
+CUSTOM_SEC_AUTH_SUPPORT=no
+MTK_KERNEL_POWER_OFF_CHARGING=yes
+## MTK_EMMC_SUPPORT_OTP=no
+MTK_COMBO_NAND_SUPPORT=no
+MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION=no
+MTK_BQ24160_SUPPORT=no
+MTK_SEC_VIDEO_PATH_SUPPORT=no
+MTK_EFUSE_DOWNGRADE=no
+CUSTOM_CONFIG_MAX_DRAM_SIZE=0x20000000
+MTK_TEE_SUPPORT = no
+TRUSTONIC_TEE_SUPPORT = no
+MICROTRUST_TEE_SUPPORT = no
+MTK_GOOGLE_TRUSTY_SUPPORT = no
+export MTK_PLATFORM MACH_TYPE MTK_MT6333_SUPPORT MTK_FAN5405_SUPPORT MTK_EMMC_SUPPORT MTK_8193_SUPPORT MTK_SECURITY_SW_SUPPORT MTK_SEC_CHIP_SUPPORT MTK_SEC_USBDL MTK_SEC_BOOT MTK_SEC_MODEM_AUTH MTK_SEC_SECRO_AC_SUPPORT CUSTOM_SEC_AUTH_SUPPORT MTK_KERNEL_POWER_OFF_CHARGING MTK_EMMC_SUPPORT_OTP MTK_COMBO_NAND_SUPPORT MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION MTK_BQ24160_SUPPORT MTK_SEC_VIDEO_PATH_SUPPORT MTK_FACTORY_LOCK_SUPPORT MTK_EFUSE_DOWNGRADE CUSTOM_CONFIG_MAX_DRAM_SIZE MTK_TEE_SUPPORT TRUSTONIC_TEE_SUPPORT MICROTRUST_TEE_SUPPORT MTK_GOOGLE_TRUSTY_SUPPORT

+ 64 - 0
custom/k37mv1_bsp_512/makefile

@@ -0,0 +1,64 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+
+###################################################################
+# flag
+###################################################################
+
+MOD_SRC  =
+MOD_OBJ  = $(PRELOADER_OUT)/obj
+
+###################################################################
+# source files
+# - add your file here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+###################################################################
+
+# these code are not generated by tool
+MOD_SRC  := \
+cust_msdc.c
+#cust_gpio.c
+
+
+# these code are generated by tool
+ifneq ($(CFG_FPGA_PLATFORM),1)
+MOD_SRC_PLUS := \
+#custom_emi.c
+endif
+
+###################################################################
+# target
+###################################################################
+
+include $(COMMON_FILE_MK)

+ 6 - 0
custom/k37mv1_bsp_512/security/chip_config/s/cfg/CHIP_CONFIG.ini

@@ -0,0 +1,6 @@
+PLATFORM=MT6582
+SECURE_SUPPORT=TRUE
+SECURE_VERSION=1
+SECURE_CUSTOM_NAME=
+SECURE_ANTICLONE_BY_CHIP=FALSE
+SECURE_ANTICLONE_BY_KEY=FALSE

+ 1 - 0
custom/k37mv1_bsp_512/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini

@@ -0,0 +1 @@
+SECURE_JTAG_ENABLE=TRUE

+ 36 - 0
custom/k37mv1_bsp_512/security/chip_config/s/gfh/GFH_CONFIG.ini

@@ -0,0 +1,36 @@
+[CHIP]
+version = "6752"
+[GFH_FILE_INFO]
+version = "1"
+start_addr = "0x00201000"
+flash_dev  = "emmc"
+sig_type = "SINGLE_AND_PHASH"
+max_size = "0x00040000"
+sig_len = "292"
+attr = "0"
+[GFH_BL_INFO]
+version = "1"
+attr = "0x00000001"
+[GFH_BROM_CFG]
+version = "3"
+usbdl_auto_detect_dis = "1"
+usbdl_by_auto_detect_timeout_en = "0"
+usbdl_by_auto_detect_timeout_ms = "0x00000000"
+usbdl_by_kcol0_timeout_en = "1"
+usbdl_by_kcol0_timeout_ms = "0x00001388"
+usbdl_by_flag_timeout_en = "1"
+usbdl_by_flag_timeout_ms = "0"
+[GFH_BL_SEC_KEY]
+version = "1"
+[GFH_ANTI_CLONE]
+version = "1"
+ac_b2k = "0"
+ac_b2c = "0"
+ac_offset = "0x00000010"
+ac_len = "0x00000080"
+[GFH_BROM_SEC_CFG]
+version = "1"
+customer_name = ""
+jtag_en = "0"
+debug_en = "0"
+

+ 23 - 0
custom/k37mv1_bsp_512/security/chip_config/s/key/CHIP_TEST_KEY.ini

@@ -0,0 +1,23 @@
+; #################################
+; Code Signature Key
+; #################################
+
+[Code Sig Key]
+; Hex format
+private_key_d = "00D57BCF5934CE1A035F4598B42DAD4BC8AE7577FB6D81FA232317E8EE7C4FBB33772EFE378DF7DFE5369BB9ACAB1008FA1CFBA737890012A883B372B15932335B689B46A32F1B383B75F0DE2E1B5B0B9F4E1C3E780C2AB0CD3671EB4E34F30BB4C630A60D168CA124810D0F91A1ACC8EFDCEE52D4762BB35813BCC93878E1D15B750561B78006B4C13A8F76B5F10C941E5776C21192357A9B9D7E02C0FC812D2B154671863DE97CE3ED07F90624A0CADD04079E145168A3558A64786820192F5B638354DA69520288B976296961C337FB18A90120F2B6B365C0E1A57CE4119AE8BC718E08FDA33F1F42AA1C91AED090EC6B5656A66C246F89FDE5FD41A76671"
+private_key_n = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+[Install Sig Key]
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+; #################################
+; Anticlone key
+; #################################
+
+[Anticlone key]
+; Customer's anticlone key in BB chip
+; Hex format
+anticlone_key = "0x11111111, 0x22222222, 0x33333333, 0x44444444"

+ 18 - 0
custom/k37mv1_bsp_512/security/image_auth/IMG_AUTH_CFG.ini

@@ -0,0 +1,18 @@
+; ################################
+;
+; Parameter 'IMAGE_VERSION'
+;    - Flash Tool will compare download image version with existing one in Flash.
+;
+; Parameter 'VERIFY_LENGTH'
+;    - It can be configured to any length. SignTool will do the error check while signing image
+;    - If VERIFY_LENGTH is configured as 0, the whole image will be signed.
+;
+; ################################
+
+CUSTOM_NAME = NULL
+IMAGE_VERSION = 1
+VERIFY_COUNT = 1
+VERIFY_OFFSET[0] = 0
+VERIFY_LENGTH[0] = 10240
+CHUNK_SIZE = 1048576
+CFG_VERSION = 4

+ 2 - 0
custom/k37mv1_bsp_512/security/image_auth/IMG_AUTH_KEY.ini

@@ -0,0 +1,2 @@
+CUSTOM_RSA_N = 0x5FFF0B70D5DE3FC5BF41CB824B4BFD14820571CE57EDD3E7C668CC570E718DB07DCC7A6CACD0E80DADC38AA33DB37816839D97980DF3E577A6E0B1169D708071E17DD259CFE538DBDA804A2FC07D795841F2F59DEE023A9919360D0A3F4647FDF5657D9FC5944C8BFA2802336BA23AFDCDE8D546E8806EB532AA7F95A01D8DD1
+CUSTOM_RSA_E = 0x10001

+ 51 - 0
custom/k37tv1_64_bsp/cust_bldr.mak

@@ -0,0 +1,51 @@
+###################################################################
+# Include Project Feautre  (cust_bldr.h)
+###################################################################
+#ifeq ("$(MTK_EMMC_SUPPORT)","yes")
+ifdef MTK_EMMC_SUPPORT
+CFG_BOOT_DEV :=BOOTDEV_SDMMC
+else
+CFG_BOOT_DEV :=BOOTDEV_NAND
+endif
+CFG_UART_LOG :=UART1
+CFG_UART_META :=UART1
+CFG_TEE_SUPPORT = 1
+CFG_TRUSTONIC_TEE_SUPPORT = 0
+CFG_MICROTRUST_TEE_SUPPORT = 1
+
+
+##### TEE >PLEASE ADD CONFIGS ABOVE THIS LINE< TEE #####
+ifeq ($(strip $(MTK_TEE_SUPPORT)),yes)
+  CFG_TEE_SUPPORT = 1
+  ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)),yes)
+    CFG_TRUSTONIC_TEE_SUPPORT = 1
+  else
+    CFG_TRUSTONIC_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(WATCHDATA_TEE_SUPPORT)),yes)
+    CFG_WATCHDATA_TEE_SUPPORT = 1
+  else
+    CFG_WATCHDATA_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)),yes)
+    CFG_MICROTRUST_TEE_SUPPORT = 1
+  else
+    CFG_MICROTRUST_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MTK_GOOGLE_TRUSTY_SUPPORT)),yes)
+    CFG_GOOGLE_TRUSTY_SUPPORT = 1
+  else
+    CFG_GOOGLE_TRUSTY_SUPPORT = 0
+  endif
+else
+  CFG_TEE_SUPPORT = 0
+  CFG_TRUSTONIC_TEE_SUPPORT = 0
+  CFG_WATCHDATA_TEE_SUPPORT = 0
+  CFG_MICROTRUST_TEE_SUPPORT = 0
+  CFG_GOOGLE_TRUSTY_SUPPORT = 0
+endif
+$(warning CFG_TEE_SUPPORT=$(CFG_TEE_SUPPORT))
+$(warning CFG_TRUSTONIC_TEE_SUPPORT=$(CFG_TRUSTONIC_TEE_SUPPORT))
+$(warning CFG_WATCHDATA_TEE_SUPPORT=$(CFG_WATCHDATA_TEE_SUPPORT))
+$(warning CFG_MICROTRUST_TEE_SUPPORT=$(CFG_MICROTRUST_TEE_SUPPORT))
+$(warning CFG_GOOGLE_TRUSTY_SUPPORT=$(CFG_GOOGLE_TRUSTY_SUPPORT))

+ 124 - 0
custom/k37tv1_64_bsp/cust_msdc.c

@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#include "cust_msdc.h"
+#include "msdc.h"
+
+
+struct msdc_cust msdc_cap[MSDC_MAX_NUM] =
+{
+    {
+        MSDC50_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR2,    /* clock pad driving             */
+        MSDC_DRVN_GEAR2,    /* command pad driving           */
+        MSDC_DRVN_GEAR2,    /* data pad driving              */
+        MSDC_DRVN_GEAR2,    /* rst pad driving               */
+        MSDC_DRVN_GEAR2,    /* ds pad driving                */
+        MSDC_DRVN_DONT_CARE,/* clock pad driving on 1.8V     */
+        MSDC_DRVN_DONT_CARE,/* command pad driving on 1.8V   */
+        MSDC_DRVN_DONT_CARE,/* data pad driving on 1.8V      */
+        8,                  /* data pins                     */
+        0,                  /* data address offset           */
+#if MSDC_USE_EMMC45_POWER
+        MSDC_HIGHSPEED | MSDC_DDR | MSDC_RST_PIN_EN 
+#else
+        MSDC_HIGHSPEED | MSDC_DDR
+#endif
+    }
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 //| MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1 ,   /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    },
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+#endif
+};
+
+
+

BIN
custom/k37tv1_64_bsp/dct/dct/codegen.dws


+ 85 - 0
custom/k37tv1_64_bsp/inc/cust_bldr.h

@@ -0,0 +1,85 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_BLDR_H
+#define CUST_BLDR_H
+
+#include "boot_device.h"
+#include "uart.h"
+
+/* cust_bldr.h is not used any more, please refer to cust_bldr.mak */
+
+#if 0
+/*=======================================================================*/
+/* Pre-Loader Features                                                   */
+/*=======================================================================*/
+#define CFG_FPGA_PLATFORM           (1)
+
+#if CFG_FPGA_PLATFORM
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#ifdef MTK_EMMC_SUPPORT
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#define CFG_BOOT_DEV                (BOOTDEV_NAND)
+#endif
+#endif
+
+#define CFG_BATTERY_DETECT          (0)
+
+#define CFG_UART_TOOL_HANDSHAKE     (1)
+#define CFG_USB_TOOL_HANDSHAKE      (1)
+#define CFG_USB_DOWNLOAD            (1)
+#define CFG_PMT_SUPPORT             (0)
+
+#define CFG_LOG_BAUDRATE            (921600)
+#define CFG_META_BAUDRATE           (115200)
+#define CFG_UART_LOG                (UART1)
+#define CFG_UART_META               (UART1)
+
+#define CFG_EMERGENCY_DL_SUPPORT    (0)
+#define CFG_EMERGENCY_DL_TIMEOUT_MS (1000 * 60 * 5) /* 5 mins */
+
+#define CFG_SWITCH_USB_UART_SUPPORT (0)
+#define CFG_SWITCH_FORCE_USB        (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+#define CFG_SWITCH_FORCE_UART       (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+
+/*=======================================================================*/
+/* Misc Options                                                          */	
+/*=======================================================================*/
+#define FEATURE_MMC_ADDR_TRANS
+#endif
+
+#endif /* CUST_BLDR_H */

+ 87 - 0
custom/k37tv1_64_bsp/inc/cust_msdc.h

@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef CUST_MSDC_H
+#define CUST_MSDC_H
+
+#include "msdc_cfg.h"
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+#define MSDC_MAX_NUM            (4)
+#else
+#define MSDC_MAX_NUM            (1)
+#endif
+
+#define MSDC_CD_PIN_EN      (1 << 0)  /* card detection pin is wired   */
+#define MSDC_WP_PIN_EN      (1 << 1)  /* write protection pin is wired */
+#define MSDC_RST_PIN_EN     (1 << 2)  /* emmc reset pin is wired       */
+#define MSDC_SDIO_IRQ       (1 << 3)  /* use internal sdio irq (bus)   */
+#define MSDC_EXT_SDIO_IRQ   (1 << 4)  /* use external sdio irq         */
+#define MSDC_REMOVABLE      (1 << 5)  /* removable slot                */
+#define MSDC_SYS_SUSPEND    (1 << 6)  /* suspended by system           */
+#define MSDC_HIGHSPEED      (1 << 7)  /* high-speed mode support       */
+#define MSDC_UHS1           (1 << 8)  /* uhs-1 mode support            */
+#define MSDC_DDR            (1 << 9)  /* ddr mode support              */
+#define MSDC_HS200          (1 << 10) /* hs200 mode support(eMMC4.5)   */
+#define MSDC_HS400          (1 << 11) /* hs200 mode support(eMMC5.0)   */
+
+#define MSDC_SMPL_RISING        (0)
+#define MSDC_SMPL_FALLING       (1)
+#define MSDC_SMPL_SEPERATE      (2)
+
+
+struct msdc_cust {
+    unsigned char  clk_src;           /* host clock source             */
+    unsigned char  cmd_edge;          /* command latch edge            */
+    unsigned char  data_edge;         /* data latch edge               */
+    unsigned char  clk_drv;           /* clock pad driving             */
+    unsigned char  cmd_drv;           /* command pad driving           */
+    unsigned char  dat_drv;           /* data pad driving              */
+    unsigned char  rst_drv;           /* reset pin pad driving         */
+    unsigned char  ds_drv;            /* ds pad driving                */
+    unsigned char  clk_18v_drv;       /* clock pad driving             */
+    unsigned char  cmd_18v_drv;       /* command pad driving on 1.8V   */
+    unsigned char  dat_18v_drv;       /* data pad driving on 1.8V      */
+    unsigned char  data_pins;         /* data pins on 1.8V             */
+    unsigned int   data_offset;       /* data address offset           */
+    unsigned int   flags;             /* hardware capability flags     */
+};
+
+extern struct msdc_cust msdc_cap[MSDC_MAX_NUM];
+
+
+
+#endif /* end of _MSDC_CUST_H_ */
+

+ 100 - 0
custom/k37tv1_64_bsp/inc/cust_nand.h

@@ -0,0 +1,100 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_NAND_H 
+#define CUST_NAND_H
+
+#include "typedefs.h"
+
+#if 0
+#define RAMDOM_READ 1<<0
+#define CACHE_READ  1<<1
+
+typedef struct
+{
+   u16 id;          //deviceid+menuid
+   u8  addr_cycle;
+   u8  iowidth;
+   u16 totalsize;   
+   u16 blocksize;
+   u16 pagesize;
+   u32 timmingsetting;
+   char devciename[14];
+   u32 advancedmode;   //
+}flashdev_info,*pflashdev_info;
+
+static const flashdev_info g_FlashTable[]={
+	//micro
+	{0xAA2C,  5,  8,  256,  128,  2048,  0x01113,  "MT29F2G08ABD",  0},
+	{0xB12C,  4,  16, 128,  128,  2048,  0x01113,  "MT29F1G16ABC",  0},
+	{0xBA2C,  5,  16, 256,  128,  2048,  0x01113,  "MT29F2G16ABD",  0},	
+	{0xAC2C,  5,  8,  512,	128,  2048,  0x01113,  "MT29F4G08ABC",	0},
+    {0xA12C,  4,  8,  128,  128,  2048,  0x01113,  "MT29F1G08ABB",	0},
+    {0xBC2C,  5,  16, 512, 128,  2048,  0x01112,  "MT29F4G16ABBDA",	0},
+	//samsung 
+	{0xBAEC,  5,  16, 256,  128,  2048,  0x01123,  "K522H1GACE",    0},
+	{0xBCEC,  5,  16, 512,  128,  2048,  0x01123,  "K524G2GACB",    RAMDOM_READ},
+	{0xDAEC,  5,  8,  256,  128,  2048,  0x33222,  "K9F2G08U0A",    RAMDOM_READ},
+	{0xF1EC,  4,  8,  128,  128,  2048,  0x01123,  "K9F1G08U0A",    RAMDOM_READ},
+	{0xAAEC,  5,  8,  256,  128,  2048,  0x01123,  "K9F2G08R0A",    0},
+    //hynix
+	{0xD3AD,  5,  8,  1024, 256,  2048,  0x44333,  "HY27UT088G2A",  0},
+	{0xA1AD,  4,  8,  128,  128,  2048,  0x01123,  "H8BCSOPJOMCP",  0},
+	{0xBCAD,  5,  16, 512,  128,  2048,  0x01123,  "H8BCSOUNOMCR",  0},
+	{0xBAAD,  5,  16, 256,  128,  2048,  0x01123,  "H8BCSOSNOMCR",  0},
+	//toshiba
+	{0x9598,  5,  16, 816,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+	{0x9498,  5,  16, 375,  128,  2048,  0x00113,  "TY9C000000CMG", 0},
+    {0xBC98,  5,  16, 512, 128,  2048,  0x02113,  "TY58NYG2S8E",	0},
+	{0xC198,  4,  16, 128,  128,  2048,  0x44333,  "TC58NWGOS8C",   0},
+	{0xBA98,  5,  16, 256,  128,  2048,  0x02113,  "TC58NYG1S8C",   0},
+	//st-micro
+	{0xBA20,  5,  16, 256,  128,  2048,  0x01123,  "ND02CGR4B2DI6", 0},
+
+	// elpida
+	{0xBC20,  5,  16, 512,  128,  2048,  0x01123,  "04GR4B2DDI6",   0},
+	{0x0000,  0,  0,  0,	0,	  0,	 0, 	   "xxxxxxxxxxxxx", 0}
+};
+#endif
+
+#define NFI_DEFAULT_ACCESS_TIMING        (0x44333)
+
+//preloader only support 1 cs
+//#define NFI_CS_NUM                  	(2)
+#define NFI_DEFAULT_CS				(0)
+
+#define USE_AHB_MODE                	(0)
+
+#endif

+ 50 - 0
custom/k37tv1_64_bsp/inc/cust_rtc.h

@@ -0,0 +1,50 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef __CUST_RTC_H__
+#define __CUST_RTC_H__
+
+/*
+ * Default values for RTC initialization
+ * Year (YEA)        : 1970 ~ 2037
+ * Month (MTH)       : 1 ~ 12
+ * Day of Month (DOM): 1 ~ 31
+ */
+#define RTC_DEFAULT_YEA		2010
+#define RTC_DEFAULT_MTH		1
+#define RTC_DEFAULT_DOM		1
+#define RTC_2SEC_REBOOT_ENABLE  1
+#define RTC_2SEC_MODE		0
+#endif /* __CUST_RTC_H__ */

+ 241 - 0
custom/k37tv1_64_bsp/inc/cust_sec_ctrl.h

@@ -0,0 +1,241 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2011. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+
+#ifndef CUST_SEC_CTRL_H
+#define CUST_SEC_CTRL_H
+
+#include "typedefs.h"
+#include "proj_cfg.h"
+#include "keypad.h"
+
+/**************************************************************************
+ * [ROM INFO]
+ **************************************************************************/
+#define PROJECT_NAME                        "CUST"
+#define PLATFORM_NAME                       "MT6752"
+
+
+/**************************************************************************
+ * [CRYPTO SEED]
+ **************************************************************************/
+#define CUSTOM_CRYPTO_SEED_SIZE             (16)
+#define CUSTOM_CRYPTO_SEED                  "1A52A367CB12C458"
+
+/**************************************************************************
+ * [SML AES KEY CONTROL]
+ **************************************************************************/
+/* It can be enabled only if SUSBDL is turned on */
+/* Please make sure SUSBDL is on before enabling this flag */
+//#define SML_AES_KEY_ANTICLONE_EN
+
+/**************************************************************************
+ * [S-USBDL]
+ **************************************************************************/
+/* S-USBDL Attribute */
+#define ATTR_SUSBDL_DISABLE                 0x00
+#define ATTR_SUSBDL_ENABLE                  0x11
+#define ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP    0x22
+/* S-USBDL Control */
+#define SEC_USBDL_CFG                       CUSTOM_SUSBDL_CFG
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG for (for both of SLA and NON-SLA mode], 32bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_SEC_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG
+//#define BYPASS_CHECK_IMAGE_0_NAME           ""
+//#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_0_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_1_NAME           ""
+//#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_1_LENGTH         0x0
+//#define BYPASS_CHECK_IMAGE_2_NAME           ""
+//#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+//#define BYPASS_CHECK_IMAGE_2_LENGTH         0x0
+
+/**************************************************************************
+ * [FLASHTOOL SECURE CONFIG (for both of SLA and NON-SLA mode], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_SEC_CFG_64
+#ifdef FLASHTOOL_SEC_CFG_64
+#define BYPASS_CHECK_IMAGE_0_NAME           ""
+#define BYPASS_CHECK_IMAGE_0_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_1_NAME           ""
+#define BYPASS_CHECK_IMAGE_1_OFFSET         0x0
+#define BYPASS_CHECK_IMAGE_2_NAME           ""
+#define BYPASS_CHECK_IMAGE_2_OFFSET         0x0
+#endif
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)] , 32 bits
+ * It's not recommended to use 32 bits (v3) mode now. Please use FLASHTOOL_FORBID_DL_NSLA_CFG_64 instead
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG
+//#define FORBID_DL_IMAGE_0_NAME              ""
+//#define FORBID_DL_IMAGE_0_OFFSET            0x0
+//#define FORBID_DL_IMAGE_0_LENGTH            0x0
+//#define FORBID_DL_IMAGE_1_NAME              ""
+//#define FORBID_DL_IMAGE_1_OFFSET            0x0
+//#define FORBID_DL_IMAGE_1_LENGTH            0x0
+
+/**************************************************************************
+ * [FLASHTOOL FORBIT DOWNLOAD CONFIG (for NSLA mode only)], 64 bits for v4 sign format
+ **************************************************************************/
+//#define FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#ifdef FLASHTOOL_FORBID_DL_NSLA_CFG_64
+#define FORBID_DL_IMAGE_0_NAME              ""
+#define FORBID_DL_IMAGE_0_OFFSET            0x0
+#define FORBID_DL_IMAGE_1_NAME              ""
+#define FORBID_DL_IMAGE_1_OFFSET            0x0
+#endif
+
+#define SEC_USBDL_WITHOUT_SLA_ENABLE
+
+#ifdef SEC_USBDL_WITHOUT_SLA_ENABLE
+//#define USBDL_DETECT_VIA_KEY
+/* if com port wait key is enabled, define the key*/
+#ifdef USBDL_DETECT_VIA_KEY
+#define COM_WAIT_KEY    KPD_DL_KEY3
+#endif
+//#define USBDL_DETECT_VIA_AT_COMMAND
+#endif
+
+/**************************************************************************
+ * [S-BOOT]
+ **************************************************************************/
+/* S-BOOT Attribute */
+#define ATTR_SBOOT_DISABLE                  0x00
+#define ATTR_SBOOT_ENABLE                   0x11
+#define ATTR_SBOOT_ONLY_ENABLE_ON_SCHIP     0x22
+/* S-BOOT Control */
+#define SEC_BOOT_CFG                        CUSTOM_SBOOT_CFG
+
+/* Customized Secure Boot */
+//#define CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#ifdef CUSTOMIZED_SECURE_PARTITION_SUPPORT
+#define SBOOT_CUST_PART1    ""
+#define SBOOT_CUST_PART2    ""
+#endif
+
+/* For Custom Partition Verification*/
+#define VERIFY_PART_CUST                   (FALSE)
+#define VERIFY_PART_CUST_NAME              ""
+
+/* 
+    RSA2048 public key for verifying mtee image
+    It should be the same as AUTH_PARAM_N in alps\mediatek\custom\mt6752_evb\trustzone\TRUSTZONE_IMG_PROTECT_CFG.ini
+*/
+#define MTEE_IMG_VFY_PUBK_SZ 256
+
+#define MTEE_IMG_VFY_PUBK 0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+
+/* OEM_PUBK is set as the same as MTEE public key for convenience, but they can be different */
+/* OEM_PUBK will be used to verify oemkeystore, and use oemkeystore to verify images */
+#define OEM_PUBK_SZ 256
+
+#define OEM_PUBK          0xDA, 0xCD, 0x8B, 0x5F, 0xDA, 0x8A, 0x76, 0x6F, 0xB7, 0xBC, 0xAA, 0x43, 0xF0, 0xB1, 0x69, 0x15, \
+                          0xCE, 0x7B, 0x47, 0x71, 0x4F, 0x13, 0x95, 0xFD, 0xEB, 0xCF, 0x12, 0xA2, 0xD4, 0x11, 0x55, 0xB0, \
+                          0xFB, 0x58, 0x7A, 0x51, 0xFE, 0xCC, 0xCB, 0x4D, 0xDA, 0x1C, 0x8E, 0x5E, 0xB9, 0xEB, 0x69, 0xB8, \
+                          0x6D, 0xAF, 0x2C, 0x62, 0x0F, 0x6C, 0x27, 0x35, 0x21, 0x5A, 0x5F, 0x22, 0xC0, 0xB6, 0xCE, 0x37, \
+                          0x7A, 0xA0, 0xD0, 0x7E, 0xB3, 0x8E, 0xD3, 0x40, 0xB5, 0x62, 0x9F, 0xC2, 0x89, 0x04, 0x94, 0xB0, \
+                          0x78, 0xA6, 0x3D, 0x6D, 0x07, 0xFD, 0xEA, 0xCD, 0xBE, 0x3E, 0x7F, 0x27, 0xFD, 0xE4, 0xB1, 0x43, \
+                          0xF4, 0x9D, 0xB4, 0x97, 0x14, 0x37, 0xE6, 0xD0, 0x0D, 0x9E, 0x18, 0xB5, 0x6F, 0x02, 0xDA, 0xBE, \
+                          0xB0, 0x00, 0x0B, 0x6E, 0x79, 0x51, 0x6D, 0x0C, 0x80, 0x74, 0xB5, 0xA4, 0x25, 0x69, 0xFD, 0x0D, \
+                          0x91, 0x96, 0x65, 0x5D, 0x2A, 0x40, 0x30, 0xD4, 0x2D, 0xFE, 0x05, 0xE9, 0xF6, 0x48, 0x83, 0xE6, \
+                          0xD5, 0xF7, 0x9A, 0x5B, 0xFA, 0x3E, 0x70, 0x14, 0xC9, 0xA6, 0x28, 0x53, 0xDC, 0x1F, 0x21, 0xD5, \
+                          0xD6, 0x26, 0xF4, 0xD0, 0x84, 0x6D, 0xB1, 0x64, 0x52, 0x18, 0x7D, 0xD7, 0x76, 0xE8, 0x88, 0x6B, \
+                          0x48, 0xC2, 0x10, 0xC9, 0xE2, 0x08, 0x05, 0x9E, 0x7C, 0xAF, 0xC9, 0x97, 0xFD, 0x2C, 0xA2, 0x10, \
+                          0x77, 0x5C, 0x1A, 0x5D, 0x9A, 0xA2, 0x61, 0x25, 0x2F, 0xB9, 0x75, 0x26, 0x8D, 0x97, 0x0C, 0x62, \
+                          0x73, 0x38, 0x71, 0xD5, 0x78, 0x14, 0x09, 0x8A, 0x45, 0x3D, 0xF9, 0x2B, 0xC6, 0xCA, 0x19, 0x02, \
+                          0x5C, 0xD9, 0xD4, 0x30, 0xF0, 0x2E, 0xE4, 0x6F, 0x80, 0xDE, 0x6C, 0x63, 0xEA, 0x80, 0x2B, 0xEF, \
+                          0x90, 0x67, 0x3A, 0xAC, 0x4C, 0x66, 0x67, 0xF2, 0x88, 0x3F, 0xB4, 0x50, 0x1F, 0xA7, 0x74, 0x55
+/**************************************************************************
+ * [DEFINITION CHECK]
+ **************************************************************************/
+#ifdef SML_AES_KEY_ANTICLONE_EN
+#ifndef SECRO_IMG_ANTICLONE_EN
+#error "SML_AES_KEY_ANTICLONE_EN is defined. Should also enable SECRO_IMG_ANTICLONE_EN"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_CFG "
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_BOOT_CFG
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_BOOT_CFG"
+#endif
+#endif
+
+#if MTK_SECURITY_SW_SUPPORT
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "MTK_SECURITY_SW_SUPPORT is NOT disabled. Should define SEC_USBDL_WITHOUT_SLA_ENABLE"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_KEY
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_KEY can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#ifndef COM_WAIT_KEY
+#error "COM_WAIT_KEY is not defined!!"
+#endif
+#endif
+
+#ifdef USBDL_DETECT_VIA_AT_COMMAND
+#ifndef SEC_USBDL_WITHOUT_SLA_ENABLE
+#error "USBDL_DETECT_VIA_AT_COMMAND can only be enabled when SEC_USBDL_WITHOUT_SLA_ENABLE is enabled"
+#endif
+#endif
+
+
+#endif   /* CUST_SEC_CTRL_H */

+ 52 - 0
custom/k37tv1_64_bsp/inc/cust_usb.h

@@ -0,0 +1,52 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+
+#ifndef CUST_USB_H
+#define CUST_USB_H
+
+
+/*=======================================================================*/
+/* USB Control                                                           */	
+/*=======================================================================*/
+#define USBD_MANUFACTURER               "MediaTek"
+#define USBD_PRODUCT_NAME               "MT65xx Preloader"
+#define USBD_VENDORID                   (0x0E8D)
+#define USBD_PRODUCTID                  (0x2000)
+
+#define CFG_USB_HANDSHAKE_TIMEOUT_EN    (1)
+#define CFG_USB_ENUM_TIMEOUT_EN         (1)
+
+#endif   /*_CUST_USBDL_FLOW_H*/

+ 111 - 0
custom/k37tv1_64_bsp/inc/custom_MemoryDevice.h

@@ -0,0 +1,111 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ *
+ * MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+/*****************************************************************************
+*  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) 2008
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef __CUSTOM_MEMORYDEVICE__
+#define __CUSTOM_MEMORYDEVICE__
+
+/*
+ ****************************************************************************
+ [README , VERY IMPORTANT NOTICE]
+ --------------------------------
+ After user configured this C header file, not only C compiler compile it but
+ also auto-gen tool parse user's configure setting.
+ Here are recommend configure convention to make both work fine.
+
+ 1. All configurations in this file form as #define MACRO_NAME MACRO_VALUE format.
+    Note the #define must be the first non-space character of a line
+
+ 2. To disable the optional configurable item. Please use // before #define,
+    for example: //#define MEMORY_DEVICE_TYPE
+
+ 3. Please don't use #if , #elif , #else , #endif conditional macro key word here.
+    Such usage might cause compile result conflict with auto-gen tool parsing result.
+    Auto-Gen tool will show error and stop.
+    3.1.  any conditional keyword such as #if , #ifdef , #ifndef , #elif , #else detected.
+          execpt this #ifndef __CUSTOM_MEMORYDEVICE__
+    3.2.  any duplicated MACRO_NAME parsed. For example auto-gen tool got 
+          2nd MEMORY_DEVICE_TYPE macro value.
+ ****************************************************************************
+*/
+
+/*
+ ****************************************************************************
+ Step 1: Specify memory device type and its complete part number
+         Possible memory device type: LPSDRAM (SDR, DDR)
+ ****************************************************************************
+*/
+
+#define BOARD_ID                MT6735_EVB
+
+#define CS_PART_NUMBER[0]       H9TQ64A8GTMCUR_KUM
+#define CS_PART_NUMBER[1]       H9TQ17ABJTMCUR_KUM
+//#define CS_PART_NUMBER[1]       KMQ8X000SA_B414
+
+#endif /* __CUSTOM_MEMORYDEVICE__ */

+ 63 - 0
custom/k37tv1_64_bsp/inc/memory.h

@@ -0,0 +1,63 @@
+/* Copyright Statement:
+*
+* This software/firmware and related documentation ("MediaTek Software") are
+* protected under relevant copyright laws. The information contained herein
+* is confidential and proprietary to MediaTek Inc. and/or its licensors.
+* Without the prior written permission of MediaTek inc. and/or its licensors,
+* any reproduction, modification, use or disclosure of MediaTek Software,
+* and information contained herein, in whole or in part, shall be strictly prohibited.
+*/
+/* MediaTek Inc. (C) 2010. All rights reserved.
+*
+* BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+* THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+* CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+* SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+* STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* The following software/firmware and/or related documentation ("MediaTek Software")
+* have been modified by MediaTek Inc. All revisions are subject to any receiver's
+* applicable license agreements with MediaTek Inc.
+*/
+
+#ifndef MT6516_MEMORY_H
+#define MT6516_MEMORY_H
+
+/**************************************************************************
+*  DEBUG CONTROL
+**************************************************************************/
+#define MEM_TEST                (1)
+
+// do not change the test size !!!!
+#define MEM_TEST_SIZE           (0x2000)
+
+/**************************************************************************
+*  DRAM SIZE 
+**************************************************************************/
+#define E1_DRAM_SIZE            (0x10000000)
+#define E2_DRAM_SIZE            (0x08000000)
+
+/**************************************************************************
+*  EXPOSED API
+**************************************************************************/
+extern u32 mt6516_get_hardware_ver (void);
+extern void mt6516_mem_init (void);
+
+#if MEM_TEST
+extern int complex_mem_test (unsigned int start, unsigned int len);
+#endif
+
+#endif

+ 29 - 0
custom/k37tv1_64_bsp/k37tv1_64_bsp.mk

@@ -0,0 +1,29 @@
+# Common
+TARGET=k37tv1_64_bsp
+MTK_PLATFORM=MT6735
+MACH_TYPE=mt6737t
+MTK_SEC_CHIP_SUPPORT=yes
+MTK_SEC_USBDL=ATTR_SUSBDL_ONLY_ENABLE_ON_SCHIP
+MTK_SEC_BOOT=ATTR_SBOOT_ENABLE
+MTK_SEC_MODEM_AUTH=no
+MTK_SEC_SECRO_AC_SUPPORT=yes
+# Platform
+MTK_MT6333_SUPPORT=no
+MTK_FAN5405_SUPPORT=no
+MTK_EMMC_SUPPORT=yes
+MTK_MT8193_SUPPORT=no
+MTK_SECURITY_SW_SUPPORT=yes
+MTK_FACTORY_LOCK_SUPPORT=no
+CUSTOM_SEC_AUTH_SUPPORT=no
+MTK_KERNEL_POWER_OFF_CHARGING=yes
+MTK_EMMC_SUPPORT_OTP=no
+MTK_COMBO_NAND_SUPPORT=no
+MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION=no
+MTK_BQ24160_SUPPORT=no
+MTK_SEC_VIDEO_PATH_SUPPORT=no
+CUSTOM_CONFIG_MAX_DRAM_SIZE=0x800000000
+MTK_TEE_SUPPORT = no
+TRUSTONIC_TEE_SUPPORT = no
+MICROTRUST_TEE_SUPPORT = no
+MTK_GOOGLE_TRUSTY_SUPPORT = no
+export MTK_PLATFORM MACH_TYPE MTK_MT6333_SUPPORT MTK_FAN5405_SUPPORT MTK_EMMC_SUPPORT MTK_8193_SUPPORT MTK_SECURITY_SW_SUPPORT MTK_SEC_CHIP_SUPPORT MTK_SEC_USBDL MTK_SEC_BOOT MTK_SEC_MODEM_AUTH MTK_SEC_SECRO_AC_SUPPORT CUSTOM_SEC_AUTH_SUPPORT MTK_KERNEL_POWER_OFF_CHARGING MTK_EMMC_SUPPORT_OTP MTK_COMBO_NAND_SUPPORT MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION MTK_BQ24160_SUPPORT MTK_SEC_VIDEO_PATH_SUPPORT MTK_FACTORY_LOCK_SUPPORT CUSTOM_CONFIG_MAX_DRAM_SIZE MTK_TEE_SUPPORT TRUSTONIC_TEE_SUPPORT MICROTRUST_TEE_SUPPORT MTK_GOOGLE_TRUSTY_SUPPORT

+ 64 - 0
custom/k37tv1_64_bsp/makefile

@@ -0,0 +1,64 @@
+# Copyright Statement:
+#
+# This software/firmware and related documentation ("MediaTek Software") are
+# protected under relevant copyright laws. The information contained herein
+# is confidential and proprietary to MediaTek Inc. and/or its licensors.
+# Without the prior written permission of MediaTek inc. and/or its licensors,
+# any reproduction, modification, use or disclosure of MediaTek Software,
+# and information contained herein, in whole or in part, shall be strictly prohibited.
+
+# MediaTek Inc. (C) 2010. All rights reserved.
+#
+# BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+# THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+# CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+# SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+# STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+#
+# The following software/firmware and/or related documentation ("MediaTek Software")
+# have been modified by MediaTek Inc. All revisions are subject to any receiver's
+# applicable license agreements with MediaTek Inc.
+
+
+###################################################################
+# flag
+###################################################################
+
+MOD_SRC  =
+MOD_OBJ  = $(PRELOADER_OUT)/obj
+
+###################################################################
+# source files
+# - add your file here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+###################################################################
+
+# these code are not generated by tool
+MOD_SRC  := \
+cust_msdc.c
+#cust_gpio.c
+
+
+# these code are generated by tool
+ifneq ($(CFG_FPGA_PLATFORM),1)
+MOD_SRC_PLUS := \
+#custom_emi.c
+endif
+
+###################################################################
+# target
+###################################################################
+
+include $(COMMON_FILE_MK)

+ 6 - 0
custom/k37tv1_64_bsp/security/chip_config/s/cfg/CHIP_CONFIG.ini

@@ -0,0 +1,6 @@
+PLATFORM=MT6582
+SECURE_SUPPORT=TRUE
+SECURE_VERSION=1
+SECURE_CUSTOM_NAME=
+SECURE_ANTICLONE_BY_CHIP=FALSE
+SECURE_ANTICLONE_BY_KEY=FALSE

+ 1 - 0
custom/k37tv1_64_bsp/security/chip_config/s/cfg/SECURE_JTAG_CONFIG.ini

@@ -0,0 +1 @@
+SECURE_JTAG_ENABLE=TRUE

+ 36 - 0
custom/k37tv1_64_bsp/security/chip_config/s/gfh/GFH_CONFIG.ini

@@ -0,0 +1,36 @@
+[CHIP]
+version = "6752"
+[GFH_FILE_INFO]
+version = "1"
+start_addr = "0x00201000"
+flash_dev  = "emmc"
+sig_type = "SINGLE_AND_PHASH"
+max_size = "0x00040000"
+sig_len = "292"
+attr = "0"
+[GFH_BL_INFO]
+version = "1"
+attr = "0x00000001"
+[GFH_BROM_CFG]
+version = "3"
+usbdl_auto_detect_dis = "1"
+usbdl_by_auto_detect_timeout_en = "0"
+usbdl_by_auto_detect_timeout_ms = "0x00000000"
+usbdl_by_kcol0_timeout_en = "1"
+usbdl_by_kcol0_timeout_ms = "0x00001388"
+usbdl_by_flag_timeout_en = "1"
+usbdl_by_flag_timeout_ms = "0"
+[GFH_BL_SEC_KEY]
+version = "1"
+[GFH_ANTI_CLONE]
+version = "1"
+ac_b2k = "0"
+ac_b2c = "0"
+ac_offset = "0x00000010"
+ac_len = "0x00000080"
+[GFH_BROM_SEC_CFG]
+version = "1"
+customer_name = ""
+jtag_en = "0"
+debug_en = "0"
+

+ 23 - 0
custom/k37tv1_64_bsp/security/chip_config/s/key/CHIP_TEST_KEY.ini

@@ -0,0 +1,23 @@
+; #################################
+; Code Signature Key
+; #################################
+
+[Code Sig Key]
+; Hex format
+private_key_d = "00D57BCF5934CE1A035F4598B42DAD4BC8AE7577FB6D81FA232317E8EE7C4FBB33772EFE378DF7DFE5369BB9ACAB1008FA1CFBA737890012A883B372B15932335B689B46A32F1B383B75F0DE2E1B5B0B9F4E1C3E780C2AB0CD3671EB4E34F30BB4C630A60D168CA124810D0F91A1ACC8EFDCEE52D4762BB35813BCC93878E1D15B750561B78006B4C13A8F76B5F10C941E5776C21192357A9B9D7E02C0FC812D2B154671863DE97CE3ED07F90624A0CADD04079E145168A3558A64786820192F5B638354DA69520288B976296961C337FB18A90120F2B6B365C0E1A57CE4119AE8BC718E08FDA33F1F42AA1C91AED090EC6B5656A66C246F89FDE5FD41A76671"
+private_key_n = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+[Install Sig Key]
+public_key_e  = "00010001"
+public_key_n  = "01C6B6A1DDF05E818E3DFE16101C5DF65939F352EAB8AACA91CB5BFEC15A1989DD7553343683BC30BB38E45F15BF17BCCAB16A41D695A4318F26504675FE83E92EE21C991C0FBA705395B4A34C331842D8A6F69846B58CC67306E3DE27B05666A6C4372E3FC0D92F314805EDD5B1CB7D25BF3CF9CA9C33C36D97B0B37DA8A44A7A1CA651679D8D680557740C7C1CA25D84BDD12136C2930432808F28265D1E33E667389E4806D865F3CC06329534F7A11861EB688545DCCCEF0B04E96735A08368FA31A1F3260073B31299B216192E620B8D1EA468925ADBD627C49EFC3623658F3CF8AD6D8556272E48FA7711E650287DA19196610F036B6C0D394E42C121D1"
+
+; #################################
+; Anticlone key
+; #################################
+
+[Anticlone key]
+; Customer's anticlone key in BB chip
+; Hex format
+anticlone_key = "0x11111111, 0x22222222, 0x33333333, 0x44444444"

+ 18 - 0
custom/k37tv1_64_bsp/security/image_auth/IMG_AUTH_CFG.ini

@@ -0,0 +1,18 @@
+; ################################
+;
+; Parameter 'IMAGE_VERSION'
+;    - Flash Tool will compare download image version with existing one in Flash.
+;
+; Parameter 'VERIFY_LENGTH'
+;    - It can be configured to any length. SignTool will do the error check while signing image
+;    - If VERIFY_LENGTH is configured as 0, the whole image will be signed.
+;
+; ################################
+
+CUSTOM_NAME = NULL
+IMAGE_VERSION = 1
+VERIFY_COUNT = 1
+VERIFY_OFFSET[0] = 0
+VERIFY_LENGTH[0] = 10240
+CHUNK_SIZE = 1048576
+CFG_VERSION = 4

+ 2 - 0
custom/k37tv1_64_bsp/security/image_auth/IMG_AUTH_KEY.ini

@@ -0,0 +1,2 @@
+CUSTOM_RSA_N = 0x5FFF0B70D5DE3FC5BF41CB824B4BFD14820571CE57EDD3E7C668CC570E718DB07DCC7A6CACD0E80DADC38AA33DB37816839D97980DF3E577A6E0B1169D708071E17DD259CFE538DBDA804A2FC07D795841F2F59DEE023A9919360D0A3F4647FDF5657D9FC5944C8BFA2802336BA23AFDCDE8D546E8806EB532AA7F95A01D8DD1
+CUSTOM_RSA_E = 0x10001

+ 51 - 0
custom/k37tv1_bsp_512/cust_bldr.mak

@@ -0,0 +1,51 @@
+###################################################################
+# Include Project Feautre  (cust_bldr.h)
+###################################################################
+#ifeq ("$(MTK_EMMC_SUPPORT)","yes")
+ifdef MTK_EMMC_SUPPORT
+CFG_BOOT_DEV :=BOOTDEV_SDMMC
+else
+CFG_BOOT_DEV :=BOOTDEV_NAND
+endif
+CFG_UART_LOG :=UART1
+CFG_UART_META :=UART1
+CFG_TEE_SUPPORT = 1
+CFG_TRUSTONIC_TEE_SUPPORT = 0
+CFG_MICROTRUST_TEE_SUPPORT = 1
+
+
+##### TEE >PLEASE ADD CONFIGS ABOVE THIS LINE< TEE #####
+ifeq ($(strip $(MTK_TEE_SUPPORT)),yes)
+  CFG_TEE_SUPPORT = 1
+  ifeq ($(strip $(TRUSTONIC_TEE_SUPPORT)),yes)
+    CFG_TRUSTONIC_TEE_SUPPORT = 1
+  else
+    CFG_TRUSTONIC_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(WATCHDATA_TEE_SUPPORT)),yes)
+    CFG_WATCHDATA_TEE_SUPPORT = 1
+  else
+    CFG_WATCHDATA_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MICROTRUST_TEE_SUPPORT)),yes)
+    CFG_MICROTRUST_TEE_SUPPORT = 1
+  else
+    CFG_MICROTRUST_TEE_SUPPORT = 0
+  endif
+  ifeq ($(strip $(MTK_GOOGLE_TRUSTY_SUPPORT)),yes)
+    CFG_GOOGLE_TRUSTY_SUPPORT = 1
+  else
+    CFG_GOOGLE_TRUSTY_SUPPORT = 0
+  endif
+else
+  CFG_TEE_SUPPORT = 0
+  CFG_TRUSTONIC_TEE_SUPPORT = 0
+  CFG_WATCHDATA_TEE_SUPPORT = 0
+  CFG_MICROTRUST_TEE_SUPPORT = 0
+  CFG_GOOGLE_TRUSTY_SUPPORT = 0
+endif
+$(warning CFG_TEE_SUPPORT=$(CFG_TEE_SUPPORT))
+$(warning CFG_TRUSTONIC_TEE_SUPPORT=$(CFG_TRUSTONIC_TEE_SUPPORT))
+$(warning CFG_WATCHDATA_TEE_SUPPORT=$(CFG_WATCHDATA_TEE_SUPPORT))
+$(warning CFG_MICROTRUST_TEE_SUPPORT=$(CFG_MICROTRUST_TEE_SUPPORT))
+$(warning CFG_GOOGLE_TRUSTY_SUPPORT=$(CFG_GOOGLE_TRUSTY_SUPPORT))

+ 124 - 0
custom/k37tv1_bsp_512/cust_msdc.c

@@ -0,0 +1,124 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#include "cust_msdc.h"
+#include "msdc.h"
+
+
+struct msdc_cust msdc_cap[MSDC_MAX_NUM] =
+{
+    {
+        MSDC50_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR2,    /* clock pad driving             */
+        MSDC_DRVN_GEAR2,    /* command pad driving           */
+        MSDC_DRVN_GEAR2,    /* data pad driving              */
+        MSDC_DRVN_GEAR2,    /* rst pad driving               */
+        MSDC_DRVN_GEAR2,    /* ds pad driving                */
+        MSDC_DRVN_DONT_CARE,/* clock pad driving on 1.8V     */
+        MSDC_DRVN_DONT_CARE,/* command pad driving on 1.8V   */
+        MSDC_DRVN_DONT_CARE,/* data pad driving on 1.8V      */
+        8,                  /* data pins                     */
+        0,                  /* data address offset           */
+#if MSDC_USE_EMMC45_POWER
+        MSDC_HIGHSPEED | MSDC_DDR | MSDC_RST_PIN_EN 
+#else
+        MSDC_HIGHSPEED | MSDC_DDR
+#endif
+    }
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 //| MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+    ,
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1 ,   /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    },
+    {
+        MSDC30_CLKSRC_DEFAULT, /* host clock source          */
+        MSDC_SMPL_RISING,   /* command latch edge            */
+        MSDC_SMPL_RISING,   /* data latch edge               */
+        MSDC_DRVN_GEAR1,    /* clock pad driving             */
+        MSDC_DRVN_GEAR1,    /* command pad driving           */
+        MSDC_DRVN_GEAR1,    /* data pad driving              */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_DONT_CARE,/* no need for not-emmc card     */
+        MSDC_DRVN_GEAR1,    /* clock pad driving on 1.8V     */
+        MSDC_DRVN_GEAR1,    /* command pad driving on 1.8V   */
+        MSDC_DRVN_GEAR1,    /* data pad driving on 1.8V      */
+        4,                  /* data pins                     */
+        0,                  /* data address offset           */
+
+        /* hardware capability flags     */
+        MSDC_HIGHSPEED | MSDC_UHS1 | MSDC_DDR //|MSDC_UHS1|MSDC_SDIO_IRQ|MSDC_DDR
+    }
+#endif
+};
+
+
+

BIN
custom/k37tv1_bsp_512/dct/dct/codegen.dws


+ 85 - 0
custom/k37tv1_bsp_512/inc/cust_bldr.h

@@ -0,0 +1,85 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
+ * protected under relevant copyright laws. The information contained herein
+ * is confidential and proprietary to MediaTek Inc. and/or its licensors.
+ * Without the prior written permission of MediaTek inc. and/or its licensors,
+ * any reproduction, modification, use or disclosure of MediaTek Software,
+ * and information contained herein, in whole or in part, shall be strictly prohibited.
+ */
+/* MediaTek Inc. (C) 2010. All rights reserved.
+ *
+ * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+ * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+ * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER 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 RECEIVER AGREES TO LOOK ONLY TO SUCH
+ * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
+ * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
+ * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
+ * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+ * STANDARD OR OPEN FORUM. RECEIVER'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 RECEIVER TO
+ * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+ *
+ * The following software/firmware and/or related documentation ("MediaTek Software")
+ * have been modified by MediaTek Inc. All revisions are subject to any receiver's
+ * applicable license agreements with MediaTek Inc.
+ */
+
+#ifndef CUST_BLDR_H
+#define CUST_BLDR_H
+
+#include "boot_device.h"
+#include "uart.h"
+
+/* cust_bldr.h is not used any more, please refer to cust_bldr.mak */
+
+#if 0
+/*=======================================================================*/
+/* Pre-Loader Features                                                   */
+/*=======================================================================*/
+#define CFG_FPGA_PLATFORM           (1)
+
+#if CFG_FPGA_PLATFORM
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#ifdef MTK_EMMC_SUPPORT
+#define CFG_BOOT_DEV                (BOOTDEV_SDMMC)
+#else
+#define CFG_BOOT_DEV                (BOOTDEV_NAND)
+#endif
+#endif
+
+#define CFG_BATTERY_DETECT          (0)
+
+#define CFG_UART_TOOL_HANDSHAKE     (1)
+#define CFG_USB_TOOL_HANDSHAKE      (1)
+#define CFG_USB_DOWNLOAD            (1)
+#define CFG_PMT_SUPPORT             (0)
+
+#define CFG_LOG_BAUDRATE            (921600)
+#define CFG_META_BAUDRATE           (115200)
+#define CFG_UART_LOG                (UART1)
+#define CFG_UART_META               (UART1)
+
+#define CFG_EMERGENCY_DL_SUPPORT    (0)
+#define CFG_EMERGENCY_DL_TIMEOUT_MS (1000 * 60 * 5) /* 5 mins */
+
+#define CFG_SWITCH_USB_UART_SUPPORT (0)
+#define CFG_SWITCH_FORCE_USB        (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+#define CFG_SWITCH_FORCE_UART       (0) // only active when CFG_SWITCH_USB_UART_SUPPORT is (1)
+
+/*=======================================================================*/
+/* Misc Options                                                          */	
+/*=======================================================================*/
+#define FEATURE_MMC_ADDR_TRANS
+#endif
+
+#endif /* CUST_BLDR_H */

+ 87 - 0
custom/k37tv1_bsp_512/inc/cust_msdc.h

@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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) 2010
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef CUST_MSDC_H
+#define CUST_MSDC_H
+
+#include "msdc_cfg.h"
+
+#if (defined(MMC_MSDC_DRV_CTP) && !defined(FPGA_PLATFORM))
+#define MSDC_MAX_NUM            (4)
+#else
+#define MSDC_MAX_NUM            (1)
+#endif
+
+#define MSDC_CD_PIN_EN      (1 << 0)  /* card detection pin is wired   */
+#define MSDC_WP_PIN_EN      (1 << 1)  /* write protection pin is wired */
+#define MSDC_RST_PIN_EN     (1 << 2)  /* emmc reset pin is wired       */
+#define MSDC_SDIO_IRQ       (1 << 3)  /* use internal sdio irq (bus)   */
+#define MSDC_EXT_SDIO_IRQ   (1 << 4)  /* use external sdio irq         */
+#define MSDC_REMOVABLE      (1 << 5)  /* removable slot                */
+#define MSDC_SYS_SUSPEND    (1 << 6)  /* suspended by system           */
+#define MSDC_HIGHSPEED      (1 << 7)  /* high-speed mode support       */
+#define MSDC_UHS1           (1 << 8)  /* uhs-1 mode support            */
+#define MSDC_DDR            (1 << 9)  /* ddr mode support              */
+#define MSDC_HS200          (1 << 10) /* hs200 mode support(eMMC4.5)   */
+#define MSDC_HS400          (1 << 11) /* hs200 mode support(eMMC5.0)   */
+
+#define MSDC_SMPL_RISING        (0)
+#define MSDC_SMPL_FALLING       (1)
+#define MSDC_SMPL_SEPERATE      (2)
+
+
+struct msdc_cust {
+    unsigned char  clk_src;           /* host clock source             */
+    unsigned char  cmd_edge;          /* command latch edge            */
+    unsigned char  data_edge;         /* data latch edge               */
+    unsigned char  clk_drv;           /* clock pad driving             */
+    unsigned char  cmd_drv;           /* command pad driving           */
+    unsigned char  dat_drv;           /* data pad driving              */
+    unsigned char  rst_drv;           /* reset pin pad driving         */
+    unsigned char  ds_drv;            /* ds pad driving                */
+    unsigned char  clk_18v_drv;       /* clock pad driving             */
+    unsigned char  cmd_18v_drv;       /* command pad driving on 1.8V   */
+    unsigned char  dat_18v_drv;       /* data pad driving on 1.8V      */
+    unsigned char  data_pins;         /* data pins on 1.8V             */
+    unsigned int   data_offset;       /* data address offset           */
+    unsigned int   flags;             /* hardware capability flags     */
+};
+
+extern struct msdc_cust msdc_cap[MSDC_MAX_NUM];
+
+
+
+#endif /* end of _MSDC_CUST_H_ */
+

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott