Tried it, still no luck :(

There is something in the Shell that makes the in-built disconnect without
any issues but when the same DisconnectController is called from an
application is fails.

Thanks

On Wed, Jun 28, 2017 at 1:23 PM, Amit kumar <akami...@hotmail.com> wrote:

>
>
> EFI_STATUS
> EFIAPI
> UefiMain (
>   IN EFI_HANDLE        ImageHandle,
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>     EFI_STATUS Status;
>
>
>       gBS->DisconnectController (
>        ConvertHandleIndexToHandle (0x175),
>        ConvertHandleIndexToHandle (0x176),
>        NULL);
>    return (Status);
>
>  }
>
>
> ------------------------------
> *From:* edk2-devel <edk2-devel-boun...@lists.01.org> on behalf of Amit
> kumar <akami...@hotmail.com>
> *Sent:* Wednesday, June 28, 2017 11:41:53 PM
> *To:* TVKR
> *Cc:* edk2-devel@lists.01.org
> *Subject:* Re: [edk2] DisconnectController API not working.
>
> Try this; just a quick thing
>
>
>
>
> EFI_STATUS
> EFIAPI
> UefiMain (
>   IN EFI_HANDLE        ImageHandle,
>   IN EFI_SYSTEM_TABLE  *SystemTable
>   )
> {
>     EFI_STATUS Status;
>
>
>       gBS->DisconnectController (
>        ConvertHandleIndexToHandle (175),
>        ConvertHandleIndexToHandle (176),
>        NULL);
>    return (Status);
>
>  }
>
>
> ________________________________
> From: TVKR <tres...@gmail.com>
> Sent: Wednesday, June 28, 2017 11:31:46 PM
> To: Amit kumar
> Cc: edk2-devel@lists.01.org
> Subject: Re: [edk2] DisconnectController API not working.
>
> 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 <akami...@hotmail.com<mailto:
> akami...@hotmail.com>> wrote:
>
> okay, os tell me , did you try  "disconnect 175 176" in UEFI shell ?
>
> ________________________________
> From: TVKR <tres...@gmail.com<mailto:tres...@gmail.com>>
> Sent: Wednesday, June 28, 2017 11:21:34 PM
>
> To: Amit kumar
> Cc: edk2-devel@lists.01.org<mailto: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 'reconnect
> -r' command completed successfully (no errors reported on screen).
>
> On Wed, Jun 28, 2017 at 12:50 PM, Amit kumar <akami...@hotmail.com<mailto:
> akami...@hotmail.com>> wrote:
>
> Did it hang ?
>
> ________________________________
> From: TVKR <tres...@gmail.com<mailto:tres...@gmail.com>>
> Sent: Wednesday, June 28, 2017 10:45:13 PM
> To: Amit kumar
> Cc: edk2-devel@lists.01.org<mailto: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 <akami...@hotmail.com<mailto:
> akami...@hotmail.com>> 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’t work I will help 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 <ControllerHandeIndex> in uefi shell.
> 7. If still I doesn’t work you can ping me I might suggest the other way
> around.
>
> Amit
>
> On Jun 28, 2017, at 8:05 PM, TVKR <tres...@gmail.com<mailto:tres
> k...@gmail.com>> wrote:
>
> Hi Amit,
>
> Here is the output. It is the call 'gBS->DisconnectController
> (ControllerHandle, NULL, NULL)' (where ControllerHandle=7219EA98) 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...: <null string>
>      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 <akami...@hotmail.com<mailto:a
> kami...@hotmail.com>> 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 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 <handle> command.
>
> Thanks
>
> Amit
>
>
> ________________________________
> From: TVKR <tres...@gmail.com<mailto:tres...@gmail.com>>
> Sent: Wednesday, June 28, 2017 6:06:11 PM
> To: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>;
> akami...@hotmail.com<mailto:akami...@hotmail.com>
>
> Subject: Re: [edk2] DisconnectController API not working.
>
> BTW, I ported the disconnect code (under 
> ShellPkg\Library\UefiShellDriver1CommandsLib)
> to a standalone application and it fails too. Looks like there is something
> 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 <tres...@gmail.com<mailto:tres
> k...@gmail.com>> 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<
> https://lists.01.org/mailman/listinfo/edk2-devel>] On Behalf Of Amit kumar
> Sent: Tuesday, April 4, 2017 12:07 AM
> To: Tian, Feng <feng.tian at intel.com<https://lists.01.
> org/mailman/listinfo/edk2-devel>>
> Cc: edk2-devel at lists.01.org<https://lists.01.org/mailman/listinfo/edk2-
> devel>
> Subject: Re: [edk2] DisconnectController API not working.
>
> No i am not trying to disconnect USB controller in use.
>
> ________________________________
> From: Tian, Feng <feng.tian at intel.com<https://lists.01.
> org/mailman/listinfo/edk2-devel>>
> Sent: Wednesday, April 5, 2017 8:21:36 AM
> To: Andrew Fish; Amit kumar
> Cc: edk2-devel at lists.01.org<https://lists.01.org/mailman/listinfo/edk2-
> devel>; 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<
> https://lists.01.org/mailman/listinfo/edk2-devel>] On Behalf Of Andrew
> Fish
> Sent: Tuesday, April 4, 2017 12:07 AM
> To: Amit kumar <akamit91 at hotmail.com<https://lists.01.
> org/mailman/listinfo/edk2-devel>>
> Cc: edk2-devel at lists.01.org<https://lists.01.org/mailman/listinfo/edk2-
> devel>
> Subject: Re: [edk2] DisconnectController API not working.
>
>
> > On Apr 3, 2017, at 2:58 AM, Amit kumar <akamit91 at hotmail.com<
> https://lists.01.org/mailman/listinfo/edk2-devel>> 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  ControllerHandle
> 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  file 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<https://lists.01.org/mailman/listinfo/edk2-
> devel> <afish at apple.com<https://lists.01.org/mailman/listinfo/edk2-
> devel>> on behalf of Andrew Fish
> > <afish at apple.com<https://lists.01.org/mailman/listinfo/edk2-devel>>
> > Sent: Friday, March 31, 2017 10:42:08 PM
> > To: Amit kumar
> > Cc: edk2-devel at lists.01.org<https://lists.01.
> org/mailman/listinfo/edk2-devel>
> > Subject: Re: [edk2] DisconnectController API not working.
> >
> >
> > On Mar 31, 2017, at 5:26 AM, Amit kumar <akamit91 at hotmail.com<
> https://lists.01.org/mailman/listinfo/edk2-devel><mailto:akamit91 at
> hotmail.com<https://lists.01.org/mailman/listinfo/edk2-devel>>> wrote:
> >
> >
> > Hi ,
> >
> > I am trying to disconnect a controller from the usb mass storage
> > driver, for which i am using
> >
> >   Status = gBS->DisconnectController (
> >     ControllerHandle,
> >     NULL,
> >     NULL
> >     );
> >
> > after the call i get Status = SUCCESS , but when i run drivers command
> 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 163
> > ...output disconnect(163,0,0):Status = SUCCESS) it works as expected 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
> ControllerHandle.
> >
> > Sequence of events matters. There are boot flows and Shell commands that
> do ConnectController.
> > ~/work/src/edk2/ShellPkg(master)>git grep ConnectController
> > Library/UefiShellDebug1CommandsLib/LoadPciRom.c:402:
> gBS->ConnectController (HandleBuffer[Index], NULL, NULL, TRUE);
> > Library/UefiShellDriver1CommandsLib/Connect.c:54:        Status =
> gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE);
> > Library/UefiShellDriver1CommandsLib/Connect.c:95:
> gBS->ConnectController (RootBridgeHandleBuffer[RootBridgeIndex], NULL,
> NULL, FALSE);
> > Library/UefiShellDriver1CommandsLib/Connect.c:116:ConnectControllers (
> > Library/UefiShellDriver1CommandsLib/Connect.c:150:  // This is where we
> call the gBS->ConnectController function.
> > Library/UefiShellDriver1CommandsLib/Connect.c:158:      Status =
> gBS->ConnectController(*HandleWalker, DriverHandleList, NULL, Recursive);
> > Library/UefiShellDriver1CommandsLib/Connect.c:167:    Status =
> gBS->ConnectController(ControllerHandle, DriverHandleList, NULL,
> Recursive);
> > Library/UefiShellDriver1CommandsLib/Connect.c:298:
> Status = gBS->ConnectController (
> > Library/UefiShellDriver1CommandsLib/Connect.c:354:ConvertAndConnectCon
> > trollers (
> > Library/UefiShellDriver1CommandsLib/Connect.c:391:  return
> (ConnectControllers(Handle1, Handle2, Recursive, Output, (BOOLEAN)(Handle2
> != NULL && Handle1 != NULL)));
> > Library/UefiShellDriver1CommandsLib/Connect.c:536:          Status =
> ConvertAndConnectControllers(Handle1, Handle2, 
> ShellCommandLineGetFlag(Package,
> L"-r"), (BOOLEAN)(Count!=0));
> > Library/UefiShellDriver1CommandsLib/DrvCfg.c:492:  EFI_HANDLE
> ConnectControllerContextOverride[2];
> > Library/UefiShellDriver1CommandsLib/DrvCfg.c:514:
> ConnectControllerContextOverride[0]  = DriverImageHandle;
> > Library/UefiShellDriver1CommandsLib/DrvCfg.c:515:
> ConnectControllerContextOverride[1]  = NULL;
> > Library/UefiShellDriver1CommandsLib/DrvCfg.c:516:
> gBS->ConnectController (ControllerHandle, ConnectControllerContextOverride,
> NULL, TRUE);
> > Library/UefiShellLevel2CommandsLib/Load.c:52:    Status =
> 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><mailto:edk2-devel at lists.01.org<https://lists.01.
> org/mailman/listinfo/edk2-devel>>
> > 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>
> > https://lists.01.org/mailman/listinfo/edk2-devel
>
>
>
>
>
>
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to