usb_drv: Use GPIO driver on PandaBoard

Also updated run scripts.

Issue #708
This commit is contained in:
Sebastian Sumpf 2013-11-13 14:10:49 +01:00 committed by Norman Feske
parent 014b7d665c
commit 54667241f7
23 changed files with 198 additions and 105 deletions

View File

@ -11,6 +11,7 @@ build {
drivers/framebuffer
drivers/sd_card
drivers/usb
drivers/gpio
server/nic_bridge
server/part_blk
l4linux
@ -51,6 +52,11 @@ set config {
<resource name="RAM" quantum="4M"/>
<provides><service name="Block"/></provides>
</start>
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
<provides>
@ -106,6 +112,7 @@ set boot_modules {
initrd.gz
fb_drv
sd_card_drv
gpio_drv
usb_drv
}

View File

@ -13,6 +13,7 @@ lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -47,6 +48,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [have_spec acpi] config {
<start name="acpi">
<resource name="RAM" quantum="8M"/>
@ -99,6 +107,7 @@ lappend_if [have_spec acpi] boot_modules acpi_drv
lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec nova] boot_modules pci_device_pd
lappend_if [have_spec platform_arndale] boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -20,6 +20,8 @@ build {
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
create_boot_directory
@ -82,6 +84,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [expr ![have_spec acpi] && [have_spec pci]] config {
<start name="pci_drv">
<resource name="RAM" quantum="3M"/>
@ -109,6 +118,7 @@ lappend_if [have_spec acpi] boot_modules acpi_drv
lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec nova] boot_modules pci_device_pd
lappend_if [have_spec platform_arndale] boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -19,6 +19,7 @@ lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -73,6 +74,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
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"/>

View File

@ -14,6 +14,7 @@
#include <platform/platform.h>
#include <platform.h>
#include <gpio_session/connection.h>
#include <io_mem_session/connection.h>
#include <util/mmio.h>
@ -220,96 +221,6 @@ struct Ehci : Genode::Mmio
};
/**
* Panda board GPIO bases 1 - 6
*/
static addr_t omap44xx_gpio_base[] =
{
0x4A310000, 0x48055000, 0x48057000, 0x48059000, 0x4805B000, 0x4805D000
};
/**
* General purpose I/O
*/
struct Gpio
{
enum { GPIO = 6 };
addr_t _io[GPIO];
Io_mem_session_capability _cap[GPIO];
void map()
{
for (int i = 0; i < GPIO; i++) {
Io_mem_connection io(omap44xx_gpio_base[i], 0x1000);
io.on_destruction(Io_mem_connection::KEEP_OPEN);
_io[i] = (addr_t)env()->rm_session()->attach(io.dataspace());
_cap[i] = io.cap();
}
}
Gpio()
{
map();
}
~Gpio()
{
for (int i = 0; i < GPIO; i++) {
env()->rm_session()->detach(_io[i]);
env()->parent()->close(_cap[i]);
}
}
addr_t base(unsigned gpio) { return _io[gpio >> 5]; }
int index(unsigned gpio) { return gpio & 0x1f; }
void _set_data_out(addr_t base, unsigned gpio, bool enable)
{
enum { SETDATAOUT = 0x194, CLEARDATAOUT = 0x190 };
writel(1U << gpio, base + (enable ? SETDATAOUT : CLEARDATAOUT));
}
void _set_gpio_direction(addr_t base, unsigned gpio, bool input)
{
enum { OE = 0x134 };
base += OE;
u32 val = readl(base);
if (input)
val |= 1U << gpio;
else
val &= ~(1U << gpio);
writel(val, base);
}
void direction_output(unsigned gpio, bool enable)
{
_set_data_out(base(gpio), index(gpio), enable);
_set_gpio_direction(base(gpio), index(gpio), false);
}
void direction_input(unsigned gpio)
{
_set_gpio_direction(base(gpio), index(gpio), true);
}
void set_value(unsigned gpio, int val)
{
_set_data_out(base(gpio), index(gpio), val);
}
unsigned get_value(int gpio)
{
enum { DATAIN = 0x138 };
return (readl(base(gpio) + DATAIN) & (1 << index(gpio))) != 0;
}
};
/**
* Initialize the USB controller from scratch, since the boot loader might not
* do it or even disable USB.
@ -327,12 +238,14 @@ static void omap_ehci_init()
Aux3 aux3(scrm_base);
/* init GPIO */
Gpio gpio;
Gpio::Connection gpio_power(HUB_POWER);
Gpio::Connection gpio_reset(HUB_NRESET);
/* disable the hub power and reset before init */
gpio.direction_output(HUB_POWER, false);
gpio.direction_output(HUB_NRESET, false);
gpio.set_value(HUB_POWER, 0);
gpio.set_value(HUB_NRESET, 1);
gpio_power.direction(Gpio::Session::OUT);
gpio_reset.direction(Gpio::Session::OUT);
gpio_power.write(false);
gpio_reset.write(true);
/* enable clocks */
Io_mem_connection io_clock(CAM_BASE, 0x1000);
@ -350,7 +263,7 @@ static void omap_ehci_init()
Uhh uhh(uhh_base);
/* enable hub power */
gpio.set_value(HUB_POWER, 1);
gpio_power.write(true);
/* reset EHCI */
addr_t ehci_base = uhh_base + 0xc00;

View File

@ -9,6 +9,7 @@ build {
core
init
drivers/timer
drivers/gpio
drivers/usb
test/lwip/http_srv_tracing_nonblocking
}
@ -40,6 +41,11 @@ set config {
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>
<start name="usb_drv">
<resource name="RAM" quantum="6M"/>
<provides>
@ -67,6 +73,7 @@ set boot_modules {
init
timer
usb_drv
gpio_drv
test-lwip_httpsrv_tracing_nob
ld.lib.so libc.lib.so libc_log.lib.so lwip.lib.so
}

View File

@ -10,6 +10,7 @@ build {
init
drivers/timer
drivers/usb
drivers/gpio
test/lwip/http_srv_tracing
}
@ -40,6 +41,11 @@ set config {
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
<provides>
@ -67,6 +73,7 @@ set boot_modules {
init
timer
usb_drv
gpio_drv
test-lwip_httpsrv_tracing
ld.lib.so libc.lib.so libc_log.lib.so lwip.lib.so
}

View File

@ -41,6 +41,7 @@ lappend_if $use_usb_driver build_components drivers/usb
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -82,6 +83,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_usb_driver config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -142,6 +150,7 @@ lappend_if $use_usb_driver boot_modules usb_drv
lappend_if $use_nic_driver boot_modules nic_drv
lappend_if [have_spec nova] boot_modules pci_device_pd
lappend_if [have_spec platform_arndale] boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -23,6 +23,7 @@ lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec linux] build_components server/ram_fs
lappend_if [expr ![have_spec linux]] build_components server/ffat_fs
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
create_boot_directory
@ -70,6 +71,13 @@ append_if [have_spec pci] config {
<config ata="yes" />
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_sd_card_driver config {
<start name="sd_card_drv">
<resource name="RAM" quantum="1M" />
@ -181,6 +189,7 @@ lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if $use_sd_card_driver boot_modules sd_card_drv
lappend_if $use_usb_driver boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -16,6 +16,7 @@ set build_components {
lappend_if [expr [have_spec omap4] || [have_spec exynos5]] build_components drivers/usb
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -54,6 +55,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [expr [have_spec omap4] || [have_spec exynos5]] config {
<start name="usb_drv" priority="-1">
<resource name="RAM" quantum="12M"/>
@ -129,6 +137,7 @@ lappend_if [have_spec pci] boot_modules pci_dr
lappend_if [expr [have_spec omap4] || [have_spec exynos5]] boot_modules usb_drv
lappend_if [expr ![have_spec omap4] && ![have_spec exynos5]] boot_modules nic_drv
lappend_if [have_spec platform_arndale] boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -16,6 +16,7 @@ set build_components {
lappend_if [expr [have_spec omap4] || [have_spec exynos5]] build_components drivers/usb
lappend_if [have_spec platform_arndale] build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -60,6 +61,13 @@ append_if [have_spec platform_arndale] config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [expr [have_spec omap4] || [have_spec exynos5]] config {
<start name="usb_drv" priority="-1">
<resource name="RAM" quantum="12M"/>
@ -105,6 +113,7 @@ lappend_if [have_spec pci] boot_modules pci_dr
lappend_if [expr [have_spec omap4] || [have_spec exynos5]] boot_modules usb_drv
lappend_if [expr ![have_spec omap4] && ![have_spec exynos5]] boot_modules nic_drv
lappend_if [have_spec platform_arndale] boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -27,6 +27,7 @@ set build_components {
lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec usb] build_components drivers/usb
lappend_if $use_usb_drv build_components drivers/usb
lappend_if $use_nic_drv build_components drivers/nic
lappend_if $use_atapi_drv build_components drivers/atapi
@ -168,6 +169,13 @@ append_if $use_platform_drv config {
</provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_usb_drv config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -240,6 +248,7 @@ set boot_modules {
lappend_if [have_spec acpi] boot_modules acpi_drv
lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if $use_usb_drv boot_modules usb_drv

View File

@ -22,6 +22,7 @@ lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if $use_platform_drv build_components drivers/platform
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
create_boot_directory
@ -100,6 +101,13 @@ append_if $use_platform_drv config {
</provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_usb_driver config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -146,6 +154,7 @@ lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if $use_nic_driver boot_modules nic_drv
lappend_if $use_usb_driver boot_modules usb_drv
lappend_if $use_platform_drv boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
if {[have_spec x86]} {
set uri "http://genode.org/files/release-11.11/l4lx/initrd-ia32.gz"

View File

@ -1,5 +1,4 @@
assert_spec foc
assert_spec arm
assert_spec platform_arndale
#
# Build

View File

@ -11,6 +11,7 @@ build {
drivers/framebuffer
drivers/sd_card
drivers/usb
drivers/gpio
server/nic_bridge
server/part_blk
l4linux
@ -51,6 +52,11 @@ set config {
<resource name="RAM" quantum="4M"/>
<provides><service name="Block"/></provides>
</start>
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>
<start name="usb_drv" priority="-1">
<resource name="RAM" quantum="12M"/>
<provides>
@ -112,6 +118,7 @@ set boot_modules {
initrd.gz
fb_drv
sd_card_drv
gpio_drv
usb_drv
}

View File

@ -15,9 +15,10 @@ set build_components {
l4linux
}
lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec usb] build_components drivers/usb
lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec usb] build_components drivers/usb
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
create_boot_directory
@ -67,6 +68,13 @@ append_if [have_spec ps2] config {
<provides><service name="Input"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [expr ![have_spec ps2] && [have_spec usb]] config {
<start name="input_drv">
<binary name="usb_drv"/>
@ -140,6 +148,7 @@ lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if [have_spec usb] boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
if {[have_spec x86]} {
set uri "http://genode.org/files/l4linux/busybox-initrd-x86-20120618.gz"

View File

@ -9,6 +9,7 @@ build {
init
drivers/timer
drivers/framebuffer
drivers/gpio
drivers/usb
server/nitpicker
server/nit_fb
@ -48,6 +49,11 @@ set config {
<resource name="RAM" quantum="4M"/>
<provides><service name="Framebuffer"/></provides>
</start>
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>
<start name="usb_drv">
<resource name="RAM" quantum="10M"/>
<provides>
@ -149,6 +155,7 @@ set boot_modules {
l4linux
initrd.gz
fb_drv
gpio_drv
usb_drv
terminal
terminal_log
@ -156,7 +163,7 @@ set boot_modules {
nit_fb
}
set uri "https://github.com/downloads/skalk/genode/busybox-initrd-arm-20120710.gz"
set uri "http://genode.org/files/l4linux/busybox-initrd-arm-20120710.gz"
if {![file exists bin/initrd.gz]} {
puts "Download initramfs ..."

View File

@ -22,6 +22,7 @@ lappend_if [have_spec pci] build_components drivers/pci
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec lan9118] build_components drivers/nic
lappend_if [have_spec usb] build_components drivers/usb
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
create_boot_directory
@ -58,6 +59,13 @@ append_if [have_spec pci] config {
<provides><service name="PCI"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [have_spec framebuffer] config {
<start name="fb_drv">
<resource name="RAM" quantum="4M"/>
@ -205,11 +213,12 @@ lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if [have_spec x86] boot_modules nic_drv
lappend_if [have_spec lan9118] boot_modules nic_drv
lappend_if [have_spec usb] boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
if {[have_spec x86]} {
set uri "https://github.com/downloads/skalk/genode/busybox-initrd-x86-20120618.gz"
set uri "http://genode.org/files/l4linux/busybox-initrd-x86-20120618.gz"
} elseif {[have_spec arm]} {
set uri "https://github.com/downloads/skalk/genode/busybox-initrd-arm-20120618.gz"
set uri "http://genode.org/files/l4linux/busybox-initrd-arm-20120618.gz"
}
if {![file exists bin/initrd.gz]} {
puts "Download initramfs ..."

View File

@ -27,6 +27,7 @@ lappend_if $use_usb_driver build_components drivers/usb
lappend_if $use_nic_driver build_components drivers/nic
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
@ -61,6 +62,13 @@ append_if $use_platform_driver config {
<provides><service name="Regulator"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_usb_driver config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -181,6 +189,7 @@ lappend_if [have_spec pci] boot_modules pci_drv
lappend_if $use_usb_driver boot_modules usb_drv
lappend_if $use_nic_driver boot_modules nic_drv
lappend_if [have_spec nova] boot_modules pci_device_pd
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -16,7 +16,8 @@ set build_components {
test/libports/ncurses
}
lappend_if [use_usb_input] build_components drivers/usb
lappend_if [use_usb_input] build_components drivers/usb
lappend_if [have_spec gpio] build_components drivers/gpio
#
# Build Noux packages only once
@ -96,6 +97,13 @@ append_if [have_spec ps2] config {
<provides><service name="Input"/></provides>
</start> }
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [use_usb_input] config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -183,6 +191,7 @@ lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if [use_usb_input] boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -26,6 +26,9 @@ set build_components {
app/gdb_monitor
test/gdb_monitor
}
lappend_if [have_spec gpio] build_components drivers/gpio
lappend build_components noux-pkg/[noux_gdb_pkg_name]
# the application to be debugged with GDB
@ -98,6 +101,13 @@ append_if [have_spec ps2] config {
<provides><service name="Input"/></provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if [expr ![have_spec ps2] && [have_spec usb]] config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -204,6 +214,7 @@ lappend_if [have_spec pci] boot_modules pci_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec usb] boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -18,6 +18,7 @@ lappend_if $use_usb_driver build_components drivers/usb
lappend_if $use_nic_driver build_components drivers/nic
lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec pci] build_components drivers/pci/device_pd
lappend_if [have_spec gpio] build_components drivers/gpio
lappend_if [is_qemu_available] build_components drivers/uart
lappend_if $use_platform_drv build_components drivers/platform
@ -114,6 +115,13 @@ append_if $use_platform_drv config {
</provides>
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_usb_driver config {
<start name="usb_drv">
<resource name="RAM" quantum="12M"/>
@ -190,6 +198,7 @@ lappend_if [have_spec acpi] boot_modules acpi_drv
lappend_if [have_spec nova] boot_modules pci_device_pd
lappend_if [is_qemu_available] boot_modules uart_drv
lappend_if $use_platform_drv boot_modules platform_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules

View File

@ -22,6 +22,7 @@ lappend_if [have_spec acpi] build_components drivers/acpi
lappend_if [have_spec ps2] build_components drivers/input/ps2
lappend_if [have_spec linux] build_components server/ram_fs
lappend_if [expr ![have_spec linux]] build_components server/ffat_fs
lappend_if [have_spec gpio] build_components drivers/gpio
build $build_components
create_boot_directory
@ -69,6 +70,13 @@ append_if [have_spec pci] config {
<config ata="yes" />
</start>}
append_if [have_spec gpio] config {
<start name="gpio_drv">
<resource name="RAM" quantum="4M"/>
<provides><service name="Gpio"/></provides>
<config/>
</start>}
append_if $use_sd_card_driver config {
<start name="sd_card_drv">
<resource name="RAM" quantum="1M" />
@ -174,6 +182,7 @@ lappend_if [have_spec ps2] boot_modules ps2_drv
lappend_if [have_spec framebuffer] boot_modules fb_drv
lappend_if $use_sd_card_driver boot_modules sd_card_drv
lappend_if $use_usb_driver boot_modules usb_drv
lappend_if [have_spec gpio] boot_modules gpio_drv
build_boot_image $boot_modules