mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-15 17:29:52 +00:00
605a5d7df2
By using priorities, we make sure that the timer gets scheduled whenever it is able to run regardless of how much load is on the system.
128 lines
3.2 KiB
Plaintext
128 lines
3.2 KiB
Plaintext
set build_components {
|
|
core init virtualbox
|
|
drivers/input
|
|
drivers/framebuffer
|
|
drivers/timer
|
|
}
|
|
|
|
lappend_if [have_spec acpi] build_components drivers/acpi
|
|
lappend_if [have_spec pci] build_components drivers/pci
|
|
lappend_if [have_spec x86] build_components drivers/rtc
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
set config {
|
|
<config prio_levels="4">
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="RAM"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="CAP"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="SIGNAL"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <any-child/> <parent/> </any-service>
|
|
</default-route>
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec acpi] config {
|
|
<start name="acpi" priority="-1">
|
|
<resource name="RAM" quantum="5M"/>
|
|
<binary name="acpi_drv"/>
|
|
<provides>
|
|
<service name="PCI"/>
|
|
<service name="IRQ" />
|
|
</provides>
|
|
<route>
|
|
<service name="PCI"> <any-child /> </service>
|
|
<any-service> <parent/> <any-child /> </any-service>
|
|
</route>
|
|
</start>}
|
|
|
|
append_if [expr ![have_spec acpi] && [have_spec pci]] config {
|
|
<start name="pci_drv" priority="-1">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<provides> <service name="PCI"/> </provides>
|
|
</start>}
|
|
|
|
append_if [have_spec ps2] config {
|
|
<start name="ps2_drv" priority="-1">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Input"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec framebuffer] config {
|
|
<start name="fb_drv" priority="-1">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides><service name="Framebuffer"/></provides>
|
|
</start>}
|
|
|
|
append_if [have_spec sdl] config {
|
|
<start name="fb_sdl" priority="-1">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides>
|
|
<service name="Input"/>
|
|
<service name="Framebuffer"/>
|
|
</provides>
|
|
</start>}
|
|
|
|
append_if [have_spec x86] config {
|
|
<start name="rtc_drv" priority="-1">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides>
|
|
<service name="Rtc"/>
|
|
</provides>
|
|
</start>}
|
|
|
|
append config {
|
|
<start name="virtualbox" priority="-2">
|
|
<resource name="RAM" quantum="1G"/>
|
|
<config>
|
|
<image type="iso" file="test.iso" />
|
|
<!-- <ioapic/> -->
|
|
<libc stdout="/dev/log" stderr="/dev/log">
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<rom name="test.iso" />
|
|
</vfs>
|
|
</libc>
|
|
</config>
|
|
</start>
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
set boot_modules { core init timer virtualbox test.iso }
|
|
|
|
# platform-specific modules
|
|
lappend_if [have_spec ps2] boot_modules ps2_drv
|
|
lappend_if [have_spec acpi] boot_modules acpi_drv
|
|
lappend_if [have_spec pci] boot_modules pci_drv
|
|
lappend_if [have_spec framebuffer] boot_modules fb_drv
|
|
lappend_if [have_spec linux] boot_modules fb_sdl
|
|
lappend_if [have_spec nova] boot_modules pci_device_pd
|
|
lappend_if [have_spec x86] boot_modules rtc_drv
|
|
|
|
append boot_modules { ld.lib.so libc.lib.so libm.lib.so pthread.lib.so
|
|
libc_lock_pipe.lib.so libc_terminal.lib.so
|
|
libiconv.lib.so }
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -m 512 "
|
|
append qemu_args " -cpu phenom "
|
|
|
|
run_genode_until forever
|