On 2012-05-30 00:46, Aleš Nesrsta wrote:
the EHCI driver in GRUB has some known problems with low-speed transfers
and split transactions [1]. On older machines this is not a big problem
since it's possible to connect low speed devices such a USB keyboard
directly to a port and use the UHCI
On 30.05.2012 00:46, Aleš Nesrsta wrote:
From my point of view it is little bit more probable the second reason.
In this case the solution could be real implementation of interrupt
transfers in GRUB - at least for EHCI. It may be possible even though
GRUB is not supporting CPU interrupts but
diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c
index 0f41361..d8ecf26 100644
--- a/grub-core/bus/usb/ehci.c
+++ b/grub-core/bus/usb/ehci.c
@@ -209,18 +209,22 @@ enum
{
GRUB_EHCI_MULT_MASK = (3 30),
GRUB_EHCI_MULT_RESERVED = (0 30),
- GRUB_EHCI_MULT_ONE = (0
Hi Vladimir and Chris:
Chris:
Thank You for the research, correction of my mistakes (classical
copy-paste mistake... :-) ) and the patch.
As I see, Vladimir is currently discussing Your patch to be accepted, so
I am writing only some notes below mainly for Vladimir.
Vladimir:
1.
interrupt
On 30.05.2012 19:28, Aleš Nesrsta wrote:
It is probably not necessary - I think, really there will be allocated
the same total number of QHs during communication by this new algorithm
as with old algorithm.
The reason is: Now will be used more sync. QHs but less async.
QHs (because some
efi_mmap_hi and efi_system_table_hi were implemented when bootloader
version was 0x0208, so require that to access them, and also fail to
boot if they're needed but unsupported. This way the bootloader will
give you an error instead of the system starting to boot and crashing.
---