This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

pri mmcboot leads to u-boot reset and hang

Other Parts Discussed in Thread: DRA752

This behavior is seen in omap5_uevm and dra7xx evm boards respectively. The u-boot is built from meta-ti-glsdk layer. The branch used here is p-ti-u-boot-2013.04. And the source is fetched from git://git.omapzoom.org/repo/u-boot.git. Its found that when user tries to print mmcboot, using pri mmcboot the u-boot gets reset. After setting the variables using saveenv command its also observed that 'mmc part' doesn't work and user can see an infinite loop of prints of prefetch abort.

Below mentioned is the activity done in the u-boot which shows pri mmcboot leads to resetting and hanging of u-boot:

DRA752 EVM # pri

arch=arm

baudrate=115200

board=dra7xx

board_name=dra7xx

bootcmd=run findfdt; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;

bootdelay=3

bootdir=/boot

bootfile=zImage

bootpart=0:2

bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}

console=ttyO2,115200n8

cpu=armv7

eth1addr=7c:66:9d:ea:56:29

ethact=cpsw

ethaddr=7c:66:9d:ea:56:28

fdt_high=0xffffffff

fdtaddr=0x80f80000

findfdt=if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi;

importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}

loadaddr=0x82000000

loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt

loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr

loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};

loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}

mmcargs=setenv bootargs console=${console} ${optargs} vram=${vram} root=${mmcroot} rootfstype=${mmcrootfstype}

mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript; else if run loadbootenv; then run importbootenv; fi;if test -n ${uenvcmd}; ;

mmcdev=0

mmcroot=/dev/mmcblk0p2 rw

mmcrootfstype=ext4 rootwait

soc=omap5

usbtty=cdc_acm

vendor=ti

vram=16M

 

Environment size: 1480/131068 bytes

DRA752 EVM # pri bootcmd

bootcmd=run findfdt; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;

DRA752 EVM # pri mmcboot

mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript; else if run loadbootenv; then run importbootenv; fi;if test -n ${uenvcmd}; ;

prefetch abort

pc : [<61636d70>]          lr : [<61636d6d>]

sp : def13dc0  ip : 00000000     fp : def142d0

r10: defcc414  r9 : 00000002     r8 : def13f38

r7 : def144d0  r6 : 00000001     r5 : 00000000  r4 : 206e7572

r3 : 00000000  r2 : 00000001     r1 : 0000000a  r0 : 00000154

Flags: nZCv  IRQs off  FIQs off  Mode SVC_32

Resetting CPU ...

 

resetting ...

 

  • I have noticed that problem on the J6 platform also

    When compared the include/configs/omap5_common.h and omap4_common.h  the omap4  extra env settings are done  very simple and I believe the  one for opmap5/dra7x should be done as well.

    On the other hand this prefech abort  could be caused because of print within the IRQ handler, which  can be avoided  by  simplifying  the  CONFIG_EXTRA_ENV_SETTINGS.

    Regards,

    Boyko