Storage Device Configuration¶
The Storage Device configuration file contains the platform-specific settings for storage devices in the MB1/MB2 stages.
The DTS configuration file is in the following form:
/ {
   device {
    <storage_device>@instance-# {
       <parameter> = <value>;
    };
   };
};
where:
- <storage-device>is the storage device controller (qspiflash / ufs / sdmmc / sata)
- <instance-#>is the instance of the storage controller
- <parameter>is controller specific parameter as shown below.
QSPI Flash Parameters¶
| Parameter | Description | 
|---|---|
| 
 | QSPI controller clock source: 
 | 
| 
 | Frequency of the clock source in Hz. | 
| 
 | QSPI controller frequency in Hz. | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | Number of dummy cycles as per the QSPI flash. | 
| 
 | TX trimmer value | 
| 
 | RX trimmer value | 
SDMMC Parameters¶
| Parameter | Description | 
|---|---|
| clock-source-id | 
 | 
| 
 | Frequency of the clock source in Hz. | 
| 
 | 
 | 
| 
 | Pull-down offset | 
| 
 | Pull-up offset | 
| 
 | Enable the HS400 strobe. | 
| 
 | HS DQS trim value | 
UFS Parameters¶
| Parameter | Description | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | Maximum number of UFS lanes (1-2) | 
| 
 | Alignment of pages that are used for UFS data structures in bytes. | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
SATA Parameters¶
| Parameter | Description | 
|---|---|
| transfer-speed | 
 | 
The storage device configuration file are kept in the hardware/nvidia/platform/t23x/<platform>/bct/ directory.
The new DTS format example of the storage device configuration file:
/dts-v1/;
#include <define.h>
/ {
   device {
       qspiflash@0 {
           clock-source-id = <PLLC_MUXED>;
           clock-source-frequency = <13000000>;
           interface-frequency = <13000000>;
           enable-ddr-mode;
           maximum-bus-width = <QSPI_4_LANE>;
           fifo-access-mode = <DMA_MODE>;
           read-dummy-cycle = <8>;
           trimmer1-val = <0>;
           trimmer2-val = <0>;
       };
       sdmmc@3 {
           clock-source-id = <PLLC4_OUT2>;
           clock-source-frequency = <52000000>;
           best-mode = <HS400>;
           pd-offset = <0>;
           pu-offset = <0>;
           //enable-strobe-hs400; This property is not there means it is disabled dqs-trim-hs400 = <0>;
      };
      ufs@0 {
          max-hs-mode = <HS_GEAR_3>;
          max-pwm-mode = <PWM_GEAR_4>;
          max-active-lanes = <2>;
          page-align-size = <4096>;
          enable-hs-mode;
          //enable-fast-auto-mode; enable-hs-rate-b;
          //enable-hs-rate-a = <0>; init-state = <0>;
      };
   }
};
Here is the previous CFG format:
// QSPI flash 0
device.qspiflash.0.clock-source-id = 6;
device.qspiflash.0.clock-source-frequency = 13000000; device.qspiflash.0.interface-frequency = 13000000; device.qspiflash.0.enable-ddr-mode = 0;
device.qspiflash.0.maximum-bus-width = 2;
device.qspiflash.0.fifo-access-mode = 1;
device.qspiflash.0.read-dummy-cycle = 8;
device.qspiflash.0.trimmer1-val = 0;
device.qspiflash.0.trimmer2-val = 0;
// Sdmmc 3
device.sdmmc.3.clock-source-id = 3; //PLLP_OUT0 device.sdmmc.3.clock-source-frequency = 52000000; device.sdmmc.3.best-mode = 3; //1=DDR52, 3=HS400 device.sdmmc.3.pd-offset = 0;
device.sdmmc.3.pu-offset = 0;
device.sdmmc.3.enable-strobe-hs400 = 0;
device.sdmmc.3.dqs-trim-hs400 = 0;
// Ufs 0
device.ufs.0.max-hs-mode = 3;
device.ufs.0.max-pwm-mode = 4;
device.ufs.0.max-active-lanes = 2;
device.ufs.0.page-align-size = 4096;
device.ufs.0.enable-hs-mode = 1;
device.ufs.0.enable-fast-auto-mode = 0;
device.ufs.0.enable-hs-rate-b = 1;
device.ufs.0.enable-hs-rate-a = 0;
device.ufs.0.init-state = 0;