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





안녕하세요.
이번에 aESOP 보드를 근간으로 2410 보드를 만들고 nand Flash를 붙였는데요.. Nand 인식이 안되어서 경험해보신 분들의 도움을 받고자 합니다.

[증상]
- 보드는 S3C2410, 우리 이솝에서 쓰는 동일한 Nand 64MB 붙이고.
- u-boot도 이솝 u-boot를 근간으로 2410으로 했습니다.
부팅후에... 아래와 같이 메시지가 나오구요.

U-Boot 1.1.2 (Aug 30 2006 - 07:01:25)
U-Boot code: 33F80000 -> 33F9BE2C  BSS: -> 33FA02A4
SDRAM Configuration:
Bank #0: 30000000 64 MB
Flash:  4 MB
NAND: <--- 여기서 멈춤니다.


실제로 U-boot 코드를 따라가 보니..
NanD_IdentChip 이 함수에서. Nand 로 Reset 커맨드를 내리는데..

/* Reset the chip */
if (NanD_Command(nand, NAND_CMD_RESET)) {

이 부분에서 실제로 include/configs/smdk2410.h 에서는 아래와 같이 해주었지요.

#define NAND_WAIT_READY(nand)                udelay(10); while(!(rNFSTAT & 0x01))

이 부분에서 계속 while 문을 돌고 있고 ready가 되지 않네요. ㅠ.ㅠ


[질문]
- 이와같이 계속 Nand가 Ready가 되지않고 Busy라고만 나오는데.. 이런현상 경험해보신분 계신가요?


[질문]
- 지금 h/w, s/w 전부 다시 살펴보는 과정이라서.. 거의 좌절모드 이네요.
s/w으로 수정 포인트는 아래와 같은데.. 혹 더 수정해야 할 부분이 있을까요?

1. include/configs/smdk2410.h 파일 수정부분

#define CONFIG_AESOP_YAFFS
#define CFG_MAX_NAND_DEVICE 1
#define SECTORSIZE 512
#define ADDR_COLUMN 1
#define ADDR_PAGE 3
#define ADDR_COLUMN_PAGE 4
#define NAND_ChipID_UNKNOWN 0x00
#define NAND_MAX_FLOORS 1
#define NAND_MAX_CHIPS 1
#define NAND_WAIT_READY(nand)                udelay(10); while(!(rNFSTAT & 0x01))
#define WRITE_NAND_COMMAND(d, adr)        rNFCMD = d
#define WRITE_NAND_ADDRESS(d, adr)        rNFADDR = d
#define WRITE_NAND(d, adr)                rNFDATA = d
#define READ_NAND(adr)                        rNFDATA

// kingseft
#define NAND_DISABLE_CE(nand)                rNFCONF |= 0x0800
#define NAND_ENABLE_CE(nand)                rNFCONF &= ~(0x0800)
#define NAND_CTL_CLRALE(nandptr)
#define NAND_CTL_SETALE(nandptr)
#define NAND_CTL_CLRCLE(nandptr)
#define NAND_CTL_SETCLE(nandptr)

2. common/cmd_nand 부분에서는 아래 부분만 수정
#ifdef CONFIG_S3C2410
#include <s3c2410.h>
#endif


3. lib_arm/board.c 파일에서는 아래만 수정
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
        puts ("NAND:");
        nand_init();                
#endif


- U-boot 역시 이솝 U-boot를 2410용으로만 한것이기에.. 우선 Nand 수정 포인트를 위와같이만 했습니다. s/w 적으로는 더 봐야할 부분이 없을까요?


[질문]
- H/W 적으로는 첨부된 파일과 같이 Nand를 연결했습니다. 혹 회로적으로 잘못된 부분이 있을까요? (제가 H/W는 문외한입니다만... ㅠ.ㅠ)

- 두번째 첨부파일은 CPU의 NCON 핀을 설정한 상황입니다.


[이상한 현상]
- U-Boot 에서 위와 같이 while문으로 ready 를 체크하는 부분을 막고 무대뽀로 돌리면.. 부팅메시지에..

Nand : 64M 라고 나오구요.
Nand ID와 제조사 ID등이 출력됩니다.
부팅 커맨드에서 nand info 명령을 치면 잘 나오구요. 물론 이때에 read write 등은 전부 에러가 납니다. 또한 nand bad 라고 치면 모든 블럭이 bad라고 주소를 출력하네요... 이상해서 다른 Nand를 붙여서 해보아도 동일하구요.



** 질문 자체도 난감한 질문이라.. 어떤 부분들을 검토해봐라... 이런식의 답변이라도 부탁드립니다.

** 우리 이솝보드나 smdk2410 보드등에서 nand는 전부 잘 구동되었는데.. 자작보드 한번 만들어서 해보니.. 이런부분에서 실력이 판가름 나나 봅니다. (ㅠ.ㅠ)

이홍석

2006.08.30 17:50:56
*.43.210.229

이솝보드하고 틀린점은 R/nB가 4.7k로 풀업 된것 빼고는
같다고 보여지는데요..........흠....

잘 해결되길 바랍니다.......^^;

김영기

2006.08.31 10:52:27
*.147.94.101

위에 회로도를 보면 R/B 에 풀업저항이 연결이 안된거 같은데... 제가 잘못본건가??
아시겠지만 낸드플래시에서 R/B 에는 반드시 풀업저항을 연결해주어야 합니다.
확실하게 Ready / Busy 값을 가지기 위해서!!

이재훈

2006.08.31 16:03:27
*.241.147.30

두분 답변 감사합니다. ^^
r/b 쪽에 처음에는 회로와 같이 풀업을 달지 않아보기도 했구요. 이후에 다시 풀업을 달아 테스트도 해봤습니다. 하지만 결과는 동일하게 CPU의 NFSTATUS의 ready/busy bit가 계속 busy로 나오네요...
하여간 이것저것 좀더 살펴봐야겠습니다. 결과나오는대로 원인한번 정리해봐야겠네요
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6228 [i.MX6 개발 Reference BD구하려고 하던중,..] 밥줘잉 2015-09-23 311
6227 리눅스 부팅시 SD 카드 마운트 할 위치를 지정하는 방법이 궁금합... [2] sinwho 2015-09-19 596
6226 하드웨어코덱 사용하려면 soc사에서 직접지원을 받아야 하는건가요? [1] pedor11 2015-09-18 982
6225 안드로이드 보드 중 4k출력을 지원하는 보드가 있는지 궁금합니다. [5] 새삶 2015-09-17 444
6224 RTC ALARM 인터럽트 [4] JinJi 2015-09-15 267
6223 jni 질문드립니다. [2] vain 2015-09-02 264
6222 특정 process(mplayer)가 4개의 cpu 중에 1나의 점유율을 100%가져갈... [1] 혜민아빠 2015-08-27 321
6221 램디스크 파일 시스템 만들기 [4] sinwho 2015-08-19 43548
6220 리눅스 yaffs2 포팅 방법 [2] sinwho 2015-08-18 246
6219 리눅스 YAFFS2 파일 시스템 에러 [2] sinwho 2015-08-17 671
6218 DDR SDRAM불량 현상 [1] 테크 2015-08-15 272
6217 밑의 LCD 포팅 질문드렸었는데 추가 질문이 있습니다. [2] ImYeol 2015-08-13 193
6216 Touch screen에 관해서… [1] 어떤이의꿈 2015-08-10 209
6215 2440보드에서 DM9000 디버깅하는 방법? file [3] DavidKim 2015-08-08 256
6214 안드로이드 보드 hdmi 출력 어떻게 화인 하면 될까요.? [1] 새삶 2015-08-05 308
6213 LCD 드라이버 포팅 질문입니다. [1] ImYeol 2015-08-03 379
6212 NAND bad sector가 새로 발생했을 때… [1] 오르다 2015-07-31 6502
6211 2440 보드의 address 신호와 소스상의 주소를 어떻게 이해 하고 있... [2] DavidKim 2015-07-29 181
6210 안드로이드 핸드폰에 /dev/bus/usb 장치 권한을 바꿀수있나요? [5] biokk 2015-07-28 741
6209 touch screen관련 여쭤봅니다. [1] 열심히 2015-07-25 173

사용자 로그인