On Tue, Jan 6, 2009 at 12:45 PM, Om <[email protected]> wrote:
> Andrew Sterian wrote:
>> On Mon, Jan 5, 2009 at 8:56 PM, Om <[email protected]> wrote:
>>> Andrew Sterian wrote:
>>>> I'm developing a driver for an embedded ARM system (2.6.24 system) and
>>>> have 128M of RAM which I have been given free reign over. I want to
>
> If the kernel manages it, you don't have a free reign. Limiting kernel
> memory access with mem= param would be a good idea.
>>
>>>> I have the driver working with 8k of RAM, simply using kmalloc(). My
>>>> efforts to scale up to 8M have failed.
>>>
>>> what I did was ioremap.
>>> My case:
>>> 1. m/c had 256M
>>> 2. Passed parameter mem=128M to limit what cpu sees.
>>> 3. used ioremap on 0xc800_0000 (32bit processor) for 128M
>>> 4. used the returned virtual address.
>>
>> OK, I tried this and it somewhat works (with MEM=120M in a 128M
>> system, 120M offset is 0xC7800000):
>>
>> addr = ioremap(0xC7800000, 8*1024*1024);
>> printk(KERN_NOTICE "%08X\n", addr);
>>
>> Strange is that the value of 'addr' when printed is 0xC7700000, or 1M
>> lower than I asked for.
>
> It is indeed strange. After the call, what does
> #cat /proc/iomem
> say?
/proc/iomem has no mention of anything. There are a bunch of mappings
at 43f8000 to 53fdc000, then the following:
80000000-877fffff : System RAM
80025000-8035efff : Kernel text
80360000-803a9193 : Kernel data
b6000000-b6000100 : smsc911x.0
b6000000-b60000ff : smsc911x
Nothing at the address from ioremap().
>>> Make sure that your PCI address space starts well above the physical
>>> address
>>> present, so should the vmalloc_start address. I think you can change
>>> #defines for these if required to suit your need.
>
> If you have disabled pci (CONFIG_PCI = N et al), you don't have to worry
> about pci address space.
There's no CONFIG_PCI in the .config so I'm assuming I don't have to
worry about it.
>> No PCI in this system and I have no idea what vmalloc_start address is :)
>
> In x86_64 and i386, you would find VMALLOC_{START,END} in pgtable.h
> Thanks,
VMALLOC_START prints out as 0xC8000000, and high_memory is 0xC7800000.
Thanks,
Andrew
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ