On Tue, 2006-08-22 at 09:22 -0500, Matt Porter wrote: > On Tue, Aug 22, 2006 at 05:11:09PM +0930, Phil Nitschke wrote: > > Hi all, > > > > I have 2 GB memory on a 7448 processor, and want to reserve a huge chunk > > of it at boot-time, then ioremap() it into the kernel space inside a > > device driver. So far I've succeeded with 64 MB, but can't go any > > higher, as mm/vmalloc.c tells me: "allocation failed: out of vmalloc > > space - use vmalloc=<size> to increase size." > > > > So I tried adding a vmalloc line to the kernel command line as follows: > > Kernel cmd line: root=/dev/nfs rw mem=1920M vmalloc=1024M nfsroot=... > > Yeah, that suggestion is bogus. That option can't help with getting > more vmalloc space in this case. > > > So the vmalloc=<size> argument has made no difference. What do I need > > to do to make this work? > > Go to the "Advanced setup" menu. There's a number of options to provide > fine-grained control of the PPC kernel virtual address space.
<SNIP> Thanks Matt (and others) for your suggestions. Matt has given me the answers I was looking for. Since my (2 GB) memory is within the (4 GB) addressable by a 32-bit processor, why do I need high memory at all? Are there performance implications on this platform from having a non optimal low/high ratio? > That said, why don't you just use alloc_bootmem() to reserve memory > for your driver at boot time? I avoided this simply because I wanted to load/unload my driver (during development), and alloc_bootmem() seemed better suited to drivers compiled into the kernel. But I'll look again at this idea if further problems arise with the approach above. Thanks again, -- Phil