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.

[FAQ] AM625 / AM623 / AM620-Q1 / AM625-Q1 / AM625SIP: eMMC0_DAT0 not enabled pull up by ROM

Part Number: AM625


Tool/software:

#1. On my customer board using eMMC0 boot, did not pull up eMMC0_DAT0, occasionally can't boot up by Power On, but can boot up by warm reset or power cycle. 

#2. Add pull up on eMMC_DAT0, can boot up always so far.

#3. Schematic check list require add external pull up on eMMC_DAT pins.

#4. Check on AM62-SK board with JTAG, find the eMMC0_DAT0, eMMC0_CLK and eMMC_CMD pulls are not enabled. but other data pins( eMMC_DAT1-7) are enabled pull up. 

Question: Why leave eMMC0_DAT0 not pulled up?

BTW, can probe signal on eMMC0_DAT0 although boot fail. (the boot fail doesn't output log on UART, it should stopped somewhere after negotiation, so it is not related to DDR config)

   

  

 

  • The eMMC standard requires all eMMC devices to have an internal pull-up that is turned on by default for each DAT[7:1] pin. The eMMC device will turn off the internal pulls on DAT[7:1] when it is configured to operate in 8-bit mode or turn off the internal pulls on DAT[3:1] when it is configured to operate in 4-bit mode. The software driver should turn on the respective AM62x internal pull-ups at the same time it configures the eMMC device to operate in 8-bit mode or 4-bit mode. This ensures the signals are not floating when not driven. External pull-ups are not necessary on the DAT[7:1] signals as long as the software driver is turning on the respective AM62x pull-ups at the appropriate time.

    The eMMC standard does not define any internal pulls for the other eMMC inputs because it assumes the device will be connected to a host that is driving or pulling these pins to a valid logic level as soon as power is applied. However, that is not the case for AM62x since most pins are shared with many signal functions. The shared pins will not know their assigned signal function until software boots and configures the respective PADCONFIG registers. The AM62x device turns off the IO transmitter, receiver, and internal pulls of most pins until software initializes them to the appropriate signal function. In the eMMC use case, the CLK, CMD, and DAT0 inputs would be floating until software initializes the IOs and the associated MMCSD host controller. Therefore, customers should have external pull-up resistors on CMD and DAT0, and an external pull-down resistor on CLK to prevent the eMMC inputs from floating while waiting for software to configure the AM62x pins.

    I suspect the pull-up is required on D0 to pull the signal high because the AM62x pin is configured to operate in open-drain mode during the initial communications with the eMMC device. The DO signal would never toggle high without the external pull-up.

    Regards,
    Paul