 |
forums.ps2dev.org Homebrew PS2, PSP & PS3 Development Discussions
|
| View previous topic :: View next topic |
| Author |
Message |
And
Joined: 17 Aug 2006 Posts: 4
|
Posted: Fri Sep 29, 2006 11:44 am Post subject: What's known about the VME, now? |
|
|
| Has anybody researched into this yet. Any new info found? Can, we, as devs programme the VME? |
|
| Back to top |
|
 |
adrahil
Joined: 16 Mar 2006 Posts: 277
|
Posted: Fri Sep 29, 2006 9:38 pm Post subject: |
|
|
I have looked a bit into it, while looking at Mebooter prxs.
First, VME is a FPGA-like reprogrammable processor, which is reprogrammed by the PSP operating system, optimizing the decoding of the UMD video or audio formats...
We theorically CAN reprogram it, IF only we understood how the FPGA architecture works there. The following is from the mebooter_umdvideo.prx:
| Code: | int F0_StartModule(void){
#define hw_addr1 0xbfc0005c
#define hw_addr2 0xbc100040
#define hw_addr3 0xbfc00700
#define me_boot_addr 0xbfc00040
//copies the whole me_init function to the Me boot address.
memcpy(me_boot_addr, &me_init, 0xc0);
*hw_addr1 = *hw_addr1 | (*hw_addr2 & 0x0003);
//Decompresses a gzipped resource containing me-image_0000.dat onto the memory.
if (sceKernelGzipDecompress(0x88300000, 0x00080000, 0x00000370, 0) < 0) return 1;
//Decompresses a gzipped resource containing me-image_0001.dat onto the memory.
if (sceKernelGzipDecompress(0x88380000, 0x00080000, 0x0000AD20, 0) < 0) return 1;
sceKernelDcacheWritebackInvalidateAll();
_sync();
sceDdrFlush(4);
*hw_addr3 = -3;
sceSysregMeResetEnable();
sceSysreg_driver_Unkonow_44f6cda7();
sceSysregMeResetDisable();
sceSysregVmeResetDisable();
sceSysregAvcResetDisable();
while (*hw_addr3 != -4){}
*hw_addr3 = 0;
return 1;
} |
me-image_0000.dat is the netlist (the connections to do between the logical blocks. (to confirm?)
me-image_0001.dat is the program which will be run onto the Vme.
The me_init functions is simply an assembler functions which ends by:
| Code: | lui r26,$8838 ;000001A8[3C1A8838,'8..<']
lui r29,$8840 ;000001AC[3C1D8840,'@..<']
addiu r4,0,$0 ;000001B0[24040000,'...$']
lui r5,$8830 ;000001B4[3C058830,'0..<']
lui r6,$0008 ;000001B8[3C060008,'...<']
jr r26 ;000001BC[03400008,'..@.']
nop ;000001C0[00000000,'....'] |
This makes a jr to 0x88380000 and starts the application in Vme.
I don't think there is MUCH more info about it, except this. Probably you can find the specs of Vme in groepaz's docs. |
|
| Back to top |
|
 |
groepaz

Joined: 01 Sep 2005 Posts: 305
|
|
| Back to top |
|
 |
adrahil
Joined: 16 Mar 2006 Posts: 277
|
Posted: Sat Sep 30, 2006 4:06 am Post subject: |
|
|
| groepaz wrote: | | cheers, no...no info at all in my docs yet... and i dont have any hope on reversing the fpga related stuff either, its pretty much impossible (thats the nice thing about fpgas afterall) |
check out http://igsoft.free.fr/m/ and maybe add some info from it to docs :) |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|