diff --git a/repos/base/run/platform_drv.inc b/repos/base/run/platform_drv.inc index d7de2f343a..7b88fdc3d3 100644 --- a/repos/base/run/platform_drv.inc +++ b/repos/base/run/platform_drv.inc @@ -65,16 +65,6 @@ proc acpi_drv_name { } { return acpi_drv } -## -# Return name of the gpio driver -# -proc gpio_drv { } { - if {[have_spec rpi]} { return rpi_gpio_drv } - if {[have_spec imx53]} { return imx53_gpio_drv } - if {[have_spec imx6]} { return imx6_gpio_drv } - return no_gpio_drv_available -} - proc platform_drv_build_components {} { set drv_build_components "" lappend_if [have_platform_drv] drv_build_components drivers/platform diff --git a/repos/dde_linux/run/usb_hid.run b/repos/dde_linux/run/usb_hid.run index e149b7ee82..b4c28420b1 100644 --- a/repos/dde_linux/run/usb_hid.run +++ b/repos/dde_linux/run/usb_hid.run @@ -72,8 +72,6 @@ set build_components { server/dynamic_rom } -lappend_if [have_spec gpio] build_components drivers/gpio - source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components @@ -190,7 +188,6 @@ set boot_modules { } append boot_modules [usb_drv_binary] -lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules diff --git a/repos/dde_linux/run/usb_hid_raw.run b/repos/dde_linux/run/usb_hid_raw.run index b90f9a4b2d..1251f756c2 100644 --- a/repos/dde_linux/run/usb_hid_raw.run +++ b/repos/dde_linux/run/usb_hid_raw.run @@ -142,8 +142,6 @@ set build_components { server/report_rom } -lappend_if [have_spec gpio] build_components drivers/gpio - source ${genode_dir}/repos/base/run/platform_drv.inc if { [have_spec x86] } { append_platform_drv_build_components } else { append build_components { drivers/platform } @@ -174,14 +172,6 @@ append config { <default caps="100"/> } -append_if [have_spec gpio] config " - <start name=\"[gpio_drv]\" caps=\"150\"> - <resource name=\"RAM\" quantum=\"4M\"/> - <provides><service name=\"Gpio\"/></provides> - <config/> - </start> -" - if { [have_spec x86] } { append_platform_drv_config } else { append config "<start name=\"[platform_drv_binary_non_x86]\">" @@ -291,7 +281,6 @@ set boot_modules { } append boot_modules " [usb_host_drv_binary] " -lappend_if [have_spec gpio] boot_modules [gpio_drv] if {[have_spec x86]} { append_platform_drv_boot_modules } else { append boot_modules " [platform_drv_binary_non_x86] " } diff --git a/repos/dde_linux/run/usb_net.run b/repos/dde_linux/run/usb_net.run index c40cdbb223..e0394e1733 100644 --- a/repos/dde_linux/run/usb_net.run +++ b/repos/dde_linux/run/usb_net.run @@ -19,8 +19,6 @@ set build_components { lib/vfs/lwip } -lappend_if [have_spec gpio] build_components drivers/gpio - source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components @@ -49,13 +47,6 @@ append config { </default-route> <default caps="200"/>} -append_if [have_spec gpio] config " - <start name=\"[gpio_drv]\"> - <resource name=\"RAM\" quantum=\"4M\"/> - <provides><service name=\"Gpio\"/></provides> - <config/> - </start>" - append_platform_drv_config append config { @@ -116,7 +107,6 @@ set boot_modules { } append boot_modules [usb_host_drv_binary] -lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules diff --git a/repos/dde_linux/run/usb_terminal.run b/repos/dde_linux/run/usb_terminal.run index 8e6537b26e..1917d98b13 100644 --- a/repos/dde_linux/run/usb_terminal.run +++ b/repos/dde_linux/run/usb_terminal.run @@ -87,8 +87,6 @@ set boot_modules { usb_terminal } -lappend_if [have_spec gpio] boot_modules [gpio_drv] - append_platform_drv_boot_modules build_boot_image $boot_modules diff --git a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config index e888030a52..168f409f7c 100644 --- a/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config +++ b/repos/os/recipes/raw/drivers_interactive-imx53_qsb/drivers.config @@ -35,25 +35,6 @@ </route> </start> - <start name="imx53_gpio_drv" caps="200"> - <resource name="RAM" quantum="4M"/> - <provides><service name="Gpio"/></provides> - <config> - <gpio num="1" mode="O" value="1"/> - <gpio num="88" mode="O" value="1"/> - </config> - <route> - <service name="Platform"> <child name="platform_drv"/> </service> - <service name="IO_MEM"> <parent/> </service> - <service name="ROM"> <parent/> </service> - <service name="PD"> <parent/> </service> - <service name="CPU"> <parent/> </service> - <service name="LOG"> <parent/> </service> - <service name="IRQ"> <parent/> </service> - <service name="Timer"> <parent/> </service> - </route> - </start> - <start name="fb_drv" caps="120"> <binary name="imx53_fb_drv"/> <resource name="RAM" quantum="4M"/> diff --git a/repos/os/run/gpio_led.run b/repos/os/run/gpio_led.run index 05a771a786..bf6dd5385d 100644 --- a/repos/os/run/gpio_led.run +++ b/repos/os/run/gpio_led.run @@ -1,7 +1,7 @@ # # Build # -if {[have_spec gpio] == 0} { +if {[have_spec rpi] == 0} { puts "Runs only on platforms with GPIO" exit 0 } @@ -41,10 +41,8 @@ append config { <provides><service name="Timer"/></provides> </start>} -append config " - <start name=\"[gpio_drv]\">" - append config { + <start name="rpi_gpio_drv"> <resource name="RAM" quantum="1M"/> <provides><service name="Gpio"/></provides> <config> @@ -68,10 +66,9 @@ set boot_modules { core ld.lib.so init timer led_gpio_drv + rpi_gpio_drv } -append boot_modules [gpio_drv] - build_boot_image $boot_modules run_genode_until forever diff --git a/repos/os/run/gpio_signal.run b/repos/os/run/gpio_signal.run index d13b13b0bb..1b142fa78c 100644 --- a/repos/os/run/gpio_signal.run +++ b/repos/os/run/gpio_signal.run @@ -1,7 +1,7 @@ # # Build # -if {[have_spec gpio] == 0} { +if {[have_spec rpi] == 0} { puts "Runs only on platforms with GPIO" exit 0 } @@ -41,10 +41,9 @@ append config { <provides><service name="Timer"/></provides> </start>} -append config " - <start name=\"[gpio_drv]\">" append config { + <start name="rpi_gpio_drv"/> <resource name="RAM" quantum="1M"/> <provides><service name="Gpio"/></provides> <config async_events="0"> @@ -73,7 +72,7 @@ set boot_modules { signal_gpio_drv } -append boot_modules [gpio_drv] +append boot_modules rpi_gpio_drv build_boot_image $boot_modules diff --git a/repos/os/run/tz_vmm.run b/repos/os/run/tz_vmm.run index d31f176cf8..f16bea3513 100644 --- a/repos/os/run/tz_vmm.run +++ b/repos/os/run/tz_vmm.run @@ -143,10 +143,29 @@ set config { <default caps="100"/>} append_if $trusted_led config { - <start name="imx53_gpio_drv"> + <start name="platform_drv" caps="150"> + <resource name="RAM" quantum="1M"/> + <provides> <service name="Platform"/> </provides> + <config> + <device name="gpio"> + <io_mem address="0x53f90000" size="0x4000"/> + <irq number="56"/> + <irq number="57"/> + </device> + <policy label="imx_gpio_drv -> "> + <device name="gpio"/> + </policy> + </config> + </start> + + <start name="imx_gpio_drv"> <resource name="RAM" quantum="3M"/> <provides><service name="Gpio"/></provides> <config/> + <route> + <service name="Platform"><child name="platform_drv" /></service> + <any-service><parent/><any-child/></any-service> + </route> </start>} append_if $mmc_rootfs config { @@ -164,6 +183,11 @@ append_if $mmc_rootfs config { <start name="imx53_sd_card_drv"> <resource name="RAM" quantum="3M"/> <provides><service name="Block"/></provides> + <route> + <service name="Platform"> <child name="imx53_platform_drv"/> </service> + <service name="Regulator"> <child name="imx53_platform_drv"/> </service> + <any-service><parent/><any-child/></any-service> + </route> </start> <start name="part_block"> <resource name="RAM" quantum="10M" /> @@ -266,7 +290,8 @@ if { $mmc_rootfs } { } cd .. -lappend_if $trusted_led boot_modules imx53_gpio_drv +lappend_if $trusted_led boot_modules imx_gpio_drv +lappend_if $trusted_led boot_modules platform_drv build_boot_image [join $boot_modules " "] diff --git a/repos/os/run/usb_block.run b/repos/os/run/usb_block.run index 350408f08d..3121bc95d1 100644 --- a/repos/os/run/usb_block.run +++ b/repos/os/run/usb_block.run @@ -13,8 +13,6 @@ set build_components { test/block/bench } -lappend_if [have_spec gpio] build_components drivers/gpio - source ${genode_dir}/repos/base/run/platform_drv.inc append_platform_drv_build_components @@ -46,13 +44,6 @@ set config { append_platform_drv_config -append_if [have_spec gpio] config " - <start name=\"[gpio_drv]\"> - <resource name=\"RAM\" quantum=\"4M\"/> - <provides><service name=\"Gpio\"/></provides> - <config/> - </start>" - append config { <start name="timer"> <resource name="RAM" quantum="1M"/> @@ -138,7 +129,6 @@ set boot_modules { } append boot_modules [usb_host_drv_binary] -lappend_if [have_spec gpio] boot_modules [gpio_drv] append_platform_drv_boot_modules diff --git a/repos/os/src/drivers/gpio/imx53/board.h b/repos/os/src/drivers/gpio/imx53/board.h deleted file mode 100644 index b78ce03af4..0000000000 --- a/repos/os/src/drivers/gpio/imx53/board.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * \brief Gpio driver for the i.MX53 - * \author Stefan Kalkowski <stefan.kalkowski@genode-labs.com> - * \date 2018-02-22 - */ - -/* - * Copyright (C) 2018 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _DRIVERS__GPIO__SPEC__IMX53__BOARD_H_ -#define _DRIVERS__GPIO__SPEC__IMX53__BOARD_H_ - -/* Genode includes */ -#include <drivers/defs/imx53.h> - -namespace Board { using namespace Imx53; } - -#endif /* _DRIVERS__GPIO__SPEC__IMX53__BOARD_H_ */ diff --git a/repos/os/src/drivers/gpio/imx53/target.mk b/repos/os/src/drivers/gpio/imx53/target.mk deleted file mode 100644 index 7a1472d274..0000000000 --- a/repos/os/src/drivers/gpio/imx53/target.mk +++ /dev/null @@ -1,7 +0,0 @@ -TARGET = imx53_gpio_drv -REQUIRES = arm_v7 -SRC_CC = main.cc -LIBS = base -INC_DIR += $(PRG_DIR) $(REP_DIR)/src/drivers/gpio/imx - -vpath main.cc $(REP_DIR)/src/drivers/gpio/imx diff --git a/repos/os/src/drivers/gpio/imx6/board.h b/repos/os/src/drivers/gpio/imx6/board.h deleted file mode 100644 index 77c99331b0..0000000000 --- a/repos/os/src/drivers/gpio/imx6/board.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * \brief Gpio driver for the i.MX6 SoCs - * \author Stefan Kalkowski <stefan.kalkowski@genode-labs.com> - * \date 2018-02-22 - */ - -/* - * Copyright (C) 2018 Genode Labs GmbH - * - * This file is part of the Genode OS framework, which is distributed - * under the terms of the GNU Affero General Public License version 3. - */ - -#ifndef _DRIVERS__GPIO__SPEC__IMX6__BOARD_H_ -#define _DRIVERS__GPIO__SPEC__IMX6__BOARD_H_ - -/* Genode includes */ -#include <drivers/defs/imx6.h> - -namespace Board { using namespace Imx6; } - -#endif /* _DRIVERS__GPIO__SPEC__IMX6__BOARD_H_ */ diff --git a/repos/os/src/drivers/gpio/imx6/target.mk b/repos/os/src/drivers/gpio/imx6/target.mk deleted file mode 100644 index 9309358456..0000000000 --- a/repos/os/src/drivers/gpio/imx6/target.mk +++ /dev/null @@ -1,7 +0,0 @@ -TARGET = imx6_gpio_drv -REQUIRES = arm_v7 -SRC_CC = main.cc -LIBS = base -INC_DIR += $(PRG_DIR) $(REP_DIR)/src/drivers/gpio/imx - -vpath main.cc $(REP_DIR)/src/drivers/gpio/imx diff --git a/repos/os/src/server/tz_vmm/spec/usb_armory/vm.h b/repos/os/src/server/tz_vmm/spec/usb_armory/vm.h index 7795272d1b..c8323f24b3 100644 --- a/repos/os/src/server/tz_vmm/spec/usb_armory/vm.h +++ b/repos/os/src/server/tz_vmm/spec/usb_armory/vm.h @@ -30,7 +30,7 @@ class Genode::Vm : public Vm_base enum { DTB_OFFSET = 0x1000000 }; - Gpio::Connection _led { _env, 123 }; + Gpio::Connection _led { _env, 28 }; /*************