MOE uses memory originally from IO device
Martin Schröder
martin.schroeder at openlimit.com
Thu Jul 3 18:21:43 CEST 2014
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
More information about the l4-hackers
mailing list