2009. 9. 2. 13:41

순대보드 u-boot - 4



AHAV9302를 설정하는 파일들을 생성하거나 수정하는 작업이다.

지금부터는 적절하게 디렉토리를 생성하고, 전에 패치해서 생성된 파일들 중 필요한 파일들을 복사해서 수정하는 적업을 할 것이다.
$ mkdir board/ahav9302
$ cp board/cs-e9301/* board/ahav9302/.
$ mv board/ahav9302/cs-e9301.c board/ahav9302/ahav9302.c

새로 생성하고 복사를 한 디렉토리 "/board/ahav9302/"를 보면 총 7개의 파일(Makefile, config.mk, pll_cfg.S, ahav9302.c, sdram_cfg.S, u-boot.lds)이 있는 것을 확인할 수 있다. 각각의 파일은 AHAV9302 보드에 맞도록 이리 저리 수정해야 한다.

그런데.. 어떤 식으로 수정을 해야 한다는 것인지..
"각각의 파일들을 수정하는 이유에 대해서 이 강좌에 일일이 써내려 가다가는 너무 오래 걸릴것으로 판단이 됩니다. 이전의 강좌에서 하드웨어 주소의 설정을 참고하신다면, 수정한 이유등에 대한 것은 그다지 고민할 부분은 아니라고 생각이 듭니다."
라고 강의에는 되어 있는데.. 도통 감이 오질 않는다.
일단 따라하기니깐 나중에 다시 생각하기로 하고.. 따라하자!!! ㅎ

아.. 위처럼 디렉토리를 만들고 파일들을 수정해도 되지만, 아래의 파일을 압축을 풀어서 해당 디렉토리로 복사를 해도 된다. 강의 하시는 "순대국밥"님이 미리 만들어 두신 파일들이다.

7개의 파일 중 flash_cfg.S와 u-boot.lds 파일을 제외한 파일들은 모두 수정이 된 파일이니, 수정되기 전과의 바뀐 부분이 무엇인지 보는 것도 도움이 될 것이다. '데이터 시트'도 꼼꼼히 보라는데.. 개인적으로 데이터 시트만 보면 아직 익숙치 않아 그러는지 눈도 침침해지고 졸리기까지 하다.. -_-


그 이외의 필요한 파일들을 수정해 주어야 한다.

vi 에디터를 사용해 vi common/cmd_boot.c 파일을 연다.
31번 라인 위 아래의 #if, #endif 구문을 주석처리 한다.

62번 라인을 아래와 같이 수정한다.

저장을 하고 파일을 닫는다.

다시 vi 에디터를 사용해 "common/cmd_bootm.c"파일을 열고 아래와 같이 수정을 한다.
470라인 정도에 위의 그림과 같은 부분이 있다. "#ifdef ~ #endif" 부분을 주석처리 한다.


다음은 네트웍과 CPU 관련된 부분의 작업이다. 아래의 "순대국밥"님이 미리 만들어 놓은 파일을 받아서 압축을 풀고 기존의 위치에 복사해 넣으면 된다. 아직 무슨 내용인지는 모른다... -_-;;

압축을 풀면 아래의 4개의 파일이 존재한다. u-boot 루트 디렉토리에서 경로를 찾아 복사를 한다.
    net/eth.c
    net/net.c
    cpu/arm920t/ep93xx/eth.c
    cpu/arm920t/ep93xx/cpu.c

여기까지 진행을 하면 정상적으로 동작하는 u-boot에 대한 수정이 완료된 것이다. 컴파일을 해서 AHAV9302를 위한 u-boot.bin을 생성을 하자.
$ make ARCH=arm CROSS_COMPILE=arm-elf- distclean
$ make ARCH=arm CROSS_COMPILE=arm-elf- clean
$ make ARCH=arm CROSS_COMPILE=arm-elf- ahav9302_config
$ make ARCH=arm CROSS_COMPILE=arm-elf-


컴파일이 완료되면 u-boot.bin 파일이 생성되어 있는 것을 볼 수 있다.

u-boot.bin 을 생성하면 mkimage라는 파일이 하나 생기는데, 이 파일을 다음과 같이 링크를 걸어준다.
$ sudo ln -s /opt/arm9sbc/ahav/build/u-boot-1.1.6/tools/mkimage /usr/bin/mkimage


이제 AHAV9302보드에 생성한 u-boot.bin을 옮기는 작업을 할 것이다.
"Cirrus Logic 사이트"에서 다운로드 툴(Download.zip)을 다운로드 받아서 사용할 것이다.
윈도우즈 상에서 Download.zip를 다운을 받아 압축을 푼다. 그리고 이 디렉토리에 u-boot.bin 파일을 옮긴다. 예전에 삼바를 구축하였기 때문에 삼바로 리눅스 기계로 접근을 해서 u-boot.bin 파일을 복사해 오면 될 것이다.

윈도우즈의 명령 커맨드창(cmd)를 열어 Download 디렉토리로 이동을 한 뒤 다음과 같이 입력하고 엔터키를 누른다.

아래의 화면과 같이 나온다면 정상적으로 u-boot.bin파일을 AHAV9302 보드로 옮긴 것이다.

AHAV9302 보드를 부팅해보자!


'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 Kernel Image  (0) 2009.09.02
순대보드 u-boot - 3  (0) 2009.08.11
순대보드 u-boot - 2  (0) 2009.08.11
순대보드 u-boot - 1  (4) 2009.04.02
순대보드 CrossCompile 환경 - 2  (0) 2009.04.01