自己做的板子,主芯为am3354,最近替换了ti-processor-sdk-linux-am335x-evm-03.03.00.04(有修改)以后,TF卡启动往emmc烧写系统的时候会报如下错误,初步怀疑是MMC的配置问题但不能确定,请求各位帮忙分析一下。附上MMC0、MMC1原理图和设备树配置,设备树基于BBB dts进行修改。
mmc1: mmc@48060000 {
compatible = "ti,omap4-hsmmc";
ti,hwmods = "mmc1";
ti,dual-volt;
ti,needs-special-reset;
ti,needs-special-hs-handling;
dmas = <&edma_xbar 24 0 0
&edma_xbar 25 0 0>;
dma-names = "tx", "rx";
interrupts = <64>;
interrupt-parent = <&intc>;
reg = <0x48060000 0x1000>;
status = "disabled";
};
mmc2: mmc@481d8000 {
compatible = "ti,omap4-hsmmc";
ti,hwmods = "mmc2";
ti,needs-special-reset;
dmas = <&edma 2 0
&edma 3 0>;
dma-names = "tx", "rx";
interrupts = <28>;
interrupt-parent = <&intc>;
reg = <0x481d8000 0x1000>;
status = "disabled";
};
&mmc1 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins &mmc0_cd_pins>;
vmmc-supply = <&vmmcsd_fixed>;
cd-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
bus-width = <4>;
status = "okay";
};
&mmc2 {
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <4>;
status = "okay";
};
mmc0_pins: pinmux_mmc0_pins {
pinctrl-single,pins = <
0x00F0 (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_dat3.mmc0_dat3 */
0x00F4 (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_dat2.mmc0_dat2 */
0x00F8 (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_dat1.mmc0_dat1 */
0x00FC (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_dat0.mmc0_dat0 */
0x0100 (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_clk.mmc0_clk */
0x0104 (MUX_MODE0 | PIN_INPUT_PULLUP) /* mmc0_cmd.mmc0_cmd */
>;
};
mmc1_pins: pinmux_mmc1_pins {
pinctrl-single,pins = <
0x000C (MUX_MODE1 | PIN_INPUT_PULLUP) /* gpmc_ad3.mmc1_dat3 */
0x0008 (MUX_MODE1 | PIN_INPUT_PULLUP) /* gpmc_ad2.mmc1_dat2 */
0x0004 (MUX_MODE1 | PIN_INPUT_PULLUP) /* gpmc_ad1.mmc1_dat1 */
0x0000 (MUX_MODE1 | PIN_INPUT_PULLUP) /* gpmc_ad0.mmc1_dat0 */
0x0080 (MUX_MODE2 | PIN_INPUT_PULLUP) /* gpmc_csn1.mmc1_clk */
0x0084 (MUX_MODE2 | PIN_INPUT_PULLUP) /* gpmc_csn2.mmc1_cmd */
>;
};
mmc0_cd_pins: pinmux_mmc0_cd_pins {
pinctrl-single,pins = <
0x0234 (MUX_MODE7 | PIN_INPUT_PULLUP)
>;
};
报错:
[ 255.376793] mmcqd/1: page allocation failure: order:2, mode:0x208c020
[ 255.383300] CPU: 0 PID: 52 Comm: mmcqd/1 Not tainted 4.4.41-gf9f6f0db2d #33
[ 255.406472] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 255.421740] Backtrace:
[ 255.424281] [<c0013508>] (dump_backtrace) from [<c0013704>] (show_stack+0x18/0x1c)
[ 255.445211] r7:0208c020 r6:00000000 r5:00000002 r4:0208c020
[ 255.454557] [<c00136ec>] (show_stack) from [<c02ac908>] (dump_stack+0x24/0x28)
[ 255.479282] [<c02ac8e4>] (dump_stack) from [<c00ba054>] (warn_alloc_failed+0xe4/0x124)
[ 255.497820] [<c00b9f74>] (warn_alloc_failed) from [<c00bd2a4>] (__alloc_pages_nodemask+0x7e0/0x988)
[ 255.520846] r3:0208c020 r2:00000000
[ 255.524478] r6:00000030 r5:00000000 r4:00000002
[ 255.536782] [<c00bcac4>] (__alloc_pages_nodemask) from [<c00bd64c>] (alloc_kmem_pages+0x20/0xac)
[ 255.545608] r10:dc534de0 r9:dc148218 r8:00000001 r7:02088020 r6:00000002 r5:0208c020
[ 255.570270] r4:00000000
[ 255.572857] [<c00bd62c>] (alloc_kmem_pages) from [<c00d4354>] (kmalloc_order+0x18/0x30)
[ 255.600295] r7:02088020 r6:dc503d48 r5:dc534000 r4:00000000
[ 255.606076] [<c00d433c>] (kmalloc_order) from [<c00f6218>] (__kmalloc+0x1a0/0x1ec)
[ 255.631278] [<c00f6078>] (__kmalloc) from [<c033e070>] (edma_prep_slave_sg+0xa0/0x35c)
[ 255.650172] r9:dc148218 r8:00000001 r7:ffffffff r6:dc503d48 r5:dc534000 r4:00000000
[ 255.665413] [<c033dfd0>] (edma_prep_slave_sg) from [<c0574f34>] (omap_hsmmc_request+0x460/0x630)
[ 255.686943] r10:dc534de0 r9:dc503e08 r8:00000000 r7:ffffffff r6:dc503d48 r5:c033dfd0
[ 255.694877] r4:dc44b400
[ 255.710032] [<c0574ad4>] (omap_hsmmc_request) from [<c055d024>] (__mmc_start_request+0x48/0xdc)
[ 255.730400] r10:dc539eac r9:dc503e50 r8:dc503d48 r7:00000001 r6:dc503d48 r5:dc44b400
[ 255.747628] r4:dc503d48
[ 255.750205] [<c055cfdc>] (__mmc_start_request) from [<c055d1b0>] (mmc_start_request+0xf8/0x120)
[ 255.775303] r9:dc503e50 r8:dc503d34 r7:00000001 r6:dc503d48 r5:dc44b400 r4:dc503d48
[ 255.783282] [<c055d0b8>] (mmc_start_request) from [<c055e61c>] (mmc_start_req+0x2cc/0x418)
[ 255.811177] r5:00000001 r4:dc44b400
[ 255.814844] [<c055e350>] (mmc_start_req) from [<c056d404>] (mmc_blk_issue_rw_rq+0xc4/0xb64)
[ 255.839494] r10:dc49d800 r9:dc5631d0 r8:dc503c00 r7:dc503c00 r6:dc503c04 r5:dc5631d0
[ 255.856450] r4:dc503d48
[ 255.863061] [<c056d340>] (mmc_blk_issue_rw_rq) from [<c056e134>] (mmc_blk_issue_rq+0x290/0x524)
[ 255.884582] r10:dc5631d0 r9:dc38a688 r8:dc503c00 r7:dc503c00 r6:24590001 r5:dc49d800
[ 255.892581] r4:dc503c04
[ 255.895154] [<c056dea4>] (mmc_blk_issue_rq) from [<c056faf4>] (mmc_queue_thread+0xd0/0x194)
[ 255.928420] r10:dc503c0c r9:dc38a688 r8:00000001 r7:00000000 r6:24590001 r5:dc538000
[ 255.936344] r4:dc503c04
[ 255.952334] [<c056fa24>] (mmc_queue_thread) from [<c004d95c>] (kthread+0xdc/0xf4)
[ 255.974229] r10:00000000 r9:00000000 r8:00000000 r7:c056fa24 r6:dc503c04 r5:dc504bc0
[ 255.994625] r4:00000000 r3:dc48b180
[ 256.003156] [<c004d880>] (kthread) from [<c000fab8>] (ret_from_fork+0x14/0x3c)
[ 256.025207] r7:00000000 r6:00000000 r5:c004d880 r4:dc504bc0
[ 256.034397] Mem-Info:
[ 256.047347] active_anon:12859 inactive_anon:2598 isolated_anon:0
[ 256.047347] active_file:49772 inactive_file:50218 isolated_file:0
[ 256.047347] unevictable:0 dirty:6507 writeback:10657 unstable:0
[ 256.047347] slab_reclaimable:6011 slab_unreclaimable:2119
[ 256.047347] mapped:8378 shmem:3247 pagetables:233 bounce:0
[ 256.047347] free:992 free_pcp:48 free_cma:0
[ 256.130819] Normal free:3596kB min:2708kB low:3384kB high:4060kB active_anon:51436kB inactive_anon:10392kB active_file:199200kB inactive_file:201096kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:524288kB managed:508836kB mlocked:0kB dirty:26348kB writeback:42628kB mapped:33512kB shmem:12988kB slab_reclaimable:24048kB slab_unreclaimable:8476kB kernel_stack:792kB pagetables:932kB unstable:0kB bounce:0kB free_pcp:236kB local_pcp:236kB free_cma:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[ 256.213314] lowmem_reserve[]: 0 0 0
[ 256.217006] Normal: 1168*4kB (UME) 150*8kB (UM) 5*16kB (M) 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 5952kB
[ 256.230948] 102587 total pagecache pages
[ 256.234917] 0 pages in swap cache
[ 256.239547] Swap cache stats: add 0, delete 0, find 0/0
[ 256.244806] Free swap = 0kB
[ 256.248527] Total swap = 0kB
[ 256.251440] 131072 pages RAM
[ 256.254327] 0 pages HighMem/MovableOnly
[ 256.259117] 3863 pages reserved
[ 256.262274] 12288 pages cma reserved
[ 256.265885] edma 49000000.edma: edma_prep_slave_sg: Failed to allocate a descriptor
[ 256.275663] omap_hsmmc 481d8000.mmc: prep_slave_sg() failed
[ 256.282743] omap_hsmmc 481d8000.mmc: MMC start dma failure
[ 256.290499] mmcblk1: unknown error -1 sending read/write command, card status 0x900
[ 256.299136] blk_update_request: I/O error, dev mmcblk1, sector 2280121
[ 256.305773] blk_update_request: I/O error, dev mmcblk1, sector 2280129
[ 256.313266] blk_update_request: I/O error, dev mmcblk1, sector 2280137
[ 256.320412] blk_update_request: I/O error, dev mmcblk1, sector 2280145
[ 256.327486] blk_update_request: I/O error, dev mmcblk1, sector 2280153
[ 256.334072] blk_update_request: I/O error, dev mmcblk1, sector 2280161
[ 256.341328] blk_update_request: I/O error, dev mmcblk1, sector 2280169
[ 256.348373] blk_update_request: I/O error, dev mmcblk1, sector 2280177
[ 256.354967] blk_update_request: I/O error, dev mmcblk1, sector 2280185
[ 256.362255] blk_update_request: I/O error, dev mmcblk1, sector 2280193
[ 256.370273] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18586 (offset 0 size 253952 starting block 285077)
[ 256.384292] Buffer I/O error on device mmcblk1p2, logical block 154487
[ 256.391393] Buffer I/O error on device mmcblk1p2, logical block 154488
[ 256.398440] Buffer I/O error on device mmcblk1p2, logical block 154489
[ 256.405005] Buffer I/O error on device mmcblk1p2, logical block 154490
[ 256.412215] Buffer I/O error on device mmcblk1p2, logical block 154491
[ 256.419204] Buffer I/O error on device mmcblk1p2, logical block 154492
[ 256.425772] Buffer I/O error on device mmcblk1p2, logical block 154493
[ 256.432998] Buffer I/O error on device mmcblk1p2, logical block 154494
[ 256.440000] Buffer I/O error on device mmcblk1p2, logical block 154495
[ 256.446977] Buffer I/O error on device mmcblk1p2, logical block 154496
[ 256.453716] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18587 (offset 0 size 4096 starting block 285078)
[ 256.468040] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18588 (offset 0 size 8192 starting block 285080)
[ 256.481845] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18589 (offset 0 size 20480 starting block 285085)
[ 256.495610] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18590 (offset 0 size 4096 starting block 285086)
[ 256.509374] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18591 (offset 0 size 4096 starting block 285087)
[ 256.523167] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18592 (offset 0 size 20480 starting block 285092)
[ 256.536982] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18594 (offset 0 size 8192 starting block 285094)
[ 256.550072] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18595 (offset 0 size 4096 starting block 285095)
[ 256.563978] EXT4-fs warning (device mmcblk1p2): ext4_end_bio:329: I/O error -5 writing to inode 18603 (offset 0 size 4096 starting block 285096)
[ 262.661695] mmcqd/1: page allocation failure: order:2, mode:0x208c020
[ 262.677743] CPU: 0 PID: 52 Comm: mmcqd/1 Not tainted 4.4.41-gf9f6f0db2d #33
[ 262.684778] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 262.708190] Backtrace: