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 5FE3321A00AC9 for ; Wed, 28 Jun 2017 11:00:36 -0700 (PDT) Received: by mail-yb0-x236.google.com with SMTP id 84so21612506ybe.0 for ; Wed, 28 Jun 2017 11:02:08 -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=0Qp1hlwgAYiP7xqanI0thQEyKGA+0GxVPZ0H5KHNhWQ=; b=S48kGarKLGGssgx7x4ypR4GOBpDnSbwyphD0dZrbfOHpfFRn3LXbNSoRsJfHkNDw+O mi6qVHGKppD46tFeBvH+iUmoCTXPuuK2t5FoizVQCrhbK5Vrt0ZzMaqn+G8TZM/wEw50 aAi2miFdhESM/BQroxeffdGS70kw0CrbvNkZGzTidfz28XMVLiP+LEXcQWWdlSE6Jwr8 BpcIqRjfLzjksdEciVqis6oueVjRsne0XK1mHKSYI0QDt4psr+prQHvdTGS5Rsvtwy3E aX6QT0yw8HFe//KCMXHIst6I4mrD0h/c42Lt+4UmMVvohf97ooah4m4ceC0SN0oYFbVk gfwQ== 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=0Qp1hlwgAYiP7xqanI0thQEyKGA+0GxVPZ0H5KHNhWQ=; b=M73ibHWua3Nf0TPcgVQzcH/QfgTSwB5iIjFrLU83yGOkya8Ge1sInYOw4tLYAjqv76 60Cy17y+fR3aN7VNZptYw28pEMPc+L8S+R7lHyCLMxkyuLAOCsYP2yN3z2bt8pyoyBrZ H95F1KEuNvNjg5lhpQ8nnug2xciDbt7oFWPykQkrpuxfEVpa9W1m2A51+litfMJl0WgG Y4k6ZW3/TUlR66yWe8tDoNTSHSD5/krTfy8zAJ5O4QGRsKufvtYbfJAqYaTvSAP8HA92 3NFdlqqByhE5zOSRuUmACx+Cr5keK+8sDycNvt6UuyqnXclIUq20FonuOVQ9cgZH32Zu ipNQ== X-Gm-Message-State: AKS2vOy0kpJUr4+pEz19oAAyxS3AthmwveOc4Nh4T++vPM/UMWDYuvtc a+2jNkDGjVuFFOrBGbNOBHVCLd1zgg== X-Received: by 10.37.231.72 with SMTP id e69mr8655681ybh.88.1498672927475; Wed, 28 Jun 2017 11:02:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.209.86 with HTTP; Wed, 28 Jun 2017 11:01:46 -0700 (PDT) In-Reply-To: References: From: TVKR Date: Wed, 28 Jun 2017 13:01:46 -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 18:00:36 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Yes, the shell's in-built command disconnect (disconnect 175 176) worked but DisconnectController call from the application still did not work. On Wed, Jun 28, 2017 at 12:56 PM, Amit kumar wrote: > okay, os tell me , did you try "disconnect 175 176" in UEFI shell ? > ------------------------------ > *From:* TVKR > *Sent:* Wednesday, June 28, 2017 11:21:34 PM > > *To:* Amit kumar > *Cc:* edk2-devel@lists.01.org > *Subject:* Re: [edk2] DisconnectController API not working. > > Sorry, I wasn't clear in my last email. No it did not hang. The 'reconnec= t > -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 h= elp 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 = other 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) tha= t >>> 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 see= m 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 >>>> 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\UefiShellDri= ver1CommandsLib) >>>> to a standalone application and it fails too. Looks like there is some= thing >>>> else in the shell app that is taking care of properly disconnecting th= e >>>> 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 see= m 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 resolv= e 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 = usb 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 = index using ConvertHandleToHandleIndex(ControllerHandle), the ControllerHa= ndle 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 fi= le 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 hand= le. >>>>> *>* Although when i run disconnect command from shell (e.g disconnect= 163 >>>>> *>* ...output disconnect(163,0,0):Status =3D SUCCESS) it works as exp= ected 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 Contro= llerHandle. >>>>> *>>* Sequence of events matters. There are boot flows and Shell comma= nds that do ConnectController. >>>>> *>* ~/work/src/edk2/ShellPkg(master)>git grep ConnectController >>>>> *>* Library/UefiShellDebug1CommandsLib/LoadPciRom.c:402: gBS->Conn= ectController (HandleBuffer[Index], NULL, NULL, TRUE); >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:54: Status = =3D gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE); >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:95: gBS->Connect= Controller (RootBridgeHandleBuffer[RootBridgeIndex], NULL, NULL, FALSE); >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:116:ConnectControll= ers ( >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:150: // This is wh= ere 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 = gBS->ConnectController(ControllerHandle, DriverHandleList, NULL, Recursive)= ; >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:298: = Status =3D gBS->ConnectController ( >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:354:ConvertAndConne= ctCon >>>>> *>* trollers ( >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:391: return (Conne= ctControllers(Handle1, Handle2, Recursive, Output, (BOOLEAN)(Handle2 !=3D N= ULL && Handle1 !=3D NULL))); >>>>> *>* Library/UefiShellDriver1CommandsLib/Connect.c:536: Statu= s =3D ConvertAndConnectControllers(Handle1, Handle2, ShellCommandLineGetFla= g(Package, L"-r"), (BOOLEAN)(Count!=3D0)); >>>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:492: EFI_HANDLE Co= nnectControllerContextOverride[2]; >>>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:514: ConnectContr= ollerContextOverride[0] =3D DriverImageHandle; >>>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:515: ConnectContr= ollerContextOverride[1] =3D NULL; >>>>> *>* Library/UefiShellDriver1CommandsLib/DrvCfg.c:516: gBS->Connect= Controller (ControllerHandle, ConnectControllerContextOverride, NULL, TRUE)= ; >>>>> *>* Library/UefiShellLevel2CommandsLib/Load.c:52: Status =3D gBS->= ConnectController (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 >>>>> * >>>>> >>>>> >>>> >>> >>> >> >