On Jan 26, 2021, at 9:23 AM, renan.moraes2 via groups.io <renan.moraes2=fit-tecnologia.org.br@groups.io> wrote:

Good afternoon,
 
We are studying how to communicate with Universal Flash Storage (UFS) device on UEFI environment. The first step is identify the UFS device, we are using the system Lenovo Flex 5G (It has Snapdragon processor + UFS device).
 
We tried to identify the UFS device in three ways:
 
1 - Specific UEFI protocols (UFS_DEVICE_CONFIG_PROTOCOL / UFS_HOST_CONTROLLER_PROTOCOL) -> None of these protocols could be found on our test systems, we compiled the EDK II 2020 (edk2-stable202005) available drivers (UfsPassThru and UfsPciHc) and loaded them. However, these drivers can't detect the UFS device.
 
2 - Device Path -> Tried to identify by its type (Type 3 – Messaging Device Path) and subtype (Sub-Type 25 – UFS), but could not find any matches.
 
3 - Pci bus -> Tried to identify by its class (01h - Mass Storage Controller) and subclass (09h - Universal Flash Storage controller), but could not find any matches.
 
We would like to know if there is an alternative UEFI UFS driver or other methods to identify and communicate with this type of storage device.
 

Some times people chose to abstract devices more generically so for example just produce EFI_BLOCK_IO_PROTOCOL for a generic disk like device. 

Some times people chose to not have EFI drivers for devices they don’t support booting from, it is firmware after all. 

Sometimes on ARM devices the SoC just have MMIO devices at magic memory addresses. So your best bet might be figuring out how the hardware works on your device from a data sheet. 

Thanks,

Andrew Fish

Thank you in advance.