milk-v 에서 리눅스 된다고 해서
uclinux인가 했는데 그건 또 아닌것 같은 느낌이라 찾아보는데
devicetree에 아래와 같은게 있어서 찾아보는 중
isa는 RV64IMAFDC 인데 MMU type에 sv39 라는게 추가된다.
mmu-type = "riscv,sv39"; next-level-cache = <&L15 &L0>; reg = <1>; riscv,isa = "rv64imafdc"; |
[링크 : https://github.com/riscv-non-isa/riscv-device-tree-doc/blob/master/bindings/riscv/cpus.txt]
isa에 H/S가 없어도 MMU 자체는 그냥 지원이 가능하다는 말 같기도 한데,
SV32/48/57이 어떤 칩에 들어있느지 확인할 방법은 아직 못 찾음
The core has a memory management unit which includes separate instruction and data TLBs (Translation Look-aside Buffers). The TLBs and the Page Table Walk (PTW) modules support sv32, sv39, sv48 and sv57 virtualization scheme of RISC-V Instruction Set Manual, Volume II: Privileged Architecture, Version 1.11.
The above algorithm applies to Sv39, Sv48, and Sv57 with the following appropriate changes:
for Sv39 PTESIZE=8 and LEVELS=3 for Sv48 PTESIZE=8 and LEVELS=4 for Sv57 PTESIZE=8 and LEVELS=5
Any level of PTE may be a leaf PTE, so
in addition to 4 KiB pages, Sv32 supports 4 MiB megapages. in addition to 4 KiB pages, Sv39 supports 2 MiB megapages and 1 GiB gigapages in addition to 4 KiB pages, Sv48 supports 2 MiB megapages, 1 GiB gigapages, and 512 GiB terapages in addition to 4 KiB pages, Sv57 supports 2 MiB megapages, 1 GiB gigapages, 512 GiB terapages, and 256 TiB petapages,
|
[링크 : https://chromite.readthedocs.io/en/latest/mmu.html]
virtualization 이야기가 나와서 보는데, 이거랑 저거랑은 다른 virtualization인가?
H와 S가
하이퍼바이저 지원(1.0)
슈퍼바이저 지원(1.12)
Standard Extension for Hypervisor |
1.0 |
Ratified |
15 |
Standard Extension for Supervisor-level Instructions |
1.12 |
Ratified |
4 |
[링크 : https://en.m.wikipedia.org/wiki/RISC-V]
RV64IMAFDCH 막 이런식으로 붙게 되나?
근데 이놈의 ISA는 알파벳 순서도 아니고 규칙을 모르겠네 -_-
위키 기준으로는 extension 위에서 아래순서로 붙이는 느낌.