Hi,
Can someone give me a guestimate (or better) on the minimum RAM and ROM footprints for ARM (lets say PBXA9) for genode-hw and genode+foc, to run a minimal printf program? Also, I wonder if there are other open source microkernels aimed at tiny memory footprints - can you suggest any?
Apologies if this question is too vague to answer.
Daniel
Hi Daniel,
On 01/29/2014 08:08 AM, Daniel Waddington wrote:
Can someone give me a guestimate (or better) on the minimum RAM and ROM footprints for ARM (lets say PBXA9) for genode-hw and genode+foc, to run a minimal printf program?
I just did a small experiment (see the attached patch). To determine how much RAM is needed to run the test-printf on hw_pbxa9, I successively shrunk the physical RAM visible to base-hw. Of the two RAM regions of the PBX-A9 platform, I kept only RAM0, starting at 0x70000000. This is the address where the boot image is loaded to.
Apparently, setting RAM0_SIZE to 0x240000 (ca. 2.3 MiB) is enough to run core + init + test-printf on PBX-A9 via base-hw.
I think that a further reduction is possible but it will take a bit more work. Also, compiling the system with -Os would eventually help to get the value smaller.
Also, I wonder if there are other open source microkernels aimed at tiny memory footprints - can you suggest any?
Sorry, I'm afraid that I cannot recommend a suitable kernel from the tip of my head. However, once I stumbled over the following project at GitHub, which looks pretty interesting (I have not tried it through):
https://github.com/f9micro/f9-kernel
Cheers Norman
Hello,
On Wed, Jan 29, 2014 at 12:35:55PM +0100, Norman Feske wrote:
Apparently, setting RAM0_SIZE to 0x240000 (ca. 2.3 MiB) is enough to run core + init + test-printf on PBX-A9 via base-hw.
I did a quick check for foc_pbxa9 with the attached patch. The smallest working amount of RAM was 0x135000 (ca. 1.2 MiB), but this is without the RAM used by the Fiasco kernel in the scenario. From the Fiasco kernel debugger I got "Used 2445KB out of 16384KB of Kmem" with the command 'km'.
Additionally, we have to add the amount of RAM used by ROM modules (currently loaded to RAM by the bootloader), which sums up to ca. 2.3 MiB on foc_pbxa9.
Regards
Hi Christian and Norman Thanks for the quick responses. So do you think it's fair to say that realistically 4MB is a probably the smallest you could do anything useful with. I know useful is hard to define.
Daniel On Jan 29, 2014 5:02 AM, "Christian Helmuth" < christian.helmuth@...1...> wrote:
Hello,
On Wed, Jan 29, 2014 at 12:35:55PM +0100, Norman Feske wrote:
Apparently, setting RAM0_SIZE to 0x240000 (ca. 2.3 MiB) is enough to run core + init + test-printf on PBX-A9 via base-hw.
I did a quick check for foc_pbxa9 with the attached patch. The smallest working amount of RAM was 0x135000 (ca. 1.2 MiB), but this is without the RAM used by the Fiasco kernel in the scenario. From the Fiasco kernel debugger I got "Used 2445KB out of 16384KB of Kmem" with the command 'km'.
Additionally, we have to add the amount of RAM used by ROM modules (currently loaded to RAM by the bootloader), which sums up to ca. 2.3 MiB on foc_pbxa9.
Regards
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.cl... _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Daniel,
On Wed, Jan 29, 2014 at 02:34:12PM -0800, Daniel Waddington wrote:
Thanks for the quick responses. So do you think it's fair to say that realistically 4MB is a probably the smallest you could do anything useful with. I know useful is hard to define.
For test-printf or something slightly more complex 4 MiB is a reasonable lower bound of required RAM. Also, as Norman wrote from our experience there exist several candidate modules with optimization potential to reduce the memory footprint even further.
Greets