3

我正在使用 linux 内核 SD/MMC 驱动程序进行编程,但我对此知之甚少。内核打印下面的记录器日志。从转储寄存器日志中,我无法检测到 MMC 驱动程序或 MMC 硬件的问题。如果有谁熟悉它并帮助我?(对不起我的英语不好)另外:我使用这个MMC在CortexA9中启动一个android,在启动之前会很长时间并且很多“Timeout waiting for hardware interrupt”,看来是我的MMC驱动程序或硬件造成的?

日志如下:

[   11.356884] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   11.366256] 
[   11.366259] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   11.377104] : =========== REGISTER DUMP (mmc0)===========
[   11.382487] : Sys addr: 0x00000000 | Version:  0x00000200
[   11.387868] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   11.393250] : Argument: 0x00000c00 | Trn mode: 0x00000000
[   11.398631] : Present:  0x01f70001 | Host ctl: 0x00000000
[   11.404012] : Power:    0x00000001 | Blk gap:  0x00000000
[   11.409394] : Wake-up:  0x00000000 | Clock:    0x00004007
[   11.414777] : Timeout:  0x00000000 | Int stat: 0x00000000
[   11.420157] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   11.425540] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   11.430920] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   11.436302] : Cmd:      0x0000341a | Max curr: 0x00000001
[   11.441684] : ===========================================
[   11.447066] 
[   11.447069] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   21.474339] mmc0: Timeout waiting for hardware interrupt.
[   21.476884] 
[   21.476888] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   21.486258] 
[   21.486260] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   21.497108] : =========== REGISTER DUMP (mmc0)===========
[   21.502491] : Sys addr: 0x00000000 | Version:  0x00000200
[   21.507871] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   21.513253] : Argument: 0x80000c08 | Trn mode: 0x00000000
[   21.518634] : Present:  0x01f70001 | Host ctl: 0x00000000
[   21.524015] : Power:    0x00000001 | Blk gap:  0x00000000
[   21.529399] : Wake-up:  0x00000000 | Clock:    0x00004007
[   21.534779] : Timeout:  0x00000000 | Int stat: 0x00000000
[   21.540160] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   21.545542] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   21.550924] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   21.556305] : Cmd:      0x0000341a | Max curr: 0x00000001
[   21.561687] : ===========================================
[   21.567068] 
[   21.567071] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   31.594338] mmc0: Timeout waiting for hardware interrupt.
[   31.596879] 
[   31.596882] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   31.606253] 
[   31.606256] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   31.617102] : =========== REGISTER DUMP (mmc0)===========
[   31.622484] : Sys addr: 0x00000000 | Version:  0x00000200
[   31.627865] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   31.633248] : Argument: 0x00000000 | Trn mode: 0x00000000
[   31.638629] : Present:  0x01f70000 | Host ctl: 0x00000000
[   31.644010] : Power:    0x00000001 | Blk gap:  0x00000000
[   31.649392] : Wake-up:  0x00000000 | Clock:    0x00004007
[   31.654773] : Timeout:  0x00000000 | Int stat: 0x00000000
[   31.660155] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   31.665536] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   31.670920] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   31.676301] : Cmd:      0x00000000 | Max curr: 0x00000001
[   31.681682] : ===========================================
[   31.687063] 
[   31.687065] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   41.714339] mmc0: Timeout waiting for hardware interrupt.
[   41.716881] 
[   41.716885] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   41.726256] 
[   41.726259] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   41.737106] : =========== REGISTER DUMP (mmc0)===========
[   41.742489] : Sys addr: 0x00000000 | Version:  0x00000200
[   41.747869] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   41.753251] : Argument: 0x000001aa | Trn mode: 0x00000000
[   41.758632] : Present:  0x01f70000 | Host ctl: 0x00000000
[   41.764014] : Power:    0x00000001 | Blk gap:  0x00000000
[   41.769395] : Wake-up:  0x00000000 | Clock:    0x00004007
[   41.774777] : Timeout:  0x00000000 | Int stat: 0x00000000
[   41.780158] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   41.785540] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   41.790923] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   41.796303] : Cmd:      0x0000081a | Max curr: 0x00000001
[   41.801684] : ===========================================
[   41.807066] 
[   41.807069] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   51.834338] mmc0: Timeout waiting for hardware interrupt.
[   51.836885] 
[   51.836888] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   51.846259] 
[   51.846261] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   51.857108] : =========== REGISTER DUMP (mmc0)===========
[   51.862491] : Sys addr: 0x00000000 | Version:  0x00000200
[   51.867874] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   51.873255] : Argument: 0x00000000 | Trn mode: 0x00000000
[   51.878635] : Present:  0x01f70001 | Host ctl: 0x00000000
[   51.884017] : Power:    0x00000001 | Blk gap:  0x00000000
[   51.889399] : Wake-up:  0x00000000 | Clock:    0x00004007
[   51.894780] : Timeout:  0x00000000 | Int stat: 0x00000000
[   51.900162] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   51.905543] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   51.910926] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   51.916307] : Cmd:      0x00000502 | Max curr: 0x00000001
[   51.921688] : ===========================================
[   51.927069] 
[   51.927072] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   61.954338] mmc0: Timeout waiting for hardware interrupt.
[   61.956879] 
[   61.956883] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   61.966255] 
[   61.966257] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   61.977103] : =========== REGISTER DUMP (mmc0)===========
[   61.982486] : Sys addr: 0x00000000 | Version:  0x00000200
[   61.987868] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   61.993248] : Argument: 0x00000000 | Trn mode: 0x00000000
[   61.998630] : Present:  0x01f70001 | Host ctl: 0x00000000
[   62.004013] : Power:    0x00000001 | Blk gap:  0x00000000
[   62.009394] : Wake-up:  0x00000000 | Clock:    0x00004007
[   62.014775] : Timeout:  0x00000000 | Int stat: 0x00000000
[   62.020156] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   62.025538] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   62.030921] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   62.036301] : Cmd:      0x00000502 | Max curr: 0x00000001
[   62.041682] : ===========================================
[   62.047065] 
[   62.047067] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   72.074338] mmc0: Timeout waiting for hardware interrupt.
[   72.076883] 
[   72.076886] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   72.086257] 
[   72.086260] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   72.097106] : =========== REGISTER DUMP (mmc0)===========
[   72.102489] : Sys addr: 0x00000000 | Version:  0x00000200
[   72.107872] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   72.113252] : Argument: 0x00000000 | Trn mode: 0x00000000
[   72.118634] : Present:  0x01f70001 | Host ctl: 0x00000000
[   72.124015] : Power:    0x00000001 | Blk gap:  0x00000000
[   72.129397] : Wake-up:  0x00000000 | Clock:    0x00004007
[   72.134778] : Timeout:  0x00000000 | Int stat: 0x00000000
[   72.140161] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   72.145541] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   72.150924] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   72.156305] : Cmd:      0x00000502 | Max curr: 0x00000001
[   72.161686] : ===========================================
[   72.167068] 
[   72.167071] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   82.194338] mmc0: Timeout waiting for hardware interrupt.
[   82.196878] 
[   82.196881] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   82.206251] 
[   82.206254] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   82.217101] : =========== REGISTER DUMP (mmc0)===========
[   82.222485] : Sys addr: 0x00000000 | Version:  0x00000200
[   82.227865] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   82.233246] : Argument: 0x00000000 | Trn mode: 0x00000000
[   82.238628] : Present:  0x01f70001 | Host ctl: 0x00000000
[   82.244009] : Power:    0x00000001 | Blk gap:  0x00000000
[   82.249391] : Wake-up:  0x00000000 | Clock:    0x00004007
[   82.254773] : Timeout:  0x00000000 | Int stat: 0x00000000
[   82.260154] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   82.265536] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   82.270918] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   82.276299] : Cmd:      0x00000502 | Max curr: 0x00000001
[   82.281681] : ===========================================
[   82.287063] 
[   82.287066] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[   92.314341] mmc0: Timeout waiting for hardware interrupt.
[   92.316881] 
[   92.316885] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[   92.326256] 
[   92.326259] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[   92.337106] : =========== REGISTER DUMP (mmc0)===========
[   92.342488] : Sys addr: 0x00000000 | Version:  0x00000200
[   92.347870] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[   92.353250] : Argument: 0x00000000 | Trn mode: 0x00000000
[   92.358632] : Present:  0x01f70000 | Host ctl: 0x00000000
[   92.364013] : Power:    0x00000001 | Blk gap:  0x00000000
[   92.369395] : Wake-up:  0x00000000 | Clock:    0x00004007
[   92.374776] : Timeout:  0x00000000 | Int stat: 0x00000000
[   92.380157] : Int enab: 0x00000000 | Sig enab: 0x00000000
[   92.385539] : AC12 err: 0x00000000 | Slot int: 0x00000000
[   92.390922] : Caps:     0x07e00080 | Caps_1:   0x00000000
[   92.396303] : Cmd:      0x0000371a | Max curr: 0x00000001
[   92.401685] : ===========================================
[   92.407066] 
[   92.407069] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[  102.434339] mmc0: Timeout waiting for hardware interrupt.
[  102.436884] 
[  102.436887] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[  102.446259] 
[  102.446262] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[  102.457109] : =========== REGISTER DUMP (mmc0)===========
[  102.462490] : Sys addr: 0x00000000 | Version:  0x00000200
[  102.467872] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[  102.473253] : Argument: 0x00000000 | Trn mode: 0x00000000
[  102.478635] : Present:  0x01f70000 | Host ctl: 0x00000000
[  102.484018] : Power:    0x00000001 | Blk gap:  0x00000000
[  102.489399] : Wake-up:  0x00000000 | Clock:    0x00004007
[  102.494779] : Timeout:  0x00000000 | Int stat: 0x00000000
[  102.500161] : Int enab: 0x00000000 | Sig enab: 0x00000000
[  102.505542] : AC12 err: 0x00000000 | Slot int: 0x00000000
[  102.510924] : Caps:     0x07e00080 | Caps_1:   0x00000000
[  102.516306] : Cmd:      0x0000371a | Max curr: 0x00000001
[  102.521688] : ===========================================
[  102.527070] 
[  102.527073] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[  112.554340] mmc0: Timeout waiting for hardware interrupt.
[  112.556888] 
[  112.556891] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[  112.566262] 
[  112.566265] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[  112.577112] : =========== REGISTER DUMP (mmc0)===========
[  112.582495] : Sys addr: 0x00000000 | Version:  0x00000200
[  112.587875] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[  112.593258] : Argument: 0x00000000 | Trn mode: 0x00000000
[  112.598638] : Present:  0x01f70000 | Host ctl: 0x00000000
[  112.604019] : Power:    0x00000001 | Blk gap:  0x00000000
[  112.609401] : Wake-up:  0x00000000 | Clock:    0x00004007
[  112.614782] : Timeout:  0x00000000 | Int stat: 0x00000000
[  112.620164] : Int enab: 0x00000000 | Sig enab: 0x00000000
[  112.625546] : AC12 err: 0x00000000 | Slot int: 0x00000000
[  112.630928] : Caps:     0x07e00080 | Caps_1:   0x00000000
[  112.636309] : Cmd:      0x0000371a | Max curr: 0x00000001
[  112.641691] : ===========================================
[  112.647072] 
[  112.647075] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[  122.674338] mmc0: Timeout waiting for hardware interrupt.
[  122.676882] 
[  122.676885] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[  122.686257] 
[  122.686260] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[  122.697107] : =========== REGISTER DUMP (mmc0)===========
[  122.702488] : Sys addr: 0x00000000 | Version:  0x00000200
[  122.707870] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[  122.713251] : Argument: 0x00000000 | Trn mode: 0x00000000
[  122.718633] : Present:  0x01f70000 | Host ctl: 0x00000000
[  122.724014] : Power:    0x00000001 | Blk gap:  0x00000000
[  122.729397] : Wake-up:  0x00000000 | Clock:    0x00004007
[  122.734777] : Timeout:  0x00000000 | Int stat: 0x00000000
[  122.740159] : Int enab: 0x00000000 | Sig enab: 0x00000000
[  122.745540] : AC12 err: 0x00000000 | Slot int: 0x00000000
[  122.750922] : Caps:     0x07e00080 | Caps_1:   0x00000000
[  122.756304] : Cmd:      0x0000371a | Max curr: 0x00000001
[  122.761686] : ===========================================
[  122.767068] 
[  122.767071] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[  132.794340] mmc0: Timeout waiting for hardware interrupt.
[  132.796887] 
[  132.796890] ^^^^^^^Sirfsoc-dsmmc.c >> sdhci_timeout_timer() error -- 

[  132.806259] 
[  132.806262] ^^^^^^^Enter sdhci_dumpregs function after sdhci_timeout_timer() 
error -- add by ^^^^^^^
[  132.817110] : =========== REGISTER DUMP (mmc0)===========
[  132.822493] : Sys addr: 0x00000000 | Version:  0x00000200
[  132.827874] : Blk size: 0x00000000 | Blk cnt:  0x00000000
[  132.833255] : Argument: 0x00000000 | Trn mode: 0x00000000
[  132.838636] : Present:  0x01f70001 | Host ctl: 0x00000000
[  132.844017] : Power:    0x00000001 | Blk gap:  0x00000000
[  132.849399] : Wake-up:  0x00000000 | Clock:    0x00004007
[  132.854781] : Timeout:  0x00000000 | Int stat: 0x00000000
[  132.860162] : Int enab: 0x00000000 | Sig enab: 0x00000000
[  132.865544] : AC12 err: 0x00000000 | Slot int: 0x00000000
[  132.870927] : Caps:     0x07e00080 | Caps_1:   0x00000000
[  132.876307] : Cmd:      0x00000102 | Max curr: 0x00000001
[  132.881688] : ===========================================
[  132.887070] 
[  132.887073] ^^^^^^^sdchci_dumpregs after sdhci_timeout_timer() error -- add b
y ^^^^^^^
[  133.091254] mmc0: new high speed SDHC card at address b368
[  133.094266] mmcblk0: mmc0:b368 00000 7.51 GiB 
[  133.106779]  mmcblk0: p1 p2 p3 p4 < p5 p6 p7 p8 >
[  133.111292] sirfsoc_rtc sirfsoc_rtc.0: setting system clock to 1970-01-01 02:
23:46 UTC (8626)
[  133.127864] Freeing init memory: 2868K
[  133.442704] mmc1: new SD card at address aaaa
[  133.445366] mmcblk1: mmc1:aaaa SU02G 1.84 GiB 
[  133.457479]  mmcblk1: p1
[  133.657088] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. O
pts: (null)
4

0 回答 0