/** @file mtd-nand.h @date 2010/05/27 @author 오재경 freefrug@falinux.com FALinux.Co.,Ltd. @brief mtd를 통해 nand 플래시를 제어한ㄷ.ㅏ @todo 테스트 함수를 아직 만들지 않았다. @bug @remark @warning */ // // 저작권 에프에이리눅스(주) // 외부공개 금지 // //---------------------------------------------------------------------------- #ifndef _MTD_NAND_HEADER_ #define _MTD_NAND_HEADER_ #define MAX_BADBLOCK_COUNT 100 #define RDERR_MANY_BADBLOCK -10000 typedef enum { EZP_NONE = 0, EZP_V1 = 1, EZP_V2 = 2, EZP_S5PV210_HEADER = 210 } ezboot_ver_t; /// mtd 를 위한 개별 관리 구조체 typedef struct { char node_name[128]; int fd; int pos; struct mtd_info_user info; } mtdnand_t; #ifdef __cplusplus extern "C" { #endif /// @{ /// @brief mtd-nand.c 에서 제공하는 함수 리스트 extern mtdnand_t *mtdnand_create( char *fname ); /// mtd-nand 생성함수 extern void mtdnand_free( mtdnand_t *mtd ); /// mtd-nand 해제함수 extern int mtdnand_is_bad( mtdnand_t *mtd ); /// 배드블럭확인 extern int mtdnand_read ( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에서 데이타를 읽는다. extern int mtdnand_write( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 에 데이타를 쓴다. extern int mtdnand_read_oob( mtdnand_t *mtd, unsigned char *buf, int count ); /// mtd-nand 의 oob 영역을 읽는다. extern int mtdnand_read_skip_bad( mtdnand_t *mtd, unsigned char *buf, int count ); // mtd-nand 에서 배드블럭을 스킵하여 데이타를 읽는다. extern int mtdnand_seek ( mtdnand_t *mtd, int offset, int origin ); /// mtd-nand 의 엑세스 위치를 이동한다 extern int mtdnand_erase( mtdnand_t *mtd ); /// mtd-nand 의 한블럭을 지운다. /// @} #ifdef __cplusplus } #endif #endif //