From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1QvAbj-00010i-TH for mharc-grub-devel@gnu.org; Sun, 21 Aug 2011 12:10:43 -0400 Received: from eggs.gnu.org ([140.186.70.92]:44201) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvAbf-0000xE-Vj for grub-devel@gnu.org; Sun, 21 Aug 2011 12:10:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QvAbd-0007Qy-Tz for grub-devel@gnu.org; Sun, 21 Aug 2011 12:10:39 -0400 Received: from mail-fx0-f41.google.com ([209.85.161.41]:43404) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvAbd-0007Pl-K1 for grub-devel@gnu.org; Sun, 21 Aug 2011 12:10:37 -0400 Received: by fxg9 with SMTP id 9so3524905fxg.0 for ; Sun, 21 Aug 2011 09:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type; bh=Q2GtgD6xnqEFAOKWh+FZUtkogND6y8F71MkEgjR0wIg=; b=WuPuisU4B5eUXZMBFNEA4/UyRvKe3btQ2syUZNrI3mdUgvRHYfgjACsGSlOvB/SMv5 6xQ6F2BlnGy44Fq162zVGUY5o4lvVoBdGgpLzchXQ2r5mCM4kZyoLL0p+WGG32GYpKLb AxeEJrb8TZlM1dAMlGB73Z0xCBhdOpGKJomXg= Received: by 10.223.61.211 with SMTP id u19mr2298687fah.102.1313943036296; Sun, 21 Aug 2011 09:10:36 -0700 (PDT) Received: from debian.x201.phnet (111-147.203-62.cust.bluewin.ch [62.203.147.111]) by mx.google.com with ESMTPS id b13sm2497783fak.16.2011.08.21.09.10.32 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 21 Aug 2011 09:10:33 -0700 (PDT) Message-ID: <4E512DF6.1030807@gmail.com> Date: Sun, 21 Aug 2011 18:10:30 +0200 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Iceowl/1.0b2 Icedove/3.1.11 MIME-Version: 1.0 To: grub-devel@gnu.org Subject: Re: [Fwd: [Resolved] Grub2 can not detect usb disk] References: <1313876741.5634.49.camel@pracovna> In-Reply-To: <1313876741.5634.49.camel@pracovna> X-Enigmail-Version: 1.1.2 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enig41EEB88BE533C087C15EEBF2" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.161.41 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Aug 2011 16:10:41 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig41EEB88BE533C087C15EEBF2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 20.08.2011 23:45, Ale=C5=A1 Nesrsta wrote: > Hi everybody, > > could anybody test changes from Cui Lei (see below) in uhci.c - if they= > are generally working and does not have some negative effect on machine= s > with "normal" BIOS etc. ? > > Maybe such changes are related only to coreboot and some special use > case/platform, but probably they are related to needed change of UHCI > controller ownership and should be included into uhci.c code. > I don't think it is. The difference is that coreboot doesn't use USB itself so it's initialised but disabled initially which I expect also to happen with some older BIOSes so this code is perfectly ok to be added generically. @Rock or Ale=C5=A1: Could someone of you clean this up (macroify and comm= ent style mainly) and supply as a .diff ? > Regards, > Ales > > -------- P=C5=99eposlan=C3=A1 zpr=C3=A1va -------- > Od: Cui Lei > Komu: Ale=C5=A1 Nesrsta > Kopie: The development of GNU GRUB > P=C5=99edm=C4=9Bt: [Resolved] Grub2 can not detect usb disk > Datum: Fri, 19 Aug 2011 10:58:00 +0800 > > Thank you for your help, very much! ^_^ > This problem have been resolved and I can usb the usb_keyborard under=20 > grub-shell and I can boot ubuntu11.04 from usb disk. > My mainboard is via 8595a, the usb controller is uhci. > I resolved it by add these code in the grub-core/bus/usb/uhci.c: > > (1) > 182 /*Set bus master*/ > 183 addr =3D grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); > 184 grub_uint16_t val =3D grub_pci_read_word(addr); > 185 val =3D (val & ~0) | GRUB_PCI_COMMAND_BUS_MASTER; > 186 grub_pci_write_word(addr, val); > > (2) > 203 // Reset PIRQ and SMI > 204 addr =3D grub_pci_make_address (dev, 0xC0); =20 > //USBLEGSUP 0xc0 > 205 grub_pci_write_word(addr, 0x8f00); //USBLEGSUP_RWC =20 > 0x8f00 /* the R/WC bits */ > 206 // Reset the HC > 207 grub_uhci_writereg16(u, GRUB_UHCI_REG_USBCMD, 0x0002);=20 > //USBCMD_HCRESET 0x0002 > 208 grub_millisleep(5); > 209 // Disable interrupts and commands (just to be safe). > 210 grub_outw (0, u->iobase + 4); //USBINTR 4 /*Interrupt=20 > enable register*/ > 211 grub_uhci_writereg16 (u, GRUB_UHCI_REG_USBCMD, 0); > > I don't know whether it is useful to the other one, but may be a refere= nce. > > BRs, > > Rock. > >> Hi, >> >> I am afraid, I maybe will not help You too much but I try it: >> >> I shortly looked into ML to Your posts. As I saw short part of debug >> output in one of Your e-mail, GRUB freezes when it wants to get device= >> descriptor - more precisely, when it requests first 8 bytes of device >> descriptor. It is the first thing which is done after address is >> assigned to the device. >> >> So, it looks like device does not set address properly (even if contro= l >> message Set Address returns success) or happened something else what >> prevent device to respond (but I don't know what...). >> >> For the first try You can increase related delays in usbhub.c: >> >> ... >> /* Wait "recovery interval", spec. says 2ms */ >> grub_millisleep (2);<<<<---- HERE (try 4ms or more) >> >> grub_usb_device_attach (dev); >> ... >> >> ... >> /* Enable the port. */ >> err =3D hub->controller->dev->portstatus (hub->controller, portno, = 1); >> if (err) >> return; >> hub->controller->dev->pending_reset =3D grub_get_time_ms () + 5000;= >> >> grub_millisleep (10);<<<<---- maybe here also >> >> /* Enable the port and create a device. */ >> dev =3D grub_usb_hub_add_dev (hub->controller, speed, portno, 0); >> hub->controller->dev->pending_reset =3D 0; >> if (! dev) >> return; >> ... >> >> If this will not help You, I currently have no other idea what could b= e >> the reason of timeout. >> I think You don't need EHCI because it looks like Set Address control >> message works (at least it does not return error), i.e. You probably >> have OHCI or UHCI USB (companion) controller on computer and Your devi= ce >> is working at full or low speed with Your USB controller. >> >> By the way, for the first look into ML I did not find which USB >> controller You have - OHCI/UHCI ? (which driver/module are You using -= >> ohci/uhci?) - and which machine/architecture is the computer You are >> trying to boot with GRUB2 - ? >> I sometimes had some unidentified problems on my UHCI/EHCI controller,= >> mostly with port powering - UHCI does not have power management but EH= CI >> does and if EHCI is not properly initialized by BIOS (it could be Your= >> case with coreboot, maybe ?) then USB ports are not properly powered. >> Another BIOS (coreboot?) issue could be improper handling of USB >> controller ownership. >> >> Do You have USB device connected directly into root port or via some U= SB >> hub ? Try to do it in opposite way (i.e. if You are not using the USB >> hub, try use it and connect USB device via hub - maybe it helps...) >> >> Hmmm, I remember now one issue which could be related to Your problem.= >> On my very old machine with OHCI USB controller some devices are not >> working "for the first time". I am still not able to debug why it >> happened (it does not happened when full debug is active - so it looks= >> like it is related to some timing). But I am afraid it will be not You= r >> case because device stops working after it is recognized, configured, >> usbms module loaded and GRUB USB device usb0 created. >> But - try load ohci/uhci module when USB disk is connected and then >> disconnect and connect it again after few seconds. In my case device >> becomes working as new usb device (i.e. usb1). >> >> Additionally, lot of manufacturers does not follow USB or USBMS >> specifications, as You can read in Linux source code of USB controller= s >> and USB mass storage devices and related documentation. >> Did You tried more different USB mass storage devices ? >> What is manufacturer& type of Your USB mass storage device ? >> >> Of course, You can also try EHCI driver, it maybe can solve Your probl= em >> because of little bit different ports/devices handling. But EHCI drive= r >> is currently highly experimental, it still exists only as uncorrected >> and not accepted "patch". I have to do some improvement but I don't ha= ve >> sufficient time still, unfortunately... >> If You want try to use it, You can get my patch from ML (sent at >> 25.6.2011) and use it with related source code trunk branch revision >> (maybe also any later or current revision, because USB parts of GRUB a= re >> not frequently changed). Please also read about know issue and another= >> limitations of the "zero version" of EHCI driver - e.g. it may not wor= k >> if Your PC is not x86 machine or USB registers are mapped above 4GB et= c. >> >> Sorry if You will wait longer time for my response in future - I don't= >> check the post so often and additionally currently I am (and probably >> will be) longer time too busy - I am not regular GRUB2 contributor, I = do >> something for GRUB2 USB part only time to time... >> >> BRs, >> Ales >> >> >> Cui Lei p=C3=AD=C5=A1e v =C3=9At 09. 08. 2011 v 11:05 +0800: >>> Hi Ale=C5=A1, >>> I am trying to boot OS from USB disk, I use coreboot-v4 with grub2 a= s >>> payload, but my usb disk can not been >>> detect. I try to use usb-keyboard, it is not working. I know you are= >>> working on the EHCI driver from Vladimir , >>> could you give me some advices? Vladimir said it may need EHCI driver= , >>> but I think the usb device should run >>> with low-speed or full-speed if no EHCI driver.C >>> >>> Looking forward to your reply. >>> BRs, >>> Rock Cui. >>> >>> > > > > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel --=20 Regards Vladimir '=CF=86-coder/phcoder' Serbinenko --------------enig41EEB88BE533C087C15EEBF2 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iF4EAREKAAYFAk5RLfcACgkQNak7dOguQgmS1QD/c2G3ljycLg8VpPIvNd8mW17E uChlpN3M32V22rFK7sYBAIre+ELFxxLE9AIskweo0xypGJXdmxxGx+PmohqnInBG =PtOG -----END PGP SIGNATURE----- --------------enig41EEB88BE533C087C15EEBF2--