안녕하세요.

현재 모토롤라 ARM 칩으로 보드를 하나 만들었는데요..

SDRAM 뱅크가 2개가 있는데 뱅크당 사이즈가 64M입니다.

여기다가 32M짜리 4개를 붙여서 2개의 뱅크를 모두 쓰고 있습니다.

먼저 부트로더에서 각 뱅크에 대해서 초기화 하고 램테스트(128M 전영역)를 정
상적으로 수행 했습니다.

그런데 리눅스로 부팅하면서 약간 이상하거든요..

증상은

부트 명령을 다음과 같이 주면...
root=/dev/mtdblock/2 ro mem=64M
정상적으로 부팅합니다. 64M 이하 값도 정상입니다. 그런데 mem=xxM 부분을
64M이상이 되면

부팅과정중에 다음과 같은 decommpress error가 발생합니다.

Using /drivers/cs89x0.o
eth0: cs8900 rev J Base 0xE3000000<6>, IRQ 8
Using MAC relying on command-line: MAC 00:0C:3C:F0:12:34
init cx89x0 success
Error -3 while decompressing!
c0163e28(1514)->c7b76000(4096) : 의문..C7b76000은 64M이상의 주소값?
Error -5 while decompressing!
c0165682(2564)->c7b73000(4096)

뱅크별로 메모리값을 주어도 같은 증상입니다.
예를 들어 root=/dev/mtdblock/2 ro mem=64M@0xC0000000 mem=64M@0xC4000000

다음은 128M로 셋팅하고 부팅한 로그입니다.
메모리가 0xC0000000 ~ 0xC7FFFFFF 까지 연속적이라 다음과 같이 2가지 방법
을 취해 봤습니다.


1. --------뱅크 하나 처럼 인식시키기--------------------
Kernel command line: root=/dev/mtdblock/2 ro mem=128M
Console: colour dummy device 80x30
Calibrating delay loop... 133.12 BogoMIPS
Memory: 128MB = 128MB total
Memory: 127576KB available (1147K code, 310K data, 72K init)
Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)


2.-------------뱅크별 인식 시키기----------------------------
Kernel command line: root=/dev/mtdblock/2 ro mem=64M@0xC0000000
mem=64M@0xC40000
00
Console: colour dummy device 80x30
Calibrating delay loop... 133.12 BogoMIPS
Memory: 64MB 64MB = 128MB total
Memory: 127576KB available (1147K code, 310K data, 72K init)
Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)


부팅후에 proc/iomem을 보면 command준 값만큼 메모리는 잡혀 있습니다.
그런데 ls 같은 간단한 프로그램을 실행 시키면 위와 같이 decompressing 에러
가 발생하네요..

메모리 확장할때 고려해야 할 사항이 어떤것이 있는지...고수님..도와주세요..

그럼 수고하세요...^^