blob: 774211d676a10f32c7f30e9a36ed3dc353221c55 [file] [log] [blame]
/*****************************************************************************
* 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) 2006
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* custom_img_config.h
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* This Module defines the FOTA (Firmware Over the Air) related setting.
*
* Author:
* -------
* Carlos Yeh (mtk02377) system auto generatorm0.25 + scatFrame m0.01 + sysGenUtility m0.10
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* $Revision$
* $Modtime$
* $Log$
*
* 01 20 2015 raymondwt.chen
* [MOLY00091518] [System Service][MOLY Kernel Internal Request] Clean build warning
* .Remove and organize bootloader/security code
*
* 08 07 2013 peiwen.qing
* [MOLY00032860] Set max size of MOLY image to 16MB
* .
*
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef __CUSTOM_IMG_CONFIG_H__
#define __CUSTOM_IMG_CONFIG_H__
#include "kal_general_types.h"
#include "custom_FeatureConfig.h"
/****************************************************************************
Following definitions are used to configure flash memory arrangement for Bootloader image
Item 1. the maximum size of FOTA bootloader image
****************************************************************************/
#define BL_IMG_MAX_SIZE (0x40000)
/****************************************************************************
Following definitions are used to configure flash memory arrangement for FOTA Engine image
Item 1. the base address of FOTA update engine image
Item 2. the maximum available flash memory size for update engine image
Item 3. the maximum available flash memory size for update engine image back up
Item 4. the maximum flash memory area for bootloader to search update engine image
Item 5. the execution start address for bootloader to place update engine image
Note: This value MUST be the same with scatter file setting
****************************************************************************/
#define FOTA_UE_FLASH_BASE_ADDRESS (0) //[_IMG_CFG_H_Gen_FOTA_UE_BASE]
#define FOTA_UE_RESIDENT_FLASH_SPACE_SIZE (0) //[_IMG_CFG_H_Gen_FOTA_UE_RESIDENT_SIZE]
#define FOTA_UE_BACKUP_FLASH_SPACE_SIZE (0) //[_IMG_CFG_H_Gen_FOTA_UE_BACKUP_SIZE]
#define FOTA_UE_SEARCH_RANGE_SIZE (0x400000)
#define FOTA_UE_EXECUTION_BASE (0) // [_IMG_CFG_H_Gen_FOTA_UE_EXECUTION_BASE]
/****************************************************************************
Following definitions are used to configure flash memory arrangement for MAUI image
Item 1. the number of MAUI image binary parts
Item 2. the start address and maximum available flash memory size for each MAUI image
Note: This maximum available value specifies the size of flash memory that a image can
occupy except reserved flash blocks specified in Item 7. The start address should
be synchronized with the begin address of each image binary during update/delta
package generation process.
Item 3. the start address of flash storage reserved for update package
Item 4. the size of flash storage reserved for update package
Item 5. the start address of back up area for update purpose
Item 6. the maximum flash block number in update package area
Item 7. the size of back up area for update purpose
Note: Certain FOTA solution, like RedBend, requires a dedicate flash space to back up flash
content during update process. In contrast, some colution, such as Bitfone, would use
leftover flash blocks that are not occupied by firmware image as back up area. In this case,
the value of maximum available flash memory has to be increased to compensate back up
requirement.
Item 8. the flash blocks reserved for flash management
Note: This value specifies the amount of blocks that must be reseerved from
the gap between maximum avilable flash size, Item2, and the flash memory size
really occupied by firmware image.
****************************************************************************/
#define FOTA_MAUI_IMAGE_AMOUNT (1)
#if defined(_NAND_FLASH_BOOTING_) || defined(__EMMC_BOOTING__)
#define MAX_LENGTH_ROM (0x01000000)
#define MAX_LENGTH_SECONDARY_ROM (0xFFFFFFFF)
#define MAX_LENGTH_DEMAND_PAGING_ROM0 (0xFFFFFFFF)
#define MAX_LENGTH_DSP_ROM (0xFFFFFFFF)
#else /* _NAND_FLASH_BOOTING_ || __EMMC_BOOTING__ */
#define MAX_LENGTH_ROM (0xFFFFFFFF)
#endif /* _NAND_FLASH_BOOTING_ || __EMMC_BOOTING__ */
//[_IMG_CFG_H_Gen_IMG_DEFINITION] +
#if defined(__MTK_TARGET__)
#define MAUI_LOAD_ADDRESS_ROM ((kal_uint32)0)
#else /* __MTK_TARGET__ */
#define MAUI_LOAD_ADDRESS_ROM ((kal_uint32)0)
#endif /* __MTK_TARGET__ */
#define FOTA_MAUI_FLASH_SPACE { {MAUI_LOAD_ADDRESS_ROM, MAX_LENGTH_ROM, 0x0}, \
END_MAUI_INFO}
//[_IMG_CFG_H_Gen_IMG_DEFINITION] -
#define FOTA_PACKAGE_STORAGE_BASE (0) //[_IMG_CFG_H_Gen_PKG_STORAGE_BASE]
#define FOTA_PACKAGE_STORAGE_SIZE (0) //[_IMG_CFG_H_Gen_PKG_STORAGE_SIZE]
#define FOTA_PACKAGE_BLOCK_NUMBER (0) //[_IMG_CFG_H_Gen_PKG_BLOCK_NUM]
#define FOTA_BACKUP_STORAGE_BASE (0) //[_IMG_CFG_H_Gen_BACKUP_STORAGE_BASE]
#define FOTA_BACKUP_STORAGE_SIZE (0) //[_IMG_CFG_H_Gen_BACKUP_STORAGE_SIZE]
#define FOTA_RESERVED_FLASH_BLOCKS (5)
/****************************************************************************
Following definitions are used for MAUI image manageemt
Item 1. the size of mapping table for MAUI ROM image
Item 2. the size of mapping table for FUE ROM image
****************************************************************************/
#define FOTA_MAUI_MAPPING_TABLE_SIZE (0x800)
/****************************************************************************
Following definitions are used for NAND flash device configuration
Item 1. the maximum page size of supported NAND flash device
****************************************************************************/
#define FOTA_FLASH_MAX_PAGE_SIZE (0x800)
/****************************************************************************
Following definitions are used for FUE update process
Item 1. the maximum heap size for FUE
****************************************************************************/
#define FOTA_CUSTOM_POOL_SIZE (0x200000)
/****************************************************************************
Following definitions are used for FOTA update package certification flow
Item 1. the maximum length of message authentication code (in bytes)
Item 2. the maximum length of key to encrypt message authentication code (in bytes)
****************************************************************************/
#define FOTA_CUSTOM_PACKAGE_MAC_SIZE (20)
#define FOTA_CUSTOM_PACKAGE_SIG_SIZE (128)
#define FOTA_CUSTOM_PACKAGE_KEY_MAX_LEN (128)
#define FOTA_EXTRA_RESERVED_BLOCKS (5)
/* Following data structure should be modified according to requirements in adoption of third partys solution */
#define __FUE_DUMMY_UPDATE_SUPPORT__
#if defined(__FUE_DUMMY_UPDATE_SUPPORT__)
/*
* !CAUTION! size of FOTA_Custom_Update_Info MUST be equal to 88 bytes
*/
typedef struct {
kal_uint32 FOTA_test_info1;
kal_uint32 FOTA_test_info2;
kal_uint32 FOTA_test_info3;
kal_uint32 FOTA_test_info4;
kal_uint32 FOTA_test_padding[18];
} FOTA_Custom_Update_Info;
#elif defined(__FUE_HP_SUPPORT__)
#include "Hp_update.h"
#elif defined(__FUE_REDBEND_SUPPORT__)
#include "RedBend_update.h"
#else
#error "Unsupported FOTA update information!!"
#endif /* __FUE_DUMMY_UPDATE_SUPPORT__ */
typedef struct {
kal_uint32 m_pkg_mod_key_len;
kal_char m_pkg_mod_key[(FOTA_CUSTOM_PACKAGE_KEY_MAX_LEN<<1)+1];
kal_uint32 m_pkg_exp_key_len;
kal_char m_pkg_exp_key[(FOTA_CUSTOM_PACKAGE_KEY_MAX_LEN<<1)+1];
} FOTA_Custom_Package_Certificate_st;
/****************************************************************************
Following definitions are used for CBR region attribute
Item 1. the block used for store CBR data. Each Normal block will occupy 2 physical blocks
Item 2. the block used for bad block replacement on NAND flash. For the device, it should be zero
Total blocks occupied by CBR will be CBR_REGION_NORMAL_BLOCK_NUM*2+CBR_REGION_SPARE_BLOCK_NUM
****************************************************************************/
#define CBR_REGION_NORMAL_BLOCK_NUM [AUTOGEN_IMG_CFG_H_Gen_CBR_NORMAL_BLOCK_NUM]
#define CBR_REGION_SPARE_BLOCK_NUM [AUTOGEN_IMG_CFG_H_Gen_CBR_SPARE_BLOCK_NUM]
/****************************************************************************
Following definitions are used for searching MAUI ROM in the flash
Item 1. The address in the flash where MAUI binary resides
Item 2. The address in the flash where Factory binary resides
****************************************************************************/
#define MAUI_ROM_START_ADDR 0x00020000
#define FACTORY_ROM_START_ADDR 0x00010000
#endif /* __CUSTOM_IMG_CONFIG_H__ */