From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb0-x236.google.com (mail-yb0-x236.google.com [IPv6:2607:f8b0:4002:c09::236]) (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 103252095A6BC for ; Wed, 28 Jun 2017 10:14:03 -0700 (PDT) Received: by mail-yb0-x236.google.com with SMTP id e201so21214475ybb.1 for ; Wed, 28 Jun 2017 10:15:34 -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=k8xvv9ycbn61MmaqAhmqPv+c7uOhJQQ8oLbKB4CiN6E=; b=FOKupiUMTZjTde3COoA3fGhvcQ1VGswMIyhKjaQPNi7+SiYGiwQNwmg3g7dxGlj/SK 7D7hT27m7rMbcdeA4b9VTt49abvH+dC1a5VOBW43BVhqwFh20JvXShbRnDLzP87isUy/ JR8xSrylAJniLC4tMyWP2ak/47p4sQEWYMpExnvZpUgx58WocHSuVDWNc9uD5TWsshp9 CgoC6mPkNm08R0T5YerAVeNTYfz18ec84LPLhW8dN8Gmeunqx6oU4XDOGWSHx0de43fM 8F4mrC6hcCaetvJib5GdHG7TGDdYeSLzPMjsCQSUQEPdpK+YnjoKcfoFv5tFPsxPrZDT l2mw== 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=k8xvv9ycbn61MmaqAhmqPv+c7uOhJQQ8oLbKB4CiN6E=; b=lN6akF7gQqKDAFAFMmPTA/SXnCHNvtGl25JekPD5LwljjvvLLDRo1Oaq3p5LDzZh// 5o+7tohjlAdKWBBah3/8TCkNsGdJWJglCwne4M/8VGih1dvpe34ldKzLbq/BDaJKecJ6 Sh3CfL5PQd1HmVTjrOsqQ/+wDX69N1qMbGFOK7bJY3jrqFFjp+eB3Wj3LTIL7TKvmzKT dXVw0tNXNJU0W/3DZl3JCH9Vrl349NtKw0h6inKilRhWIAoi7pc0eJnqWyXWmnVOxoWV ZBiy02ML1MffdleNRpaPe945rhq+sv/gvB6y7uWWcDz552cz/7qEChS/rz/NlY85pIXO k2QA== X-Gm-Message-State: AKS2vOxaIeuaz2FjL9OSOhWadzJh+H0WXtN8jOYcF7OcF6KK1Tp6/DCg zR1m6UwNbLFi3V6PHajZZwGNkskWIQ== X-Received: by 10.37.208.66 with SMTP id h63mr8823630ybg.163.1498670134065; Wed, 28 Jun 2017 10:15:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.209.86 with HTTP; Wed, 28 Jun 2017 10:15:13 -0700 (PDT) In-Reply-To: References: From: TVKR Date: Wed, 28 Jun 2017 12:15:13 -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:14:03 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 cas= e > with me. > I can suggest you a quick trick here, if it won=E2=80=99t work I will hel= p 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 or > just give disconnect in uefi shell. > 7. If still I doesn=E2=80=99t work you can ping me I might suggest the ot= her 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 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 t= he >> ControllerHandle passed and it looks correct. Were you able to resolve t= his >> eventually? >> >> Yes i was able to resolve it. It might be helpful if you can tell me the >> 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\UefiShellDrive= r1CommandsLib) >> to a standalone application and it fails too. Looks like there is someth= ing >> 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 t= he >>> 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 c= ontroller in use? Please note at this time you are reading the file from us= b 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 b= oards 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 in= dex using ConvertHandleToHandleIndex(ControllerHandle), the ControllerHand= le looks correct. >>> *>>>* I have one new query; >>> *>>* i have made a startup.nsh file in which i am issuing load driver.e= fi , i am getting file not found. >>> *>>* i have also tried using load fs0:driver.efi, and again i get file= not found. I have been trying to run this script from internal shell as w= ell 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 c= ommand in shell, i find it still being manged by the same old driver handle= . >>> *>* Although when i run disconnect command from shell (e.g disconnect 1= 63 >>> *>* ...output disconnect(163,0,0):Status =3D SUCCESS) it works as expec= ted 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 Controll= erHandle. >>> *>>* Sequence of events matters. There are boot flows and Shell command= s that do ConnectController. >>> *>* ~/work/src/edk2/ShellPkg(master)>git grep ConnectController >>> *>* Library/UefiShellDebug1CommandsLib/LoadPciRom.c:402: gBS->Connec= tController (HandleBuffer[Index], NULL, NULL, TRUE); >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:54: Status =3D= gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE); >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:95: gBS->ConnectCo= ntroller (RootBridgeHandleBuffer[RootBridgeIndex], NULL, NULL, FALSE); >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:116:ConnectController= s ( >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:150: // This is wher= e 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 gB= S->ConnectController(ControllerHandle, DriverHandleList, NULL, Recursive); >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:298: S= tatus =3D gBS->ConnectController ( >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:354:ConvertAndConnect= Con >>> *>* trollers ( >>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:391: return (Connect= Controllers(Handle1, Handle2, Recursive, Output, (BOOLEAN)(Handle2 !=3D NUL= L && 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 Conn= ectControllerContextOverride[2]; >>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:514: ConnectControl= lerContextOverride[0] =3D DriverImageHandle; >>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:515: ConnectControl= lerContextOverride[1] =3D NULL; >>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:516: gBS->ConnectCo= ntroller (ControllerHandle, ConnectControllerContextOverride, NULL, TRUE); >>> *>* Library/UefiShellLevel2CommandsLib/Load.c:52: Status =3D gBS->Co= nnectController (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 >>> * >>> >>> >> > >