IOB板添加flash,支持从flash启动

前言
虽然DUO/DUO256M上预留了SDNAND焊盘,但是目前无法将固件烧录到SDNAND焊盘。官方的IOB板售卖已经有很长时间了,上面预留了FLASH焊盘,可有限更改后支持SPI NOR FLASH/SPI NAND FLASH

PIN配置
根据cv1800B的硬件参考资料 CV181x/CV180x HDK 开发文档汇总,<CV180xB_38板硬件指南_V1.0.pdf>文档 4.2章节所述,SPI_WP_XNC或者1时,SPI_MOSI引脚可决定启动模式,当SPI_MOSI引脚通过下拉电阻接地时,为SPI NAND启动方式,而该引脚通过上拉电阻接3.3V时,为SPI NOR启动方式。详情参考下图。上下拉电阻参考阻值4.7-10KR.
image

IOB修改
警告:需要一定的焊接能力并具有相关的硬件工具。 :innocent:
在IOB底板上,可改变电阻,实现NOR/NAND FLASH启动切换, IOB原理图<duo_iob_v1.11.pdf>文档该部分的电路如图如下

  • SPI_WP下拉到地,
  • SPI_CS上拉到3.3V
  • SPI_HOLD上拉到3.3V
  • SPI_MOSI上下拉决定启动方式

已经预留了U48 FLASH器件位置,而SPINOR_NAND_TX为SPI_MOSI引脚,默认焊接的R793电阻,R792电阻被NC掉,注意,原理图标记错误,根据上面图片的BOOT,1为NOR,0为NAND,一定要注意。所以IOB默认被配置为NOR启动,也就是说在上面焊接NOR FLASH即可。而如果要调整为NAND FLASH,则需要移除R793,将该电阻焊接到R792处。再次重申,直接焊接 NOR FLASH,或者搬移电阻后焊接NAND FLASH二选一。

这是该区域的位号图:


针对算能的uboot驱动支持的SPI NOR/NAND FLASH,可参考源代码,之前整理的一份list,也可参考下帖。 Milkv duo官方驱动支持的NAND和NOR - Duo - MilkV Community

目前测试过淘宝比较好买便宜的 NOR W25Q256JVEQ(32M)和NAND W25N01GVZEIG是可用的。其它器件未测试。

相关的固件已经向SDK发起合并,目前SDK可直接编译出NOR 或者 NAND固件。

注意:
1.一定要确定电阻和FLASH器件焊接正常,不然固件启动在uboot就会出现问题。
2.正常情况下UBOOT中就能识别FLASH型号,确认识别到了才进行下一步,不然检查1。
3.升级目前只试过将fip.bin *.spinior或者fip.bin *.spinand拷贝到空白内存卡根目录,上电后自动更新到FLASH,利用工具烧录的请自测。

参考资料:
CV181x/CV180x BSP + MPI SDK 开发文档汇总 (BSP + MPI Software Development Document) (sophgo.com)

2 Likes