기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요 초보입니다
제가 하려는 질문은 "NAND 0번지에 잘못된 프로그램이 들어있는 경우 어떻게 해야하나요?" 입니다.
U-Boot 버전을 업그레이드 해 볼까 하는 생각으로 평가보드가 아닌 양산용 보드에다가
순수 u-boot 최신버전을 빌드만하여 NAND에 다운로드 하였습니다.
당연히 부팅될리가 없는데 해보고싶었더랬습니다.
하지만 u-boot를 다운로드한 이후부터 JTAG을 사용해서 NAND에 Writing이 되지 않습니다.
JTAG장비는 Codeviser를 사용하고 있습니다만, JnD Tech사에 문의하였더니 본인들도 모른다고 합니다.
예전에도 이런 경우가 있었는데, 눈물을 머금고 NAND 를 교체하여 해결?하였습니다.
하지만 지푸라기라도 잡는 심정으로 질문을 드리게 되었습니다.
선배님들의 많은 조언 부탁드립니다.
---------------------------
덧붙입니다:
AP 종류는 S3C-6410입니다.
Nand boot 외 다른 방법이 있다면 (NOR , SPI , SDCARD) 그쪽으로 선회 하셔서 부팅 해 보셔야 할 것 같구요.
제일 간단한건 JTAG 입니다.
T32를 예를 들면 cmm 에 명령을 통하여 시스템 초기화 시키고 RAM 에 다운로드 해서
U-boot 부팅 시키고 nand scrub 하고 nand에 write 합니다.
아마 codeviser 도 가능 할 겁니다. 다시 한번 문의해 보세요.
JTAG 안붙고, 다른 부트 모드도 못 쓰는 최악의 상태까지 가면
NAND 를 떼어 내고 잘 되는 NAND 를 붙이셔야 하는 엄청난 일이경악할 일이..... ㅡ.ㅡ;
'하지만 u-boot를 다운로드한 이후부터 JTAG을 사용해서 NAND에 Writing이 되지 않습니다.'
본문에 다음글을 그냥 지나 쳤는데
지금 상황이 nand boot 는 되지 않지만 JTAG 을 통하여 RAM 부트 가능하지만(u-boot 프롬프트 나옴)
RAM 부트 하면 NAND write가 되지 않는다. 인가요?
이런 경우는 다음과 같이 추측해 볼 수 있지 않을까 싶습니다.
u-boot 가 first boot loader , second boot loader 로 나눠어져 있는 경우가 있습니다.
JTAG 을 통한 ram boot 는 second boot loader 를 RAM 에 로드 하여 그 번지에서 시작 하게 하는데
(우리가 보통 알고 있는 u-boot.bin MEMORY MAP 끝지점에서 시작 하는 U-boot)
nand 초기화 및 타이밍 이런것들을 세팅해 놓는곳이 대게 first boot loader 에서 합니다.
(second boot loader 를 load 해야 함으로)
그렇기 때문에 현재 JTAG을 통하여 load 하였다고 하나 NAND 초기화가 안 되어 있어 write 및 read 을
할수 없을 수도 있습니다.
방법은 second boot loader 에서도 nand 드라이버를 작성( copy & paste ) 하셔서 맞춰 보세요
뭐....... 이런 경우도 있다구요^^ ㅎㅎ
참고로, Serial에는 어떠한 로그도 출력되지 않습니다
그리고 CVD 프로그램(JTAG)에서 타겟보드로 연결조차 안되는 것 같습니다.