Latest Post
ARM S3C2450 Mango24R2 U-boot Compile and Write
eCos를 하려고 해도 먼저 U-Boot를 동작시켜야 하기 때문에 작업을 했습니다.

T-Flash에 U-Boot를 구워서 준비합니다.

부트 모드를 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로 동작하도록 설정되어 있는 것으로 판단됩니다.

Comments 0
:    :    :
이름 / 2014-11-20 / ★★★☆☆ [수정 / 삭제]

내용

Recent Comments
일방통행  |  ★★★★★
ISE 14.7 virtualbox를 설치했는데, ,iMPACT가 인식을 못하는데, 어케해야하나요?
min  |  ★★★★☆
These are the only Drives available to write images to: # major minor size name 1: 8 0 512805384 sda 2: 8 16 15558144 sdb Enter Device Number or n to exit: 2 Invalid selection! 왜 이런 오류가 나는 걸까요?
dino  |  ★★☆☆☆
NAND Scrub실행 후 에러가 나타납니다/ 조치방법을 알려주세요 에러내용 crz nand_erase_opts erase.addr=0x0, opt->offset=0x0, erase_ieng minfo_erases=0x20000 .....진행후 s3c-nand:ecc uncorrectable error detected---4개발생합니다 빠른 회신부탁드립니다 연락처:010-3752-6251 강희진
bluewind  |  ★★★★★
안녕하세요..구입했는데..회로도 부탁드립니다. percephy@naver.com 입니다.
조형철  |  ★★★★★
상기 Backlight 관련 회로를 구할 수 있을까요?
hwang  |  ★★★★★
구입한지 조금 됬는데 회로도 부탁합니다. rubens7777@paran.com 입니다.