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