From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw0-x22f.google.com (mail-yw0-x22f.google.com [IPv6:2607:f8b0:4002:c05::22f]) (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 2EFF421A00ADA for ; Wed, 28 Jun 2017 05:35:02 -0700 (PDT) Received: by mail-yw0-x22f.google.com with SMTP id j11so23648641ywa.2 for ; Wed, 28 Jun 2017 05:36:33 -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; bh=kLzfXuNuj2HbMpXjKSEXsesEHGkYfxgATm0wqA/fg94=; b=gSeOY8G/UGferbYaFWxAkek5roSv6xgn49ffyZCl6L/ig8LePXNB/a6UYDucEpdZii M7ZfOYcRIkF8I1DiY57PVTxczlsaEgKRAsLWqIcAhVUP0Tbor8luv1iYAuzJFZCYhLVW PbR8dBiY231xBwGeF9BRIVpUf0cK9IDoYQ3khhY8AiacwNv6I8WP0fZrTNfy+xXI7Y9C Bg1WItzpKDctedvGFNcdJm/7cj9lk0wFzTMnKZVsN8AphGXooxP/Sj8DksqEWS5ezGbL zCIXii3Kd0f/XWeH408B5CYz7p50hB2i/Hxmo5qmLeQD0q3h92R6bOlj+MQCldfKikJN LH6g== 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; bh=kLzfXuNuj2HbMpXjKSEXsesEHGkYfxgATm0wqA/fg94=; b=W3mUd7DaMBga5NPlBKWgbp3z7xNKwMFqPKwL6aIKnTXNPnkMqJqHT4nMkVUDKb+KAS nDmT25YzqRtUJsjWnGwdR18phGFhwn9PTdDxTRJ2uhQKoyii5HF/bKLQzUT/pULakIU8 0EyC2qlerA65Y5XVFrppL0lew4FhBAO32PZc/Fw83wMDvtW17XPonbd7K1yja8TMUnWO p1UkZnkXF5aAw1SL+S5DYp11EqpuAsGwGA5gtT1xbvTJVQnRm6d6ZJi1PHaRQNcsRW7v D5VKkAj018nP8YhwsTkNFar4navbiV8bMd8P3OYReYuRCfQiSWtLYbc9Po4OmWvogoAJ 1Q8g== X-Gm-Message-State: AKS2vOwP52kCOMj1ub2nAAByW6EyVJ6Rkeioguz7stD/aF37WYMeoo78 7nv0mz217AjbuqEfWDp2XusFjO6C2TPZ X-Received: by 10.13.219.14 with SMTP id d14mr7420737ywe.245.1498653392454; Wed, 28 Jun 2017 05:36:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.209.86 with HTTP; Wed, 28 Jun 2017 05:36:11 -0700 (PDT) In-Reply-To: References: From: TVKR Date: Wed, 28 Jun 2017 07:36:11 -0500 Message-ID: To: edk2-devel@lists.01.org, akamit91@hotmail.com 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 12:35:02 -0000 Content-Type: text/plain; charset="UTF-8" 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 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 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 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 > 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 = 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 > *>>* _______________________________________________ > *>* edk2-devel mailing list > *>* edk2-devel at lists.01.org > *>* https://lists.01.org/mailman/listinfo/edk2-devel > * > >