proc have_platform_drv {} { if {[have_spec linux]} { return 0 } return [expr [have_spec imx53] \ || [have_spec rpi] \ || [have_spec x86]] } ## # Return 1 if the scenario depends on the USB driver on the used platform # # On most ARM platform, user input is provided by an USB HID device. On other # platforms, the USB driver may be omitted. # proc need_usb_hid { } { # covered by fb_sdl if {[have_spec linux]} { return 0 } # covered by ps2_drv if {[have_spec x86]} { return 0 } if {[have_spec pbxa9]} { return 0 } return [have_spec usb] } ## # Return name of the USB driver binary # proc usb_host_drv_binary { } { if {[have_spec rpi]} { return rpi_usb_host_drv } if {[have_spec imx6q_sabrelite]} { return imx6q_sabrelite_usb_host_drv } if {[have_spec imx8q_evk]} { return imx8q_evk_usb_host_drv } if {[have_spec x86]} { return x86_pc_usb_host_drv } return no_usb_drv_available } ## # Return name of the audio driver binary # proc audio_drv_binary { } { if {[have_spec linux]} { return linux_audio_drv } if {[have_spec x86]} { return audio_drv } return no_audio_drv_available } ## # Return attributes of the audio driver's node # proc audio_drv_start_attr { } { if {[have_spec linux]} { return {ld="no"} } return "" } proc acpi_drv_name { } { global use_acpica_as_acpi_drv if {[info exists use_acpica_as_acpi_drv] && $use_acpica_as_acpi_drv} { return acpica } 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 lappend_if [have_spec x86] drv_build_components server/report_rom if {[have_spec x86]} { if {[acpi_drv_name] eq "acpi_drv"} { lappend drv_build_components drivers/acpi } if {[acpi_drv_name] eq "acpica"} { lappend drv_build_components app/acpica } } return $drv_build_components } proc append_platform_drv_build_components {} { global build_components append build_components { } [platform_drv_build_components] } proc platform_drv_binary {} { if {[have_spec imx53] } { return imx53_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_binary] lappend_if [have_spec x86] drv_boot_modules report_rom if {[have_spec x86]} { if {[have_spec muen]} { lappend drv_boot_modules acpi } else { lappend drv_boot_modules [acpi_drv_name] } } return $drv_boot_modules } proc append_platform_drv_boot_modules {} { global boot_modules append boot_modules { } [platform_drv_boot_modules] } proc platform_drv_policy {} { if (![have_spec x86]) { return {} } set drv_policy "" if {[acpi_drv_name] eq "acpica"} { append drv_policy { } } append drv_policy { } return $drv_policy } proc platform_drv_priority {} { return "" } proc platform_drv_add_routing {} { if {[acpi_drv_name] eq "acpica"} { return { } } return "" } proc platform_drv_config_config {} { if {[acpi_drv_name] eq "acpica"} { return { } } return {} } proc platform_drv_config {} { set drv_config "" if {[have_spec x86] && ![have_spec muen] && ![have_spec linux]} { append drv_config { } if {[acpi_drv_name] eq "acpica"} { append drv_config { } } else { append drv_config { } } append drv_config { } append_if [expr {[acpi_drv_name] eq "acpica"}] drv_config { } append drv_config { } append drv_config " " append drv_config { } append_if [expr {[acpi_drv_name] eq "acpica"}] drv_config { } append drv_config { } } if {[have_platform_drv]} { append drv_config { } append_if [have_spec x86] drv_config { } append_if [have_spec arm] drv_config { } append drv_config { } append drv_config "[platform_drv_add_routing]" append_if [expr [have_spec x86] && ![have_spec muen]] drv_config { } append_if [have_spec rpi] drv_config { } append drv_config { } append drv_config [platform_drv_config_config] append drv_config [platform_drv_policy] append drv_config { } } return $drv_config } proc append_platform_drv_config {} { global config append config [platform_drv_config] return $config }