Hello,
We are trying to boot OMAP3530 from MMC2 interface. I've searched the e2e database and found only 1 relative discussion on MMC2 boot: http://e2e.ti.com/support/dsp/sitara_arm174_microprocessors/f/416/p/116485/417725.aspx#417725
Tony asked about the mmc2_dir_dat (0-1-2-3) and mmc2_dir_cmd signals and pointed out a mismatch between the Technical reference manual (TRM) and the wiki: http://processors.wiki.ti.com/index.php/SD-MMC_Usage_Notes_on_AM35x . mmc2_dir_dat and mmc2_dir_cmd (direction control) signals are multiplexed with mmc2_dat (4-5-6) and sys_boot (4-5) signals using the MUXMODE field of the related configuration register. TRM says when booting from MMC2, MUXMODE is set to 0 which sets our muxed pins to mmc2_dat  and sys_boot signals. This should probably be wrong as the wiki states that the ROM code sets the MUXMODE to 1 for related pins. This is confirmed by Brad Griffis
.
Getting to our problem, we configured the sysboot pins [5-0] as 0b110111 to boot from  UART3 and then MMC2. We don't use the UART3 interface so we expect the OMAP to read from the SDcard we plug into the SDcard reader which we connected to MMC2 interface of OMAP3530 through a level shifter. All our direction control, data, clk signals of the MMC2 interface go through the level shifter. We route the feedback clock from the level shifter back to MMC2 controller into the MMC2 clk_in port.
During the boot process we observe the behavior of mmc2_dir_cmd signal using an oscilloscope and we expect to see this signal change as it determines the direction of flow on the mmc2_dir_cmd signal. We see no change on mmc2_dir_cmd signal which implies OMAP sends commands to SDcard but it never reads a response back since responses are sent through the same bus.
We also checked the value of CONTROL_DEVCONF1.MMCSDIO2ADPCLKISEL which tells the ROM code where to get feedback clock, and we read 1 which tells us it reads the internal clock where instead it must read from the pin we connected to the feedback clock output of the level shifter.
So, two findings:
1. mmc2_dir_cmd does not change when we try to boot from MMC2.
2. CONTROL_DEVCONF1.MMCSDIO2ADPCLKISEL is 1 during boot which means that our feedback clock is not used. for MMC2.
What makes me wonder is that we can use the MMC2 interface either with an external transceiver or without a one. If I don't use a transceiver then I wouldn't need the direction control signals and I would have set the MUXMODE to 0 to use the extra data signals of MMC2; so there must be some setting that I should do to make OMAP aware that there is a transceiver outside. Where and how do I do this?
I also wonder if I could use MLO and u-boot that I use for MMC1 without any change for MMC2?
Any help is greatly appreciated.
Thank you
 
				 
		 
					 
                          