各位工程师们:
你们好!
我现在开发的产品上,既要使用GPMC,又要使用eMMC加载启动
问题一:要想使用eMMC加载启动,eMMC是不是只能接在U7-T9的这组MMC1接口上, 或者接到MMC0上使用4bit模式?
问题二:eMMC接在U10-U13这组MMC1接口上能否加载启动?
问题三:我的系统上GPMC的数据线只需要用到8位,我能否只使用GPMC_AD[15:8]这高8位,低8位留作MMC1接口用?
或者有没有两全其美的方案,求指导。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
1. 对于eMMC的启动方式支持,如果是小于4GB容量的eMMC话,使用MMC0启动,如果是大于等于4GB,需要使用MMC1模式。对于MMC0和MMC1的解法,你可以参考TRM的26.1。7.5.8 Pins Used:
2. 不可以,这组不在emmc1启动支持列表中。可以的参考上面。
3. 不可以,nand和nor相关的8bit配置如下图所示,这个是我们支持的方式。
我能想到的有下面两个可能的方案:
1. 使用小于4G容量的emmc,接在mmc0上面,就能规避你说的这个问题。
2. 如果你的eMMC卡只是想做为启动booting image存储设备,后续就不需要使用了。是可以在启动时,这些pin脚工作在mmc模式。这之后在系统读完启动image后,再通过pinmux将相关pin脚设置成为了gpmc模式,就可以使用gpmc上的设备了。
第三种方式可能是可以的,没测试过
1、首先把GPMC接口配置成16bit方式
2、把gpmc数据线的低8位定义成mmc模式
3、传输数据的时候从gpmc的高8位输出,需要把要传输的数据移动8位
刘工:你好!你说使用MMC0启动时,eMMC要小于4GB。
问题一:是基于什么原因呢?是大于4G的MMC0接口根本不能识别还是只能操作4GB以内的空间?
问题二:因为目前市场上的eMMC基本都是4GB以上的,小于4GB的也很难买到,我能不能先用UART和TFTP启动加载linux,然后把大于4GB的emmc格式化为小于4GB(比如3GB),我能否使用这3GB空间做启动用呢?这个方案可行吗?
问题三:另外,我用8G的TF卡也测试过,是可以启动的,不知TF卡和emmc有啥区别?
这个问题,是一个在启动过程中的限制。而且你所提到的这个问题,在AM335x的TRM手册中也有解释:
26.1.7.5.2 System Interconnection
Each interface has booting restrictions on which type of memory it supports: -
• MMC0 supports booting from the MMC/SD card cage and also supports booting from
eMMC/eSD/managed NAND memory devices with less than 4GB capacity.
• MMC1 supports booting from eMMC/eSD/managed NAND memory device with 4GB capacity or
greater.
The restriction is a result of many eMMC devices not being compliant with the eMMC v4.41 specification.
If you have the need to boot from two different card cages, many MMC/SD cards will boot from MMC1, but
for maximum compatibility only MMC0 should be used to boot from the card cage. Similarly for maximum
compatibility, booting from eMMC/eSD/managed NAND should only be performed on MMC1.
Note that the above restrictions only apply to booting from each port. Drivers can be written for either port
to support any desired interface.
Note:
• The ROM Code does not handle the card detection feature on card cage.
• If MMC1 is used the GPMC interface is not usable, due to pin muxing options.
• MMC1 supports sector mode without querying the card.