Hi,
Please try to subtract the offset from the initial '_map' call:
That didn't do it, because it still uses the base address with offset for the io mem connection. What did help was to use _base - _offset() in the constructor of Io_mem_connection. Now I could successfully boot genode with USB input devices and launch scout.
But that is of course a very dirty hack to get it running. The question is, why the creation of io_mem_connection fails, or if the memory map has some issues.
diff --git a/os/src/drivers/acpi/acpi.cc b/os/src/drivers/acpi/acpi.cc index 6f4970e..a8322b2 100644 --- a/os/src/drivers/acpi/acpi.cc +++ b/os/src/drivers/acpi/acpi.cc @@ -206,7 +206,7 @@ class Table_wrapper Table_wrapper(addr_t base) : _base(base), _io_mem(0), _table(0) {
_map(0x1000);
_map(0x1000 - _offset()); /* remap if table size is larger than current size */ if (_offset() + _table->size > 0x1000) {
If this should work, we have to make sure that 0x1000 - offset is at least 8 Bytes wide.
Sebastian
Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main