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

안녕하세요

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
번호 제목 글쓴이 날짜sort 조회 수
1428 [질문] 16c554 device driver 관련.[완료] [3] 윤창준 2008-06-13 1221
» [질문]nand ecc mode [5] 문철민 2008-06-13 1344
1426 타겟보드간 ping테스트 관련 질문드립니다. [1] 정재용 2008-06-12 988
1425 usb장치를 그냥 뽑았을때의 커널 처리과정 질문 [3] 정재용 2008-06-12 1078
1424 리눅스에서 링크로더쪽을 볼려고 하는데 찾기게 힘드네요.... [4] 손성원 2008-06-12 858
1423 [완료] ARM vector에 관한 질문입니다. [4] 강성곤 2008-06-12 711
1422 NAND 2Gbyte 사용상의 문제 [4] 임의석 2008-06-11 981
1421 [완료]이솝보드에서 사용한 LOGIC IC 제거하려고 하는데요. [2] 임태진 2008-06-11 636
1420 2.6.17커널 USB자동 인식 질문드립니다. [1] 정재용 2008-06-11 1022
1419 [질문]RTC 오차 관련해서 질문 드립니다. [3] 백승준 2008-06-10 2680
1418 UART에 관해서 문의드립니다. [1] 김경식 2008-06-10 752
1417 wince 빌드 에러 [1] 홍성관 2008-06-10 1186
1416 GTK를 이용해서 어플리케이션을 만들었는데여 font 에 관한 질문이... [1] 한진규 2008-06-10 662
1415 s3c2440 커널 2.6.x USB hotplugging [1] 정재용 2008-06-08 1599
1414 [re] [요청] IR Remo 사용 [2] 한영민 2008-06-07 649
1413 [요청] IR Remo 사용 송의석 2008-06-07 559
1412 [질문]platform builder에서 컴파일러 옵션 [6] 이태간 2008-06-07 1596
1411 [완료]Memory Access시 문제가 있는데 도와주실 분 계신가요. [4] 임태진 2008-06-06 571
1410 [완료]이솝 2530 보드 OpenICE A1000 SMU 세팅 문의드립니다. [5] 임태진 2008-06-04 755
1409 시리얼 작동 확인 방법? [4] 손성원 2008-06-04 970

사용자 로그인