# 配置

对 UFS 和 SD 卡功能使用以下存储配置和设备树参数：

## 内核配置

Qualcomm Linux 在内核编译中支持 UFS 内核配置和 SD 卡内核配置。

### UFS 内核配置

下表列出了启用 UFS 功能的内核配置的默认值。

UFS 内核配置

| 配置 | 启用（是/否） | 说明 |
| --- | --- | --- |
| `CONFIG_UFS_FAULT_INJECTION` | 否 | 注入失败命令以进行调试 |
| `CONFIG_SCSI_UFSHCD` | 是 | 在内核中启用 UFS 主机控制驱动程序 |
| `CONFIG_SCSI_UFSHCD_PLATFORM` | 是 | 支持来自平台总线的 UFS 控制器。 |
| `CONFIG_SCSI_UFS_QCOM` | 是 | 启用特定于 Qualcomm 的附加功能以访问 PHY 配置和特定于供应商的寄存器。 |
| `CONFIG_PHY_QCOM_QMP` | 是 | 支持 UFS QMP PHY 驱动程序 |
| `CONFIG_SCSI_UFS_BSG` | 是 | 启用 UFS BSG 设备节点 |
| `CONFIG_SCSI_UFS_CRYPTO` | 是 | 支持 UFS 加密引擎。 |

### SD 卡内核配置

下表列出了启用 SD 卡功能的内核配置的默认值：

SDHC 内核配置

| 配置 | 启用（是/否） | 说明 |
| --- | --- | --- |
| `CONFIG_MMC` | 是 | 启用 MMC 驱动程序 |
| `CONFIG_MMC_DEBUG` | 否 | 启用驱动程序调试消息 |
| `CONFIG_MMC_SDHCI` | 是 | 检测 SDHCI 驱动程序。 |
| `CONFIG_MMC_CQHCI` | 是 | 启用命令队列主机控制接口 |
| `CONFIG_MMC_SDHCI_MSM` | 是 | 启用 MSM SDHCI 驱动程序。 |
| `CONFIG_MMC_BLOCK` | 是 | 启用 MMC 块驱动程序 |

## 电源管理状态

UFS 和 SD 卡提供多种电源状态以优化功耗。

### UFS 电源管理状态

用户可以根据需要修改这些状态​​。然而，改变状态可能会导致功耗发生变化。

Note

有关如何运行 SSH 的详细信息，请参阅[使用 SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html) 部分。

UFS 电源管理状态

| 状态 | 说明 |
| --- | --- |
| Auto-hibern8 (AH8) | > <br>> <br>> <ul class="simple"><br>> <li><p>AH8 在 150 ms 空闲时间后自动将 PHY 链路转换为休眠状态。该值是可调的。</p></li><br>> <li><p>要确定 AH8 空闲持续时间值（以微秒为单位），请在主机上运行以下 SSH 命令。</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>可以减小此值以降低功耗。</p></li><br></ul> |
| 时钟门控 | > <br>> <br>> <ul class="simple"><br>> <li><p>当 UFS 时钟由于用例而增加到最大频率时，时钟门控会在 50 ms 的空闲时间后进行。</p></li><br>> <li><p>如果时钟降低到最佳频率，时钟门控会在 10 ms 的空闲时间后进行。要检查时钟门控的启用/禁用状态，在主机计算机上运行以下 SSH 命令：</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>默认情况下启用时钟门控。</p></li><br><li><p>要调试与时钟门控或解控相关的 UFS 问题并禁用时钟门控，请在主机上运行以下 SSH 命令。</p></li><br></ul><br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkgate_enable<br>    Copy to clipboard |
| 时钟缩放 | > <br>> <br>> <ul class="simple"><br>> <li><p>在 UFS 负载超过上阈值时，时钟频率设置为时钟增加后的最大频率。</p></li><br>> <li><p>当负载低于阈值时，会发生时钟降低。UFS 操作决定了 UFS 负载。要检查时钟缩放状态，请在主机上运行以下 SSH 命令。</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>默认情况下启用时钟缩放。</p></li><br><li><p>禁用时钟缩放可能会导致功耗增加。请在主机上运行以下 SSH 命令，以便调试与时钟缩放相关的任何问题。</p></li><br></ul><br><br><br>echo 0 > /sys/devices/platform/soc@0/1d84000.ufs/clkscale_enable<br>    Copy to clipboard |
| 运行时暂停或恢复 | <ul class="simple"><br><li><p>3s 不活动后，UFS 将进入 runtime suspend 状态。</p></li><br><li><p>Runtime resume 状态在下一个 UFS 操作时发生。该状态默认启用且不可配置。</p></li><br></ul> |
| 系统 suspend 或 resume | <ul class="simple"><br><li><p>UFS 通过 suspend 事件进入系统 suspend 状态。</p></li><br><li><p>UFS resume 状态随系统 resume 事件发生。</p></li><br><li><p>该状态默认启用且不可配置。</p></li><br></ul> |

### SD 卡电源管理状态

SD 卡电源管理状态

| 状态 | 说明 |
| --- | --- |
| Runtime suspend 或 resume | <ul class="simple"><br><li><p>SD 卡在 50 ms 不活动后进入 runtime suspend 状态。</p></li><br><li><p>下一次 SD 卡操作时会 resume。该状态默认启用且不可配置。</p></li><br></ul> |
| 系统 suspend 或 resume | <ul class="simple"><br><li><p>SD 卡通过 suspend 事件进入系统 suspend 状态。</p></li><br><li><p>SD 卡系统 resume 状态随系统 resume 事件发生。</p></li><br><li><p>该状态默认启用且不可配置。</p></li><br></ul> |

## Boot loader 和 UEFI 设备树

设备树指定 UFS 主机配置参数，例如档位数、通道数、速率值和超时值。

### UFS

设备树位于 `<workspace_root_path>\boot_images\boot\Settings\Soc\Kodiak\Core\Storage\UFS\ufs.dtsi`。

对于 QCS9075，参见 `<workspace_root_path>\boot_images\boot\Setting\soc\LeMans\Core\Storage\UFS\ufs.dtsi`。

以下是 UEFI 中 UFS 设备树节点的示例。

| 设备树节点/键 | 子节点 | 设备树值 | 说明 |
| --- | --- | --- | --- |
| `init_speed_params` | `EnableHighSpeed` | 1 | 启用高速模式 |
| `init_speed_params` | `NumGears` | 4 | 指定要使用的最大档位。 |
| `init_speed_params` | `NumLanes` | 2 | UFS 中使用的通道数 |
| `init_speed_params` | `Rate` | 2 | 其值如下：<br><br><ul class="simple"><br><li><p>1 = 速率 A</p></li><br><li><p>2 = 速率 B</p></li><br></ul> |
| `perf_speed_params` | `EnableHighSpeed` | 1 | 在 perf 模式下启用高速模式 |
| `perf_speed_params` | `NumGears` | 4 | 指定在 perf 模式下使用的最大档位 |
| `perf_speed_params` | `NumLanes` | 2 | 在 perf 模式下 UFS 使用的通道数 |
| `perf_speed_params` | `Rate` | 2 | 在 perf 模式下的序列<br>- 1 = 速率 A<br>- 2 = 速率 B |
| `timeout_values` | `fDeviceInitTimeoutUs` | 2500000 | 表示设备初始化期间的超时 (µs) |
| `timeout_values` | `UTRDPollTimeoutUs` | 30000000 | 表示 UTRD 的超时 (μs) |
| `BatteryThresholdMv` | – | 3600 | 移至 1 档的电池阈值（单位为 mV） |
| `LinkStartupRetryCount` | – | 5 | 链路启动的重试计数 |
| `FUA_Value` | – | 1 | 强制单位访问 |
| `EnableLogging` | – | 0 | 在加载程序中启用 DT 串行调试日志<br>- 1 - 启用<br>- 0 - 禁用 |
| `RefClock` | – | 19200000 | UFS 控制器参考时钟 19.2 MHz |
| `MphyInitTable` | – | – | 表示 MphyInit 表 |
| `MphyInitEndTable` | – | – | 表示 MphyInitEnd 表 |
| `MphyLaneInitTable` | – | – | 表示 Mphy 2 通道初始化表 |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

`.dtsi` 中的任何更改均须编译至 `xbl_config.elf` 中，并将镜像重新刷写至设备上。

`MphyInitTable`、 `MphyInitEndTable` 和 `MphyLaneInitTable` 均用于 UFS PHY 初始化，且这些值由 Qualcomm 调整。应在 Qualcomm 的指导下更改这些值，调试并调整任何 PHY 级问题。

默认值适用于符合 UFS 3.1 标准的部件。对于符合 UFS 2.x 标准的部件，`NumGears` 值应为 3。对于 UFS 2.x 部件，其他参数不需要更改。

### SD 卡

设备树指定了 SD 卡参数，例如驱动强度、最大速度模式和 HSR 设置等。设备树位于 `<workspace_root_path>\boot_images\boot\Settings\Soc\Kodiak\Core\Storage\SDCC\sdcc.dtsi`。

以下是 UEFI 中 SD 卡设备树节点的示例。

| 设备树节点/键 | 设备树值 | 说明 |
| --- | --- | --- |
| `DriveStrength` | 0x1FE4 | `DriveStrength` 按照建议，将 SDC CLK、CMD 和数据驱动强度分别设置为 7、4、4。 |
| `MaxSpeedMode` | `SDCC_SDR104_MODE` | 定义最大速度模式。关于 SD 卡，值为 `SDCC_SDR104_MODE`。 |

## Linux 内核设备树

Linux 内核设备树节点定义用于存储的属性。

### UFS

SoC DTSI 节点指定寄存器地址空间、时钟、中断和复位信息。平台 DTSI 节点指定电源、电压和电流水平。描述片上 UFS 主控制器的 `Ufs_mem_hc` 节点位于 `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi`。

关于 QCS9075 中的 `Ufs_mem_hc` 节点，请参阅 `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sa8775p.dtsi`。

Note

这些参数仅供参考。不要对它们进行修改。

| 属性 | 说明 |
| --- | --- |
| `Compatible` | 对于 Qualcomm SoC，必须包含 `qcom`、 `ufshc` 等字符串。 |
| `Interrupts` | UFS 主控制器 IRQ 的中断映射 |
| `Reg` | UFS 主机寄存器地址映射 |
| `Phys` | 指向 UFS PHY 节点的 `phandle`。 |
| `lanes-per-direction` | 指定每个方向可用的通道数。1 或 2。 |
| `clock-names` | 时钟输入名称字符串列表 |
| `Clocks` | `phandle` 和时钟说明符对列表 |
| `freq-table-hz` | 以与时钟属性相同的顺序存储的&lt;最小值 最大值&gt;工作频率数据组。 |
| `reset-gpios` | `phandle` 和 GPIO 说明符，表示连接的 GPIO |
| `Resets` | 复位节点寄存器 |

`Ufs_mem_phy` 节点描述片上 UFS PHY 硬件，此节点位于 `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi` 文件中。

| 属性 | 说明 |
| --- | --- |
| `Compatible` | 详细说明兼容的字符串，例如 `qcom`、`qmp-ufs-phy`。 |
| `#phy-cells` | 将属性设置为 0。 |
| `Reg` | 应包含 PHY 寄存器地址空间 |
| `reg-names` | <ul class="simple"><br><li><p>表示通过名称（通过 reg 属性）传递给驱动程序的各种资源。</p></li><br><li><p>所需的注册表名称是 <code class="docutils literal notranslate"><span class="pre">phy_mem</span></code>。</p></li><br></ul> |
| `lanes-per-direction` | 每个方向可用的通道数；1 或 2。 |
| `clock-names` | 时钟输入名称字符串列表 |
| `clocks` | Phandle 和时钟说明符对列表 |
| `vdda-phy-supply` | 指向模拟域主 PHY 电源的 `phandle`。 |
| `vdda-pll-supply` | 指向 PHY PLL 和 Power-Gen 模块电源的 `phandle`。 |
| `Resets` | 指定 UFS 控制器中的 PHY 复位 |

有关 DTS 参数的更多信息，可访问 `/kernel_platform/msm-kernel/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml`。

### SD 卡

SoC DTSI 节点指定寄存器地址空间、时钟、中断和复位信息。平台 DTSI 节点指定电源、电压和电流水平。`sdhc_2: mmc@8804000` 节点描述了片上 SD 主机控制器，该节点位于 `<workspace_root_path>/sources/kernel/kernel_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi` 文件中。

Note

这些参数仅供参考。不要对它们进行修改。

| 属性 | 说明 |
| --- | --- |
| `Compatible` | 详细说明兼容的字符串，例如 `qcom,sc7280-sdhci`、`qcom,sdhci-msm-v5`。 |
| `Pinctrl-names` | 定义引脚控制状态的名称。 |
| `Pinctrl-0 &amp;1` | 指向引脚控制设置，这是一个定义多个状态的引脚控制设置的数组。 |
| `Interrupts` | SDHC IRQ 的中断映射。 |
| `Interrupt-names` | 列出在 `interrupts` 属性中定义的每个中断对应的名称。 |
| `reg` | SDHC 主机寄存器地址映射。 |
| `iommus` | `Iommus` 指定 IOMMU 节点和流 ID。 |
| `clock-names` | 时钟输入名称字符串列表 |
| `clocks` | Phandle 和时钟说明符对列表 |
| `interconnects` | 定义设备的互连路径。 |
| `interrupt-names` | 列出在 `interconnects` 属性中定义的每个互连路径的名称 |
| `power-domains` | 指定 SDHC 使用的电源域 |
| `bus-width` | 指定用于通信的数据线数量 |
| `dma-coherent` | 指定 SDHCI 和 CPU 保持缓存一致性。 |
| `qcom,dll-config` | `DLL_CONFIG` reg 的平台特定设置 |
| `resets` | 复位节点寄存器 |
| `sdhc2_opp_table` | 该表定义了 SDHCI 支持的各种工作点。 |

## UFS provisioning

在新的 UFS 卡上创建和定义 LUN 称为 Provisioning。一个 UFS 设备包含一个或多个逻辑单元。逻辑单元是设备内独立的处理实体。每个逻辑单元在 UFS 设备中都有一个地址，称为逻辑单元号 (LUN)。

用于 provisioning 的配置文件位于 `<build root\common\config\ufs\provision`。

各种 UFS 版本的 provision XML 文件如下：

- `provision_ufs22.xml` - 面向 UFS 2.2 部件
- `provision_ufs31.xml` - 面向 UFS 3.1 部件

在 UFS provision XML 文件中，UFS 设备描述符是包含正在 provision 的 UFS 设备的基本信息的部分。设备描述符包括 LUN 数量、初始电源模式、写入增强参数等详细信息。以下是设备描述符条示例：

&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;

Provision XML 文件还使用单元描述参数来描述每个 LUN，例如逻辑单元启用、启动 LUN ID 等。以下所示为 LUN 描述符条目示例：

&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;

下表描述了 *provision XML* 文件中使用的一些重要参数。

UFS 设备参数说明

| 参数 | 说明 |
| --- | --- |
| `bNumberLU` | 逻辑单元数<br><br><br>`bNumberLU` 不包括 well-known 逻辑单元。 |
| `bBootEnable` | 指示设备是否启用了启动功能：<br><ul class="simple"><br><li><p>00h：启动功能已禁用</p></li><br><li><p>01h：可启动功能已启用</p></li><br></ul> |
| `bDescrAccessEn` | 指示在启动序列的部分初始化阶段之后是否可以读取设备描述符：<br><ul class="simple"><br><li><p>00h：设备描述符访问已禁用</p></li><br><li><p>01h：设备描述符访问已启用</p></li><br></ul> |
| `BInitPowerMode` | 定义设备初始化或硬件复位后的电源模式：<br><ul class="simple"><br><li><p>00h：UFS-休眠模式</p></li><br><li><p>01h：活动模式</p></li><br></ul> |
| `bHighPriorityLUN` | 定义高优先级逻辑单元 |
| `bSecureRemovalType` | <ul class="simple"><br><li><p>00h: 信息已通过擦除物理内存删除</p></li><br><li><p>01h: 信息通过用单个字符替换指定位置然后进行擦除的方式删除</p></li><br><li><p>02h: 信息通过用一个字符、其补码以及一个随机字符替换指定位置的方式删除</p></li><br><li><p>03h：使用供应商定义的机制删除信息</p></li><br></ul> |
| `bConfigDescrLock` | <ul class="simple"><br><li><p>0h：配置描述符未锁定</p></li><br><li><p>1h：配置描述符已锁定</p></li><br></ul> |

仅当设置了此设备参数（属于配置 xml 文件的一部分）：`bConfigDescrLock="0"` 时，才可以进行 UFS reprovision。

为了防止 reprovisioning，请在 UFS 配置和 provisioning 完成后设置 `bConfigDescrLock="1"`。

UFS LUN 参数说明

| 参数 | 说明 |
| --- | --- |
| `LUNum` | 逻辑单元号 |
| `bLUEnable` | 启用/禁用逻辑单元：<br><ul class="simple"><br><li><p>00h：禁用逻辑单元</p></li><br><li><p>01h：启用逻辑单元</p></li><br></ul> |
| `bBootLunID` | 启动 LUN ID：<br><ul class="simple"><br><li><p>00h：不可启动</p></li><br><li><p>01h：启动 LU A</p></li><br><li><p>02h：启动 LU B</p></li><br></ul> |
| `size_in_kb` | 指定 LUN 大小（单位为 KB） |
| `bLUWriteProtect` | 逻辑单元写保护：<br><ul class="simple"><br><li><p>00h：LU 未写保护</p></li><br><li><p>01h：当 <code class="docutils literal notranslate"><span class="pre">fPowerOnWPEn</span> <span class="pre">=</span> <span class="pre">1</span></code> 时，LU 写保护</p></li><br></ul> |
| `bMemoryType` | 定义逻辑单元内存类型：<br><ul class="simple"><br><li><p>00h：正常内存</p></li><br><li><p>01h：系统代码内存类型</p></li><br><li><p>02h：非持久内存类型</p></li><br><li><p>03h：增强型内存类型 1</p></li><br><li><p>04h：增强型内存类型 2</p></li><br><li><p>05h：增强型内存类型 3</p></li><br><li><p>06h：增强型内存类型 4</p></li><br></ul> |
| `bProvisioningType` | Provisioning 类型<br><ul class="simple"><br><li><p>00h：Thin Provisioning 已禁用</p></li><br><li><p>02h：启用 <code class="docutils literal notranslate"><span class="pre">TPRZ</span> <span class="pre">=</span> <span class="pre">0</span></code> 的 Thin Provisioning</p></li><br></ul> |

## 通用闪存存储分区布局

默认 UFS provisioning 创建八个 LUN（LUN0 到 LUN7）。

- Linux 数据和所有 Linux 文件系统映像都存储在 LUN0 中。
- 为了给 XBL 提供故障安全备份，启动 well-known LUN (WLUN) 0xB0 在 LUN1 和 LUN2 之间交替。
- 启动链的其余部分存储在 LUN4 中。
- LUN6 和 LUN7 默认未使用。

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

**默认 UFS 布局**

Last Published: Jan 23, 2025

[Previous Topic
功能](https://docs.qualcomm.com/bundle/publicresource/80-70017-6SC/topics/features.md) [Next Topic
定制](https://docs.qualcomm.com/bundle/publicresource/80-70017-6SC/topics/customize.md)

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