포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 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
번호 제목 글쓴이 날짜 조회 수
102 RTEMS-4.6.99.3 따라해보기...^^ file [2] 고현철 2006-05-21 5902
101 [howto] AESOP Package.... file [8] 이홍석 2006-05-09 5857
100 guichan - SDL이용한 gui tool file [1] 고현철 2006-04-12 5721
99 [howto] 이솝보드의 커널 패치 howto file 이재훈 2006-04-06 5912
98 [howto] aESOP 으로 해왔던 부분들 file [4] 이재훈 2006-04-06 5863
97 [howto] RootFS 만들기 howto file [2] 이재훈 2006-04-06 7856
96 [howto] mtd nor boot cmdlinepart partitions howto - smdk24... file 이재훈 2006-04-06 6006
95 [howto] D:My Embedded Linux - S3C2410-2440SMDK2410 2440 Li... file 이재훈 2006-04-06 6041
94 [howto] SMDK2410 보드의 aESOP Jtag Cable 을 이용한 플래시메... file 이재훈 2006-04-06 6083
93 [howto] Cross Tool Chain 만들기 file [1] 이재훈 2006-04-06 6300
92 [howto] QT Embedded 3.3.6 with TSLIB patch and porting ... file [1] 이재훈 2006-04-06 6217
91 [howto] OPIE TSLIB porting to aESOP2440/ SMDK2410 file 이재훈 2006-04-06 6053
90 [howto] aesop2440 2.6.13 ramdisk howto 수정버전 file 고현철 2006-04-06 5971
» [howto] aesop2440 2.6.13 ramdisk howto file [11] 고현철 2006-04-06 6089
88 libXtst for Xkdrive( for matchbox compile) file 고현철 2007-03-15 5649
87 aesop logo 올립니다. file 고현철 2007-03-15 5674
86 linux 2.6.x kernel logo howto file 고현철 2007-03-15 5851
85 툴체인 만드는 방법에 관한 문서 ... file [1] 장석원 2007-03-08 5828
84 PCI 규격 한글설명 및 windows device driver관련자료 file [5] 고현철 2007-03-06 5819
83 aesop-mp2530용 툴체인 새로 만든 것. gcc-3.4.5-glibc-2.3.6 [1] 고현철 2007-03-03 5724

사용자 로그인