start: b main .text .global rom_send rom_send: mov w1, #0x20000 // size mov w0, #0x0 // address bl usb_send ret .text .global usb_send usb_send: stp x29, x30, [sp,#-48]! mov w3, #0x0 bfxil w3, w1, #0, #24 mov w1, #0xc12 mov x29, sp stp x19, x20, [sp,#16] mov x5, #0xc834 mov w20, #0x1 movk x5, #0x1540, lsl #16 ldr x2, [x29,#40] mov x4, #0xc838 orr w6, w1, w20 movk x4, #0x1540, lsl #16 mov x19, #0xc83c movk x19, #0x1540, lsl #16 stp w3, w1, [x2,#8] mov w3, #0x406 stp w0, wzr, [x2] mov w0, w20 ldr x1, [x29,#40] strb w6, [x2,#12] ; mov x2, #0x27c8 str w1, [x5] mov w1, #0x1388 str wzr, [x4] str w3, [x19] ; blr x2 mov w0, w20 ldr w1, [x19] ldp x19, x20, [sp,#16] ldp x29, x30, [sp],#48 ret