Skip to content

Commit 8961efd

Browse files
committed
feat(linux): AM62P: Document eMMC HS400 support
eMMC HS400 mode is only supported on AM62p SR1.2, all other silicon revisions only support up to eMMC HS200 mode. Document this in build sheet and u-boot/Linux driver documentation. Signed-off-by: Judith Mendez <[email protected]>
1 parent 6194e0d commit 8961efd

File tree

3 files changed

+86
-75
lines changed

3 files changed

+86
-75
lines changed

source/devices/AM62PX/linux/Release_Specific_Build_Sheet.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ The support status is indicated by the following codes:
123123
,,etc.,No,No,No
124124
,Error Location Module (ELM),,Yes,No,No
125125
,Multimedia Card Secure Digital (MMCSD) Interface,SD Card,Yes,No,Yes
126-
,,eMMC,Yes,No,Yes
126+
,,eMMC,Yes,Yes,Yes
127+
,,eMMC HS400 mode,Yes (SR1.2 only),Yes,Yes
127128
Industrial & Control Interfaces,Controller Area Network (MCAN) - MAIN domain,CAN,Yes,No,Yes
128129
,,CAN FD,Yes,No,Yes
129130
,Controller Area Network (MCAN) - MCU domain,CAN,Yes,Yes,No

source/linux/Foundational_Components/Kernel/Kernel_Drivers/Storage/MMC-SD.rst

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ Features
7272
The MMCSD driver supports the following features:
7373

7474
- Support ADMA for DMA transfers
75-
- HS200 speed mode
75+
- HS400 speed mode (SR1.2)
76+
- HS200 speed mode (SR1.1)
7677
- Support for both built-in and module mode
7778
- ext2/ext3/ext4 file system support
7879

@@ -222,7 +223,8 @@ Supported ultra high speed (UHS) modes
222223
AM62*, Y, Y, N
223224
AM62ax, Y, Y, N
224225
am64x, Y, Y, N
225-
am62px, Y, Y, N
226+
am62px SR1.1, Y, Y, N
227+
am62px SR1.2, Y, Y, Y
226228
am62lx, Y, Y, N
227229

228230
Driver configuration
@@ -365,32 +367,36 @@ MMC support in Linux
365367

366368
**eMMC HS400 support**
367369

368-
For 11.0 and 11.1 SDK, am62px device does not support eMMC HS400 mode due to errata `i2458 <https://www.ti.com/lit/pdf/sprz574>`__.
369-
If support for HS400 is required, please add the following to k3-am62p-j722s-common-main.dtsi:
370-
371-
.. code-block:: diff
372-
373-
diff --git a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
374-
index 3e5ca8a3eb86..a05b22a6e5a2 100644
375-
--- a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
376-
+++ b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
377-
@@ -593,12 +593,16 @@ sdhci0: mmc@fa10000 {
378-
bus-width = <8>;
379-
mmc-ddr-1_8v;
380-
mmc-hs200-1_8v;
381-
+ mmc-hs400-1_8v;
382-
ti,clkbuf-sel = <0x7>;
383-
ti,trm-icp = <0x8>;
384-
+ ti,strobe-sel = <0x55>;
385-
ti,otap-del-sel-legacy = <0x1>;
386-
ti,otap-del-sel-mmc-hs = <0x1>;
387-
ti,otap-del-sel-ddr52 = <0x6>;
388-
ti,otap-del-sel-hs200 = <0x8>;
389-
+ ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE
390-
+ //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE
391-
ti,itap-del-sel-legacy = <0x10>;
392-
ti,itap-del-sel-mmc-hs = <0xa>;
393-
ti,itap-del-sel-ddr52 = <0x3>;
370+
- For 11.1.1 SDK, only am62px SR1.2 supports eMMC HS400 mode, all previous silicon revisions
371+
only support up to eMMC HS200 mode. Logic to determine eMMC mode is abstracted away in host
372+
driver and depends on silicon revision parsing.
373+
374+
- For 11.0 and 11.1 SDK, am62px device does not support eMMC HS400 mode due to errata `i2458 <https://www.ti.com/lit/pdf/sprz574>`__.
375+
If support for HS400 is required, please add the following to k3-am62p-j722s-common-main.dtsi:
376+
377+
.. code-block:: diff
378+
379+
diff --git a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
380+
index 3e5ca8a3eb86..a05b22a6e5a2 100644
381+
--- a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
382+
+++ b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
383+
@@ -593,12 +593,16 @@ sdhci0: mmc@fa10000 {
384+
bus-width = <8>;
385+
mmc-ddr-1_8v;
386+
mmc-hs200-1_8v;
387+
+ mmc-hs400-1_8v;
388+
ti,clkbuf-sel = <0x7>;
389+
ti,trm-icp = <0x8>;
390+
+ ti,strobe-sel = <0x55>;
391+
ti,otap-del-sel-legacy = <0x1>;
392+
ti,otap-del-sel-mmc-hs = <0x1>;
393+
ti,otap-del-sel-ddr52 = <0x6>;
394+
ti,otap-del-sel-hs200 = <0x8>;
395+
+ ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE
396+
+ //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE
397+
ti,itap-del-sel-legacy = <0x10>;
398+
ti,itap-del-sel-mmc-hs = <0xa>;
399+
ti,itap-del-sel-ddr52 = <0x3>;
394400
395401
.. ifconfig:: CONFIG_part_family in ('AM62X_family')
396402

source/linux/Foundational_Components/U-Boot/UG-Memory-K3.rst

Lines changed: 50 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -681,52 +681,56 @@ MMC support in u-boot
681681

682682
**eMMC HS400 support**
683683

684-
For 11.0 and 11.1 SDK, am62px device does not support eMMC HS400 mode due to errata `i2458 <https://www.ti.com/lit/pdf/sprz574>`__.
685-
If support for HS400 is required, add the following to k3-am62p-j722s-common-main.dtsi:
686-
687-
.. code-block:: diff
688-
689-
diff --git a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
690-
index 8bfc6539b2a..8a536b081e1 100644
691-
--- a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
692-
+++ b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
693-
@@ -593,12 +593,16 @@
694-
bus-width = <8>;
695-
mmc-ddr-1_8v;
696-
mmc-hs200-1_8v;
697-
+ mmc-hs400-1_8v;
698-
ti,clkbuf-sel = <0x7>;
699-
+ ti,strobe-sel = <0x55>;
700-
ti,trm-icp = <0x8>;
701-
ti,otap-del-sel-legacy = <0x1>;
702-
ti,otap-del-sel-mmc-hs = <0x1>;
703-
ti,otap-del-sel-ddr52 = <0x6>;
704-
ti,otap-del-sel-hs200 = <0x8>;
705-
+ ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE
706-
+ //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE
707-
ti,itap-del-sel-legacy = <0x10>;
708-
ti,itap-del-sel-mmc-hs = <0xa>;
709-
ti,itap-del-sel-ddr52 = <0x3>;
710-
711-
and enable the following config options:
712-
713-
.. code-block:: diff
714-
715-
diff --git a/configs/am62px_evm_a53_defconfig b/configs/am62px_evm_a53_defconfig
716-
index 09a91248ce6..f95879f41c9 100644
717-
--- a/configs/am62px_evm_a53_defconfig
718-
+++ b/configs/am62px_evm_a53_defconfig
719-
@@ -114,8 +114,8 @@ CONFIG_MMC_IO_VOLTAGE=y
720-
CONFIG_SPL_MMC_IO_VOLTAGE=y
721-
CONFIG_MMC_UHS_SUPPORT=y
722-
CONFIG_SPL_MMC_UHS_SUPPORT=y
723-
-CONFIG_MMC_HS200_SUPPORT=y
724-
-CONFIG_SPL_MMC_HS200_SUPPORT=y
725-
+CONFIG_MMC_HS400_SUPPORT=y
726-
+CONFIG_SPL_MMC_HS400_SUPPORT=y
727-
CONFIG_MMC_SDHCI=y
728-
CONFIG_MMC_SDHCI_ADMA=y
729-
CONFIG_SPL_MMC_SDHCI_ADMA=y
684+
- For 11.1.1 SDK, only am62px SR1.2 supports eMMC HS400 mode, all previous silicon revisions
685+
only support up to eMMC HS200 mode. Logic to determine eMMC mode is abstracted away in host
686+
driver and depends on silicon revision parsing.
687+
688+
- For 11.0 and 11.1 SDK, am62px device does not support eMMC HS400 mode due to errata `i2458 <https://www.ti.com/lit/pdf/sprz574>`__.
689+
If support for HS400 is required, add the following to k3-am62p-j722s-common-main.dtsi:
690+
691+
.. code-block:: diff
692+
693+
diff --git a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
694+
index 8bfc6539b2a..8a536b081e1 100644
695+
--- a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
696+
+++ b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
697+
@@ -593,12 +593,16 @@
698+
bus-width = <8>;
699+
mmc-ddr-1_8v;
700+
mmc-hs200-1_8v;
701+
+ mmc-hs400-1_8v;
702+
ti,clkbuf-sel = <0x7>;
703+
+ ti,strobe-sel = <0x55>;
704+
ti,trm-icp = <0x8>;
705+
ti,otap-del-sel-legacy = <0x1>;
706+
ti,otap-del-sel-mmc-hs = <0x1>;
707+
ti,otap-del-sel-ddr52 = <0x6>;
708+
ti,otap-del-sel-hs200 = <0x8>;
709+
+ ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE
710+
+ //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE
711+
ti,itap-del-sel-legacy = <0x10>;
712+
ti,itap-del-sel-mmc-hs = <0xa>;
713+
ti,itap-del-sel-ddr52 = <0x3>;
714+
715+
and enable the following config options:
716+
717+
.. code-block:: diff
718+
719+
diff --git a/configs/am62px_evm_a53_defconfig b/configs/am62px_evm_a53_defconfig
720+
index 09a91248ce6..f95879f41c9 100644
721+
--- a/configs/am62px_evm_a53_defconfig
722+
+++ b/configs/am62px_evm_a53_defconfig
723+
@@ -114,8 +114,8 @@ CONFIG_MMC_IO_VOLTAGE=y
724+
CONFIG_SPL_MMC_IO_VOLTAGE=y
725+
CONFIG_MMC_UHS_SUPPORT=y
726+
CONFIG_SPL_MMC_UHS_SUPPORT=y
727+
-CONFIG_MMC_HS200_SUPPORT=y
728+
-CONFIG_SPL_MMC_HS200_SUPPORT=y
729+
+CONFIG_MMC_HS400_SUPPORT=y
730+
+CONFIG_SPL_MMC_HS400_SUPPORT=y
731+
CONFIG_MMC_SDHCI=y
732+
CONFIG_MMC_SDHCI_ADMA=y
733+
CONFIG_SPL_MMC_SDHCI_ADMA=y
730734
731735
.. ifconfig:: CONFIG_part_family in ('AM62X_family')
732736

0 commit comments

Comments
 (0)