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.

[参考译文] PROCESSOR-SDK-AM335X:MLO 和 U-boot 问题

Guru**** 2589265 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/631399/processor-sdk-am335x-mlo-and-u-boot-issues

器件型号:PROCESSOR-SDK-AM335X

大家好、

我正在尝试使用 AM335x 构建与 BBB 类似的定制板、我可以看到稳定的"CCCCC"。  由于电路板上的 RAM (Micron MT41K256M16HA-125:E)与 BBB 上的 RAM 不同、我访问了以下 wiki:

_processors.wiki.ti.com/.../Sitara_Linux_Training:_Tuning_the_DDR3_Timings_on_BeagleBoneBlack

AM335x-EVM 的最新 SDK 中。 当我创建 SD 卡时、我只能在终端中看到这一点:

"U-Boot SPL 2017.01-g590c7d7fe1 (2017年9月26日- 18:28:01)"、网址为 boot.e2e.ti.com/.../0045.board.c
在构建我自己的 u-boot (命令:"make u-boot")并替换 MLO 和 u-boot.img 后、终端上的引导时不显示任何内容。

我还尝试启用调试(AM335x_EVM.h 中的#define debug)、但不能访问任何内容。

我在另一个线程中读到、wiki 是当前 SDK 的一种过时产品。 如果正确、是否是最新版本? 我是否只需要更换 MLO 和 u-boot.img? 我必须在哪里定义调试?

非常感谢您的帮助。

此致

Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的电路板上是否有 ID EEPROM? 否则、您必须跳过或硬编码 MLO 源代码中的 EEPROM 检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    感谢您的快速回答。 我有一个 EEPROM、但我仍然会尝试禁用它。 请问我需要编辑哪些文件?

    顺便说一下、是否应该没有错误或某些输出? 我可以从何处启用它? 我将'#define debug 添加到 AM335x board.c 文件中、但只有当前 u-boot 的输出?!

    非常感谢您的帮助。

    此致

    Eric

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

    您好 Eric、

    当您在 am335x_evm.h 中#define debug 时、您是否获得了 u-boot-spl `.data'不适用于`.sRAM'区域错误?

    此致、
    Kemal

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

    您好、Kemal、

    我只获得该输出、然后再也没有其他内容:

    U-Boot SPL 2017.01-00360-gc6c77f9-脏 污(2017年10月11日- 17:41:14)

    还有其他想法、问题可能出在哪呢? 在 u-boot 右侧显示"脏"一词?

    非常感谢。

    此致

    Eric

    e2e.ti.com/.../3771.am335x_5F00_evm.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    "脏"意味着您在 git 中有未承诺的更改。 是否可以将#define debug 置于#define CONFIG_AM33XX 下并重试?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kemal、

    我将其放在#define CONFIG_AM33XX 之后、但结果是相同的。

    以下是我的步骤、也许我只是错过了什么?!

    -创建 U-boot

    -创建 SD 卡

    将 MLO 和 u-boot.img 复制到引导分区

    Eric@Erice-VirtualBox:~/ti-processor-sdk-linux-am335x-evm-04.01.00.06/bin/$ sudo ./create-sdcard.sh
    
    
    ####################################################################
    
    此脚本将从自定义或预构建的二进制文件创建可引导 SD 卡。
    
    脚本必须以 root 权限运行、并且从
    SDK
    
    示例的 bin 目录中:
    如果
    
    SD 卡已正确格式化和
    分区、则可以跳过$ sudo ./create-sdcard.sh 格式化。
    
    ############################################################################################################################
    
    
    可用于将映像写入的驱动器
    
    :# MAJOR MINOR SIZE NAME
    1:8 16 7655424 sdb
    
    输入器件型号或 n 退出:选择1
    
    sdb
    
    /dev/sdb 是一个 sdb 器件
    卸载 sdb 驱动
    器未安装/dev/sdb1
    未安装/dev/sdb2
    当前大小 sdb1 71680字节
    当前大小 sdb2 7566336字节
    
    ########################################
    
    如果只需要 boot 和 rootfs (大多数用户),请选择2个分区。
    如果需要 SDK 和 SD 卡上的其他内容、请选择3个分区。 这是
    通常由设备制造商使用、可访问分区 tarball。
    
    4.警告****继续将擦除 sdb
    
    ######################################################################################的所有数据
    
    需要的分区数[2/2]: 2
    
    
    现在用2个分区对 sdb 进行分区...
    
    
    ############################################################################################################################
    
    现在制作2个分区
    
    ############################################################################################################
    
    1024+0记录中
    的1024+0记录已
    复制1048576字节(1.0 MB)、2.53352秒、414 KB/s
    磁盘/dev/sdb 不包含有效的分区表
    磁盘大小- 7839154176字节
    
    ########################################################
    
    分区引导
    
    ######################################################################################################################
    mkfs.fat 3.0.26 (2014-03-07)
    mkfs.fat:警告-小写标签可能无法与 DOS 或 Windows
    
    一起正常工作##########################################################################
    
    对 rootfs 进行分区
    
    ##############################################################################################################
    mke2fs 1.42.9 (2014年2月4日)
    文件系统标签=rootfs
    OS 类型: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 block、Stripe width=0 blocks
    473280 inode、1891584 blocks
    94579 blocks (5.00%)为超级用户保留
    第一个数据块=0
    最大文件系统块=1937768448
    58 block groups
    32768 blocks per group、32768 blocks per group
    8160 block stored
    in group:
    32768、98304、163840、229376、294912、 819200、884736、1605632
    
    分配组表:完成
    写入 inode 表:完成
    创建日志(32768个块):完成
    写入超级块和文件系统会计信息:完成
    
    
    
    ##############################################################################################
    
    现在已完成分区
    ,请继续安装文件系统或选择“n”以安全退出
    
    **警告**继续将删除分区
    
    ######################################################################中的任何文件
    
    
    是否要继续? [y/n]:y
    
    
    mkdir:Cannot create directory '/home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/bin/tmp:file exists
    
    Mount the partitions
    mkdir:Cannot create directory 'boot':file exists
    mkdir:cannot create directory 'rootfs':file exists
    
    theming partitions syncing
    
    
    ......(y.n..y mkdir:无法创建目录'rootfs'
    
    ############################################################################################################################
    
    1
    
    )选择要安装的文件路径1)安装 SDK 中预构建的映像
    2)输入自定义引导和 rootfs 文件路径
    
    ################################################################################################
    
    立即选择[1/2]:2
    
    
    
    ####################################################################################################
    
    对于 U-boot 和 MLO
    
    、如果文件位于 Tarball 写入完整路径中、包括文件名。
    等等 $:/home/user/MyCustomTars/boot.tar.xz
    
    如果文件位于目录中、请写入目录路径
    等等 $:/ti-sdk/board-support/prebuilt-images
    
    注:并非所有平台都有一个 MLO 文件、此文件可以
    不支持 MLO 的平台应忽略该选项。
    
    更新:内核映像和设备树的正确位置
    文件已从引导分区移动到根文件系统。
    
    ############################################################################################################################
    
    输入引导分区的路径:/home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/u-boot-2017.01 +gitAUTOINC+590c7d7fe1-g590c7d7fe1/
    
    目录存在
    
    此目录包含:
    KbuildTISDK-README 文档 脚本u-boot.bin
    Kconfig APIDrivers snapshot.commitu-boot.cfg
    许可 拱形DTS SPLu-boot.cfg 维护
    器板示例测试u-boot.dTB
    MLO命令Fs工具u-boot.img
    mLO.byteswap common包含 u-bootu-boot.lds
    makefile config.mk 库 u-boot-dtb.binu-boot.map
    自述文件配置网络 u-boot-dtb.imgu-boot.srec
    System.map 磁盘帖子 u-boot-nodtb.binu-boot.sym
    
    是否正确? [y/n]:y
    
    
    ####################################################################################################################
    
    适用于内核映像和设备树文件
    
    您想做什么?
    1) 1)重新使用所选 rootfs 中的内核映像和设备树文件。
    2) 2)提供包含内核映像和器件树文件的目录
    使用。
    
    ############################################################################################################################
    
    选择选项1或2:1
    
    
    重复使用 rootfs 引导目录
    
    
    
    ################################################################################中的内核和 dt 文件
    
    对于 Rootfs 分区
    
    如果文件位于 Tarball 中,则写入包括文件名的完整路径。
    等等 $:/home/user/MyCustomTars/rootfs.tar.xz
    
    如果文件位于目录中、请写入目录路径
    等等 $:/ti-sdk/targetNFS ##############
    
    ########################################################################################################
    
    输入 Rootfs 分区的路径:/home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/targetNFS
    
    此目录包含:
    bin dev home lib mntproc sbin sys usr www
    boot 等 include media optrun srv tmp var
    
    是否正确? [y/n]:y
    
    ####################################################################################################################
    
    正在复制文件... 将需要几分钟
    
    ############################################################################################################
    
    复制引导分区
    
    CP:目标'boot/MLO'不是复制
    的目录 MLO
    
    
    CP:目标'boot/u-boot.img'不是目录
    u-boot.img 复制
    
    
    复制的 rootfs 系统分区
    155932/1554196复制
    
    的同步...
    
    卸载分区
    
    删除创建的临时目录
    
    操作完成
    
    Eric@~ Erice-VirtualBox:μ C/ti-processor-sdk-linux-am335x-evm-04.01.00.06/bin/$
    
    

    你有其他想法吗?

    非常感谢您的帮助。

    编辑:这个 while 循环是否是一个问题:


       CONFIG_DDR (400、MT41K256M16HA125ET_IOCTRL_Value、&DDR3_bbb_data、
            &DDR3_bbb_cmd_CTRL_data、&DDR3_bbb_EMIF_reg_data);
       while (myVar);
    #endif

    我之所以添加此项、是因为此站点上的信息:_http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Tuning_the_DDR3_Timings_on_BeagleBoneBlack

    也许它已经过时了?!

    此致

    Eric

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

    我找到了错误。 我从 git 复制了两个目录(Sitara-board-port-linux 和 Sitara-board-port-uboot)、并更改了其中的值、但没有产生任何影响。
    当我 现在将#define 调试添加到 am335x_evm.h 时、我得到以下错误:
    oard-support/u-boot-2017.01+gitAUTOINC+590c7d7fe1-g590c7d7fe1«wrd verlassen
    make[1]:Verzeichnis»/home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/u-boot-2017.01 +gitAUTOINC+590c7d7fe1-g590c7d7fe1«wrd betreten
    检查 include/config/uboot.release
    检查 包含/生成/ version_autogenerated.h
    检查 包含/生成/ timestamp_autogenerated.h
    UPD 包含/生成/ timestamp_autogenerated.h
    检查 包含/生成/ generic-asm-offsets.h
    检查 包含/生成/ asm-offsets.h
    HOSTCC 工具/mkenviemmage.o
    HOSTLD 工具/mkenemmage
    HOSTCC 工具/fit_image.o
    HOSTCC 工具/image-host.o
    HOSTCC 工具/dumpimage.o
    HOSTLD 工具/双映像
    HOSTCC 工具/mkimage.o
    HOSTLD 工具/mkimage
    抄送 CMD/version.o
    LD CMD/Built-in.o
    抄送 common/main.o
    抄送 common/board_f.o
    LD common/built-in.o
    抄送 lib/efi_loader/helloworld.o
    LD lib/efi_loader/helloworld.so
    objcopy lib/efi_loader/helloworld.efi
    抄送 lib/SMBIOS.o
    抄送 lib/display_options.o
    LD lib/built-in.o
    LD U-boot
    objcopy u-boot-nodtb.bin
    MKIMAGE u-boot.img
    objcopy u-boot.srec
    类别 u-boot-dtb.bin
    复制 u-boot.bin
    对称 U-boot.sym
    抄送 SPL/common/spl/spl.o
    LD SPL/common/spl/built-in.o
    抄送 SPL/lib/display_options.o
    LD SPL/lib/built-in.o
    LD SPL/u-boot-spl
    /home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-ld.bfd:u-boot-spl `.rodata'将不适用于`.sRAM'区域
    /home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-ld.bfd:`μ.SRAM'溢出17180个字节
    common/built-in.o:在`ZM_dprintf'中:
    /home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/u-boot-2017.01 +gitAUTOINC+590c7d7fe1-g590c7d7fe1/common/xyzModem.c:248:nicht deferter Verweis auf `vsprintf'
    make[2]:***[spl/u-boot-spl] Fehler 1.
    make[1]:***[spl/u-boot-spl] Fehler 2.
    make[1]:Verzeichnis»/home/eric/ti-processor-sdk-linux-am335x-evm-04.01.00.06/board-support/u-boot-2017.01 +gitAUTOINC+590c7d7fe1-g590c7d7fe1«wrd verlassen
    制作:***[u-boot] Fehler 2.

    我是否知道为什么会出现此错误? 如果没有 #define 调试、我可以使 uboot 没有错误?!

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

    `.rodata'将不适用于`.sRAM'区域-您必须运行 arch=arm make menuconfig 转到 SPL/TPL 部分并从 MLO 中删除某些功能、以使.rodata 适合.sram

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

    您能更具体一点吗?
    menuconfig 是什么意思?
    我应该在不出现新问题的情况下删除哪些功能? 在 uboot 板端口部分中找不到相关内容。

    感谢您的建议。
    此致

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

    删除您不需要的功能、其他配置也不依赖于它。