Skip to content

[Feature] risc-v/common64: unify header file for rv64 mmu  #9567

@zhangjing0303

Description

@zhangjing0303

Describe problem solved by the proposed feature

riscv common64 目录中的 mmu.h 文件提供了与 MMU 相关的通用接口。该文件包含了 riscv_mmu.h,后者用于定义 RV64 架构中与 MMU 相关的具体内容。
riscv_mmu.h 在不同的 CPU 相关目录中有各自的具体实现,例如 virt64/riscv_mmu.h、t-head/c906/riscv_mmu.h 等。这些文件根据目标 CPU 及其支持的相关RV64标准(如是否符合RISC-V Privileged ISA、是否支持Svadu扩展等)定义了 PTE(页表项)属性。例如,像 MMU_MAP_K_RW 和 MMU_MAP_K_DEVICE 这样的属性值。

但是,根据当前的代码结构,common64 中应该是RV64的通用实现,所以mmu.h和riscv_mmu.h的包含关系似乎不太合理。

Describe your preferred solution

1、将原common64中mmu.h和具体cpu目录下的riscv_mmu.h中的内容抽取公共部分合并,新增rv64_mmu.h,原mmu.h删除;
2、将原virt64等目录下的riscv_mmu.h删除,新增mmu.h,内容如下:

#ifndef __MMU_H__
#define __MMU_H__

#include <rv64_mmu.h>

#undef  MMU_MAP_K_RW
#define MMU_MAP_K_RW      (PTE_G | PTE_X | PTE_W | PTE_R | PTE_V | PTE_A | PTE_D)

#endif

这样修改是不是更合理些?

Describe possible alternatives

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions