From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw0-x22b.google.com (mail-yw0-x22b.google.com [IPv6:2607:f8b0:4002:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A677F21C943F0 for ; Wed, 28 Jun 2017 10:50:24 -0700 (PDT) Received: by mail-yw0-x22b.google.com with SMTP id 63so27674104ywr.0 for ; Wed, 28 Jun 2017 10:51:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=NScgVAAchdIEZNFeuzqGQrlMRHFcypn4K1UlIjp0fss=; b=I86iNfwHkpsTDRwGt+AHrWtTaj4xHlr1Vfh9rpwWuBJhq7XXKM3K1ud197cHzobP4O j/lmEGB4LYeky+w3EWVDFcgDBToSPtXyKmTJhMTJ9bJzJ5WsKy6jpPfP7y39BkYciSoV 3/3XK/trg+EJrl/sMyb4EpSRgcBRgn/hkgUhqsIkemHvLR5nqW/5IPc1gM8s1PJoimn0 3Lc+600M1/sUj79CI2ouah1EFCjsIXAueUkVVxPu+C2311v4URFbWFIo+N8t0W3P36/0 9AMmN8S1/uRXUFeJTGtiX/XhMamVRA29t1hWUG5Gamh09zVKUOraZGFy2VAMBXzVOfT1 /5Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=NScgVAAchdIEZNFeuzqGQrlMRHFcypn4K1UlIjp0fss=; b=q0bsTuyMPbdpNNqlwh4P/KPbc3FOxGkreIE7+hIruJ0NxjaA+sEWH4d542KdNeP5Wn jsUMj17W6ViY47nuWWrfaClHXhjmI23N6HOkfqTYJaKU3CQAEdZ+/VD3360UTtMMTpxn hny4sjOBR0JQ+K5DaAmKKIKTb+qK/6koYStjUeiQRFyVyboD4ei3TFg4VOdRnNwMXnuV mpJz8uFiYlMlTG9lkWCvnUgXH9p/9+lphUxepEYflVpkXuARqmSLmdphT/4JJlEIJSEn daov0WIXNz10sza2tHK+LfNMtmyOGIrGVtNCdVQYAApkIMVR/tg5+PJkxhcM9/4GnqGK GnyQ== X-Gm-Message-State: AKS2vOyCboQ3NFmiJhSIozB9Tc58TGSNOgc6SeZI/lsoUj+s5KlAqd/y WCMK1sKzQcPcBfBMDnDSagjTd3rqKw== X-Received: by 10.13.210.66 with SMTP id u63mr9212495ywd.285.1498672314655; Wed, 28 Jun 2017 10:51:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.209.86 with HTTP; Wed, 28 Jun 2017 10:51:34 -0700 (PDT) In-Reply-To: References: From: TVKR Date: Wed, 28 Jun 2017 12:51:34 -0500 Message-ID: To: Amit kumar Cc: "edk2-devel@lists.01.org" X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: DisconnectController API not working. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jun 2017 17:50:25 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sorry, I wasn't clear in my last email. No it did not hang. The 'reconnect -r' command completed successfully (no errors reported on screen). On Wed, Jun 28, 2017 at 12:50 PM, Amit kumar wrote: > Did it hang ? > ------------------------------ > *From:* TVKR > *Sent:* Wednesday, June 28, 2017 10:45:13 PM > *To:* Amit kumar > *Cc:* edk2-devel@lists.01.org > > *Subject:* Re: [edk2] DisconnectController API not working. > > Thanks for the suggestion Amit. I tried the reconnect -r but it doesn't > seem to help. > > On Wed, Jun 28, 2017 at 10:29 AM, Amit kumar wrote= : > >> Hi Tresko, >> I looks like there is no problem with your implementation, as was the >> case with me. >> I can suggest you a quick trick here, if it won=E2=80=99t work I will he= lp you >> further which might take a while. >> Follow the steps below. >> 1. Go to refi shell >> 2. Reconnect -r >> 3. If the sysytem hangs. >> 4. Try to update your BIOS/UEFI to latest (as I had noticed the eariler >> BIOS/UEFI had some some problem which normally gets fixed with updates). >> 5. After update once again try Reconnect -r. >> 6. If theres a no hang restart the system and now you can try your app o= r >> just give disconnect in uefi shell. >> 7. If still I doesn=E2=80=99t work you can ping me I might suggest the o= ther way >> around. >> >> Amit >> >> On Jun 28, 2017, at 8:05 PM, TVKR wrote: >> >> Hi Amit, >> >> Here is the output. It is the call 'gBS->DisconnectController >> (ControllerHandle, NULL, NULL)' (where ControllerHandle=3D7219EA98) that >> doesn't seem to correctly work. >> >> FS0:\> drivers >> Output Truncated.. >> 176 07042200 B Y Y 1 1 Intel(R) PRO/1000 7.3.18 PCI-E >> PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0)/Offset(0x1D200,0x3E9FF) >> 178 07042200 B Y Y 1 1 Intel(R) PRO/1000 7.3.18 PCI-E >> PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x1)/Offset(0x1D200,0x3E9FF) >> >> FS0:\> dh 176 -d -v >> 176: 7219E798 >> DriverVersion >> 0x00020028 >> EfiDriverHealthProtocolGuid >> DriverConfiguration >> DriverDiagnostics2 >> ComponentName2 >> DriverDiagnostics >> ComponentName >> DriverBinding >> ImageDevicePath >> LoadedImage >> Revision......: 0x00001000 >> ParentHandle..: 72B70A18 >> SystemTable...: 788FEF18 >> DeviceHandle..: 7219EA98 >> FilePath......: 7219E998 >> OptionsSize...: 0 >> LoadOptions...: >> ImageBase.....: 776A0000 >> ImageSize.....: 555E0 >> CodeType......: EfiBootServicesCode >> DataType......: EfiBootServicesData >> Unload........: 776A0708 >> >> Child[176] : Intel(R) PRO/1000 7.3.18 PCI-E >> Driver Image Name : Offset(0x1D200,0x3E9FF) >> Driver Version : 07031800 >> Driver Type : Bus >> Configuration : YES >> Diagnostics : YES >> Child Controllers : >> Ctrl[175] : PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0) >> Child[219] : Intel Ethernet Server Adapter I350-T2 >> >> >> FS0:\> dh 175 -d -v >> 175: 7219EA98 >> UnknownDevice >> UnknownDevice >> BusSpecificDriverOverride >> LoadFile2 >> PCIIO >> DevicePath >> PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0) >> Controller Name : PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0) >> Device Path : PciRoot(0x0)/Pci(0x2,0x3)/Pci(0x0,0x0) >> Controller Type : BUS >> Configuration : NO >> Diagnostics : NO >> Managed by : >> Drv[176] : Intel(R) PRO/1000 7.3.18 PCI-E >> Parent Controllers : >> Parent[75] : PciRoot(0x0) >> Child Controllers : >> Child[219] : Intel Ethernet Server Adapter I350-T2 >> >> >> Thanks >> >> On Wed, Jun 28, 2017 at 9:07 AM, Amit kumar wrote= : >> >>> Hi Tresko, >>> >>> >Hi Amit, >>> >>> >I am seeing the exact same issue on my system with >>> DisconnectController. The shell command 'disconnect' works but when I u= se >>> the gBS->DisconnectController >call from my application it doesn't seem= to >>> really disconnect the same controller (even though the call returns >>> SUCCESS) and it still appears to be managed by >driver. I even checked = the >>> ControllerHandle passed and it looks correct. Were you able to resolve = this >>> eventually? >>> >>> Yes i was able to resolve it. It might be helpful if you can tell me th= e >>> output of dh -d command. >>> >>> Thanks >>> >>> Amit >>> >>> >>> >>> ------------------------------ >>> *From:* TVKR >>> *Sent:* Wednesday, June 28, 2017 6:06:11 PM >>> *To:* edk2-devel@lists.01.org; akamit91@hotmail.com >>> >>> *Subject:* Re: [edk2] DisconnectController API not working. >>> >>> BTW, I ported the disconnect code (under ShellPkg\Library\UefiShellDriv= er1CommandsLib) >>> to a standalone application and it fails too. Looks like there is somet= hing >>> else in the shell app that is taking care of properly disconnecting the >>> controller. >>> >>> Thanks >>> >>> On Tue, Jun 27, 2017 at 5:54 PM, TVKR wrote: >>> >>>> Hi Amit, >>>> >>>> I am seeing the exact same issue on my system with >>>> DisconnectController. The shell command 'disconnect' works but when I = use >>>> the gBS->DisconnectController call from my application it doesn't seem= to >>>> really disconnect the same controller (even though the call returns >>>> SUCCESS) and it still appears to be managed by driver. I even checked = the >>>> ControllerHandle passed and it looks correct. Were you able to resolve= this >>>> eventually? >>>> >>>> >>>> Thanks >>>> >>>> >>>> -----Original Message----- >>>> From: edk2-devel [mailto:edk2-devel-bounces at lists.01.org ] On Behalf Of Amit kumar >>>> Sent: Tuesday, April 4, 2017 12:07 AM >>>> To: Tian, Feng > >>>> Cc: edk2-devel at lists.01.org >>>> Subject: Re: [edk2] DisconnectController API not working. >>>> >>>> No i am not trying to disconnect USB controller in use. >>>> >>>> ________________________________ >>>> From: Tian, Feng > >>>> Sent: Wednesday, April 5, 2017 8:21:36 AM >>>> To: Andrew Fish; Amit kumar >>>> Cc: edk2-devel at lists.01.org ; Tian, Feng >>>> Subject: RE: [edk2] DisconnectController API not working. >>>> >>>> Kumar, >>>> >>>> Do "map -r" at first please. >>>> >>>> >>>> PS: for the issue you encounter, are you trying to disconnect the usb = controller in use? Please note at this time you are reading the file from u= sb key. It means the disconnect will never succeed. >>>> >>>> Thanks >>>> Feng >>>> >>>> -----Original Message----- >>>> From: edk2-devel [mailto:edk2-devel-bounces at lists.01.org ] On Behalf Of Andrew Fish >>>> Sent: Tuesday, April 4, 2017 12:07 AM >>>> To: Amit kumar > >>>> Cc: edk2-devel at lists.01.org >>>> Subject: Re: [edk2] DisconnectController API not working. >>>> >>>> >>>> >* On Apr 3, 2017, at 2:58 AM, Amit kumar > wrote: >>>> *>>* Hi Andrew , >>>> *>>* I did some testing and found out, same code works fine on Server = boards but it fails on desktop boards. >>>> *> >>>> Servers tend to connect less things as it can take a long time. >>>> >>>> >* I Have double checked the ControllerHandle by printing its handle i= ndex using ConvertHandleToHandleIndex(ControllerHandle), the ControllerHan= dle looks correct. >>>> *>>>* I have one new query; >>>> *>>* i have made a startup.nsh file in which i am issuing load driver.= efi , i am getting file not found. >>>> *>>* i have also tried using load fs0:driver.efi, and again i get fil= e not found. I have been trying to run this script from internal shell as = well as usb shell. >>>> *> >>>> Does that command work if you boot the shell? >>>> >>>> Thanks, >>>> >>>> Andrew Fish >>>> >>>> >>* Regards >>>> *>>* Amit Kumar >>>> *>>* ________________________________ >>>> *>* From: afish at apple.com > on behalf of Andrew Fish >>>> *>* > >>>> *>* Sent: Friday, March 31, 2017 10:42:08 PM >>>> *>* To: Amit kumar >>>> *>* Cc: edk2-devel at lists.01.org >>>> *>* Subject: Re: [edk2] DisconnectController API not working. >>>> *>>>* On Mar 31, 2017, at 5:26 AM, Amit kumar >> wrote: >>>> *>>>* Hi , >>>> *>>* I am trying to disconnect a controller from the usb mass storage >>>> *>* driver, for which i am using >>>> *>>* Status =3D gBS->DisconnectController ( >>>> *>* ControllerHandle, >>>> *>* NULL, >>>> *>* NULL >>>> *>* ); >>>> *>>* after the call i get Status =3D SUCCESS , but when i run drivers = command in shell, i find it still being manged by the same old driver handl= e. >>>> *>* Although when i run disconnect command from shell (e.g disconnect = 163 >>>> *>* ...output disconnect(163,0,0):Status =3D SUCCESS) it works as expe= cted and detaches the controller from the driver. >>>> *>* Can some body point me out what could be the reason. >>>> *>>* Amit, >>>> *>>* It is always good to double check you are using the right Control= lerHandle. >>>> *>>* Sequence of events matters. There are boot flows and Shell comman= ds that do ConnectController. >>>> *>* ~/work/src/edk2/ShellPkg(master)>git grep ConnectController >>>> *>* Library/UefiShellDebug1CommandsLib/LoadPciRom.c:402: gBS->Conne= ctController (HandleBuffer[Index], NULL, NULL, TRUE); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:54: Status = =3D gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:95: gBS->ConnectC= ontroller (RootBridgeHandleBuffer[RootBridgeIndex], NULL, NULL, FALSE); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:116:ConnectControlle= rs ( >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:150: // This is whe= re we call the gBS->ConnectController function. >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:158: Status =3D= gBS->ConnectController(*HandleWalker, DriverHandleList, NULL, Recursive); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:167: Status =3D g= BS->ConnectController(ControllerHandle, DriverHandleList, NULL, Recursive); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:298: = Status =3D gBS->ConnectController ( >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:354:ConvertAndConnec= tCon >>>> *>* trollers ( >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:391: return (Connec= tControllers(Handle1, Handle2, Recursive, Output, (BOOLEAN)(Handle2 !=3D NU= LL && Handle1 !=3D NULL))); >>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:536: Status= =3D ConvertAndConnectControllers(Handle1, Handle2, ShellCommandLineGetFlag= (Package, L"-r"), (BOOLEAN)(Count!=3D0)); >>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:492: EFI_HANDLE Con= nectControllerContextOverride[2]; >>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:514: ConnectContro= llerContextOverride[0] =3D DriverImageHandle; >>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:515: ConnectContro= llerContextOverride[1] =3D NULL; >>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:516: gBS->ConnectC= ontroller (ControllerHandle, ConnectControllerContextOverride, NULL, TRUE); >>>> *>* Library/UefiShellLevel2CommandsLib/Load.c:52: Status =3D gBS->C= onnectController (HandleBuffer[Index], NULL, NULL, TRUE); >>>> *>>>* Thanks, >>>> *>>* Andrew Fish >>>> *>>* _______________________________________________ >>>> *>* edk2-devel mailing list >>>> *>* edk2-devel at lists.01.org > >>>> *>* https://lists.01.org/mailman/listinfo/edk2-devel >>>> *>>* _______________________________________________ >>>> *>* edk2-devel mailing list >>>> *>* edk2-devel at lists.01.org >>>> *>* https://lists.01.org/mailman/listinfo/edk2-devel >>>> * >>>> >>>> >>> >> >> >