# Configure

Use the following storage configurations and device tree parameters for UFS and SD card functionalities.

## Kernel configuration

Qualcomm Linux supports the UFS kernel and SD card kernel configurations in the kernel build.

### UFS kernel configuration

The following table lists the default values of the kernel configuration that enables UFS functionality.

UFS kernel configuration

| Configuration | Enabled (yes/no) | Description |
| --- | --- | --- |
| `CONFIG_UFS_FAULT_INJECTION` | No | Injects the failure command for debugging. |
| `CONFIG_SCSI_UFSHCD` | Yes | Enables the UFS host control driver in the kernel. |
| `CONFIG_SCSI_UFSHCD_PLATFORM` | Yes | Supports the UFS controller from the platform bus. |
| `CONFIG_SCSI_UFS_QCOM` | Yes | Enables a Qualcomm-specific addition to access the PHY configuration and vendor-specific registers. |
| `CONFIG_PHY_QCOM_QMP` | Yes | Supports UFS QMP PHY driver. |
| `CONFIG_SCSI_UFS_BSG` | Yes | Enables UFS BSG device node. |
| `CONFIG_SCSI_UFS_CRYPTO` | Yes | Supports UFS crypto engine. |

### SD card kernel configuration

The following table lists the default values of kernel configuration that enables SD card functionality.

SDHC kernel configuration

| Configuration | Enabled (yes/no) | Description |
| --- | --- | --- |
| `CONFIG_MMC` | Yes | Enables MMC driver. |
| `CONFIG_MMC_DEBUG` | No | Enables driver debug messages. |
| `CONFIG_MMC_SDHCI` | Yes | Detects SDHCI driver. |
| `CONFIG_MMC_CQHCI` | Yes | Enables command queue host control interface. |
| `CONFIG_MMC_SDHCI_MSM` | Yes | Enables MSM SDHCI driver. |
| `CONFIG_MMC_BLOCK` | Yes | Enables MMC block driver. |

## Power management states

UFS and SD cards offer multiple power states to optimize power consumption.

### UFS power management states

You can modify these states as needed. However, altering the states can cause changes in power consumption.

Note

For more information on how to run SSH, see the [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html) section.

UFS power management states

| State | Description |
| --- | --- |
| Auto-hibern8 (AH8) | > <br>> <br>> <ul class="simple"><br>> <li><p>AH8 automatically transitions the PHY link to the Hibernate state after 150 ms of idle time. This value is adjustable.</p></li><br>> <li><p>To determine the AH8 idle duration value (in microseconds), run the following SSH command on the host computer.</p></li><br>> </ul><br><br><br><br>> <br>> <br>> cat /sys/devices/platform/soc@0/1d84000.ufs/auto_hibern8<br>>     Copy to clipboard<br><br><br><ul class="simple"><br><li><p>This value can be decreased to reduce power consumption.</p></li><br></ul> |
| Clock gating | > <br>> <br>> <ul class="simple"><br>> <li><p>When UFS clocks are scaled up to maximum frequency due to the use case, clocks are gated after 50 ms of idle duration.</p></li><br>> <li><p>If clocks are scaled down to optimal frequency, clocks are gated after 10 ms of idle duration. To check clock gating enabled/disabled status, run the following SSH command on the host computer.</p></li><br>> </ul><br><br><br><br>> <br>> <br>> cat /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br>>     Copy to clipboard<br><br><br><ul class="simple"><br><li><p>Clock gating is enabled by default.</p></li><br><li><p>To debug UFS issues related to clock gate or ungate and to disable the clock gating, run the following SSH command on the host computer.</p></li><br></ul><br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br>    Copy to clipboard |
| Clock scaling | > <br>> <br>> <ul class="simple"><br>> <li><p>After the UFS load exceeds the upthreshold value, the clock frequency is set to the maximum frequency with clock scale up.</p></li><br>> <li><p>Clock scale-down occurs when the load is lower than the threshold. The UFS operations determines the UFS load. To check the clock scaling status, run the following SSH command on the host computer.</p></li><br>> </ul><br><br><br><br>> <br>> <br>> cat /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br>>     Copy to clipboard<br><br><br><ul class="simple"><br><li><p>Clock scaling is enabled by default.</p></li><br><li><p>Disabling clock scaling can result in increased power consumption. To debug any issue related to clock scaling, run the following SSH command on the host computer.</p></li><br></ul><br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br>    Copy to clipboard |
| Runtime suspend or resume | <ul class="simple"><br><li><p>UFS enters the runtime suspend state after 3 seconds of inactivity.</p></li><br><li><p>Runtime resume state occurs with the next UFS operation. This state is enabled by default and is not configurable.</p></li><br></ul> |
| System suspend or resume | <ul class="simple"><br><li><p>UFS enters the system suspend with the suspend event.</p></li><br><li><p>UFS resume state occurs with the system resume event.</p></li><br><li><p>This state is enabled by default and is not configurable.</p></li><br></ul> |

### SD card power management states

SD card power management states

| State | Description |
| --- | --- |
| Runtime suspend or resume | <ul class="simple"><br><li><p>The SD card enters the runtime suspend state after 50 ms of inactivity.</p></li><br><li><p>Resume occurs with the next SD card operation. This state is enabled by default and is not configurable.</p></li><br></ul> |
| System suspend or resume | <ul class="simple"><br><li><p>The SD card enters system suspend state with the suspend event.</p></li><br><li><p>SD card system resume state occurs with the system resume event.</p></li><br><li><p>This state is enabled by default and is not configurable.</p></li><br></ul> |

## Boot loader and UEFI device tree

The device tree specifies the UFS host configuration parameters such as number of gears and lanes, rate value, and timeout values.

### UFS

The device tree is at `<workspace_root_path>\boot_images\boot\Settings\Soc\Kodiak\Core\Storage\UFS\ufs.dtsi`.

For QCS9075, see `<workspace_root_path>\boot_images\boot\Setting\soc\LeMans\Core\Storage\UFS\ufs.dtsi`.

The following is an example of the UFS device tree node in UEFI.

| Device tree node/key | Subnode | Device tree value | Description |
| --- | --- | --- | --- |
| `init_speed_params` | `EnableHighSpeed` | 1 | Enables high speed mode |
| `init_speed_params` | `NumGears` | 4 | Specifies the maximum gear to be used. |
| `init_speed_params` | `NumLanes` | 2 | Number of lanes used in UFS |
| `init_speed_params` | `Rate` | 2 | Values are:<br><br><ul class="simple"><br><li><p>1 = Rate A</p></li><br><li><p>2 = Rate B</p></li><br></ul> |
| `perf_speed_params` | `EnableHighSpeed` | 1 | Enables high speed mode while in perf mode |
| `perf_speed_params` | `NumGears` | 4 | Specifies the maximum gear to be used in perf mode |
| `perf_speed_params` | `NumLanes` | 2 | Number of lanes used in UFS in perf mode |
| `perf_speed_params` | `Rate` | 2 | Series in perf mode<br>- 1 = Rate A<br>- 2 = Rate B |
| `timeout_values` | `fDeviceInitTimeoutUs` | 2500000 | Denotes timeout (µs) during device init |
| `timeout_values` | `UTRDPollTimeoutUs` | 30000000 | Denotes timeout (µs) for UTRD |
| `BatteryThresholdMv` | – | 3600 | Battery threshold (in milli volts) to move to Gear1 |
| `LinkStartupRetryCount` | – | 5 | Retry count for Link startup |
| `FUA_Value` | – | 1 | Forced unit access |
| `EnableLogging` | – | 0 | Enables DT serial debug logging in loader<br>- 1 - Enable<br>- 0 - Disable |
| `RefClock` | – | 19200000 | UFS controller reference clock 19.2 MHz |
| `MphyInitTable` | – | – | Denotes MphyInit table |
| `MphyInitEndTable` | – | – | Denotes MphyInitEnd table |
| `MphyLaneInitTable` | – | – | Denotes Mphy 2 Lane Init table |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

Any change in the `.dtsi` must be compiled into `xbl_config.elf` and the image reflashed on to the device.

`MphyInitTable`, `MphyInitEndTable`, and `MphyLaneInitTable` are used for UFS PHY initialization and these values are tuned by Qualcomm. For debugging and tuning any PHY-level issue, these values should be changed with guidance from Qualcomm.

The default values are for UFS 3.1-compliant part. For UFS 2.x-compliant part, `NumGears` value should be 3. Other parameters need not be changed for UFS 2.x part.

### SD card

The device tree specifies the SD card parameters such as drive strength, maximum speed mode, and HSR settings. The device tree is at `<workspace_root_path>\boot_images\boot\Settings\Soc\Kodiak\Core\Storage\SDCC\sdcc.dtsi`.

The following is an example of the SD card device tree node in UEFI.

| Device tree node/key | Device tree value | Description |
| --- | --- | --- |
| `DriveStrength` | 0x1FE4 | `DriveStrength` as recommended, sets SDC CLK, CMD, and data drive strengths to 7, 4, 4, respectively. |
| `MaxSpeedMode` | `SDCC_SDR104_MODE` | Defines maximum speed mode. For SD card, the value is `SDCC_SDR104_MODE`. |

## Linux kernel device tree

The Linux kernel device tree nodes define properties used for storage.

### UFS

The SoC DTSI node specifies register address space, clocks, interrupts, and reset information. The platform DTSI node specifies power supply, voltage, and current levels.
The `Ufs_mem_hc` node that describes the on-chip UFS host controller is at `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi`.

For `Ufs_mem_hc` node in QCS9075, see `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sa8775p.dtsi`.

Note

These parameters are only for information purposes. Do not modify them.

| Property | Description |
| --- | --- |
| `Compatible` | For Qualcomm SoCs, must contain strings such as `qcom`, `ufshc`. |
| `Interrupts` | Interrupt mapping for UFS host controller IRQ. |
| `Reg` | UFS host registers address mapping. |
| `Phys` | `phandle` to UFS PHY node. |
| `lanes-per-direction` | Specify the number of lanes available per direction. Either 1 or 2. |
| `clock-names` | List of clock input name strings. |
| `Clocks` | List of `phandle` and clock specifier pairs. |
| `freq-table-hz` | Array of &lt;minimum maximum&gt; operating frequencies stored in the same order as the clocks property. |
| `reset-gpios` | A `phandle` and GPIO specifier denoting the GPIO that is connected. |
| `Resets` | Reset node register. |

The `Ufs_mem_phy` node describes on-chip UFS PHY hardware and this node is in `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi` file.

| Property | Description |
| --- | --- |
| `Compatible` | Specify compatible string such as `qcom`, `qmp-ufs-phy`. |
| `#phy-cells` | Set the property to 0. |
| `Reg` | Should contain PHY register address space. |
| `reg-names` | <ul class="simple"><br><li><p>Indicates various resources passed to driver (through the reg property) by name.</p></li><br><li><p>The required reg-names is <code class="docutils literal notranslate"><span class="pre">phy_mem</span></code>.</p></li><br></ul> |
| `lanes-per-direction` | Number of lanes available per direction; either 1 or 2. |
| `clock-names` | List of clock input name strings. |
| `clocks` | List of phandle and clock specifier pairs. |
| `vdda-phy-supply` | `phandle` to main PHY supply for analog domain. |
| `vdda-pll-supply` | `phandle` to PHY PLL and Power-Gen block power supply. |
| `Resets` | Specifies the PHY reset in the UFS controller. |

For more information on DTS parameters, see `/kernel_platform/msm-kernel/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml`.

### SD card

The SoC DTSI node specifies register address space, clocks, interrupts, and reset information. The platform DTSI node specifies power supply, voltage, and current levels.
`sdhc_2: mmc@8804000` node describes the on-chip SD host controller and this node is in the `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi` file.

Note

These parameters are only for information purposes. Do not modify them.

| Property | Description |
| --- | --- |
| `Compatible` | Specify compatible strings such as `qcom,sc7280-sdhci`, `qcom,sdhci-msm-v5`. |
| `Pinctrl-names` | Defines name of the pin control states. |
| `Pinctrl-0 &amp;1` | Points to pin control settings, this is an array defines pin  control settings for multiple states. |
| `Interrupts` | Interrupt mapping for SDHC IRQ. |
| `Interrupt-names` | Lists the names corresponding to each interrupt defined in the `interrupts` property. |
| `reg` | SDHC host registers address mapping. |
| `iommus` | `Iommus` specifies the IOMMU node and stream ID. |
| `clock-names` | List of clock input name strings. |
| `clocks` | List of phandle and clock specifier pairs. |
| `interconnects` | Define the interconnect paths for the device. |
| `interrupt-names` | Lists the names to each interconnect path defined in `interconnects` property. |
| `power-domains` | Specifies the power domain used by the SDHC. |
| `bus-width` | Specifies the number of data lines used for communication. |
| `dma-coherent` | Specifies that the SDHCI and CPU maintain cache coherency. |
| `qcom,dll-config` | Platform specific settings for `DLL_CONFIG` reg. |
| `resets` | Reset node register. |
| `sdhc2_opp_table` | This table defines various operating points supported by the SDHCI. |

## UFS provisioning

Creating and defining LUNs on a new UFS card is called Provisioning. A UFS device contains 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 versions are as follows:

- `provision_ufs22.xml` - This is for UFS 2.2 part
- `provision_ufs31.xml` - This is for UFS 3.1 part

In the UFS provision XML file, the UFS Device Descriptor is a section that contains 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:

&lt;ufsbNumberLU=”6” bBootEnable=”1” bDescrAccessEn=”0” bInitPowerMode=”1” bHighPriorityLUN=”0x5” bSecureRemovalType=”0”
bInitActiveICCLevel=”0” wPeriodicRTCUpdate=”0” bConfigDescrLock=”0” bWriteBoosterBufferPreserveUserSpaceEn=”1” bWriteBoosterBufferType=”1”
shared\_wb\_buffer\_size\_in\_kb=”4194304” /&gt;

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:

&lt;ufs LUNum=”0” bLUEnable=”1” bBootLunID=”0” size\_in\_kb=”4096” bDataReliability=”0” bLUWriteProtect=”0” bMemoryType=”0”
bLogicalBlockSize=”0x0c”bProvisioningType=”2” wContextCapabilities=”0”  wb\_buffer\_size\_in\_kb=”0”
desc=”LU 0 - User LUN - Rest of the device” /&gt;

The following table describes some important parameters used in the *provision XML* files.

UFS device parameters description

| Parameter | Description |
| --- | --- |
| `bNumberLU` | Number of Logical Units<br><br><br>`bNumberLU` does not include well-known logical units |
| `bBootEnable` | Indicates whether the device is enabled for boot:<br><ul class="simple"><br><li><p>00h: Boot feature disabled</p></li><br><li><p>01h: Bootable feature enabled</p></li><br></ul> |
| `bDescrAccessEn` | Indicates whether the Device Descriptor can be read after the partial initialization phase of the boot sequence:<br><ul class="simple"><br><li><p>00h: Device Descriptor access disabled</p></li><br><li><p>01h: Device Descriptor access enabled</p></li><br></ul> |
| `BInitPowerMode` | Defines the Power Mode after device initialization or hardware reset:<br><ul class="simple"><br><li><p>00h: UFS-Sleep Mode</p></li><br><li><p>01h: Active Mode</p></li><br></ul> |
| `bHighPriorityLUN` | Defines the high-priority logical unit |
| `bSecureRemovalType` | <ul class="simple"><br><li><p>00h: Information removed by an erase of the physical memory</p></li><br><li><p>01h: Information removed by overwriting the addressed locations with a single character followed by an erase</p></li><br><li><p>02h: Information removed by overwriting the addressed locations with a character, its complement, then a random character</p></li><br><li><p>03h: Information removed using a vendor-defined mechanism</p></li><br></ul> |
| `bConfigDescrLock` | <ul class="simple"><br><li><p>0h: Configuration Descriptor not locked</p></li><br><li><p>1h: Configuration Descriptor locked</p></li><br></ul> |

UFS reprovision is possible only if this device parameter, which is part of the provision xml file, is set: `bConfigDescrLock="0"`.

To prevent reprovisioning, set `bConfigDescrLock="1"` after the UFS configuration and provisioning is finalized.

UFS LUN parameters description

| Parameter | Description |
| --- | --- |
| `LUNum` | Logical Unit Number |
| `bLUEnable` | Enables/disables the logical unit:<br><ul class="simple"><br><li><p>00h: Disables the logical unit</p></li><br><li><p>01h: Enables the logical unit</p></li><br></ul> |
| `bBootLunID` | Boot LUN ID:<br><ul class="simple"><br><li><p>00h: Not bootable</p></li><br><li><p>01h: Boot LU A</p></li><br><li><p>02h: Boot LU B</p></li><br></ul> |
| `size_in_kb` | Specifies LUN size in KBs |
| `bLUWriteProtect` | Logical Unit Write Protect:<br><ul class="simple"><br><li><p>00h: LU is not write protected</p></li><br><li><p>01h: LU write protected when <code class="docutils literal notranslate"><span class="pre">fPowerOnWPEn</span> <span class="pre">=</span> <span class="pre">1</span></code></p></li><br></ul> |
| `bMemoryType` | Defines logical unit memory type:<br><ul class="simple"><br><li><p>00h: Normal memory</p></li><br><li><p>01h: System code memory type</p></li><br><li><p>02h: Non-Persistent memory type</p></li><br><li><p>03h: Enhanced memory type 1</p></li><br><li><p>04h: Enhanced memory type 2</p></li><br><li><p>05h: Enhanced memory type 3</p></li><br><li><p>06h: Enhanced memory type 4</p></li><br></ul> |
| `bProvisioningType` | Provisioning type<br><ul class="simple"><br><li><p>00h: Thin Provisioning is disabled</p></li><br><li><p>02h: Enables thin provisioning with <code class="docutils literal notranslate"><span class="pre">TPRZ</span> <span class="pre">=</span> <span class="pre">0</span></code></p></li><br></ul> |

## UFS partition layout

The default UFS 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.

![../../_images/ufs-provisioning-layout.png](data:image/png;base64,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)

**Default UFS layout**

Last Published: Dec 30, 2024

[Previous Topic
Features](https://docs.qualcomm.com/bundle/publicresource/80-70017-6/topics/features.md) [Next Topic
Customize](https://docs.qualcomm.com/bundle/publicresource/80-70017-6/topics/customize.md)

Source: [https://docs.qualcomm.com/doc/80-70017-6/topic/configuration.html](https://docs.qualcomm.com/doc/80-70017-6/topic/configuration.html)