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.
Signature · 1 line
Kevin Hilman <[email protected]>
Quoted 4 lines
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, sinceVMALLOC_RESERVEis 128Mb this will always fail if there have been any previous calls tovmalloc()orioremap()
Or even if there have been no previous calls, since other things (fixmap, kmap, etc) come out of that space too.
M.