Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set $workspace = 0x40000000
- define load_usb_firmware
- # load helper
- # lbu r4,(r1+0)
- set *($workspace+0) = 0x40240000
- # lbu r5,(r1+1)
- set *($workspace+4) = 0x40250001
- # sli r5,r5,8
- set *($workspace+8) = 0x3ca50008
- # or r4,r4,r5
- set *($workspace+12) = 0xb8852000
- # sw (r2+0),r4
- set *($workspace+16) = 0x58440000
- # addi r1,r1,2
- set *($workspace+20) = 0x34210002
- # addi r2,r2,4
- set *($workspace+24) = 0x34420004
- # addi r3,r3,-2
- set *($workspace+28) = 0x3463fffe
- # bg r3,r0,-32
- set *($workspace+32) = 0x4860fff8
- # break
- set *($workspace+36) = 0xac000002
- # save registers
- set $saved_r1 = $r1
- set $saved_r2 = $r2
- set $saved_r3 = $r3
- set $saved_r4 = $r4
- set $saved_r5 = $r5
- set $saved_pc = $pc
- restore $arg0 binary $workspace+64
- set $r1 = $workspace+64
- set $r2 = 0xa0000000
- set $r3 = 2048
- jump *($workspace)
- # recall registers
- set $r1 = $saved_r1
- set $r2 = $saved_r2
- set $r3 = $saved_r3
- set $r4 = $saved_r4
- set $r5 = $saved_r5
- set $pc = $saved_pc
- end
- document load_usb_firmware
- Loads an USB firmware from a binary file.
- Syntax: load_usb_firmware <filename>
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement