Vladimir 'φ-coder/phcoder' Serbinenko wrote: > On 18.07.2012 17:32, Aleš Nesrsta wrote: > > > Hi Frank, > > > > You are probably right - it might be the problem with PCI bus master > > settings! The same problem was solved in UHCI driver for coreboot by > > Rock some time ago. > > > > Try this patch, please: > > > > Feel free to commit this patch (especially given the confirmation that > it works). My response time nowadays is long, feel free to commit USB > patches as you see fit.
Hi Vladimir, I commited two simple USB patches as trunk revision 4559 (see below). The first one is the same patch of EHCI which was tested by Frank (and also by me - in little bit another version of VMware). The second one is in fact the same correction but in OHCI driver - I expect there the same problem even nobody reported it yet (probably OHCI is not so wide used as UHCI/EHCI and nobody tried OHCI with coreboot yet...). BR, Ales Commited patches: diff -purB ./grub/grub-core/bus/usb/ehci.c ./grub_patched/grub-core/bus/usb/ehci.c --- ./grub/grub-core/bus/usb/ehci.c 2012-07-19 23:05:24.993766000 +0200 +++ ./grub_patched/grub-core/bus/usb/ehci.c 2012-07-19 22:22:48.245011460 +0200 @@ -533,6 +533,11 @@ grub_ehci_pci_iter (grub_pci_device_t de "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n"); return 0; } + + /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ + addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); + grub_pci_write_word(addr, + GRUB_PCI_COMMAND_BUS_MASTER | grub_pci_read_word(addr)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK \n"); } diff -purB ./grub/grub-core/bus/usb/ohci.c ./grub_patched/grub-core/bus/usb/ohci.c --- ./grub/grub-core/bus/usb/ohci.c 2012-07-19 23:05:24.993766000 +0200 +++ ./grub_patched/grub-core/bus/usb/ohci.c 2012-07-19 22:22:48.269010600 +0200 @@ -270,6 +270,11 @@ grub_ohci_pci_iter (grub_pci_device_t de return 0; #endif + /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ + addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); + grub_pci_write_word(addr, + GRUB_PCI_COMMAND_BUS_MASTER | grub_pci_read_word(addr)); + grub_dprintf ("ohci", "class=0x%02x 0x%02x interface 0x%02x\n", class, subclass, interf); } _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel