diff --git a/repos/ports/ports/seoul.hash b/repos/ports/ports/seoul.hash index 0ddf311f39..14296af26d 100644 --- a/repos/ports/ports/seoul.hash +++ b/repos/ports/ports/seoul.hash @@ -1 +1 @@ -02abcfcffb40098c98656bcf8ba3d88d4d709cf5 +cb9a134ba7d65887627d14beaaffbf0aa0c6b93b diff --git a/repos/ports/ports/seoul.port b/repos/ports/ports/seoul.port index 201533f87c..5ad3f39228 100644 --- a/repos/ports/ports/seoul.port +++ b/repos/ports/ports/seoul.port @@ -3,8 +3,8 @@ VERSION := git DOWNLOADS := seoul.git URL(seoul) := https://github.com/alex-ab/seoul.git -# branch genode_17_05 -REV(seoul) := 878f0ea5593d0bc87bbbad3c5499c26d5f64d472 +# branch genode_18_05 +REV(seoul) := 253faafcfa7bbcf68732c9962d6a88052194a0d0 DIR(seoul) := src/app/seoul # diff --git a/repos/ports/run/seoul-disc.run b/repos/ports/run/seoul-disc.run index eccff46909..9574c909ea 100644 --- a/repos/ports/run/seoul-disc.run +++ b/repos/ports/run/seoul-disc.run @@ -15,7 +15,7 @@ set use_model_ide 0 set use_block_ram 1 set use_block_sata 0 -set use_nic_session 0 +set use_nic_session 1 set use_nic_bridge 0 set use_usb 0 diff --git a/repos/ports/run/seoul.inc b/repos/ports/run/seoul.inc index bda73fe77d..afff8fce63 100644 --- a/repos/ports/run/seoul.inc +++ b/repos/ports/run/seoul.inc @@ -193,7 +193,7 @@ append_if $use_block_sata config { append_if $use_block_ram config { - + } diff --git a/repos/ports/src/app/seoul/console.cc b/repos/ports/src/app/seoul/console.cc index 4ae97ef9d5..c425f9a9e4 100644 --- a/repos/ports/src/app/seoul/console.cc +++ b/repos/ports/src/app/seoul/console.cc @@ -27,6 +27,7 @@ #include #include +#include /* local includes */ #include "console.h" @@ -39,8 +40,9 @@ static struct { Genode::uint64_t checksum2 = 0; unsigned unchanged = 0; bool cmp_even = 1; - bool active = true; + bool active = false; bool revoked = false; + bool vga_update= false; /* update indirectly by vbios */ } fb_state; @@ -195,12 +197,24 @@ bool Seoul::Console::receive(MessageConsole &msg) return true; } +void Screen::vga_updated() +{ + fb_state.vga_update = true; +} bool Seoul::Console::receive(MessageMemRegion &msg) { - if (msg.page >= 0xb8 && msg.page <= 0xbf) { + /* we had a fault in the text framebuffer */ + bool reactivate = (msg.page >= 0xb8 && msg.page <= 0xbf); - /* we had a fault in the text framebuffer */ + /* vga memory got changed indirectly by vbios */ + if (fb_state.vga_update) { + fb_state.vga_update = false; + if (!fb_state.active) + reactivate = true; + } + + if (reactivate) { if (!fb_state.active) fb_state.active = true; Logging::printf("Reactivating text buffer loop.\n");