RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设

发布时间:2026/8/26 15:37:37

RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设rk-forge 已经开源带你从零把一颗几乎没人理的 RK3506用主线 Linux7.1 主线 U-Boot 一路跑到rk3506 login:——可按序打上去的补丁库、诚实的差距报告、完整 bringup 教程都在这。欢迎观摩喜欢点个⭐(笔者已经在构思独特于imx-forge的项目了)仓库地址https://github.com/Awesome-Embedded-Learning-Studio/rk-forge静态网页https://awesome-embedded-learning-studio.github.io/rk-forge/有朋友反馈说希望有PDF渲染的版本您可以戳戳https://github.com/Awesome-Embedded-Learning-Studio/rk-forge/releases/tag/pdf%2F2026-06-23-1120或者有其他更新的版本。因为我怕放百度网盘会被发文平台一脚踹飞所以如果不方便上Github的朋友可以私信我要一下百度网盘链接外设系列第一章先把三个纯 DT、零驱动 patch的外设点亮Ethernet、SPI、MMC/SD。它们的主线驱动一个不缺dwmac-rk、spi-rockchip、dw_mmc-rockchip所以这一章基本就是接线 板验。Ethernet 双口通网是亮点MMC 中途 -110 绕了一大圈真因出乎意料SPI 干净利落。完整记录见 notes/21。开干之前先用两小节把这个系列后面反复要用到的两把尺子交代清楚一套三层验证T1/T2/T3——外设确实在工作到底怎么算数一条拿 vendor 同板对照的方法论——判断硬件到底好不好时别轻易往物理接触上瞎归因。这两条是本章 Ethernet/SPI/MMC 几次翻案的依据也是整个外设系列的底色。交代完它们我们再回到这一章的主角Ethernet、SPI、MMC/SD 这三个纯接线外设。核心通了外设还白着boot 让板子启动到 consolerootfs 让它持久跑进 shell。到这一步你手里是一块能开机、能登录、但啥也干不了的板子——网口没通、USB 不认、WiFi 没影。外设系列就是把这块能开机的砖变成能用的板。听起来工作量不小但有个让人松一口气的前提RK3506 这些外设的主线驱动基本都已经在上游了。dwmac-rk以太网、dw_mmc-rockchipSD/eMMC、spi-rockchip、dwc2USB、pl330DMA、ES8328音频 codec……一个都不缺。所以外设 bringup 的主体是接线活——把这些驱动用设备树接到板子的引脚上、在 config 里打开、再上板验证。绝大多数不用写驱动。三层验证T1 / T2 / T3外设确实在工作不能只看 dmesg 蹦一行 probe我们分三层逐级坐实每层都有硬证据T1 驱动 probe——dmesg 有 probe 行/sys/bus/.../drivers/...绑了节点。T2 设备就绪——总线枚举到/sys/class/net/eth0、/dev/mmcblk0、/dev/spidev0.*。T3 功能——真 I/OEthernet 的 carrier DHCP pingMMC 插卡读 MBR mountUSB 枚举设备。T1T2 不依赖外部硬件就能 100% 坐实DT 驱动正确T3 要网线/卡/U盘有就验、没有就诚实标needs gear不装假通过。一个值钱的方法论拿 vendor 同板对照判断这块板的硬件到底好不好别只盯 forge 自己的 log——把 vendor 镜像跑在同一块板、同一个 SPI-NAND 上对照。vendor 能读出来的东西硬件就是好的forge 读不出那就是 forge 软件问题别轻易往物理/接触上归因。我们在 MMC 上栽过这个跟头下面 MMC 一节细讲后来靠 vendor 同板 log 一眼翻案。这条方法论后面每章都会用到。A1 这批为什么是纯接线按外设 bringup 的难易分档Ethernet / SPI / MMC/SD 属于最干净的那一档——主线驱动全在、config 也都y预期就是把 vendor DT 的节点抄进我们的rk3506.dtsi和rk3506b-aes.dtsbuild dtb、出镜像、板验。落在三个 patch0004 Ethernet gmac1RMII、0005 MMC/SD SPI0、0006 补 gmac0。Ethernet先栽在 carrier0双口才发现真相Ethernet 第一次板验gmac1 probe 得很漂亮——rk_gmac-dwmac ff4d0000RMII、Synopsys ID 0x51、PHY 探到MDIO 通eth0 在、ifconfig up也成。但carrier0udhcpc 没响应。我当时第一反应是往物理上怀疑——错了。翻案的钥匙是拿 vendor 镜像在同块板上对照。vendor 的 log 里同时 probe 了gmac0ff4c8000和 gmac1ff4d0000两个口PHY 都是 YT8512而且 vendor 的 eth0gmac0 link up 了 100M。也就是说这块 ATK 板有两个 RJ45而我之前只照着 vendor DT 里 gmac1 那段开了 gmac1——用户的网线插在 gmac0 那个口上forge 只开了 gmac1eth0gmac1自然 NO-CARRIER。修就是0006把 gmac0 补全SoC 节点ethernetff4c8000对称于 gmac1mdio0eth_rmii0pinctrl注意 gmac0 在bank2gmac1 在 bank3不一样 板级gmac0reset-gpio、phy-handle、status okayrmii_phy0。重烧上去boot-sdl-2026-06191755 就是结果rk_gmac-dwmac ff4c8000.ethernet eth0: PHY [stmmac-0:01] driver [Generic PHY] rk_gmac-dwmac ff4c8000.ethernet eth0: Link is Up - 100Mbps/Full udhcpc: lease of 192.168.60.132 obtained from 192.168.60.254 # ping -c3 192.168.60.2 → 3 packets received, 0% lossLink Up DHCP ping 0% lossEthernet T3 全绿。SPIT1T2 干净T3 没条件SPI0 没啥波折。rockchip-spi ff120000.spiprobePIO 模式——我故意删了 vendor 那套 5-cell DMA 编码主线 pl330 不认起手两条Failed to request optional TX/RX DMA channel -ENODEV是良性的——可选 DMA 没拿到驱动继续走 PIO别被吓到。/dev/spidev0.0和0.1都在。这里有两个坑要记一下。一是 spidev 子节点的compatible必须用主线白名单里的值比如rohm,dh2228fv——主线 spidev 显式拒绝rockchip,spidev这种写法。二是 configCONFIG_SPI_ROCKCHIP要ymulti_v7 默认是m我们那个最小 busybox rootfs 不 modprobe必须内置否则板上 SPI 根本不 probe。这板 SPI 没留对外接口T3 loopback 做不了T1T2 到此即收。MMC/SD-110 绕了一大圈真因是卡没插紧MMC/SD 的 DT 节点0005移植本身没问题。但前几次板验插卡全-110mmc0: error -110 whilst initialising SD cardCard stuck being busy我绕了一大圈先怀疑物理接触又怀疑主线 dw_mmc 驱动回归逐项排除了 DT/clk/pinctrl/ops 全等价于 vendor——结果真因是 SD 卡没插紧。带 debug 打印的镜像boot-sdl-202606191808在板上把卡插紧直接枚举mmc0: new high speed SDXC cardmmcblk0: ... 58.2 GiB8 分区全出来。那条 debug 打印抓到的pending0x100RTO 超时全落在 CMD5/CMD52——那是 SDIO 探测命令探一张 SD 内存卡时的正常超时不是真错。这章最值钱的教训就是前面那个方法论判断硬件好不好拿 vendor 同板对照。我们一度把 MMC 的 -110 和 Ethernet 的 carrier0 一起归给物理问题是 vendor 那张 vendor_sdcard_logvendor 从 SD 启动把同一张 64G 卡读得干干净净还从它启动一眼把我们救回来的——硬件好的是 forge 软件的事。成功长这样A1 三件套全绿Ethernet双口link up DHCP ping、SPIT1T2、MMC/SD枚举 8 分区。到这里 forge 的设备树对 net/spi/mmc 已经自足不再依赖 vendor DT。下一章我们点亮 USB——那要补一小块 USB2PHY 驱动外加一个踩了才知道的 DT 坑。我们 Ch2 见。

相关新闻

5分钟打造个性化动态桌面:开源神器深度体验

5分钟打造个性化动态桌面:开源神器深度体验

2026/8/26 9:22:56

5分钟打造个性化动态桌面:开源神器深度体验 【免费下载链接】DreamScene2 一个小而快并且功能强大的 Windows 动态桌面软件 项目地址: https://gitcode.com/gh_mirrors/dr/DreamScene2 每天面对千篇一律的静态壁纸,你是否已经审美疲劳&#xff1f…

Selenium IDE架构解析:从录制到回放的自动化测试底层逻辑

Selenium IDE架构解析:从录制到回放的自动化测试底层逻辑

2026/8/22 17:39:28

1. 项目概述:不只是“录制-回放”那么简单提到Selenium IDE,很多刚接触自动化测试的朋友第一反应就是“那个可以录屏的工具”。确实,它的录制与回放功能直观得让人着迷——点点鼠标,操作就被记录下来,再点一下&#xf…

MIMIC-IV读入院预测预处理:临床时序对齐实战指南

MIMIC-IV读入院预测预处理:临床时序对齐实战指南

2026/8/22 17:39:31

1. 项目概述:为什么从MIMIC-IV预处理开始就决定读入院预测的成败你打开MIMIC-IV数据集,看到200多个CSV文件、上亿条临床事件记录、时间跨度近十年的ICU住院流水——第一反应不是“终于能建模了”,而是“这玩意儿到底怎么对齐?”我…

智慧教育平台电子课本批量下载:三步解析并保存 PDF

智慧教育平台电子课本批量下载:三步解析并保存 PDF

2026/8/26 15:36:33

智慧教育平台电子课本批量下载:三步解析并保存 PDF 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址: h…

小说下载器:一键把整本网文存成 TXT 和 EPUB,10 分钟完成

小说下载器:一键把整本网文存成 TXT 和 EPUB,10 分钟完成

2026/8/26 15:36:33

小说下载器:一键把整本网文存成 TXT 和 EPUB,10 分钟完成 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 网站删书之前,先把整本小说存进硬盘 小…

长事务对VACUUM与空间回收的影响——批处理任务的MVCC旧快照、监控SQL与治理规则实战

长事务对VACUUM与空间回收的影响——批处理任务的MVCC旧快照、监控SQL与治理规则实战

2026/8/26 15:36:33

文章目录每日一句正能量1. 背景与问题2. 环境与数据2.1 为什么长事务不一定是“正在执行很久的SQL”2.2 关键监控字段2.3 表侧指标3. 复现过程3.1 Session A:故意建立旧事务3.2 Session B:制造大量旧版本3.3 观察清理前状态3.4 Session A不结束&#xff…

dxwrapper老游戏兼容完整避坑指南

dxwrapper老游戏兼容完整避坑指南

2026/8/26 15:36:33

dxwrapper老游戏兼容完整避坑指南 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes. 项目地址: http…

Simple Live:一款 5 分钟跑起来的跨平台直播聚合客户端

Simple Live:一款 5 分钟跑起来的跨平台直播聚合客户端

2026/8/26 15:36:33

Simple Live:一款 5 分钟跑起来的跨平台直播聚合客户端 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live Simple Live 是一个基于 Flutter 构建的跨平台直播聚合客户端,一…

如何将TradingView策略迁移到alpha-rptr:完整迁移实战指南

如何将TradingView策略迁移到alpha-rptr:完整迁移实战指南

2026/8/26 15:26:33

如何将TradingView策略迁移到alpha-rptr:完整迁移实战指南 【免费下载链接】alpha-rptr A trading bot for automated algorithmic trading on Binance Futures, Bybit, BitMEX and FTX written in python. 项目地址: https://gitcode.com/gh_mirrors/al/alpha-rp…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/26 1:49:16

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/24 21:16:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

2026/8/26 0:05:45

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

Hermes接入团队协作后,我推翻了三个效率假设

Hermes接入团队协作后,我推翻了三个效率假设

2026/8/26 0:05:45

聊《Hermes真能提效吗?先看流程里最慢的那一步》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要团队把 Hermes 接进项目三个月后,交付速度没有提升反而慢了。复盘后发现,最先…

免费AI大模型调教指南:打造专属网文写作助手

免费AI大模型调教指南:打造专属网文写作助手

2026/8/26 0:05:45

1. 先搞清楚“AI小说扩展模式”到底能帮你做什么如果你是一个刚开始写网文、或者卡在L3级别以下的作者,最头疼的可能是情节推进不下去、人物对话干瘪,或者世界观设定不够丰满。自己对着空白文档硬憋,效率很低。这时候,一个能理解你…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…