From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua0-x236.google.com (mail-ua0-x236.google.com [IPv6:2607:f8b0:400c:c08::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 8123A21A16EFB for ; Wed, 17 May 2017 22:42:17 -0700 (PDT) Received: by mail-ua0-x236.google.com with SMTP id j17so5387904uag.3 for ; Wed, 17 May 2017 22:42:17 -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:content-transfer-encoding; bh=/XusU+P5hGnGv7ufCIqsLB2Km20gQze2vECmBrie3ms=; b=fZx857XygDv5GXdltyrpzEbjMqZDLEDr8LhOl1SINKWrBRYIh9mdL3qlYJsXnOdUoc s6n8zy7lf5BxtVvXU3CcbrxHSbYvZqbHMUA/vXRI4qMAn71Eo/OKbDSpwzDA3rFJP0Vf GTkSHm8Gek3R7QxjXMWbatq0ZA0T9CwfYAqcBuNWMCS0GhznO0x8n8NeOCxiaeIGucHi TmzFb71v2qrK2FfA5kIs+6v03rTkfwcdrk3hjsdpF0OmjOcXN3YXBCT0iTs2EFtVPV5y kk4Q81EI4C8mfT6hGzHesdZR62faFU/zWdypPyOTL/TRsSKInoQ6lP/ddqyO62TF4cQ0 Zn9Q== 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:content-transfer-encoding; bh=/XusU+P5hGnGv7ufCIqsLB2Km20gQze2vECmBrie3ms=; b=U9IDtCTEvmO3oiv58hb+bY2fv6jRIpKHcd0WfQjuSKJZG+pL3ea1wsOk3OlPTIs4Os yc4NoE9TQ4671Z61GaMBwElL2IGk0fqUE3YrFp+SSbX7FG1AX8+cK7wUK5IrlxNk0lh8 mC6nJHJ2TNRJJ8/oemvLcUsKpLH6DeS9fftncbNck50BzjfKxpAYQUrzLHhQZQCUvp7c 5NtSRsMAB5cUapHuFqQ9oy40U8KjJNyOTOIBzs9GQ0lgvtLiSOO+7SLeskP9uXJdiqie qlCKOm1HibIpgYeR45ygFFH69hufzNVlgnty+KjYjBRPL4eCitk5KbcVRqoGX4O5pWZF fZrA== X-Gm-Message-State: AODbwcAdpYz8y6vyHP7qXonluF5OPetT9O6yuT1lHNjcr3C4v52Uj3CU pYj7Vh3YZl3IK9EShI/sJ24t+YomF2Kuncw= X-Received: by 10.176.4.85 with SMTP id 79mr948400uav.88.1495086136654; Wed, 17 May 2017 22:42:16 -0700 (PDT) MIME-Version: 1.0 Received: by 10.31.94.206 with HTTP; Wed, 17 May 2017 22:42:16 -0700 (PDT) In-Reply-To: <98D24FD3-B4DD-4132-BFA3-7D3887CA250D@apple.com> References: <98D24FD3-B4DD-4132-BFA3-7D3887CA250D@apple.com> From: Michael Zimmermann Date: Thu, 18 May 2017 07:42:16 +0200 Message-ID: To: Andrew Fish Cc: edk2-devel-01 , "Zeng, Star" , "Dong, Eric" , Mike Kinney Subject: Re: UEFI_DRIVER dependencies 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: Thu, 18 May 2017 05:42:17 -0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Michael, that's a good point but it only works for drivers which bind to a device. If you're just installing a protocol e.g. for virtual devices or special services which you don't want to turn into libraries then this doesn't work. Haojian, that's what I was thinking, I just wasn't sure if the order is reliable. Andrew, your description sounds like its about DXE_DRIVERs and their Depex sections, does this apply to UEFI_DRIVERs too when they're auto-loaded from the fdf(since they don't support the Depex section)? Thanks for all your answers, Michael On Thu, May 18, 2017 at 7:21 AM, Andrew Fish wrote: > >> On May 17, 2017, at 10:00 PM, Kinney, Michael D wrote: >> >> Michael, >> >> The UEFI Driver Model and the Driver Binding Protocol >> provide support for this case. The idea is that a driver >> is loaded and started, but when a UEFI Driver is started, >> it only registers a Driver Binding Protocol. Then in the >> BDS phase, the devices required to boot are started using >> the UEFI Boot Service ConnectController() and >> ConnectController() calls the Driver Binding Protocol(s). >> >> The dependencies between UEFI Drivers are in their Driver >> Binding Protocols which are not used until after all of >> the UEFI Drivers are loaded and started. >> > > Micheal, > > 1st off no dependency is really a dependency on all the architecture prot= ocols, which is a fancy way of saying all the EFI Boot and Runtime Services= are available. > > Lets say you have a driver that depends on DiskIo. The DiskIo driver depe= nds on BlockIo. Now what happens when a disk driver is connected and produc= es a BlockIO is the DiskIo driver can know get connected. The DXE Core know= s a protocol was added to the handle so it will keep trying to connect driv= ers to that handle as long as new protocols get added. So this is how the D= riverBinding Support() is used to resolve the sequence issues. > > Thanks, > > Andrew Fish > >> Mike >> >>> -----Original Message----- >>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of = Michael >>> Zimmermann >>> Sent: Wednesday, May 17, 2017 9:43 PM >>> To: edk2-devel-01 ; Zeng, Star ; Dong, >>> Eric >>> Subject: [edk2] UEFI_DRIVER dependencies >>> >>> I know that UEFI_DRIVERs don't need or support Depex sections, but >>> what if an UEFI_DRIVER depends on a protocol provided by another >>> UEFI_DRIVER? >>> Since they get loaded automatically because I put them in my >>> platform's fdf, it raises the question of the loading order. >>> >>> Will they get loaded in the order they're defined? How often will the >>> core retry if one of the drivers returns EFI_NOT_READY? >>> >>> Thanks, >>> Michael >>> _______________________________________________ >>> 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 >