26 lines
582 B
ArmAsm
26 lines
582 B
ArmAsm
|
// This is the entry point of the ROM.
|
||
|
// It is limited to 32-bit MIPS-I code,
|
||
|
// because it runs on both the EE and the IOP.
|
||
|
//
|
||
|
// The task of this relatively short bit of code
|
||
|
// is to start the approiate part of the ROM
|
||
|
// on the correct processor.
|
||
|
//
|
||
|
// It's a bit creative, but also a bit annoying.
|
||
|
.org 0
|
||
|
.set noat
|
||
|
|
||
|
// externs
|
||
|
.extern _ee_start
|
||
|
|
||
|
.globl _start
|
||
|
_start:
|
||
|
mfc0 $at, $15 // load the PRID
|
||
|
sltiu $at, 0x59 // Check for EE PRID
|
||
|
bne $15, 0, __iop // Branch if not EE
|
||
|
nop
|
||
|
j _ee_start // Call EE start routine
|
||
|
nop
|
||
|
__iop: // for now the iop stalls.
|
||
|
j __iop
|