Page 1 of 1
SIF Registers ?
Posted: Mon Mar 06, 2006 10:00 am
by JamesMold
Hey, i was disassembling through some sifman.irx and sifcmd.irx's...came upon some registers mainly in SIF functions such as :
0xBD000020
0xBD000030 ( being set to 0x10000, 0x40000, 0x20000 )
0xBD000040
0xBD000060
and so on.
Anybody has any idea what these registers are used for? and are these the so called "local side software" registers which are on EE and mapped on IOP?
Posted: Sun Mar 19, 2006 7:55 am
by sneeze
I guess you might have found this out yourself by now, but I think I can comment somewhat on it at least (guess ppl who really know (mrbrown?) have moved to other consoles)..
Anyway, my understanding of them are something like this (feel free to disagree ;) )
These regs are visible both on the EE (via SifGetReg/SifSetReg) and the IOP.
Some more descriptive names of them are in EEs kernel.h
0xBD000000 on IOP is SIF_REG_MAINADDR, which contains the EE side buffer address for sif transactions (i.e. destination for transactions from IOP -> EE).
0xBD000010 on IOP is SIF_REG_SUBADDR, which contains the IOP side buffer address.
0xBD000020/30 is SIF_REG_MSFLAG/SMFLAG. Seems to be signaling flags for synchronization between EE and IOP. The values beeing set is different states in the synch, for example when an IOP reset is performed.
The higher regs, I dunno. Might be local IOP side storage (as I think the 8000000x regs are on the EE).