PSP Memory Map

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
steddy
Posts: 139
Joined: Mon Apr 04, 2005 3:53 am

PSP Memory Map

Post by steddy »

How much of the PSP Memory map is now known? I see the KDumper dumps the following ranges:-

0xBFC00000 -> 0xBFD00000
0x88000000 -> 0x883FFFFF

How were these two ranges chosen, and what does the rest look like? Given these are only 4mb and 1mb in size, and the ROM and RAM are both 32mb, what about the rest.

Do ROM modules execute in place, or are they all loaded into RAM?

Finally, is there a way to extract the PRX files from memory to recreate the ELF? Is there enough information present once loaded to do that?

Thanks
Steddy
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

Well ROM doesn't seem to be directly mapped. RAM is from 0x08000000 -> 0x09FFFFFF although the first four megs is only accessible as kernel addresses. There are also some hardware regs in the 0xBxxxxxxx ranges. That is about all I know.
steddy
Posts: 139
Joined: Mon Apr 04, 2005 3:53 am

Post by steddy »

Thanks, but that doesn't seem to tie up with what KDumper is dumping.

It is dumping 0x88000000, not 0x08000000.

I have a 2gb Duo coming next week so will be able to dump pretty big ranges :)

Steddy
TyRaNiD
Posts: 907
Joined: Sun Jan 18, 2004 12:23 am

Post by TyRaNiD »

Do you know nothing about the MIPS architecture ?
steddy
Posts: 139
Joined: Mon Apr 04, 2005 3:53 am

Post by steddy »

I guess from the tone of your question, probably very little.
Vampire
Posts: 138
Joined: Tue Apr 12, 2005 8:16 am

Post by Vampire »

Code: Select all

MIPS32 Address Space Layout:

0xFFFFFFFF
           > kseg2
0xC0000000

0xBFFFFFFF
           > kseg1
0xA0000000

0x9FFFFFFF
           > kseg0
0x80000000

0x7FFFFFFF
           > kuseg
0x00000000

kuseg:
– 2048 megabytes
– TLB translated (mapped)
– Cacheable
– user-mode and kernel-mode accessible

kseg0:
– 512 megabytes
– Fixed translation window to physical memory
  • 0x80000000 - 0x9fffffff virtual =
    0x00000000 - 0x1fffffff physical
  • TLB not used
– Cacheable
– Only kernel-mode accessible

kseg1:
– 512 megabytes
– Fixed translation window to physical memory
  • 0xa0000000 - 0xbfffffff virtual =
    0x00000000 - 0x1fffffff physical
  • TLB not used
– NOT cacheable
– Only kernel-mode accessible

kseg2:
– 1024 megabytes
– TLB translated (mapped)
– Cacheable
– Only kernel-mode accessible
steddy
Posts: 139
Joined: Mon Apr 04, 2005 3:53 am

Post by steddy »

Excellent information Vampire and just what I was looking for.

Thanks
Steddy
Vampire
Posts: 138
Joined: Tue Apr 12, 2005 8:16 am

Post by Vampire »

the 2MB VRAM are located from 0x04000000 to 0x041FFFFF:

sceGeEdramGetAddr() returns 0x04000000
sceGeEdramGetSize() returns 0x00200000
Post Reply