在线观看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

    文章

    11345

    瀏覽量

    210417
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62979
  • RISC
    +關注

    關注

    6

    文章

    465

    瀏覽量

    83877
收藏 人收藏

    評論

    相關推薦

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

    采用RISC-V來替代其自定義體系結構。該體系結構吸引人的一個關鍵特征是,CPU開發人員可以在不犧牲為基本標準創建的工具和庫的適用性的情況下,使RISC-V功能適應其需求。適應的關鍵在于了解R
    的頭像 發表于 04-14 15:55 ?4207次閱讀
    如何使用<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-V MCU開發 (二):工程創建與管理

    RISC-V MCU開發 (二):工程創建與管理MounRiver? Studio(MRS)內置了GD、WCH等芯片廠家的RISC-V/ARM以及RISC-V通用指令集系列的芯片工程模
    發表于 11-26 15:36 ?20次下載
    <b class='flag-5'>RISC-V</b> MCU開發 (二):工程<b class='flag-5'>創建</b>與管理

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

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

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

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

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

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

    創建源碼分析RISC-V Linux

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

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

    當前,嵌入式系統已成為智能設備的核心之一,RISC-V+Linux的開源力量為嵌入式系統注入強大的創新動力。作為中國RISC-V軟硬件生態領導者,賽昉科技與業界專家合作推出《嵌入式系統原理與開發
    的頭像 發表于 07-24 08:20 ?692次閱讀
    專家力薦|《嵌入式系統原理與開發——基于<b class='flag-5'>RISC-V</b>和<b class='flag-5'>Linux</b>系統》新書發售
    主站蜘蛛池模板: 亚洲天堂一区二区三区 | 四虎国产欧美成人影院 | 亚洲高清一区二区三区四区 | 亚1州区2区3区4区产品乱码 | 福利片免费一区二区三区 | 国产黄在线观看免费观看不卡 | 婷婷国产| 久久久国产精品网站 | 18年大片免费在线 | 日本一区二区三区在线 视频观看免费 | 淫五月 | 日本欧美一区二区三区免费不卡 | 好大好硬好深好爽想要免费视频 | www五月天com | 在线视频观看免费 | 男人j桶女人j免费视频 | aaaaa毛片 | 欧美一级三级在线观看 | 狠狠干干 | 天堂成人一区二区三区 | 老师下面很湿很爽很紧 | 欧美日韩在线成人看片a | 久久久久久久成人午夜精品福利 | 在线视频 亚洲 | 欧美色视频网站 | 伊人一区二区三区 | 日韩特级毛片免费观看视频 | 欧美顶级xxxxbbbb | 色秀视频免费网站在线观看 | 天天色综合天天 | 91po狼人社在线观看 | 有没有免费的视频在线观看 | www.看片| 欧美午夜寂寞影院安卓列表 | 日韩欧美国产电影 | 免费在线观看黄 | 亚洲最新黄色网址 | www射| 欧美一级高清免费a | 在线播放12p| 97色在线|