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.
Hi all,
I use the http://omappedia.com/wiki/4AI.1.4_OMAP4_Icecream_Sandwich_Panda_Notes for my 4460 panda board. Everything is good. But I want to boot panda board from MMC2. So I use J3 expansion connector that according to the block:
I also configure SYSBOOT pin of OMAP to boot according to order of peripheral : USB-UART-MMC1-MMC2. I user usb4boot (http://pandaboard.org/content/usb-downloader-and-usb-second-stage-bootloader-omap4) to boot uboot into omap4460. When I’m in uboot, I use “mmc_init 1” command to start SD card. But the initialization is fail and I cann’t read or write the SD card use uboot command.
Help me!
Thank you for your help and reply.
Best regards!
Tuan,
Did you set the pin muxing in the x-loader to match your HW configuration for MMC2? The pin muxing is done in the board file, probably x-loader/board/omap4430panda/omap4430panda.c.
Regards,
Gina
Hi Gina Glaser,
I reviewed board/omap44XXpanda/omap44XXpanda.c. I think u-boot configure for SDMMC2 path.
MV(CP(GPMC_AD0), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat0 */ \
MV(CP(GPMC_AD1), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat1 */ \
MV(CP(GPMC_AD2), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat2 */ \
MV(CP(GPMC_AD3), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat3 */ \
MV(CP(GPMC_AD4), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat4 */ \
MV(CP(GPMC_AD5), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat5 */ \
MV(CP(GPMC_AD6), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat6 */ \
MV(CP(GPMC_AD7), (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat7 */ \
When I was in uboot, I type "mmcinit 1" command and review the debug console.
When panda board send CMD0, CMD8 and CMD55 , the MMCHS_STAT register is 1. Mean the command is completed.
But then panda board send ACMD41 to leave the IDLE_STATE, the MMCHS_STAT register is 0x18000. Mean no response.
I review the source code of u-boot (http://omappedia.com/wiki/4AI.1.4_OMAP4_Icecream_Sandwich_Panda_Notes) but I didnt detect any bug.
Help me!
Thank you for your help and reply.
Best regards!
Tuan,
Did you check the pin muxing in the x-loader as well? Even though the pin muxing code exists in the u-boot, typically this function is not called, and only the x-loader pin muxing is used.
Regards,
Gina
Hi Gina,
Thanks for replying!
I design the SD adapter base on "OMAP4460 Technical Reference Manual": (I used the SD/MMC 2 controller on omap4460)
I also set pin muxing in the "x-loader/board/omap44XXpanda/omap44XXpanda.c" following:
MV(CP(GPMC_AD0) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat0 */ \
MV(CP(GPMC_AD1) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat1 */ \
MV(CP(GPMC_AD2) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat2 */ \
MV(CP(GPMC_AD3) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat3 */ \
MV(CP(GPMC_AD4) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat4 */ \
MV(CP(GPMC_AD5) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat5 */ \
MV(CP(GPMC_AD6) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M1)) /* sdmmc2_dat6 */ \
MV(CP(GPMC_AD7) , (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M2)) /* sdmmc2_clk_fdbk */ \
But, when I was in uboot, I used the "mmcinit 1" command and review the debug console:
Best regards!
Hi Tuan,
I also testing to boot the Pandaboard ES from MMC2 interface via J3 expansion connector.
I use 2 SD cards, one connected to MMC1 via SD cage on board, and another on an expansion board connected to MMC2 via J3 (just like your schematic at the first post).
Both 2 cards have been formatted and ready to go. And for testing, I copy some files to FAT partition to both SD cards.
When the board running into u-boot, I issued "mmcinit 0" and "mmcinit 1" command and I got no error/warning on terminal...
Then I issued fatls command but only the files on MMC1 listed by "fatls mmc 0", the "fatls mmc 1" do not output anything...?
I am still working on it but can not find out the cause. Could you please share me how you check on debug console? I meant You added some "printf" command to dump register value in "u-boot/cpu/omap4/mmc.c", didn't you?
BTW, please teach me any references to check the CMD code?
Thank you!
Regars,
JPhan
Hi Tuan and Jack
Have you solves the problem? I also want to boot from mmc2
Thanks.
hi,tuan duong:
i add a SD Card on the slot MMC1 of OMAP4460,and an eMMC chip on the slot MMC2(2) ,after i configure the mux of related IO pins,i found it's work well under linux.
I can see
mmcblk0 mmcblk0p2 mmcblk1boot0
mmcblk0p1 mmcblk1 mmcblk1boot1 in the /dev/ folder,which means the linux kernel have already found the SD card and eMMC card.
but under u-boot,it still can't work.when i enter 'mmc dev 1',the debug message print as floows:
CMD_SEND:0
ARG 0x00000000
MMC_RSP_NONE
CMD_SEND:8
ARG 0x000001AA
MMC_RSP_R1,5,6,7 0x00000000
CMD_SEND:55
ARG 0x00000000
MMC_RSP_R1,5,6,7 0x00000000
CMD_SEND:0
ARG 0x00000000
MMC_RSP_NONE
CMD_SEND:1
ARG 0x00000000
MMC_RSP_R3,4 0x00000000
i am not familar with MMC standard,could please tell me what happened when emmc initializing?
any suggestion will be appreciated,thank you !
Hi Jack
Have you solves the problem? I also want to boot from mmc2.Can you give me a detailed steps.
Thanks