mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-31 08:25:38 +00:00
parent
3b36542212
commit
3b36673e03
@ -4,6 +4,7 @@ libc
|
|||||||
os
|
os
|
||||||
blit
|
blit
|
||||||
nitpicker_gfx
|
nitpicker_gfx
|
||||||
|
nitpicker_session
|
||||||
framebuffer_session
|
framebuffer_session
|
||||||
input_session
|
input_session
|
||||||
timer_session
|
timer_session
|
||||||
|
@ -35,7 +35,7 @@ if {[have_include power_on/qemu]} {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
append qemu_args " -m 1024 "
|
append qemu_args " -m 1536 "
|
||||||
append qemu_args " -cpu phenom"
|
append qemu_args " -cpu phenom"
|
||||||
append_if $use_block_sata qemu_args " -drive id=disk,file=bin/seoul-disc.raw,format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d"
|
append_if $use_block_sata qemu_args " -drive id=disk,file=bin/seoul-disc.raw,format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d"
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
# \author Alexander Boettcher
|
# \author Alexander Boettcher
|
||||||
# \date 2011-11-21
|
# \date 2011-11-21
|
||||||
|
|
||||||
|
create_boot_directory
|
||||||
|
|
||||||
|
import_from_depot [depot_user]/src/[base_src] \
|
||||||
|
[depot_user]/src/init \
|
||||||
|
[depot_user]/src/nitpicker
|
||||||
#
|
#
|
||||||
# Build
|
# Build
|
||||||
#
|
#
|
||||||
@ -21,7 +26,6 @@ source ${genode_dir}/repos/base/run/platform_drv.inc
|
|||||||
proc platform_drv_priority {} { return { priority="-1"} }
|
proc platform_drv_priority {} { return { priority="-1"} }
|
||||||
|
|
||||||
set build_components {
|
set build_components {
|
||||||
core init timer
|
|
||||||
drivers/rtc
|
drivers/rtc
|
||||||
drivers/input
|
drivers/input
|
||||||
app/seoul
|
app/seoul
|
||||||
@ -35,12 +39,8 @@ lappend_if $use_block_sata build_components drivers/ahci
|
|||||||
lappend_if $use_nic_session build_components drivers/nic
|
lappend_if $use_nic_session build_components drivers/nic
|
||||||
lappend_if $use_nic_bridge build_components server/nic_bridge
|
lappend_if $use_nic_bridge build_components server/nic_bridge
|
||||||
lappend_if $use_framebuffer build_components drivers/framebuffer
|
lappend_if $use_framebuffer build_components drivers/framebuffer
|
||||||
lappend_if $use_fancy_stuff build_components server/nitpicker
|
|
||||||
lappend_if $use_fancy_stuff build_components app/pointer
|
|
||||||
lappend_if $use_fancy_stuff build_components app/status_bar
|
lappend_if $use_fancy_stuff build_components app/status_bar
|
||||||
lappend_if $use_fancy_stuff build_components server/liquid_framebuffer
|
|
||||||
lappend_if $use_fancy_stuff build_components app/launchpad
|
lappend_if $use_fancy_stuff build_components app/launchpad
|
||||||
lappend_if $use_fancy_stuff build_components server/nitlog
|
|
||||||
lappend_if $use_fancy_stuff build_components server/report_rom
|
lappend_if $use_fancy_stuff build_components server/report_rom
|
||||||
lappend_if $use_genode_iso build_components server/iso9660
|
lappend_if $use_genode_iso build_components server/iso9660
|
||||||
lappend_if $use_genode_iso build_components server/rom_block
|
lappend_if $use_genode_iso build_components server/rom_block
|
||||||
@ -137,8 +137,6 @@ puts $vm_cfg_fd {
|
|||||||
</config>}
|
</config>}
|
||||||
close $vm_cfg_fd
|
close $vm_cfg_fd
|
||||||
|
|
||||||
create_boot_directory
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate Genode config
|
# Generate Genode config
|
||||||
#
|
#
|
||||||
@ -193,7 +191,7 @@ append_if $use_block_sata config {
|
|||||||
|
|
||||||
append_if $use_block_ram config {
|
append_if $use_block_ram config {
|
||||||
<start name="ram_block" priority="-1">
|
<start name="ram_block" priority="-1">
|
||||||
<resource name="RAM" quantum="162M" />
|
<resource name="RAM" quantum="262M" />
|
||||||
<provides><service name="Block"/></provides>
|
<provides><service name="Block"/></provides>
|
||||||
<config file="seoul-disc.raw" block_size="512"/>
|
<config file="seoul-disc.raw" block_size="512"/>
|
||||||
</start>}
|
</start>}
|
||||||
@ -244,7 +242,7 @@ append_if $use_framebuffer config {
|
|||||||
<service name="Platform"><any-child/></service>
|
<service name="Platform"><any-child/></service>
|
||||||
<any-service><parent/></any-service>
|
<any-service><parent/></any-service>
|
||||||
</route>
|
</route>
|
||||||
<config width="1024" height="768" depth="16" buffered="yes"/>
|
<config width="1280" height="1024" depth="16" buffered="yes"/>
|
||||||
</start> }
|
</start> }
|
||||||
|
|
||||||
if {!$use_fancy_stuff} {
|
if {!$use_fancy_stuff} {
|
||||||
@ -260,8 +258,6 @@ append_if [expr $use_nic_session && $use_nic_bridge] config {
|
|||||||
<service name="Nic"> <child name="nic_bridge"/> </service>}
|
<service name="Nic"> <child name="nic_bridge"/> </service>}
|
||||||
append_if [expr $use_nic_session && !$use_nic_bridge] config {
|
append_if [expr $use_nic_session && !$use_nic_bridge] config {
|
||||||
<service name="Nic"> <child name="nic_drv"/> </service>}
|
<service name="Nic"> <child name="nic_drv"/> </service>}
|
||||||
append_if $use_framebuffer config {
|
|
||||||
<service name="Framebuffer"><child name="fb_drv"/></service>}
|
|
||||||
append_if $use_genode_iso config {
|
append_if $use_genode_iso config {
|
||||||
<service name="ROM" unscoped_label="seoul"> <parent/> </service>
|
<service name="ROM" unscoped_label="seoul"> <parent/> </service>
|
||||||
<service name="ROM" label="vm_seoul.cfg"> <parent/> </service>
|
<service name="ROM" label="vm_seoul.cfg"> <parent/> </service>
|
||||||
@ -284,17 +280,28 @@ append_if $use_usb config {
|
|||||||
</config>
|
</config>
|
||||||
</start>}
|
</start>}
|
||||||
|
|
||||||
append_if $use_fancy_stuff config {
|
append config {
|
||||||
<start name="nitpicker" priority="-1">
|
<start name="nitpicker" priority="-1">
|
||||||
<resource name="RAM" quantum="8M"/>
|
<resource name="RAM" quantum="8M"/>
|
||||||
<config>
|
<config>
|
||||||
<report focus="yes" />
|
<report focus="yes" />
|
||||||
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
|
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" />
|
||||||
<domain name="panel" layer="2" content="client" label="no" focus="none" />
|
<domain name="panel" layer="2" content="client" label="no" focus="none" />
|
||||||
|
<domain name="init.1" layer="3" content="client" focus="click"
|
||||||
|
hover="always" xpos="20" ypos="30" height="-20"/>
|
||||||
|
<domain name="init.2" layer="3" content="client" focus="click"
|
||||||
|
hover="always" xpos="30" ypos="40" height="-20"/>
|
||||||
|
<domain name="init.3" layer="3" content="client" focus="click"
|
||||||
|
hover="always" xpos="40" ypos="50" height="-20"/>
|
||||||
<domain name="" layer="3" content="client" focus="click"
|
<domain name="" layer="3" content="client" focus="click"
|
||||||
hover="always" ypos="18" height="-18" />
|
hover="always" xpos="10" ypos="20" height="-20"/>
|
||||||
<policy label_prefix="pointer" domain="pointer"/>
|
<policy label_prefix="pointer" domain="pointer"/>
|
||||||
<policy label_prefix="status_bar" domain="panel"/>
|
<policy label_prefix="status_bar" domain="panel"/>
|
||||||
|
|
||||||
|
<policy label_prefix="launchpad -> init.1" domain="init.1"/>
|
||||||
|
<policy label_prefix="launchpad -> init.2" domain="init.2"/>
|
||||||
|
<policy label_prefix="launchpad -> init.3" domain="init.3"/>
|
||||||
|
|
||||||
<default-policy domain=""/>
|
<default-policy domain=""/>
|
||||||
</config>
|
</config>
|
||||||
<route>
|
<route>
|
||||||
@ -305,22 +312,26 @@ append_if $use_fancy_stuff config {
|
|||||||
</route>
|
</route>
|
||||||
<provides><service name="Nitpicker"/></provides>
|
<provides><service name="Nitpicker"/></provides>
|
||||||
</start>
|
</start>
|
||||||
|
|
||||||
<start name="pointer">
|
<start name="pointer">
|
||||||
<resource name="RAM" quantum="1M"/>
|
<resource name="RAM" quantum="1M"/>
|
||||||
</start>
|
</start>
|
||||||
<start name="status_bar">
|
|
||||||
<resource name="RAM" quantum="1M"/>
|
|
||||||
<route>
|
|
||||||
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
|
|
||||||
<any-service> <parent/> <any-child/> </any-service>
|
|
||||||
</route>
|
|
||||||
</start>
|
|
||||||
<start name="report_rom">
|
<start name="report_rom">
|
||||||
<resource name="RAM" quantum="1M"/>
|
<resource name="RAM" quantum="1M"/>
|
||||||
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
<provides> <service name="Report"/> <service name="ROM"/> </provides>
|
||||||
<config>
|
<config>
|
||||||
<policy label="status_bar -> focus" report="nitpicker -> focus"/>
|
<policy label="status_bar -> focus" report="nitpicker -> focus"/>
|
||||||
</config>
|
</config>
|
||||||
|
</start>}
|
||||||
|
|
||||||
|
append_if $use_fancy_stuff config {
|
||||||
|
<start name="status_bar">
|
||||||
|
<resource name="RAM" quantum="1M"/>
|
||||||
|
<route>
|
||||||
|
<service name="ROM" label="focus"> <child name="report_rom"/> </service>
|
||||||
|
<any-service> <parent/> <any-child/> </any-service>
|
||||||
|
</route>
|
||||||
</start>
|
</start>
|
||||||
<start name="launchpad" priority="-2" caps="1500">
|
<start name="launchpad" priority="-2" caps="1500">
|
||||||
<resource name="RAM" quantum="64000M"/>
|
<resource name="RAM" quantum="64000M"/>
|
||||||
@ -367,27 +378,12 @@ if {$use_fancy_stuff} {
|
|||||||
<service name="Rtc"/>
|
<service name="Rtc"/>
|
||||||
</parent-provides>
|
</parent-provides>
|
||||||
|
|
||||||
<start name="fb.seoul" priority="-1" caps="100">
|
<start name="seoul" priority="-1" caps="200" ld="no">
|
||||||
<binary name="liquid_fb"/>
|
|
||||||
<resource name="RAM" quantum="16M"/>
|
|
||||||
<provides>
|
|
||||||
<service name="Framebuffer"/>
|
|
||||||
<service name="Input"/>
|
|
||||||
</provides>
|
|
||||||
<route>
|
|
||||||
<any-service><parent/></any-service>
|
|
||||||
</route>
|
|
||||||
<config xpos="10" ypos="10" width="800" height="600" animate="off"/>
|
|
||||||
</start>
|
|
||||||
|
|
||||||
<start name="seoul" priority="-1" caps="200">
|
|
||||||
<binary name="seoul"/>
|
<binary name="seoul"/>
|
||||||
<resource name="RAM" quantum="256M"/>
|
<resource name="RAM" quantum="256M"/>
|
||||||
<route>
|
<route>
|
||||||
<service name="Timer"><parent/></service>
|
<service name="Timer"><parent/></service>
|
||||||
<service name="Nic"><parent/></service>
|
<service name="Nic"><parent/></service>
|
||||||
<service name="Input"><child name="fb.seoul"/></service>
|
|
||||||
<service name="Framebuffer"><child name="fb.seoul"/></service>
|
|
||||||
<any-service><parent/></any-service>
|
<any-service><parent/></any-service>
|
||||||
</route>
|
</route>
|
||||||
<configfile name="vm_seoul.cfg"/>
|
<configfile name="vm_seoul.cfg"/>
|
||||||
@ -406,8 +402,6 @@ install_config $config
|
|||||||
|
|
||||||
# generic modules
|
# generic modules
|
||||||
set boot_modules {
|
set boot_modules {
|
||||||
core ld.lib.so init
|
|
||||||
timer
|
|
||||||
rtc_drv
|
rtc_drv
|
||||||
seoul
|
seoul
|
||||||
vm_seoul.cfg
|
vm_seoul.cfg
|
||||||
@ -421,12 +415,8 @@ lappend_if $use_nic_session boot_modules nic_drv
|
|||||||
lappend_if $use_nic_bridge boot_modules nic_bridge
|
lappend_if $use_nic_bridge boot_modules nic_bridge
|
||||||
lappend_if $use_framebuffer boot_modules fb_drv
|
lappend_if $use_framebuffer boot_modules fb_drv
|
||||||
|
|
||||||
lappend_if $use_fancy_stuff boot_modules nitpicker
|
|
||||||
lappend_if $use_fancy_stuff boot_modules pointer
|
|
||||||
lappend_if $use_fancy_stuff boot_modules status_bar
|
lappend_if $use_fancy_stuff boot_modules status_bar
|
||||||
lappend_if $use_fancy_stuff boot_modules liquid_fb
|
|
||||||
lappend_if $use_fancy_stuff boot_modules launchpad
|
lappend_if $use_fancy_stuff boot_modules launchpad
|
||||||
lappend_if $use_fancy_stuff boot_modules nitlog
|
|
||||||
lappend_if $use_fancy_stuff boot_modules launchpad-config
|
lappend_if $use_fancy_stuff boot_modules launchpad-config
|
||||||
lappend_if $use_fancy_stuff boot_modules report_rom
|
lappend_if $use_fancy_stuff boot_modules report_rom
|
||||||
|
|
||||||
|
@ -373,13 +373,14 @@ bool Seoul::Console::receive(MessageTimeout &msg) {
|
|||||||
|
|
||||||
Seoul::Console::Console(Genode::Env &env, Synced_motherboard &mb,
|
Seoul::Console::Console(Genode::Env &env, Synced_motherboard &mb,
|
||||||
Motherboard &unsynchronized_motherboard,
|
Motherboard &unsynchronized_motherboard,
|
||||||
Framebuffer::Connection &framebuffer,
|
Nitpicker::Connection &nitpicker,
|
||||||
Genode::Dataspace_capability guest_fb_ds)
|
Genode::Dataspace_capability guest_fb_ds)
|
||||||
:
|
:
|
||||||
_env(env),
|
_env(env),
|
||||||
_unsynchronized_motherboard(unsynchronized_motherboard),
|
_unsynchronized_motherboard(unsynchronized_motherboard),
|
||||||
_motherboard(mb),
|
_motherboard(mb),
|
||||||
_framebuffer(framebuffer),
|
_framebuffer(*nitpicker.framebuffer()),
|
||||||
|
_input(*nitpicker.input()),
|
||||||
_guest_fb_ds(guest_fb_ds),
|
_guest_fb_ds(guest_fb_ds),
|
||||||
_fb_mode(_framebuffer.mode()),
|
_fb_mode(_framebuffer.mode()),
|
||||||
_fb_size(Genode::Dataspace_client(_framebuffer.dataspace()).size()),
|
_fb_size(Genode::Dataspace_client(_framebuffer.dataspace()).size()),
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include <framebuffer_session/connection.h>
|
#include <framebuffer_session/connection.h>
|
||||||
#include <input/event.h>
|
#include <input/event.h>
|
||||||
#include <input_session/connection.h>
|
#include <input_session/connection.h>
|
||||||
|
#include <nitpicker_session/connection.h>
|
||||||
#include <timer_session/connection.h>
|
#include <timer_session/connection.h>
|
||||||
|
|
||||||
#include <os/pixel_rgb565.h>
|
#include <os/pixel_rgb565.h>
|
||||||
@ -50,13 +51,13 @@ class Seoul::Console : public StaticReceiver<Seoul::Console>
|
|||||||
Genode::Env &_env;
|
Genode::Env &_env;
|
||||||
Motherboard &_unsynchronized_motherboard;
|
Motherboard &_unsynchronized_motherboard;
|
||||||
Synced_motherboard &_motherboard;
|
Synced_motherboard &_motherboard;
|
||||||
Framebuffer::Connection &_framebuffer;
|
Framebuffer::Session &_framebuffer;
|
||||||
|
Input::Session_client &_input;
|
||||||
Genode::Dataspace_capability _guest_fb_ds;
|
Genode::Dataspace_capability _guest_fb_ds;
|
||||||
Framebuffer::Mode _fb_mode;
|
Framebuffer::Mode _fb_mode;
|
||||||
size_t _fb_size;
|
size_t _fb_size;
|
||||||
short *_pixels;
|
short *_pixels;
|
||||||
Genode::Surface<Pixel_rgb565> _surface;
|
Genode::Surface<Pixel_rgb565> _surface;
|
||||||
Input::Connection _input { _env };
|
|
||||||
Keyboard _vkeyb { _motherboard };
|
Keyboard _vkeyb { _motherboard };
|
||||||
char *_guest_fb { nullptr };
|
char *_guest_fb { nullptr };
|
||||||
VgaRegs *_regs { nullptr };
|
VgaRegs *_regs { nullptr };
|
||||||
@ -93,7 +94,7 @@ class Seoul::Console : public StaticReceiver<Seoul::Console>
|
|||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
Console(Genode::Env &env, Synced_motherboard &, Motherboard &,
|
Console(Genode::Env &env, Synced_motherboard &, Motherboard &,
|
||||||
Framebuffer::Connection &, Genode::Dataspace_capability fb_ds);
|
Nitpicker::Connection &, Genode::Dataspace_capability fb_ds);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _CONSOLE_H_ */
|
#endif /* _CONSOLE_H_ */
|
||||||
|
@ -44,7 +44,6 @@
|
|||||||
#include <util/misc_math.h>
|
#include <util/misc_math.h>
|
||||||
|
|
||||||
/* os includes */
|
/* os includes */
|
||||||
#include <framebuffer_session/connection.h>
|
|
||||||
#include <nic_session/connection.h>
|
#include <nic_session/connection.h>
|
||||||
#include <nic/packet_allocator.h>
|
#include <nic/packet_allocator.h>
|
||||||
#include <rtc_session/connection.h>
|
#include <rtc_session/connection.h>
|
||||||
@ -1435,12 +1434,32 @@ void Component::construct(Genode::Env &env)
|
|||||||
static Vmm::Virtual_reservation reservation(env, vm_size);
|
static Vmm::Virtual_reservation reservation(env, vm_size);
|
||||||
|
|
||||||
/* setup framebuffer memory for guest */
|
/* setup framebuffer memory for guest */
|
||||||
static Framebuffer::Connection framebuffer(env, Framebuffer::Mode(0, 0, Framebuffer::Mode::INVALID));
|
static Nitpicker::Connection nitpicker { env };
|
||||||
Framebuffer::Mode const fb_mode = framebuffer.mode();
|
|
||||||
|
unsigned width = config.xml().attribute_value("width", 1024U);
|
||||||
|
unsigned height = config.xml().attribute_value("height", 768U);
|
||||||
|
|
||||||
|
nitpicker.buffer(Framebuffer::Mode(width, height,
|
||||||
|
Framebuffer::Mode::RGB565), false);
|
||||||
|
|
||||||
|
static Framebuffer::Session &framebuffer { *nitpicker.framebuffer() };
|
||||||
|
Framebuffer::Mode const fb_mode { framebuffer.mode() };
|
||||||
|
|
||||||
size_t const fb_size = Genode::align_addr(fb_mode.width() *
|
size_t const fb_size = Genode::align_addr(fb_mode.width() *
|
||||||
fb_mode.height() *
|
fb_mode.height() *
|
||||||
fb_mode.bytes_per_pixel(), 12);
|
fb_mode.bytes_per_pixel(), 12);
|
||||||
|
|
||||||
|
typedef Nitpicker::Session::View_handle View_handle;
|
||||||
|
typedef Nitpicker::Session::Command Command;
|
||||||
|
|
||||||
|
View_handle view = nitpicker.create_view();
|
||||||
|
Nitpicker::Rect rect(Nitpicker::Point(0, 0),
|
||||||
|
Nitpicker::Area(fb_mode.width(), fb_mode.height()));
|
||||||
|
|
||||||
|
nitpicker.enqueue<Command::Geometry>(view, rect);
|
||||||
|
nitpicker.enqueue<Command::To_front>(view, View_handle());
|
||||||
|
nitpicker.execute();
|
||||||
|
|
||||||
/* setup guest memory */
|
/* setup guest memory */
|
||||||
static Guest_memory guest_memory(env, vm_size, fb_size);
|
static Guest_memory guest_memory(env, vm_size, fb_size);
|
||||||
|
|
||||||
@ -1496,7 +1515,7 @@ void Component::construct(Genode::Env &env)
|
|||||||
/* create console thread */
|
/* create console thread */
|
||||||
static Seoul::Console vcon(env, machine.motherboard(),
|
static Seoul::Console vcon(env, machine.motherboard(),
|
||||||
machine.unsynchronized_motherboard(),
|
machine.unsynchronized_motherboard(),
|
||||||
framebuffer,
|
nitpicker,
|
||||||
guest_memory.fb_ds());
|
guest_memory.fb_ds());
|
||||||
|
|
||||||
vcon.register_host_operations(machine.unsynchronized_motherboard());
|
vcon.register_host_operations(machine.unsynchronized_motherboard());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user