arm64内核配置小结

文章探讨了ARM与ARM64架构在内核配置上的不同,包括CONFIG_HAVE_KERNEL_GZIP的移除,要求bootloader处理gzip压缩内核;CONFIG_SERIAL_AMBA_PL011与串口显示的问题;页表级别的差异;无Hz模式的解释;以及异常向量基址的配置。这些差异影响了系统行为,如在qemu上的表现。
摘要由CSDN通过智能技术生成

1.CONFIG_HAVE_KERNEL_GZIP

arm是有这个配置项的,而arm64检索没看到这个配置项,原以为arm64默认支持了,结果最后才看到是arm64不再支持它,而是让bootloader配置支持gzip压缩过的内核镜像。可以在下面的文档中看到对内核压缩镜像的描述

Documentation/arm64/booting.txt

3. Decompress the kernel image
------------------------------

Requirement: OPTIONAL

The AArch64 kernel does not currently provide a decompressor and
therefore requires decompression (gzip etc.) to be performed by the boot
loader if a compressed Image target (e.g. Image.gz) is used.  For
bootloaders that do not implement this requirement, the uncompressed
Image target is available instead.

2.CONFIG_SERIAL_AMBA_PL011、CONFIG_SERIAL_AMBA_PL011_CONSOLE

看到arm没有对该项的配置,于是arm64也取消了对其的配置,结果编译得到的内核镜像无法在qemu上通过串口显示,那么多配置项,最终定位到是这两配置项的原因导致了qemu 起内核串口不显示。虽然在配置界面看了该配置项的help 介绍,然而并没看到与qemu 串口显示有什么直接的联系。

3.CONFIG_PGTABLE_LEVELS=4

arm对应配置项值为3,即3级页表,而arm64默认的是4级页表,页表级数本质是看处理器是否支持,当然与系统的位数也有关,好比处理器支持4级页表,而系统是32位的,若32位内核配置为四级页表是不合逻辑的。

4.CONFIG_NO_HZ_IDLE、CONFIG_NO_HZ_FULL

“CONFIG_NO_HZ_IDLE是说在系统idle的时候是没有tick的,当然,在系统运行的时候还是有tick的,因此,我们也称之dynamic tick或者NO HZ mode。3.10版本之后,引入一个full tickless mode,听起来好象任何情况下都是没有tick的,不过实际上也没有那么强,除了CPU处于idle的时候可以停下tick,当CPU上有且只有一个进程运行的时候,也可以停下周期性tick,其他的情况下,例如有多个进程等待调度执行,都还是有tick的。这个配置实际上只是对High-performance computing (HPC)有意义的。”

参考:Linux时间子系统之(十三):Tick Device layer综述

5.CONFIG_VECTORS_BASE=0xffff0000

异常向量基址取决于该配置项,其值可以是0x00000000,也可以是 0xffff0000,arm64没有该配置项,arm64对应的异常向量表的设定待分析,觉得arm64默认配置项是可以实现异常的处理的。

未完待续。。。

虽然参考arm内核配置项对arm64修改了很多配置项,但更多的是照猫画虎,不知其所以然

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值