半导体货架上那些跑不到 200MHz 的老芯片,其实是最适合拿来练手的教材。这批以AT91RM9200为核心的工业板卡,主频低、外设少、资料零散,但正因为"什么都得自己来",一块嵌入式Linux移植的完整链条会毫无遮拦地摊在你面前:BootROM 怎么找启动介质、16KB 片内 SRAM 如何塞下第一级引导、SDRAM 时序配错会表现成什么样、machine ID 不匹配时内核吐出哪一行报错。这些环节在现在那些开箱即用的平台上被厂商 BSP 包得严严实实,你调一年也未必摸到一次。
这篇笔记面向三类人:手里正好有一块这类老 ARM9 板子、想让它跑起来 Linux 的硬件爱好者;需要在无 BSP 环境下啃冷门平台的在职工程师;以及想搞清楚"从上电到 shell 到底发生了什么"的学习者。我不打算贴一堆配置文件,而是把每一步的因果讲清楚——为什么这里必须软浮点、为什么波特率算出来是个除不尽的数、为什么改了 machine ID 才能过。踩过的坑会原样写出来,能抄的地方直接给你参数和算式。