MOE uses memory originally from IO device

Martin Schröder <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
My board is equipped with 128MB external DRAM:

> L4 Bootstrapper
>   Build: #1234 Do 3. Jul 17:34:17 CEST 2014, 4.6.2
>   Scanning up to 128 MB RAM
>   Memory size is 128MB (40000000 - 47ffffff)
>   RAM: 0000000040000000 - 0000000047ffffff: 131072kB
>   Total RAM: 128MB

In addition the CPU has 128kb internal RAM (so called On-Chip-RAM) which 
is located at address 0 - 0001ffff.

I want to expose this OCRAM as a virtual device to a (already existing) 
kernel driver within l4linux, so I added these few lines to my config:

> OCRAM => new Device() {
>   .hid= "ocram";
>   new-res Mmio(0x00000000 .. 0x0001FFFF);
> }
>
> client0 => new System_bus() {
>   ...
>   "ocram" = wrap(hw-root.OCRAM);
> }

Unfortunately IO cannot map this device, but maps instead something else 
which is of no use for me:

> io      | <0x1bff0>IOMEM   [00000000000000-0000000001ffff 20000] non-pref (32bit) (align=1ffff flags=4002)
> io      | WARNING: phys mmio resource allocation failed
> io      | <0x1bff0>IOMEM   [00000000000000-0000000001ffff 20000] non-pref (32bit) (align=1ffff flags=4002)
> io      | allocated resource: <0x1bff0>IOMEM   [00000001000000-0000000101ffff 20000] non-pref (align=1ffff flags=4002)

But a few lines up I see:

> MOE: Hello world!
> MOE: found 109032 KByte free memory
> MOE: found RAM from 40000000 to 47000000
> ...

Probably MOE assumes this as normal ram and adds it to its pool.

But how can I inhibit MOE grabbing this piece of RAM and instead assign 
it to the OCRAM device in IO?


Best regards,
    Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.