# # \brief Test for using the Block (Storage) service of usb_drv # \author Christian Prochaska # \date 2011-06-24 # # # Build # set build_components { core init drivers/timer drivers/usb test/blk/cli } lappend_if [have_spec gpio] build_components drivers/gpio proc gpio_drv { } { if {[have_spec rpi] && [have_spec hw]} { return hw_gpio_drv } if {[have_spec rpi] && [have_spec foc]} { return foc_gpio_drv } return gpio_drv } source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components build $build_components create_boot_directory # # Generate config # set config { } append_platform_drv_config append_if [have_spec gpio] config " " append config { } install_config $config # # Boot modules # # generic modules set boot_modules { core ld.lib.so init timer usb_drv test-blk-cli } lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules build_boot_image $boot_modules # # Execute test case # set disk_image "bin/test.img" set cmd "dd if=/dev/zero of=$disk_image bs=1024 count=65536" puts "creating disk image:\n$cmd" catch { exec sh -c $cmd } set cmd "mkfs.vfat -F32 $disk_image" puts "formating disk image with vfat file system:\$cmd" catch { exec sh -c $cmd } # # Qemu opts for UHCI # #append qemu_args " -m 128 -nographic -usbdevice disk::$disk_image -boot order=d" # # Qemu opts for EHCI # append qemu_args "-drive if=none,id=disk,file=$disk_image" append qemu_args { \ -m 128 -nographic -M pc \ -device usb-ehci,id=ehci \ -device usb-storage,bus=ehci.0,drive=disk \ -boot order=d } # # Qemu opts for XHCI # #append qemu_args { \ #-m 128 -nographic -M pc \ #-device nec-usb-xhci,id=xhci \ #-device usb-storage,bus=xhci.0,drive=disk \ #-boot order=d } run_genode_until {.*child "test-usb" exited with exit value 0.*} 100 puts "\nTest succeeded\n" # vi: set ft=tcl :