parent
1b8f44e808
commit
0826c6daac
|
@ -0,0 +1,142 @@
|
||||||
|
set dd [installed_command dd]
|
||||||
|
set sgdisk [installed_command sgdisk]
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build
|
||||||
|
#
|
||||||
|
set build_components {
|
||||||
|
core init timer
|
||||||
|
app/sequence
|
||||||
|
server/part_block
|
||||||
|
server/rom_block
|
||||||
|
test/block/bench
|
||||||
|
}
|
||||||
|
|
||||||
|
build $build_components
|
||||||
|
|
||||||
|
create_boot_directory
|
||||||
|
|
||||||
|
set partition_blocks 8192
|
||||||
|
|
||||||
|
# create empty block device file
|
||||||
|
catch { exec $dd if=/dev/zero of=bin/gpt.raw bs=512 count=[expr $partition_blocks*5+2082]}
|
||||||
|
|
||||||
|
# create paritions
|
||||||
|
puts "using sgdisk to partition disk image"
|
||||||
|
catch { exec $sgdisk -o \
|
||||||
|
-n 1:2048:[expr 2048+$partition_blocks*1-1] \
|
||||||
|
-n 2:[expr 2048+$partition_blocks*1]:[expr 2048+$partition_blocks*2-1] \
|
||||||
|
-n 3:[expr 2048+$partition_blocks*2]:[expr 2048+$partition_blocks*3-1] \
|
||||||
|
-n 4:[expr 2048+$partition_blocks*3]:[expr 2048+$partition_blocks*4-1] \
|
||||||
|
-n 5:[expr 2048+$partition_blocks*4]:[expr 2048+$partition_blocks*5-1] \
|
||||||
|
bin/gpt.raw }
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate config
|
||||||
|
#
|
||||||
|
set config {
|
||||||
|
<config>
|
||||||
|
<parent-provides>
|
||||||
|
<service name="ROM"/>
|
||||||
|
<service name="IRQ"/>
|
||||||
|
<service name="IO_MEM"/>
|
||||||
|
<service name="IO_PORT"/>
|
||||||
|
<service name="PD"/>
|
||||||
|
<service name="RM"/>
|
||||||
|
<service name="CPU"/>
|
||||||
|
<service name="LOG"/>
|
||||||
|
</parent-provides>
|
||||||
|
<default-route>
|
||||||
|
<any-service> <parent/> <any-child/> </any-service>
|
||||||
|
</default-route>
|
||||||
|
<default caps="100"/>
|
||||||
|
<start name="timer">
|
||||||
|
<resource name="RAM" quantum="1M"/>
|
||||||
|
<provides><service name="Timer"/></provides>
|
||||||
|
</start>
|
||||||
|
<start name="rom_block">
|
||||||
|
<resource name="RAM" quantum="32M"/>
|
||||||
|
<provides><service name="Block"/></provides>
|
||||||
|
<config file="gpt.raw" block_size="512"/>
|
||||||
|
</start>
|
||||||
|
<start name="part_block">
|
||||||
|
<resource name="RAM" quantum="10M" />
|
||||||
|
<provides><service name="Block" /></provides>
|
||||||
|
<route>
|
||||||
|
<service name="Report">
|
||||||
|
<child name="block_router"/> </service>
|
||||||
|
<any-service><child name="rom_block"/> <parent/><any-child/></any-service>
|
||||||
|
</route>
|
||||||
|
<config use_gpt="yes">
|
||||||
|
<policy label_suffix="test-a -> " partition="1"/>
|
||||||
|
<policy label_suffix="test-b -> " partition="2"/>
|
||||||
|
<policy label_suffix="test-c -> " partition="3"/>
|
||||||
|
<policy label_suffix="test-d -> " partition="4"/>
|
||||||
|
<policy label_suffix="test-e -> " partition="5"/>
|
||||||
|
</config>
|
||||||
|
</start>
|
||||||
|
<start name="test-a">
|
||||||
|
<binary name="test-block-bench" />
|
||||||
|
<resource name="RAM" quantum="5M" />
|
||||||
|
<route>
|
||||||
|
<service name="Block"><child name="part_block"/></service>
|
||||||
|
<any-service> <parent/> <any-child /> </any-service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
<start name="test-b">
|
||||||
|
<binary name="test-block-bench" />
|
||||||
|
<resource name="RAM" quantum="5M" />
|
||||||
|
<route>
|
||||||
|
<service name="Block"><child name="part_block"/></service>
|
||||||
|
<any-service> <parent/> <any-child /> </any-service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
<start name="test-c">
|
||||||
|
<binary name="test-block-bench" />
|
||||||
|
<resource name="RAM" quantum="5M" />
|
||||||
|
<route>
|
||||||
|
<service name="Block"><child name="part_block"/></service>
|
||||||
|
<any-service> <parent/> <any-child /> </any-service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
<start name="test-d">
|
||||||
|
<binary name="test-block-bench" />
|
||||||
|
<resource name="RAM" quantum="5M" />
|
||||||
|
<route>
|
||||||
|
<service name="Block"><child name="part_block"/></service>
|
||||||
|
<any-service> <parent/> <any-child /> </any-service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
<start name="test-e">
|
||||||
|
<binary name="test-block-bench" />
|
||||||
|
<resource name="RAM" quantum="5M" />
|
||||||
|
<route>
|
||||||
|
<service name="Block"><child name="part_block"/></service>
|
||||||
|
<any-service> <parent/> <any-child /> </any-service>
|
||||||
|
</route>
|
||||||
|
</start>
|
||||||
|
|
||||||
|
</config> }
|
||||||
|
|
||||||
|
install_config $config
|
||||||
|
|
||||||
|
#
|
||||||
|
# Boot modules
|
||||||
|
#
|
||||||
|
set boot_modules {
|
||||||
|
core ld.lib.so init timer
|
||||||
|
part_block rom_block test-block-bench sequence
|
||||||
|
gpt.raw
|
||||||
|
}
|
||||||
|
|
||||||
|
build_boot_image $boot_modules
|
||||||
|
|
||||||
|
append qemu_args " -nographic"
|
||||||
|
|
||||||
|
run_genode_until forever
|
||||||
|
|
||||||
|
file delete bin/gpt.raw
|
Loading…
Reference in New Issue