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.

AM572X 内存擦除



测试AM572X EVM时,用tftpboot [ip]  [bootfile]操作了,正确操作为tftpboot[addr] [ip]  [bootfile],但是命令也成功执行了,请问这里我没输入烧写地址是默认为0了吗?还有,请问uboot内存擦除命令是什么,找了一下似乎没有发现,TI  wiki偶尔上不了,请问有离线版的库吗?

  • 没太懂你表达的意思。是想问TFTP的地址,原来那个地址上面是什么数据吗?这个地址原来上是有随机数据的,但是你down下去了就写成了你的数据。然后你直接向从这里启动或者烧录就可以了。然后现在的问题是什么?

    如果只是想蚊怎么样把内存全写0或者全写1的话,你可以直接试试这个命令: 

    mw.b 0x82000000 0xFF 0x20000

              内存地址       全1    偏移量(即写入的空间)


  • 我的意思是我用TFTP命令漏了写烧写地址,但还是把数据烧写成功了,请问我此时的烧写地址是多少?是0吗?

  • 不是,我们的memory map中DDR的起始地址是0x80000000。

    你tftp的命令地址漏了,但是还是down下来了image这点,应该是download到了默认设置的环境变量地址中。

    能发一下你在uboot中的环境变量吗?在uboot的环节中运行pri即可得到。然后运行tftp的结果也一并发一下。

  • 最近有其他任务要做,一直没回复,抱歉,下面是运行pri的结果:

    arch=arm
    args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
    baudrate=115200
    board=am57xx
    board_name=am57xx_evm_es2plus
    board_rev=A.30
    board_serial=28164P550879
    bootcmd=if test ${dofastboot} -eq 1; then echo Boot fastboot requested, resetting dofastboot ...;setenv dofastboot 0; saveenv;echo Booting into fastboot ...; fastboot;fi;run findfdt; run envboot; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot /dev/mmcblk0p2 rw; run mmcboot;
    bootdelay=1
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootfile=zImage
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyO2,115200n8
    cpu=armv7
    dfu_alt_info_emmc=rawemmc raw 0 3751936;boot part 1 1;rootfs part 1 2;MLO fat 1 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x400;spl-os-args.raw raw 0x80 0x80;spl-os-image.raw raw 0x900 0x2000;spl-os-args fat 1 1;spl-os-image fat 1 1;u-boot.img fat 1 1;uEnv.txt fat 1 1
    dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x400;spl-os-args.raw raw 0x80 0x80;spl-os-image.raw raw 0x900 0x2000;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
    dfu_alt_info_qspi=MLO raw 0x0 0x010000;MLO.backup1 raw 0x010000 0x010000;MLO.backup2 raw 0x020000 0x010000;MLO.backup3 raw 0x030000 0x010000;u-boot.img raw 0x040000 0x0100000;u-boot-spl-os raw 0x140000 0x080000;u-boot-env raw 0x1C0000 0x010000;u-boot-env.backup raw 0x1D0000 0x010000;kernel raw 0x1E0000 0x800000
    dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
    dfu_bufsiz=0x10000
    dofastboot=0
    envboot=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 echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;
    eth1addr=a4:d5:78:c4:e1:51
    ethact=cpsw
    ethaddr=a4:d5:78:c4:e1:50
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtfile=undefined
    findfdt=if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_es2plus; then setenv fdtfile am57xx-beagle-x15-es2plus.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_es2plus; then setenv fdtfile am57xx-evm-es2plus.dtb; fi;if test $board_name = am572x_idk; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am571x_idk; then setenv fdtfile am571x-idk.dtb; fi;if test $board_name = am572x_idk_osd; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am571x_idk_osd; then setenv fdtfile am571x-idk-lcd-osd.dtb; fi;if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi;
    finduuid=part uuid mmc 0:2 uuid
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr
    loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};
    loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi;fi;
    mmcdev=0
    mmcrootfstype=ext4 rootwait
    netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
    netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
    netloadfdt=tftp ${fdtaddr} ${fdtfile}
    netloadimage=tftp ${loadaddr} ${bootfile}
    nfsopts=nolock
    partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
    ramdisk_addr_r=0x88080000
    rdaddr=0x88080000
    rootpath=/export/rootfs
    scsidevs=0
    soc=omap5
    static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
    stderr=serial
    stdin=serial
    stdout=serial
    usbtty=cdc_acm
    vendor=ti
    ver=U-Boot 2015.07 (Jan 28 2016 - 14:19:33 -0500)
    vram=16M

    Environment size: 4631/65532 bytes

    之前运行tftp命令是先临时设置server ip为我的虚拟机ip,ping通之后测试tftp命令,然后漏了地址也down下来了,你所指的tftp结果是让我再按照之前的运行一边吗?

  • 是的。

    你可以查一下,你漏了地址测试TFTP的时候,他是不是down了zImage在0x82000000这个地址上面。

    这里看到你的环境变量中有:

    netloadimage=tftp ${loadaddr} ${bootfile}

    loadaddr=0x82000000

    bootfile=zImage