Hi, This series adds driver support for VMware PVSCSI controller. This controller is supported by VMware and QEMU. This work is part of the more general agenda of enhancing OVMF boot device support to have feature parity with SeaBIOS (Which supports booting from VMware PVSCSI). I pushed a copy of these (v3) patches to https://github.com/nikital/edk2/tree/pvscsi6 The v2 patches can be found at https://github.com/nikital/edk2/tree/pvscsi5 The v1 patches can be found at https://github.com/nikital/edk2/tree/pvscsi4 Regards, -Liran v2->v3: * Add function documentation to PvScsiWriteCmdDesc with “@param” to explain DescWords alignment requirement. [Laszlo] * Also set Packet’s HostAdapterStatus and TargetStatus when returning EFI_BAD_BUFFER_SIZE from PassThru() method. [Liran] * Add comments explaining why DMA communication buffer fields sizes are defined as they are. [Laszlo] * Remove unnecessary (UINT64) casts from EFI_PHYSICAL_ADDRESS expressions. [Laszlo] * Changed HandleResponse() to always copy SenseData based on Response->SenseLen. Not only if ScsiStatus equal to CHECK. [Liran] * Changed HandleResponse() to update Packet TransferLength only on underrun. [Liran] * Changed PassThru() to return EFI_STATUS_SUCCESS on device return overrun/underrun. [Laszlo & Liran] * Removed unnecessary PvScsiAllocatePages(), PvScsiFreePages(), PvScsiMapBuffer() and PvScsiUnmapBuffer() utility functions. [Laszlo] * Changed PvScsiInitRings() to align PVSCSI_CMD_DESC_SETUP_RINGS command to UINT32 before using it with EfiPciIoWidthFifoUint32. [Laszlo] * Removed PciIoOperation parameter from PvScsiAllocateSharedPages(). [Laszlo * Added STATIC_ASSERT() to verify PVSCSI_CMD_DESC_SETUP_RINGS is of size multiple of UINT32 words [Laszlo]. * Added reset device before either freeing PVSCSI rings or DMA communication buffer. [Laszlo] * Removed unnecessary cast to (VOID **) in call to PvScsiFreeSharedPages() in PvScsiUninit(). [Laszlo] * Added #include <Library/BaseLib.h> and BaseLib to PvScsiDxe.inf because of RShiftU64() usage. [Laszlo] v1->v2: * Removed Nikita’s Reviewed-By tags. [Laszlo] * Renamed PvScsi.inf to PvScsiDxe.inf and fixed references from all DSC files. [Laszlo] * Changed “!ifdef $(PVSCSI_ENABLE)” in DSC files to “!if $(PVSCSI_ENABLE) == TRUE”. [Laszlo] * Fix Identation in various places. [Laszlo] * Added “#include <Uefi/UefiSpec.h>” for EFI_SYSTEM_TABLE. [Laszlo] * Fix various typos. [Laszlo] * Made “STATIC” on same line of object delcerations. [Laszlo] * Added Laszlo’s Reviewed-by tags on some patches. [Laszlo] * Added missing spaces before “(“ on various function calls. [Laszlo] * Added PvScsi.h header file to INF [Sources] section. [Laszlo] * Changed [Protocols] section in INF file to be lexicographically sorted. [Laszlo] * Changed [PCDs] section in INF file to be lexigraphically sorted. [Laszlo] * Fixed function comments blocks to be “/** **/” instead of “//” style. [Laszlo] * Changed PvScsiGetTargetLun() to ZeroMem() all target bytes except first one. [Laszlo] * Replaced “IOSpace” with “MMIO-Space” in comments. [Laszlo] * Changed enums to match EDK2 coding convention. [Laszlo] * Use PCI_BAR_IDX0 instead of hard-coded 0. [Laszlo] * Use EFI_PAGES_TO_SIZE() instead of manually multiplying with EFI_PAGE_SIZE. [Laszlo] * Use RShiftU64() to shift UINT64 vars. [Laszlo] * Changed ReqNumEntries var to UINT32 and shift to use “1U <<” instead of “1 <<”. [Laszlo] * Changed condition on flag (In PvScsiWaitForRequestCompletion()) to be a boolean expression. [Laszlo] * Replaced “FakeHostAdapterError” label with a utility function. [Laszlo] * Added debug message to PvScsiExitBoot() to assist debugging. [Laszlo] * Fixed resource management to make each function either completely succeed or completely fail and free all resources. [Laszlo] * Changed PvScsiWriteCmdDesc() to use EfiPciIoWidthFifoUint32. [Laszlo] * Changed PvScsiWriteCmdDesc() prototype to make clear it descriptor must be an array of words. [Laszlo] -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56533): https://edk2.groups.io/g/devel/message/56533 Mute This Topic: https://groups.io/mt/72617113/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
> On 28 Mar 2020, at 23:00, Liran Alon <liran.alon@oracle.com> wrote: > > Hi, > > This series adds driver support for VMware PVSCSI controller. > > This controller is supported by VMware and QEMU. This work is part of > the more general agenda of enhancing OVMF boot device support to have > feature parity with SeaBIOS (Which supports booting from VMware PVSCSI). > > I pushed a copy of these (v3) patches to https://github.com/nikital/edk2/tree/pvscsi6 > The v2 patches can be found at https://github.com/nikital/edk2/tree/pvscsi5 > The v1 patches can be found at https://github.com/nikital/edk2/tree/pvscsi4 > > Regards, > -Liran > > v2->v3: > * Add function documentation to PvScsiWriteCmdDesc with “@param” to explain DescWords alignment requirement. [Laszlo] > * Also set Packet’s HostAdapterStatus and TargetStatus when returning EFI_BAD_BUFFER_SIZE from PassThru() method. [Liran] > * Add comments explaining why DMA communication buffer fields sizes are defined as they are. [Laszlo] > * Remove unnecessary (UINT64) casts from EFI_PHYSICAL_ADDRESS expressions. [Laszlo] > * Changed HandleResponse() to always copy SenseData based on Response->SenseLen. Not only if ScsiStatus equal to CHECK. [Liran] > * Changed HandleResponse() to update Packet TransferLength only on underrun. [Liran] > * Changed PassThru() to return EFI_STATUS_SUCCESS on device return overrun/underrun. [Laszlo & Liran] > * Removed unnecessary PvScsiAllocatePages(), PvScsiFreePages(), PvScsiMapBuffer() and PvScsiUnmapBuffer() utility functions. [Laszlo] > * Changed PvScsiInitRings() to align PVSCSI_CMD_DESC_SETUP_RINGS command to UINT32 before using it with EfiPciIoWidthFifoUint32. [Laszlo] > * Removed PciIoOperation parameter from PvScsiAllocateSharedPages(). [Laszlo > * Added STATIC_ASSERT() to verify PVSCSI_CMD_DESC_SETUP_RINGS is of size multiple of UINT32 words [Laszlo]. > * Added reset device before either freeing PVSCSI rings or DMA communication buffer. [Laszlo] > * Removed unnecessary cast to (VOID **) in call to PvScsiFreeSharedPages() in PvScsiUninit(). [Laszlo] > * Added #include <Library/BaseLib.h> and BaseLib to PvScsiDxe.inf because of RShiftU64() usage. [Laszlo] > > v1->v2: > * Removed Nikita’s Reviewed-By tags. [Laszlo] > * Renamed PvScsi.inf to PvScsiDxe.inf and fixed references from all DSC files. [Laszlo] > * Changed “!ifdef $(PVSCSI_ENABLE)” in DSC files to “!if $(PVSCSI_ENABLE) == TRUE”. [Laszlo] > * Fix Identation in various places. [Laszlo] > * Added “#include <Uefi/UefiSpec.h>” for EFI_SYSTEM_TABLE. [Laszlo] > * Fix various typos. [Laszlo] > * Made “STATIC” on same line of object delcerations. [Laszlo] > * Added Laszlo’s Reviewed-by tags on some patches. [Laszlo] > * Added missing spaces before “(“ on various function calls. [Laszlo] > * Added PvScsi.h header file to INF [Sources] section. [Laszlo] > * Changed [Protocols] section in INF file to be lexicographically sorted. [Laszlo] > * Changed [PCDs] section in INF file to be lexigraphically sorted. [Laszlo] > * Fixed function comments blocks to be “/** **/” instead of “//” style. [Laszlo] > * Changed PvScsiGetTargetLun() to ZeroMem() all target bytes except first one. [Laszlo] > * Replaced “IOSpace” with “MMIO-Space” in comments. [Laszlo] > * Changed enums to match EDK2 coding convention. [Laszlo] > * Use PCI_BAR_IDX0 instead of hard-coded 0. [Laszlo] > * Use EFI_PAGES_TO_SIZE() instead of manually multiplying with EFI_PAGE_SIZE. [Laszlo] > * Use RShiftU64() to shift UINT64 vars. [Laszlo] > * Changed ReqNumEntries var to UINT32 and shift to use “1U <<” instead of “1 <<”. [Laszlo] > * Changed condition on flag (In PvScsiWaitForRequestCompletion()) to be a boolean expression. [Laszlo] > * Replaced “FakeHostAdapterError” label with a utility function. [Laszlo] > * Added debug message to PvScsiExitBoot() to assist debugging. [Laszlo] > * Fixed resource management to make each function either completely succeed or completely fail and free all resources. [Laszlo] > * Changed PvScsiWriteCmdDesc() to use EfiPciIoWidthFifoUint32. [Laszlo] > * Changed PvScsiWriteCmdDesc() prototype to make clear it descriptor must be an array of words. [Laszlo] > The entire series looks good to me: Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56557): https://edk2.groups.io/g/devel/message/56557 Mute This Topic: https://groups.io/mt/72617113/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
On 03/28/20 21:00, Liran Alon wrote: > Hi, > > This series adds driver support for VMware PVSCSI controller. > > This controller is supported by VMware and QEMU. This work is part of > the more general agenda of enhancing OVMF boot device support to have > feature parity with SeaBIOS (Which supports booting from VMware PVSCSI). > > I pushed a copy of these (v3) patches to https://github.com/nikital/edk2/tree/pvscsi6 > The v2 patches can be found at https://github.com/nikital/edk2/tree/pvscsi5 > The v1 patches can be found at https://github.com/nikital/edk2/tree/pvscsi4 Merged in commit range 6c1fb56802d5..f34c7645bd87, via <https://github.com/tianocore/edk2/pull/474>. Thanks for the contribution! Laszlo > v2->v3: > * Add function documentation to PvScsiWriteCmdDesc with “@param” to explain DescWords alignment requirement. [Laszlo] > * Also set Packet’s HostAdapterStatus and TargetStatus when returning EFI_BAD_BUFFER_SIZE from PassThru() method. [Liran] > * Add comments explaining why DMA communication buffer fields sizes are defined as they are. [Laszlo] > * Remove unnecessary (UINT64) casts from EFI_PHYSICAL_ADDRESS expressions. [Laszlo] > * Changed HandleResponse() to always copy SenseData based on Response->SenseLen. Not only if ScsiStatus equal to CHECK. [Liran] > * Changed HandleResponse() to update Packet TransferLength only on underrun. [Liran] > * Changed PassThru() to return EFI_STATUS_SUCCESS on device return overrun/underrun. [Laszlo & Liran] > * Removed unnecessary PvScsiAllocatePages(), PvScsiFreePages(), PvScsiMapBuffer() and PvScsiUnmapBuffer() utility functions. [Laszlo] > * Changed PvScsiInitRings() to align PVSCSI_CMD_DESC_SETUP_RINGS command to UINT32 before using it with EfiPciIoWidthFifoUint32. [Laszlo] > * Removed PciIoOperation parameter from PvScsiAllocateSharedPages(). [Laszlo > * Added STATIC_ASSERT() to verify PVSCSI_CMD_DESC_SETUP_RINGS is of size multiple of UINT32 words [Laszlo]. > * Added reset device before either freeing PVSCSI rings or DMA communication buffer. [Laszlo] > * Removed unnecessary cast to (VOID **) in call to PvScsiFreeSharedPages() in PvScsiUninit(). [Laszlo] > * Added #include <Library/BaseLib.h> and BaseLib to PvScsiDxe.inf because of RShiftU64() usage. [Laszlo] > > v1->v2: > * Removed Nikita’s Reviewed-By tags. [Laszlo] > * Renamed PvScsi.inf to PvScsiDxe.inf and fixed references from all DSC files. [Laszlo] > * Changed “!ifdef $(PVSCSI_ENABLE)” in DSC files to “!if $(PVSCSI_ENABLE) == TRUE”. [Laszlo] > * Fix Identation in various places. [Laszlo] > * Added “#include <Uefi/UefiSpec.h>” for EFI_SYSTEM_TABLE. [Laszlo] > * Fix various typos. [Laszlo] > * Made “STATIC” on same line of object delcerations. [Laszlo] > * Added Laszlo’s Reviewed-by tags on some patches. [Laszlo] > * Added missing spaces before “(“ on various function calls. [Laszlo] > * Added PvScsi.h header file to INF [Sources] section. [Laszlo] > * Changed [Protocols] section in INF file to be lexicographically sorted. [Laszlo] > * Changed [PCDs] section in INF file to be lexigraphically sorted. [Laszlo] > * Fixed function comments blocks to be “/** **/” instead of “//” style. [Laszlo] > * Changed PvScsiGetTargetLun() to ZeroMem() all target bytes except first one. [Laszlo] > * Replaced “IOSpace” with “MMIO-Space” in comments. [Laszlo] > * Changed enums to match EDK2 coding convention. [Laszlo] > * Use PCI_BAR_IDX0 instead of hard-coded 0. [Laszlo] > * Use EFI_PAGES_TO_SIZE() instead of manually multiplying with EFI_PAGE_SIZE. [Laszlo] > * Use RShiftU64() to shift UINT64 vars. [Laszlo] > * Changed ReqNumEntries var to UINT32 and shift to use “1U <<” instead of “1 <<”. [Laszlo] > * Changed condition on flag (In PvScsiWaitForRequestCompletion()) to be a boolean expression. [Laszlo] > * Replaced “FakeHostAdapterError” label with a utility function. [Laszlo] > * Added debug message to PvScsiExitBoot() to assist debugging. [Laszlo] > * Fixed resource management to make each function either completely succeed or completely fail and free all resources. [Laszlo] > * Changed PvScsiWriteCmdDesc() to use EfiPciIoWidthFifoUint32. [Laszlo] > * Changed PvScsiWriteCmdDesc() prototype to make clear it descriptor must be an array of words. [Laszlo] > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56668): https://edk2.groups.io/g/devel/message/56668 Mute This Topic: https://groups.io/mt/72617113/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2024 Red Hat, Inc.