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
--
Dr.-Ing. Norman Feske
Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
diff --git a/base-hw/src/core/pbxa9/platform_support.cc b/base-hw/src/core/pbxa9/platform_support.cc
index 6b6c9be..f7a1b7d 100644
--- a/base-hw/src/core/pbxa9/platform_support.cc
+++ b/base-hw/src/core/pbxa9/platform_support.cc
@@ -62,7 +62,6 @@ Native_region * Platform::_ram_regions(unsigned const i)
static Native_region _regions[] =
{
{ Board::RAM_0_BASE, Board::RAM_0_SIZE },
- { Board::RAM_1_BASE, Board::RAM_1_SIZE }
};
return i < sizeof(_regions)/sizeof(_regions[0]) ? &_regions[i] : 0;
}
diff --git a/base-hw/src/core/pbxa9/tlb.h b/base-hw/src/core/pbxa9/tlb.h
index 3082f63..ec44de0 100644
--- a/base-hw/src/core/pbxa9/tlb.h
+++ b/base-hw/src/core/pbxa9/tlb.h
@@ -38,7 +38,6 @@ namespace Genode
{
using namespace Genode;
map_core_area(Board::RAM_0_BASE, Board::RAM_0_SIZE, 0);
- map_core_area(Board::RAM_1_BASE, Board::RAM_1_SIZE, 0);
map_core_area(Board::MMIO_0_BASE, Board::MMIO_0_SIZE, 1);
map_core_area(Board::MMIO_1_BASE, Board::MMIO_1_SIZE, 1);
}
diff --git a/base/include/platform/pbxa9/drivers/board_base.h b/base/include/platform/pbxa9/drivers/board_base.h
index fadc0c1..c419915 100644
--- a/base/include/platform/pbxa9/drivers/board_base.h
+++ b/base/include/platform/pbxa9/drivers/board_base.h
@@ -25,9 +25,7 @@ namespace Genode
{
/* normal RAM */
RAM_0_BASE = 0x70000000,
- RAM_0_SIZE = 0x20000000,
- RAM_1_BASE = 0x20000000,
- RAM_1_SIZE = 0x10000000,
+ RAM_0_SIZE = 0x00240000,
/* device IO memory */
MMIO_0_BASE = 0x10000000,
------------------------------------------------------------------------------
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.clktrk
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main