bugGNU GRUB - Bugs: bug #26237, multiple problems with usb devices

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #26237: multiple problems with usb devices

Submitted by:  Oliver Henshaw <oliverhenshaw>
Submitted on:  Sun 19 Apr 2009 01:12:34 PM UTC  
 
Category: NoneSeverity: Major
Priority: 5 - NormalItem Group: None
Status: FixedPrivacy: Public
Assigned to: NoneOriginator Name: 
Open/Closed: ClosedRelease: r2127
Release: Bazaar - trunkReproducibility: Every Time
Planned Release: None

(Jump to the original submission Jump to the original submission)

Sun 14 Mar 2010 09:47:49 PM UTC, comment #7:

Hello,

there are answers.

>...I found out the problem with grub_memalign.


OK, so I removed my workaround in HCCA allocation in patch.

>...Can you remove all gratuituous changes (like commenting out dprintfs, adding commented out code and change register names) and send patch in unified format (-u option in diff) to grub-devel@gnu.org?


I cleaned the code, shortly tested if it is still working, made the patch by "diff -urB" and sent it to grub-devel@gnu.org.
But as I did not participate on any Linux, GNU or another project until now, I am, for example, not sure if is it correct to do my patches according to grub2-1.98~experimental.20100120 source or if I should download some latest code tarball (if any)... Or if I should participate via CVS (I never used this tool and have no experiences...).

>...Porting code from linux is appropriate only if license is compatible and porting was approved by maintainer.


I never understand any license in details as I cannot be thinking as lawyer...
From my point of view, I did not port (copy) the code, I only used Linux developers experiences described in their notes, so I hope I don't need any approval.
I only shortly read part of Linux sources related to USB mass storage driver and I found in notes that there can be problem with USB mass storage devices if no Request Sense is performed after each command. By the way, I am not sure if I understand these notes in right way...
I don't know if lawyers have the same point of view...

>...Are perhaps interested in coding EHCI?


I am personally not interested, as I do not have PC with EHCI which have no support for boot in BIOS.
But if You want to add EHCI module to GRUB2 or something like it and You need help, I can try to help You, I like programming on "device level".

But first please consider following facts and think over if I am suitable person for You:
1.
Improvement of GRUB2 OHCI module is my first try of participating in any free SW development. I only tried to solve this bug myself and when it looked that it is working, I send it to You mainly for review if it can be useful also for others.
2.
Till now I have no knowledges about UHCI and EHCI (as I had no knowledges about OHCI and USB MS approx. three weeks ago...).
This case was my first "meeting" with OHCI and USB mass storage devices specifications - I am not specialist, I downloaded specifications from http://www.usb.org, read them and try to compare it with GRUB2 code etc.
From SCSI side I have only very basic knowledges related to old SCSI2 draft document which I historically shortly read many years ago according to my experiments with building my own QIC02 SCSI miniport driver for Windows NT.
3.
I cannot do development systematically and fast due to my job, family and another, mostly non-predicate reasons. Sometimes I have some free time for such development, but often not. It can happen that I will be do nothing (nor responding) one, two, three weeks or more...

Ales

Ales Nesrsta <starous>
Project Member
Sat 13 Mar 2010 10:08:44 PM UTC, comment #6:

Hello. I found out the problem with grub_memalign. I'll apply the patch tomorrow. Some of the fixes can go directly in while other require investigation and perhaps even copyright assignment. Can you remove all gratuituous changes (like commenting out dprintfs, adding commented out code and change register names) and send patch in unified format (-u option in diff) to grub-devel@gnu.org? Porting code from linux is appropriate only if license is compatible and porting was approved by maintainer. Are perhaps interested in coding EHCI?

Vladimir Serbinenko <phcoder>
Project Administrator
Fri 12 Mar 2010 10:38:32 PM UTC, comment #5:

Hello,

booting from OHCI is working now (slowly but probably safely).
I attached the patch grub2-1.98~my_patched.20100312.patch related to grub2-1.98~experimental.20100120 source tarball.

Changed files:
ohci.c (memory align problem, change of HW handling)
usbtrans.c (some changes and maybe important comment)
scsi.c (new commands)
usbms.c (some changes in initialization and bulk operations)
scsicmd.h (new commands)
usbtrans.h (bad code of USB command)

There was these main problems/changes:
Probably not correct handling of OHCI HW.
Memory for HCCA was sometimes not aligned to 0x100 (!???)
Handling of bulk transfers
Some bad USB codes.
As I read in linux sources, many devices have problem if Request Sense command is not used after any SCSI command.

Still remains - to do:
1.
Possibly bad handling of toggle bit.
2.
Wasting of memory in bulk transfers (only 64 bytes per TD).

It is written in my comment in usbtrans.c.
Maybe I try to do it but I am not sure if I will have sufficient time now.

As I changed code which is probably used also for another devices (at least for UHCI USB mass storage) and maybe affects
another parts of grub code, these changes should be tested on
affected devices - but I cannot do it...

With regards
Ales

(file #19924)

Ales Nesrsta <starous>
Project Member
Fri 26 Feb 2010 04:07:12 PM UTC, comment #4:

Hello,
I have also problem related (probably) to this bug.
I am running Debian Lenny on TOSHIBA Satellite 2140CDS laptop. BIOS of this PC does not support booting from USB, so I tried GRUB2, which promises this functionality.
But GRUB2 USB boot does not work on this PC - GRUB2 hangs after "insmod usbms" and following "ls".

A attach two files:
lspci.txt - my PCI devices
grub2_ohci_problem.txt - behavior of the problem

On Linux USB is working normally.
From lspci I found that OHCI (USB 1.1) chip is NEC family, probably related to some "quirk" in kernel OHCI module.

I tried GRUB versions 1.97beta3 and also Debian last source snapshot 1.98~experimental.20100120 - the behavior is the same in both cases.

Ales

(file #19798, file #19799)

Ales Nesrsta <starous>
Project Member
Wed 17 Jun 2009 01:22:50 PM UTC, comment #3:

Has your patch that we committed recently fixed all this bugs? If it has please close this bugreport. Otherwise say which problems remain

Vladimir Serbinenko <phcoder>
Project Administrator
Thu 07 May 2009 01:12:56 PM UTC, comment #2:

With the attached patch, 'insmod ohci' no longer crashes. But

  • 'insmod uhci' still hangs the computer. If I set debug=uhci, then module loading completes but 'usb' resets the computer.
  • 'insmod ohci' completes, but doesn't seem to register the usb ports or the attached devices. 'usb' returns blank.
Oliver Henshaw <oliverhenshaw>
Sun 19 Apr 2009 01:31:28 PM UTC, comment #1:

I can boot with the stanza:

set debug=uhci
insmod uhci
unset debug
insmod usbms
set root=(usb0,1)
linux /syslinux/vmlinuz0 root=UUID=596A-F3D2 rootfstype=vfat ro liveimg quiet rhgb
initrd /syslinux/initrd0.img

however,

  • the system is extremely slow with disk access at usb 1.1 speeds
  • chainloading to syslinux (in order to take advantage of the configuration written by the fedora live-cd tools) fails.
  • this won't allow me to put multiple iso images on the stick, unless I write a script to translate syslinux config to grub2 config.
Oliver Henshaw <oliverhenshaw>
Sun 19 Apr 2009 01:12:34 PM UTC, original submission:

I'm trying to use grub2 to boot from usb on a legacy system where the bios can't see the usb drive. The machine has (via) usb 1.1 ports attached to the motherboard and usb 2.0 ports on a (nec) pci card.

However, 'insmod uhci' hangs grub if any devices are attached to the usb 1.1 ports, and 'insmod ohci' always hangs grub. Grub survives if I 'set debug=uhci', and recognises devices on the usb 1.1 ports (but does not on the usb 2.0 ports). With 'set debug=ohci', the output seems to carry on forever.

I captured the output from a serial console, it can be found attached in the following comment(s). Attached here are the results of 'lspci -v' for the usb controllers and 'lsusb -v' on i686 Fedora 10.

I encountered this problem when I first tried grub2 from svn, around April 1st, and it persists with svn r2127.

Oliver Henshaw <oliverhenshaw>

 

Attached Files
file #19798:  lspci.txt added by starous (862B - text/plain)
file #19799:  grub2_ohci_problem.txt added by starous (6KiB - text/plain)
file #18110:  ohci_mouse.txt added by oliverhenshaw (786B - text/plain - output of 'insmod ohci', fails to detect usb mouse)
file #18109:  uchi_mouse_usb.txt added by oliverhenshaw (2KiB - text/plain - output of 'insmod uhci' and 'usb' (which resets) with mouse attached. Almost identical to file #17957, apart from different td values and now debug="uhci usb".)
file #18108:  usb-check-interface.patch added by oliverhenshaw (2KiB - text/x-patch - patch to check interface for uhci and ohci. ohci no longer hangs, uhci still has problems.)
file #17959:  uhci_usbms_usb.txt added by oliverhenshaw (9KiB - text/plain - Output from 'insmod uhci; insmod usbms; usb'.)
file #17958:  insmod_ohci.txt added by oliverhenshaw (1KiB - text/plain - 'insmod ohci' - the last line repeats indefinitely)
file #17957:  insmod_uhci_mouse.txt added by oliverhenshaw (2KiB - text/plain - 'insmod uhci' with a usb mouse attached)
file #17956:  insmod_uhci_nomouse.txt added by oliverhenshaw (403B - text/plain - 'insmod uhci' with no devices attached)
file #17954:  my_pci.txt added by oliverhenshaw (2KiB - text/plain - output of 'lsusb -v' and selected 'lspci -v' on fedora 10. )
file #17955:  my_usb.txt added by oliverhenshaw (15KiB - text/plain - output of 'lsusb -v' and selected 'lspci -v' on fedora 10. )

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by starous (Updated the item)
  • -unavailable- added by phcoder (Posted a comment)
  • -unavailable- added by oliverhenshaw (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 15 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 16 Oct 2010 08:55:27 PM UTCphcoderStatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Sat 13 Mar 2010 10:08:44 PM UTCphcoderReleaseNone=>Bazaar - trunk
    Fri 12 Mar 2010 10:38:32 PM UTCstarousAttached File-=>Added grub2-1.98~my_patched.20100312.patch, #19924
    Fri 26 Feb 2010 04:07:12 PM UTCstarousAttached File-=>Added lspci.txt, #19798
      Attached File-=>Added grub2_ohci_problem.txt, #19799
    Thu 07 May 2009 01:22:15 PM UTColiverhenshawAttached File-=>Added ohci_mouse.txt, #18110
    Thu 07 May 2009 01:19:47 PM UTColiverhenshawAttached File-=>Added uchi_mouse_usb.txt, #18109
    Thu 07 May 2009 01:03:08 PM UTColiverhenshawAttached File-=>Added usb-check-interface.patch, #18108
    Sun 19 Apr 2009 01:25:44 PM UTColiverhenshawAttached File-=>Added uhci_usbms_usb.txt, #17959
    Sun 19 Apr 2009 01:20:42 PM UTColiverhenshawAttached File-=>Added insmod_ohci.txt, #17958
    Sun 19 Apr 2009 01:18:15 PM UTColiverhenshawAttached File-=>Added insmod_uhci_mouse.txt, #17957
    Sun 19 Apr 2009 01:17:29 PM UTColiverhenshawAttached File-=>Added insmod_uhci_nomouse.txt, #17956
    Sun 19 Apr 2009 01:12:34 PM UTColiverhenshawAttached File-=>Added my_pci.txt, #17954
      Attached File-=>Added my_usb.txt, #17955

    Back to the top


    Powered by Savane 3.1-cleanup1