日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

IMX6 EMMC、SD卡启动引脚配置及uboot修改为SD2启动

發(fā)布時(shí)間:2024/1/1 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IMX6 EMMC、SD卡启动引脚配置及uboot修改为SD2启动 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

開發(fā)環(huán)境

平臺:imx6dl
內(nèi)核:linux-4.1.15
uboot:2014

問題描述

在IMX6中SD卡啟動(dòng)通常都是用SD3系列的引腳去作為SD卡槽的引腳,如下圖。

總有些意外,比如這次的這塊電路板,就是用的SD2系列引腳作為SD卡的卡槽。如下圖

這就導(dǎo)致了按照之前的撥碼開關(guān)去啟動(dòng),完全沒有串口打印信息,就相當(dāng)于SD卡啟動(dòng)失敗,CPU無法找到SD卡中的uboot加載到內(nèi)存中啟動(dòng)。這就不得不去看IMX6的芯片手冊中的啟動(dòng)設(shè)置那些內(nèi)容了。

相關(guān)配置

接下來挑著重點(diǎn)來看手冊,首先是定位到如下圖的位置,這是BOOT_CFGX對應(yīng)的引腳。




本次的重點(diǎn)在最后一個(gè)圖中的BOOT_CFG2[4:3]這一行的配置,原來是是USDHC-3是作為SD3啟動(dòng)的,但是現(xiàn)在需要SD2啟動(dòng),則需要配置成USDHC-2,也就是01。由上述引腳對應(yīng)表可以得出EIM_DA11(BOOT_CFG[3]),EIM_DA12(BOOT_CFG[4]),再直白點(diǎn)就是EIM_DA11配成高電平,EIM_DA12配成低電平。

修改uboot為SD2啟動(dòng)

如果當(dāng)上面的配置修改好后,按理說SD卡啟動(dòng)就會(huì)有uboot打印信息,有可能卡在檢測不到SD2,然后啟動(dòng)不起來。
打印類似的串口信息:

//...... MMC: no card present Card did not respond to voltage select! //......

通過打印信息去uboot源碼中找到調(diào)用的函數(shù),定位到common/board_r.c

int initr_mmc(void) {puts("MMC: ");mmc_initialize(gd->bd);return 0; }

mmc_initialize(),定位到driver/mmc/mmc.c

int mmc_initialize(bd_t *bis) {INIT_LIST_HEAD (&mmc_devices);cur_dev_num = 0;if (board_mmc_init(bis) < 0)cpu_mmc_init(bis);#ifndef CONFIG_SPL_BUILDprint_mmc_devices(','); #endifdo_preinit();return 0; }int mmc_start_init(struct mmc *mmc) {int err;/* we pretend there's no card when init is NULL */if (mmc_getcd(mmc) == 0 || mmc->cfg->ops->init == NULL) {mmc->has_init = 0; #if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBCOMMON_SUPPORT)printf("MMC: no card present\n"); #endifreturn NO_CARD_ERR;}//......省略if (err == TIMEOUT) {err = mmc_send_op_cond(mmc);if (err && err != IN_PROGRESS) { #if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBCOMMON_SUPPORT)printf("Card did not respond to voltage select!\n"); #endifreturn UNUSABLE_ERR;}}//......省略 }

追蹤board_mmc_init()函數(shù),board_mmc_getcd()函數(shù)在board/freescale/mx6sabresd/mx6sabresd.c文件上。

int board_mmc_init(bd_t *bis) {s32 status = 0;int i;/** According to the board_mmc_init() the following map is done:* (U-boot device node) (Physical Port)* mmc0 SD2* mmc1 SD3* mmc2 eMMC*/for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {switch (i) {case 0:imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));gpio_direction_input(USDHC2_CD_GPIO);usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);break;case 1:imx_iomux_v3_setup_multiple_pads(usdhc3_pads, ARRAY_SIZE(usdhc3_pads));gpio_direction_input(USDHC3_CD_GPIO);usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);break;case 2:imx_iomux_v3_setup_multiple_pads(usdhc4_pads, ARRAY_SIZE(usdhc4_pads));usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);break;default:printf("Warning: you configured more USDHC controllers""(%d) then supported by the board (%d)\n",i + 1, CONFIG_SYS_FSL_USDHC_NUM);return status;}status |= fsl_esdhc_initialize(bis, &usdhc_cfg[i]);}return status; }int board_mmc_getcd(struct mmc *mmc) {struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;int ret = 0;switch (cfg->esdhc_base) {case USDHC2_BASE_ADDR:ret = 1;//ret = !gpio_get_value(USDHC2_CD_GPIO);break;case USDHC3_BASE_ADDR:ret = !gpio_get_value(USDHC3_CD_GPIO);break;case USDHC4_BASE_ADDR:ret = 1; /* eMMC/uSDHC4 is always present */break;}return ret; }

為什么檢測不到SD卡尼?有很大可能是因?yàn)閎oard_mmc_getcd獲取不到正確的CD引腳,導(dǎo)致了return返回值為0,打印出了“MMC: no card present”。
解決辦法:把ret = !gpio_get_value(USDHC2_CD_GPIO);屏蔽了或者#define USDHC2_CD_GPIO IMX_GPIO_NR(7, 13)設(shè)置一個(gè)正確的CD腳。我本次使用了前者。完成了這一步,就大功告成了。

總結(jié)

以上是生活随笔為你收集整理的IMX6 EMMC、SD卡启动引脚配置及uboot修改为SD2启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日在线 | 日韩欧美一区二区三区免费观看 | 欧美一区二区三区四区五区六区 | 亚洲成人伦理 | 中文字幕一区二区三区人妻四季 | 精品视频久久久 | 日韩一区在线看 | 日韩人妻精品无码一区二区三区 | 爱射综合| www.avcao| 国产99久久久 | 69精品丰满人妻无码视频a片 | 性爱免费在线视频 | 五月天视频网 | 中文在线天堂网 | 国产一二三区av | 日韩欧美中文字幕在线观看 | 日本泡妞xxxx免费视频软件 | 日韩精品免费一区二区在线观看 | 毛片综合 | 国产亚洲精品久久久久动 | 朝桐光在线视频 | 男女野外做受全过程 | 嫩草影院中文字幕 | 亚洲一区自拍 | 欧美熟妇交换久久久久久分类 | 国产成人无码a区在线观看视频 | 成人av高清在线观看 | 网站一区二区 | 一区二区三区四区国产精品 | 亚洲一区二区三区精品视频 | 国产精品久久久久久久久久小说 | 四虎影视精品 | 日韩在线视频在线观看 | 搞中出 | 六月婷婷中文字幕 | 中国久久久 | 成年人黄色一级片 | av免费网站| 97久久国产精品 | 亚洲成人久久精品 | 久久男 | 涩涩视频免费 | 91视频在| 国产人伦精品一区二区三区 | 精品国产免费观看 | 欧美日韩国产精品成人 | 亚洲国产成人va在线观看天堂 | 国产黄在线免费观看 | 欧美亚洲国产成人 | 久久久久久欧美精品se一二三四 | 久久久久国产精品无码免费看 | 久操这里只有精品 | 男人的天堂黄色 | 中文字幕乱伦视频 | 99在线精品视频免费观看20 | 国产人妻久久精品一区二区三区 | 牛牛影视免费观看 | 久久国产欧美日韩精品 | 精品欧美乱码久久久久久 | 无码国产精品96久久久久 | 一级特黄av | 色奇米| 亚洲不卡在线 | 中文国语毛片高清视频 | 色诱视频在线观看 | 午夜亚洲av永久无码精品 | 97成人精品 | 久草热在线 | 欧美日韩另类一区 | 国产精品一二区在线观看 | 国产精久久一区二区三区 | 亚洲日本在线观看视频 | 欧美久久综合 | 亚洲免费观看高清在线观看 | 波多野吉衣在线视频 | 成人看的毛片 | 快播av在线| av一区二区三区 | 久久影院精品 | 日本一本久久 | 吻胸摸激情床激烈视频 | 亚洲精品成人a | 69精品丰满人妻无码视频a片 | 天堂bt在线 | 欧美日韩高清丝袜 | 抱着老师的嫩臀猛然挺进视频 | 毛片天天看| 嫩草网站在线观看 | 精品欧美一区二区精品久久 | 日本免费一区二区视频 | 美女福利视频在线 | 黄色av网站在线观看 | 久久久久99人妻一区二区三区 | 91久久综合亚洲鲁鲁五月天 | 欧美精品成人一区二区在线观看 | 亚洲av午夜精品一区二区三区 | 天天婷婷 | 噼里啪啦免费看 |