안녕하세요.. 
nand flash를 하드디스크처럼 사용할려고 하는데 잘 안되네요..

우선 칩은 K9F2G08U0A (2Gbit, 2k +64byte pagesize..)이고 커널은 2.6.9 를 사용하고있습니다. 
 
현재까지 확인된 사항(문제)들입니다.
- bad block를 검색했을때 결과는 bad block이 3개로 나옵니다.

- nand  flash read , write 관련해서  command와 신호가 제대로 나오는 지는  디바이스 소스에서 확인하였고,
 오실로스코프를 이용해  확인했는데 제대로 나오는 거 같습니다.
사용하고 있는 nand driver 는 커널 2.6.9에서 사용하고 있는 소스 그대로 입니다.(driver/mtd/nand..)

 - read 했을때 값은 0xff값으로 나옵니다.

- 처음에 제품 id와 device id를 얻어 오는 부분이 있는데 이부분이 좀 이상합니다.
디버그 메세지 (print ) 를 출력할때 device id를 잘 못 얻어올때가 있습니다.
전혀 상관없는 부분(id 얻는 부분보다 아래부분)에 디버그를 출력했는데 id를 잘못 얻어 온다는게
 이해가 잘 안됩니다..ㅠ.ㅠ

- device id를 정상적으로 얻어 온 후  현재 소프트웨어 ecc 처리과정을 거치게 되어있습니다.
  bad block 영역을 nand 에 write 할려고 하는데 write 가 되긴 되는데 제대로 안됩니다. 
  한페이지를 write 하는데 크기가 2k +oob(64byte) 입니다. 8bit databus 이기때문에 loop를 돌면서
  write를 하고 있습니다.  ex>writeb( buf[i] , baseaddress) //byte 단위 write를 하고 나면 분명히 chip의 data register에
 저장될 테고 다음으로 command 0x10 을 주면 실제 nand flash cell 에 저장될텐데.. 여기 까지 실행하고 나서
읽어보면 제가 저장한 값하고 다릅니다.. page address 가 잘된건거 같진 않습니다. 
중요한건   write 된 값을  read해보면 값이 다른 값이 들어가거나  혹은 일부부만 채워진 경우가 있습니다.
그래서 verify fail이 납니다.

문서를 아무리 찾아봐두 잘 모르겠네요.. 고수님들 좀 알려주세요~~ㅠㅠ