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.

[参考译文] TDA4VM:如何使用 Uniflash 将 Linux 内核和 rootFS 刻录到 TDA4板上的 eMMC 中?

Guru**** 2034120 points
Other Parts Discussed in Thread: UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/942464/tda4vm-how-to-using-uniflash-to-burn-linux-kernel-and-rootfs-into-emmc-on-tda4-board

器件型号:TDA4VM
主题中讨论的其他器件:UNIFLASH

各位专家、您好!


出于某些原因、我们不在自己的电路板上设计 SDCard 接口(插槽)、但我们仍保留 UART (MCU)、JTAG 和 USB 接口来进行功能固件升级。

我们的 eMMC 闪存是纯空的,没有分区! 因此、唯一的方法可能是 Uniflash。

我尝试搜索答案,此主题可能起作用! (我切换到 UART 引导模式执行此测试!)
e2e.ti.com/.../941068
它将"tiboot3.bin、tispl.bin 和 u-boot.img"刻录到 eMMC 中

但是,如何使用相同的方式刻录 Linux 内核和 rootFS? (Uniflash)
您能给我们提供什么意见吗?

BTW、
u-boot 中是否需要这些命令? 因为我们的 eMMC 是空的、所以没有分区
MMC partconf 0 1 1
MMC 引导总线0 2 0

非常感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    通过 UNIFLASH 刷写用户分区(您将拥有文件系统)是不可能的。 您只能使用 UNIFLASH 刷写原始分区。

    [引用 USER="Gibbs Shih"]我们仍然保留 UART (MCU)、JTAG、USB 接口

    因此、我希望您可以使用这些接口中的任何一个。 让我尝试向您提供步骤、我将尝试在我的末尾进行验证、然后发送给您。

    此外、您还有以太网吗?

    此致、

    Karan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好, Karan:

    目前、JTAG 可能会更好、因为我们不保留以太网接口。

    我们需要尝试在电路板上进行一些硬件修改以使以太网正常工作,并且我们仍在调试.... @@!

    顺便说一下,我还尝试搜索 Q&A 线程:  

    是否可以在 u-boot 模式下从插件 USB 磁盘将内核和 rootFS 刻录到 eMMC?  

    非常感谢:)

    Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gibbs、

     https://e2e.ti.com/support/processors/f/791/p/898360/3322707#3322707上提供了一些 有关此方法的说明。 因此、您基本上可以从 JTAG 将文件系统(具有内核映像)加载到 RAM 中、然后从 u-boot 将文件系统从 RAM 闪存到 eMMC。

    但使用 JTAG 时、加载到 RAM 的速度非常慢。 我建议使用上述方法来刷写最小的文件系统。

    此致、

    Karan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gibbs、

    我建议尝试使用小型文件系统引导至内核。

    1.创建 tisdk-Tina-image.tar.xz (您可以获取随附的 tar 焊球 I 生成并跳至 Step2)

    git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
    cd tisdk/#
    
    从7.00安装程序复制配置文件 Yocto-build/configs/psdkla/psdkla-07_00_00.txt
    ./oe-layertool-setup.sh -f psdkla-07_00_00.txt
    
    #导出代理
    导出ftp_proxy=http://webproxy.ext.ti.com:80
    导出http_proxy=http://webproxy.ext.ti.com:80
    导出https_proxy=http://webproxy.ext.ti.com:80
    
    cd Build
    #如果要重用下载文件夹
    vi conf/local.conf
    ,编辑配置文件。 CONF/setenv
    
    #这是到 ARMv7和 ARMv8
    工具链_base=/sdk/tools machine=j7-evm bittmp -k tisdk-Tiny-image
    
    # build image 可在此处找到
    la -la tisdk/build/arago-bake-external_arm-glibc/deploy/images/j7-evms/tisdm/j7-evm/tisx7-tis-image.z-jtisdk-z-ime.z-imine.z-imine.z-jtisdk.z-im 

    为了节省这一时间、我要附加我构建的图像- /cfs-file/__key/communityserver-discussions-components-files/791/tisdk_2D00_tiny_2D00_image_2D00_j7_2D00_evm.tar.xz

    2.创建 tisdk-Tina-image.img

    #以下代码需要在主机上运行
    
    #创建空映像文件。 对于我共享的映像、100MB 应该足够。
    dd if=/dev/null of=tisdk-Tina-image.img bs=1M seek=100
    
    #将文件系统添加到 mkfs.ext4
    -F tisdk-Tina-image.img
    
    #将其安装在本地计算机上以复制 dtb 和内核映像
    mkdir example_mnt_pt
    sudo mount -t ext4 -o loop tisdk-Tina-image.img /home/karan/yocto-build/example_mnt_pt
    
    #当前安装在系统上的 Tina-jtisdk-z-image.jdk-z-img.jdk-z-imgevm 文件
    Example_mnt_pt
    sudo tar xvf ./tisdk-Tiny-image-j7-evm.tar.xz
    
    #为您的平台复制 dtb、DTBO 和内核映像。 否则、电路板将无法启动!!
    sudo cp /media/karan/rootfs/boot/Image example_mnt_pt/boot
    sudo cp /media/karan/rootfs/boot *dtb* example_mnt_pt/boot
    sync
    
    #卸载映像,现在 tisdk-Tina-image.img 已准备
    就绪 CD ./
    sudo umount /home/karan/yocto-build/example_mnt_pt 

    3.使用 DFU-util / JTAG 将文件系统刷写到 eMMC 用户分区(附加 DFU 引导步骤)-我附加的映像需要大约15分钟。

    如果  您想使用 JTAG 进行闪存(这会更慢)、您还可以查看 e2e.ti.com/.../3322707

    • 将主机 PC 连接到电路板的主 UART、并将 minicom 连接到第一个实例
    • 将 USB Type C 电缆连接到主机 PC (Linux)
    • 将引导模式更改为 DFU 引导模式
    • 在主机(Linux 机器)和目标(EVM)上运行以下内容
    #这将下载映像、但现在将闪存到 eMMC
    主机$ sudo DFU-util -l
    主机$ sudo DFU util -R -A bootloader -D /tiboot3.bin
    host $ sudo dfu-util -R -a sysfw.itb -D /sysfw.itb
    host $ sudo dfu-util -R -a tispl.bin -D /tispl.bin
    host $ sudo dfu-util -R -a u-boot.img -D /u-boot.img
    
    #此时、u-boot 将开始执行。 u-boot 提示符处的暂停(u-boot 日志将出现在主 UART 的第一个实例上)
    Target => env default -f -a
    target => setenv mmcdev 0
    target => setenv bootpart 0
    target => saveenv
    target => setenv dfu_alt_info ${dfu_alt_info_eMMC}
    
    #每个电路板目标仅一次
    => gpt 写入 MMC 0 ${partitions}
    
    target => dfdfmc 0
    
    系统# dfdf2 tmmc 0 #刷写到系统0 # df2系统# df2 eMMC 用户分区
    主机$ sudo dfu-util -l
    主机$ sudo dfu-util -a rootfs -D /tisdk-Tina-image.img
    
    #每个板仅一次、要使 ROM 访问引导分区、必须在首次
    目标=> MMC partconf 0 1 1 1
    target => MMC bootbus 0 2 0
    
    #启动板
    目标=>引导 

    4.将引导模式更改为 eMMC (引导)并引导电路板。

    此致、

    Karan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这种方法应该起作用、我将按照步骤再次尝试

    Karan,谢谢:)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Karan、  

       根据所附的步骤,我们在以下时间停止:

    TARGET => dfu 0 mmc 0
     
    此致、
    崔琴
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下一条指令应在主机上执行、请参阅下一组指令。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Karthik、

      下一组正常。 感谢您的回复。

    此致、

    崔琴