Reserving small amounts of memory with mem= (MPC85xx, 2.6.15 arch/ppc)
Florian Boelstler
euphoria at arcor.de
Fri Jun 13 02:18:26 EST 2008
Hi,
I ran into problems reserving small amounts of memory using command line
argument 'mem'.
Limiting a MPC8540 with 512MB physical available memory down to 256MB
has been successfully done using U-Boot:
=> setenv bootargs console=ttyS0,115200 mem=256M
=> setenv initrd_high 10000000
=> bootm 0x02100000
## Booting image at 02100000 ...
Image Name: Linux 2.6.15
Image Type: PowerPC Linux Multi-File Image (gzip compressed)
Data Size: 6965022 Bytes = 6.6 MB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 1099550 Bytes = 1 MB
Image 1: 5865458 Bytes = 5.6 MB
Verifying Checksum ... OK
Uncompressing Multi-File Image ... OK
[...]
Loading Ramdisk to 0fa68000, end 0ffffff2 ... OK
Memory CAM mapping: CAM0=256Mb, CAM1=0Mb, CAM2=0Mb residual: 0Mb
Linux version 2.6.15 (flo at escape) (gcc version 3.4.3) #21 PREEMPT Fri
Nov 30 16:47:32 CET 2007
[...]
root at mpc0:/# cat /proc/meminfo
MemTotal: 257272 kB
MemFree: 226332 kB
[...]
When a larger size for 'mem' (say 508M for reserving 4M) and appropriate
'initrd_high' is used, U-Boot is still able to load the ramdisk to its
correct place in RAM. However Linux seems to not accept that memory
region and removes the memory using mem_pieces_remove(), which leads to
a crash since it cannot access area used for the ramdisk(?).
In that case output of "residual" for CAM mapping shows a value != 0.
My assumption is that these CAM mappings cannot be used for memory
portions less than a certain size.
I need to dig into that, please correct me if I'm wrong.
Linux 2.6.15 build for arch/ppc on custom MPC8540 board (Linux BSP
similar to MPC8540ads). U-Boot 1.2.0.
Thanks for any suggestions.
Florian
More information about the Linuxppc-embedded
mailing list