RK平台3.10内核移植详解

需积分: 13 4 下载量 21 浏览量 更新于2024-08-11 1 收藏 72KB DOC 举报
"该文档详细介绍了在RK平台上移植Linux内核3.10的过程,涉及到系统层面和常用模块的相关改动,以及Device Tree Source (DTS)的使用和影响。" 在RK平台上移植3.10内核的过程中,涉及到多个关键方面的改动: 1. **pinctl1**:这是关于平台引脚控制器的改动,可能包括引脚复用配置、中断线路设置等,以确保新内核能正确识别和管理硬件资源。 2. **clock/dvfs**:这部分改动可能涉及时钟管理和动态电压频率调整(DVFS),以优化能耗和性能。在新内核中,可能需要更新或新增时钟驱动,以及相应的电源管理策略。 3. **PM(Power Management)**:休眠唤醒功能的改动可能包括更新唤醒源、睡眠模式设置等,以确保系统在低功耗状态下仍能正确响应唤醒事件。 4. **ddr2**:内存控制器的改动,可能是为了支持DDR2内存,这涉及到内存初始化、地址映射和内存时序的调整。 5. **头文件改动**:旧的平台特定头文件如`<mach/gpio.h>`和`<mach/board.h>`被替换为通用的`<linux/of_gpio.h>`,表明平台向Device Tree的转换,使得内核更加标准化和灵活。 接下来,文档列举了几个常用模块的改动: - **LCD/BL**:液晶显示屏和背光控制的驱动可能需要更新,以适配新的内核接口,并通过DTS来配置。 - **TP**:触摸屏驱动的更新,确保在新内核中能正确识别和交互。 - **POWER**:电源管理模块的改动,可能包括电池管理、充电控制等,以兼容新的内核电源框架。 - **SENSORS**:传感器驱动的移植,这些驱动通常位于`drivers/input/sensors`目录下,根据DTS中的配置信息工作。 - 驱动需要获取的信息,如传感器类型、中断号、GPIO等,通过DTS文件传递给驱动。 关于Device Tree(DTS): - **dts/dtsi**:DTS是设备树的源文件,用来描述硬件平台的结构,dtsi则是可重用的部分。在RK平台中,可能包含多个dtsi文件来组织不同组件的描述。 - **rk平台集成的dtsi**:平台特有的dtsi文件,用于定义特定于RK平台的硬件特性。 - **dts编写规范和注意事项**:包括如何正确描述硬件节点、属性值、内存映射等,遵循一定的编码规则以保证内核能正确解析。 - **如何编译生成新的kernel.img**:描述了构建过程,将DTS编译成二进制设备树 blob(dtb)并整合到内核映像中。 Dts引发的驱动变更: - **驱动与dts通信**:驱动程序通过内核的Device Tree API来读取dts中的信息,实现硬件初始化。 - **注册i2c_board_info**:在DTS中定义I2C设备后,驱动可以使用`i2c_board_info`结构注册,指定IRQ等板级信息。 - **注册platfrom_device**:对于平台设备,驱动会绑定到由DTS定义的资源,如内存和中断。 这个文档详细地阐述了在RK平台上移植3.10内核所涉及的各个方面,包括系统层的改动、模块驱动的更新以及Device Tree的使用,为开发者提供了全面的移植指南。