在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RISC-V Linux的頁表創建

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

臨時頁表分析

MMU開啟前,需要建立好kernel、dtb、trampoline等頁表。以便MMU開啟后,并且在內存管理模塊運行之前,kernel可以正常初始化,dtb可以正常地被解析。這部分頁表都是臨時頁表,最終的頁表在setup_vm_final()建立。

臨時頁表創建順序:

首先為fixmap創建早期的PGD、PMD,這時PGD使用early_pg_dir。然后對從kernel開始的前2M內存建立二級頁表,此時PGD使用trampoline_pg_dir,為這2M建立的頁表也叫作superpage。再然后,對整個kernel創建二級頁表,此時PGD使用early_pg_dir。最后為dtb預留4M大小創建二級頁表。

頁表創建函數

create_pgd_mapping()

void __init create_pgd_mapping(pgd_t *pgdp,
          uintptr_t va, phys_addr_t pa,
          phys_addr_t sz, pgprot_t prot)

pgdp:PGD頁表

va:虛擬地址

pa:物理地址

sz:映射大小,PGDIR_SIZE或PMD_SIZE或PTE_SIZE

prot:PAGE_KERNEL_EXEC/PAGE_KERNEL表示當前是最后一級頁表,否則pa代表下一級頁表的物理地址

create_pmd_mapping()

static void __init create_pmd_mapping(pmd_t *pmdp,
          uintptr_t va, phys_addr_t pa,
          phys_addr_t sz, pgprot_t prot)

pmdp:PMD頁表

va:虛擬地址

pa:物理地址

sz:映射大小,PMD_SIZE或PAGE_SIZE

prot:權限,PAGE_KERNEL_EXEC/PAGE_KERNEL表示當前是最后一級頁表,否則pa代表下一級頁表的物理地址

create_pte_mapping()

static void __init create_pte_mapping(pte_t *ptep,
          uintptr_t va, phys_addr_t pa,
          phys_addr_t sz, pgprot_t prot)

ptep:PTE頁表

va:虛擬地址

pa:物理地址

sz:映射大小,PAGE_SIZE

prot:權限,PAGE_KERNEL_EXEC/PAGE_KERNEL表示當前是最后一級頁表,否則pa代表下一級頁表的物理地址

使用舉例

例如,將虛擬地址PAGE_OFFSET映射到物理地址pa,映射大小為4K,創建三級頁表PGD、PMD和PTE:

create_pgd_mapping(early_pg_dir,PAGE_OFFSET,
                   (uintptr_t)early_pmd,PGDIR_SIZE,PAGE_TABLE);
create_pmd_mapping(early_pmd,PAGE_OFFSET,
                   (uintptr_t)early_pte,PGDIR_SIZE,PAGE_TABLE);
create_pte_mapping(early_pte,PAGE_OFFSET,
                   (uintptr_t)pa,PAGE_SIZE,PAGE_KERNEL_EXEC);

這樣創建后,MMU就會根據PAGE_OFFSET在PGD中找到PMD,然后再PMD中找到PTE,最后取出物理地址。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11489

    瀏覽量

    213157
  • 函數
    +關注

    關注

    3

    文章

    4376

    瀏覽量

    64486
  • RISC
    +關注

    關注

    6

    文章

    480

    瀏覽量

    84807
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何使用RISC-V創建自定義處理器

    采用RISC-V來替代其自定義體系結構。該體系結構吸引人的一個關鍵特征是,CPU開發人員可以在不犧牲為基本標準創建的工具和庫的適用性的情況下,使RISC-V功能適應其需求。適應的關鍵在于了解R
    的頭像 發表于 04-14 15:55 ?4485次閱讀
    如何使用<b class='flag-5'>RISC-V</b><b class='flag-5'>創建</b>自定義處理器

    RISC-V Linux開發環境腳本

    比較多的RISC-V SOC Linux開發環境使用CMake/Makefile,雖然也知道些怎么用,但有沒完整系統的這方面學習資料?如語法、腳本鏈接結構等,可以分享下深入學習
    發表于 03-31 12:48

    risc-v的發展歷史

    RISC-V的發展歷史可以追溯到2006年左右,當時David Patterson和其他研究者開始探索創建一個開放和可擴展的指令集架構(ISA)。以下是RISC-V發展的主要里程碑: 一、起源與初步
    發表于 07-29 17:20

    RISC-V能否復制Linux 的成功?》

    的產品,Linux成為開源軟件發展的基石。 這種成功是否可以復制到開源硬件上呢?RISC-V這樣的指令集架構(ISA)是否也可以像Linux內核作為開源軟件的基礎一樣,成為開源硬件發展的基石呢? 這個
    發表于 11-26 20:20

    基于risc-v架構的芯片與linux系統兼容性討論

    一直對基于RISC-V架構的芯片與Linux系統的兼容性比較感興趣,查了各種資料,眾說紛紜,在此整理一下學習內容,以備后用。這個復雜而重要的話題,涉及多個方面的考量。下面談談我的學習總結
    發表于 11-30 17:20

    科普RISC-V生態架構(認識RISC-V)

    RISC-V,逐步完成全線產品遷移到RISC-V定制架構;MicroSemi提供基于Risc-V+Linux+CNN加速器的AI解決方案;印度***則大力資助基于RISC-V的處理器項
    發表于 08-02 11:50

    RISC-V-Reader-Chinese-v2p1 RISC-V手冊(中文) RISC-V開源指令集的指南

    RISC-V 手冊 一本開源指令集的指南 本書是由 RISC-V 設計者 DAVID PATTERSON等親自寫的書。書寫的非常精彩,和Risc-V一樣非常簡潔明了,沒有廢話,書本身也不厚,114
    發表于 04-22 18:04

    我了解的RISC-V

    幾十條指令。 RISC-V的規范文檔僅有145,而“特權架構文檔”的篇幅也僅為91。 易于移植*nix 現代操作系統都做了特權級指令和用戶級指令的分離,特權指令只能操作系統調用,而用戶級指令才能
    發表于 03-19 10:52

    RISC-V 發展

    RISC-V指令集有RV32I、RV32E、RV64I、RV64E、RV64I等等,RV代表RISC-V,32/64代32位或64位,I和E都是基本指令集,在I和E的基礎上,可以添加D(雙精度浮點擴展
    發表于 04-14 10:18

    RISC-VRISC-V AI的未來(特邀講座)

    主題演講:RISC-VRISC-V AI的未來(特邀講座)ppt分享
    發表于 07-14 17:15 ?17次下載

    RISC-V設計支持工具,支持RISC-V技術的基礎

    RISC-V設計支持工具,支持RISC-V技術的基礎 ppt分享
    發表于 07-14 17:15 ?22次下載

    Arch Linux RISC-V 端口及相關作品簡介

    Arch Linux RISC-V 端口及相關作品簡介 演講ppt分享
    發表于 07-17 16:34 ?6次下載

    創建源碼分析RISC-V Linux

    創建源碼分析 RISC-V Linux啟動,經歷了兩次頁
    的頭像 發表于 10-08 11:22 ?1090次閱讀

    專家力薦|《嵌入式系統原理與開發——基于RISC-VLinux系統》新書發售

    當前,嵌入式系統已成為智能設備的核心之一,RISC-V+Linux的開源力量為嵌入式系統注入強大的創新動力。作為中國RISC-V軟硬件生態領導者,賽昉科技與業界專家合作推出《嵌入式系統原理與開發
    的頭像 發表于 07-24 08:20 ?1055次閱讀
    專家力薦|《嵌入式系統原理與開發——基于<b class='flag-5'>RISC-V</b>和<b class='flag-5'>Linux</b>系統》新書發售

    SOPHGO RISC-V SoC Linux Kernel 社區郵件列表建立,歡迎加入開源社區為RISC-V生態完善添磚加瓦

    SOPHGO RISC-V SoC Linux Kernel 社區郵件列表建立,歡迎加入開源社區為RISC-V生態完善添磚加瓦
    的頭像 發表于 02-14 08:34 ?354次閱讀
    SOPHGO <b class='flag-5'>RISC-V</b> SoC <b class='flag-5'>Linux</b> Kernel 社區郵件列表建立,歡迎加入開源社區為<b class='flag-5'>RISC-V</b>生態完善添磚加瓦
    主站蜘蛛池模板: 午夜剧场操一操 | 亚洲视频一区在线 | 国模无水印一区二区三区 | 国产色婷婷免费视频 | 最好看的最新中文字幕2018免费视频 | 羞羞影院男女午夜爽爽影视 | 国模私拍一区二区 | 香蕉视频网站在线播放 | 成人网在线观看 | 噜噜噜动态图超猛烈 | 中文字幕一区二区三区有限公司 | 亚洲不卡视频 | 欧美成人三级伦在线观看 | 美女扒开尿口给男人桶动态图 | 欧日韩美香蕉在线观看 | 久久这里只精品热在线8 | 免费观看视频在线 | 午夜高清免费观看视频 | 日日干夜夜欢 | 秋霞特色大片18入口私人高清 | 欧美另类xx | 色多多在线观看高清免费 | 国产资源网 | 色综合久久丁香婷婷 | 四虎影视永久地址 | 天天天天添天天拍天天谢 | 欧美亚洲一区二区三区在线 | 天天爽天天 | 国产精品伦子一区二区三区 | 久久久免费的精品 | 四虎永久精品免费观看 | 羞羞色男人的天堂伊人久久 | 男人的天堂一区二区视频在线观看 | 午夜三级网 | 另类性欧美喷潮videofree | 精品精品国产自在久久高清 | 亚洲视频福利 | 久久香蕉国产精品一区二区三 | 特级生活片 | 午夜窝窝 | 天天爱天天做天天爽天天躁 |