移植Linux到全新的SMP SoC上,需在底层提供定时器节拍、中断控制器、SMP启动、GPIO、时钟、
pinctrl等功能,这些底层的功能被封装好后,其他设备驱动只能调用内核提供的通用API。这良好地体现
了内核的分层设计,即驱动都调用与硬件无关的通用API,而这些API的底层实现则更多的是填充内核规
整好的回调函数。
Linux内核社区针对pinctrl、时钟、GPIO、DMA提供独立的子系统,既给具体的设备驱动提供了统一
的API,进一步提高了设备驱动的跨平台性,又为每个SoC和设备实现这些底层API定义好了条条框框,从
而可以在最大程度上避免每个硬件实现过多的冗余代码。
1、下载最新linux代码
linux官网下载linux代码: https://www.kernel.org/
2、查看config信息
ls arch/arm/configs/
配置config
make dove_defconfigARCH=arm
3、编译
make ARCH=arm CROSS_COMPILE=arm-asr7200-linux-gnueabi-(指定编译工具链)
4、linux5.10升级内容
PM:电源管理
针对这个指标PM QoS有一个专门的名词:constraint(约束),其实也比较好理解,可以看做其他模块对PM的诉求和限制,目前PM QoS针对这些指标分为两类:一类是系统级的,包括:cpu&dma latency、network latency、network throughput和memory bandwidth,定义在kernel/power/qos.c中(在最新的kernel-5.4版本中,这一类constraint从4个缩减到只有cpu&dma latency这一个,同时增加了一类cpufreq的constraint)
后续规划:
1、想要理解透彻,要移植linux必备的几个模块,然后一个个往上加,熟悉linux的基础架构,明白那些是linux最小系统必备的东西。