UfsPassThruResetTargetLun,\r
UfsPassThruGetNextTarget\r
},\r
+ { // UfsDevConfig\r
+ UfsRwUfsDescriptor,\r
+ UfsRwUfsFlag,\r
+ UfsRwUfsAttribute\r
+ },\r
0, // UfsHostController\r
0, // UfsHcBase\r
0, // Capabilities\r
UINTN UfsHcBase;\r
UINT32 Index;\r
UFS_UNIT_DESC UnitDescriptor;\r
+ UINT32 UnitDescriptorSize;\r
\r
Status = EFI_SUCCESS;\r
UfsHc = NULL;\r
// Check if 8 common luns are active and set corresponding bit mask.\r
// TODO: Parse device descriptor to decide if exposing RPMB LUN to upper layer for authentication access.\r
//\r
+ UnitDescriptorSize = sizeof (UFS_UNIT_DESC);\r
for (Index = 0; Index < 8; Index++) {\r
- Status = UfsRwDeviceDesc (Private, TRUE, UfsUnitDesc, (UINT8) Index, 0, &UnitDescriptor, sizeof (UFS_UNIT_DESC));\r
+ Status = UfsRwDeviceDesc (Private, TRUE, UfsUnitDesc, (UINT8) Index, 0, &UnitDescriptor, &UnitDescriptorSize);\r
if (EFI_ERROR (Status)) {\r
DEBUG ((DEBUG_ERROR, "Failed to read unit descriptor, index = %X, status = %r\n", Index, Status));\r
continue;\r
goto Error;\r
}\r
\r
- Status = gBS->InstallProtocolInterface (\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
&Controller,\r
&gEfiExtScsiPassThruProtocolGuid,\r
- EFI_NATIVE_INTERFACE,\r
- &(Private->ExtScsiPassThru)\r
+ &(Private->ExtScsiPassThru),\r
+ &gEfiUfsDeviceConfigProtocolGuid,\r
+ &(Private->UfsDevConfig),\r
+ NULL\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
}\r
}\r
\r
- Status = gBS->UninstallProtocolInterface (\r
+ Status = gBS->UninstallMultipleProtocolInterfaces (\r
Controller,\r
&gEfiExtScsiPassThruProtocolGuid,\r
- &(Private->ExtScsiPassThru)\r
+ &(Private->ExtScsiPassThru),\r
+ &gEfiUfsDeviceConfigProtocolGuid,\r
+ &(Private->UfsDevConfig),\r
+ NULL\r
);\r
\r
if (EFI_ERROR (Status)) {\r