- 虛擬地址的低 2G 空間是不允許直接訪問的,需要經過 TLB 映射才能正常工作,所以在處理器上電初期、TLB 沒有初始化之前,這部分地址是不能訪問的。
- user代碼申請空間,需要到內核態,內核幫助其進程申請內存。
- kseg0 的 cache 一致性屬性是 chaced 的,而 kseg1 的屬性是uncached 的。
- 開始訪問 BIOS 的 0x1FE0,0000 這個物理地址需要使用 0xBFC0,0000這個虛擬地址了,因爲在處理器上電初期,cache 還沒有初始化,我們的訪問BIOS 不能經過 cache。
- 0x0-0x1000,0000 這部分是直接映射到主存的低 256M 空間的,也就是使用虛擬地址的 0x8000,0000- x9000,0000 (或者 0xa000,0000-0xb000,0000 )就能直接訪問到主存的低 256M 空間,因爲這個特性,操作系統內核以及 BIOS 解壓後的部分就可以直接放到這個部分來執行。
- kseg2 這部分地址是給內核以及管理態使用的。然而龍芯在 BIOS 內將這部分地址通過 TLB映射到物理地址的0x4000,0000-0x7FFF,FFFF。這樣就能使用虛擬地址直接訪問PCI 的 MEM 空間。
- 物理地址的 0x8000,0000-0xFFFF,FFFF 這 2G 空間是映射到主存的 0x0-0x8000,0000 這部分空間的地址 0x8000,0000-0x9000,0000 是重複映射的,目前沒有意義。
- 0x2000,0000-0x3FFF,FFFF(256M)=IO/Process reg 爲CPU的內部寄存器/PCI/LPC/UART/SPI/IO等控制器的配置寄存器,需要通過TBL來訪問。