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

发布时间:2026/7/10 7:36:58

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/7/10 8:23:45

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

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

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

2026/7/8 6:42:29

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

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

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

2026/7/11 0:55:44

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

国内用 PostgreSQL 魔改的数据库超过二十个,哪家敢说自己真正读懂了内核

国内用 PostgreSQL 魔改的数据库超过二十个,哪家敢说自己真正读懂了内核

2026/7/11 0:52:06

这个问题在技术圈子里问出来,场面会很尴尬。不是没有人敢回答,而是真正有资格回答的人都知道这个问题的分量。PostgreSQL 的内核代码库累计超过百万行,三十年迭代,全球数百名核心贡献者持续维护。国内拿它来魔改的团队&#xff0c…

激光雕刻终极指南:3分钟掌握LaserGRBL完整使用技巧

激光雕刻终极指南:3分钟掌握LaserGRBL完整使用技巧

2026/7/11 0:52:06

激光雕刻终极指南:3分钟掌握LaserGRBL完整使用技巧 【免费下载链接】LaserGRBL Laser optimized GUI for GRBL 项目地址: https://gitcode.com/gh_mirrors/la/LaserGRBL 想要开始激光雕刻创作,但面对复杂的软件感到困惑?LaserGRBL这款…

从碎片到完整:专业解析B站缓存视频无损合并技术

从碎片到完整:专业解析B站缓存视频无损合并技术

2026/7/11 0:52:06

从碎片到完整:专业解析B站缓存视频无损合并技术 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经历过这样的场景&#xff1…

Windows 11 LTSC系统添加微软商店的专业解决方案

Windows 11 LTSC系统添加微软商店的专业解决方案

2026/7/11 0:52:06

Windows 11 LTSC系统添加微软商店的专业解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC企业版时发现系统过于纯…

基站驻波比过高隐患!东北冬季馈线结冰,隐性射频故障排查技巧

基站驻波比过高隐患!东北冬季馈线结冰,隐性射频故障排查技巧

2026/7/11 0:52:06

在专网基站运维中,驻波比是判定射频链路健康度的核心专业参数,却极少被基层运维关注。东北入冬后,山顶基站、室外中继设备馈线、天线接头极易结冰凝霜,导致驻波比异常升高,引发隐性故障:设备正常开机、无告…

华硕主板风扇控制异常终极解决方案:FanControl专业调校完整指南

华硕主板风扇控制异常终极解决方案:FanControl专业调校完整指南

2026/7/11 0:42:05

华硕主板风扇控制异常终极解决方案:FanControl专业调校完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/10 22:32:48

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制

2026/7/11 0:02:03

WechatDecrypt技术解析:深入理解微信数据库AES-256-CBC解密机制 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 在数字隐私日益重要的今天,微信聊天记录作为个人数字资产的重要组成…

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符]

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符]

2026/7/11 0:02:03

5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载…

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案

2026/7/11 0:02:03

PostgreSQL 备份与恢复实战:从 pg_dump 到时间点恢复的生产级方案 一、数据库备份最容易被忽略的问题,不是「有没有做备份」,而是「备份能不能恢复、恢复要多久、以及恢复后的数据对不对」 很多团队做数据库备份的方式是「写个 cron job&am…