Sungjin's sub-brain :
Admin : New post
Guestbook
Local
Catergories
Recent Articles
Recent Comments
Calendar
Tag
Archive
Link
Search
 
  SoCMaster3 플래시에 부트로더, 커널이미지, 램디스크 올리기 
작성일시 : 2007. 11. 6. 19:48 | 분류 : 컴퓨터/SoC Master 3

IT-SoC 디자인 컨테스트에 참가해 오늘 데모를 하기로 했다.
노트북에 nfs를 세팅하고 이것 저것 환경을 다 체크한 후 회석이 형과 함께
SoC 사업단에 가서 데모를 한답시고 노트북 두대를 세팅하고 시리얼 케이블 연결하고
크로스케이블도 연결하고 보드에 전원을 넣었는데
평소와는 다르게 starting kernel에서 멈춰있는 보드... 굴욕 그자체ㅠㅠ
원인은 플래시가, 특히 부트로더쪽 플래시가 날라간거 같은데 설마 플래시가... 하는 마음에
열심히 fpga prom만 구워봤는데 여전히 안도는 걸로 봐서 플래시를 다시 굽기로했음.
플래시를 굽는 방법을 따로 정리해놓지 않아 당황했지만 이번 기회에 다시 플래시 굽는걸
기록해 놓아야 겠다는 생각으로 이렇게 기록!
-----------
환경
RVD3.0

간단한 절차는
1.RealViewDebugger로 부트모니터를 띄우고
2.모니터 프로그램의 어드레스맵에 맞춰SDRAM의 특정 주소에 RVD를 이용해 이미지를 기록해 놓는다.
3.모니터의 메뉴에 플래시 관련 메뉴가 있는데 여기서 1.blob 2.kernel image, 3.ramdisk중 하나를 선택하면 모니트 어드레스 맵에 적혀있는 위치에서 이미지 파일을 복사해 플래시에 기록한다.

자세히
\SoCMaster3 Linux\soc3_init\soc3_init\soc3_init_Data\Debug\soc3_init.axf
이 파일이 모니터 파일인데 이 파일을 load image를 통해 RVD로 불러온 후 run으로 실행시킨다.
실행된 결과가 RVD의 콘솔창을 통해 출력되어야 하는데 어떤 문제인지는 몰라도 항상 시리얼로 출력이 되는 문제가 있었다. 시리얼로 출력시 문제가 SDRAM에 blob,vmlinux.bin,ramdisk.tgz를 기록하기 위해 RVD의 메모리 관련 메뉴(debug-memory/register operation-upload/download memoryfile)를 통한 메모리 롸이팅이 제대롱 이루어 지지 않는다는 것이다. 여러가지 노력을 해보았지만 출력 방향은 결국은 해결하지 못하고 메모리 기록만 성공했는데 방법은 다음과 같다.
먼저 RVI를 연결하고 RVD를 실행시켜 모니터를 로드하고 run을 하기 직전! 메모리 기록을 시도하는 것이다. 이 때 어드레스맵
 #define BLOB_RAM_BASE       (0x50f00000)
 #define KERNEL_RAM_BASE     (0x50008000)
 #define PARAM_RAM_BASE      (0x50400000)
 #define RAMDISK_RAM_BASE    (0x50500000)
에 맞게 주소를 설정하고 타입은 RAW로 한다. 기록이 끝난후 blob를 제외한 나머지에선 download complete등의 메시지를 볼 수 있따. 이렇게 한 뒤 재부팅 후 제대로 도는거 확인!

제기랄 보드.ㅠㅠ

|