Media Engine vs Graphics Processor
Media Engine vs Graphics Processor
Both(?) has MIPS cores.
Flash connected to Graphics Processor. What for?
DDR also connected to Graphics Processor. Reasonable.
Is the Media Engine just slave to Graphics Processor?
Or those are peers?
Where OS is executed? Which chip executes decrypted IPL? Which does decryption?
Do we have dual cpu system or singe processor with co-processor?
Flash connected to Graphics Processor. What for?
DDR also connected to Graphics Processor. Reasonable.
Is the Media Engine just slave to Graphics Processor?
Or those are peers?
Where OS is executed? Which chip executes decrypted IPL? Which does decryption?
Do we have dual cpu system or singe processor with co-processor?
According to http://hitmen.c02.at/files/yapspd/index.html
CXD2926 listed as Graphic Processor Chip
CXD1876 as ME
What is actually what? First one has GPU and CPU then? And ME just co-proc?
CXD2926 listed as Graphic Processor Chip
CXD1876 as ME
What is actually what? First one has GPU and CPU then? And ME just co-proc?
groepaz: talking about the ME, is there a way to access it from game mode ? I know about the vector address being unreachable from this mode but there must be another way to do it using an already loaded library via a syscall or something ?
Btw: you may want to change the "mov" instruction into "move" in your IDA plugin.
Btw: you may want to change the "mov" instruction into "move" in your IDA plugin.
as far as i am aware there is no way for the "user" (as in usermode) to upload custom code to the ME.talking about the ME, is there a way to access it from game mode ? I know about the vector address being unreachable from this mode but there must be another way to do it using an already loaded library via a syscall or something ?
uhm well, its not a standard instruction anyway :)you may want to change the "mov" instruction into "move" in your IDA plugin.
You might try to research how the sce(Video|Audio)codec* range of user mode functions work. They seem to be an usermode API layer which interacts with the ME.hitchhikr wrote:groepaz: talking about the ME, is there a way to access it from game mode ? I know about the vector address being unreachable from this mode but there must be another way to do it using an already loaded library via a syscall or something ?
Things like sceVideocodecGetEDRAM, sceVideocodecSetMemory and similar seem to make use of the ME to store the "codec program".
Since this thread is from July, I guess someone has already dissected these functions ;)
Well for pure interest sake, and we know how groepaz likes low level stuff ;)
The RPC works by posting an interrupt to the other processor using the following code:
If you do that on the SC you interrupt (I think interrupt 31) the ME, on the ME is does the reverse. On the SC side that is wrapped up in sceSysregInterruptToOther.
Now as for semaphores there seems to be a shared lock register at 0xBC100048 which both the ME and the SC can write to and it used as a spin lock. Not tested it properly myself mind but still ;)
Have fun :P
The RPC works by posting an interrupt to the other processor using the following code:
Code: Select all
asm("sync\n");
_sw(1, 0xBC100044);
asm("sync\n");
Now as for semaphores there seems to be a shared lock register at 0xBC100048 which both the ME and the SC can write to and it used as a spin lock. Not tested it properly myself mind but still ;)
Have fun :P