Search code examples
mipsmips32

Is there any way to access physical address 0x8000 0000 directly in MIPS?


I want to access memory location 0x8000 0000 directly in MIPS 32 bit architecture without using TLB and MMU.

In MIPS32, kseg0 is unmapped and cached memory and is a window for the low 512MB of physical memory. So by using this segment we can access up to 512 MB of physical memory. But I want to access 0x8000 0000 (up to 2GB) of physical memory.

Is there is any way to access memory location 0x8000 0000 (2 GB of physical memory) without using MMU and TLB in MIPS32?


Solution

  • It seems that you are looking to access 32-bit user space.

    You can do this in MIPS by using kuseg but you will not be able to access 0x8000.0000 with it as the limit with kuseg is 0x7FFF.FFFF and because kseg0 maps to 0x8000.0000.

    Note that kuseg, kseg0, kseg1, and kseg2 map 4 GB of memory (32-bit).

    This link and the chart on it should provide very valuable information concerning this: http://www.johnloomis.org/microchip/pic32/memory/memory.html.