Port-ofppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: SmartFirmware /memory (was: Pegasos dmesg)



Hi,
I have to revive this old thread, because the problem is still not solved... :|

Matt Sealey wrote:

> Argh. Well, the latest "1.2" firmware was built-on 20051216 (revision 2B5
> production run) and you're running a slightly older firmware.
> Unfortunately, in the newer ones, it's fixed;
> 
> memory@0:
> name             "memory"
> linux,phandle    0fc54a00 (264587776)
> available        00000000 00010000 00024d74 00fdb28c 01800000 00400000
>        0294b007 00000ff9 02a4c000 0d1b1000 0fbffab4 0000054c
> [...]

I won't call that fixed. The "available" property only lists memory from the
lowest 256MB region, although you have 1 GB installed.


> I'm not sure exactly how you're meant to do it with broken "available"
> properties, I think Linux worked through sheer random chance and lucky
> memory mappings.

Which lucky memory mappings? ;)
I tried to study the Linux source, but I didn't get any clue. Neither did I
find any Pegasos specific code there, dealing with memory.


> The internal firmware memory allocator is fairly happy
> to claim() memory for you, so what might be best is to do some little
> tests, find out how much memory you have (reg) and then try and allocate
> 256MB chunks of it. [...]

Nice idea, but which claim() are we talking about?

1. The OF_claim() call.
2. The claim()-method of /cpus/PowerPC.../.
3. The claim()-method of /memory@0.

Unfortunately none of them really helps us.

I made a test with OF_claim(), passing the address-argument as 0, but it
only returns memory from the lowest 256MB. Same with the claim() method of
/memory, which only returns the memory listed under "available". The claim()
method of /cpus/PowerPC happily returns all memory from 0 to 0x10000000,
ignoring /memory's "available", but nothing more.

Another crazy experiment was to use the release() method of /memory, to add
the region 0x10000000-0x20000000 to the "available" property. But again
the kernel crashes when accessing it.

*sigh* ... so what do we have to do to access more than 256MB?

-- 
    _  Frank Wille (frank%phoenix.owl.de@localhost)
 _ //  http://sun.hasenbraten.de/~frank/
 \X/   Phx @ #AmigaGer



Home | Main Index | Thread Index | Old Index