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.

[参考译文] Linux/PROCESSOR-SDK-AM335X:错误:无法识别/不受支持的机器 ID (R1 = 0x00000e05)

Guru**** 2576195 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/629846/linux-processor-sdk-am335x-error-unrecognized-unsupported-machine-id-r1-0x00000e05

器件型号:PROCESSOR-SDK-AM335X

工具/软件:Linux

大家好、

我正在使用 TI 处理器 SDK 04.00.00、并尝试为新电路板定制 u-boot 和 Linux。

我已经重新编译 U-Boot e Linux 并为电路板创建了 DTB 文件。

现在、我尝试从 NET 启动 Linux、但系统会在引导启动 Linux 时阻止。

这是控制台输出。

----------------------------------------------------------------

-Boot SPL 2017.01-00319-geae4602-脏(2017年10月4日- 09:16:07)
尝试从 MMC1引导
正在读取 u-boot.img
正在读取 u-boot.img


U-Boot 2017.01-00319-geae4602-脏(2017年10月4日- 09:16:07 +0200)

CPU :AM335X-GP 修订版2.1
I2C:  就绪
DRAM: 256 MIB
NAND: 256 MIB
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
SF:检测到 s25fl128s_64k、页大小为256字节、擦除大小为64 KiB、总共16 MIB
显示:AM800480STMQW_TA1 (800x480)
SF:检测到 s25fl128s_64k、页大小为256字节、擦除大小为64 KiB、总共16 MIB
器件0偏移量0x780000、大小0x400000
SF:4194304字节@ 0x780000读取:正常
错误:8f000002处没有有效的 bmp 映像
高速缓存:范围[8df851b0、8e0fc1b0]上的未对齐操作
SoM ConfigID#:00000002
SoM UniqueID#:0000fc93:8b199e68
CB ConfigID#:FFFFFFFF
CB UniqueID#:00000000:00000000
NET:  cpsw、USB_ether
错误:未设置 USB_ether 地址。

按任意键停止自动引导: 0
正在启动 USB...
USB0:  端口不可用。
USB 停止。 请先发出"USB start"。
**设备 USB 0 **错误
切换到分区#0,确定
mmc0是当前器件
正在读取 BOOT.SCR
**无法读取文件 boot.scr **
端口0、速度100、全双工上的链路
使用 cpsw 器件
来自服务器192.168.1.74的 TFTP;IP 地址为192.168.1.131
文件名'uImage'。
加载地址:0x80007fc0
正在加载:############################################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ####################################################
        ################################
        612.3 KiB/s
完成
传输的字节= 3550512 (362d30十六进制)
端口0、速度100、全双工上的链路
使用 cpsw 器件
来自服务器192.168.1.74的 TFTP;IP 地址为192.168.1.131
文件名"AM335x-signale-diva.dtb"。
加载地址:0x80f80000
正在加载:########
        562.5 KiB/s
完成
传输的字节= 40932 (9fe4 hex)
FDT:用'0000fc93:8b199e68'覆盖'som_uniqueid'
FDT:用'00000000:0000000000000000'覆盖'CB_uniqueid'
##从传统映像(位于80007fc0)引导内核...
  图像名称:  linux-4.9.28-rt16-g786e64041b
  创建时间:     2017-10-04 10:19:54 UTC
  映像类型:  ARM Linux 内核映像(未压缩)
  数据大小:   3550448字节= 3.4 mib
  载入地址:80007fc0
  入口点: 80007fc0
  正在验证校验和... 好的
###展开的设备树状图、位于80f80000
  使用0x80f80000处的 FDT blob 进行引导
  正在加载内核映像... 好的
  正在保留 FDT 存储器区域:Addr=80f80000 size=b000
  在80f80000的适当位置使用设备树、在80f8dfff 结束

正在启动内核...


错误:无法识别/不受支持的机器 ID (R1 = 0x00000e05)。

可用的机器支持:

ID (十六进制)       名称
FFFFFFFF       基于通用 DT 的系统
FFFFFFFF       通用 AM33XX (平展器件树)

请检查您的内核配置和/或引导加载程序。

----------------------------------------------------------------

我已经尝试使用 zImage 或 uImage、但没有任何变化。

如果有人能帮我、我会很感激。

Roberto

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

    尊敬的 Roberto:

    请查看下面的 wiki 页面、其中介绍了如何处理此类错误:

    processors.wiki.ti.com/.../Kernel_-_Common_Problems_Booting_Linux

    另请参阅以下 e2e 线程:

    e2e.ti.com/.../2232209

    e2e.ti.com/.../132574

    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Pavel、
    感谢您的回答、但我已经阅读了此页面。

    从日志中可以看到、看到的机器编号为0x00000e05、这是 TI AM335X-EVM 的编号、但在可用支持的机器列表中、仅存在:
    - ffff 基于 DT 的通用系统
    - ffff 通用 AM33XX (平展器件树)
    我认为、编号0x00000e05通过引导传递到内核、但我无法理解为什么我只有这两种机器类型。 它们来自哪里? 我不知道在哪里。

    我在网上搜索、问题通常来自未加载的 DTB 或类似的内容、但我在所做的工作中看不到任何错误。

    请您提出其他建议吗?

    此致

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

    您是否访问过我提供的 e2e 链接?

    e2e.ti.com/.../2232209

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

    您好、Pavel、

    我很抱歉。 我还没有看到最后两个链接。
    目前、我尚未对 Linux 进行任何更改。 您能不能帮助我解释添加新电路板支持所需的步骤?

    此致

    Roberto

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

    这是 Kemal 询问的 U-Boot 环境变量。

    ------------------------------------------------------
    =>打印
    console=ttyO0、115200n8
    addcons=setenv bootargs ${bootargs}console=${console}earlyprintk no_console_suspend loglevel=8
    addeth=setenv bootargs ${bootargs}eth=${ethaddr}
    addep=setenv bootargs ${bootargs}ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off pany=1 eth=${ethaddr}
    addmisc=setenv bootargs ${bootargs}${mtdparts}\\;${mtdparts_SPI}
    arch = ARM
    波特率=115200
    Board=diva
    Board_name=diva
    BOOT_FDT=尝试
    bootcmd=run usbrecovery;运行 mmcrecovery;运行${normalboot}
    BOOTCOUNT=1
    BOOTDELAY=2
    BootFile=uImage
    BOOTM_SIZE=0x10000000
    bootscript=echo 正在从${recoverydev}...;源${loadaddr}运行的 bootscript
    CB_CONFIGID#=ffFFFF
    CB_uniqueid=00000000:00000000
    configid_fixupfdt=如果 configid checkfdt ${fdtaddr}som_configid ${som_configid#};则如果 configid checkfdt ${fdtaddr}CB_configid ${CB_configid#};然后 configid FDT_uniqueid ${fdtaddr};fi;fi
    console=ttyS0、115200n8
    CPU=armv7
    ethact=cpsw
    ethaddr=00:50:C2:1e:af:e0
    ethdev=eth0
    FDT_addr_r=0x88000000
    FDT_HIGH_0xffffffff
    fdtaddr=80f80000
    fdtfile=AM335x-signale-diva.dtb
    gatewayip=192.168.0.254
    hostname=signale-diva
    initrd_high=0xffffffff
    ipaddr=192.168.1.131
    kernel_addr_r=0x82000000
    kloadaddr=0x80007fc0
    load=tftp ${loadaddr}u-boot.img
    loadaddr=0x80200000
    loadbootscript=fatload ${recoverydev}0:1 ${loadaddr}${script};
    loadfdt=tftp ${fdtaddr}${fdtfile}
    loadk=tftp ${kloadaddr}${bootfile}
    loadsplash=运行 SPI_loadsplash
    MMC_loadsplash=fatload MMC 0 ${loadaddr}${splashfile}&& cp.b ${loadaddr}${splashimage}${filesize}
    mmcrecovery=MMC dev 0;MMC 重新扫描;setenv recoverydev MMC;运行恢复
    mtdids=nand0=8000000.nand
    mtdparts=mtdparts=8000000.n 和:128k (NAND.SPL)、128k (NAND.SPL.Backup1)、128k (NAND.NANT.Backup2)、128k (NAND.NANT.Backup3)、1920k (NAND.SPL.U-boot)、128k (NAND-BOOT-ENV)、128k (NAND-NAND-SPL)、6m (NAND-Backup1)、64m (NAND-SPL (NAND.SPL)、64m (ND-Boot)、64m (NAND-Boot)、64m (NAND-Boot)、64m (64m (系统
    mtdparts_spi=spi1.0:256k (MLO)、512K (u-boot)、256k (env1)、256k (env2)、256k (FDT)、6m (内核)、4m (闪存)、-(免费)
    NAND_LOAD_1st=tftp ${loadaddr}mLO
    NAND_LOADSPL=n 并读取${splashimage}NAND.SPLASH ${splashsize}
    NAND_NAND=n 并读取0x80007fc0 NAND.kernel;n 并读取80f80000 NAND.FDT;运行 nandargs adddeth addcons addmisc;如果运行 configid_fixupfdt;然后启动0x80007fc0 - 80f80000;fi
    NAND_NFS=n 并读取0x80007fc0 NAND.kernel;n 并读取80f80000 NAND.FDT;运行 nfsargs addcons addcons addmisc;如果运行 configid_fixupfdt;然后启动0x80007fc0 - 80f80000;fi
    NAND_UPDATE=n 和 ERASE.part NAND.u-boot;n 并写入${loadaddr}NAND.u-boot ${filesize}
    NAND_UPDATE_1st=n 和 ERASE.part NAND.SPL;n 并写入${loadaddr}NAND.SPL ${filesize}
    NAND_updateefdt=n 和 ERASE.part NAND.FDT;n 并写入${fdtaddr}NAND.FDT ${filesize}
    NAND_updateek=n 和 ERASE.part NAND.kernel;n 并写入${kloadaddr}NAND.kernel ${filesize}
    NAND_updateplash=n 和 ERASE.part NAND.SPLASH;n 并写入${loadaddr}NAND.SPLASH
    nandargs=setenv bootargs ubi.mtd=NAND.file-system root=ubi0:diva-rootfs rootfstype=ubifs rw rootwait=1
    net_loadsplash=tftp ${loadaddr}${splashfile};setenv splashsize ${filesize}
    net_nfs=run loadk loadfdt nfsargs addcons addmiscc;如果运行 configid_fixupfdt;则 bootm 0x80007fc0 - 80f80000;fi
    netdev=eth0
    网络掩码=255.255.255.0
    nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}rootdelay=2
    常规 boot=net_nfs
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    读数地址= 0x88080000
    recovery=如果运行 loadbootscript;然后运行 bootscript;fi
    recoverydev=MMC
    rootpath=/home/signal/TI_SDK/targetNFS
    Script=boot.scr
    脚本地址=0x80000000
    serverip=192.168.1.74
    SoC=am33xx
    SOM_CONFIGID#=00000002
    SOM_uniqueid=0000fc93:8b199e68
    spi_load_1st=tftp ${loadaddr}mlo.byteswap
    SPI_LOADSPL=SF 探测器0:0;SF 读取${splashimage}${splash_norbase}${splashsize}
    SPI_NFS=SF probe;SF read 0x80007fc0 0x180000 0x600000;SF read 80f80000 0x140000 0x40000;运行 nfsargs addcons addcons addmiscc;如果运行 configid_fixupfdt;然后 bootm 0x80007fc0 - 80f80000;fi
    SPI_UPDATE=SF 探测器0:0;SF 擦除0x40000 0x80000;SF 写入${loadaddr}0x40000 0x80000
    SPI_UPDATE_1st=SF 探测器0:0;SF 擦除0x0 0x40000;SF 写入${loadaddr}0x0 0x40000
    spi_updateefdt=SF 探测器0:0;SF 擦除${spircaddrfdt}0x40000;SF 写入${fdtaddr}${spircaddrfdt}0x40000
    SPI_updateek=SF 探测器0:0;SF 擦除${spisrcaddrk}0x600000;SF 写入${kloadaddr}${spisrcaddrk}0x600000
    spi_updateplash=SF 探测器0:0;SF 擦除${SPLOSE_norbase}+${splashsize};SF 写入${loadaddr}${SPLOSE_norbase}${splashsize}
    spifdtsize=0x40000
    spiimgsize=0x600000
    spisrcaddrfdt=0x140000
    spisrcaddrk=0x180000
    SPLK_norbase=0x780000
    splashfile=splash_image.bmp
    splashimage=0x8f000002
    splashsize=0x400000
    stderr=串行
    stdin=ns16550_serial
    stdout=串行
    USBnet_devaddr=68:9e:19:8b:93:fc
    usbrecovery=USB start;USB dev 0;setenv recoverydev usb;运行 recovery
    Vendor=信号
    ver=U-Boot 2017.01-00319-geae4602-niT (2017年10月4日- 09:16:07 +0200)

    环境大小:5024/131067字节
    ------------------------------------------------------

    此致

    Roberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    取消设置 FDT_HIGH。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 Kemal。
    你太棒了!

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

    Roberto、

    [引用用户="Roberto Chiarini"]从日志中可以看到、看到的机器编号为0x00000e05、这是 TI AM335X-EVM 的编号、

    您如何定义这是 AM335x EVM 的机器 ID?

    关于 u-boot、我看到 AM335x EVM 的机器 ID 号为3589、请参阅以下文件:

    u-boot/include/configs/am335x_evm.h

    u-boot/arm/lib/bootm.c

    u-boot/arm/lib/spl.c

    #define MACH_TYPE_TIAM335EVM      3589   //直到下一次同步*/
    #define CONFIG_MACH_TYPE               MACH_TYPE_TIAM335EVM


    您是否使用 AM335x_EVM_defconfig 构建 SPL/u-boot? 您是否对 AM335x_EVM_defconfig 和/或 am335x_evm.h 文件进行了任何更改?

    此致、
    帕维尔

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

    我从 AM335x_EVM 文件开始创建了自己的配置文件、并对其进行了自定义:
    -"AM335x_EVM_defconfig":我仅更改了 CONFIG_TARGET_AM335X_EVM、CONFIG_SYS_EXTER_OPTIONS 和 CONFIG_G_DNL_Manufacturer;
    -"AM335x_EVM.h":我修改了很多内容。 如果您需要、我可以向您展示我的设置。

    关于 am335x_evm.h 文件中的 CONFIG_MACH_TYPE、我保留了为 TIAM335EVM 定义的 MACH_TYPE。 它是正确的还是应该为电路板创建一个新的吗?

    此致

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

    我看到您已经验证了这个线程。 机器 ID 问题是否已修复? 如果是、请打开有关新问题的新 e2e 主题。

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题昨天已解决。
    我只是回答您的问题。
    此致

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

    在我看到您已经解决了问题之前、我问过这个问题、您可以忽略这个问题。 很抱歉造成误解。

    此致、
    帕维尔