这一章是内核启动三部曲的中篇–上一章 25 讲了 head.S,这一章 26 讲 setup_arch,下一章 27 讲 rest_init。上一章我们讲到b start_kernel这一跳,这一章就接上,讲 start_kernel 里最重要的子函数 setup_arch。这一章的重点是 DT_MACHINE_START 匹配机制–它是板卡 DTS 和内核平台的连接点,也是移植时最容易出错的环节。全章大约 30 分钟。先把本章要张口答得出的四件事记下来,带着听。第一个问题落在这章的调用链和子步骤上,第二、四个问题落在平台注册,第三个问题落在设备树匹配,其中"compatible 不匹配"是移植高频坑,会重点讲。学完本章你将能回答:setup_arch()具体做了哪些初始化?顺序是什么?(答在第三、六节)Rockchip 平台是如何通过DT_MACHINE_START注册的?(答在第五节)如果设备树 compatible 不匹配会发生什么?(答在第四节)DT_MACHINE_START宏的三个字段(.nr、.init_machine、.dt_compat)分别有什么作用?(答在第五节)