You can try creating two event notification functions. One is to notify 
gEfiCcidProtocolGuid to run the logic with device plug-in, another is notify 
ReadyToBoot event to run the logic without device plug-in.

Thanks
Liming
From: Iru Cai [mailto:[email protected]]
Sent: Friday, May 20, 2016 3:37 PM
To: Gao, Liming <[email protected]>
Cc: [email protected]
Subject: Re: [edk2] Driver dependency on boot

It's a good idea, but I still have some problems. My ccidboot driver has 
different behaviors depending on whether a CCID card is plugged in, so I think 
I also need a timer event to check if gEfiCcidProtocolGuid is installed to a 
handle in time.  However, I need the code executed before the boot manager 
starts. In my case in OVMF, if I set a time too long in the timer event, its 
notification function will run after the EFI shell starts, and this is not what 
I want.
So now I need this in my ccidboot: when a CCID card is plugged in, it can wait 
for gEfiCcidProtocolGuid installed to a handle, and if no card is plugged in 
before BDS phase, it'll run other code.
Thanks
Iru

On Thu, May 19, 2016 at 3:22 PM, Gao, Liming 
<[email protected]<mailto:[email protected]>> wrote:
You can create ProtocolNotification function for gEfiCcidProtocolGuid in 
ccidboot driver. If so, you don't need add it into [Depex].
UefiLib EfiCreateProtocolNotifyEvent() API can help to create it.

Thanks
Liming
> -----Original Message-----
> From: edk2-devel 
> [mailto:[email protected]<mailto:[email protected]>]
>  On Behalf Of Iru
> Cai
> Sent: Thursday, May 19, 2016 2:35 PM
> To: [email protected]<mailto:[email protected]>
> Subject: [edk2] Driver dependency on boot
>
> Hi,
>
> I'm having some dependency problem when developing on edk2. I've
> written a
> CCID device driver which provides a protocol EFI_CCID_PROTOCOL with GUID
> gEfiCcidProtocolGuid. And I have another application called ccidboot to be
> run on boot that uses gEfiCcidProtocolGuid, I set the module type as
> DXE_DRIVER.
>
> If I add gEfiCcidProtocolGuid to the [Depex] of ccidboot, it works good
> when I have my CCID card plugged, but it'll not run if the card is
> unplugged. If I don't add this dependency, the ccidboot module will run
> before the driver starts the card. I don't know what I should do to solve
> this problem.
>
> Thanks,
> Iru
> _______________________________________________
> edk2-devel mailing list
> [email protected]<mailto:[email protected]>
> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to