am335x sd卡启动开启识别emmc kernel 上的改动

sbc 7109-454 sd 卡启动qt系统后一直识别不了  emmc 也就是mmc1口, 一开始以为是硬件初始化的问题,后面又以为是io口复用,最后才知道是根本没有注册mmc1设备。

更改下面的代码就能把emmc 成功注册并识别。

arch/arm/mach-omap2/board-am335xevm.c

复制代码

 1 static void mmc0_init(int evm_id, int profile)                                  
 2 {                                                                               
 3     switch (evm_id) {                                                           
 4     case BEAGLE_BONE_A3:                                                        
 5     case BEAGLE_BONE_OLD:                                                       
 6     case EVM_SK:                                                                
 7     case BEAGLE_BONE_BLACK:                                                     
 8         setup_pin_mux(mmc0_common_pin_mux);                                     
 9         setup_pin_mux(mmc0_cd_only_pin_mux);                                    
10         printk("mmc0 config over  by chen  2016/9/6***************************\n") ;
11         break;                                                                  
12     default:                                                                    
13         setup_pin_mux(mmc0_common_pin_mux);                                     
14         //setup_pin_mux(mmc0_cd_only_pin_mux);                                  
15         //setup_pin_mux(mmc0_wp_only_pin_mux);                                  
16         break;                                                                  
17     }                                                                           
18     //omap2_hsmmc_init(am335x_mmc);                                             
19                                                                                 
20     return;                                                                     
21 }                                                                

复制代码

omap2_hsmmc_init(am335x_mmc);  这个函数放在mmc1_init 后面就行了。


复制代码

 1 static void mmc1_init(int evm_id, int profile)                                  
 2 {                                                                               
 3     evm_id = BEAGLE_BONE_BLACK;                                                 
 4 
 5     ......
 6 
 7 
 8     }                                                                           
 9     /* mmc will be initialized when mmc0_init is called */                      
10     omap2_hsmmc_init(am335x_mmc);                                               
11     return;                                                                     
12 }                       

复制代码

  这样的话,am335x_mmc 数组里面的值就可以全部注册上去。

进入文件系统,看一下成功没有

root@sbc-7109:~# ls /dev/mmcblk*
/dev/mmcblk0 /dev/mmcblk0p2 /dev/mmcblk1 /dev/mmcblk1boot1
/dev/mmcblk0p1 /dev/mmcblk0p3 /dev/mmcblk1boot0

看到mmcblk1 就说明注册成功。

发布了6 篇原创文章 · 获赞 30 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/boyemachao/article/details/104390358