wire in the dwc-hsotg (dwc2) USB host controller emulation
Wire the dwc-hsotg (dwc2) emulation into Qemu Signed-off-by: Paul Zimmerman <pauldzim@gmail.com> Reviewed-by: Philippe Mathieu-Daude <f4bug@amsat.org> Message-id: 20200520235349.21215-7-pauldzim@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
7ad3d51ebb
commit
60bf734e64
|
@ -129,6 +129,13 @@ static void bcm2835_peripherals_init(Object *obj)
|
||||||
/* Mphi */
|
/* Mphi */
|
||||||
sysbus_init_child_obj(obj, "mphi", &s->mphi, sizeof(s->mphi),
|
sysbus_init_child_obj(obj, "mphi", &s->mphi, sizeof(s->mphi),
|
||||||
TYPE_BCM2835_MPHI);
|
TYPE_BCM2835_MPHI);
|
||||||
|
|
||||||
|
/* DWC2 */
|
||||||
|
sysbus_init_child_obj(obj, "dwc2", &s->dwc2, sizeof(s->dwc2),
|
||||||
|
TYPE_DWC2_USB);
|
||||||
|
|
||||||
|
object_property_add_const_link(OBJECT(&s->dwc2), "dma-mr",
|
||||||
|
OBJECT(&s->gpu_bus_mr));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
|
static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
|
||||||
|
@ -377,6 +384,19 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
|
||||||
qdev_get_gpio_in_named(DEVICE(&s->ic), BCM2835_IC_GPU_IRQ,
|
qdev_get_gpio_in_named(DEVICE(&s->ic), BCM2835_IC_GPU_IRQ,
|
||||||
INTERRUPT_HOSTPORT));
|
INTERRUPT_HOSTPORT));
|
||||||
|
|
||||||
|
/* DWC2 */
|
||||||
|
object_property_set_bool(OBJECT(&s->dwc2), true, "realized", &err);
|
||||||
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memory_region_add_subregion(&s->peri_mr, USB_OTG_OFFSET,
|
||||||
|
sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->dwc2), 0));
|
||||||
|
sysbus_connect_irq(SYS_BUS_DEVICE(&s->dwc2), 0,
|
||||||
|
qdev_get_gpio_in_named(DEVICE(&s->ic), BCM2835_IC_GPU_IRQ,
|
||||||
|
INTERRUPT_USB));
|
||||||
|
|
||||||
create_unimp(s, &s->armtmr, "bcm2835-sp804", ARMCTRL_TIMER0_1_OFFSET, 0x40);
|
create_unimp(s, &s->armtmr, "bcm2835-sp804", ARMCTRL_TIMER0_1_OFFSET, 0x40);
|
||||||
create_unimp(s, &s->cprman, "bcm2835-cprman", CPRMAN_OFFSET, 0x1000);
|
create_unimp(s, &s->cprman, "bcm2835-cprman", CPRMAN_OFFSET, 0x1000);
|
||||||
create_unimp(s, &s->a2w, "bcm2835-a2w", A2W_OFFSET, 0x1000);
|
create_unimp(s, &s->a2w, "bcm2835-a2w", A2W_OFFSET, 0x1000);
|
||||||
|
@ -390,7 +410,6 @@ static void bcm2835_peripherals_realize(DeviceState *dev, Error **errp)
|
||||||
create_unimp(s, &s->otp, "bcm2835-otp", OTP_OFFSET, 0x80);
|
create_unimp(s, &s->otp, "bcm2835-otp", OTP_OFFSET, 0x80);
|
||||||
create_unimp(s, &s->dbus, "bcm2835-dbus", DBUS_OFFSET, 0x8000);
|
create_unimp(s, &s->dbus, "bcm2835-dbus", DBUS_OFFSET, 0x8000);
|
||||||
create_unimp(s, &s->ave0, "bcm2835-ave0", AVE0_OFFSET, 0x8000);
|
create_unimp(s, &s->ave0, "bcm2835-ave0", AVE0_OFFSET, 0x8000);
|
||||||
create_unimp(s, &s->dwc2, "dwc-usb2", USB_OTG_OFFSET, 0x1000);
|
|
||||||
create_unimp(s, &s->sdramc, "bcm2835-sdramc", SDRAMC_OFFSET, 0x100);
|
create_unimp(s, &s->sdramc, "bcm2835-sdramc", SDRAMC_OFFSET, 0x100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "hw/sd/bcm2835_sdhost.h"
|
#include "hw/sd/bcm2835_sdhost.h"
|
||||||
#include "hw/gpio/bcm2835_gpio.h"
|
#include "hw/gpio/bcm2835_gpio.h"
|
||||||
#include "hw/timer/bcm2835_systmr.h"
|
#include "hw/timer/bcm2835_systmr.h"
|
||||||
|
#include "hw/usb/hcd-dwc2.h"
|
||||||
#include "hw/misc/unimp.h"
|
#include "hw/misc/unimp.h"
|
||||||
|
|
||||||
#define TYPE_BCM2835_PERIPHERALS "bcm2835-peripherals"
|
#define TYPE_BCM2835_PERIPHERALS "bcm2835-peripherals"
|
||||||
|
@ -67,7 +68,7 @@ typedef struct BCM2835PeripheralState {
|
||||||
UnimplementedDeviceState ave0;
|
UnimplementedDeviceState ave0;
|
||||||
UnimplementedDeviceState bscsl;
|
UnimplementedDeviceState bscsl;
|
||||||
UnimplementedDeviceState smi;
|
UnimplementedDeviceState smi;
|
||||||
UnimplementedDeviceState dwc2;
|
DWC2State dwc2;
|
||||||
UnimplementedDeviceState sdramc;
|
UnimplementedDeviceState sdramc;
|
||||||
} BCM2835PeripheralState;
|
} BCM2835PeripheralState;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue