Believe it or not i can actually understand assembly much easier than higher level languages like c. If i had all the data from broadcom i dont think id find it too hard to build a loader from scratch. I have proprietory headers that describe the registers and the data that needs to be written to them only problem being the order these writes need to go in, disassembling loaders sort of helps but then its about figuring out where the different routines start and end.
Hex Assembly Comments
3c08fffe lui $t0,0xfffe
35081200 ori $t0,0x1200 # fffe1200
3c09fffe lui $t1,0xfffe
352912a0 ori $t1,0x12a0 # fffe12a0
240a00d0 move $t2,208=0x00d0
24020020 move $v0,32=0x0020
354a0a04 ori $t2,0xa04
3c010001 lui $at,0x1
34210003 ori $at,0x3 # 10003 -> 504bc9a9
01415025 or $t2,$at
ad0a0004 sw $t2,4($t0)
240a0007 move $t2,7
ad2a0008 sw $t2,8($t1)
3c0a0007 lui $t2,0x7
354a54d9 ori $t2,0x54d9 # 754d9
ad0a001c sw $t2,28($t0)
240a0003 move $t2,3
ad0a0000 sw $t2,0($t0)
240a000b move $t2,11=0x000b
ad0a0000 sw $t2,0($t0)
240a4002 move $t2,16386=0x4002
ad0a0010 sw $t2,16($t0)
240a0013 move $t2,19=0x0013
ad0a0000 sw $t2,0($t0)
240a0163 move $t2,355=0x0163
ad0a0010 sw $t2,16($t0)
240a0013 move $t2,19=0x0013
ad0a0000 sw $t2,0($t0)
00000000 nop
00000000 nop
00000000 nop
240a000b move $t2,11=0x000b
ad0a0000 sw $t2,0($t0)
340a840f move $t2,0x840f
ad0a0008 sw $t2,8($t0)
240a0007 move $t2,7
ad0a0000 sw $t2,0($t0)
240a0007 move $t2,7
ad0a0000 sw $t2,0($t0)
240a0063 move $t2,99=0x0063
ad0a0010 sw $t2,16($t0)
240a0013 move $t2,19=0x0013
ad0a0000 sw $t2,0($t0)
3c0a7717 lui $t2,0x7717
ad2a0020 sw $t2,32($t1)
8d2a0018 lw $t2,24($t1)
000a5202 srl $t2,8
314a00ff andi $t2,0xff
000a50c0 sll $t2,3
354a2000 ori $t2,0x2000
8d2b0028 lw $t3,40($t1)
356b7fff ori $t3,0x7fff
396b7fff xori $t3,0x7fff
016a5825 or $t3,$t2
ad2b0028 sw $t3,40($t1)
0f800574 jal 0xe0015d0 #
00000000 nop
3c08ff41 lui $t0,0xff41
3c09fffe lui $t1,0xfffe
352912a0 ori $t1,0x12a0 # fffe12a0
240a0800 move $t2,2048=0x0800
240b0001 move $t3,1
8d0c0040 lw $t4,64($t0) # ff410040
000c6402 srl $t4,16
318c0041 andi $t4,0x41
24010040 move $at,64=0x0040
1181000b beq $t4,$at,144r
00000000 nop
316d07ff andi $t5,$t3,0x7ff
3c017717 lui $at,0x7717
01a16825 or $t5,$at
ad2d0020 sw $t5,32($t1)
8d050040 lw $a1,64($t0)
216b0001 addi $t3,1
154bfff3 bne $t2,$t3,104r
00000000 nop
10000018 beq 0,0,1a0r
00000000 nop
8d2a0020 lw $t2,32($t1)
314affff andi $t2,0xffff
3c017137 lui $at,0x7137
01415025 or $t2,$at
ad2a0020 sw $t2,32($t1)
240a0010 move $t2,16=0x0010
ad0a0040 sw $t2,64($t0)
3c0a8000 lui $t2,0x8000
354a0090 ori $t2,0x90 # 80000090
ad0a0040 sw $t2,64($t0)
3c0a8000 lui $t2,0x8000
354a0c90 ori $t2,0xc90 # 80000c90
ad0a0040 sw $t2,64($t0)
8d0a0040 lw $t2,64($t0)
8d0a0040 lw $t2,64($t0)
8d0a0040 lw $t2,64($t0)
8d0a0040 lw $t2,64($t0)
8d0a0040 lw $t2,64($t0)
4009b005 mfc0 $t1,R22.5 # reserved
3c01efff lui $at,0xefff
3421ffff ori $at,0xffff # efffffff
01214824 and $t1,$at
4089b005 mtc0 $t1,R22.5 # reserved
3c09ff40 lui $t1,0xff40
8d2a001c lw $t2,28($t1) # ff40001c
3c010200 lui $at,0x200
34210001 ori $at,0x1 # 2000001
01415025 or $t2,$at
ad2a001c sw $t2,28($t1) # ff40001c
3c0a1000 lui $t2,0x1000
ad2a0004 sw $t2,4($t1) # ff400004
8d2a0000 lw $t2,0($t1) # ff400000
354a0015 ori $t2,0x15
ad2a0000 sw $t2,0($t1)
8d2a0008 lw $t2,8($t1)
354a0015 ori $t2,0x15
ad2a0008 sw $t2,8($t1)
4009b000 mfc0 $t1,R22 # reserved
3c01ffdf lui $at,0xffdf
3421ffff ori $at,0xffff # ffdfffff
01214824 and $t1,$at
3c010002 lui $at,0x2
01214825 or $t1,$at
4089b000 mtc0 $t1,R22 # reserved
8fbf0000 lw $ra,0($sp)
23bd0004 addi $sp,4