mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
add rknand
This commit is contained in:
5
arch/arm/mach-rk29/board-rk29sdk.c
Normal file → Executable file
5
arch/arm/mach-rk29/board-rk29sdk.c
Normal file → Executable file
@@ -906,6 +906,11 @@ static struct platform_device *devices[] __initdata = {
|
||||
#ifdef CONFIG_SDMMC1_RK29
|
||||
&rk29_device_sdmmc1,
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MTD_NAND_RK29XX
|
||||
&rk29xx_device_nand,
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MTD_NAND_RK29
|
||||
&rk29_device_nand,
|
||||
#endif
|
||||
|
||||
@@ -434,6 +434,29 @@ struct platform_device rk29_device_fb = {
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_RK29XX)
|
||||
static struct resource rk29xxnand_resources[] = {
|
||||
{
|
||||
.start = RK29_NANDC_PHYS,
|
||||
.end = RK29_NANDC_PHYS+RK29_NANDC_SIZE -1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}
|
||||
};
|
||||
|
||||
struct platform_device rk29xx_device_nand = {
|
||||
.name = "rk29xxnand",
|
||||
.id = -1,
|
||||
.resource = rk29xxnand_resources,
|
||||
.num_resources= ARRAY_SIZE(rk29xxnand_resources),
|
||||
.dev = {
|
||||
.platform_data= &rk29_nand_data,
|
||||
},
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_RK29)
|
||||
static struct resource nand_resources[] = {
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ extern struct rk29xx_spi_platform_data rk29xx_spi0_platdata;
|
||||
extern struct rk29xx_spi_platform_data rk29xx_spi1_platdata;
|
||||
extern struct platform_device rk29_device_fb;
|
||||
extern struct platform_device rk29_device_nand;
|
||||
extern struct platform_device rk29xx_device_nand;
|
||||
extern struct rk29_sdmmc_platform_data default_sdmmc0_data;
|
||||
extern struct rk29_sdmmc_platform_data default_sdmmc1_data;
|
||||
extern struct platform_device rk29_device_sdmmc0;
|
||||
|
||||
@@ -323,6 +323,8 @@ source "drivers/mtd/devices/Kconfig"
|
||||
|
||||
source "drivers/mtd/nand/Kconfig"
|
||||
|
||||
source "drivers/mtd/rknand/Kconfig"
|
||||
|
||||
source "drivers/mtd/onenand/Kconfig"
|
||||
|
||||
source "drivers/mtd/lpddr/Kconfig"
|
||||
|
||||
@@ -29,6 +29,6 @@ obj-$(CONFIG_MTD_OOPS) += mtdoops.o
|
||||
nftl-objs := nftlcore.o nftlmount.o
|
||||
inftl-objs := inftlcore.o inftlmount.o
|
||||
|
||||
obj-y += chips/ lpddr/ maps/ devices/ nand/ onenand/ tests/
|
||||
obj-y += chips/ lpddr/ maps/ devices/ nand/ onenand/ tests/ rknand/
|
||||
|
||||
obj-$(CONFIG_MTD_UBI) += ubi/
|
||||
|
||||
41
drivers/mtd/rknand/Kconfig
Executable file
41
drivers/mtd/rknand/Kconfig
Executable file
@@ -0,0 +1,41 @@
|
||||
#
|
||||
# linux/drivers/mtd/rknand/Kconfig
|
||||
#
|
||||
|
||||
config MTD_RKNAND
|
||||
tristate "RK NAND Device Support"
|
||||
depends on MTD
|
||||
select MTD_RK_NAND_IDS
|
||||
help
|
||||
RK NAND Device Support
|
||||
if MTD_RKNAND
|
||||
|
||||
config MTD_NAND_RK29XX
|
||||
tristate "RK29 on-chip NAND Flash Controller driver with FTL"
|
||||
depends on MTD_RKNAND
|
||||
default y
|
||||
help
|
||||
This enables the RK28xx on-chip NAND flash controller and NFTL driver.
|
||||
|
||||
config RKFTL_PAGECACHE_SIZE
|
||||
int "config page remap mtd part size(MB),MAX is 128MB,this mtd part will mount in /data/data"
|
||||
depends on MTD_RKNAND
|
||||
default "64"
|
||||
help
|
||||
default size is 64MB,and "swap" size is (128 - 64)MB.if you config this size up to 128MB,then "swap" funtion will disable.
|
||||
|
||||
config MTD_NAND_RK29XX_DEBUG
|
||||
tristate "RK29 Nand driver debug enables"
|
||||
depends on MTD_RKNAND
|
||||
default n
|
||||
help
|
||||
|
||||
config MTD_NAND_RK29XX_DEBUG_VERBOSE
|
||||
int "Debugging verbosity (0 = quiet, 3 = noisy)"
|
||||
depends on MTD_NAND_RK29XX_DEBUG
|
||||
default "0"
|
||||
help
|
||||
Determines the verbosity level of the MTD NAND debugging messages.
|
||||
|
||||
endif # MTD_RKNAND
|
||||
|
||||
13
drivers/mtd/rknand/Makefile
Executable file
13
drivers/mtd/rknand/Makefile
Executable file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# linux/drivers/nand/Makefile
|
||||
#
|
||||
# $Id: Makefile,v 1.2.4.1 2010/07/14 02:28:12 Administrator Exp $
|
||||
#
|
||||
obj-$(CONFIG_MTD_NAND_RK29XX) += flash.o
|
||||
obj-$(CONFIG_MTD_NAND_RK29XX) += ftl.o
|
||||
obj-$(CONFIG_MTD_NAND_RK29XX) += rknand_base.o
|
||||
#obj-$(CONFIG_MTD_UBI) += ubi/
|
||||
$(obj)/flash.o: $(obj)/flash.uu
|
||||
uudecode $(obj)/flash.uu -o $(obj)/flash.o
|
||||
$(obj)/ftl.o: $(obj)/ftl.uu
|
||||
uudecode $(obj)/ftl.uu -o $(obj)/ftl.o
|
||||
191
drivers/mtd/rknand/api_flash.h
Executable file
191
drivers/mtd/rknand/api_flash.h
Executable file
@@ -0,0 +1,191 @@
|
||||
/********************************************************************************
|
||||
*********************************************************************************
|
||||
COPYRIGHT (c) 2004 BY ROCK-CHIP FUZHOU
|
||||
-- ALL RIGHTS RESERVED --
|
||||
|
||||
File Name: api_flash.h
|
||||
Author: XUESHAN LIN
|
||||
Created: 1st Dec 2008
|
||||
Modified:
|
||||
Revision: 1.00
|
||||
Modify log:
|
||||
1.01 <20><><EFBFBD><EFBFBD>FtlClose<73>ӿں<D3BF><DABA><EFBFBD> 2009.10.15 lxs
|
||||
********************************************************************************
|
||||
********************************************************************************/
|
||||
#ifndef _API_FLASH_H
|
||||
#define _API_FLASH_H
|
||||
|
||||
//1<><31><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:FTL<54><4C>FLASH<53><48>ʼ<EFBFBD><CABC>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
0=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
1=ӳ<><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ǿ<EFBFBD>Ƶ<C6B5>
|
||||
2=flash<73><68>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>й̼<D0B9><CCBC><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD>ֵ:<3A>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
||||
˵ <20><>:<3A>ϵ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>γ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
***************************************************************************/
|
||||
extern int FtlInit(unsigned int nandcBaseAddr,unsigned char pageRemapEn);
|
||||
extern int FTLInit(void);
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡFLASH<53><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
DISK_NAND_CODE:<3A>̼<EFBFBD><CCBC><EFBFBD>
|
||||
DISK_NAND_DATA:ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DISK_NAND_USER:<3A>û<EFBFBD><C3BB><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
˵ <20><>:
|
||||
***************************************************************************/
|
||||
extern unsigned int FtlGetCapacity(unsigned char LUN);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:LUN=<3D><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Index=<3D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ, buf=<3D><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>, nSec=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:0=<3D><>ȡ<EFBFBD><C8A1>ȷ; <20><>0=<3D><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>, <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
˵ <20><>:
|
||||
***************************************************************************/
|
||||
extern int FtlRead(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:LUN=<3D><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Index=<3D><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ, buf=<3D><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>, nSec=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:0=<3D><>ȷд<C8B7><D0B4>; <20><>0=д<><D0B4><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>, <20><><EFBFBD><EFBFBD>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD>ȷд<C8B7><D0B4>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
˵ <20><>:
|
||||
***************************************************************************/
|
||||
extern int FtlWrite(unsigned char LUN, unsigned int Index, unsigned int nSec, void *buf);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:MLC FLASH<53><48><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
˵ <20><>:<3A><>ϵͳIDLE/<2F>ڱȽϼ<C8BD><CFBC>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ʱ(<28><>A-B<><42><EFBFBD>š<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>)<29><><EFBFBD>øú<C3B8><C3BA><EFBFBD>,
|
||||
<20>ܼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ܽϳ<DCBD>(<28><><EFBFBD><EFBFBD>ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s)
|
||||
***************************************************************************/
|
||||
extern void FlashRefreshHook(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:AHB<48><42>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD>ô˽ӿ<CBBD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASHʱ<48><CAB1>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:AHBnKHz=<3D><>Ƶ(AHB)
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FlashTimingCfg(unsigned int AHBnKHz);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:FTL <20>رգ<D8B1><D5A3>ػ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
˵ <20><>:<3A>ػ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
***************************************************************************/
|
||||
extern void FtlClose(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:FTL <20><>ʱ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ1S<31><53><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>һ<EFBFBD><D2BB>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
˵ <20><>:FTL<54><4C>һЩCACHE<48>ڶ<EFBFBD>ʱ<EFBFBD>л<EFBFBD>дflash
|
||||
***************************************************************************/
|
||||
extern void FtlTimeHook(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡ flash page <20><>С<EFBFBD><D0A1><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>濪<EFBFBD><E6BFAA><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:page<67><65>С<EFBFBD><D0A1>sector<6F><72>λ
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
˵<EFBFBD><EFBFBD>: <20><>Ҫ<EFBFBD><D2AA>FTLInit<69><74><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>
|
||||
***************************************************************************/
|
||||
extern int FlashGetPageSize(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:AHB<48><42>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD>ô˽ӿ<CBBD><D3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLASHʱ<48><CAB1>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:AHBnMHz=<3D><>Ƶ(AHB)
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FlashTimingCfg(unsigned int AHBnKHz);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:ϵͳ<CFB5><CDB3>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FtlFlashSysProtSetOn(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:ϵͳ<CFB5><CDB3>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FtlFlashSysProtSetOff(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ϵͳ<CFB5>̣<EFBFBD><CCA3><EFBFBD><EFBFBD><EFBFBD>ʱʹ<CAB1><CAB9>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FtlLowFormatSysDisk(void);
|
||||
|
||||
extern int FtlWriteImage(unsigned int Index, unsigned int nSec, void *buf);
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>cache д<><D0B4>cache <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
extern void FtlCacheDelayWriteALL(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:LBA<42><41>ַ<EFBFBD><D6B7>С<EFBFBD><D0A1>LBA<42>ĵ<EFBFBD>ַд<D6B7><D0B4><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
void FtlSetSysProtAddr(int LBA);
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡFLASH<53><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A>̷<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>λ
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
int FtlGetPageZoneCapacity(void);
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:Index=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, nSec=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>buf<75><66>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
int FtlPageWrite(int Index, int nSec, void *buf);
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:Index=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, nSec=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD>buf<75><66>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
***************************************************************************/
|
||||
int FtlPageRead(int Index, int nSec, void *buf);
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ȡ SN sector<6F><72>Ϣ
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:pbuf
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>:
|
||||
<EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>:
|
||||
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>FTLInit<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD>ã<EFBFBD>pbuf<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>512 bytes<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ512
|
||||
bytes<65><73>
|
||||
***************************************************************************/
|
||||
char GetSNSectorInfo(char * pbuf);
|
||||
|
||||
#endif
|
||||
165
drivers/mtd/rknand/epphal.h
Executable file
165
drivers/mtd/rknand/epphal.h
Executable file
@@ -0,0 +1,165 @@
|
||||
/********************************************************************************
|
||||
*********************************************************************************
|
||||
COPYRIGHT (c) 2004 BY ROCK-CHIP FUZHOU
|
||||
-- ALL RIGHTS RESERVED --
|
||||
|
||||
File Name: epphal.h
|
||||
Author: XUESHAN LIN
|
||||
Created: 1st Dec 2008
|
||||
Modified:
|
||||
Revision: 1.00
|
||||
********************************************************************************
|
||||
********************************************************************************/
|
||||
#ifndef _EPPHAL_H
|
||||
#define _EPPHAL_H
|
||||
#define read_XDATA32(address) (*((uint32 volatile*)(address)))
|
||||
#define write_XDATA32(address, value) (*((uint32 volatile*)(address)) = value)
|
||||
|
||||
#define USB_OTG_INT_CH (1<<8)
|
||||
|
||||
//1<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
||||
#ifndef DRIVERS_INTC
|
||||
//INTC Registers
|
||||
typedef volatile struct tagINTC_STRUCT
|
||||
{
|
||||
uint32 IRQ_INTEN_L;
|
||||
uint32 IRQ_INTEN_H;
|
||||
uint32 IRQ_INTMASK_L;
|
||||
uint32 IRQ_INTMASK_H;
|
||||
uint32 IRQ_INTFORCE_L;
|
||||
uint32 IRQ_INTFORCE_H;
|
||||
uint32 IRQ_RAWSTATUS_L;
|
||||
uint32 IRQ_RAWSTATUS_H;
|
||||
uint32 IRQ_STATUS_L;
|
||||
uint32 IRQ_STATUS_H;
|
||||
uint32 IRQ_MASKSTATUS_L;
|
||||
uint32 IRQ_MASKSTATUS_H;
|
||||
uint32 IRQ_FINALSTATUS_L;
|
||||
uint32 IRQ_FINALSTATUS_H;
|
||||
uint32 RESERVED1[(0xc0-0x38)/4];
|
||||
uint32 FIQ_INTEN;
|
||||
uint32 FIQ_INTMASK;
|
||||
uint32 FIQ_INTFORCE;
|
||||
uint32 FIQ_RAWSTATUS;
|
||||
uint32 FIQ_STATUS;
|
||||
uint32 FIQ_FINALSTATUS;
|
||||
uint32 IRQ_PLEVEL;
|
||||
uint32 RESERVED2[(0xe8-0xdc)/4];
|
||||
uint32 IRQ_PN_OFFSET[40];
|
||||
uint32 RESERVED3[(0x3f8-0x188)/4];
|
||||
uint32 AHB_ICTL_COMP_VERSION;
|
||||
uint32 ICTL_COMP_TYPE;
|
||||
} INTC_REG, *pINTC_REG;
|
||||
|
||||
//SCU Registers
|
||||
typedef volatile struct tagSCU_STRUCT
|
||||
{
|
||||
uint32 SCU_APLL_CON;
|
||||
uint32 SCU_DPLL_CON;
|
||||
uint32 SCU_CPLL_CON;
|
||||
uint32 SCU_MODE_CON;
|
||||
uint32 SCU_PMU_CON;
|
||||
uint32 SCU_CLKSEL0_CON;
|
||||
uint32 SCU_CLESEL1_CON;
|
||||
uint32 SCU_CLKGATE0_CON;
|
||||
uint32 SCU_CLKGATE1_CON;
|
||||
uint32 SCU_CLKGATE2_CON;
|
||||
uint32 SCU_SOFTRST_CON;
|
||||
uint32 SCU_CHIPCFG_CON;
|
||||
uint32 SCU_CPUPD;
|
||||
} SCU_REG, *pSCU_REG;
|
||||
|
||||
//REG FILE registers
|
||||
typedef volatile struct tagREG_FILE
|
||||
{
|
||||
uint32 CPU_APB_REG0;
|
||||
uint32 CPU_APB_REG1;
|
||||
uint32 CPU_APB_REG2;
|
||||
uint32 CPU_APB_REG3;
|
||||
uint32 CPU_APB_REG4;
|
||||
uint32 CPU_APB_REG5;
|
||||
uint32 CPU_APB_REG6;
|
||||
uint32 CPU_APB_REG7;
|
||||
uint32 IOMUX_A_CON;
|
||||
uint32 IOMUX_B_CON;
|
||||
uint32 GPIO0_AB_PU_CON;
|
||||
uint32 GPIO0_CD_PU_CON;
|
||||
uint32 GPIO1_AB_PU_CON;
|
||||
uint32 GPIO1_CD_PU_CON;
|
||||
uint32 OTGPHY_CON0;
|
||||
uint32 OTGPHY_CON1;
|
||||
} REG_FILE, *pREG_FILE;
|
||||
|
||||
/********************************************************************
|
||||
** <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD> *
|
||||
********************************************************************/
|
||||
//GRF Registers
|
||||
typedef volatile struct tagGRF_REG
|
||||
{
|
||||
uint32 CPU_APB_REG0;
|
||||
uint32 CPU_APB_REG1;
|
||||
uint32 CPU_APB_REG2;
|
||||
uint32 CPU_APB_REG3;
|
||||
uint32 CPU_APB_REG4;
|
||||
uint32 CPU_APB_REG5;
|
||||
uint32 CPU_APB_REG6;
|
||||
uint32 CPU_APB_REG7;
|
||||
uint32 IOMUX_A_CON;
|
||||
uint32 IOMUX_B_CON;
|
||||
uint32 GPIO0_AB_PU_CON;
|
||||
uint32 GPIO0_CD_PU_CON;
|
||||
uint32 GPIO1_AB_PU_CON;
|
||||
uint32 GPIO1_CD_PU_CON;
|
||||
uint32 OTGPHY_CON0;
|
||||
uint32 OTGPHY_CON1;
|
||||
}GRF_REG, *pGRF_REG,*pAPB_REG;
|
||||
|
||||
//GPIO Registers
|
||||
typedef volatile struct tagGPIO_STRUCT
|
||||
{
|
||||
uint32 GPIO_SWPORTA_DR;
|
||||
uint32 GPIO_SWPORTA_DDR;
|
||||
uint32 RESERVED1;
|
||||
uint32 GPIO_SWPORTB_DR;
|
||||
uint32 GPIO_SWPORTB_DDR;
|
||||
uint32 RESERVED2;
|
||||
uint32 GPIO_SWPORTC_DR;
|
||||
uint32 GPIO_SWPORTC_DDR;
|
||||
uint32 RESERVED3;
|
||||
uint32 GPIO_SWPORTD_DR;
|
||||
uint32 GPIO_SWPORTD_DDR;
|
||||
uint32 RESERVED4;
|
||||
uint32 GPIO_INTEN;
|
||||
uint32 GPIO_INTMASK;
|
||||
uint32 GPIO_INTTYPE_LEVEL;
|
||||
uint32 GPIO_INT_POLARITY;
|
||||
uint32 GPIO_INT_STATUS;
|
||||
uint32 GPIO_INT_RAWSTATUS;
|
||||
uint32 GPIO_DEBOUNCE;
|
||||
uint32 GPIO_PORTS_EOI;
|
||||
uint32 GPIO_EXT_PORTA;
|
||||
uint32 GPIO_EXT_PORTB;
|
||||
uint32 GPIO_EXT_PORTC;
|
||||
uint32 GPIO_EXT_PORTD;
|
||||
uint32 GPIO_LS_SYNC;
|
||||
}GPIO_REG,*pGPIO_REG;
|
||||
|
||||
#endif
|
||||
|
||||
//1ȫ<31>ֱ<EFBFBD><D6B1><EFBFBD>
|
||||
#undef EXT
|
||||
#ifdef IN_EPPHAL
|
||||
#define EXT
|
||||
#else
|
||||
#define EXT extern
|
||||
#endif
|
||||
|
||||
//1<><31><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
extern void EnableIRQ(void);
|
||||
extern void DisableIRQ(void);
|
||||
extern void EnableOtgIntr(void);
|
||||
extern void DisableOtgIntr(void);
|
||||
extern void InterruptInit(void);
|
||||
#endif
|
||||
|
||||
591
drivers/mtd/rknand/flash.uu
Executable file
591
drivers/mtd/rknand/flash.uu
Executable file
@@ -0,0 +1,591 @@
|
||||
begin 644 flash.o
|
||||
M?T5,1@$!`0````````````$`*``!``````````````!$2@``````!30`````
|
||||
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
|
||||
MY0`@E.4(,)WE`@!2XP8``!H#`%?C!!"4E0`@D943(,.7)""-E0`@@94%``#J
|
||||
M!""4Y0`0DN4D$(WE)##-Y20PG>4`,(+E#!"=Y0H`H.$0()WE`,#@XQ0PG>4`
|
||||
MP(WE"_G_ZP`0H.,`D*#A"@"@X?[__^L!`'GC`P``"@4`5N,'0*#A%0``F@H`
|
||||
M`.H!8(;B"@!6X[/__QH<@)WE\`"?Y0@0H.'^___K``!8XP&`2!*I__\:!T"@
|
||||
MX;PPG^42,-/E#0!3XP0@H(,"(*"3`S!BX`,`6>$!```Z"@"@X8KO_^L$`*#A
|
||||
M=.__ZY`0G^6L,*#C`0"@XP01@>`V(*#C"""%Y00PA>70(-'A`""%Y2``C>4@
|
||||
M()WE``!2XP'`0N(@P(WE^O__&@$P@^(!$('BL`!3X_+__QI`,)_E%A"@XP@0
|
||||
MA>4`$)/E`@!1XP00DQ4`,)$5$C#'%P0``!H#`%3C!!"3E0`PD942,,.7````
|
||||
MB@`P@>4)`*#A+-"-XO"/O>@`````4`$``,4!```L`0``>````(````#D`0``
|
||||
M[)BMP2P'((EU=GAY<?'1VMS3U:JLHZ77V4AHB*C>.CP```$````"````!```
|
||||
M``0````(````!`````0````(````$````"````!`````"````!`````@````
|
||||
M0````(```````0``0````(```````0````(````!`````0````+W^/?W]_CY
|
||||
M^0KW^??W^/G[^PKX^OCX^?K\_`KY^_GY^OO]_0KZ_/KZ^_S^_@K[_?O[_/W_
|
||||
M_PK\_OS\_?X```K\__W\_O\!`0K\`/[\_P`"`@K_`?__``$#`PH`!````00$
|
||||
M!`H!`P`!`@,%!0H"!``"`P0&!@H"!0$"!`4'!PH"!@("!08("`H#!P,#!@<)
|
||||
M"0H$"`0$!P@,"@H%"04%"`D-"PH&"@8&"0H.#`H````"```#!00`!@@&``@+
|
||||
M"``*#@H`_OOZ`/SV]0#Y\N\`]N[J``#IY`>Q`8&PL%^$`````):R`8&PL*\!
|
||||
M``````````"PL+"`$````+"PL(`@````L+"P@&0```"PL+"`D````+"PL(`,
|
||||
M`0``L+"P@"0!``"PL+"`=`$``+"PJ(#P`0``L+"L@,0"``"PL*J`4`,``+"P
|
||||
ML(#<`P``K`^Q@#P&``"L#[&`[`<``+"K!(!L"0``J`.Q@$P*``"K![&`F`H`
|
||||
M`+"PKX#<"P``L+"P@,0,``"PL*B`!`X```````#T#@``L+"P@/@.``"PL+"`
|
||||
M_`X``+"PK(!X#P``L%^$@/`/``"J/P6`0!```+"PL(!($```L+"P@%`0``"P
|
||||
ML+"`5!```+"PL(!D$```L+"P@'00``"PL+"`A!```+"PK(`L$0``L+"H@%@1
|
||||
M``"O![&`5!(``+"PK("L$P``L+"P@+`3``"PL+"`M!,``+"PKH!$%0``L+"J
|
||||
M@)`5``"PL*B`I!4``+"PJ("X%0``L+"H@-05``"PL*J`-!<``+"PL(`X%P``
|
||||
ML+"P@$`7``"N`[&`3!D``+"O!(#T&@``K@^Q@&P=``"J`[&`:!X``+"PK("`
|
||||
M'P``L*\*@`0B``"PKQ"`_"8``+"O$H`P+P``L*\$@(0P``"PKPJ`A#,``*P#
|
||||
ML8"`-```#````)@]``"PKPJ`"$$``+"O"H!\3@,$504)!RTL>S@7#1<10U)5
|
||||
M7T%03$Q?0T]..B`E>`H`07)M4&QL.B`E9"!-2'H*`$-255]#3$M314PP7T-/
|
||||
M3CH@)7@*`$%H8D-L:SH@)60@34AZ"@!!2$(@/25D($U(>@`\-3Y(>6YI>$=E
|
||||
M=%)E8612971R>41E9F%U;'0@5F%L=64@.B``/#4^("5X(``\-3X*`$%C8V5S
|
||||
M<U1I;64Z("5D(&YS"@!!2$)N2TAZ.B`E9"!-:'H*`$9L87-H('1I;6UI;F<Z
|
||||
M("5X"@!&;&%S:%!R;V=%;FAA;F-E9"!&;&%S:%-Y<U!R;W1#:&L@('-E8R`]
|
||||
M("5L>`H`9T9L87-H26YF;RYS>7-);F9O+G-Y<U!R;W1!9&1R(#T@)6QX"@`\
|
||||
M-3Y"0T@@9F%U;'0@0#!X)7@*`#PU/F5R<F]R('-E8STE>"P@97)R;W(@8FET
|
||||
M/25D"@`\-3YE<G)O<B!S96,])7@L3F5E9"!2969R97-H(2$A"@!&;&%S:%)E
|
||||
M8612971R>2!E<G)O<B$A+')O=R`]("5L>`H`1FQA<VA296%D4&%G92!E<G)O
|
||||
M<B$A+')O=R`]("5L>`H`1FQA<V@@)60@240Z("5X("5X("5X("5X("5X(`H`
|
||||
M/#4^2'EN:7A296%D4F5T<FEA;"!686QU92`E9#H@`#PU/DAY;FEX4F5A9%)E
|
||||
M=')I86P@<F5T<GD@)60Z(```1T-#.B`H1TY5*2`T+C0N,`!!*@```&%E86)I
|
||||
M``$@````!3<M00`&"@=!"`$2!!0!%0$7`Q@!&0$:`AX$`"YS>6UT86(`+G-T
|
||||
M<G1A8@`N<VAS=')T86(`+G)E;"YT97AT`"YD871A`"YB<W,`+D%232YE>'1A
|
||||
M8@`N<F5L+D%232YE>&ED>``N<F]D871A`"YR;V1A=&$N<W1R,2XQ`"YC;VUM
|
||||
M96YT`"Y!4DTN871T<FEB=71E<P``````````````````````````````````
|
||||
M```````````````````````?`````0````8`````````-`````!$````````
|
||||
M``````0`````````&P````D``````````````&A>``#H!@``#0````$````$
|
||||
M````"````"4````!`````P`````````T1```5`$`````````````!```````
|
||||
M```K````"`````,`````````B$4``/0*``````````````0`````````,```
|
||||
M``$````"`````````(A%```8```````````````$`````````#\````!``!P
|
||||
M@@````````"@10``V`$```$`````````!``````````[````"0``````````
|
||||
M````4&4``/@!```-````!@````0````(````2@````$````"`````````'A'
|
||||
M```0```````````````$`````````%(````!````,@````````"(1P```P(`
|
||||
M`````````````0````$```!A`````0``````````````BTD``!(`````````
|
||||
M``````$`````````:@````,``'```````````)U)```K```````````````!
|
||||
M`````````!$````#``````````````#(20``>@```````````````0``````
|
||||
M```!`````@``````````````G$P``+`,```.````@@````0````0````"0``
|
||||
M``,``````````````$Q9```;!0`````````````!````````````````````
|
||||
M```````````!```````````````$`/'_`````````````````P`!````````
|
||||
M``````````,``P`````````````````#``0`"0`````````````````!``P`
|
||||
M```,`````````````0`````````````````#``4``````````````````P`&
|
||||
M``D````0`````````````0`,````'`````````````$`"0```"``````````
|
||||
M```!``P```!<`````````````0`)````9`````````````$`#````(P`````
|
||||
M```````!``D```"0`````````````0`,````"`$```````````$`"0````P!
|
||||
M```````````!``P````@`0```````````0`/````)`$``%`````"``$`"0``
|
||||
M`"0!```````````!``P```!P`0```````````0`7````=`$``'P````"``$`
|
||||
M"0```'0!```````````!``P```#L`0```````````0`G````\`$``-0````"
|
||||
M``$`"0```/`!```````````!``P```#``@```````````0`Z````Q`(``(P`
|
||||
M```"``$`"0```,0"```````````!``P```!,`P```````````0!+````4`,`
|
||||
M`(P````"``$`"0```%`#```````````!``P```#8`P```````````0!;````
|
||||
MW`,``&`"```"``$`"0```-P#```````````!``P````X!@```````````0!H
|
||||
M````/`8``+`!```"``$`"0```#P&```````````!``P```#H!P``````````
|
||||
M`0!U````[`<``(`!```"``$`"0```.P'```````````!``P```!H"0``````
|
||||
M`````0"(````;`D``.`````"``$`"0```&P)```````````!``P```!("@``
|
||||
M`````````0`)````3`H```````````$`F````)@*``!$`0```@`!``D```"8
|
||||
M"@```````````0`,````V`L```````````$`"0```-P+```````````!``P`
|
||||
M``"L#````````````0`)````Q`P```````````$`#``````.```````````!
|
||||
M``D````$#@```````````0`,````\`X```````````$`"0```/0.````````
|
||||
M```!``D```#X#@```````````0`)````_`X```````````$`"0```'@/````
|
||||
M```````!``D```#P#P```````````0`,````/!````````````$`"0```$`0
|
||||
M```````````!``D```!($````````````0`)````4!````````````$`"0``
|
||||
M`%00```````````!``P```!@$````````````0`)````9!````````````$`
|
||||
M#````'`0```````````!``D```!T$````````````0`,````@!``````````
|
||||
M``$`"0```(00```````````!``P````<$0```````````0`)````+!$`````
|
||||
M``````$`#````%`1```````````!``D```!8$0```````````0`,````0!(`
|
||||
M``````````$`"0```%02```````````!``P```"<$P```````````0`)````
|
||||
MK!,```````````$`"0```+`3```````````!`*@```"T$P``D`$```(``0`)
|
||||
M````M!,```````````$`#````#P5```````````!``D```!$%0``````````
|
||||
M`0`,````C!4```````````$`"0```)`5```````````!``D```"D%0``````
|
||||
M`````0`)````N!4```````````$`"0```-05```````````!``P````H%P``
|
||||
M`````````0`)````-!<```````````$`"0```#@7```````````!``D```!`
|
||||
M%P```````````0`,````1!D```````````$`"0```$P9```````````!``P`
|
||||
M``#L&@```````````0`)````]!H```````````$`#````&0=```````````!
|
||||
M``D```!L'0```````````0`,````9!X```````````$`M0```&@>```8`0``
|
||||
M`@`!``D```!H'@```````````0`,````?!\```````````$`"0```(`?````
|
||||
M```````!``P```#X(0```````````0`)````!"(```````````$`#````.@F
|
||||
M```````````!`,P```#\)@``-`@```(``0`)````_"8```````````$`#```
|
||||
M`"`O```````````!``D````P+P```````````0`,````=#````````````$`
|
||||
M"0```(0P```````````!``P```"`,P```````````0`)````A#,`````````
|
||||
M``$`#````'0T```````````!``D```"`-````````````0`,````<#T`````
|
||||
M``````$`"0```)@]```````````!``P`````00```````````0`)````"$$`
|
||||
M``````````$`#````.1#```````````!``````````````````,`"`#:````
|
||||
M`````!`````!``@`#``````````````````(``````````````````,`"0`,
|
||||
M``````````````````,``````````````````P`*``````````````````,`
|
||||
M"P#F`````````!`````2``$`]P``````````````$`````X!```0````$```
|
||||
M`!(``0`>`0``(````$0````2``$`+@$``&0````L````$@`!`#X!``"0````
|
||||
M?````!(``0!%`0``#`$``!@````2``$`3@$`````````````$````%\!````
|
||||
M`````````!````!M`0``3`H``$P````2``$`@@$``-P+``#H````$@`!`(\!
|
||||
M``#$#```0`$``!(``0"F`0``!`X``/`````2``$`OP$`````````````$```
|
||||
M`-8!``#T#@``!````!(``0#G`0``^`X```0````2``$`\@$``/P.``!\````
|
||||
M$@`!``0"``!X#P``>````!(``0`4`@``\`\``%`````2``$`*`(``$`0```(
|
||||
M````$@`!`#4"``!($```"````!(``0!$`@``4!````0````2``$`5`(`````
|
||||
M````````$````&D"``!4$```$````!(``0"&`@`````````````0````C@(`
|
||||
M`&00```0````$@`!`)H"``!T$```$````!(``0"S`@``A!```*@````2``$`
|
||||
MO0(`````````````$````,0"```L$0``+````!(``0#,`@``6!$``/P````2
|
||||
M``$`Y0(``%02``!8`0``$@`!`/0"``"L$P``!````!(``0#_`@``````````
|
||||
M```0````!@,``+`3```$````$@`!`!$#`````````````!`````8`P``1!4`
|
||||
M`$P````2``$`*@,``)`5```4````$@`!`#P#``"D%0``%````!(``0!,`P``
|
||||
MN!4``!P````2``$`5P,`````````````$````%X#``#4%0``8`$``!(``0!L
|
||||
M`P``-!<```0````2``$`=0,`````````````$````'L#```X%P``"````!(`
|
||||
M`0"&`P`````````````0````D`,``$`7```,`@``$@`!`)X#````````````
|
||||
M`!````"R`P`````````````0````P0,`````````````$````,X#``!,&0``
|
||||
MJ`$``!(``0#G`P``]!H``'@"```2``$`]P,``&P=``#\````$@`!``,$``"`
|
||||
M'P``A`(``!(``0`6!```!"(``/@$```2``$`*`0``#`O``!4`0``$@`!`#H$
|
||||
M`````````````!````!*!```A#`````#```2``$`6`0`````````````$```
|
||||
M`&8$``"$,P``_````!(``0!V!```@#0``!@)```2``$`@`0```A!``#X`@``
|
||||
M$@`!`)$$``"8/0``<`,``!(``0"D!`````````@````1``,`M00```@````8
|
||||
M````$0`#`,`$```@````8````!$``P#+!```+`$``"@````1``,`U00``(``
|
||||
M``"K````$0`#`-X$``#0````@````!$`!`#K!````````-`````1``0`]@0`
|
||||
M`&`)``"4`0``$0`$``,%``!@`0````@``!$`!``.!0``4`$``!`````1``0`
|
||||
M`&9L87-H+F,`)&$`)&0`1FQA<VA#<P!&;&%S:%)E9G)E<VA296,`1FQA<VA!
|
||||
M9&1R5')A;G-F;W)M`$9L87-H4VMI<$%D9')'87``1FQA<VA'971#;VQ!9&1R
|
||||
M`$9L87-H4F5A9$-M9`!&;&%S:%!R;V=#;60`1FQA<VA";&]C:T5R87-E0VUD
|
||||
M`$9L87-H4F5A9%-T871U<P!&;&%S:%AF97)">7!A<W,`1FQA<VA"=69#;W!Y
|
||||
M`$9L87-H6&9E<E-T87)T+F-L;VYE+C``1FQA<VA296%D4&%G90!#+C,T-2XQ
|
||||
M-30X-0!&;&%S:$=E=%!A9V53:7IE`%]?865A8FE?=6YW:6YD7V-P<%]P<C``
|
||||
M1FQA<VA3>7-0<F]T4V5T`$9L87-H4WES4')O=$-H:P!&;&%S:%)S=F1";&M#
|
||||
M:&L`0F-H4V5L`$)C:%)E<V5T`%]?865A8FE?=6ED:79M;V0`7U]A96%B:5]U
|
||||
M:61I=@!&;&%S:%=A:713=&%T=7-296%D>0!&;&%S:$-M9$EN:70`0G5I;&1&
|
||||
M;&%S:$QS8E!A9V5486)L90!&;&%S:%-E=%)E8612971R>41E9F%U;'0`7U]A
|
||||
M96%B:5]U;G=I;F1?8W!P7W!R,0!&;&%S:%AF97)#;VUP25-2`$9L87-H4D))
|
||||
M4U(`3D%.1%]20S1?2V5Y4V5T=7``3D%.1%]20S1?0VEP:&5R`$=E=$ED8FQO
|
||||
M8VM$871A3F]28S0`1FQA<VA#<TEO375X`$9L87-H1&5#<TEO375X`$9T;%=R
|
||||
M:71E0V%C:&5%;@!&=&Q$96QA>5=R:71E0V%C:&5%;@!&5$Q?34-026YI=%]7
|
||||
M:71H;W5T4&%G95)E;6%P`$9T;$EN:70`1E1,7TU#4$EN:70`1E1,26YI=%]7
|
||||
M:71H;W5T4&%G95)E;6%P`$=E=$%(0D-,2P!P<FEN=&L`1E1,26YI=`!(>6YI
|
||||
M>$=E=%)E8612971R>41E9F%U;'0`1FQA<VA4:6UI;F=#9F<`9G1L7VUE;6-M
|
||||
M<`!M96UC;7``9G1L7VUE;6-P>0!M96UC<'D`1V5T261";&]C:U-Y<T1A=&$`
|
||||
M1V5T0VAI<%-E8W1O<DEN9F\`1V5T4TY396-T;W));F9O`&9T;%]M96US970`
|
||||
M;65M<V5T`%)E861&;&%S:$EN9F\`9G1L7V9R964`:V9R964`9G1L7VUA;&QO
|
||||
M8P!?7VMM86QL;V,`1FQA<VA786ET0G5S>0!R:TYA;F1?8V]N9%]R97-C:&5D
|
||||
M`$9L87-H4')O9T5R<F]R`%]?865A8FE?:61I=@!&;&%S:$)L;V-K17)A<V53
|
||||
M;6%L;%!A9V4`1FQA<VA";&]C:T5R87-E`%)E861&;&%S:$E$`$9L87-H4')O
|
||||
M9U-M86QL4&%G90!&;&%S:%!R;V=%;FAA;F-E9`!&;&%S:%)E861%;FAA;F-E
|
||||
M9`!?7V%E86)I7VED:79M;V0`1FQA<VA#;W!Y4')O9P!&=&PR1FQA<VA0<F]G
|
||||
M`%)E;&]A9$9L87-H26YF;P!&;&%S:$EN:70`2'EN:7A296%D4F5T<FEA;`!3
|
||||
M86US=6YG4F5A9%)E=')I86P`36%N=69A8W1U<F5)1%1B;`!$979I8V5#;V1E
|
||||
M`$1E=FEC94EN9F\`<F5F5F%L=64Q`')E9E9A;'5E`$9L87-H3'-B4&%G90!G
|
||||
M1FQA<VA);F9O`&=&;&%S:$E$26YF;P!G261$871A0G5F`&1E9F%U;'1686QU
|
||||
M90``#`````($```<`````@0``%P````"!```C`````($```(`0```@0``"`!
|
||||
M```"!```<`$```($``"D`0``'(D``.P!```"!```&`(``!R)``!$`@``'(D`
|
||||
M`%`"```<B@``?`(``!R)``"0`@``'(H``,`"```"!```/`,``!R*``!,`P``
|
||||
M`@0``-@#```"!```=`0``!R*``"<!0``'(H``+@%```<B0``.`8```($``#4
|
||||
M!@``'(H``$P'```<B@``:`<``!R)``#H!P```@0``'@(```<B@``'`D``!R*
|
||||
M``!H"0```@0``$@*```"!```V`L```($``"L#````@0````.```"!```\`X`
|
||||
M``($``!D#P``'(D``"`0```<D@``,!```!R3```\$````GL``%`0```=F```
|
||||
M7!```!V:``!L$```'9H``'P0```=F@``G!```!R>``#$$```'(H``-00```<
|
||||
MG@``Y!```!R>````$0``'(H``!`1```<G@``'!$```)^```@$0```GX``"01
|
||||
M```"?@``*!$```)^```P$0``')T``#P1```<G@``3!$``!V:``!0$0```GX`
|
||||
M`*01```<G@``X!$``!R>``#P$0``')X``$`2```"!```1!(```)^``!($@``
|
||||
M`@0``$P2```"?@``4!(```)^``!<$@``'(H``'P2```<B@``E!(``!R>``"@
|
||||
M$@``')X``+P2```<B@``)!,``!R*``!,$P``'(H``)@3```=G@``G!,```($
|
||||
M``"@$P```GX``*03```"?@``J!,```)^``"L$P``':,``+`3```=I0``$!0`
|
||||
M`!RD``"P%```'*0``.04```=I```/!4```($``!H%0``'*4``(`5```<E```
|
||||
MC!4```($``"8%0``'*8``*P5```<I@``R!4``!RJ``#X%0``'*D``!06```<
|
||||
MJ0``)!<``!VD```H%P```@0``#`7```"!```-!<``!VM```\%P``':\``/P7
|
||||
M```<L0``M!@``!RR``#$&```'+```/08```<B@``!!D``!R*```@&0``'(D`
|
||||
M`#`9```<B@``1!D```($``!<&0``'+```(P:```<L```M!H``!RS``#L&@``
|
||||
M`@0```P;```<L```4!L``!RT``#H'```'+```&0=```"!```U!T``!RP``!D
|
||||
M'@```@0``'P?```"!```P!\``!RP``"L(```'+```/@A```"!```9"(``!RW
|
||||
M``"H(@``'+```'PD```<B@``X"4``!R)``#,)@``')X``-PF```<G@``Z"8`
|
||||
M``($``#T)@```GX``/@F```"?@``2"<``!RP``#@)P``'+```'@H```<G@``
|
||||
MN"@``!R>``!`*0``'+```/@I```<L```R"P``!R>```@+P```@0``"0O```"
|
||||
M?@``*"\```)^```L+P```GX``'@O```<B0``["\``!R>``#\+P``')X``#@P
|
||||
M```<G@``=#````($``!X,````GX``'PP```"?@``@#````)^``"@,```'*X`
|
||||
M`,`P```<K@``T#```!RN``!`,0``'+H``%0Q```<B0``<#$``!RY``#`,0``
|
||||
M'(H``-@Q```<B@``(#(``!RY``"D,@``'+P``-@R```<B0``[#(``!RP```L
|
||||
M,P``'+```%PS```<K```@#,```($``"0,P``'*X``+`S```<J0``R#,``!RY
|
||||
M``!0-```'*0``&`T```<I```:#0``!RL``!T-````@0``'@T```"!```H#0`
|
||||
M`!RI``"P-```'*D``,`T```<J0``T#0``!RI``#@-```'*D``(PU```<H0``
|
||||
MN#4``!R=``#0-0``'+8``/@U```<G@``$#@``!R@``!<.```'+,``)`X```<
|
||||
MB@``H#@``!R*``"\.```'(P``.@X```<B@``)#D``!R'``!`.0``'+D``%PY
|
||||
M```<AP``>#D``!RY``#\.0``'+D``%@Z```<B@``:#H``!R*``"X.@``'(T`
|
||||
M`!@[```<O0``=#P``!R=``"`/```'*$``.`\```<B@``_#P``!R*```,/0``
|
||||
M'(<``#@]```<B@``<#T```($``!X/0```@,``(`]```"?@``A#T```(#``"(
|
||||
M/0```K\``(P]```"P```S#T``!RP```,0```'+````!!```"!```!$$```(#
|
||||
M```D00``'+```/!!```<G@``)$(``!R>``!@0@``')X``-A"```<L```#$,`
|
||||
M`!R>``#D0P```@0``.A#```"!```[$,```)^``#P0P```@,``/1#```"?@``
|
||||
M^$,```)^``#\0P```GX````````J`@````````"#```(````*@(``!`````J
|
||||
M`@``&````"H"```@````*@(``"@````J`@``,````"H"```X````*@(``$``
|
||||
M```J`@``2````"H"``!0````*@(``%@````J`@``8````"H"``!H````*@(`
|
||||
M`'`````J`@``>````"H"``"`````*@(``(@````J`@``D````"H"``"8````
|
||||
M*@(``)@`````CP``G````"H'``"@````*@(``*@````J`@``L````"H"``"X
|
||||
M````*@(``,`````J`@``R````"H"``#0````*@(``-@````J`@``X````"H"
|
||||
M``#H````*@(``/`````J`@``^````"H"`````0``*@(```@!```J`@``$`$`
|
||||
M`"H"```8`0``*@(``"`!```J`@``*`$``"H"```P`0``*@(``#@!```J`@``
|
||||
M0`$``"H"``!(`0``*@(``%`!```J`@``6`$``"H"``!@`0``*@(``&@!```J
|
||||
M`@``<`$``"H"``!X`0``*@(``(`!```J`@``B`$``"H"``"0`0``*@(``)@!
|
||||
M```J`@``H`$``"H"``"H`0``*@(``+`!```J`@``N`$``"H"``#``0``*@(`
|
||||
9`,0!```J!P``R`$``"H"``#0`0``*@(`````
|
||||
`
|
||||
end
|
||||
837
drivers/mtd/rknand/ftl.uu
Executable file
837
drivers/mtd/rknand/ftl.uu
Executable file
@@ -0,0 +1,837 @@
|
||||
begin 644 ftl.o
|
||||
M?T5,1@$!`0````````````$`*``!```````````````X9P``````!30`````
|
||||
M`"@`#P`,`#@PG^6R(]/A``!2X0``H),>_R^1``!1XT@@DQ6`,*`1@`"@X;,0
|
||||
MDA$!$($2LQ""$0@PG^5(,)/EL`"3X1[_+^$`````3#"?Y;(CT^$``%+A'O\O
|
||||
MD4@@D^6``*#A_\\/XPP`4>$`$*`#L!""X;H!T^$@()/E`0!0X;H1PS$"(('@
|
||||
M(""#Y0PPG^6X(=/A`0!2X;@1PX$>_R_A`````-0PG^7W3RWIOB'3X;P1T^$"
|
||||
M((#@`0"`X'(@_^:^(</A<`#_YKP!P^$"`&#@0`!0XP,``-JZ$=/A`@!1X0$@
|
||||
M0C*^(<,QD#"?Y0AD`.,`(*#C`$"@XP-0H.&V((/A!B0`X[Z!T^&RD)/A!"!"
|
||||
MX@2`2.*RL]/ALJ"3X0$KH..R<)/A2""3Y0X``.H$((WE_O__ZP0@G>4`,*#C
|
||||
M`4"$XH$?@>*!$(7@LA#1X0L`4>&!$*#AL3"2,0@`4^&V,)6A`3"#HK8PA:%T
|
||||
M,/_F"@"$X`D`4^$'$*#AZ___.OZ/O>@`````<$`MZ5!`G^4!4*#A`2"@XS@P
|
||||
ME.6T$]3A`3"#XB0@A.4#`*#A.#"$Y?[__^L@,:#A/`"$Y0`@@^```&/@`@!5
|
||||
MX0`@H(,D((2%``!5X0(@H#,$,)\U)""#-7"`O>@`````!#"?Y;@"P^$>_R_A
|
||||
M`````/!!+>E<4)_E`$"@X0$`H.$"@*#ANG#5X0<0H.'^___KNX0$`H.$&
|
||||
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
|
||||
M_S\/XXS03>*P)-3A2'"4Y0,`4N&Z(-3ANX;2$U.$$((WE`P``&LW__^L`
|
||||
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
|
||||
M`)?E_O__ZP80H.$`H*#A!`"@X?[__^L``%KA%0``&F0PG^4%`*#ANX080
|
||||
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
|
||||
M@#2?Y0!PH.$`0*#CNX080H.'^___K;#2?Y0<08>```-/E`2"$X@``4.,#
|
||||
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
|
||||
M0"WI\$"?Y0!0H.-"/J#C`&"@X;8PQ.$`4,3E`5#$Y?[__^O4,)_E!@"@X154
|
||||
MP^445,/E_O__ZP4`4.$`4.`3%P``&O[__^NQZ__K``!0XPH```JH()_E0AZ@
|
||||
MXZ0`G^7^___KMA#4X9P`G^7^___KF`"?Y?[__^L``.#C<("]Z/[__^L``%#C
|
||||
M`0``"L+]_^O^___K8#"?Y0!0H.,!(*#C`"##Y5!`G^5"'J#C4""?Y5``G^7^
|
||||
M___K7!"4Y5``G^7^___K!C0`XT@`G^6S$)3A_O__Z[`1U.$\`)_E_O__Z[(1
|
||||
MU.$T`)_E_O__ZP$`H./^___K!0"@X7"`O>@`````T+P,`.$&``#`!@``Z08`
|
||||
M``<'```=!P``,`<``$8'``#(`0```0````````"PL+"`1````+"PL("<````
|
||||
MKP>Q@'P!``"PL*J`W`$``+"PL(#L`0``L+"L@%@"``"PL+"`7`(``+"PL(!D
|
||||
M`@``L+"P@&P"``"PL+"`=`(``+"PL(!X`@``L+"P@.`"``"PL+"`)`,``+"P
|
||||
MJX"<`P``L*\&@(0$``"L`[&`D`4``*\_!(!\!@``L+"P@(0&``"PL+"`D`8`
|
||||
M`+"PKH`@!P``L+"P@&@'``"PL*J`\`<``+"PJH`L"```L+"J@%`)``"PKP2`
|
||||
M=`H``*\_"(#(#@``KR*R@&00``!?A""`X!$``+"PJ(`D$@``L+"L@!@4``"O
|
||||
M"+&`,!4``+"O!("@%@``KP&Q@,P7``"PL*B`8!@``+"O(H!@&0``L*\H@!P<
|
||||
M``!?A"*`=!T``+"PK(#('0``L*\D@*P?``"PL*Z`Z"```+"PK("$(0``L*\B
|
||||
M@$PB``"O/P:`O"8``+"PKH#,)P``L+"J@$`I``"PK!^`E"H``+"PK(`H+0``
|
||||
MJ@.Q@*0M``"PL*B`Y"T``+"PJ(!(+@``L+"N@.PN``"PL*J`3"\``*H#L8#,
|
||||
M+P``L*P?@%@Q``"PKR:`Z#,``+"O#("\-P``L+"L@&`X``"PL*R`W#@``+"N
|
||||
M"8`H.P``L+"J@``\``"PKR"`'#T``*\(L8!X/P``L*\$@&1!``"PL*R`X$$`
|
||||
M`*\(L8!\1@``L*\H@#Q(``"O/P2`7$L``+"O!(`@3P``KP>Q@)10``"PL*Z`
|
||||
MS%$``+"N'X#\4@``KS\`@&!;``"PL*J`1E1,(%9E<G-I;VXZ(#0N,C`@,C`Q
|
||||
M,#$Q,3@@`#PU/DQO86173$5C26YF;R!E<G)O<B!I("5X"@`\-3Y&;&%S:$)L
|
||||
M;V-K17)A<V4@97)R;W(Z('-E8STE;'@*`#PU/D)A9"!B;&L@:6YF;R!C;G0@
|
||||
M/2`E9`H`/#4^3F\@0F%D(&)L:R!I;F9O"@`\-3YS<&%R92`P>"5X+#!X)7@L
|
||||
M,'@E>"PP>"5X+#!X)7@L,'@E>"PP>"5X+#!X)7@*`#PU/G-P87)E6S0J.%T@
|
||||
M)7@@+"!P1G1L26YF;RT^<W1A<G10:'E";&L@/2`E>`H`/#4^<$9T;$EN9F\M
|
||||
M/F9T;%9E<B`E>"`L($943%]615)324].(#T@)7@*`#PU/G!&=&Q);F9O+3YT
|
||||
M;W1A;$QO9VEC0FQK("5X("P@<$9T;$EN9F\M/FUA>%!H>4)L:R`]("5X"@`\
|
||||
M-3YP0F%D0FQK26YF;RT^8VYT("5D"@`\-3Y'971"861";&M48FP@=&]O(&UA
|
||||
M;GD@8F%D(&)L:PH`<FLR.&YA;F0`)7,*`#PU/@H]/3T]5TP@24Y&3ST]/3T]
|
||||
M"@!S96-097)086=E("`]("5D"@!S96-097)";&L@(#T@)60*`'1O=&%L3&]G
|
||||
M:6-";&L@(#T@)60*`'1O=&%L3&]G:6-";&M287<@(#T@)60*`')E<W0@8FQK
|
||||
M(&YU;2`]("5D"@!F<F5E(&)L:R!N=6T@/2`E9`H`5&]T;&4@17)A<V4@0V]U
|
||||
M;G0@/2`E9`H`5&]T;&4@;W9E<DAE860@/2`E9`H`5&AE(&UA>"!%<F%S92!#
|
||||
M;W5N="`]("5D"@!4:&4@;6EN($5R87-E($-O=6YT(#T@)60*`%1H92!M87A,
|
||||
M979E;"!%<F%S92!#;W5N="`]("5D"@!4:&4@;6EN3&5V96P@17)A<V4@0V]U
|
||||
M;G0@/2`E9`H`5&AE(&%V9R!%<F%S92!#;W5N="`]("5D"@!#86-H92!697(@
|
||||
M/2`E9`H`3&)A5&]T;&5#;W5N="`]("5L9`H`3&)A079G0V]U;G0@/2`E9`H`
|
||||
M/#4^4V%V95=,16-);F9O('!7;$EN9F\M/G!A9V5!9&1R("5X"@`\-3Y3879E
|
||||
M4F5M87!";&L`/#4^4V%V95)E;6%P0FQK(')E;6%P26YF;RYP86=E061D<B`E
|
||||
M>`H`/#4^1FQA<VA0<F]G17)R;W(@870@861D<CTE>`H`/#4^97)R;W(Z1V5T
|
||||
M4F5M87`@4$%"(&ES(#`@+$Q"02`]("5X("P@;F5W(%!"02`]("5X("P@)7@@
|
||||
M"@`\-3Y00D%,87-T('!B82`]("5D("`*`$9T;%-E=%-Y<U!R;W1!9&1R(&5R
|
||||
M<F]R(&H]("5D(`H`/#4^1G1L4V5T4WES4')O=$%D9'(@<%=L26YF;RT^<W1A
|
||||
M<G1";&L@/2`E9"`*`$9T;%-E=%-Y<U!R;W1!9&1R(&5X8V@@)60@8FQK(#T@
|
||||
M)60@:6X@<WES(&%R96$A(0H`1G1L4V5T4WES4')O=$%D9'(@9T9L87-H26YF
|
||||
M;RYS>7-);F9O+G-Y<U!R;W1!9&1R(#T@)60@"@`\-3Y&:6YD36EN16-#;W5N
|
||||
M="!P5VQ);F9O+3YM:6X@=7!D871E(#T@)60@"@`\-3YP5VQ);F9O+3YS=&%R
|
||||
M=$)L:R`]("5D(`H`/#4^4'=R3V9F4V%V95)E;6%P5&)L(#H@)7@@"@`\-3Y0
|
||||
M=W)/9F93879E4F5M87!48FP@<F-V4F5M87!086=E061D<B`].B`E>"`*`$9T
|
||||
M;$-A8VAE5W)I=&5"86-K"@`\-3Y&=&Q4:6UE2&]O:SI&=&Q#86-H941E;&%Y
|
||||
M5W)I=&5!3$P*`#PU/F5X8VAA9V4@8FQO8VL@<F5C;W9E<B!D971E8W1E9"!F
|
||||
M;&%S:"!P<F]G<F%M(&5R<B$A(0H`/#4^1G1L5TQ297!L86-E($Q"02`Z("5X
|
||||
M("QC;W5N="`]("5D(`H`/#4^4'=R3VY,;V%D4F5M87!48FP@<F-V4F5M87!0
|
||||
M86=E061D<CTZ("5X(`H`/#4^4'=R3VY,;V%D4F5M87!48FP@<F5M87!);F9O
|
||||
M('1A8FQE(&5R<F]R/3H@)7@@"@`\-3Y0=W)/;DQO861296UA<%1B;"!,;V%D
|
||||
M5TQ%8TEN9F\@97)R;W(@"@`\-3Y0=W)/;DQO861296UA<%1B;"!P26YF;R!D
|
||||
M871A(&5R<F]R(&5R<F]R"@`\-3Y0=W)/;DQO861296UA<%1B;"!324=.7U)%
|
||||
M34%07T),2R!E<G)O<@H`/#4^4'=R3VY,;V%D4F5M87!48FP@9FQA<V@@<F5A
|
||||
M9"!E<G)O<@H`/#4^1V5T4F5M87!48FP*`$943"!)3D9/.E9E<G-I;VX@/2`E
|
||||
M>"Q$871E(#T@)7,*`#(P,3`Q,3@`3$]!1$52($943"!)3D9/.E9E<G-I;VX@
|
||||
M/2`E>`H`3F5E9"!U<&1A=&4@3&]A9&5R(2$A`#PU/D-A8VAE(%9E<B`]("5D
|
||||
M"@`\-3Y&<F5E($)L:R!N=6T@/2`E9`H`/#4^=&]T86Q,;V=I8T)L:R`@/2`E
|
||||
M9`H``$=#0SH@*$=.52D@-"XT+C``02H```!A96%B:0`!(`````4W+4$`!@H'
|
||||
M00@!$@04`14!%P,8`1D!&@(>!``N<WEM=&%B`"YS=')T86(`+G-H<W1R=&%B
|
||||
M`"YR96PN=&5X=``N9&%T80`N8G-S`"Y!4DTN97AT86(`+G)E;"Y!4DTN97AI
|
||||
M9'@`+G)O9&%T80`N<F]D871A+G-T<C$N,0`N8V]M;65N=``N05)-+F%T=')I
|
||||
M8G5T97,`````````````````````````````````````````````````````
|
||||
M`````!\````!````!@`````````T````A%P`````````````!``````````;
|
||||
M````"0``````````````P'\``&@0```-`````0````0````(````)0````$`
|
||||
M```#`````````+A<```$```````````````$`````````"L````(`````P``
|
||||
M``````"\7```[,`,````````````!``````````P`````0````(`````````
|
||||
MO%P```````````````````$`````````/P````$``'""`````````+Q<``!(
|
||||
M`@```0`````````$`````````#L````)```````````````HD```4`(```T`
|
||||
M```&````!`````@```!*`````0````(`````````!%\``!P`````````````
|
||||
M``0`````````4@````$````R`````````"!?``!>!P`````````````!````
|
||||
M`0```&$````!``````````````!^9@``$@```````````````0````````!J
|
||||
M`````P``<```````````D&8``"L```````````````$`````````$0````,`
|
||||
M`````````````+MF``!Z```````````````!``````````$````"````````
|
||||
M``````"0:0``(!````X```"P````!````!`````)`````P``````````````
|
||||
ML'D```\&``````````````$```````````````````````````````$`````
|
||||
M``````````0`\?\````````````````#``$``````````````````P`#````
|
||||
M``````````````,`!``'``````````````````$`"@```$`````````````!
|
||||
M``````````````````,`!0`````````````````#``8`!P```$0`````````
|
||||
M```!``H```"8`````````````0`'````G`````````````$`"@```'@!````
|
||||
M```````!``<```!\`0```````````0`*````V`$```````````$`!P```-P!
|
||||
M```````````!``H```#H`0```````````0`-````[`$``&P````"``$`!P``
|
||||
M`.P!```````````!``H```!4`@```````````0`'````6`(```````````$`
|
||||
M!P```%P"```````````!``<```!D`@```````````0`'````;`(`````````
|
||||
M``$`!P```'0"```````````!``<```!X`@```````````0`*````V`(`````
|
||||
M``````$`!P```.`"```````````!``H````<`P```````````0`'````)`,`
|
||||
M``````````$`"@```)@#```````````!`!X```"<`P``Z`````(``0`'````
|
||||
MG`,```````````$`"@```(`$```````````!``<```"$!````````````0`*
|
||||
M````C`4```````````$`!P```)`%```````````!``H```!P!@``````````
|
||||
M`0`'````?`8```````````$`!P```(0&```````````!``H```",!@``````
|
||||
M`````0`F````D`8``)`````"``$`!P```)`&```````````!``H````4!P``
|
||||
M`````````0`S````(`<``$@````"``$`!P```"`'```````````!``H```!@
|
||||
M!P```````````0`'````:`<```````````$`"@```.@'```````````!``<`
|
||||
M``#P!P```````````0`*````*`@```````````$`!P```"P(```````````!
|
||||
M``H````\"0```````````0`'````4`D```````````$`"@```&P*````````
|
||||
M```!`$4```!T"@``5`0```(``0`'````=`H```````````$`"@```)0.````
|
||||
M```````!`%(```#(#@``G`$```(``0`'````R`X```````````$`"@```%`0
|
||||
M```````````!`&````!D$```?`$```(``0`'````9!````````````$`"@``
|
||||
M`-01```````````!``<```#@$0```````````0`*````&!(```````````$`
|
||||
M;0```"02``#T`0```@`!``<````D$@```````````0`*````R!,`````````
|
||||
M``$`?@```!@4```8`0```@`!``<````8%````````````0`*````+!4`````
|
||||
M``````$`DP```#`5``!P`0```@`!``<````P%0```````````0`*````G!8`
|
||||
M``````````$`HP```*`6```L`0```@`!``<```"@%@```````````0`*````
|
||||
MR!<```````````$`N````,P7``"4`````@`!``<```#,%P```````````0`*
|
||||
M````7!@```````````$`!P```&`8```````````!``H```!4&0``````````
|
||||
M`0`'````8!D```````````$`"@````P<```````````!``<````<'```````
|
||||
M`````0`*````;!T```````````$`!P```'0=```````````!``H```#$'0``
|
||||
M`````````0`'````R!T```````````$`"@```*`?```````````!``<```"L
|
||||
M'P```````````0`*````W"````````````$`R0```.@@``"<`````@`!``<`
|
||||
M``#H(````````````0`*````?"$```````````$`!P```(0A```````````!
|
||||
M``H```!`(@```````````0`'````3"(```````````$`"@```)@F````````
|
||||
M```!``<```"\)@```````````0`*````Q"<```````````$`!P```,PG````
|
||||
M```````!``H````T*0```````````0`'````0"D```````````$`"@```'PJ
|
||||
M```````````!`-8```"4*@``E`(```(``0`'````E"H```````````$`"@``
|
||||
M`!PM```````````!``<````H+0```````````0`*````F"T```````````$`
|
||||
M!P```*0M```````````!``H```#@+0```````````0`'````Y"T`````````
|
||||
M``$`"@```$`N```````````!`.0```!(+@``I`````(``0`'````2"X`````
|
||||
M``````$`"@```.0N```````````!``<```#L+@```````````0`*````2"\`
|
||||
M``````````$`!P```$PO```````````!``H```#`+P```````````0#T````
|
||||
MS"\``(P!```"``$`!P```,PO```````````!``H```!(,0```````````0`&
|
||||
M`0``6#$``)`"```"``$`!P```%@Q```````````!``H```#8,P``````````
|
||||
M`0`9`0``Z#,``-0#```"``$`!P```.@S```````````!``H```"P-P``````
|
||||
M`````0`'````O#<```````````$`"@```%@X```````````!``<```!@.```
|
||||
M`````````0`*````V#@```````````$`!P```-PX```````````!``H````<
|
||||
M.P```````````0`'````*#L```````````$`"@```/@[```````````!``<`
|
||||
M````/````````````0`*````$#T```````````$`!P```!P]```````````!
|
||||
M``H```!D/P```````````0`'````>#\```````````$`"@```%A!````````
|
||||
M```!`"D!``!D00``?`````(``0`'````9$$```````````$`"@```-Q!````
|
||||
M```````!`#8!``#@00``G`0```(``0`'````X$$```````````$`"@```&Q&
|
||||
M```````````!`$,!``!\1@``P`$```(``0`'````?$8```````````$`"@``
|
||||
M`#A(```````````!``<````\2````````````0`*````/$L```````````$`
|
||||
M!P```%Q+```````````!``H````,3P```````````0`'````($\`````````
|
||||
M``$`"@```(A0```````````!``<```"44````````````0`*````Q%$`````
|
||||
M``````$`5`$``,Q1```P`0```@`!``<```#,40```````````0`*````]%(`
|
||||
M``````````$`80$``/Q2``!D"````@`!``<```#\4@```````````0`*````
|
||||
M3%L```````````$`!P```&!;```````````!``H```!<7````````````0``
|
||||
M```````````````#``@``````````````````P`)``H`````````````````
|
||||
M`P!M`0``X,`,``0````!``0``````````````````P`*````````````````
|
||||
M``,`"P![`0```````$0````2``$`B0$`````````````$````*`!``!$````
|
||||
M6````!(``0"N`0`````````````0````O@$``)P```#@````$@`!`,X!````
|
||||
M`````````!````#<`0``?`$``&`````2``$`Z@$``-P!```0````$@`!`/P!
|
||||
M`````````````!`````-`@``6`(```0````2``$`&`(``%P"```(````$@`!
|
||||
M`"\"``!D`@``"````!(``0`[`@``;`(```@````2``$`2`(``'0"```$````
|
||||
M$@`!`&`"``!X`@``:````!(``0!O`@`````````````0````>@(``.`"``!$
|
||||
M````$@`!`(@"```D`P``>````!(``0":`@`````````````0````K`(``(0$
|
||||
M```,`0``$@`!`+X"``"0!0``[````!(``0#+`@`````````````0````T@(`
|
||||
M`'P&```(````$@`!`.<"`````````````!````#W`@``A`8```P````2``$`
|
||||
M#0,`````````````$````!@#`````````````!`````E`P``:`<``(@````2
|
||||
M``$`+`,``/`'```\````$@`!`#T#`````````````!````!'`P``+`@``"0!
|
||||
M```2``$`4@,``%`)```D`0``$@`!`&`#`````````````!````!P`P``````
|
||||
M```````0````@@,`````````````$````(T#`````````````!````";`P``
|
||||
MX!$``$0````2``$`L@,`````````````$````,0#`````````````!````#,
|
||||
M`P``8!@````!```2``$`V0,``&`9``"\`@``$@`!`.8#```<'```6`$``!(`
|
||||
M`0#R`P``=!T``%0````2``$`_0,``,@=``#D`0``$@`!``P$``"L'P``/`$`
|
||||
M`!(``0`5!```A"$``,@````2``$`(P0``$PB``!P!```$@`!`#4$``"\)@``
|
||||
M$`$``!(``0!*!```S"<``'0!```2``$`500``$`I``!4`0``$@`!`&@$```H
|
||||
M+0``?````!(``0!Z!```I"T``$`````2``$`CP0``.0M``!D````$@`!`)L$
|
||||
M``#L+@``8````!(``0"N!```3"\``(`````2``$`MP0`````````````$```
|
||||
M`-`$`````````````!````#;!``````````````0````Y`0``+PW``"D````
|
||||
M$@`!`/$$``!@.```?````!(``0`#!0``W#@``$P"```2``$`%04``"@[``#8
|
||||
M````$@`!`!\%````/```'`$``!(``0`L!0``'#T``%P"```2``$`/04``'@_
|
||||
M``#L`0``$@`!`$@%`````````````!````!/!0``/$@``"`#```2``$`804`
|
||||
M`%Q+``#$`P``$@`!`&H%```@3P``=`$``!(``0!U!0``E%```#@!```2``$`
|
||||
M?04``&!;```D`0``$@`!`(4%`````````````!````"/!0```````!P````1
|
||||
M``@`FP4````````$````$0`#`*4%````````X"`!`!$`!`"N!0``X"`$```@
|
||||
M"``1``0`N`4``.`@`0````(`$0`$`,8%``#@0`P``(```!$`!`#8!0``Z,`,
|
||||
M``0````1``0`Y@4``.`@`P````$`$0`$`.P%``#DP`P``0```!$`!`#\!0``
|
||||
MY<`,``$````1``0``&9T;"YC`"1A`"1D`$5X8VA086=E4F5M87!!9&0`1D9&
|
||||
M4&%G90!&=&Q#86-H94EN:70`17AC:%!A9V5296UA<$EN:70`1V5T0F%D0FQK
|
||||
M5&)L`$QO<W10=W)(86YD;&4`4V5T0F%D0FQK5&)L`')K3F%N9%]P<F]C7W)E
|
||||
M860`475E=65&<F5E3W5T+F-L;VYE+C$`475E=65);BYC;&]N92XR`%%U975E
|
||||
M4F5S=$]U="YC;&]N92XS`%%U975E3W5T+F-L;VYE+C``17AC:$)L:TUA=&-H
|
||||
M`$9T;$-A8VAE5W)I=&4`1G1L0V%C:&5);G9A;&ED`$5X8VA,;W-T4'=R2&%N
|
||||
M9&QE`$5X8VA086=E4F5M87!#;&]S90!%>&-H0FQK4F5C;W9E<GD`1G1L0V%C
|
||||
M:&5&<F5E`$9T;$-A8VAE3W!E;@!&=&Q#86-H95)E8V]V97)Y`%)E;6%P5&)L
|
||||
M26YI=`!'971296UA<%1B;`!M>5]P<F]C7V5N=')Y`$=E=$)L:T5C0V]U;G0`
|
||||
M7U]A96%B:5]U;G=I;F1?8W!P7W!R,`!3971";&M%8T-O=6YT`%]?865A8FE?
|
||||
M:61I=FUO9`!!9&I.97=4:')E<VAO;&0`7U]A96%B:5]U:61I=@!73%=R:71E
|
||||
M0VYT4F5C`%=,3&%S=$Q"05=R:71E3&]G`%]?865A8FE?=6ED:79M;V0`4')I
|
||||
M;G1#86-H90!&=&Q'971086=E6F]N94-A<&%C:71Y`$9T;%!A9V5296%D`$9T
|
||||
M;%!A9V57<FET90!&=&Q$96QA>5=R:71E06QL0V%C:&5%;@!&=&Q'971#87!A
|
||||
M8VET>0!G1FQA<VA);F9O`%)E861#86-H94EN:70`1G1L4F5A9$)U9DEN=F%L
|
||||
M:60`1FQA<VA296%D16YH86YC960`1FQA<VA296%D0V]U;G1,;V<`3&]A9%=,
|
||||
M16-);F9O`'!R:6YT:P!&=&Q&;&%S:%-Y<U!R;W13971/;@!&;&%S:%-Y<U!R
|
||||
M;W13970`1G1L1FQA<VA3>7-0<F]T4V5T3V9F`&9T;%]M96US970`7U]A96%B
|
||||
M:5]I9&EV`%=,26YI=`!";&M296%D0V]U;G1);FET`%]?;65M>F5R;P!&=&Q6
|
||||
M87));FET`$9T;#)&;&%S:%!R;V<`1FQA<VA";&]C:T5R87-E`$9L87-H4')O
|
||||
M9T5N:&%N8V5D`&9T;%]M96UC<'D`1FQA<VA#;W!Y4')O9P!R:S(X;F%N9%]C
|
||||
M<F5A=&5?<')O8V9S`&-R96%T95]P<F]C7V5N=')Y`'-P<FEN=&8`4V%V95=,
|
||||
M16-);F9O`%-A=F5296UA<$)L:P!'971296UA<$)L:P!'9715;G)E;6%P`$9L
|
||||
M87-H4')O9T5R<F]R`$=E=%)E;6%P`$9T;%=R:71E26UA9V4`1G1L4V5T4WES
|
||||
M4')O=$%D9'(`1FEN9$UI;DQB845C0V]U;G1,8F$`5TQ296-O=F5R>0!0=W)/
|
||||
M9F93879E4F5M87!48FP`1G1L0V%C:&57<FET94)A8VL`1G1L1&5L87E7<FET
|
||||
M94-A8VAE16X`1G1L5&EM94AO;VL`1G1L0V%C:&5$96QA>5=R:71E`$9T;$-L
|
||||
M;W-E`$9L87-H4V5T4F5A9%)E=')Y1&5F875L=`!F=&Q?;6%L;&]C`&9T;%]F
|
||||
M<F5E`$5X8VA";&M#;&]S90!%>&-H0FQK36%T8VA#;&]S90!%>&-H0FQK5W)I
|
||||
M=&5-871C:`!73%)E<&QA8V4`1G1L5W)I=&5086=E`$9L87-H4F5F<F5S:$AO
|
||||
M;VL`1G1L4F5A9%)A=P!M96UC<'D`4'=R3VY,;V%D4F5M87!48FP`1G1L5W)I
|
||||
M=&4`1G1L4F5A9$)U9@!&=&Q296%D`$9T;$EN:70`1FQA<VA);FET`$9T;%]V
|
||||
M97)S:6]N`&1E8G5G1FQA9P!G1G1L26YF;P!G0V%C:&5"=68`9U)E861#86-H
|
||||
M94)U9@!G17AC:%!A9V5296UA<$)U9@!#=7)%<F%S94)L;V-K`$5C5&)L`$9T
|
||||
M;%1I;65(;V]K1FQA9P!&=&Q4:6UE2&]O:U1I;65O=70``$`````"!```F```
|
||||
M``($```H`0``'+,``'@!```"!```I`$``!RU``#8`0```@0``.@!```"!```
|
||||
M"`(``!RX```8`@``'+4``"@"```<N```-`(``!RU``!4`@```@0``-@"```"
|
||||
MOP``W`(```($```<`P```@0``"`#```"!```F`,```($``#``P``'+4``.0#
|
||||
M```<P@``(`0``!S"``"`!````@0``)0$```<M0``1`4``!S"``",!0```@0`
|
||||
M`/@%```<P@``,`8``!S%``!P!@```@0``'0&```"!```>`8```*K``"`!@``
|
||||
M'<<``(@&```=QP``W`8``!S)```4!P```@0``!@'```"!```'`<```($``!<
|
||||
M!P``'<D``&`'```"!```9`<```($``"`!P``',D``,`'```<R0``W`<``!S*
|
||||
M``#H!P```@0``.P'```"!```!`@``!S-```H"````@0``'0(```<M0``S`@`
|
||||
M`!S)``#T"```',L``#`)```<S```/`D```*_``!`"0```@0``$0)```"!```
|
||||
M2`D```($``!,"0```@0``'0)```<M0``V`D``!S0``#L"0``',4``!`*```<
|
||||
MM0``7`H``!S1``!L"@```@0``'`*```"JP``P`H``!S)``#<"@``',D``/0*
|
||||
M```<P@``I`L``!S%``"X"P``',4``-`+```<N```Y`L``!RX```H#```',(`
|
||||
M`&P,```<Q0``@`P``!RU``#8#```',<``.P,```<SP````T``!S/```(#0``
|
||||
M',<``*@-```<T@``R`T``!RU``#D#0``'+4``/@-```<N```-`X``!S%``!(
|
||||
M#@``',4``&@.```<Q0``A`X``!S%``"4#@```@0``)@.```"!```G`X```($
|
||||
M``"@#@```JL``*0.```"JP``K`X```*K``"P#@```JL``+@.```"JP``O`X`
|
||||
M``*K``#`#@```JL``,0.```"JP``+`\``!RX``!H#P``'+@``'P/```<SP``
|
||||
MS`\``!S"``#T#P``',<```@0```<TP``*!```!RX```\$```',\``$00```<
|
||||
MQP``4!````($```\$0``',<``&@1```<SP``I!$``!S/``#`$0``',\``,@1
|
||||
M```<QP``U!$```($``#<$0```@0``/`1```<U0``&!(```*K```<$@```@0`
|
||||
M`"`2```"0@``3!(``!S6``!<$@``',4``&P2```<U@``@!(``!S6``"4$@``
|
||||
M'-8``*@2```<U@``P!(``!S6``#8$@``'-8``.P2```<U@```!,``!S6```4
|
||||
M$P``'-8``"@3```<U@``/!,``!S6``!0$P``'-8``&`3```<M0``<!,``!S6
|
||||
M``"$$P``'-8``)@3```<U@``K!,``!S6``#($P```JL``,P3```"J@``T!,`
|
||||
M``($``#4$P```JL``-@3```"JP``W!,```*K``#@$P```JL``.03```"JP``
|
||||
MZ!,```*K``#L$P```JL``/`3```"JP``]!,```*K``#X$P```JL``/P3```"
|
||||
MJP```!0```*K```$%````JL```@4```"JP``#!0```*K```0%````JL``!04
|
||||
M```"JP``A!0``!RS``"8%```'+,``+`4```<LP``'!4``!RS```L%0```@0`
|
||||
M`*`5```<LP``!!8``!RS``!P%@``'+,``)P6```"!```V!8``!RS```D%P``
|
||||
M'+,``#P7```<LP``J!<``!RS``#(%P```@0``%P8```"!```$!D``!S%```T
|
||||
M&0``',\``%09```"!```7!D```*K``"$&0``',4``+@:```<Q0``V!H``!S/
|
||||
M``"(&P``',(``-@;```<SP``#!P```($```0'````JL``!0<```"JP``&!P`
|
||||
M``($``#T'```',(``&`=```<V```;!T```($``!P'0```@0``(@=```<V0``
|
||||
MF!T``!RU``#$'0```@0``.P=```<Q0``#!X``!S:```D'@``'-D``$@>```<
|
||||
MM0``6!X``!RU``!L'@``'+@``+P>```<M0``"!\``!RX```P'P``',(``$@?
|
||||
M```<TP``;!\``!S/``"$'P``'+4``*`?```"!```I!\```*K``"H'P```@0`
|
||||
M`,0?```<N```U!\``!RU``#D'P``'-D```@@```<V0``%"```!S9```H(```
|
||||
M',4``%0@```<M0``9"```!RU``"`(```'+4``+`@```<N```W"````($``#@
|
||||
M(````JL``.0@```"!```_"```!S<```H(0``'+4``#@A```<M0``?"$```($
|
||||
M``"`(0```@0``+PA```<R0``Q"$``!S<``#D(0``'+4``/@A```<QP``#"(`
|
||||
M`!S/```4(@``',<``$`B```"!```<"(``!RU``"$(@``'-D``)@B```<V0``
|
||||
MS"(``!S%``!,(P``',4``'PC```<TP``K",``!RS``"D)```'+4``/0D```<
|
||||
MV0``$"4``!S"``!,)0``'-,``*PE```<W```R"4``!S<``#0)0``'+4``/0E
|
||||
M```<R@``!"8``!S%```\)@``'+4``$PF```<Q0``6"8``!RU``"`)@``'+4`
|
||||
M`(PF```<Q0``F"8```($``"<)@```JL``*`F```"JP``I"8```($``"H)@``
|
||||
M`@0``*PF```"OP``L"8```*K``"T)@```JL``+@F```"JP```"<``!S9``!8
|
||||
M)P``'-D``+@G```<Q0``Q"<```($``#()P```JL``/0G```<W```_"<``!RU
|
||||
M```<*```'+4``$`H```<Q0``R"@``!RU```P*0``'=\``#0I```"OP``."D`
|
||||
M``($```\*0```JL``'PI```<Q0``G"D``!S'``"D*0``',<``-`I```<V```
|
||||
MU"D``!S7```T*@``',<``$`J```<Q0``6"H``!S/``!@*@``',<``(`J```"
|
||||
M!```A"H```*K``"0*@```JL```0K```<X0``!"T``!S/```<+0```@0``"0M
|
||||
M```"!```,"T``!S%``"0+0``',(``)@M```"JP``G"T```($``"@+0```K\`
|
||||
M`.`M```"!```$"X``!S%```D+@``'.,``#PN```=XP``0"X```($``!$+@``
|
||||
M`JL``.0N```"!```Z"X```($``!(+P```@0``'@O```<X0``?"\``!SG``"X
|
||||
M+P``',(``,`O```"!```R"\```*_``#@,```'+4``/`P```<M0``+#$``!S/
|
||||
M``!(,0```@0``'@Q```<M0``L#$``!S9``#4,@``',(``!`S```<M0``.#,`
|
||||
M`!S3``!H,P``'-,``)@S```<M0``K#,``!RU``#(,P``',D``-@S```"!```
|
||||
M##0``!SH```D-```'.@``'PT```<P@``+#4``!S"``!T-0``'.D``%0V```<
|
||||
MP@```#<``!S%``!<-P``'-D``'0W```<TP``I#<``!WI``"P-P```@0``+0W
|
||||
M```"!```N#<```*K```$.```'+@``"0X```<TP``,#@``!RU``!8.````@0`
|
||||
M`%PX```"!```:#@``!S<``"4.```'+4``*0X```<M0``N#@``!SJ``#8.```
|
||||
M`@0``.PX```<W```'#D``!RU```L.0``'+4``(`Y```<W```G#D``!RU``"L
|
||||
M.0``'+4``+PY```<Z@``&#H``!SJ```T.@``'+@``%`Z```<P@``<#H``!RU
|
||||
M``"`.@``'+8``)@Z```<V0``P#H``!RX```<.P```@0``"`[```"!```)#L`
|
||||
M``($``!(.P``'-\``&@[```<M```B#L``!S9``"P.P``',4``-`[```<ZP``
|
||||
MX#L``!SL``#D.P``'.H``/@[```"!```_#L```*K```H/```'.$``#@\```<
|
||||
M[```8#P``!RU``!P/```'+4``(`\```<M0``F#P``!RX``"H/```'+4``-`\
|
||||
M```<SP``\#P``!SJ```0/0```@0``*`]```<TP``L#T``!S'``#4/0``'-,`
|
||||
M`/0]```<X0``_#T``!S:```</@``'.L``"P^```<[```,#X``!SJ``!,/@``
|
||||
M'+4``%P^```<M0``;#X``!SJ``"H/@``'+4``-@^```<QP``[#X``!S3```0
|
||||
M/P``'-,``"@_```<QP``9#\```($``!H/P```K\``.@_```<W```_#\``!RX
|
||||
M```80```',,``#!````<P@``1$```!RX``#X0```'/$``$A!```<[P``6$$`
|
||||
M``*_``!<00```@0``&!!```"!```J$$``!SP``#,00``'.X``-Q!```"!```
|
||||
M^$$``!RX``"`10``'+@``&Q&```"!```<$8```($``!T1@```@0``'A&```"
|
||||
M!```D$8``!RU``"@1@``'.@``,A&```<R0``4$<``!S"``#41P``',(``"Q(
|
||||
M```<Z0``.$@```($``"02```',(``.1(```<Q0``'$D``!S"``!\20``'/$`
|
||||
M`,Q)```<P@``[$D``!S%``#P20``',X``"!*```<Q```-$H``!S%```X2@``
|
||||
M',X``%Q*```<R0``B$H``!RU``"82@``'+4``.Q*```<Q0``^$H``!S%```$
|
||||
M2P``',4``#Q+```"!```0$L```*K``!$2P```@0``$A+```"JP``3$L```*K
|
||||
M``!02P```JL``%1+```"JP``6$L```*K``#<2P``',$``.A+```<M0``_$L`
|
||||
M`!RX``!03```'-(``/A,```<[@``%$T``!S2``"430``'+@``"Q.```<[@``
|
||||
M0$X``!RX``!83@``'+@``*Q.```<T@``_$X``!SM```,3P```@0``!!/```"
|
||||
MOP``%$\```($```83P```@0``!Q/```"!```1$\``!RX``!X3P``'?```+A/
|
||||
M```<\0``'%```!SP```T4```'/$``(A0```"OP``C%````($``"04````@0`
|
||||
M`/A0```<N```,%$``!ST``"$40``'/```*Q1```<]```Q%$```*_``#(40``
|
||||
M`@0```A2```<T@``L%(``!S/``#T4@```@0``/A2```"!```3%,``!S%``!D
|
||||
M4P``',D``'13```<R0``E%,``!S)``"D4P``',D``+13```<R0``7%0``!S"
|
||||
M``!X5```'+(``$Q6```<M0``A%8``!S"```X60``',(``'!9```<P@``I%D`
|
||||
M`!S"``!,6P```@0``%!;```"JP``6%L```($``!<6P```K\``(!;```<U```
|
||||
ME%L``!SW``"D6P``',X``,!;```<Q0``S%L``!S%``#46P``',4``.!;```<
|
||||
M\@``\%L``!S@```47```',4``"!<```<Q0``,%P``!S%```\7```',4``$A<
|
||||
M```<Q0``4%P``!SC``!<7````@0``&!<```"!```9%P```*K``!H7````JL`
|
||||
M`&Q<```"JP``<%P```*K``!T7````JL``'A<```"JP``?%P```*K``"`7```
|
||||
M`JL````````J`@````````"Q```(````*@(``!`````J`@``&````"H"```@
|
||||
M````*@(``"@````J`@``,````"H"```X````*@(``$`````J`@``2````"H"
|
||||
M``!0````*@(``%@````J`@``8````"H"``!H````*@(``'`````J`@``>```
|
||||
M`"H"``"`````*@(``(@````J`@``D````"H"``"8````*@(``*`````J`@``
|
||||
MJ````"H"``"P````*@(``+@````J`@``P````"H"``#(````*@(``-`````J
|
||||
M`@``V````"H"``#@````*@(``.@````J`@``\````"H"``#X````*@(````!
|
||||
M```J`@``"`$``"H"```0`0``*@(``!@!```J`@``(`$``"H"```H`0``*@(`
|
||||
M`#`!```J`@``.`$``"H"``!``0``*@(``$@!```J`@``4`$``"H"``!8`0``
|
||||
M*@(``&`!```J`@``:`$``"H"``!P`0``*@(``'@!```J`@``@`$``"H"``"(
|
||||
M`0``*@(``)`!```J`@``F`$``"H"``"@`0``*@(``*@!```J`@``L`$``"H"
|
||||
M``"X`0``*@(``,`!```J`@``R`$``"H"``#0`0``*@(``-@!```J`@``X`$`
|
||||
M`"H"``#H`0``*@(``/`!```J`@``^`$``"H"`````@``*@(```@"```J`@``
|
||||
M$`(``"H"```8`@``*@(``"`"```J`@``*`(``"H"```P`@``*@(``#@"```J
|
||||
+`@``0`(``"H"````
|
||||
`
|
||||
end
|
||||
58
drivers/mtd/rknand/nand_config.h
Executable file
58
drivers/mtd/rknand/nand_config.h
Executable file
@@ -0,0 +1,58 @@
|
||||
/********************************************************************************
|
||||
*********************************************************************************
|
||||
COPYRIGHT (c) 2004 BY ROCK-CHIP FUZHOU
|
||||
-- ALL RIGHTS RESERVED --
|
||||
|
||||
File Name: nand_config.h
|
||||
Author: RK28XX Driver Develop Group
|
||||
Created: 25th OCT 2008
|
||||
Modified:
|
||||
Revision: 1.00
|
||||
********************************************************************************
|
||||
********************************************************************************/
|
||||
#ifndef _NAND_CONFIG_H
|
||||
#define _NAND_CONFIG_H
|
||||
#define DRIVERS_NAND
|
||||
#define LINUX
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/delay.h>
|
||||
//#include <asm/arch-rockchip/hardware.h>
|
||||
#include "typedef.h"
|
||||
#include <mach/rk29_iomap.h>
|
||||
#include <mach/iomux.h>
|
||||
//#include "epphal.h"
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL (void*)0
|
||||
#endif
|
||||
|
||||
#include "FTL_OSDepend.h"
|
||||
#include "flash.h"
|
||||
#include "ftl.h"
|
||||
|
||||
#ifdef CONFIG_MTD_NAND_RK29XX_DEBUG
|
||||
#undef RKNAND_DEBUG
|
||||
#define RKNAND_DEBUG(format, arg...) \
|
||||
printk(KERN_NOTICE format, ## arg);
|
||||
#else
|
||||
#undef RKNAND_DEBUG
|
||||
#define RKNAND_DEBUG(n, arg...)
|
||||
#endif
|
||||
|
||||
extern void rkNand_cond_resched(void);
|
||||
|
||||
#define COND_RESCHED() rkNand_cond_resched()//cond_resched()
|
||||
|
||||
#define PRINTF RKNAND_DEBUG
|
||||
#endif
|
||||
|
||||
737
drivers/mtd/rknand/rknand_base.c
Executable file
737
drivers/mtd/rknand/rknand_base.c
Executable file
@@ -0,0 +1,737 @@
|
||||
/*
|
||||
* linux/drivers/mtd/rknand/rknand_base.c
|
||||
*
|
||||
* Copyright (C) 2005-2009 Fuzhou Rockchip Electronics
|
||||
* ZYF <zyf@rock-chips.com>
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include "api_flash.h"
|
||||
|
||||
|
||||
#define DRIVER_NAME "rk29xxnand"
|
||||
|
||||
#define NAND_DEBUG_LEVEL0 0
|
||||
#define NAND_DEBUG_LEVEL1 1
|
||||
#define NAND_DEBUG_LEVEL2 2
|
||||
#define NAND_DEBUG_LEVEL3 3
|
||||
long FTLWriteCount =0;
|
||||
long FTLReadWriteTime =0;
|
||||
long FTLSwapWriteCount =0;
|
||||
long FTLPageWriteCount =0;
|
||||
|
||||
|
||||
#ifndef CONFIG_RKFTL_PAGECACHE_SIZE
|
||||
#define CONFIG_RKFTL_PAGECACHE_SIZE 64 //<2F><><EFBFBD><EFBFBD>pageӳ<65><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λΪMB,mount <20><>/data/data<74>¡<EFBFBD>
|
||||
#endif
|
||||
|
||||
#define use_image
|
||||
|
||||
#ifdef use_image
|
||||
unsigned long SysImageWriteEndAdd = 0;
|
||||
int g_num_partitions = 0;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MTD_NAND_RK29XX_DEBUG
|
||||
static int s_debug = CONFIG_MTD_NAND_RK29XX_DEBUG_VERBOSE;
|
||||
//module_param(s_debug, int, 0);
|
||||
//MODULE_PARM_DESC(s_debug, "Set Debug Level 0=quiet, 5=noisy");
|
||||
#undef NAND_DEBUG
|
||||
/*#define NAND_DEBUG(n, format, arg...) \
|
||||
if (n <= s_debug) { \
|
||||
printk(KERN_NOTICE __FILE__ ":%s(): " format "\n", __FUNCTION__ , ## arg); \
|
||||
}*/
|
||||
#define NAND_DEBUG(n, format, arg...) \
|
||||
if (n <= s_debug) { \
|
||||
printk(format,##arg); \
|
||||
}
|
||||
#else
|
||||
#undef NAND_DEBUG
|
||||
#define NAND_DEBUG(n, arg...)
|
||||
static const int s_debug = 0;
|
||||
#endif
|
||||
|
||||
long RkFtlWriteCount;
|
||||
|
||||
/*
|
||||
* RK28 LBA PARTITIONS,the size and offset value below is default value in this program,
|
||||
* when RK28 LBA FLASH init,the value will be modify to the value in the nand flash.
|
||||
*/
|
||||
#define MAX_FLASH_PARTITION 2
|
||||
|
||||
#define ROOTFS_PART_SIZE 300
|
||||
#define PARA_PART_SIZE 1
|
||||
#define KERNEL_PART_SIZE 4
|
||||
|
||||
static struct mtd_partition rk28_partition_info[] = {
|
||||
{
|
||||
name: "misc",
|
||||
offset: 0x2000*0x200,
|
||||
size: 0x2000*0x200,//100MB
|
||||
},
|
||||
|
||||
{
|
||||
name: "kernel",
|
||||
offset: 0x4000*0x200,
|
||||
size: 0x4000*0x200,//200MB
|
||||
},
|
||||
|
||||
{
|
||||
name: "boot",
|
||||
offset: 0x8000*0x200,
|
||||
size: 0x2000*0x200,//200MB
|
||||
},
|
||||
|
||||
{
|
||||
name: "system",
|
||||
offset: 0xE000*0x200,
|
||||
size: 0x38000*0x200,//200MB
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
|
||||
static struct mtd_partition rk28_page_part_info[] = {
|
||||
{
|
||||
name: "pagecache",
|
||||
offset: 0,
|
||||
size: CONFIG_RKFTL_PAGECACHE_SIZE * 0x800,//32MB
|
||||
},
|
||||
|
||||
{
|
||||
name: "swap",
|
||||
offset: (CONFIG_RKFTL_PAGECACHE_SIZE) * 0x800,
|
||||
size: 64 * 0x800,//64MB
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* onenand_state_t - chip states
|
||||
* Enumeration for OneNAND flash chip state
|
||||
*/
|
||||
typedef enum {
|
||||
FL_READY,
|
||||
FL_READING,
|
||||
FL_WRITING,
|
||||
FL_ERASING,
|
||||
FL_SYNCING,
|
||||
FL_UNVALID,
|
||||
} rknand_state_t;
|
||||
|
||||
struct rknand_chip {
|
||||
wait_queue_head_t wq;
|
||||
rknand_state_t state;
|
||||
int rknand_schedule_enable;//1 enable ,0 disable
|
||||
void (*pFlashCallBack)(void);//call back funtion
|
||||
};
|
||||
|
||||
struct rknand_info {
|
||||
struct mtd_info mtd;
|
||||
struct mtd_info page_mtd;
|
||||
struct mtd_partition *parts;
|
||||
struct rknand_chip rknand;
|
||||
struct task_struct *thread;
|
||||
};
|
||||
|
||||
struct rknand_info * gpNandInfo;
|
||||
static int rknand_get_device(int new_state)
|
||||
{
|
||||
struct rknand_chip *nand_info = &gpNandInfo->rknand;
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
while (1) {
|
||||
if (nand_info->state == FL_READY) {
|
||||
nand_info->state = new_state;
|
||||
break;
|
||||
}
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL1,"FLASH not ready\n");
|
||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
add_wait_queue(&nand_info->wq, &wait);
|
||||
schedule();
|
||||
remove_wait_queue(&nand_info->wq, &wait);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rknand_release_device(void)
|
||||
{
|
||||
struct rknand_chip *nand_info = &gpNandInfo->rknand;
|
||||
if(nand_info->pFlashCallBack)
|
||||
nand_info->pFlashCallBack();//call back
|
||||
nand_info->pFlashCallBack = NULL;
|
||||
nand_info->state = FL_READY;
|
||||
wake_up(&nand_info->wq);
|
||||
}
|
||||
|
||||
void rkNand_cond_resched(void)
|
||||
{
|
||||
if(gpNandInfo->rknand.rknand_schedule_enable == 1)
|
||||
{
|
||||
//msleep(1);
|
||||
//mdelay(1);
|
||||
cond_resched();
|
||||
}
|
||||
}
|
||||
|
||||
static int rk28xxnand_read(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
size_t *retlen, u_char *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
int sector = len>>9;
|
||||
int LBA = (int)(from>>9);
|
||||
//printk(KERN_NOTICE "read: from=%x,len=%x,\n",(int)from,len);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL1,"-");
|
||||
//FTLReadWriteTime++;
|
||||
//if(len&511)
|
||||
// printk("rk28xxnand_read: from=%x,len=%x,\n",(int)from,len);
|
||||
rknand_get_device(FL_READING);
|
||||
if(sector)
|
||||
{
|
||||
{
|
||||
ret = FtlRead(2,LBA, sector, buf);
|
||||
}
|
||||
}
|
||||
rknand_release_device();
|
||||
*retlen = len;
|
||||
return 0;//ret;
|
||||
}
|
||||
|
||||
// cmy: before cache part use FtlWriteImage, after cache(include cache) use FtlWrite
|
||||
static int write_Image(int LBA, int sector, u_char* buf)
|
||||
{
|
||||
int remain_sector = sector;
|
||||
int write_sector = 0;
|
||||
u_char* data = buf;
|
||||
int index = LBA;
|
||||
int ret = 0;
|
||||
while(remain_sector > 0)
|
||||
{
|
||||
write_sector = remain_sector>32?32:remain_sector;
|
||||
ret = FtlWriteImage(index, write_sector, data);
|
||||
data += write_sector<<9;
|
||||
index += write_sector;
|
||||
remain_sector -= write_sector;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rk28xxnand_write(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
size_t *retlen, u_char *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
int sector = len>>9;
|
||||
int LBA = (int)(from>>9);
|
||||
//NAND_DEBUG(NAND_DEBUG_LEVEL0,"+");
|
||||
FTLWriteCount+=sector;
|
||||
FTLReadWriteTime++;
|
||||
//dump_stack();
|
||||
//printk(KERN_NOTICE "write: from=%lx,len=%x\n",(int)from,len);
|
||||
rknand_get_device(FL_WRITING);
|
||||
if(sector)// cmy
|
||||
{
|
||||
#ifdef use_image
|
||||
if(LBA < SysImageWriteEndAdd)//0x4E000)
|
||||
{
|
||||
printk(">>> FtlWriteImage: LBA=0x%08X sector=%d\n",LBA, sector);
|
||||
|
||||
ret = FtlWriteImage(LBA&0xFFFFFFE0, sector, buf);// LBA align to 32
|
||||
}
|
||||
#else
|
||||
if(LBA<0x4E000)
|
||||
ret = write_Image(LBA, sector, buf);
|
||||
#endif
|
||||
else
|
||||
{
|
||||
ret = FtlWrite(2,LBA, sector, buf);
|
||||
}
|
||||
}
|
||||
rknand_release_device();
|
||||
*retlen = len;
|
||||
return 0;//ret;
|
||||
}
|
||||
|
||||
static int rk28xxnand_page_write(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
size_t *retlen, u_char *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
int sector = len;
|
||||
int LBA = (int)(from);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL1,"*");
|
||||
FTLWriteCount+=sector;
|
||||
//printk("+");
|
||||
//printk(KERN_NOTICE "pagewrite: from=%lx,len=%x\n",(int)from,len);
|
||||
rknand_get_device(FL_WRITING);
|
||||
if(sector)// cmy
|
||||
{
|
||||
ret = FtlPageWrite(LBA, sector, buf);
|
||||
}
|
||||
rknand_release_device();
|
||||
*retlen = len;
|
||||
return 0;//ret;
|
||||
}
|
||||
|
||||
static int rk28xxnand_page_read(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
size_t *retlen, u_char *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
int sector = len;
|
||||
int LBA = (int)(from);
|
||||
//printk(KERN_NOTICE "read: from=%x,len=%x,\n",(int)from,len);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL2,"-");
|
||||
//printk("-");
|
||||
//if(len&511)
|
||||
// printk("rk28xxnand_read: from=%x,len=%x,\n",(int)from,len);
|
||||
rknand_get_device(FL_READING);
|
||||
if(sector)
|
||||
{
|
||||
ret = FtlPageRead(LBA, sector, buf);
|
||||
}
|
||||
rknand_release_device();
|
||||
*retlen = len;
|
||||
return 0;//ret;
|
||||
}
|
||||
|
||||
|
||||
static int rk28xxnand_erase(struct mtd_info *mtd, struct erase_info *instr)
|
||||
{
|
||||
int ret = 0;
|
||||
if (instr->callback)
|
||||
instr->callback(instr);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_erase,add:%x,len:%x\n",instr->addr,instr->len);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rk28xxnand_read_oob(struct mtd_info *mtd, loff_t from,
|
||||
struct mtd_oob_ops *ops)
|
||||
{
|
||||
int ret = 0;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_read_oob\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static int rk28xxnand_write_oob(struct mtd_info *mtd, loff_t to,
|
||||
struct mtd_oob_ops *ops)
|
||||
{
|
||||
int ret=0;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_write_oob\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int rk28xxnand_suspend(struct platform_device *dev, pm_message_t pm)
|
||||
{
|
||||
gpNandInfo->rknand.rknand_schedule_enable = 0;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xx_nand_suspend: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk28xxnand_resume(struct platform_device *dev)
|
||||
{
|
||||
gpNandInfo->rknand.rknand_schedule_enable = 1;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xx_nand_resume: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk28xxnand_block_isbad(struct mtd_info *mtd, loff_t ofs)
|
||||
{
|
||||
//printk("rk28xxnand_block_isbad: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk28xxnand_block_markbad(struct mtd_info *mtd, loff_t ofs)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_block_markbad: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rk28xxnand_sync(struct mtd_info *mtd)
|
||||
{
|
||||
/* Grab the lock and see if the device is available */
|
||||
rknand_get_device(FL_SYNCING);
|
||||
/* Release it and go back */
|
||||
rknand_release_device();
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_sync: \n");
|
||||
}
|
||||
|
||||
static int rk28xxnand_lock(struct mtd_info *mtd, loff_t ofs, size_t len)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_lock: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk28xxnand_unlock(struct mtd_info *mtd, loff_t ofs, size_t len)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_unlock: \n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rk28xxnand_init(struct rknand_info *nand_info)
|
||||
{
|
||||
struct mtd_info *mtd = &nand_info->mtd;
|
||||
struct mtd_info *page_mtd = &nand_info->page_mtd;
|
||||
struct rknand_chip *rknand = &nand_info->rknand;
|
||||
|
||||
rknand->state = FL_READY;
|
||||
rknand->rknand_schedule_enable = 1;
|
||||
rknand->pFlashCallBack = NULL;
|
||||
init_waitqueue_head(&rknand->wq);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"FTLInit ...: \n");
|
||||
if(FTLInit())
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"FTLInit Error: \n");
|
||||
return -ENXIO;
|
||||
}
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"FTLInit OK: \n");
|
||||
mtd->size = (uint64_t)FtlGetCapacity(0xFF)*0x200;
|
||||
//readflash modify rk28_partition_info
|
||||
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"mtd->size: 0x%012llx\n",mtd->size);
|
||||
mtd->oobsize = 0;
|
||||
mtd->oobavail = 0;
|
||||
mtd->ecclayout = 0;
|
||||
mtd->erasesize = FlashGetPageSize()*0x200; //sector
|
||||
mtd->writesize = FlashGetPageSize()*0x200;
|
||||
|
||||
// Fill in remaining MTD driver data
|
||||
mtd->type = MTD_NANDFLASH;//MTD_RAM;//
|
||||
mtd->flags = (MTD_WRITEABLE|MTD_NO_ERASE);//
|
||||
mtd->erase = rk28xxnand_erase;
|
||||
mtd->point = NULL;
|
||||
mtd->unpoint = NULL;
|
||||
mtd->read = rk28xxnand_read;
|
||||
mtd->write = rk28xxnand_write;
|
||||
mtd->read_oob = rk28xxnand_read_oob;
|
||||
mtd->write_oob = rk28xxnand_write_oob;
|
||||
mtd->panic_write = NULL;
|
||||
|
||||
mtd->sync = rk28xxnand_sync;
|
||||
mtd->lock = rk28xxnand_lock;
|
||||
mtd->unlock = rk28xxnand_unlock;
|
||||
mtd->suspend = rk28xxnand_suspend;
|
||||
mtd->resume = rk28xxnand_resume;
|
||||
mtd->block_isbad = rk28xxnand_block_isbad;
|
||||
mtd->block_markbad = rk28xxnand_block_markbad;
|
||||
mtd->owner = THIS_MODULE;
|
||||
|
||||
page_mtd->size = FtlGetPageZoneCapacity();
|
||||
//readflash modify rk28_partition_info
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"page_mtd->size: %x\n",page_mtd->size);
|
||||
page_mtd->oobsize = 0;
|
||||
page_mtd->oobavail = 0;
|
||||
page_mtd->ecclayout = 0;
|
||||
page_mtd->erasesize = FlashGetPageSize(); //sector
|
||||
page_mtd->writesize = FlashGetPageSize();
|
||||
|
||||
// Fill in remaining MTD driver data
|
||||
page_mtd->type = MTD_NANDFLASH;//MTD_RAM;//
|
||||
page_mtd->flags = (MTD_WRITEABLE|MTD_NO_ERASE);//
|
||||
page_mtd->erase = rk28xxnand_erase;
|
||||
page_mtd->point = NULL;
|
||||
page_mtd->unpoint = NULL;
|
||||
page_mtd->read = rk28xxnand_page_read;
|
||||
page_mtd->write = rk28xxnand_page_write;
|
||||
page_mtd->read_oob = rk28xxnand_read_oob;
|
||||
page_mtd->write_oob = rk28xxnand_write_oob;
|
||||
page_mtd->panic_write = NULL;
|
||||
|
||||
page_mtd->sync = rk28xxnand_sync;
|
||||
page_mtd->lock = rk28xxnand_lock;
|
||||
page_mtd->unlock = rk28xxnand_unlock;
|
||||
page_mtd->suspend = rk28xxnand_suspend;
|
||||
page_mtd->resume = rk28xxnand_resume;
|
||||
page_mtd->block_isbad = rk28xxnand_block_isbad;
|
||||
page_mtd->block_markbad = rk28xxnand_block_markbad;
|
||||
page_mtd->owner = THIS_MODULE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* CMY: <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>֧<EFBFBD><D6A7>
|
||||
* <09><>cmdline<6E><65><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>cmdline<6E>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>з<EFBFBD><D0B7><EFBFBD>
|
||||
* <09><>cmdlineû<65><C3BB><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD>ϵķ<CFB5><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ(rk28_partition_info)<29><><EFBFBD>з<EFBFBD><D0B7><EFBFBD>
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_MTD_CMDLINE_PARTS
|
||||
const char *part_probes[] = { "cmdlinepart", NULL };
|
||||
#endif
|
||||
|
||||
static int rk28xxnand_add_partitions(struct rknand_info *nand_info)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"Enter rk28xxnand_add_partitions\n");
|
||||
#ifdef CONFIG_MTD_CMDLINE_PARTS
|
||||
int num_partitions = 0;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
num_partitions = parse_mtd_partitions(&(nand_info->mtd), part_probes, &nand_info->parts, 0);
|
||||
printk("num_partitions = %d\n",num_partitions);
|
||||
if(num_partitions > 0) {
|
||||
int i;
|
||||
for (i = 0; i < num_partitions; i++)
|
||||
{
|
||||
//printk(KERN_ERR"111 offset 0x%012llx size :0x%012llx\n",nand_info->parts[i].offset, nand_info->parts[i].size);
|
||||
nand_info->parts[i].offset *= 0x200;
|
||||
nand_info->parts[i].size *=0x200;
|
||||
//printk(KERN_ERR"offset 0x%012llx size :0x%012llx\n",nand_info->parts[i].offset, nand_info->parts[i].size);
|
||||
}
|
||||
nand_info->parts[num_partitions - 1].size = nand_info->mtd.size - nand_info->parts[num_partitions - 1].offset;
|
||||
|
||||
#ifdef use_image
|
||||
g_num_partitions = num_partitions;
|
||||
#endif
|
||||
return add_mtd_partitions(&nand_info->mtd, nand_info->parts, num_partitions);
|
||||
}
|
||||
#endif
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ṩ<EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD>ϵķ<CFB5><C4B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
printk("parse_mtd_partitions\n");
|
||||
|
||||
// rk28_partition_info[1].size = nand_info->mtd.size - ((ROOTFS_PART_SIZE + PARA_PART_SIZE + KERNEL_PART_SIZE)*0x100000);
|
||||
// rk28_partition_info[2].offset = rk28_partition_info[1].size + rk28_partition_info[1].offset;
|
||||
#ifdef use_image
|
||||
g_num_partitions = sizeof(rk28_partition_info)/sizeof(struct mtd_partition);
|
||||
#endif
|
||||
return add_mtd_partitions(&nand_info->mtd, rk28_partition_info, sizeof(rk28_partition_info)/sizeof(struct mtd_partition));//MAX_FLASH_PARTITION);
|
||||
}
|
||||
|
||||
static int __devinit rk28xxnand_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct rknand_info *nand_info;
|
||||
struct mtd_partition *parts;
|
||||
int i;
|
||||
struct resource *res = pdev->resource;
|
||||
int err = 0;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_probe: \n");
|
||||
gpNandInfo = kzalloc(sizeof(struct rknand_info), GFP_KERNEL);
|
||||
if (!gpNandInfo)
|
||||
return -ENOMEM;
|
||||
|
||||
nand_info = gpNandInfo;
|
||||
|
||||
nand_info->mtd.name = dev_name(&pdev->dev);//pdev->dev.bus_id
|
||||
nand_info->mtd.priv = &nand_info->rknand;
|
||||
nand_info->mtd.owner = THIS_MODULE;
|
||||
|
||||
nand_info->page_mtd.name = dev_name(&pdev->dev);//pdev->dev.bus_id
|
||||
nand_info->page_mtd.priv = &nand_info->rknand;
|
||||
nand_info->page_mtd.owner = THIS_MODULE;
|
||||
|
||||
if(rk28xxnand_init(nand_info))
|
||||
{
|
||||
err = -ENXIO;
|
||||
goto exit_free;
|
||||
}
|
||||
|
||||
/*{
|
||||
char pbuf[512];
|
||||
GetSNSectorInfo(pbuf);
|
||||
printk("SN: %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x",pbuf[2],pbuf[3],pbuf[4],pbuf[5],pbuf[6],pbuf[7],pbuf[8],pbuf[9],
|
||||
pbuf[10],pbuf[11],pbuf[12],pbuf[13],pbuf[14],pbuf[15],pbuf[16],pbuf[17]);
|
||||
} */
|
||||
|
||||
rk28xxnand_add_partitions(nand_info);
|
||||
return 0;
|
||||
|
||||
#if 0
|
||||
nand_info->page_mtd.name = "pagecache";
|
||||
add_mtd_device(&nand_info->page_mtd);
|
||||
#else
|
||||
//rk28_page_part_info[1].size = nand_info->page_mtd.size - rk28_page_part_info[0].size;
|
||||
//add_mtd_partitions(&nand_info->page_mtd, rk28_page_part_info, 2);
|
||||
#endif
|
||||
|
||||
#ifdef use_image
|
||||
parts = nand_info->parts;
|
||||
for(i=0;i<g_num_partitions;i++)
|
||||
{
|
||||
printk(">>> part[%d]: name=%s offset=0x%X\n", i, parts[i].name, parts[i].offset);
|
||||
if(strcmp(parts[i].name,"cache") == 0)
|
||||
{
|
||||
SysImageWriteEndAdd = parts[i].offset;
|
||||
printk(">>> SysImageWriteEndAdd=0x%X\n", SysImageWriteEndAdd);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
FtlSetSysProtAddr(SysImageWriteEndAdd);
|
||||
dev_set_drvdata(&pdev->dev, nand_info);
|
||||
|
||||
return 0;
|
||||
|
||||
exit_free:
|
||||
if(nand_info)
|
||||
kfree(nand_info);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int __devexit rknand_remove(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct rknand_info *nand_info = dev_get_drvdata(&pdev->dev);
|
||||
struct resource *res = pdev->resource;
|
||||
unsigned long size = res->end - res->start + 1;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xx_rknand_remove: \n");
|
||||
dev_set_drvdata(&pdev->dev, NULL);
|
||||
|
||||
if (nand_info) {
|
||||
if (nand_info->parts)
|
||||
del_mtd_partitions(&nand_info->mtd);
|
||||
else
|
||||
del_mtd_device(&nand_info->mtd);
|
||||
|
||||
//rknand_release(&nand_info->mtd);
|
||||
release_mem_region(res->start, size);
|
||||
kfree(nand_info);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void rk28xxnand_shutdown(struct platform_device *pdev)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rk28xxnand_shutdown\n");
|
||||
//rknand_get_device(FL_UNVALID);
|
||||
//FtlClose();
|
||||
//rknand_release_device();
|
||||
}
|
||||
|
||||
static struct platform_driver rknand_driver = {
|
||||
.probe = rk28xxnand_probe,
|
||||
.remove = rknand_remove,
|
||||
.suspend = rk28xxnand_suspend,
|
||||
.resume = rk28xxnand_resume,
|
||||
.shutdown = rk28xxnand_shutdown,
|
||||
.driver = {
|
||||
.name = DRIVER_NAME,
|
||||
.owner = THIS_MODULE,
|
||||
//.bus = &platform_bus_type,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
MODULE_ALIAS(DRIVER_NAME);
|
||||
|
||||
static int __init rknand_init(void)
|
||||
{
|
||||
int ret;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rknand_init: \n");
|
||||
ret = platform_driver_register(&rknand_driver);
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"platform_driver_register:ret = %x \n",ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __exit rknand_exit(void)
|
||||
{
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rknand_exit: \n");
|
||||
rknand_get_device(FL_UNVALID);
|
||||
FtlClose();
|
||||
rknand_release_device();
|
||||
platform_driver_unregister(&rknand_driver);
|
||||
}
|
||||
|
||||
module_init(rknand_init);
|
||||
module_exit(rknand_exit);
|
||||
|
||||
|
||||
#if 0//def CONFIG_rknand
|
||||
/*
|
||||
ע<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>sys dev <20><><EFBFBD>ڹػ<DAB9><D8BB><EFBFBD>λʱ<CEBB>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>flash<73>ؼ<EFBFBD><D8BC><EFBFBD>Ϣд<CFA2><D0B4>nand flash<73>У<EFBFBD><D0A3>´ο<C2B4><CEBF><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Կ<EFBFBD><D4BF>ٿ<EFBFBD><D9BF><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/timer.h>
|
||||
|
||||
static int rknand_sys_suspend(struct sys_device *dev, pm_message_t state)
|
||||
{
|
||||
struct rknand_chip *nand_info = &gpNandInfo->rknand;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"...rknand_sys_suspend...\n");
|
||||
extern void FtlCacheWriteBack(void);
|
||||
nand_info->rknand_schedule_enable = 0;
|
||||
if (nand_info->state == FL_READY)
|
||||
{
|
||||
nand_info->state = FL_WRITING;
|
||||
FtlCacheWriteBack();
|
||||
rknand_release_device();
|
||||
}
|
||||
else
|
||||
{
|
||||
nand_info->pFlashCallBack = FtlCacheWriteBack;
|
||||
}
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"...rknand_sys_suspend done...\n");
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static int rknand_sys_resume(struct sys_device *dev)
|
||||
{
|
||||
struct rknand_chip *nand_info = &gpNandInfo->rknand;
|
||||
nand_info->rknand_schedule_enable = 1;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"...rknand_sys_resume...\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rknand_sys_shutdown(struct sys_device *dev)
|
||||
{
|
||||
struct rknand_chip *nand_info = &gpNandInfo->rknand;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"...rknand_sys_shutdown...\n");
|
||||
nand_info->rknand_schedule_enable = 0;
|
||||
|
||||
if (nand_info->state == FL_READY)
|
||||
{
|
||||
//rknand_get_device(FL_UNVALID);
|
||||
nand_info->state = FL_UNVALID;
|
||||
FtlClose();
|
||||
rknand_release_device();
|
||||
}
|
||||
else
|
||||
{//flash not ready,use call back
|
||||
nand_info->pFlashCallBack = FtlClose;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct sysdev_class rknand_sysclass = {
|
||||
.name = "rknand_sysdev",
|
||||
.shutdown = rknand_sys_shutdown,
|
||||
.suspend = rknand_sys_suspend,
|
||||
.resume = rknand_sys_resume,
|
||||
};
|
||||
|
||||
static struct sys_device rknand_sysdevice = {
|
||||
.id = 0,
|
||||
.cls = &rknand_sysclass,
|
||||
};
|
||||
|
||||
static int __init rknand_sys_init(void)
|
||||
{
|
||||
int ret;
|
||||
NAND_DEBUG(NAND_DEBUG_LEVEL0,"rknand_sys_init!!!!!!!!!!!!!!\n");
|
||||
ret = sysdev_class_register(&rknand_sysclass);
|
||||
if (ret == 0)
|
||||
ret = sysdev_register(&rknand_sysdevice);
|
||||
return ret;
|
||||
}
|
||||
|
||||
device_initcall(rknand_sys_init);
|
||||
#endif
|
||||
|
||||
|
||||
MODULE_LICENSE("");
|
||||
MODULE_AUTHOR("ZYF <zyf@rock-chips.com>");
|
||||
MODULE_DESCRIPTION("FTL layer for SLC and MlC nand flash on RK28xx SDK boards");
|
||||
|
||||
|
||||
56
drivers/mtd/rknand/typedef.h
Executable file
56
drivers/mtd/rknand/typedef.h
Executable file
@@ -0,0 +1,56 @@
|
||||
|
||||
#ifndef __TYPEDEF_H
|
||||
#define __TYPEDEF_H
|
||||
|
||||
typedef volatile unsigned int REG32;
|
||||
typedef volatile unsigned short REG16;
|
||||
typedef volatile unsigned char REG8;
|
||||
|
||||
typedef int BOOLEAN;
|
||||
typedef BOOLEAN BOOL;
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
#define NULL 0
|
||||
#define OK 0
|
||||
#define ERROR !0
|
||||
|
||||
//typedef char * va_list;
|
||||
|
||||
|
||||
typedef unsigned int uint32;
|
||||
typedef unsigned int UINT32;
|
||||
typedef unsigned short UINT16;
|
||||
typedef unsigned char UINT8;
|
||||
typedef int INT32;
|
||||
typedef short INT16;
|
||||
typedef char INT8;
|
||||
|
||||
typedef unsigned char INT8U;
|
||||
typedef signed char INT8S;
|
||||
typedef unsigned short INT16U;
|
||||
typedef signed short INT16S;
|
||||
typedef int INT32S;
|
||||
typedef unsigned int INT32U;
|
||||
|
||||
typedef unsigned long L32U;
|
||||
typedef signed long L32S;
|
||||
|
||||
typedef unsigned char BYTE;
|
||||
|
||||
//typedef volatile unsigned int data_t;
|
||||
//typedef volatile unsigned int* addr_t;
|
||||
|
||||
typedef void (*pFunc)(void); //<2F><><EFBFBD>庯<EFBFBD><E5BAAF>ָ<EFBFBD><D6B8>, <20><><EFBFBD>ڵ<EFBFBD><DAB5>þ<EFBFBD><C3BE>Ե<EFBFBD>ַ
|
||||
|
||||
typedef unsigned char uint8;
|
||||
typedef signed char int8;
|
||||
typedef unsigned short uint16;
|
||||
typedef signed short int16;
|
||||
typedef signed long int32;
|
||||
typedef unsigned long long uint64;
|
||||
typedef signed long long int64;
|
||||
//typedef unsigned char bool;
|
||||
typedef unsigned short WCHAR;
|
||||
|
||||
#endif /*__TYPEDEF_H */
|
||||
Reference in New Issue
Block a user