新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/10/26 14:29:18来源:尧图网络
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 见。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/25 3:20:41

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/25 3:43:49

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/26 12:48:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/26 10:03:11

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/25 3:54:32

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/25 5:32:24

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉