forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

What's known about the VME, now?

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
And



Joined: 17 Aug 2006
Posts: 4

PostPosted: Fri Sep 29, 2006 11:44 am    Post subject: What's known about the VME, now? Reply with quote

Has anybody researched into this yet. Any new info found? Can, we, as devs programme the VME?
Back to top
View user's profile Send private message
adrahil



Joined: 16 Mar 2006
Posts: 277

PostPosted: Fri Sep 29, 2006 9:38 pm    Post subject: Reply with quote

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
View user's profile Send private message
groepaz



Joined: 01 Sep 2005
Posts: 305

PostPosted: Sat Sep 30, 2006 12:59 am    Post subject: Reply with quote

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)
_________________
http://www.hitmen-console.org
http://hitmen.c02.at/files/yapspd/
Back to top
View user's profile Send private message Visit poster's website
adrahil



Joined: 16 Mar 2006
Posts: 277

PostPosted: Sat Sep 30, 2006 4:06 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
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