1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /******************************************************************************** 3 ********************************************************************************* 4 COPYRIGHT (c) 2004 BY ROCK-CHIP FUZHOU 5 -- ALL RIGHTS RESERVED -- 6 7 File Name: api_flash.h 8 Author: XUESHAN LIN 9 Created: 1st Dec 2008 10 Modified: 11 Revision: 1.00 12 Modify log: 13 1.01 ����FtlClose�ӿں��� 2009.10.15 lxs 14 ******************************************************************************** 15 ********************************************************************************/ 16 #ifndef _API_FLASH_H 17 #define _API_FLASH_H 18 19 //1����ԭ������ 20 /*************************************************************************** 21 ��������:FTL��FLASH��ʼ�� 22 ��ڲ���:�� 23 ���ڲ���: 24 0=�������� 25 1=ӳ������, ��ǿ�Ƶ� 26 2=flash��ʼ��ʧ��,������Ӳ�������Ҫ���й̼����� 27 ����ֵ:�ڲ�����, ����������ʹ�� 28 ˵ ��:�ϵ�ֻ�����һ�γ�ʼ������ 29 ***************************************************************************/ 30 extern int FtlInit(unsigned int nandcBaseAddr,unsigned char pageRemapEn); 31 extern int FTLInit_WithoutPageRemap(void); 32 extern int FTLInit(void); 33 34 35 /*************************************************************************** 36 ��������:��ȡFLASH�������� 37 ��ڲ���: 38 DISK_NAND_CODE:�̼��� 39 DISK_NAND_DATA:ϵͳ������ 40 DISK_NAND_USER:�û��� 41 ���ڲ���:������������ 42 ˵ ��: 43 ***************************************************************************/ 44 extern unsigned int FtlGetCapacity(unsigned char LUN); 45 46 /*************************************************************************** 47 ��������:�������ӿ� 48 ��ڲ���:LUN=��������, Index=��ʼ������ַ, buf=���ݻ�����, nSec=������ 49 ���ڲ���:0=��ȡ��ȷ; ��0=��ȡ����, ���ݲ����� 50 ���ú���: 51 ˵ ��: 52 ***************************************************************************/ 53 extern int FtlRead(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf); 54 55 /*************************************************************************** 56 ��������:д�����ӿ� 57 ��ڲ���:LUN=��������, Index=��ʼ������ַ, buf=���ݻ�����, nSec=������ 58 ���ڲ���:0=��ȷд��; ��0=д����ʧ��, ����û�б���ȷд�� 59 ���ú���: 60 ˵ ��: 61 ***************************************************************************/ 62 extern int FtlWrite(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf); 63 64 /*************************************************************************** 65 ��������:MLC FLASH����ˢ�� 66 ��ڲ���: 67 ���ڲ���: 68 ���ú���: 69 ˵ ��:��ϵͳIDLE/�ڱȽϼ��ж�����ʱ(��A-B���š�Ƶ������Դ��)���øú���, 70 �ܼ�ʱ������Ƶ�����ж���������,����ִ��ʱ����ܽϳ�(����ms������s) 71 ***************************************************************************/ 72 extern void FlashRefreshHook(void); 73 74 /*************************************************************************** 75 ��������:AHB��Ƶ����ʱ��Ҫ���ô˽ӿ�������FLASHʱ�� 76 ��ڲ���:AHBnKHz=��Ƶ(AHB) 77 ���ڲ���: 78 ���ú���: 79 ***************************************************************************/ 80 extern void FlashTimingCfg(unsigned int AHBnKHz); 81 82 /*************************************************************************** 83 ��������:FTL �رգ��ػ�ʱ���� 84 ��ڲ���:�� 85 ���ڲ���:�� 86 ˵ ��:�ػ�ʱ��������д�ļ�������������� 87 ***************************************************************************/ 88 extern void FtlClose(void); 89 90 /*************************************************************************** 91 ��������:FTL ��ʱ�ص�������ϵͳ1S���ҵ���һ�� 92 ��ڲ���:�� 93 ���ڲ���:�� 94 ˵ ��:FTL��һЩCACHE�ڶ�ʱ�л�дflash 95 ***************************************************************************/ 96 extern void FtlTimeHook(void); 97 98 /*************************************************************************** 99 ��������:��ȡ flash page ��С���Ա����濪����, 100 ��ڲ���:�� 101 ���ڲ���:page��С��sector��λ 102 ���ú���: 103 ˵��: ��Ҫ��FTLInit��ſ��� 104 ***************************************************************************/ 105 extern int FlashGetPageSize(void); 106 107 /*************************************************************************** 108 ��������:AHB��Ƶ����ʱ��Ҫ���ô˽ӿ�������FLASHʱ�� 109 ��ڲ���:AHBnMHz=��Ƶ(AHB) 110 ���ڲ���: 111 ���ú���: 112 ***************************************************************************/ 113 extern void FlashTimingCfg(unsigned int AHBnKHz); 114 115 /*************************************************************************** 116 ��������:ϵͳ��д������ 117 ��ڲ���: 118 ���ڲ���: 119 ���ú���: 120 ***************************************************************************/ 121 extern void FtlFlashSysProtSetOn(void); 122 123 /*************************************************************************** 124 ��������:ϵͳ��д���� 125 ��ڲ���: 126 ���ڲ���: 127 ���ú���: 128 ***************************************************************************/ 129 extern void FtlFlashSysProtSetOff(void); 130 131 /*************************************************************************** 132 ��������:����ϵͳ�̣�����ʱʹ�� 133 ��ڲ���: 134 ���ڲ���: 135 ���ú���: 136 ***************************************************************************/ 137 extern void FtlLowFormatSysDisk(void); 138 139 extern int FtlWriteImage(unsigned int Index, unsigned int nSec, void *buf); 140 /*************************************************************************** 141 ��������:�����л����cache д��cache �� 142 ��ڲ���: 143 ���ڲ���: 144 ���ú���: 145 ***************************************************************************/ 146 extern void FtlCacheDelayWriteALL(void); 147 148 /*************************************************************************** 149 ��������:���ô���д������ַ�� 150 ��ڲ���:LBA��ַ��С��LBA�ĵ�ַд���� 151 ���ڲ���: 152 ���ú���: 153 ***************************************************************************/ 154 void FtlSetSysProtAddr(int LBA); 155 156 157 /*************************************************************************** 158 ��������:��ȡFLASH�������� 159 ��ڲ���:�̷� 160 ���ڲ���:����,������Ϊ��λ 161 ���ú���: 162 ***************************************************************************/ 163 int FtlGetPageZoneCapacity(void); 164 165 /*************************************************************************** 166 ��������:�������� 167 ��ڲ���:Index=������, nSec=������ 168 ���ڲ���:�����������ڻ�����buf�� 169 ���ú���: 170 ***************************************************************************/ 171 int FtlPageWrite(int Index, int nSec, void *buf); 172 173 174 /*************************************************************************** 175 ��������:�������� 176 ��ڲ���:Index=������, nSec=������ 177 ���ڲ���:�����������ڻ�����buf�� 178 ���ú���: 179 ***************************************************************************/ 180 int FtlPageRead(int Index, int nSec, void *buf); 181 182 183 /*************************************************************************** 184 ��������:��ȡ SN sector��Ϣ 185 ��ڲ���:pbuf 186 ���ڲ���: 187 ���ú���: 188 ע����Ϣ����Ҫ��flash �������غ���ܵ��ã�pbuf��С��Ҫ���ڵ���512 bytes��������ϢΪ512 189 bytes�� 190 ***************************************************************************/ 191 char GetSNSectorInfo(char * pbuf); 192 193 194 extern int NandInit(void); 195 extern int NandRead(unsigned int Index, unsigned int nSec, void * buf) ; 196 extern int NandWriteImage(unsigned int Index, unsigned int nSec, void * buf); 197 extern int NandWrite(unsigned int Index, unsigned int nSec, void * buf) ; 198 extern int NandDeInit(void) ; 199 extern int NandForceDeInit(void); 200 extern unsigned int NandGetCapacity(void); 201 extern void NandSetSysProtAddr(unsigned int SysImageWriteEndAdd); 202 extern void FtlDelayWriteCacheEn(unsigned int en); 203 #endif 204