[bugfix][risc-v]fix the PPN length error in GET_PPN(pte). #10020
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
libcpu\risc-v\common64\mmu.h中宏参数有误:
其中第三个参数为PPN的bit位数,即44位,而PHYSICAL_ADDRESS_WIDTH_BITS为物理地址总位数即56,PTE_PPN_SHIFT为10(对应PTE的属性位数),56-10=46,显然不是44。
物理地址的组成为44bit PPN + 12bit page offset,因此这里正确的计算方式应该是,
PPN位数=物理地址总位数( PHYSICAL_ADDRESS_WIDTH_BITS(=56) ) - page offset位数( PAGE_OFFSET_BIT(=12) )= 44 bit。
你的解决方案是什么 (what is your solution)
将PTE_PPN_SHIFT修改为PAGE_OFFSET_BIT.
请提供验证的bsp和config (provide the config and bsp)
BSP:
.config:
action:
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0
代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up