找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 22301|回复: 52

【尝鲜】MT7621 + SPI-NAND 双固件启动体验

  [复制链接]
发表于 2018-12-15 22:31 | 显示全部楼层 |阅读模式
众所周知,MT7621 的 NAND 跟 SPI-NOR 不能共存,必须通过硬件改造,加入开关进行切换,十分不方便。
而MT7621支持的是并行NAND,且引脚跟SD复用,对于PCB上没有NAND焊盘的路由器来说,想增加NAND支持是难上加难,而NAND跟SD的引脚复用,会导致SD功能无法使用。
那么有没有什么方法能够比较方便地增加NAND支持,又能够保留SD卡支持呢?
答案就是SPI-NAND。

首先要明确一个事实,平时我们说的SPI Flash,绝大多数时候指的都是SPI-NOR flash,而这并不是完全准确的。
闪存有NOR和NAND两种,这里并不细讲它们的区别。
NOR跟NAND是存储器类型,他们需要提供一个接口供外部访问,而接口可以是并行的也可以是串行的。
因此NOR和NAND都有两种常见类型的接口,并行和串行。没错,NAND也有串行接口的。
对于并行接口,NOR使用的是类似于内存的接口,有数据总线、地址总线、ALE/CLE等控制信号;NAND使用的是另一套接口,数据和地址共用一套总线。但是两者的串行接口都是一致的,SPI。
虽然都是SPI接口,但是他们的指令和时序都不同,所以驱动并不通用。

长久以来,MT7621的SPI驱动都处于一种半成品状态。MT7621的SPI控制器设计上只能针对SPI-NOR进行操作,且其FIFO空间很小,一次传输的数据很有限(32字节)。
而Linux的SPI-NOR驱动,动辄要求一次传输上百字节,因此OpenWrt里的做法是修改SPI-NOR驱动,让它一次性只要求传输不超过32字节。
但是这一招对于SPI-NAND就不行了,因为他们的框架完全不同。

在最近,OpenWrt的人发现可以通过一些手段,实现一次传输任意长度的数据。因此我根据这一线索重新开发了一套通用的SPI驱动,解决了最重要的一个难题。
而对于SPI-NAND,Kernel已经在4.19实现了支持。现在的OpenWrt使用4.14,可以很方便地backport下来(同时需要spi-mem框架)。




因为SPI-NAND是SPI总线地,因此其封装一般是WSON8,只有8个引脚,能够很方便地焊在板子上,跟现有的SPI-NOR共享7个引脚,CS引脚焊到MT7621的SPI_CS1引脚进行了。

这里我用的是 @ff94315 的 CreativeBox v1,它自带双SPI焊盘,因此能很方便地加入 SPI-NAND 支持。





得益于之前给 WNDR4500v3 开发 breed 时增加了 SPI-NAND,给 CreativeBox 开发breed就容易了很多
针对这个板子我开发了专用的双Flash版breed,能实现NOR/NAND的固件刷写,以及自由切换启动设备。






如果想针对其他的平台,可以使用upstream u-boot,它已经支持spi-nand了。

对于 OpenWrt,现阶段的trunk时铁定不支持的了,因此我自己backport了相关的代码,做了OpenWrt专用版固件,可以参考我的 Github:
https://github.com/hackpascal/openwrt-dev




固件就只提供一个简单版本。因为这属于DIY范畴,每个人的做法都可能不同。需要根据自己的需求来做修改。
链接:https://pan.baidu.com/s/1vCNwR1WkvKQ3xqiqvclFMw 密码:ix8s

评分

参与人数 5恩山币 +7 收起 理由
iptables + 1 强大的恩山!(以下重复1万次)
dexi2009 + 2 强大的恩山!(以下重复1万次)
kpeaker + 1 率全体恩山路由党以及党魁向你学习!
gubinhao + 1 一看就是觉得高端、大气、上档次!
qianyuanaini + 2 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2018-12-15 22:38 | 显示全部楼层
抢楼,第一人
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 22:38 | 显示全部楼层
一下子没看明白,但是觉得肯定是非常厉害
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 22:41 | 显示全部楼层
大神前排我抢了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 22:42 | 显示全部楼层
猴塞雷嘎。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 22:51 | 显示全部楼层
我手上刚好有一套CreativeBox v1,但是信号奇差,一直丢箱子中,hackpascal能给个EEPROM给我吗,看看是否是EEPROM问题改天也拿来玩双flash启动。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 22:56 | 显示全部楼层
前排占位,广告位预留。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:10 | 显示全部楼层
不明觉厉.....
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:22 | 显示全部楼层
前排站坑
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:23 | 显示全部楼层
那个鸡鸡不错啊,除了无线没功放外...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:25 | 显示全部楼层
所以通过一些手段实现任意长度数据传输是什么?7621快被你们研究透了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:26 | 显示全部楼层
大佬就是不一样
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:26 | 显示全部楼层
前排站坑
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-15 23:57 | 显示全部楼层
膜拜中  大神
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2018-12-16 00:09 | 显示全部楼层
地板地板,占位
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 07:27

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表