今年1月时给 OpenWrt 提交了添加 LoongArch64 支持的 PR,在折腾3个多月后,终于成功合并进主线了🤣。
我自从大学时知道了龙芯以来,就一直在关注,终于等到了一款自主架构的高性能桌面CPU,那当然必须是要支持一下的。
借此机会,接下来像JTAG/UEFI/LoongArch架构相关的学习都安排一下😎顺便搞点老本行,研究分析一些龙芯官方还没公开的东西。
[……]
今年1月时给 OpenWrt 提交了添加 LoongArch64 支持的 PR,在折腾3个多月后,终于成功合并进主线了🤣。
我自从大学时知道了龙芯以来,就一直在关注,终于等到了一款自主架构的高性能桌面CPU,那当然必须是要支持一下的。
借此机会,接下来像JTAG/UEFI/LoongArch架构相关的学习都安排一下😎顺便搞点老本行,研究分析一些龙芯官方还没公开的东西。
[……]
2022年07月24日更新,修订号 r1416,git提交记录 46ae2a1
更新内容:
– 重写整个 Web UI 更新框架:
1. 提供更完善的 NAND 支持:现在全部使用 NAND 的版本均支持完善的坏块管理功能,包括升级时自动跳过坏块、备份编程器固件时自动跳过坏块。同时使得升级 NAND 编程器固件的功能实用化(从这个版本开始,Breed 将只支持升级由新版本的备份编程器固件功能备份出的“可升级编程器固件”)。
2. 提供更灵活的升级文件选择:现在部分机型支持升级Bootloader、固件、ART/EEPROM以外的文件,例如单独的kernel/rootfs或者机器的出厂key[……]
2021年12月16日更新,修订号 r1338,git提交记录 839fb85
更新内容:
– 修复 MT7621 NAND 版的环境变量无法使用的BUG
更新的文件:
– breed-mt7621-hiwifi-hc5962.bin
– breed-mt7621-r6220.bin
– breed-mt7621-xiaomi-r3g.bin
[……]
2021年12月15日更新,修订号 r1337,git提交记录 f9b74d0
更新内容:
– 修复 MT7621 NAND 坏块表状态数值错误导致无法读取/写入任何数据的BUG
– 禁用 MT7621 JTAG 以便使用 JTAG pin 的 LED 能够正常点亮
– 新增部分 SPI-NOR 支持 (EN25QX128/MX77L12850F/XM25QW128C/XT25F128B 等)
更新的文件:
全部
[……]
2021年12月12日更新,修订号 r1333,git提交记录 583fbe9
更新内容:
– Flash 框架和驱动全部重写,新增编程器模式(后面会补帖更新使用方法,现在只支持 CLI 模式,以后会更新 Web UI 模式)。
– NAND 驱动完善坏块处理功能。(包含 MT7621/AR9344/QCA9558 等 NAND 机器的支持,含 WNDR4500v3/QNDR4300v2 的 SPI-NAND)
– 修复 AR9344 NAND 驱动不稳定的问题,WNDR4300v1 NAND 版重新加入支持
– 老旧芯片起死回生,全部重新加入更新(及个别除外)
– DW33D 专用版修[……]
转载请注明原帖链接和作者!
最近重新入手WNDR4300v1进行折腾,主要是为了测试完全重写了 flash 驱动框架的 breed 的功能是否正常。因为已经入手 TRACE32,因此就想把 JTAG 功能用上。
根据 WNDR4300v1 的 GPIO 定义可知,JTAG 所在的 4 个 GPIO, 0~3 已经全部被 LED 占用了,因此第一步就是断开 GPIO 到 LED 的连接,改为到 JTAG 插座的连接。
经过一番测量,最终找出了 4 个连接 LED 的电阻,和 4 个连接 JTAG 的空电阻焊盘:
4 个连接 LED 的电阻分别是 R26/R27/R[……]
转载请注明原帖链接和作者!
在现在看来,现今比较老的一批路由器芯片,以 Atheros/QCA/MediaTek 等的 MIPS 平台的芯片为代表,基本都只支持从 SPI-NOR 启动。
如果要使用 SPI-NAND,就必须使用双 Flash 方案,即从 SPI-NOR 上启动,再从 SPI-NAND 上加载固件。
对于现有的方法,从单 Flash 改为双 Flash 就很不容易。如果是新设计的方案,双 Flash 会增加额外的物料成本和开发成本,不划算。
说到底,这还是因为 SPI-NOR 跟 SPI-NAND 使用的读指令的时序不同:
SPI-NOR 的 Read d[……]
转载请注明原帖链接和作者!
现在 Debian 已经能基本正常运行了,但是缺少一点最重要的东西,那就是内核模块。
虽然可以直接将 OpenWrt 编译出的 ko 复制到 Debian 中加载,但是这却有不少问题:
1. ko 被精简过,缺少必要信息,如 depmods
2. 编译的 ko 很少
3. 无法被自动加载/按需加载
此外,使用 OpenWrt 的 ko,而不自己编译,会导致系统缺少针对当前 Kernel 的头文件,无法实现在 Debian 中编译自己的 ko。
因此,我需要自己编译 Debian Kernel,也就是修改原始的 Debian Ke[……]
转载请注明原帖链接和作者!
OpenWrt 自带的 swconfig 功能对于 Debian 来说,就不是那么好用了。除此之外,Linux 对交换机的支持就只剩 DSA 了。幸好 MT7530 有 DSA 驱动。
但是 MT7530 的 DSA 驱动是给 MT7623 用的,里面硬编码了很多 MT7623 的设置,还用到了很多 MT7621 中不存在的东西,例如 Power domain。
这些都需要全部去掉,并为 MT7621 添加所需的代码。
此外,用于 MT7621 的以太网驱动 mtk_soc_eth 也一团糟,里面杂揉了各个芯片的代码,不纯粹,不适合拿给[……]