Open
Description
Describe problem solved by the proposed feature
rt-thread/libcpu/risc-v/common64/asid.c
Lines 30 to 51 in 906d1ca
这里的 write_csr(satp, satp_reg);
重置 satp 怪怪的。因为正常是两个启动阶段,做两次 satp 设置。第一次是初始映射,使用大粒度 pte,为了给初始化过程配置最基础的虚存属性(比如 cache 属性),并进入线性地址空间。第二次是按照虚存配置的映射(可能从静态/动态配置中读取运行时虚存布局),按照应用、驱动的需求配置内核地址空间。
这里在中间又重置了一次 satp,并不是特别必要。或许是可以把 ASID 初始化操作合并到 rt_hw_mem_setup_early
(第一次的初始映射)中。