|
1 | 1 | SD, eMMC and USB |
2 | 2 | ################ |
3 | 3 |
|
| 4 | +.. ifconfig:: CONFIG_part_family in ('AM62X_family', 'AM62PX_family') |
| 5 | + |
| 6 | + .. warning:: |
| 7 | + |
| 8 | + There is important information on MMC support for |__PART_FAMILY_DEVICE_NAMES__| device, go |
| 9 | + :ref:`here <uboot-mmc-support>` for more information. |
| 10 | + |
4 | 11 | The following guide shows how to flash and boot from storage media like the |
5 | 12 | embedded multimedia card (eMMC), secure digital (SD) card, and USB storage |
6 | 13 | devices. While this is a step-by-step guide, it is in no way extensive and |
@@ -661,6 +668,121 @@ Boot Linux from USB storage |
661 | 668 |
|
662 | 669 | => run usbboot |
663 | 670 |
|
| 671 | +| |
| 672 | +
|
| 673 | +.. _uboot-mmc-support: |
| 674 | + |
| 675 | +MMC support in u-boot |
| 676 | +===================== |
| 677 | + |
| 678 | +.. ifconfig:: CONFIG_part_family in ('AM62PX_family') |
| 679 | + |
| 680 | + **eMMC HS400 support** |
| 681 | + |
| 682 | + For 11.1 SDK, am62px device does not support eMMC HS400 mode due to errata `i2458 <https://www.ti.com/lit/pdf/sprz574>`__. |
| 683 | + If support for HS400 is required, please add the following to k3-am62p-j722s-common-main.dtsi: |
| 684 | + |
| 685 | + .. code-block:: diff |
| 686 | +
|
| 687 | + 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 |
| 688 | + index 8bfc6539b2a..8a536b081e1 100644 |
| 689 | + --- a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi |
| 690 | + +++ b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi |
| 691 | + @@ -593,12 +593,16 @@ |
| 692 | + bus-width = <8>; |
| 693 | + mmc-ddr-1_8v; |
| 694 | + mmc-hs200-1_8v; |
| 695 | + + mmc-hs400-1_8v; |
| 696 | + ti,clkbuf-sel = <0x7>; |
| 697 | + + ti,strobe-sel = <0x55>; |
| 698 | + ti,trm-icp = <0x8>; |
| 699 | + ti,otap-del-sel-legacy = <0x1>; |
| 700 | + ti,otap-del-sel-mmc-hs = <0x1>; |
| 701 | + ti,otap-del-sel-ddr52 = <0x6>; |
| 702 | + ti,otap-del-sel-hs200 = <0x8>; |
| 703 | + + ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE |
| 704 | + + //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE |
| 705 | + ti,itap-del-sel-legacy = <0x10>; |
| 706 | + ti,itap-del-sel-mmc-hs = <0xa>; |
| 707 | + ti,itap-del-sel-ddr52 = <0x3>; |
| 708 | +
|
| 709 | + and enable the following config options: |
| 710 | + |
| 711 | + .. code-block:: diff |
| 712 | +
|
| 713 | + diff --git a/configs/am62px_evm_a53_defconfig b/configs/am62px_evm_a53_defconfig |
| 714 | + index 09a91248ce6..f95879f41c9 100644 |
| 715 | + --- a/configs/am62px_evm_a53_defconfig |
| 716 | + +++ b/configs/am62px_evm_a53_defconfig |
| 717 | + @@ -114,8 +114,8 @@ CONFIG_MMC_IO_VOLTAGE=y |
| 718 | + CONFIG_SPL_MMC_IO_VOLTAGE=y |
| 719 | + CONFIG_MMC_UHS_SUPPORT=y |
| 720 | + CONFIG_SPL_MMC_UHS_SUPPORT=y |
| 721 | + -CONFIG_MMC_HS200_SUPPORT=y |
| 722 | + -CONFIG_SPL_MMC_HS200_SUPPORT=y |
| 723 | + +CONFIG_MMC_HS400_SUPPORT=y |
| 724 | + +CONFIG_SPL_MMC_HS400_SUPPORT=y |
| 725 | + CONFIG_MMC_SDHCI=y |
| 726 | + CONFIG_MMC_SDHCI_ADMA=y |
| 727 | + CONFIG_SPL_MMC_SDHCI_ADMA=y |
| 728 | +
|
| 729 | +.. ifconfig:: CONFIG_part_family in ('AM62X_family') |
| 730 | + |
| 731 | + **Missing eMMC support** |
| 732 | + |
| 733 | + Support for eMMC is missed for AM62SIP SK in Processor SDK 11.01. Therefore, eMMC boot, reading/writting/accessing the eMMC |
| 734 | + will not work on AM62SIP SK. If eMMC support is required, apply the following diff to k3-am6254xxl-sk.dts: |
| 735 | + |
| 736 | + .. code-block:: diff |
| 737 | +
|
| 738 | + diff --git a/dts/upstream/src/arm64/ti/k3-am6254xxl-sk.dts b/dts/upstream/src/arm64/ti/k3-am6254xxl-sk.dts |
| 739 | + index 060df318b3f..d2c9f226b73 100644 |
| 740 | + --- a/dts/upstream/src/arm64/ti/k3-am6254xxl-sk.dts |
| 741 | + +++ b/dts/upstream/src/arm64/ti/k3-am6254xxl-sk.dts |
| 742 | + @@ -42,6 +42,22 @@ |
| 743 | + }; |
| 744 | +
|
| 745 | + &main_pmx0 { |
| 746 | + + main_mmc0_pins_default: main-mmc0-default-pins { |
| 747 | + + bootph-all; |
| 748 | + + pinctrl-single,pins = < |
| 749 | + + AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ |
| 750 | + + AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ |
| 751 | + + AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ |
| 752 | + + AM62X_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */ |
| 753 | + + AM62X_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */ |
| 754 | + + AM62X_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */ |
| 755 | + + AM62X_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */ |
| 756 | + + AM62X_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */ |
| 757 | + + AM62X_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */ |
| 758 | + + AM62X_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */ |
| 759 | + + >; |
| 760 | + + }; |
| 761 | + + |
| 762 | + main_rgmii2_pins_default: main-rgmii2-default-pins { |
| 763 | + bootph-all; |
| 764 | + pinctrl-single,pins = < |
| 765 | + @@ -147,6 +163,14 @@ |
| 766 | + }; |
| 767 | + }; |
| 768 | +
|
| 769 | + +&sdhci0 { |
| 770 | + + bootph-all; |
| 771 | + + status = "okay"; |
| 772 | + + pinctrl-names = "default"; |
| 773 | + + pinctrl-0 = <&main_mmc0_pins_default>; |
| 774 | + +}; |
| 775 | + + |
| 776 | + &sdhci1 { |
| 777 | + vmmc-supply = <&vdd_mmc1>; |
| 778 | + vqmmc-supply = <&vdd_sd_dv>; |
| 779 | +
|
| 780 | +.. ifconfig:: CONFIG_part_family not in ('AM62X_family', 'AM62PX_family') |
| 781 | + |
| 782 | + There is no missing MMC support for |__PART_FAMILY_DEVICE_NAMES__| device. |
| 783 | + |
| 784 | +| |
| 785 | +
|
664 | 786 | Steps for working around SD card issues in u-boot |
665 | 787 | ================================================= |
666 | 788 |
|
@@ -758,60 +880,3 @@ increasing order of reducing performance. |
758 | 880 | }; |
759 | 881 |
|
760 | 882 | sdhci2: mmc@fa20000 { |
761 | | -
|
762 | | -eMMC HS400 support in u-boot |
763 | | -============================ |
764 | | - |
765 | | -.. ifconfig:: CONFIG_part_family in ('AM62PX_family') |
766 | | - |
767 | | - For 11.0 SDK, am62px device does not support eMMC HS400 mode due to errata i2458. |
768 | | - If support for HS400 is anyways required, please add the following DT attributes to sdhci0 node: |
769 | | - |
770 | | - .. code-block:: diff |
771 | | -
|
772 | | - 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 |
773 | | - index 8bfc6539b2a..8a536b081e1 100644 |
774 | | - --- a/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi |
775 | | - +++ b/dts/upstream/src/arm64/ti/k3-am62p-j722s-common-main.dtsi |
776 | | - @@ -593,12 +593,16 @@ |
777 | | - bus-width = <8>; |
778 | | - mmc-ddr-1_8v; |
779 | | - mmc-hs200-1_8v; |
780 | | - + mmc-hs400-1_8v; |
781 | | - ti,clkbuf-sel = <0x7>; |
782 | | - + ti,strobe-sel = <0x55>; |
783 | | - ti,trm-icp = <0x8>; |
784 | | - ti,otap-del-sel-legacy = <0x1>; |
785 | | - ti,otap-del-sel-mmc-hs = <0x1>; |
786 | | - ti,otap-del-sel-ddr52 = <0x6>; |
787 | | - ti,otap-del-sel-hs200 = <0x8>; |
788 | | - + ti,otap-del-sel-hs400 = <0x5>; // at 0.85V VDD_CORE |
789 | | - + //ti,otap-del-sel-hs400 = <0x7>; // at 0.75V VDD_CORE |
790 | | - ti,itap-del-sel-legacy = <0x10>; |
791 | | - ti,itap-del-sel-mmc-hs = <0xa>; |
792 | | - ti,itap-del-sel-ddr52 = <0x3>; |
793 | | -
|
794 | | - and enable the following config options: |
795 | | - |
796 | | - .. code-block:: diff |
797 | | -
|
798 | | - diff --git a/configs/am62px_evm_a53_defconfig b/configs/am62px_evm_a53_defconfig |
799 | | - index 09a91248ce6..f95879f41c9 100644 |
800 | | - --- a/configs/am62px_evm_a53_defconfig |
801 | | - +++ b/configs/am62px_evm_a53_defconfig |
802 | | - @@ -114,8 +114,8 @@ CONFIG_MMC_IO_VOLTAGE=y |
803 | | - CONFIG_SPL_MMC_IO_VOLTAGE=y |
804 | | - CONFIG_MMC_UHS_SUPPORT=y |
805 | | - CONFIG_SPL_MMC_UHS_SUPPORT=y |
806 | | - -CONFIG_MMC_HS200_SUPPORT=y |
807 | | - -CONFIG_SPL_MMC_HS200_SUPPORT=y |
808 | | - +CONFIG_MMC_HS400_SUPPORT=y |
809 | | - +CONFIG_SPL_MMC_HS400_SUPPORT=y |
810 | | - CONFIG_MMC_SDHCI=y |
811 | | - CONFIG_MMC_SDHCI_ADMA=y |
812 | | - CONFIG_SPL_MMC_SDHCI_ADMA=y |
813 | | -
|
814 | | -.. ifconfig:: CONFIG_part_family not in ('AM62PX_family') |
815 | | - |
816 | | - eMMC HS400 is not suppported, refer to :ref:`this <mmc-sd-supported-hs-modes>` table for the list of modes supported in u-boot |
817 | | - for |__PART_FAMILY_NAME__| SoC. |
|
0 commit comments