SDK版本ti-sdk-am335x-evm-08.00.00.00-Linux-x86-Install
从SD卡启动后,经常在udev加载后出现各种异常或则错误导致无法进入文件系统。错误log见附件
如下是某2次启动卡死的log.
正常进入文件系统和出现各种错误的概率大概一半一半,请问这些卡死之类的到底是什么原因导致的?是SD卡不稳定吗?
SD卡配置如下:配置了cd,但是没有用到wp.
mmc1_pins_default: pinmux_mmc1_pins {
pinctrl-single,pins = <
0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
0x15C (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
>;
};
&mmc1 {
status = "okay";
vmmc-supply = <&vmmc_reg>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc1_pins_default>;
pinctrl-1 = <&mmc1_pins_sleep>;
cd-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
};
INIT: version 2.88 booting
Starting udev
[ 3.621128] udevd[840]: starting version 182
/etc/rcS.d/S04udev: line 37: 841 Segmentation fault udevadm control –env=STARTUP=1
[ 3.791622] Unable to handle kernel NULL pointer dereference at virtual address 00000033
[ 3.802341] pgd = c0004000
[ 3.805898] [00000033] *pgd=00000000
[ 3.810573] Internal error: Oops: 17 [#1] ARM
[ 3.816253] Modules linked in:
[ 3.820248] CPU: 0 PID: 852 Comm: modprobe Not tainted 3.14.26 #22
[ 3.828315] task: ddc4f800 ti: ddc8a000 task.ti: ddc8a000
[ 3.835384] PC is at filp_close+0x24/0x84
[ 3.840623] LR is at put_files_struct+0x8c/0xd0
[ 3.846539] pc : [<c00c7904>] lr : [<c00e2514>] psr: 20000013
[ 3.846539] sp : ddc8bef0 ip : ddc8bf10 fp : ddc8bf0c
[ 3.861536] r10: 00000000 r9 : ddc8a000 r8 : 00000000
[ 3.868358] r7 : dd871e08 r6 : dd871e00 r5 : dd871e00 r4 : ddbf0144
[ 3.876871] r3 : 00000003 r2 : 00000000 r1 : dd871e00 r0 : ddbf0144
[ 3.885399] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 3.894719] Control: 10c5387d Table: 9dc9c019 DAC: 00000015
[ 3.902210] Process modprobe (pid: 852, stack limit = 0xddc8a238)
INIT: version 2.88 booting
Starting udev
[ 3.554404] udevd[840]: starting version 182
[ 3.882277] remoteproc0: powering up wkup_m3
[ 3.923285] remoteproc0: Booting fw image am335x-pm-firmware.elf, size 154420
Steven Liu1:
运行的平台是你自己做的板子吗?你的板子是DDR2还是DDR3的,是否有做过DDR3 software leveling呢?
一般来说遇到这种稳定性的问题,一定一定要先查你的DDR的稳定性。没做过DDR3 software leveling的话,出现问题的概率较高。
zizhen hu:
回复 Steven Liu1:
我们自己根据AM335X-EVM的做的板子,用的是DDR2。有什么工具可以测试DDR的稳定性吗?
Steven Liu1:
回复 zizhen hu:
做的DDR2的时候,有根据相关的指导手册做过DDR2的重配置吗?
主要是根据DDR2手册查验EMIF的timing参数,SDRAMCONFIG,还有根据你实际的走线长度来确认PHY侧的参数。
没做过的话可以根据这个帖子先确认你的DDR2配置是一切正常的。
如果说测试的话,没什么统一的测试工具,一般就是不断的给读写压力测试。
http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/113233.aspx
zizhen hu:
回复 Steven Liu1:
您好:
我们用的DDR2型号是MT47H256M8EB-25E.经过修改后参数如下:
经过测试,在进入文件系统后依旧有各种奇怪的错误。
/* Micron MT47H128M16RT-25E */#define MT47H128M16RT25E_EMIF_READ_LATENCY 0x100005#define MT47H128M16RT25E_EMIF_TIM1 0x088B1592//0x0666B3C9#define MT47H128M16RT25E_EMIF_TIM2 0x142131D2//0x243631CA#define MT47H128M16RT25E_EMIF_TIM3 0x000001df//0x0000033F#define MT47H128M16RT25E_EMIF_SDCFG 0x418056b2//0x41805332#define MT47H128M16RT25E_EMIF_SDREF 0x0000081a#define MT47H128M16RT25E_RATIO 0x80#define MT47H128M16RT25E_RD_DQS 0x12#define MT47H128M16RT25E_PHY_WR_DATA 0x40#define MT47H128M16RT25E_PHY_FIFO_WE 0x80#define MT47H128M16RT25E_IOCTRL_VALUE 0x18B