부트 모드를 SD MMC 모드로 설정 후 부팅하면 아래와 같이 출력됩니다.
U-Boot 1.3.4 (Jun 13 2012 - 17:18:29) for MANGO2450 CPU: S3C2416@400MHz Fclk = 800MHz, Hclk = 133MHz, Pclk = 66MHz Board: MANGO2450 Mobile DDR DRAM: 64 MB Flash: 1 MB NAND: 256 MB SD/MMC: 1804 MB After SD/MMC boot In: serial Out: serial Err: serial ETH test 1 ETH test 2 Hit any key to stop autoboot: 0 NAND scrub: device 0 whole chip Warning: scrub option will erase all factory set bad blocks! There is no reliable way to recover them. Use this command only for testing purposes if you are sure of what you are doing! Really scrub this NAND flash? |
NAND에 아무것도 기록된 것이 없으면 "nand scrub"이 자동으로 수행됩니다.
"nand scrub"을 원할 경우 y를 입력하고 Enter를 입력하면 됩니다.
MANGO2450 # print bootcmd=sleep 1;nand scrub ;sleep 1;nand erase;sleep 1;movi read 3800000# 40000 c0000000 ;sleep 1;nand write c0000000 0 40000;sleep 1;movi read kernel c0000000;sleep 1;nand write c0000000 40000 200000;sleep 1;movi read 3600000# 3800000 c0000000;sleep 1;nand write.yaffs c0000000 400000 35db4c0 bootdelay=3 baudrate=115200 ethaddr=00:40:5c:26:0a:5b ipaddr=192.168.30.20 serverip=192.168.30.39 gatewayip=192.168.30.1 netmask=255.255.255.0 bootargs=noinitrd console=ttySAC1,115200 rw ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait stdin=serial stdout=serial stderr=serial Environment size: 575/16380 bytes |
yhoh@crz-ubuntu1204-02:/home/image/yhoh$ l /home/image/yhoh total 204 -rwxr--r-- 1 yhoh yhoh 206592 6월 13 18:14 u-boot.bin-nand-533MHz |
tftp 폴더인 /home/image/yhoh에 u-boot.bin-nand-533MHz를 복사해 두었습니다.
setenv ipaddr 192.168.1.121; setenv serverip 192.168.0.2; setenv gatewayip 192.168.1.1 |
MANGO2450 # tftp c0000000 yhoh/u-boot.bin-nand-533MHz smc911x: initializing smc911x: detected LAN9220 controller smc911x: phy initialized smc911x: MAC 00:40:5c:26:0a:5b TFTP from server 192.168.0.2; our IP address is 192.168.1.121; sending through gateway 192.168.1.1 Filename 'yhoh/u-boot.bin-nand-533MHz'. Load address: 0xc0000000 Loading: ############### done Bytes transferred = 206592 (0x32700) |
MANGO2450 # nand erase 0 40000 NAND erase: device 0 offset 0x0, size 0x40000 Erasing at 0x20000 -- 100% complete. OK |
MANGO2450 # nand write c0000000 0 40000 NAND write: device 0 offset 0x0, size 0x40000 262144 bytes written: OK |
이후 NAND mode로 부트 스위치를 변경한 후에 리셋하면 NAND로 U-boot가 동작하는 것을 확인할 수 있습니다.
U-Boot 1.3.4 (Jun 13 2012 - 18:13:12) for MANGO2450 CPU: S3C2416@534MHz Fclk = 534MHz, Hclk = 133MHz, Pclk = 66MHz Board: MANGO2450 Mobile DDR DRAM: 64 MB Flash: 1 MB NAND: 256 MB |
같은 작업을 u-boot.bin-nand-400MHz를 이용해서도 한번 다시 해보았습니다.
MANGO2450 # tftp c0000000 yhoh/u-boot.bin-nand-400MHz MANGO2450 # nand erase 0 40000 MANGO2450 # nand write c0000000 0 40000 |
위 작업을 수행한 후에 부팅 화면은 아래와 같습니다.
U-Boot 1.3.4 (Jun 13 2012 - 17:36:53) for MANGO2450 CPU: S3C2416@400MHz Fclk = 800MHz, Hclk = 133MHz, Pclk = 66MHz Board: MANGO2450 Mobile DDR DRAM: 64 MB Flash: 1 MB NAND: 256 MB |
S3C2416으로 표시되는 부분은 왜 그런지 살펴볼 필요가 있어 보입니다.
u-boot.bin-nand-400MHz의 경우 Fclk가 800MHz로 나오는데 이 부분도 점검이 필요해 보입니다.
어쨌든 SD로 부팅해서 NAND에 굽는 것까지는 작업을 수행해 보았습니다.
2GB T-Flash의 경우에는 잘 동작을 하는데 8GB의 경우는 잘 안되고 있다.
제어판 > 관리 도구 > 컴퓨터 관리를 열어서 디스크 관리를 선택한다.
사용하려는 디스크에서 마우스 오른쪽 버튼을 눌러서 포맷을 실행한다.
이 과정을 마친 후에 uboot_writer.exe를 실행한다.
$ tar xvf u-boot-1.3.4-mango2450-20120615.tar.bz2 $ mv u-boot-1.3.4-mango2450 u-boot-1.3.4-mango2450-20120615_Pooh |
include/configs/mango2450.h
/* Boot configuration (define only one of next) */ //#define CONFIG_BOOT_MOVINAND #define CONFIG_BOOT_NAND | /* Boot configuration (define only one of next) */ #define CONFIG_BOOT_MOVINAND //#define CONFIG_BOOT_NAND |
mango2450.h의 331 라인에 보면 위 내용을 찾을 수 있습니다.
CONFIG_BOOT_NAND를 정의하면 NAND 모드로 CONFIG_BOOT_MOVINAND를 설정하면
SD MMC 모드로 부팅을 하는 U-Boot를 만들 수 있습니다.
주의할 것은 반드시 위 두 config 중에서 하나만 define이 되어야 한다는 점입니다.
$ make mrproper $ make mango2450_config $ make -j9 $ cp u-boot.bin /home/image/yhoh/u-boot.bin |
빌드 작업 중에서 -j9을 이용해서 보다 빠르게 빌드가 되도록 해 놓았는데 이 값은 사용자의 환경에 따라서 다를 것입니다.
저는 코어가 8개인 CPU를 사용하기 때문에 j9으로 설정한 것입니다.
SD MMC 모드로 부팅을 하는 U-Boot를 만들어서 위에서 해본 같은 방법으로
T-Flash에 구워서 동작을 시켜보았고 정상적으로 동작하는 것을 확인했습니다.
다음으로는 NAND 모드로 부팅을 하는 U-Boot를 만들어서 아래 방법으로 NAND에 굽고 부팅을 확인했습니다.
MANGO2450 # setenv ipaddr 192.168.1.121; setenv serverip 192.168.0.2; setenv gatewayip 192.168.1.1 MANGO2450 # tftp c0000000 yhoh/u-boot.bin MANGO2450 # nand erase 0 40000 MANGO2450 # nand write c0000000 0 40000 |
부팅 메시지를 확인하니 디폴트로는 533 MHz로 동작하도록 설정되어 있는 것으로 판단됩니다.
내용