> On Apr 3, 2017, at 2:58 AM, Amit kumar <akami...@hotmail.com> 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: af...@apple.com <af...@apple.com> on behalf of Andrew Fish > <af...@apple.com> > Sent: Friday, March 31, 2017 10:42:08 PM > To: Amit kumar > Cc: edk2-devel@lists.01.org > Subject: Re: [edk2] DisconnectController API not working. > > > On Mar 31, 2017, at 5:26 AM, Amit kumar > <akami...@hotmail.com<mailto:akami...@hotmail.com>> 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:ConvertAndConnectControllers > ( > 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@lists.01.org<mailto: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 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel