kernel支持4k/16k/64k pagesize
在从arm64-stub.c 中会进行pagesize的check,从arm64 spec来看,arm64主要支持4k/16/64 这三种pagesize
efi_status_t check_platform_features(efi_system_table_t *sys_table_arg)
{
u64 tg;
/* UEFI mandates support for 4 KB granularity, no need to check */
if (IS_ENABLED(CONFIG_ARM64_4K_PAGES))
return EFI_SUCCESS;
tg = (read_cpuid(ID_AA64MMFR0_EL1) >> ID_AA64MMFR0_TGRAN_SHIFT) & 0xf;
if (tg != ID_AA64MMFR0_TGRAN_SUPPORTED) {
if (IS_ENABLED(CONFIG_ARM64_64K_PAGES))
pr_efi_err(sys_table_arg, "This 64 KB granular kernel is not supported by your CPU\n");
else
pr_efi_err(sys_table_arg, "This 16 KB granular kernel is not supported by your CPU\n");
return EFI_UNSUPPORTED;
}
return EFI_SUCCESS;
}
从check_platform_features 中可以看出如果是4k直接返回success,否则就要读取ID_AA64MMFR0_EL1,这个时候pagesize 就是根据ID_AA64MMFR0_EL1来决定是否是16/64k的,
可见[23:20] TGran16 表示16k
[27:24] TGran64 表示64k
[31:28] TGran4 表示4k
Table 4.56. ID_AA64MMFR0_EL1 bit assignments
Bits Name Function
[63:32] -
Reserved, res0.
[31:28] TGran4
Support for 4 KB memory translation granule size:
0x0
Indicates that the 4KB granule is supported.
[27:24] TGran64
Support for 64 KB memory translation granule size:
0x0
Indicates that the 64KB granule is supported.
[23:20] TGran16
Support for 16 KB memory translation granule size:
0x0
Indicates that the 16KB granule is not supported.
[19:16] BigEndEL0
Mixed-endian support only at EL0.
res0
[15:12] SNSMem
Secure versus Non-secure Memory distinction:
0b0001
Supports a distinction between Secure and Non-secure Memory.
[11:8] BigEnd
Mixed-endian configuration support:
0b0001
Mixed-endian support. The SCTLR_ELx.EE and SCTLR_EL1.E0E bits are RW.
[7:4] ASIDBits
Number of ASID bits:
0b0010
16 bits.
[3:0] PARange
Physical address range supported:
0b0010
40 bits, 1 TB.
#define ID_AA64MMFR0_TGRAN4_SHIFT 28
#define ID_AA64MMFR0_TGRAN64_SHIFT 24
#define ID_AA64MMFR0_TGRAN16_SHIFT 20
从kernel中的定义也可以看出
#if defined(CONFIG_ARM64_4K_PAGES)
#define ID_AA64MMFR0_TGRAN_SHIFT ID_AA64MMFR0_TGRAN4_SHIFT
#define ID_AA64MMFR0_TGRAN_SUPPORTED ID_AA64MMFR0_TGRAN4_SUPPORTED
#elif defined(CONFIG_ARM64_16K_PAGES)
#define ID_AA64MMFR0_TGRAN_SHIFT ID_AA64MMFR0_TGRAN16_SHIFT
#define ID_AA64MMFR0_TGRAN_SUPPORTED ID_AA64MMFR0_TGRAN16_SUPPORTED
#elif defined(CONFIG_ARM64_64K_PAGES)
#define ID_AA64MMFR0_TGRAN_SHIFT ID_AA64MMFR0_TGRAN64_SHIFT
#define ID_AA64MMFR0_TGRAN_SUPPORTED ID_AA64MMFR0_TGRAN64_SUPPORTED
#endif
kernel支持4k/16k/64k pagesize相关推荐
- 什么样的显卡能支持 4K 分辨率输出?
4K分辨率(UHD,Ultra High Definition)代表4096x2160或3840x2160,而目前主流的电视/显示器基本都使用了后者,正好是目前1920x1080全高清分辨率的四倍像素 ...
- 启明云端分享| 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K、H.265 硬解码;核心板内置 EDP、MIPI-DSI、HDMI、DP 显示接口,带有 2 路 MIPI-CSI
RK3399核心板(邮票孔)–IDO-SOM3909 提示:启明云端旗下触觉智能 采用 B to B设计的RK3399核心板来了,邮票孔,支持4K.H.265 硬解码:核心板内置 EDP.MIPI-D ...
- RK3588 camera2 支持4K录像
确认摄像头是否支持4K 指令 adb shell dumpsys media.camera | grep picture-size adb shell rk3588_s:/ # dumpsys med ...
- HDMI转Displayport转换器支持4K分辨率
很多网友问HDMI能否转Displayport,答案是肯定的,HDMI转Displayport转换器已经面世,本文以HDMI转Displayport转换器.戴尔显示器为例,介绍其连接使用方法. HDM ...
- linux4k分辨率,ubuntu18.04设置支持4k分辨率
ubuntu18.10操作系统默认安装完成后是不支持4K分辨率的,所以我们在终端下使用命令实现支持4K分辨率,然后可以在Display菜单中设置为4K分辨率. 具体实现命令如下所示: guanglei ...
- html5支持4k视频播放器,哪个是最好的4K视频播放器?五个最佳播放软件(个人经验)...
哪个是最好的4K视频播放器? 4K视频使用什么播放器?这是每个人问得最多的问题. 4K老实决定与您分享播放4K视频的经验,并推荐几种常用的4K视频播放器. ▌播放软件: PowerDVD ▌推荐指数: ...
- 树莓派4正式发布!TYPE-C,USB3.0,支持4K双屏,售价35美金起
树莓派4正式发布,售价35美元起步,新版本配备1.5GHz Arm芯片,支持双HDMI 4K显示器,千兆以太网等等. Raspberry 于6月24日发布Pi-Raspberry Pi 4的最新版本, ...
- P2415Q / P2715Q显示器:HDMI 4K 60HZ, 设置带有HDMI 2.0端口,支持4K x 2K 60Hz
转载自官网: http使用支持 4K x 2K 60Hz 的 HDMI 2.0 设置 P2415Q/P2715Q 显示器 | Dell 中国http 摘要:"2016年2月之后购买的Dell ...
- mac拓展显示屏睡眠或锁屏后启动黑屏,mac typeC不支持4K 60HZ
问题一.mac拓展显示屏睡眠或锁屏后启动黑屏 解答:参考文章:display - External monitor stays black after "locking" (or ...
- LT6711A-HDMI2.0到eDP / DP1.2支持4K 60Hz
LT6711AHDMI2.0到eDP / DP1.2支持4K 60Hz LT6711A 制造商:Lontium LT6711A 封装:QFN64 7.5*7.5 LT6711A 最小包装:2600/包 ...
最新文章
- Django使用数据库(Mariadb/Mysql)
- 2021年传感器行业的机遇与风险 | 深度思考
- CSS的四种引入方式
- 青龙羊毛——旅游链(搬运,非原创)
- ios多线程开发的常用三种方式
- 【Python】Matplotlib太臃肿,试试Seaborn
- B1928 日期差值
- 结对开发——求最大值
- 实现每个点赞用户点击的带属性的字符串
- html 自定义标签的作用
- 【报告分享】2020上半年短视频内容发展盘点.pdf(附下载链接)
- ASP.NET 2.0下实现匿名用户向注册用户的迁移(上) zhuan
- win10无法装载iso文件_装载Win10 ISO镜像文件的具体方法
- hdoj 2122 Ice_cream’s world III【最小生成树】
- 都是热敏电阻,PTC和NTC的区别你真的知道吗?
- 先验 超验_先验 和 超验 名词解释
- 第十七周助教工作总结——NWNU李泓毅
- 80C51单片机的基本信息
- “武汉疫情后,中国将发生这3种改变”,17年前的非典早预言了一切
- BSCI标准审核纲要 建议收藏
热门文章
- Blender2.9基础二:UV篇
- 树莓派RaspberryPi Zero W 快速安装tips
- TSL SSL SSH Openssl Openssh 区别
- java七牛云工具类_您应该知道的7个Java工具
- java计算税后工资switch语句_switch语句 计算个人所得税和税后收入 | 学步园
- Java:关于“StringBuilder“的运用
- Java面试题 — Java基础
- POJ 3422 - Kaka's Matrix Travels(最小费用流)
- 计算机夏令营英语面试,保研经验 | 夏令营面试那些事儿(内含视频)
- macOS Monterey 12.3 (21E230) 正式版 ISO、IPSW、PKG 下载