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-OMAPL138:U-boot 和 NAND

Guru**** 2539500 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/619476/processor-sdk-omapl138-u-boot-and-nand

器件型号:PROCESSOR-SDK-OMAPL138
主题中讨论的其他器件:OMAP-L138

我一直在尝试从 u-boot 终端将各种引导组件加载到 NAND 中、以允许从 NAND 进行引导。 此时、我将手动将命令冲压到 u-boot 终端、但我的期望是、我将能够准备一个微型底稿(非常类似于设置阶段所做的操作)、从而能够以半自动步骤的方式执行此操作。

如果可能、我不想依赖提供的 Windows 工具、因为我无法访问 Windows 开发 PC。

我有一个可引导 SD 卡、我已将以下内容添加到其引导分区中:

  • U-boot.AIS (make u-boot 的输出)
  • u-boot.bin (make u-boot 的输出)
  • zImage (make Linux 的输出)

为了简单起见、我现在不看 TFTP 了...

这些是目前为止我所采取的步骤:

  • 使用 SD 卡启动电路板、并启动 u-boot 终端(使用 U-Boot 2017.01-g9fd60700db)
  • 将 AIS 引导加载程序从 SD 复制到 NAND 的开头
NAND 器件0
nand ERASE.spread 0 0x20000
fatload MMC 0 0x81600000 u-boot.AIS
nand write 0x81600000 0 0x20000 
  • 将 u-boot 二进制文件从 SD 卡复制到 NAND
NAND 擦除.spread 0x80000 0x40000
fatload MMC 0 0x81600000 u-boot.bin
并写入0x81600000 0x80000 0x40000 
  • 将内核映像从 SD 卡复制到 NAND
NAND 擦除.spread 0x280000 0x300000
fatload MMC 0 0x81600000 zImage
nand write 0x81600000 0x280000 0x300000 

在这个阶段、我本来以为所需的组件已经被复制到 NAND 中、这意味着电路板将成功加载 u-boot。 然后、我可以关闭 u-boot 加载内核的配置方式... 但我根本看不到这一点。 我根本看不到任何活动。 除了以太网指示灯在 ME 缓慢闪烁- 1Hz 或更慢)

这使我认为我正在编写不正确的文件... 但是、我在尝试写入预构建的映像时看到相同的结果... 我哪里出错了? 地址可能无效?

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

    我已将其转发给软件团队。 他们的反馈应发布在此处。

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

    我们仅测试了从 NAND (NAND 启动)中运行 u-boot。 请参阅 board/Davinci/da8xxevm/README.da850中的步骤。 查看您编程到 NAND 中的图像、我认为您丢失了文件系统。 至于从 NAND 引导内核、我们尚未尝试过。 您可以尝试一下。 如果您使其正常工作、请告知我们。

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

    目前、我甚至无法启动 u-boot ...

    由于这不起作用、我已返回到从 SD 引导... 到目前为止、在每次启动时、我会看到许多"坏擦除块"消息...

    NAND:找到器件、制造商 ID:0x2C、芯片 ID:0xcc
    nand:Micron MT29F4G16ABADAMH4
    nand:512 MIB、SLC、擦除大小:128 KiB、页面大小:2048、OOB 大小: 64
    未找到芯片0的坏块表
    未找到芯片0
    的坏块块块表在
    0x000000020000处为坏块扫描设备错误块1
    在0x000000040000处为坏块2
    在0x000000060000处为坏块3在0x000000060000
    上为坏块115打印消息被丢弃**错误的擦块145在0x000001220000
    ** 1 printk 消息被丢弃**错误的 eraseblock 147,位于0x000001260000...
    
    错误的 eraseblock 1772位于0x00000dd80000
    错误的 eraseblock 1773位于0x00000dda0000
    错误的 eraseblock 1774位于0x00000ddc0000
    错误的 eraseblock 1775位于0x00000dde0000
    ……
    错误的 eraseblock 1945位于0x00000f320000
    错误的 eraseblock 1946位于0x00000f340000
    错误的 eraseblock 1947位于0x00000f360000
    错误的 eraseblock 1948位于0x00000f380000...
    
    0x00000ffe0000处的错误内存块2047
    错误内存块表写入0x00001ffe0000版本0x01
    错误内存块表写入0x00001ffc0000版本0x01
    在 MTD 器件 DaVincia-nand.0上找到的部件分区
    在“DaVincia-nand.0”上创建3个 MTD 分区:
    0x0000000000000000000000000000000000000000 -0x20000:0x0000000n00000和
    
    “0x0000000u-0x0000000u.0000”:“0x0000000u-0x0000000u-nv-0x00000u.0000”
    控制器修订版2.5
    
    

    每次启动后都会发生这种情况、即使我没有重新刷写任何 NAND…… 这是否相关,我是否把我的 NAND 地址弄乱了,并弄乱了我不应该有的东西?

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

    您好、Juan、

    请在我捕获的日志中尝试以下命令、以便从 NAND 引导 u-boot。 而是 tftp 映像。

    => setenv ipaddr 158.218.109.223
    => ping 158.218.109.254
    使用达芬奇-EMAC 器件
    主机158.218.109.254处于活动状态

    => setenv serverip 158.218.109.254
    => tftp ${loadaddr}158.218.109.254:psdk4004-omapl138/u-boot-omapl138-lcdk.AIS
    使用达芬奇-EMAC 器件
    来自服务器158.218.109.254的 TFTP;我们的 IP 地址为158.218.109.223
    文件名"psdk4004-omapl138/u-boot-omapl138-lcdk.ais"。
    加载地址:0xc0700000
    正在加载:############################################################################
    ############################
    528.3 KiB/s
    完成
    传输的字节= 488024 (77258十六进制)
    =>打印文件大小
    filesize=77258
    => Nand 信息

    器件0:nand0、扇区大小为128 KiB
    页面大小2048 b.
    OOB 大小64 b
    擦除大小131072 b
    子页大小512 b
    选项0x40000002
    BBT 选项0x 28000
    => n 并擦除0x20000 80000

    NAND 擦除:器件0偏移量0x20000、大小0x80000
    在0x80000擦除-- 100%完成。
    好的
    => Nand 信息

    器件0:nand0、扇区大小为128 KiB
    页面大小2048 b.
    OOB 大小64 b
    擦除大小131072 b
    子页大小512 b
    选项0x40000002
    BBT 选项0x 28000
    => n 并写入${loadaddr}0x20000 80000

    NAND 写入:器件0偏移量0x20000、大小0x80000
    524288字节写入:正常
    =>  
     
    [根据 L138开发套件 http://processors.wiki.ti.com/index.php/L138/C6748_Development_Kit_%28LCDK%29#User_Interface 将 DIP 开关设置为 NAND 启动]

    引导日志显示为:

    U-Boot SPL 2017.01-g9fd60700db (2017年6月28日- 18:22:04)
    尝试从 NAND 引导


    U-Boot 2017.01-g9fd60700db (2017年6月28日- 18:22:04 -0400)

    I2C:就绪
    DRAM:128 mib
    警告:未启用缓存
    NAND:512 MiB
    MMC:DaVinci:0
    IN:串行
    OUT:串行
    ERR:串行
    读取的 MAC 地址无效。
    NET:DaVinci-EMAC
    警告:使用随机 MAC 地址- 1e:e8:1a:6F:e0:80的 Davinci-EMAC (eth0)

    按任意键停止自动引导:0
    =>
    =>

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

    谢谢 Rex、
    我已按照所示的步骤操作、并更新了通过 TFTP 加载预编译映像的过程。 最后的写入步骤失败、如下所示:

    => n 并写入${loadaddr}0x20000 80000
    
    NAND 写入:器件0偏移量0x20000、大小0x80000
    跳过坏块0x00020000
    坏块0x00040000
    跳过坏块0x00060000
    NAND 写入到偏移量 c0000失败-5
    131072字节写入:错误
    

    nand erase 命令还显示坏块... 但不会失败退出...

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

    如果我使用扩展擦除选项、上述问题就会得到解决。

    setenv ipaddr 10.0.199;
    setenv serverip 10.0.0.69;
    tftp ${loadaddr}10.0.69:u-boot.AIS
    nand ERASE.spread 0x20000 80000;
    n 并写入${loadaddr}0x20000 80000 

    我将继续对内核和文件系统进行排序、并将结果发布回...

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

    好极了。 我使用 OMAP-L138 NAND 启动信息更新了 TI 的 U-boot 内核用户指南。 我们刚刚在最近的 ProcSDK 中添加了 OMAP-L 支持、并忽略了 NAND 启动区域。

    请在您的内核和文件系统在 NAND 模式下运行后进行回帖。 我们可以将其更新为用户指南。 谢谢!

    雷克斯