Linux SD Driver (五)

调试debug

 cat proc/msdc_debug                                                  


=========================================
Index<0> + Id + Zone
-> PWR<9> WRN<8> | FIO<7> OPS<6> FUN<5> CFG<4> | INT<3> RSP<2> CMD<1> DMA<0>
-> echo 0 3 0x3ff >msdc_debug -> host[3] debug zone set to 0x3ff
-> MSDC[0] Zone: 0x00000000
-> MSDC[1] Zone: 0x00000000
-> MSDC[2] Zone: 0x00000000
-> MSDC[3] Zone: 0x00000000
Index<1> + ID:4|Mode:4 + DMA_SIZE
-> 0)PIO 1)DMA 2)SIZE
-> echo 1 22 0x200 >msdc_debug -> host[2] size mode, dma when >= 512
-> MSDC[0] mode<2> size<512>
-> MSDC[1] mode<1> size<512>
-> MSDC[2] mode<1> size<512>
-> MSDC[3] mode<2> size<512>
Index<3> + SDIO_PROFILE + TIME
-> echo 3 1 0x1E >msdc_debug -> enable sdio_profile, 30s
-> SDIO_PROFILE<0> TIME<30 s>
-> Clokc SRC selection Host[0]<2>
-> Clokc SRC selection Host[1]<2>
-> Clokc SRC selection Host[2]<7>
-> Clokc SRC selection Host[3]<0>
=========================================


Index<4> msdc0 hw parameter and ett settings:
hw->clk_src = 2
hw->cmd_edge = 0
hw->rdata_edge = 0
hw->wdata_edge = 0
hw->clk_drv = 2
hw->cmd_drv = 2
hw->dat_drv = 2
hw->rst_drv = 2
hw->ds_drv = 2
hw->data_pins = 0
hw->data_offset = 0
hw->flags = 40
hw->dat0rddly = 0
hw->dat1rddly = 0
hw->dat2rddly = 0
hw->dat3rddly = 0
hw->dat4rddly = 0
hw->dat5rddly = 0
hw->dat6rddly = 0
hw->dat7rddly = 0
hw->datwrddly = 0
hw->cmdrrddly = 0
hw->cmdrddly = 0
hw->ett_hs200_count = c
hw->ett_hs400_count = 8
hw->host_function = 0
hw->boot = 1
msdc0_ett_hs200_settings[0]: b0, 380, 0
msdc0_ett_hs200_settings[1]: b0, 7c00, 0
msdc0_ett_hs200_settings[2]: b4, 38, 1
msdc0_ett_hs200_settings[3]: 4, 2, 0
msdc0_ett_hs200_settings[4]: f0, 1f0000, 7
msdc0_ett_hs200_settings[5]: f0, 7c00000, b
msdc0_ett_hs200_settings[6]: b4, 7, 1
msdc0_ett_hs200_settings[7]: f0, 1f, b
msdc0_ett_hs200_settings[8]: 4, 400, 0
msdc0_ett_hs200_settings[9]: f8, 1f000000, 7
msdc0_ett_hs200_settings[10]: f0, 1f00, 9
msdc0_ett_hs200_settings[11]: 4, 4, 0
msdc0_ett_hs400_settings[0]: b0, 380, 0
msdc0_ett_hs400_settings[1]: b0, 7c00, 0
msdc0_ett_hs400_settings[2]: 188, 7c, 2
msdc0_ett_hs400_settings[3]: 188, 1f000, 10
msdc0_ett_hs400_settings[4]: b4, 38, 1
msdc0_ett_hs400_settings[5]: 4, 2, 0
msdc0_ett_hs400_settings[6]: f0, 1f0000, 6
msdc0_ett_hs400_settings[7]: f0, 7c00000, 6
Index<5> msdc1 hw parameter:
hw->clk_src = 2
hw->cmd_edge = 0
hw->rdata_edge = 0
hw->wdata_edge = 0
hw->clk_drv = 3
hw->cmd_drv = 3
hw->dat_drv = 3
hw->rst_drv = 0
hw->ds_drv = 0
hw->data_pins = 0
hw->data_offset = 0
hw->flags = 40
hw->dat0rddly = 0
hw->dat1rddly = 0
hw->dat2rddly = 0
hw->dat3rddly = 0
hw->dat4rddly = 0
hw->dat5rddly = 0
hw->dat6rddly = 0
hw->dat7rddly = 0
hw->datwrddly = 0
hw->cmdrrddly = 0
hw->cmdrddly = 0
hw->ett_hs200_count = 0
hw->ett_hs400_count = 0
hw->host_function = 1

hw->boot = 0


FS502:/sys/bus/mmc/devices/mmc0:0001 # ls
block  enhanced_area_offset manfid               prv                type        
cid    enhanced_area_size   name                 raw_rpmb_size_mult uevent      
csd    erase_size           oemid                rel_sectors        wp_grp_size 
date   fwrev                power                serial             
driver hwrev                preferred_erase_size subsystem          
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat csd
d02701320f5903fff6dbffef8e40400d
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat cid
150100525831424d4207f54ed64d8329
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat erase_size                          
524288
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat serial
0xf54ed64d
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat type
MMC
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat name
RX1BMB
FS502:/sys/bus/mmc/devices/mmc0:0001 # cat manfid
0x000015
FS502:/sys/bus/mmc/devices/mmc0:0001 # 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,msdc_debug log是指在访问SD卡的过程中记录的日志。在这个日志中,有大量的MSDC_INT_DATCRCERR错误发生。这种错误通常与手机硬件的走线有关。建议检查SD卡的走线是否正常。此外,还可以尝试修改data line的驱动电流来解决问题。具体的修改方法可以在/kernel-3.10/drivers/misc/mediatek/mach/${Project_name}/project_name/core/board.c文件中找到msdc1_hw结构体,并将其中的.dat_drv值加1。\[1\] 另外,还提到了一个关于isClassServerError()方法的引用,该方法用于判断事件是否表示远程本地守护程序错误。根据代码,如果mCode的值大于等于400且小于500,则表示是一个服务器错误。\[2\] 最后,还提供了一个mount volume fail的引用,其中包含了一条关于mount volume失败的日志。这条日志显示了一个NativeDaemonConnector$NativeDaemonFailureException异常,命令'6 volume mount public:179,129 2 0'执行失败,返回码为400。\[3\] 综上所述,msdc_debug log是用于记录SD卡访问过程中的日志,其中包含了大量的MSDC_INT_DATCRCERR错误。建议检查SD卡的走线,并尝试修改data line的驱动电流来解决问题。此外,还提到了一个关于判断服务器错误的方法和一个关于mount volume失败的日志。 #### 引用[.reference_title] - *1* *2* *3* [关于sdcard异常问题分析](https://blog.csdn.net/qq_37610155/article/details/79884827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值