@@ -1152,6 +1152,26 @@ static int usb_uhci_piix4_initfn(PCIDevice *dev)
return usb_uhci_common_initfn(s);
}
+static int usb_uhci_vt82c686b_initfn(PCIDevice *dev)
+{
+ UHCIState *s = DO_UPCAST(UHCIState, dev, dev);
+ uint8_t *pci_conf = s->dev.config;
+
+ pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_VIA);
+ pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_VIA_UHCI);
+
+ pci_set_long(pci_conf + 0x0c,0x00001600);
+ pci_set_long(pci_conf + 0x20,0x00000301);
+ pci_set_long(pci_conf + 0x34,0x00001080);
+ pci_set_long(pci_conf + 0x3c,0x00000004);
+ pci_set_long(pci_conf + 0x40,0x00001000);
+ pci_set_long(pci_conf + 0x60,0x00000010);
+ pci_set_long(pci_conf + 0x80,0x00020001);
+ pci_set_long(pci_conf + 0xc0,0x00002000);
+
+ return usb_uhci_common_initfn(s);
+}
+
static PCIDeviceInfo uhci_info[] = {
{
.qdev.name = "piix3-usb-uhci",
@@ -1164,6 +1184,11 @@ static PCIDeviceInfo uhci_info[] = {
.qdev.vmsd = &vmstate_uhci,
.init = usb_uhci_piix4_initfn,
},{
+ .qdev.name = "vt82c686b-usb-uhci",
+ .qdev.size = sizeof(UHCIState),
+ .qdev.vmsd = &vmstate_uhci,
+ .init = usb_uhci_vt82c686b_initfn,
+ },{
/* end of list */
}
};
@@ -1183,3 +1208,8 @@ void usb_uhci_piix4_init(PCIBus *bus, int devfn)
{
pci_create_simple(bus, devfn, "piix4-usb-uhci");
}
+
+void usb_uhci_vt82c686b_init(PCIBus *bus, int devfn)
+{
+ pci_create_simple(bus, devfn, "vt82c686b-usb-uhci");
+}
@@ -5,5 +5,6 @@
void usb_uhci_piix3_init(PCIBus *bus, int devfn);
void usb_uhci_piix4_init(PCIBus *bus, int devfn);
+void usb_uhci_vt82c686b_init(PCIBus *bus, int devfn);
#endif
This patch add Initial support of VIA USB controller used by fulong mini pc Signed-off-by: Huacai Chen <zltjiangshi@gmail.com> ----- -----