Skip to main content
Provisioning refers to the process of creating and defining LUNs on a new UFS device. A UFS device has one or more logical units. A logical unit is an independent processing entity within the device. Each logical unit has an address within the UFS device called a Logical Unit Number (LUN). The configuration file for provisioning is at <build root/common/config/ufs/provision. The provision XML files for the various UFS device versions are as follows:
  • provision_ufs22.xml - This is for UFS device 2.2 part
  • provision_ufs31.xml - This is for UFS device 3.1 part
In the UFS device provision XML file, the UFS Device Descriptor is a section that has essential information about the UFS device being provisioned. The Device Descriptor includes details such as number of LUNs, initial power modes, write boost parameters. Here is a sample device descriptor entry:
The provision XML file also describes each LUN with Unit Descriptor parameters such as Logical Unit Enable, Boot LUN ID. The following is a sample LUN descriptor entry:
The following table describes some important parameters used in the provision XML files.
  • To reprovision the UFS device, set bConfigDescrLock="0". This parameter is part of the provision XML file.
  • To prevent reprovisioning, set bConfigDescrLock="1" after the UFS device configuration and provisioning is finalized.

UFS device partition layout

The default UFS device provisioning creates eight LUNs (LUN0 to LUN7).
  • The Linux data and all Linux file system images are stored in LUN0.
  • Boot well-known LUN (WLUN) 0xB0 alternates between LUN1 and LUN2 to provide a fail-safe backup for the XBL.
  • The rest of the boot chain is stored in LUN4.
  • The LUN6 and LUN7 are unused by default.
Default UFS device layout