找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
众所周知,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 收起 理由
ipta*** + 1 强大的恩山!(以下重复1万次)
dexi*** + 2 强大的恩山!(以下重复1万次)
kpe*** + 1 率全体恩山路由党以及党魁向你学习!
gubi*** + 1 一看就是觉得高端、大气、上档次!
qianyu*** + 2 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
抢楼,第一人
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

一下子没看明白,但是觉得肯定是非常厉害
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大神前排我抢了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

猴塞雷嘎。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我手上刚好有一套CreativeBox v1,但是信号奇差,一直丢箱子中,hackpascal能给个EEPROM给我吗,看看是否是EEPROM问题改天也拿来玩双flash启动。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

前排占位,广告位预留。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

不明觉厉.....
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

前排站坑
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

那个鸡鸡不错啊,除了无线没功放外...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

所以通过一些手段实现任意长度数据传输是什么?7621快被你们研究透了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大佬就是不一样
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

前排站坑
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

膜拜中  大神
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

地板地板,占位
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 19:23

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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