diff --git a/repos/base/run/platform_drv.inc b/repos/base/run/platform_drv.inc index 294a931af..506fd3e9b 100644 --- a/repos/base/run/platform_drv.inc +++ b/repos/base/run/platform_drv.inc @@ -108,9 +108,18 @@ proc append_platform_drv_build_components {} { append build_components { } [platform_drv_build_components] } +proc platform_drv_binary {} { + if {[have_spec arndale] } { return arndale_platform_drv } + if {[have_spec imx53] } { return imx53_platform_drv } + if {[have_spec odroid_x2]} { return odroid_x2_platform_drv } + if {[have_spec rpi] } { return rpi_platform_drv } + if {[have_spec x86] } { return platform_drv } + return no_platform_drv_available +} + proc platform_drv_boot_modules {} { set drv_boot_modules "" - lappend_if [have_platform_drv] drv_boot_modules platform_drv + lappend_if [have_platform_drv] drv_boot_modules [platform_drv_binary] lappend_if [have_spec x86] drv_boot_modules report_rom if {[have_spec x86]} { @@ -262,6 +271,7 @@ proc platform_drv_config {} { append drv_config { + } diff --git a/repos/os/include/spec/rpi/platform_session/platform_session.h b/repos/os/include/spec/rpi/platform_session/platform_session.h index 17cc82554..a43b6ed40 100644 --- a/repos/os/include/spec/rpi/platform_session/platform_session.h +++ b/repos/os/include/spec/rpi/platform_session/platform_session.h @@ -17,7 +17,7 @@ #include #include #include -#include +#include namespace Platform { using namespace Genode; diff --git a/repos/os/recipes/src/platform_drv/used_apis b/repos/os/recipes/src/platform_drv/used_apis index dbf0f2d7f..15aeda118 100644 --- a/repos/os/recipes/src/platform_drv/used_apis +++ b/repos/os/recipes/src/platform_drv/used_apis @@ -1,4 +1,5 @@ base os platform_session +regulator_session report_session diff --git a/repos/os/run/sd_card.run b/repos/os/run/sd_card.run index c1ade23d2..fe3e18126 100644 --- a/repos/os/run/sd_card.run +++ b/repos/os/run/sd_card.run @@ -9,8 +9,9 @@ set build_components { drivers/sd_card test/block/client } -lappend_if [have_spec arndale] build_components drivers/platform -lappend_if [have_spec rpi] build_components drivers/platform + +source ${genode_dir}/repos/base/run/platform_drv.inc +append_platform_drv_build_components build $build_components create_boot_directory @@ -36,12 +37,7 @@ set config { } -append_if [expr [have_spec arndale] || [have_spec rpi]] config { - - - - - } +append_platform_drv_config append config { @@ -70,9 +66,8 @@ set boot_modules { sd_card_drv test-block-client } -lappend_if [have_spec arndale] boot_modules platform_drv -lappend_if [have_spec rpi] boot_modules platform_drv +append_platform_drv_boot_modules set disk_image "bin/sd_card.img" build_boot_image $boot_modules diff --git a/repos/os/run/tz_vmm.run b/repos/os/run/tz_vmm.run index 4708fbec2..27ec8faf1 100644 --- a/repos/os/run/tz_vmm.run +++ b/repos/os/run/tz_vmm.run @@ -148,7 +148,7 @@ append_if $mmc_rootfs config { - + @@ -228,7 +228,7 @@ if { $mmc_rootfs } { # add components that enable MMC access via parvirtualized block lappend boot_modules timer - lappend boot_modules platform_drv + lappend boot_modules imx53_platform_drv lappend boot_modules sd_card_drv lappend boot_modules part_block diff --git a/repos/os/src/drivers/platform/spec/arndale/target.mk b/repos/os/src/drivers/platform/spec/arndale/target.mk index 3e2c5c7be..5155f77f6 100644 --- a/repos/os/src/drivers/platform/spec/arndale/target.mk +++ b/repos/os/src/drivers/platform/spec/arndale/target.mk @@ -1,5 +1,5 @@ -TARGET = platform_drv -REQUIRES = arndale +TARGET = arndale_platform_drv +REQUIRES = arm_v7 SRC_CC = main.cc -INC_DIR += ${PRG_DIR} +INC_DIR += ${PRG_DIR} $(call select_from_repositories,include/spec/exynos5) LIBS = base diff --git a/repos/os/src/drivers/platform/spec/imx53/target.mk b/repos/os/src/drivers/platform/spec/imx53/target.mk index d0993e6d5..fd54ac0a1 100644 --- a/repos/os/src/drivers/platform/spec/imx53/target.mk +++ b/repos/os/src/drivers/platform/spec/imx53/target.mk @@ -1,5 +1,5 @@ -TARGET = platform_drv -REQUIRES = imx53 +TARGET = imx53_platform_drv +REQUIRES = arm_v7 SRC_CC = main.cc -INC_DIR += ${PRG_DIR} +INC_DIR += ${PRG_DIR} $(call select_from_repositories,include/spec/imx53) LIBS = base diff --git a/repos/os/src/drivers/platform/spec/odroid_x2/target.mk b/repos/os/src/drivers/platform/spec/odroid_x2/target.mk index 291a23372..608d183d0 100644 --- a/repos/os/src/drivers/platform/spec/odroid_x2/target.mk +++ b/repos/os/src/drivers/platform/spec/odroid_x2/target.mk @@ -1,5 +1,5 @@ -TARGET = platform_drv -REQUIRES = odroid_x2 +TARGET = odroid_x2_platform_drv +REQUIRES = arm_v7 SRC_CC = main.cc -INC_DIR += ${PRG_DIR} +INC_DIR += ${PRG_DIR} $(call select_from_repositories,include/spec/exynos4) LIBS = base diff --git a/repos/os/src/drivers/platform/spec/rpi/target.mk b/repos/os/src/drivers/platform/spec/rpi/target.mk index 07c9dbac9..ca43ac0c7 100644 --- a/repos/os/src/drivers/platform/spec/rpi/target.mk +++ b/repos/os/src/drivers/platform/spec/rpi/target.mk @@ -1,7 +1,7 @@ -TARGET = platform_drv -REQUIRES = rpi +TARGET = rpi_platform_drv +REQUIRES = arm_v6 SRC_CC = main.cc -INC_DIR += ${PRG_DIR} +INC_DIR += ${PRG_DIR} $(call select_from_repositories,include/spec/rpi) LIBS = base # enable C++11 support