From: Liran Alon Date: Sat, 28 Mar 2020 20:00:45 +0000 (+0300) Subject: OvmfPkg/PvScsiDxe: Install DriverBinding protocol X-Git-Tag: edk2-stable202005~258 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=ed08c5711339c870e8793319401e07526d7b816c;p=mirror_edk2.git OvmfPkg/PvScsiDxe: Install DriverBinding protocol In order to probe and connect to the PvScsi device we need this protocol. Currently it does nothing. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2567 Reviewed-by: Laszlo Ersek Signed-off-by: Liran Alon Message-Id: <20200328200100.60786-3-liran.alon@oracle.com> Reviewed-by: Nikita Leshenko --- diff --git a/OvmfPkg/PvScsiDxe/PvScsi.c b/OvmfPkg/PvScsiDxe/PvScsi.c index 1ae4de9869..77b28b3267 100644 --- a/OvmfPkg/PvScsiDxe/PvScsi.c +++ b/OvmfPkg/PvScsiDxe/PvScsi.c @@ -9,8 +9,65 @@ **/ +#include #include +// +// Higher versions will be used before lower, 0x10-0xffffffef is the version +// range for IHV (Indie Hardware Vendors) +// +#define PVSCSI_BINDING_VERSION 0x10 + +// +// Driver Binding +// + +STATIC +EFI_STATUS +EFIAPI +PvScsiDriverBindingSupported ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) +{ + return EFI_UNSUPPORTED; +} + +STATIC +EFI_STATUS +EFIAPI +PvScsiDriverBindingStart ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL + ) +{ + return EFI_UNSUPPORTED; +} + +STATIC +EFI_STATUS +EFIAPI +PvScsiDriverBindingStop ( + IN EFI_DRIVER_BINDING_PROTOCOL *This, + IN EFI_HANDLE ControllerHandle, + IN UINTN NumberOfChildren, + IN EFI_HANDLE *ChildHandleBuffer + ) +{ + return EFI_UNSUPPORTED; +} + +STATIC EFI_DRIVER_BINDING_PROTOCOL mPvScsiDriverBinding = { + &PvScsiDriverBindingSupported, + &PvScsiDriverBindingStart, + &PvScsiDriverBindingStop, + PVSCSI_BINDING_VERSION, + NULL, // ImageHandle, filled by EfiLibInstallDriverBindingComponentName2() + NULL // DriverBindingHandle, filled as well +}; + // // Entry Point // @@ -22,5 +79,12 @@ PvScsiEntryPoint ( IN EFI_SYSTEM_TABLE *SystemTable ) { - return EFI_UNSUPPORTED; + return EfiLibInstallDriverBindingComponentName2 ( + ImageHandle, + SystemTable, + &mPvScsiDriverBinding, + ImageHandle, + NULL, // TODO Component name + NULL // TODO Component name + ); } diff --git a/OvmfPkg/PvScsiDxe/PvScsiDxe.inf b/OvmfPkg/PvScsiDxe/PvScsiDxe.inf index 093cc01713..d1d0e963f9 100644 --- a/OvmfPkg/PvScsiDxe/PvScsiDxe.inf +++ b/OvmfPkg/PvScsiDxe/PvScsiDxe.inf @@ -25,3 +25,4 @@ [LibraryClasses] UefiDriverEntryPoint + UefiLib