[ixp1200] linux on ixps and memory map

Josh Fryman fryman at cc.gatech.edu
Thu Jul 26 09:56:21 EDT 2001


hi all,

this is a follow-on to my earlier question.  i got enough
information to find a trivial way to change the amount of
memory linux is using, but now i'm trying to do some more
challenging things, and having no luck.

first off, to change the amount of memory being used, the
simplest way is to edit "arch/arm/kernel/setup.c" and 
change the "#define CONFIG_CMDLINE" to include "mem=XM",
where X=4,6,8...  i received many suggestions, but they
all involved more work than this ;)   [note: X = size
of space for linux + size of ramdisk]

second, by resizing the ramdisk image down to 6MB from
8MB, we were able to save another little bit of space.
between these two options, we can comfortably run linux
in a 14MB footprint... but that leaves now 18MB of free
space.

now what we want to do is to move this space used by linux
and ramdisk to the top or bottom of memory, and increasing
the SDRAM_PACKET_xxx values such that instead of the 
sdram uncached packet buffer area being 8MB, it's increased
to 18MB.

i've modified the various values in
	include/asm-arm/arch-ixp1200/
					hardware.h
					ixp1200eb.h
	arch/arm/mm/
					mm-ixp1200.c

the various combinations i've tried:

- make the buffer at the top of memory, size > 8MB
- make the buffer at the bottom of memory, size > 8MB
- make the buffer in the middle of memory, size > 8MB
- make TWO buffers, at top and bottom, each size = 8MB

no matter how i try to modify the behavior in these files,
if i make the buffer > 8MB, OR if i move the linux base
address away from 0xc080...., OR if i try and add a 2nd
buffer region... the system won't boot correctly.

the most common behavior is lockup either when it reaches
    "Uncompress..............................done,"
or when it tries to initialize the Intel EEPro 10/100
card, at which point it fails the self-test and the
system generally panics.

does anyone have any idea what i'm doing wrong?  i'm 
careful to modify those values that should - such as base
addresses of the SDRAM_PACKET and SDRAM_BASE, sizes, etc,
but no matter how i try, i can't seem to make this work.

has anyone been able to move the memory blocks around?

thanks for any input,

josh fryman



More information about the ixp1200 mailing list