ARMプロセッサベースのカスタムボードからLinuxを起動しようとしています。カーネルはSDカードとeMMCの両方で正常に実行されますが、カーネルがルートファイルシステムをマウントしようとすると、ルートパーティションをマウントできますが、次のエラーが発生した後に中断されます。
[ 11.303145] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[ 11.311651] mmcblk mmc1:aaaa: Card claimed for testing.
[ 11.318832] mmcblk1: mmc1:aaaa SL16G 14.8 GiB
[ 11.341076] mmcblk1: p1
[ 11.461523] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
[ 11.473340] VFS: Mounted root (ext4 filesystem) on device 179:33.
[ 11.488610] devtmpfs: mounted
[ 11.493848] Freeing unused kernel memory: 500K (c0b0d000 - c0b8a000)
[ 11.911302] init: plymouth-upstart-bridge main process (115) terminated with status 1
[ 11.923611] init: plymouth-upstart-bridge main process ended, respawning
[ 11.935367] mmc1: ADMA error
[ 11.941245] sdhci: =========== REGISTER DUMP (mmc1)===========
[ 11.949353] sdhci: Sys addr: 0x00000000 | Version: 0x00000303
[ 11.957510] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000028
[ 11.965688] sdhci: Argument: 0x00440cc0 | Trn mode: 0x00000033
[ 11.973895] sdhci: Present: 0x01fb0206 | Host ctl: 0x00000013
[ 11.982134] sdhci: Power: 0x0000000d | Blk gap: 0x00000000
[ 11.990404] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 11.998644] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 12.006822] sdhci: Int enab: 0x02ff000b | Sig enab: 0x02fc000b
[ 12.014939] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 12.022978] sdhci: Caps: 0x376fd080 | Caps_1: 0x10002f73
[ 12.030966] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 12.038910] sdhci: Host ctl2: 0x0000308b
[ 12.044909] sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0xae8420c0
[ 12.052861] sdhci: ===========================================
回避策として、ADMAをカーネルコマンドライン引数に渡して無効にしようとすると、sdhci.debug_quirks=32832
システムは次の場所で中断されます。
[ 8.076631] Waiting for root device /dev/mmcblk1p1...
私は今詰まっていますが、誰でもいくつかの解決策を提案できますか?
ベストアンサー1
DDRには、2つのDDRチップのチップ選択がアクティブのままであるという配線問題がある。これにより、起動時にADMAエラーを含むいくつかのランダムな問題が発生しました。チップ選択の問題を解決するために、ボードをリワークしてこのエラーを排除しました。