드디어 돌아간다
실행 순서는 다음과 같다
1.board power on(boot monitor running, serial comm.)
2.run u-boot
>flash run uboot
3.set arguments
setenv bootargs root=/dev/mtdblock0 mtdparts=armflash.0:7888k@0x380000(cramfs) ip=127.0.0.1:off mem=128M console=ttyAMA0 console=tty
setenv bootcmd cp 0x40140000 0x7fc0 0x100000\; bootm
4.save arguments 후 reset & run u-boot
saveenv
5.자동으로 리눅스 실행이 안되면?
cp 0x40140000 0x7fc0 0x100000
bootm
으로 직접 실행
돌아간다!
주의점
1. setting arguments
setenv bootargs root=/dev/mtdblock0 mtdparts=armflash.0:7888k@0x380000(cramfs) ip=127.0.0.1:off mem=128M console=ttyAMA0 console=tty
->여기에서 7888k는 filesystem size, 0x380000은 baseaddress로 부터 cramfs의 offset
list image를 했을 때
> flash list image
Flash Area Base 0x40000000
Address Name
------- ----
0x40000000 Boot_Monitor
0x40030000 SYSTEM.DAT
Flash Area Base 0x40040000
Address Name
------- ----
0x40040000 NFU
0x40080000 demo
0x400C0000 MAXsim
0x40100000 uboot
0x40140000 uimage
0x40380000 cramfs
Flash Area Base 0x44000000
Address Name
------- ----
Flash Area Base 0x44040000
Address Name
------- ----
이렇게 나오기 떄문에 0x40380000-0x40040000을 한 값을 cramfs의 offset에 적어줬는데 이게 아니라 0x40380000-0x40000000을 해준 값을 적어줘야 했다. 이거떄문에 좀 삽질이 있었음;
console 두개를 적은 이유는 vga와 serial 모두로 출력을 뽑기위해서 이다.
>_<