보드 준비 및 부트로더 확인

자..  재수가 있는지 확인해 봅시다.

보드에 커널을 올려서 제대로 돌아 가면 복권 당첨 된거고, 안 돌아 가면 당연한 겁니다.

 

우선 보드를 준비해야 겠죠?

EZ-S2410은 다음과 같이 생겼죠..

 A007_001_EZ_S2410.jpg
[A007_001_EZ_S2410.jpg]

잘 생겼죠? (큼… 자기 자식 자랑하면 팔불출이라는데 )

 

근데 제가 가지고 있는 보드는 좀 너덜 너덜 하군요..
USB 호스트 쪽이 안 된답니다.

아하 짠돌이 생산팀… .
새거 주지..

 

시험을 하기 위해서
전원과 아답터 연결하고 , 시리얼 포트 연결 하고 , 이더넷 연결합니다.

 

그리고 전원 올려서 부팅 메시지를 봅니다.

 

제가 가진 S3C2410 부트로더 버전은 아래 부팅 메세지에서 볼수 있습니다.

일단 이 부분이 저하고 비슷해야 겠죠?

그래야

S3C2410 에 대하여 저와 동일하게 진행할 수 있지 않을까요?

 

뭐 각자의 길을 가자면 가지요..

전 손해 볼 것 없습니다.

어찌되었든…

 

부팅하면 다음과 같은 메시지가 나옵니다.

WELCOME EZBOOT V1.4 (FALINUX Co.,Ltd) ..........for EZ-S2410
Program  by You Young-chang, Oh Jae-Kyoung
Modified by Park Mun-Sik, Jang Hyung-Gi
Last Modify Apr  6 2007

NAND Chip Check .......................
  NAND Maker ID [EC]    NAND Size  ID [76]
  Detect SAMSUNG [ec:76] 64MByte
  BAD BLOCK SCAN ->
      BootLoader, Kernel, Ramdisk Bad Block [1]

CS8900 Init............................
  Mac Address  : [00 A2 55 F2 26 35]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..

EZBOOT>


 

헉! 버전이 V1.4 라고 나오네요

 

어허허…

최근 이지부트가 2.0인데.. 이게 언제적 부트로더여?

 

일단 부트로더부터 업그레이드 해야 겠네요..

 

제가 그랬죠?

 

이 글들은 강좌가 아니라고

제가 진행해 가는 과정을 그래로 보여 주는 거라고..

 

자~~

부트로더 업그레이드 한번 해 봅시다.

 

이지부트 2.0으로 업그레이드

이지부트는 사실 내부적인 소스가 있고 외부적 소스가 있습니다.

 

하하하.. 완전한 공개는 힘들죠… ^^;

 

업체에서 요구한 부분들이나 저희 회사 나름대로 사전 진행하는 과정에서 발생한 소스들이 있는데 이것들은 공개 하기가 곤란하죠.

 

그래도 웬만한 것은 모두 다 공개해 갑니다. 감추고 있는 것은 1%로도 되지 않습니다.

 

어찌되었든

부트로더를 다운해야 겠죠?

부트로더가 어디있죠?

 

예 저희 회사 이지부트로더는 여기서 다운 받습니다.

http://ftp.falinux.com/ezboot/recommendation/

이걸 다운로드 받아 보겠습니다. 외부에서 관리해야 하기 때문에 colinux  상에서

 /project/ezboot_outsize/

라고 하는 디렉토리를 만들고 여기에 다운 받도록 하겠습니다.

[root@localhost ezboot_outside]# wget http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
--2009-05-10 02:57:58--  http://ftp.falinux.com/ezboot/recommendation/ezboot.tar.gz
Resolving ftp.falinux.com... 211.239.155.99
Connecting to ftp.falinux.com|211.239.155.99|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 291184 (284K) [application/x-gzip]
Saving to: `ezboot.tar.gz'

100%[=======================================================>] 291,184     --.-K/s   in 0.08s  

2009-05-10 02:57:58 (3.47 MB/s) - `ezboot.tar.gz' saved [291184/291184]

[root@localhost ezboot_outside]#


워낙 소스가 작기 때문에 금방 받습니다.

이제 압축을 풀어 봅시다.


다음과 같은 명령을 사용합니다.

[root@localhost ezboot_outside]# tar zxvf ezboot.tar.gz


이제 ezboot란 디렉토리가 생겼을 겁니다.

여기로 이동합니다.

[root@localhost ezboot_outside]# cd ezboot
[root@localhost ezboot]# ls
Makefile     arch_pxa255   ez-au1250_make.sh  ez-pxa270_make.sh   image
arch_au1250  arch_pxa270   ez-ep9312_make.sh  ez-s3c2440_make.sh  include
arch_ep9312  arch_s3c2440  ez-pxa255_make.sh  ez-x5_make.sh       main
[root@localhost ezboot]#


허걱~

S3c2410 이 없습니다.

오마이 갓….

어쩐지 수 많은 고객들이 난리더구만.. 허허…
어떻게 2410이 없을 수 있죠?

이번에 심각하게 반성해야 겠군요..

그렇다면 긴급 패치에 들어가야 하는데..

흠.. , 에혀… , 어떻게 해야 하나..

고민 고민…

 

(**) 여기서부터

(**) 여기까지 글을 쓰는 사이에 약간의 시간이 흘렀습니다. ^^

 

짜잔!

다음과 같은 EZ-S3C2410 추가된 파일을 FTP 에 올렸습니다.

ftp://ftp.falinux.com/ezboot/history/2009_05_10/ezboot-yyc.tar.gz

이것은 공식적인 버전이 아닙니다
나중에 개발팀에서 공식적인 버전을 올려 놓겠죠?


 

수정된 파일을 다운 로드 받은 후 앞에서와 동일한 방법으로 압축을 풉니다.

그리고 컴파일 합니다.

이지부트 소스는 make 를 직접 사용하지 않고 몇가지 설정이 필요해서 이것을 쉘 스크립트로 만들었습니다.

그래서 다음과 같이 컴파일 해야 합니다.

[root@localhost ezboot]# ./ez-s3c2410_make.sh clean
[root@localhost ezboot]# ./ez-s3c2410_make.sh


./ez-s3c2410_make.sh clean 이 명령은 처음 한번만 하면 됩니다.

소스가 수정되면 ./ez-s3c2410_make.sh 이면 충분합니다.

이 처리 결과 다음과 같이 마지막에 메시지가 나오면 성공한 겁니다.

dd if=arch_s3c2410/start/start_org of=image/ezboot.ez-s3c2410 bs=1k conv=sync
1+1 records in
2+0 records out
2048 bytes (2.0 kB) copied, 0 s, Infinity B/s
dd if=main/main_org of=image/ezboot.ez-s3c2410 bs=1k seek=4
54+1 records in
54+1 records out
56128 bytes (56 kB) copied, 0 s, Infinity B/s
chmod 777 image/ezboot.ez-s3c2410
[root@localhost ezboot]#


부트로더 이미지는 image/ezboot.ez-s3c2410에 생겼습니다

그렇다면 이걸 tftp 프로토콜로 다운로드 받을 수 있겠 끔 옮겨야 겠죠?

[root@localhost ezboot]# cp image/ezboot.ez-s3c2410 /tftpboot/

자 이제 모두 끝났습니다.

다시 보드의 시리얼 에뮬레이터로 가 봅시다.

set 명령을 사용해서 컴파일된 부트로더를 받기 위한 환경 설정을 합니다.

^^;
  1. MAC Address            [00:a2:55:f2:26:35]
  2. LOCAL IP               [192.168.102.101]
  3. HOST IP                [192.168.10.61]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.s2410]
  6. ram disk    file name  [ramdisk-12M.gz]
  7. boot loader file name  [ezboot.ez-s3c2410]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [784]
  E. Console Serial Number  [2]
  F. NAND-Partition MByte   [2:5:57] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [initrd=0x30800000,5M root=/dev/ram0 ramdisk=12288]
  M. Kernel CMD 2nd [console=ttySAC2,115200]
  N. Kernel CMD 3rd []

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>


 

확인해봐야 하는 항목은 2번,3번,7번입니다.
 

tfb 명령을 통해서 다운받고 부트로더 이미지 받고

EZBOOT>tfb
Receive ezboot.ez-s3c2410
Send ARP Packet
Send ARP Packet
ARP PACKET Resive
HOST MAC : [ 00 FF A7 1F 64 00 ]
HOST  IP : [192.168.10.61]
LOCAL IP : [192.168.102.101]
Resive Address  : 3100-0000
TFTP Request Send
OPTION [timeout 120 tsize 60224]
ALL DATA RESIVE OK [ 60224 bytes ]
    Erase : OK                                                                
    Write : OK                                                                
    Verify: OK                                                                

EZBOOT>


 

rst 명령을 통해서 보드 리부팅 합니다.

EZBOOT>rst
System Soft Reset.......
0123B

WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009

  Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
  SIZE 64-Mbytes (page=512, block=16K)

ff ff ff : a5 a5 97
ecc correct addr=0x00100000
ecc fail addr=0x00100200
ff ff ff : 6a 99 97
ecc fail addr=0x00100400
ecc fail addr=0x00100600
ff ff ff : 56 69 6b
ecc fail addr=0x00100800

   :
   :

ff ff ff : 96 96 9b
ecc fail addr=0x00107800
ecc fail addr=0x00107a00
ecc fail addr=0x00107c00
ecc fail addr=0x00107e00
  diff magic [flash:20081103]
Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar]..

  CS8900 Init ......
  Mac Address  : [00 FA 01 A2 13 04]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

EZBOOT>


이때 ecc fail 이라는 글자가 나온다고 당황하지 마시기 바랍니다.
이전 버전의 부트로더에서 ECC 체크를 하지 않았는데
2.0에서부터 ecc 체크를 하도록 했기 때문에 발생하는 것입니다.

 

일단은 set 명령을 사용해서

^^;
   1) mac address            : 00:FA:01:A2:13:04
   2) local ip               : 192.168.102.101
   3) local netmask          : 255.255.0.0
   4) local gateway          : 192.168.10.1
   5) server ip              : 192.168.10.61
   6) zImage      file name  : zImage.ez-s3c2410
   7) ram disk    file name  : ramdisk-1.11-16M.gz
   8) boot loader file name  : ezboot.ez-s3c2410
   9) logo image  file name  :
  10) auto execute full name :
  11) autoboot wait time     : 3
  12) copy ramdisk [Y/N]     : Y
  13) arm kernel arch number : 3006
  14) nand part (B,C,L,K,R,A): 1,1,0,3,5,54
  15) watchdog  (sec, off=0) : 0
  16) KCMD 1 : mem=64M
  17) KCMD 2 : initrd=0x30800000,5M root=/dev/ram0 ramdisk=16384
  18) KCMD 3 : console=ttySAC2,115200
  19) KCMD 4 :
  20) KCMD 5 :
  21) KCMD 6 :

  L)  Load default
      LF) load KCMD2 root=flash
      LR) load KCMD2 root=ramdisk
  M)  generlate Mac address
  S)  Save to flash
  P)  aPply & exit
  Q)  Quit

Select >>



일단 자신의 네트워크 상황에 맞도록 2,3,4,5 항을 수정하십시오 위 예시는 제 보드의네트워크 설정입니다.

그리고 환경 저장을 하시고

tfb 명령을 수행하셔서 다시 한번 부트로더를 받습니다.

그리고


rst 명령을 사용하거나 전원을 껐다가 켜서 다시 보드를 부팅 시킵니다.

EZBOOT>rst
System Soft Reset.......
EZBOOT>0123B

WELCOME EZBOOT V2.3.04 (FALINUX Co.,Ltd) ......S3C2410(EZ-S3C2410) (266MHz)
Program by You Young-chang, Oh Jae-Kyong, Jang Hyung-Gi
Last Modify May 10 2009

  Detect Samsung NAND 64M 3.3V 8-bit Flash : vid=EC pid=76
  SIZE 64-Mbytes (page=512, block=16K)

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].

  CS8900 Init ......
  Mac Address  : [00 FA 01 A2 13 04]
  Detect value : [3000:3000]
  Chip ID      : [0E63:0009]

EZBOOT>


보시는 바와 같이 깔끔하게 정리 됩니다.  하하

자 이제 부트로더를 업그레이드 했습니다.

 

 이제 커널만 올리면 됩니다. 음하하하