기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요

nand 에 관해서 궁금한점이 있어서 글올립니다.

nand쪽 소스를 보면
ecc mode라는것이 있는데요
ecc mode 중에는

ecc_soft , ecc_hw3_256, ecc_hw3_512, ecc_hw6_512, ecc_diskonchip

이런게 있더라고요.

이런 옵션이 bad와 관련이 있는듯해서요.

위에 것들에 대해서 설명 좀 부탁드려도 될까요? ^^

이세종

2008.06.13 06:28:05
*.62.58.102

MP2530용쪽 낸드 소스를 봤는데, 말씀하신 부분을 못찼았습니다. 소스라도 올려주시면...

문철민

2008.06.13 18:25:54
*.41.109.56

linux-2.4.18 int __init s3c2410_nand_init (void) 소스 중 발췌한것입니다.

#ifdef CONFIG_MTD_NAND_S3C2410_HWECC
this->calculate_ecc = s3c2410_calculate_ecc;//s3c2410_calculate_ecc_16;
this->enable_hwecc = s3c2410_enable_hwecc;
this->eccmode = NAND_ECC_HW3_256;//NAND_ECC_HW6_512;
#ifdef CONFIG_MTD_NAND_S3C2410_HWECC_DEBUG
this->correct_data = s3c2410_correct_data_debug;
printk(__FILE__": Using NAND H/W ECC, debug moden");
#else
this->correct_data = nand_correct_data;
printk(__FILE__": Using NAND H/W ECCn");
#endif /* CONFIG_S3C2410_HWECC_DEBUG */
#else
this->eccmode = NAND_ECC_SOFT;
printk(__FILE__": Using NAND S/W ECCn");
#endif /* CONFIG_S3C2410_HWECC */



- 여기서 this->eccmode = NAND_ECC_SOFT; 이렇게 설정하는부분에서요
define값을보면
#define NAND_ECC_NONE 0
#define NAND_ECC_SOFT 1
#define NAND_ECC_HW3_256 2
#define NAND_ECC_HW3_512 3
#define NAND_ECC_HW6_512 4
#define NAND_ECC_DISKONCHIP 5

이렇게되어있는데요. ecc mode를 설정하는 플레그인것 같은데
소스상에는 이것에 관한 설명이 없어서요.
ecc mode라는것과 ecc mode 설정값들의 역활이 알고싶어서요.

관심 감사합니다.

이제현

2008.06.14 03:48:22
*.41.109.34

2410에는 기본적으로 HW ECC가 내장되어 있지 않습니다.
그래서, 외부에 ECC 가속기칩을 달아서 사용한적이 있고요.

소프트웨어로 구현한 ECC를 사용하는 방법은 NAND_ECC_SOFT를 선택하시면 됩니다.
Access 속도가 엄청 느려지는 문제가 있습니다.

ECC는 1개의 Page에서 1~2비트 깨졌을때 복구하기 위한 것이며,
Bad block 관리와는 직접적인 관련은 없습니다.

최근 CPU들은 대부분 하드웨어 ECC를 포함하고 있으나,
그 구성과 사용 방법이 모두 상이하여, MTD 드라이버를 많이 수정해야 합니다.
또한 MLC/SLC/Large-block/Small-block에 따라 ECC 구성 방법도 다르고요.

이세종

2008.06.14 08:31:46
*.62.58.102

Bad Block은 각 Block의 첫번째와 두번째 Page의 Spare영역(16바이트)을 읽어서 체크합니다.
Spare영역의 특정 부분에 0xFF가 마킹되어 있지 않으면 배드블록으로 간주합니다.
AESOP-MP2530F 보드에 사용된 K9F1208U0M 낸드플래시의 경우 Spare영역의 6번째 바이트가 0xFF이면 Good 블록이고 0xFF 아니면 배드블록으로 처리합니다.

문철민

2008.06.16 17:22:32
*.41.109.56

자세한 답변 감사합니다^^
List of Articles
번호 제목 글쓴이 날짜 조회 수
268 랜 카드 두개 사용 tftp? [1] 손성원 2008-06-19 848
267 2440에 사용된 LCD 터치스크린 판매업체와 터치 콘넥터 판매업체 알... [1] 이운근 2008-06-18 812
266 smdk2410 보드 u-boot.bin가 안올라 갑니다. [1] 이재민 2008-06-14 904
265 [질문] 16c554 device driver 관련.[완료] [3] 윤창준 2008-06-13 1221
» [질문]nand ecc mode [5] 문철민 2008-06-13 1344
263 리눅스에서 링크로더쪽을 볼려고 하는데 찾기게 힘드네요.... [4] 손성원 2008-06-12 848
262 GTK를 이용해서 어플리케이션을 만들었는데여 font 에 관한 질문이... [1] 한진규 2008-06-10 662
261 시리얼 작동 확인 방법? [4] 손성원 2008-06-04 970
260 storage dev Read/Write속도 측정 [3] 정재용 2008-06-02 1072
259 ARM mutl-ice 중고 살려면 얼마 정도 생각 하면 됩니까? [2] 손성원 2008-06-02 927
258 UDP 포트에 대하여 [2] 김광준 2008-05-30 703
257 [완료] 혹시 여러분들은 개발문서를 작성하시는지요. [5] 오주열 2008-05-28 764
256 [질문/완료] x86프로세서 개발 관련해서 문의 드립니다. [4] 장병남 2008-05-24 708
255 [질문]uda1341 driver 문제 - 소스포함 문철민 2008-05-21 686
254 webcam driver관련 질문입니다. [3] 정원 2008-05-19 1046
253 [질문]레지스터 세팅에 관한 질문 [1] 문철민 2008-05-19 632
252 저기 혹시 DivX 플레이어 소스를 어디서 구할수 있는지 아시는 분... [1] 손성원 2008-05-19 702
251 [완료]interrupt에 대해서 한가지 여쭤봅니다. [2] 김경식 2008-05-16 733
250 2440 TFT-LCD.? [1] 손성원 2008-05-16 867
249 [re] 2440 TFT-LCD.? <== 다시 수정요 [1] 손성원 2008-05-16 723

사용자 로그인