memory on ARM

Eric Miao eric.y.miao at gmail.com
Sat Jan 29 02:23:38 EST 2011


On Saturday, January 29, 2011, hong zhang <henryzhang62 at yahoo.com> wrote:
>
>> >
>> > My TI board has two memory ports at 0x80000000 and
>> 0xC0000000.
>> > 1024Mbytes DDR2 connects at port 0x80000000 and
>> nothing at 0xC000000.
>> > I assume Linux should not count any thing if
>> 128M at 0xC000000 in kernel
>> > command line.
>>
>> Linux does not test the presence of memory.  That's
>> the job of the boot
>> loader to report to the kernel where memory actually is.
>>
>> If you tell it that there's memory present it will try to
>> use it.  The
>> command line overrides what the boot loader tells the
>> kernel because
>> it is assumed that whoever created the command line knows
>> what they're
>> doing.
>>
>> > Problems:
>> >
>> > 1. Boot log ignores 128M at 0xC000000, but total memory
>> is Memory: "1102MB =
>> >    1102MB total NOT 1024M".
>>
>> That's because you've told it that there's 1024M + 128M,
>> and it's claimed
>> 50MB from that for VRAM.
>
> But kernel says ignoring 128M at 0xC0000000. That means kernel knows physical memory 128M at 0xC0000000 is not presented and ignores it. Therefore, total memory should not count it. But it does.
>

I guess that's because phys_to_virt() converted them beyond the
normal system ram mapping, and that overlaped with the vmalloc
region. But that part of memory, if is present, can be used in theory
if HIGHMEM is enabled.

>> > 2. Truncating RAM at 80000000-bfffffff to -afffffff
>> (vmalloc region
>> >    overlap). It says it only gets 768M NOT
>> 124M.
>>
>> Correct.  You can't fill memory completely as that
>> leaves no space for
>> other purposes - such as mapping devices.  If you want
>> to use that
>> additional memory you need to turn on highmem support.
>>
>
>
>
> _______________________________________________
> linux-arm mailing list
> linux-arm at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm
>



More information about the linux-arm mailing list