grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EHCI driver


From: Aleš Nesrsta
Subject: Re: EHCI driver
Date: Sun, 22 Jul 2012 21:24:16 +0200

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);
     }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]