blob: 79f91bd8b39272e85e4bc47baf297cf24beab210 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * combo_flash_init.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * This Module defines the ComboMCP Init function
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 * removed!
60 * removed!
61 * removed!
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 * removed!
81 *
82 * removed!
83 * removed!
84 * removed!
85 *
86 * removed!
87 * removed!
88 * removed!
89 *
90 * removed!
91 * removed!
92 * removed!
93 *
94 * removed!
95 * removed!
96 * removed!
97 *
98 *
99 *------------------------------------------------------------------------------
100 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
101 *============================================================================
102 ****************************************************************************/
103#ifndef __COMBO_FLASH_INIT_H__
104#define __COMBO_FLASH_INIT_H__
105
106#include "flash_opt.h"
107#include "kal_public_api.h" //MSBB change #include "kal_release.h"
108#include "combo_flash_defs.h"
109
110#if defined(__SERIAL_FLASH__) || (defined(_NAND_FLASH_BOOTING_) && defined(__NAND_MDL_APPEND__))
111
112#include "custom_MemoryDevice.h"
113#include "fat_fs.h"
114#include "DrvFlash.h"
115
116// Naming Rule: Camo
117typedef enum {
118 CMEM_NO_ERROR=0,
119 CMEM_ERR_ID_NOT_FOUND,
120 CMEM_ERR_FDM_MISMATCH,
121 CMEM_ERR_MTD_MISMATCH,
122 CMEM_ERR_FDM_INIT_FAIL,
123 CMEM_ERR_MTD_INIT_FAIL,
124 CMEM_ERR_FDM_REGION_INFO_OVERFLOW
125} Enum_CMEM_StatusCode;
126
127typedef enum {
128 CMEM_TYPE_END_OF_LIST=0,
129 CMEM_TYPE_NAND,
130 CMEM_TYPE_NOR,
131 CMEM_TYPE_SERIAL_NOR_FLASH
132} Enum_CMEM_Type;
133
134
135//Sync with original flash_opt.h and MemoryDeviceList
136//Ransense series is phase out
137typedef enum {
138 CMEM_FDM_NOR_DEFAULT=0, //for serial flash
139 CMEM_NOR_CS_INTEL_SERIES,
140 CMEM_NOR_CS_INTEL_SIBLEY,
141 CMEM_NOR_CS_RAM_DISK,
142 CMEM_NOR_CS_SST,
143 CMEM_NOR_CS_AMD_SERIES,
144 CMEM_NOR_CS_SPANSION_PL_J,
145 CMEM_NOR_CS_SPANSION_PL_N,
146 CMEM_NOR_CS_SPANSION_WS_N,
147 CMEM_NOR_CS_SPANSION_WS_P,
148 CMEM_NOR_CS_SPANSION_GL_A,
149 CMEM_NOR_CS_SPANSION_GL_N,
150 CMEM_NOR_CS_SPANSION_NS_N,
151 CMEM_NOR_CS_SPANSION_NS_P,
152 CMEM_NOR_CS_SPANSION_NS_J,
153 CMEM_NOR_CS_TOSHIBA,
154 CMEM_NOR_CS_TOSHIBA_TV,
155 CMEM_NOR_CS_TOSHIBA_TY,
156 CMEM_NOR_CS_SILICON7,
157 CMEM_NOR_CS_SAMSUNG_SPANSION_NS_J_LIKE,
158 CMEM_NOR_CS_SPANSION_VS_R,
159 CMEM_NOR_CS_SPANSION_VS_R64,
160 CMEM_NOR_CS_SPANSION_WS_R
161
162} Enum_CMEM_CommSeries;
163
164// Functions Exported to MAUI
165extern kal_int32 ComboMem_Initialize(void);
166extern kal_int32 CMEM_Init_FullDriver(void);
167extern kal_uint32 CMEM_BlockSize(kal_uint32 address);
168
169kal_int32 CMEM_Index(void);
170const CMEMEntryID *CMEM_GetIDEntry(kal_uint32 index);
171
172#endif // (defined(__COMBO_MEMORY_SUPPORT__) || defined(__SERIAL_FLASH__))
173
174// Function exported to EMI/SFI
175kal_int32 CMEM_EMIINIT_Index(void);
176kal_bool CMEM_CheckValidDeviceID(kal_uint8 *id);
177kal_bool CMEM_EMIINIT_CheckValidDeviceID(kal_uint8 *id);
178
179#if defined(_NAND_FLASH_BOOTING_) && defined(__NAND_MDL_APPEND__)
180kal_bool CMEM_GetflashInfo(kal_uint8* id, CMEMFlashInfo* st);
181#endif
182
183#endif // __COMBO_FLASH_INIT_H__