Hi TI,
we are using a Micron UFS device (MTFC32GASAONS) on a custom board. The board boots to Linux (using PSDKL v07.03) with the following UFS related messages:
root@j7-evm:~# dmesg | grep ufs [ 0.996929] cdns-ufshcd 4e84000.ufs: ufshcd_populate_vreg: Unable to find vdd-hba-supply regulator, assuming enabled [ 1.007440] cdns-ufshcd 4e84000.ufs: ufshcd_populate_vreg: Unable to find vcc-supply regulator, assuming enabled [ 1.017592] cdns-ufshcd 4e84000.ufs: ufshcd_populate_vreg: Unable to find vccq-supply regulator, assuming enabled [ 1.027830] cdns-ufshcd 4e84000.ufs: ufshcd_populate_vreg: Unable to find vccq2-supply regulator, assuming enabled [ 1.038503] scsi host0: ufshcd [ 1.077043] cdns-ufshcd 4e84000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[1, 1], lane[1, 1], pwr[SLOWAUTO_MODE, SLOWAUTO_MODE], rate = 0 [ 1.113333] cdns-ufshcd 4e84000.ufs: ufshcd_print_pwr_info:[RX, TX]: gear=[3, 3], lane[2, 2], pwr[FAST MODE, FAST MODE], rate = 2 [ 1.125847] cdns-ufshcd 4e84000.ufs: ufshcd_find_max_sup_active_icc_level: Regulator capability was not set, actvIccLevel=0
Reading the current configuration of the UFS device shows the following output:
root@j7-evm:~# ufs-utils desc -t 1 -p /dev/bsg/ufs-bsg0 Config Device Descriptor: [Byte offset 0x0]: bLength = 0x90 Config Device Descriptor: [Byte offset 0x1]: bDescriptorType = 0x1 Config Device Descriptor: [Byte offset 0x2]: bConfDescContinue = 0x0 Config Device Descriptor: [Byte offset 0x3]: bBootEnable = 0x0 Config Device Descriptor: [Byte offset 0x4]: bDescrAccessEn = 0x1 Config Device Descriptor: [Byte offset 0x5]: bInitPowerMode = 0x1 Config Device Descriptor: [Byte offset 0x6]: bHighPriorityLUN = 0x7f Config Device Descriptor: [Byte offset 0x7]: bSecureRemovalType = 0x0 Config Device Descriptor: [Byte offset 0x8]: bInitActiveICCLevel = 0x0 Config Device Descriptor: [Byte offset 0x9]: wPeriodicRTCUpdate = 0x0 Config Device Descriptor: [Byte offset 0xc]: bRPMBRegionEnable = 0x0 Config Device Descriptor: [Byte offset 0xd]: bRPMBRegion1Size = 0x0 Config Device Descriptor: [Byte offset 0xe]: bRPMBRegion2Size = 0x0 Config Device Descriptor: [Byte offset 0xf]: bRPMBRegion3Size = 0x0 Config 0 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 1 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 2 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 3 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 4 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 5 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 6 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config 7 Unit Descriptor: Config Descriptor: [Byte offset 0x0]: bLUEnable = 0x0 Config Descriptor: [Byte offset 0x1]: bBootLunID = 0x0 Config Descriptor: [Byte offset 0x2]: bLUWriteProtect = 0x0 Config Descriptor: [Byte offset 0x3]: bMemoryType = 0x0 Config Descriptor: [Byte offset 0x4]: dNumAllocUnits = 0x0 Config Descriptor: [Byte offset 0x8]: bDataReliability = 0x0 Config Descriptor: [Byte offset 0x9]: bLogicalBlockSize = 0xc Config Descriptor: [Byte offset 0xa]: bProvisioningType = 0x0 Config Descriptor: [Byte offset 0xb]: wContextCapabilities = 0x0 Config Descriptor was written into config_desc_data_ind_0 file
So I would say, up to this point, everything looks fine.
However, when trying to flash the descriptor with the config TI provided (Creating a Boot partition with 32MB and a second partition with 32GB, which should fit in our device)
00000000 90 01 00 01 01 01 7F 00 00 00 00 00 00 00 00 00 ................ 00000010 01 01 00 00 00 00 00 08 00 0C 00 00 00 00 00 00 ................ 00000020 01 00 00 00 00 00 1D C9 00 0C 00 00 00 00 00 00 ................ 00000030 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000040 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000050 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000060 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000070 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000080 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................
I get the following output:
root@j7-evm:~# ufs-utils desc -t 1 -w config_desc_data_ind_0 -p /dev/bsg/ufs-bsg0 Invalid value, for idn 0x01 root@j7-evm:~#
Trying to decrease the partition size like this:
00000000 90 01 00 01 01 01 7F 00 00 00 00 00 00 00 00 00 ................ 00000010 01 01 00 00 00 00 00 08 00 0C 00 00 00 00 00 00 ................ 00000020 01 00 00 00 00 00 00 C9 00 0C 00 00 00 00 00 00 ................ 00000030 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000040 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000050 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000060 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000070 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................ 00000080 00 00 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 ................
Results in the following output:
root@j7-evm:~# ufs-utils desc -t 1 -w config_desc_data_ind_0 -p /dev/bsg/ufs-bsg0 General failure, for idn 0x01 root@j7-evm:~#
According to this thread (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1250436/tda4vm-supported-ufs-device-list), you only verified the Toshiba UFS device. Is Micron UFS device supported at all for TDA4?
Thanks for your help and best regards,
Felix