在从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相关推荐

  1. 什么样的显卡能支持 4K 分辨率输出?

    4K分辨率(UHD,Ultra High Definition)代表4096x2160或3840x2160,而目前主流的电视/显示器基本都使用了后者,正好是目前1920x1080全高清分辨率的四倍像素 ...

  2. 启明云端分享| 采用 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 ...

  3. RK3588 camera2 支持4K录像

    确认摄像头是否支持4K 指令 adb shell dumpsys media.camera | grep picture-size adb shell rk3588_s:/ # dumpsys med ...

  4. HDMI转Displayport转换器支持4K分辨率

    很多网友问HDMI能否转Displayport,答案是肯定的,HDMI转Displayport转换器已经面世,本文以HDMI转Displayport转换器.戴尔显示器为例,介绍其连接使用方法. HDM ...

  5. linux4k分辨率,ubuntu18.04设置支持4k分辨率

    ubuntu18.10操作系统默认安装完成后是不支持4K分辨率的,所以我们在终端下使用命令实现支持4K分辨率,然后可以在Display菜单中设置为4K分辨率. 具体实现命令如下所示: guanglei ...

  6. html5支持4k视频播放器,哪个是最好的4K视频播放器?五个最佳播放软件(个人经验)...

    哪个是最好的4K视频播放器? 4K视频使用什么播放器?这是每个人问得最多的问题. 4K老实决定与您分享播放4K视频的经验,并推荐几种常用的4K视频播放器. ▌播放软件: PowerDVD ▌推荐指数: ...

  7. 树莓派4正式发布!TYPE-C,USB3.0,支持4K双屏,售价35美金起

    树莓派4正式发布,售价35美元起步,新版本配备1.5GHz Arm芯片,支持双HDMI 4K显示器,千兆以太网等等. Raspberry 于6月24日发布Pi-Raspberry Pi 4的最新版本, ...

  8. 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 ...

  9. mac拓展显示屏睡眠或锁屏后启动黑屏,mac typeC不支持4K 60HZ

    问题一.mac拓展显示屏睡眠或锁屏后启动黑屏 解答:参考文章:display - External monitor stays black after "locking" (or ...

  10. 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/包 ...

最新文章

  1. Django使用数据库(Mariadb/Mysql)
  2. 2021年传感器行业的机遇与风险 | 深度思考
  3. CSS的四种引入方式
  4. 青龙羊毛——旅游链(搬运,非原创)
  5. ios多线程开发的常用三种方式
  6. 【Python】Matplotlib太臃肿,试试Seaborn
  7. B1928 日期差值
  8. 结对开发——求最大值
  9. 实现每个点赞用户点击的带属性的字符串
  10. html 自定义标签的作用
  11. 【报告分享】2020上半年短视频内容发展盘点.pdf(附下载链接)
  12. ASP.NET 2.0下实现匿名用户向注册用户的迁移(上) zhuan
  13. win10无法装载iso文件_装载Win10 ISO镜像文件的具体方法
  14. hdoj 2122 Ice_cream’s world III【最小生成树】
  15. 都是热敏电阻,PTC和NTC的区别你真的知道吗?
  16. 先验 超验_先验 和 超验 名词解释
  17. 第十七周助教工作总结——NWNU李泓毅
  18. 80C51单片机的基本信息
  19. “武汉疫情后,中国将发生这3种改变”,17年前的非典早预言了一切
  20. BSCI标准审核纲要 建议收藏

热门文章

  1. Blender2.9基础二:UV篇
  2. 树莓派RaspberryPi Zero W 快速安装tips
  3. TSL SSL SSH Openssl Openssh 区别
  4. java七牛云工具类_您应该知道的7个Java工具
  5. java计算税后工资switch语句_switch语句 计算个人所得税和税后收入 | 学步园
  6. Java:关于“StringBuilder“的运用
  7. Java面试题 — Java基础
  8. POJ 3422 - Kaka's Matrix Travels(最小费用流)
  9. 计算机夏令营英语面试,保研经验 | 夏令营面试那些事儿(内含视频)
  10. macOS Monterey 12.3 (21E230) 正式版 ISO、IPSW、PKG 下载