工具/软件:Linux
大家好。
我们使用 Linux-4.1.13并启用 MMC_DEBUG 和 DYNAL_DEBUG。
echo -n 'module OMAP +p'>/sys/kernel/debug/dynamic_debug/control
echo -n 'module omap_hsmmc +p'>/sys/kernel/debug/dynamic_debug/control
我们使用 SDIO WIFI 卡传输数据并按如下方式查找日志、没有 OMAP 或 OMAP-Hsmmc 的调试信息:
[1402.792973] mmc1:启动 CMD53参数9a20f215标志000001b5
[1402.792987] mmc1:blksz 256块21个标志00000100 TSAC 1000ms NSAC 0
[1402.793293] mmc1:Req Done (CMD53):0:00002000 00000000 00000000 00000000
[1402.793309] mmc1:传输的5376字节:0
[1402.79333] mport:0x1103c、len:3584
[1402.793395] blk_mode:1、ioport:69692
[1402.793414] mmc1:启动 CMD53参数9a20780e 标志000001b5
[1402.793427] mmc1:blksz 256块14个标志00000100 TSAC 1000ms NSAC 0
[1402.793642] mmc1:请求完成(CMD53):0:00002000 00000000 00000000 00000000
[1402.793658] mmc1:传输的3584字节:0
不过、我们使用的是 Linux-3.2中的调试信息
[703.873779] mmc1:启动 CMD53参数12000d00标志000001b5
[703.873809] mmc1:blksz 256 blocks 1 flags 00000200 TSAC 1000ms NSAC 0
[703.873809] omap_hsmmc omap_hsmmc.2:mmc1:CMD53、参数0x12000d00
[703.873840] omap_hsmmc omap_hsmmc.2:IRQ 状态为1
[703.873840] omap_hsmmc omap_hsmmc.2:IRQ 状态为2
[703.873870] mmc1:请求完成(CMD53):0:00002000 00000000 00000000 00000000
[703.873870] mmc1:传输的256字节:0
信息是构建信息动态调试:
root@arm:~# cat /sys/kernel/debug/dynamic_debug/control | grep mmc
drivers/MMC/core/core.c:158 [MMC_core]MMC_Request_Done =p "%s":请求完成 :%d:%08x %08x %08x %08x\012"
drivers/MMC/core/core.c:164 [MMC_core]MMC_Request_Done =p "%s":Req Done (CMD%u):%d:%08x %08x %08x %08x %08x\012"
drivers/MMC/core/core.c:169 [MMC_core]MMC_Request_Done =p "%s":已传输%d 个字节:%d\012"
drivers/MMC/core/core.c:177 [MMC_core]MMC_Request_Done =p "%s":(cmd%u):%d:%08x %08x %08x %08x\012"
drivers/MMC/core/core.c:201 [MMC_core]MMC_START_REQUEST =p "<%s:启动 CMD%u 标志%08x>\012"
drivers/MMC/core/core.c:206 [MMC_core]MMC_START_REQUEST =p "%s":启动 CMD%u 标志%08x\012"
drivers/MMC/core/core.c:214 [MMC_core]MMC_START_request =p "%s":blksz %d blocks %08x TSAC %d ms NSAC %d\012"
drivers/MMC/core/core.c:220 [MMC_core]MMC_start_request =p "%s:cmd%u arg %08x flags %08x\012"
drivers/MMC/core/core.c:657 [MMC_core]MMC_interrupt_HPI =p "%s":无法发送 HPI。 卡状态=%d\012"
drivers/MMC/core/core.c:473 [MMC_core]MMC_WAIT_for_req_done =p "%s":请求失败(CMD%u):%d、重试...\012"
drivers/MMC/core/core.c:2278 [MMC_core]MMC_calc_max_discard =p "%s":计算的最大值 放弃扇区%u 以进行超时%u ms\012"
drivers/MMC/core/core.c:999 [MMC_core]MMC_set_ios =p "%s":时钟%uHz 总线模式%u 电源模式%u cs %u Vdd %u 宽度%u 时序%u\012"
drivers/MMC/core/core.c:1633 [MMC_core]MMC_POWER_UP =p "3.3V\012的初始信号电压"
drivers/MMC/core/core.c:1635 [MMC_core]MMC_POWER_UP =p "初始信号电压为1.8V\012"
drivers/MMC/core/core.c:1637 [MMC_core]MMC_POWER_UP =p " 1.2V\012"的初始信号电压"
drivers/MMC/core/core.c:1574 [MMC_core]MMC_SET_SIGNAL 电压=p "%s":信号电压开关失败、电源循环卡\012"
drivers/MMC/core/core.c:2401 [MMC_core]_MMC_detect_card_removed =p "%s":移除卡的速度太慢\012"
drivers/MMC/core/core.c:2406 [MMC_core]_MMC_detect_card_removed =p "%s":检测到卡移除\012"
drivers/MMC/core/host.c:329 [MMC_core]MMC_for_parse =p "\042bus-width\042 property is missing、emiting 1 bit.\012"
drivers/MMC/core/SDIO_io.c:118 [MMC_core]SDIO_disable_func =p "SDIO:正在禁用设备%s..\012"
drivers/MMC/core/SDIO_io.c:130 [MMC_core]SDIO_disable_func =p "SDIO:禁用的设备%s\012"
drivers/MMC/core/SDIO_io.c:135 [MMC_core]SDIO_disable_func =p "SDIO:无法禁用设备%s\012"
drivers/MMC/core/SDIO_io.c:68 [MMC_core]SDIO_ENABLE_func =p "SDIO:正在启用器件%s..\012"
drivers/MMC/core/SDIO_io.c:93 [MMC_core]SDIO_enable_func =p "SDIO:已启用器件%s\012"
drivers/MMC/core/SDIO_io.c:98 [MMC_core]SDIO_enable_func =p "SDIO:无法启用设备%s\012"
drivers/MMC/core/SDIO_IRQ.c:52 [MMC_CORE] PROCESS_SDIO_PENDing_IRQ =p "%s":Error %d reading SDIO_CCCR_INTx\012"
drivers/MMC/core/SDIO_IRQ.c:121 [MMC_CORE]SDIO_IRQ_thread =p "%s":IRQ 线程已启动(轮询周期=%lu jiffies)\012"
drivers/MMC/core/SDIO_IRQ.c:188 [MMC_CORE]SDIO_IRQ_thread =p "%s":IRQ 线程退出、代码为%d\012 "
drivers/MMC/core/SDIO_IRQ.c:277 [MMC_CORE]SDIO_REGACK_IRQ =p "SDIO:为%s 启用 IRQ。.\012"
drivers/MMC/core/SDIO_IRQ.c:280 [MMC_CORE]SDIO_REclase_IRQ =p "SDIO:%s 的 IRQ 已在使用中。\012"
drivers/MMC/core/SDIO_IRQ.c:320 [MMC_CORE]SDIO_RELEASE_IRQ =p "SDIO:为%s 禁用 IRQ。.\012"
drivers/MMC/core/quirks.c:94 [MMC_core]MMC_fixup_device =p "调用%pf\012"
drivers/MMC/card/block.c:431 [MMC_BLOC块]ioctl_do_sepe =p "%s:%s -正在进行清除...\012"
drivers/MMC/card/block.c:442 [MMC_BLOC块]ioctl_do_esepe =p "%s:%s -清除已完成\012"
drivers/MMC/card/SDIO_UART.c:1091 [SDIO_UART]SDIO_UART_probe =p "%s":寄存器 ID = 0x%02x、EXP ID = 0x%02x\012"
drivers/MMC/card/SDIO_UART.c:1096 [SDIO_UART]SDIO_UART_probe =p "%s":regs offset = 0x%x\012"
drivers/MMC/card/SDIO_UART.c:1102 [SDIO_UART]SDIO_UART_probe =p "%s":clk %d baudcode %u 4800-div %u\012"
drivers/MMC/host/sdhci.c:86 [ssdhci]ssdhci_dumpregs =p "sdhci:=== 寄存器转储(%s)====== \012英寸
drivers/MMC/host/sdhci.c:90 [sdhci]ssdhci_dumpregs =p "sdhci: sys addr:0x%08x |版本:0x%08x\012"
drivers/MMC/host/sdhci.c:93 [sdhci]ssdhci_dumpregs =p "sdhci: blk size:0x%08x | blk cnt:0x%08x\012"
drivers/MMC/host/sdhci.c:96 [sdhci]ssdhci_dumpregs =p "sdhci:参数:0x%08x | Trn 模式:0x%08x\012"
drivers/MMC/host/sdhci.c:99 [sdhci]ssdhci_dumpregs =p "sdhci: present:0x%08x | Host ctl:0x%08x\012"
drivers/MMC/host/sdhci.c:102 [ssdhci]ssdhci_dumpregs =p "sdhci: pow: 0x%08x | Blk GAP:0x%08x\012"
drivers/MMC/host/sdhci.c:105 [sdhci]ssdhci_dumpregs =p "sdhci: WAKE-UP:0x%08x |时钟:0x%08x\012"
drivers/MMC/host/sdhci.c:108 [ssdhci]ssdhci_dumpregs =p "sdhci: timeout: 0x%08x | int stat: 0x%08x\012"
drivers/MMC/host/sdhci.c:111 [sdhci]ssdhci_dumpregs =p "sdhci: int enab: 0x%08x | sig enab: 0x%08x\012"
drivers/MMC/host/sdhci.c:114 [sdhci]ssdhci_dumpregs =p "sdhci: AC12 err:0x%08x |插槽 int:0x%08x\012"
drivers/MMC/host/sdhci.c:117 [ssdhci]ssdhci_dumpregs =p "sdhci: caps: 0x%08x | caps_1:0x%08x\012"
drivers/MMC/host/sdhci.c:120 [ssdhci]ssdhci_dumpregs =p "sdhci: cmd: 0x%08x |最大电流:0x%08x\012"
drivers/MMC/host/sdhci.c:122 [sdhci]ssdhci_dumpregs =p "sdhci: host ctl2:0x%08x\012"
drivers/MMC/host/sdhci.c:129 [sdhci]ssdhci_dumpregs =p "sdhci: Adma Err: 0x%08x | ADMA ptr:0x%08x%08x\012"
drivers/MMC/host/sdhci.c:133 [ssdhci]ssdhci_dumpregs =p "sdhci: Adma Err: 0x%08x | ADMA PTR: 0x%08x\012"
drivers/MMC/host/sdhci.c:136 [ssdhci]ssdhci_dumpregs =p "sdhci:======================================================== \012英寸
drivers/MMC/host/sdhci.c:707 [ssdhci]ssdhci_calc_timeout =p "sdhci [%s()]:%s:CMD%d 请求的超大超时0x%x!\012"
drivers/MMC/host/sdhci.c:788 [ssdhci]ssdhci_preped_data =p "sdhci[%s():由于传输大小(%d)\012"而恢复到 PIO
drivers/MMC/host/sdhci.c:822 [ssdhci]ssdhci_preped_data =p "sdhci[%s():由于对齐错误而恢复到 PIO \012"
drivers/MMC/host/sdhci.c:2576 [ssdhci]ssdhci_IRQ =p "sdhci [%s()]:***%s 获得中断:0x%08x\012"
drivers/MMC/host/sdhci.c:2383 [ssdhci]ssdhci_cmd_IRQ =p "sdhci [%s():在执行数据传输时无法等待忙信号"
drivers/MMC/host/sdhci.c:2418 [ssdhci]ssdhci_adma_show_error =p "sdhci [%s():%s:%p:DMA 0x%08x%08x、LEN 0x%04x、Attr=0x%02x\012"
drivers/MMC/host/sdhci.c:2423 [sdhci]ssdhci_adma_show_error =p "sdhci [%s():%s:%p:DMA 0x%08x、LEN 0x%04x、Attr=0x%02x\012"
drivers/MMC/host/sdhci.c:322 [sdhci]ssdhci_read_block_pio =p "sdhci [%s():pio reading\012"
drivers/MMC/host/sdhci.c:367 [sdhci]ssdhci_write_block_pio =p "sdhci [%s():pio writing\012"
drivers/MMC/host/sdhci.c:443 [ssdhci]ssdhci_transfer_pio =p "sdhci [%s()]:PIO 传输完成。\012"
drivers/MMC/host/sdhci.c:2530 [sdhci]ssdhci_data_IRQ =p "sdhci [%s():%s:DMA base 0x%08x、传输的0x%06x 字节、下一个0x%08x\012"
drivers/MMC/host/sdhci.c:2951 [ssdhci]ssdhci_add_host =p "sdhci [%s():控制器没有 SDMA 功能\012"
drivers/MMC/host/sdhci.c:2957 [ssdhci]ssdhci_add_host =p "sdhci [%s():禁用标记为断开的 DMA \012"
drivers/MMC/host/sdhci.c:2967 [ssdhci]ssdhci_add_host =p "sdhci [%s():禁用标记为断开的 ADMA \012"
drivers/MMC/host/sdhci.c:3146 [ssdhci]ssdhci_add_host =p "sdhci [%s()]:%s:Auto-CMD23可用\012"
drivers/MMC/host/sdhci.c:3148 [ssdhci]ssdhci_add_host =p "sdhci [%s()]:%s:Auto-CMD23不可用\012"
drivers/MMC/host/omap.c:755 [OMAP]MMC_OMAP-IRQ =p "MMC IRQ %04x (CMD %d):"
drivers/MMC/host/omap.c:771 [OMAP]MMC_omap_IRQ =p "数据超时(CMD%d)\012"
drivers/MMC/host/omap.c:783 [OMAP]MMC_omap_IRQ =p "数据 CRC 错误、剩余字节%d\012"
drivers/MMC/host/omap.c:786 [OMAP]MMC_omap_IRQ =p "data CRC error\012"
drivers/MMC/host/omap.c:822 [OMAP]MMC_OMAP-IRQ =p "忽略卡状态错误(CMD%d)\012"
drivers/MMC/host/omap.c:604 [OMAP]MMC_omap_abort_command =p "Aborting Stuck command CMD%d\012"
drivers/MMC/host/omap_hsmmc.c:2078 [omap_hsmmc]omap_hsmmc_start_signal_volte_switch =p "无法切换到3V\012"
drivers/MMC/host/omap_hsmmc.c:2082 [omap_hsmmc]omap_hsmmc_start_signal_volte_switch =p " I/O 电压切换至3V\012"
drivers/MMC/host/omap_hsmmc.c:2096 [omap_hsmmc]omap_hsmmc_start_signal_volte_switch =p "无法切换1.8V\012"
drivers/MMC/host/omap_hsmmc.c:2878 [omap_hsmmc]omap_hsmmc_runtime _suspend =p "disabled\012"
drivers/MMC/host/omap_hsmmc.c:2893 [omap_hsmmc]omap_hsmmc_runtime _suspend =p "挂起 SDIO IRQ、中止挂起\012"
drivers/MMC/host/omap_hsmmc.c:2125 [omap_hsmmc]omap_hsmmc_card_busy_low =p "卡繁忙\012"
drivers/MMC/host/omap_hsmmc.c:637 [omap_hsmmc]omap_hsmmc_stop_clock =p "MMC 时钟未停止\012"
drivers/MMC/host/omap_hsmmc.c:880 [omap_hsmmc]omap_hsmmc_context_restore =p "上下文已恢复:恢复计数%d\012"
drivers/MMC/host/omap_hsmmc.c:2920 [omap_hsmmc]omap_hsmmc_runruntime _resume =p "enabled\012"
drivers/MMC/host/omap_hsmmc.c:1311 [omap_hsmmc]omap_hsmmc_do_IRQ =p "AC12 err:0x%x\012"
drivers/MMC/host/omap_hsmmc.c:542 [omap_hsmmc]omap_hsmmc_reg_get =p "无法获取 VMMC 稳压器%ld、012 "
drivers/MMC/host/omap_hsmmc.c:558 [omap_hsmmc]omap_hsmmc_reg_get =p "无法获取 VMMC_aux 电脑控制器%ld、012 "
drivers/MMC/host/omap_hsmmc.c:568 [omap_hsmmc]omap_hsmmc_reg_get =p "无法获取 pbias 稳压器%ld、012 "
我们的问题是:如何启用 OMAP 和 OMAP_hsmmc 的调试信息,或者在 Linux-4.1.13中禁用它?