포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 1GB 입니다.

그냥....문서 보시면 됩니다.

식목일인줄 몰랐는데, 글쓰면서 알았습니다. 나쁜 넘들....

몇일이나 쉰다고...--;
* 고도리님에 의해서 게시물 이동되었습니다 (2007-03-19 10:36)

고현철

2006.04.06 01:21:19
*.117.46.252

example로 initrd.gz을 올렸습니다.

ext2로 되어 있고, 8M짜리입니다. 2.4.20때 쓰던거라
테스트용도 외엔 별루....유용하지 않을 듯....^^
profile

김경호

2006.04.06 07:50:38
*.12.193.3

감사합니다. 잘 봤습니다.
Linux Kernel v2.6.13-h1940-aesop2440 에 해당하는 커널 어디에서 download
가능한가요?
profile

김경호

2006.04.06 07:52:11
*.12.193.3

2.4.20에서 하고 있는데
자꾸
Machine: Samsung-SMDK2440
Ignoring unrecognised tag 0x00000000
On node 0 totalpages: 16128
zone(0): 16128 pages.

initrd_tag 의 내용을 못 읽어 오네요.

혹시 2.4.20에서 test한 내용이 있으시면 부탁드립니다.

고현철

2006.04.06 08:07:29
*.114.205.16


원래 2.4.20에서 테스트했던 것입니다....

profile

김경호

2006.04.06 09:24:26
*.12.193.3

이솝 기반으로 Nor를 8M로 해서 만든 보드인데요..
# bootm 100000 200000 로 해서는 ramdisk가 안되네요.

램에 복사를 해서는 잘 되구요..

#cp.b 200000 31000000 5FFFFF
#cp.b 100000 32000000 1FFFFF
#bootm 32000000 31000000

mkimage에서 다른 걸 더 해줘야 하나요?


고현철

2006.04.06 10:00:07
*.114.205.16

kelp의 질답란에 질문하신 분의 경우 nand flash에서 동작시킨 경우인 듯 합니다.
제 example을 보고 하신 듯 한데...

그것을 참조하시는게 어떨까 합니다.

제가 좀 이상한 부분은 원래 u-boot의 image형태는
그게 어디에 있건 상관이 없습니다(NOR나 ram의 경우).

nand의 경우는 선형메모리 형태가 아니기 때문에 ram부분쪽으로 로딩을 해줘야 하고요.
profile

김경호

2006.04.06 18:45:10
*.12.193.3

## Booting image at 00100000 ...
Image Name: ARM Linux-2.4.20
Created: 2006-04-05 5:16:00 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 618913 Bytes = 604.4 kB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Loading Ramdisk Image at 00200000 ...
Image Name: Ramdisk
Created: 2006-04-05 5:19:14 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 2629661 Bytes = 2.5 MB
Load Address: 30800000
Entry Point: 30800000
Verifying Checksum ... OK
## CONFIG_INITRD_TAG start=0x200040, end=0x48205D

Starting kernel ...

Linux version 2.4.20_elfin (gcc version 3.3.4) #1 2006. 04. 05. (?? 14:08:25 KST
Before kernel command
CPU: ARM/CIRRUS Arm920Tid(wb) revision 0
Machine: Samsung-SMDK2440
Ignoring unrecognised tag 0x00000000
initrd (0x00200040 - 0x0048205d) extends beyond physical memory - disabling initrd
On node 0 totalpages: 16128
zone(0): 16128 pages

initrd_tag 넘어가는 것을 프린트 해 본 겁니다.
원하기로는 0x30800000 에 쓰는 것입니다만....
실제로 커널에 넘어가는 주소는 (0x00200040 - 0x0048205d)주소가 넘어갑니다.
때문에 커널에서는 인식을 못하는 것 같습니다.

## Loading Ramdisk Image at 31000000 ...
Image Name: Ramdisk
Created: 2006-04-05 7:29:35 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 3066565 Bytes = 2.9 MB
Load Address: 30800000
Entry Point: 30800000
Verifying Checksum ... OK
## CONFIG_INITRD_TAG start=0x31000040, end=0x312ECB05

Starting kernel ...

Linux version 2.4.20_elfin (gcc version 3.3.4) #2 2006. 04. 05. (?? 15:52:29 KST
Before kernel command
CPU: ARM/CIRRUS Arm920Tid(wb) revision 0
Machine: Samsung-SMDK2440
Ignoring unrecognised tag 0x00000000

램에서 bootm을 했을 경우에도
start=0x31000040, end=0x312ECB05
의 주소가 넘어 갑니다. 이 경우 ram의 위치이기 때문에 되는 것 같습니다.
마찬가지로 원하는 0x30800000번지는 아니네요..
profile

김경호

2006.04.06 19:05:49
*.12.193.3

aesop # bootm 200000
## Booting image at 00200000 ...
Image Name: Ramdisk
Created: 2006-04-05 7:29:35 UTC
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 3066565 Bytes = 2.9 MB
Load Address: 30800000
Entry Point: 30800000
Verifying Checksum ... OK
Wrong Image Type for bootm command
aesop # md 30800000
30800000: fffdfff3 ff9fffcf 7fef3fff 3efffcff .........?.....>
30800010: ffd5ff53 ff8ffff3 f6ffacff feff7bff S............{..
30800020: ffe6ff9f ff7dffc5 daffdfff ffff99ff ......}.........
30800030: ffebfffd ffabff4b f5ff97ff effff3fb ....K...........
30800040: ff77ff67 ffd7ffdb edffefff afff7fff g.w.............

aesop # cp.b 200000 30800000 ffff
aesop # md 30800000
30800000: 56190527 47ef61e5 df713344 c5ca2e00 '..V.a.GD3q.....
30800010: 00008030 00008030 cb80e994 01030205 0...0...........
30800020: 646d6152 006b7369 00000000 00000000 Ramdisk.........
30800030: 00000000 00000000 00000000 00000000 ................
30800040: 00088b1f 44336d8c 9dec0302 55557807 .....m3D.....xUU

도데체 bootm이란 놈은 어디에다 ramdisk를 쓰는 걸까요? ^ ^;
profile

김경호

2006.04.06 19:52:09
*.12.193.3

소스을 더 들여다 봤습니다.
ramdisk image는 이미 램에 복사한 상태여야 합니다.
CONFIG_HAS_DATAFLASH 가 선언되어 있다면
dataflash로 부터 CFG_LOAD_ADDR(램주소)로 복사를 수행합니다.
그리고 나서 start주소를 CFG_LOAD_ADDR로 바꾸는 군요..
그렇지 않은 경우는 그냥 그 주소의 램 혹은 flash에서 CRC만 check합니다.
그리고 나서 그 램 주소를 커널에게 전달하는 것으로 보입니다.
bootm 100000 200000만 한다면 램으로 복사를 하지 않고
flash에서 읽어서 CRC check만 하고 커널에는 0x200000이란 주소를 주는군요..

aesop #cp.b 200000 30800000 5FFFFF
aesop #bootm 100000 30800000

의 명령으로 처리해 주어야 하나 봅니다.

아 이 경우는 Nor flash에 kernel과 ramdisk가 있는 경우 입니다. ^ ^;
NAND라면 당연히... 복사먼저 해야 겠죠..

고현철

2006.04.06 20:31:38
*.117.46.252

u-boot 버전이 높아지면서 약간 바뀐 모양이네요...
CFG_LOAD_ADDR은 옛날에는 tftp로 다운로드 받는 위치만 지정했었는데

그리고, 생각해 보니...ramdisk쪽 다루면서는 u-boot 소스를 고쳤었던 기억도 나는듯...^^
kelp의 강좌 맨 마지막 부분쪽에 언급했던 것 같습니당....

어차피 고쳤던 부분도 해당부분이었을 겁니다.
다음 aesop release 버전에서는 u-boot 손을 좀 봐야겠네요....

고현철

2006.04.06 20:35:14
*.117.46.252

예전 2410용 부트로더서 검색해 보니....이렇게 처리했엇네요.

if (data)
{
#if 0 /* ghcstop fix */
initrd_start = data;
initrd_end = initrd_start + len;

/*
* ghcstop: ramdisk가 현재 어느 위치에 있던간에 mkimage시
* -a option으로 지정한 위치로 점프하게 만든 것
*/
#else
initrd_start = ntohl(hdr->ih_load);
initrd_end = initrd_start + len;
memmove ((void *)initrd_start, (void *)data, len);
printf("Ramdisk load address change from 0x%08x to 0x%08x with %u bytesn", data, initrd_start, len);
#endif

}
else
{
initrd_start = 0;
initrd_end = 0;
}
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
102 이솝 3차 개발 환경구축 배포 문서 수정 및 보완 file [5] 노희준 2007-02-05 5890
101 aesop 보드에 올라간 chip manual들 file [1] 고현철 2007-01-29 5927
100 tslib(touchscreeen library) cross & native compile howto file 고현철 2007-01-26 6220
99 S3C2410용 u-boot-0.4.0 & intel strata flash jtag program 고현철 2007-01-26 5973
98 [how-to] SDL-1.2.11 관련 컴파일 과정 정리 file [7] 김성주 2007-01-24 6185
97 [howto] touch지원 SDL-1.2.11 <== 김경복님 글중발췌 [5] 고현철 2007-01-23 6059
96 S3C2410 2003-10-01 samsung site자료 고도리 2007-01-23 6000
95 usb device 동작시 usb cable detection device driver file [1] 고현철 2007-01-19 5832
94 [HowTo] USB slave 모드 동작 [2] 성진호 2007-01-19 6096
93 [Howto] Vmware 4.XXX 버젼에서 window 와 파일공유 [3] 김영일 2007-01-16 6163
92 EZBOOT 2410을 2440으로... file [3] 김영곤 2007-01-16 5803
91 ARM7강좌 MS word 파일입니다. file [1] 유태경 2007-01-15 5946
90 inetd, tcpd, telnetd install howto(scratchbox이용) file [1] 고현철 2007-01-13 6469
89 troll-ftpd cross compiling howto file 고현철 2007-01-13 6157
88 aesop hw에 대한 부품 구매 [2] 고현철 2007-01-12 6040
87 uCOS-2 for aesop-2440 by 김정한 file [4] 고현철 2007-01-11 6416
86 NOR MTD howto & Software(boot loader & kernel) upgrade file [1] 고현철 2007-01-11 5992
85 SDL 컴파일시 필요한 cross-sdl-config script file [1] 고현철 2007-01-09 6016
84 touch지원하도록 수정된 SDL library file 고현철 2007-01-09 5668
83 [howto] madplay(fixed point mp3 player) cross compile file 고현철 2007-01-06 5904

사용자 로그인