2002-04-10 22:39:08

by Kevin Hilman

[permalink] [raw]
Subject: ioremap() >= 128Mb (was: Memory problem with bttv driver)

I followed the 'Memory problem with bttv driver' thread from the
archives and was curious if there was any resolution.

The basic problem is that I have a machine with 1G physical memory and
a device with an 128Mb of on-board memory that I would like to
ioremap(). Of course, since VMALLOC_RESERVE is 128Mb this will always
fail if there have been any previous calls to vmalloc() or ioremap()
(which is aways true when the driver loads as a module.)

So far I have a few workarounds, but no good long term solution.
- boot the kernel with less than 1G on cmdline: mem=768M
- hack VMALLOC_RESERVE

Is it reasonable to make VMALLOC_RESERVE be configurable at boot-time
instead of compile time?

Or, is there a better way to get memory-mapped access to all of the
devices on-board memory?

Thanks.
--
Kevin Hilman <[email protected]>


2002-04-11 05:37:56

by Martin J. Bligh

[permalink] [raw]
Subject: Re: ioremap() >= 128Mb (was: Memory problem with bttv driver)

> The basic problem is that I have a machine with 1G physical memory and
> a device with an 128Mb of on-board memory that I would like to
> ioremap(). Of course, since VMALLOC_RESERVE is 128Mb this will always
> fail if there have been any previous calls to vmalloc() or ioremap()

Or even if there have been no previous calls, since other things
(fixmap, kmap, etc) come out of that space too.

M.