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.

关于AM3352使用Uniflash烧录工具通过USB烧录的疑问

Other Parts Discussed in Thread: UNIFLASH, FLASHTOOL, AM3352, AM3358

现在在使用Uniflash烧录工具通过USB烧录,烧录过程中出现异常如下:

板子的sysboot[4,,0]引脚配置:10111  MMC0 SPIO UART0 USB0

板子上之前有用SD卡烧录过程序,现在打算改用Uniflash烧录

烧录文件按照链接中制作和修改的:www.deyisupport.com/.../52381.aspx

烧录路径C:\AM335x_Flashtool\images中包含的文件:debrick.scr  flash_cat_util.out  flash-image.out  flash-image-data.txt  MLO  rootfs.bin  u-boot.bin  uImage.bin;

烧录现象:

1、Uniflash的进度条始终是0%

2、串口使用SecureCRT软件始终在打c


希望大牛指点下

  • 先确认你的AM335x的芯片是PG2.1版本吗?如果是PG1.0版本的,目前不支持USB烧录。区别方法:丝印层AM3352料号的后面是否带有“B”的字样。

  • 型号是确认过的是PG2版本的,AM3358芯片型号全称:AM3358BZCZAI00

  • OK,这个是可以支持USB烧录的。你看一下,在启动时能看到主机上出现USB网络吗?如果没有,只是出现未知的Subartic设备,那就说明你没装驱动。

  • 板子上电,点击Uniflash的Start flashing之后显示USB识别了,在网络和共享中心那边出现一个net端口,也按照资料上说的配置为192.168.2.1和Uniflash配置一样,不过显示的是已开启,但是显示无法连接到Internet。截图如附件

  • 板子已经获得IP了,这个链接是正常了,查两个事儿:

    1. 防火墙,反病毒软件之类的关掉了吗?一定要确认,否则和你这现象是一样的。

    2. down下去的u-boot-spl-restore.bin是否能够正常起来?可以用生成的MLO放在SD卡里测试一下,如果是spl这阶段出问题了,卡在里面,情形是一样的。

  • 1、杀毒软件什么的都是关闭的

    2、这边down的文件有debrick.scr    MLO 、 rootfs.bin 、 u-boot.bin  、uImage.bin,这么几个文件,这几个文件之前使用SD卡烧录的时候是可以的,


    你好Steven这个和我引脚配置有关系吗?引脚配置中USB0在Uart后面这个有影响吗?板子已经有之前SD卡烧成功的文件。

  • 你可以尝试选一个USB0在前的方式试一下,但是应该关系不大。我看你的选择是MMC0 SPIO UART0 USB0

    这样的话,SD卡拔出了,没SPI0的设备,前两个启动方式已经过了,串口能打C也证明了进入到了UART0启动的模式,没有文件的传输,就会走到USB0上。

    看你的描述,编出来的MLO是OK的,我再确认一下image,你有没有把编译生成的u-boot-spl.bin重命名为u-boot-spl-restore.bin,然后放到对应的文件夹中?

  • 这边文件名就是debrick.scr  MLO  rootfs.bin  u-boot.bin  uImage.bin;没有重命名为u-boot-spl-restore.bin

    u-boot文件需要重命名为u-boot-spl-restore.bin??那其他文件需要重命名吗?

  • 有的,仔细看哪个主题帖中的链接信息啊:

    http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development#Build_SPL_.28MLO.29_and_U-Boot_for_Flashing

    • Copy u-boot.img to u-boot-restore.img
    • In the directory flash-restore/spl, copy u-boot-spl.bin to u-boot-spl-restore.bin

  • HI,Steven,

    我烧录的U-boot这个文件是我在用的一个开发板上的,且我看到《Uniflash烧写脚本的修改和SPI 烧写的支持》指导文档里分为u-boot-spl-restore.bin, u-boot-restore.img,但是我这个文件是买的开发板上的配套u-boot.bin文件

  • 你好好看一下我上面给你发的连接里的信息,带有restore的两个文件不是简单的重命名而已,编译时使用的配置是不一样的。把链接中的内容仔细读读,在对着中文的手册看注意事项。有遇到问题了再发上来

  • HI,Steven,我看了下Uniflash使用指导里:http://processors.wiki.ti.com/index.php/Sitara_Uniflash_Quick_Start_Guide

    烧录方式可有为:1、ETH,2、USB;

    那在使用ETH烧录时候,这个烧录方式的启动需要重新调整sysboot吗?需要sysboot里有EMAC1在里面吗?

    麻烦Steven这边问下,是否wiki里有关于通过USB启动再使用TFTP烧录的方法吗?

  • 你的理解是正确的,使用Eth烧录的时候需要当前的启动方式支持EMAC启动。

    我不太明白,你说的通过USB启动,再使用TFTP烧录的方法是想怎么做?是指通过USB启动,在通过以太网进行TFTP下载内核之类的东西吗?

    目前Uniflash这种烧录方式,就是通过USB启动,然后在driver层上是通过USB_RNDIS把USB转成网口,再TFTP进行文件下载的。

  • 恩,谢谢,

    因为之前有看到有人使用的是SD卡启动然后通过TFTP对文件进行烧录,后来看到Uniflash里也有提到TFTP HOME以及在使用USB烧录时候需要设定IP,所以有这么一问。

  • 了解。SD卡启动后的TFTP烧录指的应该是使用SD卡启动到了UBoot阶段后,使用以太网TFTP的方式,从server上down文件并烧到NAND/NOR等设备中,和这个Uniflash用的USB网口略有不同。

  • HI,Steven,

    那是不是说我用USB,uart为首选的启动方式启动,到了UBOOT阶段后,都可以使用以太网TFTP的方式烧录文件呢?

  • 对的,启动的方式,只是决定了你的MLO(SPL),u-boot这些东西从哪个端口中加载,任意方式启动后,正常进入到UBOOT阶段后,敲回车进入命令行,你都可以通过命令用以太网TFTP相应文件并进行NAND/NOR flash相关的操作。

  • HI,Steven

    今天再次看了下《Uniflash烧写脚本的修改和SPI烧写的支持》这个资料在最后一页有一个截图是在指定目录下包含有哪些文件的一个截图,我看到文件夹里包含了:U-boot.img、u-boot-spl-restore.bin、u-boot-restore.img,这三个文件中,u-boot.img和另外两个u-boot文件有什么不同??或者说u-boot.img和u-boot-restore.img本就是同一个文件只是名字不一样?

  • HI,Steven,

    就昨天我的那个问题,我有看了下连接:http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development#Build_SPL_.28MLO.29_and_U-Boot_for_Flashing

    里面也有提到,u-boot-restore.img和我们常用的u-boot.bin是相同的,而u-boot-spl-restore.bin和MLO是相同的。

    其次问下wiki上的SDK6.0里面的am335x_evm_restore_flash_usbspl生成的u-boot-restore.img和u-boot-spl-restore.bin文件用在其他公司的开发板上,需要修改什么地方吗?

  • 首先,u-boot-restore.img就是u-boot.img重命名得来的,但是和你常用的u-boot.img是有区别的,差别主要在编译时使用的配置选项中,我在主贴的注意事项中,有提到
    http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/52381.aspx

    USB进行烧写请使用:am335x_evm_restore_flash_usbspl网口烧写请使用:am335x_evm_restore_flash

    其次,移植到别的公司开发板上,要修改的地方,也可以参考那篇帖子的2014.2.18更新内容”,如下:

    1. 首先由于Uniflash必须要使用Linux的Uboot作为烧写固件的一部分,所以请先下载AM335x Linux SDK 6.0开发包:http://software-dl.ti.com/sitara_linux/esd/AM335xSDK/latest/index_FDS.html

    2. 下载完成后在Linux主机上进行安装,安装完成后,根目录下的board-support/u-boot-2013.01.01-psp06.00.00.00文件夹即为Linux uboot的源码,需做部分修改后编译。编译方法可参考:http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide

    3. Linux uboot需要修改的部分:这部分工作就是对Linux uboot进行移植的工作,主要修改的有三处地方:EEPROM, DDR2/3, NAND FLASH(包括pinmux)

    3.1 对于EEPROM操作的修改:由于在官方的开发板上,都会有EEPROM来进行板子的型号辨识,不同板子资源不同,配置也就不同,因此该处的配置会影响到DDR的配置以及NAND flash的配置;一般来说客户自己的开发板上没有eeprom,所以要对此处进行修改。文件位置:uboot的根目录/board/ti/am335x/board.c文件中搜索"eeprom“既可找到配置的地方。

    3.2 对于DDR的配置的修改:因为板子上可能使用DDR2或者DDR3,要根据实际情况对UBOOT进行修改。在uboot的根目录/board/ti/am335x/board.c文件中搜索"config_ddr“既可找到配置的地方。

    3.3 对于NAND FLASH的修改:这里最常遇到的问题是,选择的板卡并没有对NAND flash进行Pinmux的设置,简单的解决方法是:在uboot/board/ti/am335x/mux.c文件中,在 void enable_board_pin_mux (struct am335x_baseboard_id *header)这个函数实现的第一句中加入

    configure_module_pin_mux(nand_pin_mux); 确保nand的Pinmux配置成功。对于NAND Flash的位宽配置,时序参数配置,可参考TRM中的7.1 GPMC章节。其中,常用的NAND位宽配置(8bit和16bit)在GPMC_CONFIG1的13-12bit位上


  • HI, Steven,

    在《Uniflash脚本的修改和SPI烧写的支持》一文件中最后的images文件夹截图里以及之前的脚本制作相比较发现,文件夹里有脚本文件,flash-image.out,MLO,u-boot.img,u-boot-restore.img,u-boot-spl-restore.bin;    在脚本文件修改时候使用的是MLO和u-boot.img这两个文件。

    而u-boot-restore.img,u-boot-spl-restore.bin并没有在脚本文件修改的时候放进去,是不是说,这两个文件只是在最初的引导上使用,后来进入了u-boot后再根据脚本文件烧写MLO,u-boot.img。

    区别:

    MLO,u-boot.img和u-boot-spl-restore.bin,u-boot-restore.img区别,是否是编译选项上的差异?

    u-boot-spl-restore.bin,u-boot-restore.img在编译的时候的编译选项是am335x_evm_restore_flash_usbspl;

    那MLO,u-boot.img的编译选项又是什么呢?

  • HI,Steven,

    这边现在可以开始烧录了,不过还有一些异常,我这边把现象描述下:

    1),u-boot-restore.img,u-boot-spl-restore.bin这两个文件有按照要求使用am335x_evm_restore_flash_usbspl,并且大了patch;

    2),脚本文件也按照要求修改;

    异常现象:

    1),一开始的时候在计算机管理里面的网络目录下有出现RNDIS;

    2),点击Uniflash烧录时候也有在网络中心出现新的网络,按照要求输入ip地址,

    3),串口也有输出;

    但是,在烧录过程中,RNDIS第一次输入ip后,它又没了,过来一会又跳出,而且又要重新输入ip,不过过了一会又跳没了,而且在网络适配器里RNDIS这个也没有了;烧录在进行到54%的时候就停住了。

    一下是串口打出的内容:

    CCCCCCCC
    U-Boot SPL 2013.01.01 (Aug 30 2014 - 12:49:30)
    Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
    Could not get board ID.
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    Using default environment

    usb_ether
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    musb-hdrc: peripheral reset irq lost!
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'u-boot-restore.img'.
    Load address: 0x807fffc0
    Loading: #########################
    881.8 KiB/s
    done
    Bytes transferred = 364108 (58e4c hex)


    U-Boot 2013.01.01 (Aug 30 2014 - 12:49:30)

    I2C: ready
    DRAM: 512 MiB
    WARNING: Caches not enabled
    Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
    Could not get board ID.
    NAND: No NAND device found!!!
    0 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - readenv() failed, using default environment

    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    musb-hdrc: peripheral reset irq lost!
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    DHCP client bound to address 192.168.2.2
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'debrick.scr'.
    Load address: 0x80000000
    Loading: T #
    1000 Bytes/s
    done
    Bytes transferred = 7987 (1f33 hex)
    ## Executing script at 80000000
    Wrong image format for "source" command
    U-Boot#

    不知道各位大牛能否指导下!

  • 那个网络是会出现切换的情况,我在flash tool主贴中的注意事项中也提到了:

    http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/52381.aspx

    在u-boot-spl-restore.bin下载运行成功后,下载u-boot-restore.img时,网络一直在发IP请求,却没有得到回应,请参考以下解决方案:在操作过程中,插上USB时能在主机上找到USB RNDIS网络,默认时配置该网络IP为192.168.2.1。在烧写的不同阶段,部分主机会将该网络会识别成另外的USB RNDIS网络,因此,与之前的网络不同且没有IP配置,此时只需要再配置该网络的IP为192.168.2.1,即可正常使用(可能会弹出提示:该IP被未使用的网络占用,是否要清除未使用的网络?此时选择)。

    看你的描述,是不是弹出对话框时,选择了yes?所以一切换就要你重新设置?


  • 烧写卡住的问题,看你的log,uniflash下载image已经成功了,但出现了这个错误:Wrong image format for "source" command。这里是在执行debrick.scr脚本,是不是这个脚本做的有问题?重新按照要求做一次看看?

  • HI Steven,

    脚本文件后来在LINUX平台重新做过了一份,上面那个问题没有了,现在有出现新的异常,打印如下:

    CCCCCCCC
    U-Boot SPL 2013.01.01 (Aug 30 2014 - 16:41:01)
    Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
    Could not get board ID.
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    Using default environment

    usb_ether
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    musb-hdrc: peripheral reset irq lost!
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10

    Retry count exceeded; starting again
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10

    Retry count exceeded; starting again
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    BOOTP broadcast 5
    BOOTP broadcast 6
    BOOTP broadcast 7
    BOOTP broadcast 8
    BOOTP broadcast 9
    BOOTP broadcast 10

    Retry count exceeded; starting again
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'u-boot-restore.img'.
    Load address: 0x807fffc0
    Loading: #########################
    847.7 KiB/s
    done
    Bytes transferred = 364108 (58e4c hex)


    U-Boot 2013.01.01 (Aug 30 2014 - 16:41:01)

    I2C: ready
    DRAM: 512 MiB
    WARNING: Caches not enabled
    Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
    Could not get board ID.
    NAND: No NAND device found!!!
    0 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - readenv() failed, using default environment

    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    musb-hdrc: peripheral reset irq lost!
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    DHCP client bound to address 192.168.2.2
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'debrick.scr'.
    Load address: 0x80000000
    Loading: T #
    1000 Bytes/s
    done
    Bytes transferred = 8066 (1f82 hex)
    ## Executing script at 80000000

    Indicates to the host the Debrick script is running

    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'DebrickTargetReady:c4:ed:ba:88:d9:c7'.
    Load address: 0x80001000
    Loading: T
    TFTP error: 'File not found or No Access' (1)
    Not retrying...
    Erasing NAND

    no devices available
    NAND Erase Failure Error Exit
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'TargetEraseError:c4:ed:ba:88:d9:c7'.
    Load address: 0x80001000
    Loading: T T
    TFTP error: 'File not found or No Access' (1)
    Not retrying...
    using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
    MAC c4:ed:ba:88:d9:c7
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.2.1; our IP address is 192.168.2.2
    Filename 'TargetErrorExit:c4:ed:ba:88:d9:c7'.
    Load address: 0x80001000
    Loading: T
    TFTP error: 'File not found or No Access' (1)
    Not retrying...
    Halting processor.....
    ## Starting application at 0x0002001C ...

    我有看了下脚本文件里面当找不到文件的时候,会跳转到

    Load address: 0x80001000
    Loading: T 
    TFTP error: 'File not found or No Access' (1)
    Not retrying...
    Halting processor.....
    ## Starting application at 0x0002001C ...

    上面报错的时候是“TFTP error: 'File not found or No Access' ”但是我的文件夹也是完全按照资料上的位置放的,连名字都是一样。

    不知道这个情况是否有遇到过?

  • 看了你的log,重点不在这里,问题可能是在NAND flash的擦出上面,log的这段:

    Erasing NAND

    no devices available
    NAND Erase Failure Error Exit

    看上去你的NAND flash没初始化成功,这个初始化时在u-boot-spl-restore.img中做的,查下你对这个uboot的移植,正确吗?

    可以参考主贴中的内容:

    3.3 对于NAND FLASH的修改:这里最常遇到的问题是,选择的板卡并没有对NAND flash进行Pinmux的设置,简单的解决方法是:在uboot/board/ti/am335x/mux.c文件中,在 void enable_board_pin_mux (struct am335x_baseboard_id *header)这个函数实现的第一句中加入

    configure_module_pin_mux(nand_pin_mux); 确保nand的Pinmux配置成功。对于NAND Flash的位宽配置,时序参数配置,可参考TRM中的7.1 GPMC章节。其中,常用的NAND位宽配置(8bit和16bit)在GPMC_CONFIG1的13-12bit位上。

  • HI.Steven Liu

    问下,我这边使用的eMMC flash,那在使用Uniflash进行烧录时候,和nandflash烧录有什么区别吗?

    有关于使用uniflash对eMMC进行烧录的指导资料吗?

  • 确实有些区别的,nandflash烧录时,进行到uboot阶段就可以进行烧录了;但是对于eMMC烧录时,需要启动kernel。

    从windows端的操作上来说,变化不大,主要是在做image的时候,需要做较大变动,你可以参考这个链接里面的内容:

    http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development#eMMC_Programming_Process

  • HI,Steven Liu,

    按照你上面的回复,那个连接我这边也有看过,我的image也是有按照上面链接进行调整,那这个调整后,在使用Uniflash这个工具烧录eMMC和烧录nand的在烧录的操作上有注意的地方吗?因为使用Uniflash烧录nand的时候除了设定ip外基本没有其他操作,都是自动的。

  • 而且,使用Uniflash烧录时候有使用到debrick脚本文件,我看了下,这个脚本文件是对nand进行烧录的脚本文件,不知道有没有支持eMMC的脚本文件,因为烧录eMMC时候需要通过脚本文件对eMMC进行格式化和分区。

  • 没什么特别的,就是注意把对应的文件放对位置。因为emmc是在linux系统中进行烧录的,所以调用的是debrick.sh文件。烧写nand是在uboot环境,所以用的是debrick.scr文件。

  • 这个有的,在git上面。你可以参考这个:

    https://github.com/RobertCNelson/tools/blob/master/scripts/beaglebone-black-copy-microSD-to-eMMC.sh

    我们的BBB开发板上使用的是emmc,其烧写的流程可以给你作个参考:

    http://www.crashcourse.ca/wiki/index.php/BBB_software_update_process

    另外,e2e论坛上,也有些人问到这种问题,你可以参考:

    http://e2e.ti.com/support/embedded/linux/f/354/t/340424.aspx

  • HI Steven, 

    你上面git里面的连接上的.sh文件是从sd卡到eMMC上的?这个烧录需要在linux平台是进行烧录?上面的脚本文件无法下载,如果只是复制下来到TXT文档里,生成.SH的命令是和生成scr的命令一样吗?

  • 1. 是的。

    2. 对,在linux中运行。

    3. 这个是脚本文件,不是scr,直接复制下来重命名,给权限就可以运行了,不用生成scr。

  • 我们在Uniflash烧录上有看是可以再window平台上对eMMC进行烧录,这个是烧录是怎么烧录的呢?

  • 我看了下Uniflash的相关资料里,有可以在window平台上通过Uniflash对eMMC进行烧录的,那是否有相关资料,之前你给的资料都是要在linux下进行烧录的。

  • 不是,你仔细看看,我给的资料都是在windows下进行烧录的。

    windows下操作很简单;主要花时间的地方在于怎么编译出那些相应的image文件、设置脚本文件。等这些都在Linux上操作好编成功了,你就可以copy到windows平台对应的目录下,进行Uniflash的烧录了。