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/TMS320DM8148:DM814x 8位 NAND board_nand_init()设置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/683257/linux-tms320dm8148-dm814x-8-bit-nand-board_nand_init-setup

器件型号:TMS320DM8148

工具/软件:Linux

您好!

我们拥有一款基于 DM814x 的产品、已发货多年:

  • DM814x PG 3.0
  • EZSDK 5.05.02.00
  • EZSDK OMX/HDVPSS 覆盖5.05.02.00
  • PSP 04.04.00.02
  •         v2.6.37_TI81XXPSP_04.04.00.02.Patch1 标签之后、ti81xx-master 中 Linux 和 u-boot 的大多数 Arago 更新

最近、我们不得不研究从16位 NAND 器件切换到8位 NAND 器件的可能性。  我查看了以下 TI wiki 页面:

其中声称:

  • 该版本支持8位和16位 NAND 闪存。  使用 CS0BW 开关选择 NAND 总线宽度的设置已与之前的版本不同。  要使用 8位 NAND、请将 EVM 上的 CS0BW (总线宽度)开关设置为  OFF 状态。 要使用 16位 NAND、请将 EVM 上的 CS0BW (总线宽度)开关设置为  ON  状态。

实际上、在对硬件进行 BTMODE12调整后、我能够成功使用8位 NAND 并从其引导。  但是、我注意   到、在 Linux board-ti8148evm.c 文件中、board_nand_init 函数硬编码为使用 NAND_OMAP-BUS_16 -与 uboot 不同、Uboot 是根据读取 CONTRAL_STATUS 动态做出决策。

UBoot EVM.c:

/* GPMC 将出现默认总线宽度配置,
*我们将根据 BW 引脚 CONFIG_STATUS 寄存器对其进行覆盖。
*目前仅 NAND/NOR 需要此功能
*支持8/16位 NAND/NOR 部件。 此外、我们始终使用芯片选择0
*用于 NAND/NOR 引导。
*
*注意:此代码是针对 DM8168 EVM 的、因此我们使用的是 CS 0。
*此外、即使对于其他引导模式、用户也应执行此操作
*打开/关闭 EVM 上的 BW 引脚。
*
gpMC_set_cs_buswidth (0、 get_sysboot_bw ());

linux board-ti8148evm.c:

/* nand initialization */
Board_nand_init (ti814x_nand_partitions、
  array_size (ti814x_nand_partitions)、0、 NAND_OMAP-BUS_16);

另一个注意事项:Arago  Linux-DVR-RDK-dm81xx 复制器中的这两个文件硬编码为0 (8位值)、而不是  NAND_OMAP-BUS_16: board-ti8107dvr.c、board-ti8168dvr.c

EZSDK 和 PSP 中的 NAND_OMAP-BUS_16硬编码是否需要监督?  还是也应该根据 BTMODE12进行设置?

谢谢、

Dan -

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

    是的、我认为我们未能更新内核以动态确定 NAND 总线大小。 由于此软件是旧版软件、因此不会再有更新/补丁。

    此致、
    帕维尔