395 lines
15 KiB
Plaintext
395 lines
15 KiB
Plaintext
|
|
bootloader07_rpi2.elf: file format elf64-littleaarch64
|
|
|
|
|
|
Disassembly of section .text:
|
|
|
|
0000000000000000 <_start>:
|
|
0: 14080000 b 200000 <skip>
|
|
...
|
|
|
|
0000000000200000 <skip>:
|
|
200000: d53800a0 mrs x0, mpidr_el1
|
|
200004: d2b82001 mov x1, #0xc1000000 // #3238002688
|
|
200008: 8a210000 bic x0, x0, x1
|
|
20000c: b4000040 cbz x0, 200014 <master>
|
|
200010: 14000003 b 20001c <hang>
|
|
|
|
0000000000200014 <master>:
|
|
200014: b26503ff mov sp, #0x8000000 // #134217728
|
|
200018: 940000b2 bl 2002e0 <notmain>
|
|
|
|
000000000020001c <hang>:
|
|
20001c: 14000000 b 20001c <hang>
|
|
|
|
0000000000200020 <PUT32>:
|
|
200020: b9000001 str w1, [x0]
|
|
200024: d65f03c0 ret
|
|
|
|
0000000000200028 <GET32>:
|
|
200028: b9400000 ldr w0, [x0]
|
|
20002c: d65f03c0 ret
|
|
|
|
0000000000200030 <GETPC>:
|
|
200030: aa1e03e0 mov x0, x30
|
|
200034: d65f03c0 ret
|
|
|
|
0000000000200038 <BRANCHTO>:
|
|
200038: 2a0003fe mov w30, w0
|
|
20003c: d65f03c0 ret
|
|
|
|
0000000000200040 <dummy>:
|
|
200040: d65f03c0 ret
|
|
200044: 00000000 .inst 0x00000000 ; undefined
|
|
|
|
0000000000200048 <uart_lcr>:
|
|
200048: 528a0a80 mov w0, #0x5054 // #20564
|
|
20004c: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200050: 17fffff6 b 200028 <GET32>
|
|
200054: d503201f nop
|
|
|
|
0000000000200058 <uart_recv>:
|
|
200058: a9bf7bfd stp x29, x30, [sp,#-16]!
|
|
20005c: 910003fd mov x29, sp
|
|
200060: 528a0a80 mov w0, #0x5054 // #20564
|
|
200064: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200068: 97fffff0 bl 200028 <GET32>
|
|
20006c: 3607ffa0 tbz w0, #0, 200060 <uart_recv+0x8>
|
|
200070: 528a0800 mov w0, #0x5040 // #20544
|
|
200074: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200078: 97ffffec bl 200028 <GET32>
|
|
20007c: 53001c00 uxtb w0, w0
|
|
200080: a8c17bfd ldp x29, x30, [sp],#16
|
|
200084: d65f03c0 ret
|
|
|
|
0000000000200088 <uart_check>:
|
|
200088: a9bf7bfd stp x29, x30, [sp,#-16]!
|
|
20008c: 528a0a80 mov w0, #0x5054 // #20564
|
|
200090: 910003fd mov x29, sp
|
|
200094: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200098: 97ffffe4 bl 200028 <GET32>
|
|
20009c: 12000000 and w0, w0, #0x1
|
|
2000a0: a8c17bfd ldp x29, x30, [sp],#16
|
|
2000a4: d65f03c0 ret
|
|
|
|
00000000002000a8 <uart_send>:
|
|
2000a8: a9be7bfd stp x29, x30, [sp,#-32]!
|
|
2000ac: 910003fd mov x29, sp
|
|
2000b0: f9000bf3 str x19, [sp,#16]
|
|
2000b4: 2a0003f3 mov w19, w0
|
|
2000b8: 528a0a80 mov w0, #0x5054 // #20564
|
|
2000bc: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2000c0: 97ffffda bl 200028 <GET32>
|
|
2000c4: 362fffa0 tbz w0, #5, 2000b8 <uart_send+0x10>
|
|
2000c8: 2a1303e1 mov w1, w19
|
|
2000cc: 528a0800 mov w0, #0x5040 // #20544
|
|
2000d0: f9400bf3 ldr x19, [sp,#16]
|
|
2000d4: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2000d8: a8c27bfd ldp x29, x30, [sp],#32
|
|
2000dc: 17ffffd1 b 200020 <PUT32>
|
|
|
|
00000000002000e0 <uart_flush>:
|
|
2000e0: a9bf7bfd stp x29, x30, [sp,#-16]!
|
|
2000e4: 910003fd mov x29, sp
|
|
2000e8: 528a0a80 mov w0, #0x5054 // #20564
|
|
2000ec: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2000f0: 97ffffce bl 200028 <GET32>
|
|
2000f4: 3747ffa0 tbnz w0, #8, 2000e8 <uart_flush+0x8>
|
|
2000f8: a8c17bfd ldp x29, x30, [sp],#16
|
|
2000fc: d65f03c0 ret
|
|
|
|
0000000000200100 <hexstrings>:
|
|
200100: a9be7bfd stp x29, x30, [sp,#-32]!
|
|
200104: 910003fd mov x29, sp
|
|
200108: a90153f3 stp x19, x20, [sp,#16]
|
|
20010c: 2a0003f4 mov w20, w0
|
|
200110: 52800413 mov w19, #0x20 // #32
|
|
200114: 51001273 sub w19, w19, #0x4
|
|
200118: 1ad32681 lsr w1, w20, w19
|
|
20011c: 12000c21 and w1, w1, #0xf
|
|
200120: 1100dc20 add w0, w1, #0x37
|
|
200124: 1100c022 add w2, w1, #0x30
|
|
200128: 7100283f cmp w1, #0xa
|
|
20012c: 1a803040 csel w0, w2, w0, cc
|
|
200130: 97ffffde bl 2000a8 <uart_send>
|
|
200134: 35ffff13 cbnz w19, 200114 <hexstrings+0x14>
|
|
200138: a94153f3 ldp x19, x20, [sp,#16]
|
|
20013c: a8c27bfd ldp x29, x30, [sp],#32
|
|
200140: 52800400 mov w0, #0x20 // #32
|
|
200144: 17ffffd9 b 2000a8 <uart_send>
|
|
|
|
0000000000200148 <hexstring>:
|
|
200148: a9bf7bfd stp x29, x30, [sp,#-16]!
|
|
20014c: 910003fd mov x29, sp
|
|
200150: 97ffffec bl 200100 <hexstrings>
|
|
200154: 528001a0 mov w0, #0xd // #13
|
|
200158: 97ffffd4 bl 2000a8 <uart_send>
|
|
20015c: a8c17bfd ldp x29, x30, [sp],#16
|
|
200160: 52800140 mov w0, #0xa // #10
|
|
200164: 17ffffd1 b 2000a8 <uart_send>
|
|
|
|
0000000000200168 <uart_init>:
|
|
200168: a9be7bfd stp x29, x30, [sp,#-32]!
|
|
20016c: 528a0080 mov w0, #0x5004 // #20484
|
|
200170: 52800021 mov w1, #0x1 // #1
|
|
200174: 910003fd mov x29, sp
|
|
200178: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
20017c: f9000bf3 str x19, [sp,#16]
|
|
200180: 97ffffa8 bl 200020 <PUT32>
|
|
200184: 528a0880 mov w0, #0x5044 // #20548
|
|
200188: 52800001 mov w1, #0x0 // #0
|
|
20018c: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200190: 52800013 mov w19, #0x0 // #0
|
|
200194: 97ffffa3 bl 200020 <PUT32>
|
|
200198: 528a0c00 mov w0, #0x5060 // #20576
|
|
20019c: 52800001 mov w1, #0x0 // #0
|
|
2001a0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001a4: 97ffff9f bl 200020 <PUT32>
|
|
2001a8: 528a0980 mov w0, #0x504c // #20556
|
|
2001ac: 52800061 mov w1, #0x3 // #3
|
|
2001b0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001b4: 97ffff9b bl 200020 <PUT32>
|
|
2001b8: 528a0a00 mov w0, #0x5050 // #20560
|
|
2001bc: 52800001 mov w1, #0x0 // #0
|
|
2001c0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001c4: 97ffff97 bl 200020 <PUT32>
|
|
2001c8: 528a0880 mov w0, #0x5044 // #20548
|
|
2001cc: 52800001 mov w1, #0x0 // #0
|
|
2001d0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001d4: 97ffff93 bl 200020 <PUT32>
|
|
2001d8: 528a0900 mov w0, #0x5048 // #20552
|
|
2001dc: 528018c1 mov w1, #0xc6 // #198
|
|
2001e0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001e4: 97ffff8f bl 200020 <PUT32>
|
|
2001e8: 528a0d00 mov w0, #0x5068 // #20584
|
|
2001ec: 528021c1 mov w1, #0x10e // #270
|
|
2001f0: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
2001f4: 97ffff8b bl 200020 <PUT32>
|
|
2001f8: 52800080 mov w0, #0x4 // #4
|
|
2001fc: 72a7e400 movk w0, #0x3f20, lsl #16
|
|
200200: 97ffff8a bl 200028 <GET32>
|
|
200204: 120e6402 and w2, w0, #0xfffc0fff
|
|
200208: 52840001 mov w1, #0x2000 // #8192
|
|
20020c: 52800080 mov w0, #0x4 // #4
|
|
200210: 72a00021 movk w1, #0x1, lsl #16
|
|
200214: 72a7e400 movk w0, #0x3f20, lsl #16
|
|
200218: 2a010041 orr w1, w2, w1
|
|
20021c: 97ffff81 bl 200020 <PUT32>
|
|
200220: 52801280 mov w0, #0x94 // #148
|
|
200224: 52800001 mov w1, #0x0 // #0
|
|
200228: 72a7e400 movk w0, #0x3f20, lsl #16
|
|
20022c: 97ffff7d bl 200020 <PUT32>
|
|
200230: 2a1303e0 mov w0, w19
|
|
200234: 11000673 add w19, w19, #0x1
|
|
200238: 97ffff82 bl 200040 <dummy>
|
|
20023c: 71025a7f cmp w19, #0x96
|
|
200240: 54ffff81 b.ne 200230 <uart_init+0xc8>
|
|
200244: 52801300 mov w0, #0x98 // #152
|
|
200248: 52980001 mov w1, #0xc000 // #49152
|
|
20024c: 72a7e400 movk w0, #0x3f20, lsl #16
|
|
200250: 52800013 mov w19, #0x0 // #0
|
|
200254: 97ffff73 bl 200020 <PUT32>
|
|
200258: 2a1303e0 mov w0, w19
|
|
20025c: 11000673 add w19, w19, #0x1
|
|
200260: 97ffff78 bl 200040 <dummy>
|
|
200264: 71025a7f cmp w19, #0x96
|
|
200268: 54ffff81 b.ne 200258 <uart_init+0xf0>
|
|
20026c: 52801300 mov w0, #0x98 // #152
|
|
200270: 52800001 mov w1, #0x0 // #0
|
|
200274: 72a7e400 movk w0, #0x3f20, lsl #16
|
|
200278: 97ffff6a bl 200020 <PUT32>
|
|
20027c: f9400bf3 ldr x19, [sp,#16]
|
|
200280: 528a0c00 mov w0, #0x5060 // #20576
|
|
200284: 52800061 mov w1, #0x3 // #3
|
|
200288: a8c27bfd ldp x29, x30, [sp],#32
|
|
20028c: 72a7e420 movk w0, #0x3f21, lsl #16
|
|
200290: 17ffff64 b 200020 <PUT32>
|
|
200294: d503201f nop
|
|
|
|
0000000000200298 <timer_init>:
|
|
200298: a9be7bfd stp x29, x30, [sp,#-32]!
|
|
20029c: 52a01f21 mov w1, #0xf90000 // #16318464
|
|
2002a0: 910003fd mov x29, sp
|
|
2002a4: f9000bf3 str x19, [sp,#16]
|
|
2002a8: 52968113 mov w19, #0xb408 // #46088
|
|
2002ac: 72a7e013 movk w19, #0x3f00, lsl #16
|
|
2002b0: 2a1303e0 mov w0, w19
|
|
2002b4: 97ffff5b bl 200020 <PUT32>
|
|
2002b8: 2a1303e0 mov w0, w19
|
|
2002bc: 52804001 mov w1, #0x200 // #512
|
|
2002c0: f9400bf3 ldr x19, [sp,#16]
|
|
2002c4: 72a01f21 movk w1, #0xf9, lsl #16
|
|
2002c8: a8c27bfd ldp x29, x30, [sp],#32
|
|
2002cc: 17ffff55 b 200020 <PUT32>
|
|
|
|
00000000002002d0 <timer_tick>:
|
|
2002d0: 52968400 mov w0, #0xb420 // #46112
|
|
2002d4: 72a7e000 movk w0, #0x3f00, lsl #16
|
|
2002d8: 17ffff54 b 200028 <GET32>
|
|
2002dc: d503201f nop
|
|
|
|
00000000002002e0 <notmain>:
|
|
2002e0: a9bb7bfd stp x29, x30, [sp,#-80]!
|
|
2002e4: 910003fd mov x29, sp
|
|
2002e8: a90153f3 stp x19, x20, [sp,#16]
|
|
2002ec: a9025bf5 stp x21, x22, [sp,#32]
|
|
2002f0: a90363f7 stp x23, x24, [sp,#48]
|
|
2002f4: a9046bf9 stp x25, x26, [sp,#64]
|
|
2002f8: 97ffff9c bl 200168 <uart_init>
|
|
2002fc: 90000015 adrp x21, 200000 <skip>
|
|
200300: 528acf00 mov w0, #0x5678 // #22136
|
|
200304: 52800018 mov w24, #0x0 // #0
|
|
200308: 72a24680 movk w0, #0x1234, lsl #16
|
|
20030c: 52800017 mov w23, #0x0 // #0
|
|
200310: 5280001a mov w26, #0x0 // #0
|
|
200314: 52800014 mov w20, #0x0 // #0
|
|
200318: 97ffff8c bl 200148 <hexstring>
|
|
20031c: 52800016 mov w22, #0x0 // #0
|
|
200320: 97ffff44 bl 200030 <GETPC>
|
|
200324: 52800013 mov w19, #0x0 // #0
|
|
200328: 97ffff88 bl 200148 <hexstring>
|
|
20032c: 52800139 mov w25, #0x9 // #9
|
|
200330: 52800920 mov w0, #0x49 // #73
|
|
200334: 911482b5 add x21, x21, #0x520
|
|
200338: 97ffff5c bl 2000a8 <uart_send>
|
|
20033c: 52800900 mov w0, #0x48 // #72
|
|
200340: 97ffff5a bl 2000a8 <uart_send>
|
|
200344: 528008a0 mov w0, #0x45 // #69
|
|
200348: 97ffff58 bl 2000a8 <uart_send>
|
|
20034c: 52800b00 mov w0, #0x58 // #88
|
|
200350: 97ffff56 bl 2000a8 <uart_send>
|
|
200354: 528001a0 mov w0, #0xd // #13
|
|
200358: 97ffff54 bl 2000a8 <uart_send>
|
|
20035c: 52800140 mov w0, #0xa // #10
|
|
200360: 97ffff52 bl 2000a8 <uart_send>
|
|
200364: 97ffff3d bl 200058 <uart_recv>
|
|
200368: 7100e81f cmp w0, #0x3a
|
|
20036c: 54000340 b.eq 2003d4 <notmain+0xf4>
|
|
200370: 7100281f cmp w0, #0xa
|
|
200374: 7a4d1804 ccmp w0, #0xd, #0x4, ne
|
|
200378: 54000360 b.eq 2003e4 <notmain+0x104>
|
|
20037c: 121a7801 and w1, w0, #0xffffffdf
|
|
200380: 71011c3f cmp w1, #0x47
|
|
200384: 54000820 b.eq 200488 <notmain+0x1a8>
|
|
200388: 51000661 sub w1, w19, #0x1
|
|
20038c: 7100503f cmp w1, #0x14
|
|
200390: 54fffea8 b.hi 200364 <notmain+0x84>
|
|
200394: 38614aa1 ldrb w1, [x21,w1,uxtw]
|
|
200398: 10000062 adr x2, 2003a4 <notmain+0xc4>
|
|
20039c: 8b218841 add x1, x2, w1, sxtb #2
|
|
2003a0: d61f0020 br x1
|
|
2003a4: d503201f nop
|
|
2003a8: 7100e81f cmp w0, #0x3a
|
|
2003ac: 51001c01 sub w1, w0, #0x7
|
|
2003b0: 1a802020 csel w0, w1, w0, cs
|
|
2003b4: 7100567f cmp w19, #0x15
|
|
2003b8: 12000c00 and w0, w0, #0xf
|
|
2003bc: 2a171017 orr w23, w0, w23, lsl #4
|
|
2003c0: 540009c0 b.eq 2004f8 <notmain+0x218>
|
|
2003c4: 97ffff25 bl 200058 <uart_recv>
|
|
2003c8: 7100e81f cmp w0, #0x3a
|
|
2003cc: 11000673 add w19, w19, #0x1
|
|
2003d0: 54fffd01 b.ne 200370 <notmain+0x90>
|
|
2003d4: 52800033 mov w19, #0x1 // #1
|
|
2003d8: 17ffffe3 b 200364 <notmain+0x84>
|
|
2003dc: d503201f nop
|
|
2003e0: 531c6f5a lsl w26, w26, #4
|
|
2003e4: 52800013 mov w19, #0x0 // #0
|
|
2003e8: 17ffffdf b 200364 <notmain+0x84>
|
|
2003ec: d503201f nop
|
|
2003f0: 51001c01 sub w1, w0, #0x7
|
|
2003f4: 7100e81f cmp w0, #0x3a
|
|
2003f8: 1a802020 csel w0, w1, w0, cs
|
|
2003fc: 11000673 add w19, w19, #0x1
|
|
200400: 12000c00 and w0, w0, #0xf
|
|
200404: 2a1a1000 orr w0, w0, w26, lsl #4
|
|
200408: 12003c1a and w26, w0, #0xffff
|
|
20040c: 17ffffd6 b 200364 <notmain+0x84>
|
|
200410: 7100e81f cmp w0, #0x3a
|
|
200414: 51001c01 sub w1, w0, #0x7
|
|
200418: 1a802020 csel w0, w1, w0, cs
|
|
20041c: 12000c00 and w0, w0, #0xf
|
|
200420: 2a141014 orr w20, w0, w20, lsl #4
|
|
200424: 12001e94 and w20, w20, #0xff
|
|
200428: 7100069f cmp w20, #0x1
|
|
20042c: 540005e0 b.eq 2004e8 <notmain+0x208>
|
|
200430: 34000594 cbz w20, 2004e0 <notmain+0x200>
|
|
200434: 71000a9f cmp w20, #0x2
|
|
200438: 1a9f0333 csel w19, w25, wzr, eq
|
|
20043c: 17ffffca b 200364 <notmain+0x84>
|
|
200440: 51001c01 sub w1, w0, #0x7
|
|
200444: 7100e81f cmp w0, #0x3a
|
|
200448: 1a802020 csel w0, w1, w0, cs
|
|
20044c: 52800113 mov w19, #0x8 // #8
|
|
200450: 12000c00 and w0, w0, #0xf
|
|
200454: 2a141014 orr w20, w0, w20, lsl #4
|
|
200458: 12001e94 and w20, w20, #0xff
|
|
20045c: 17ffffc2 b 200364 <notmain+0x84>
|
|
200460: 51001c01 sub w1, w0, #0x7
|
|
200464: 7100e81f cmp w0, #0x3a
|
|
200468: 1a802020 csel w0, w1, w0, cs
|
|
20046c: 11000673 add w19, w19, #0x1
|
|
200470: 12000c00 and w0, w0, #0xf
|
|
200474: 2a161016 orr w22, w0, w22, lsl #4
|
|
200478: 12003ed6 and w22, w22, #0xffff
|
|
20047c: 2a160356 orr w22, w26, w22
|
|
200480: 17ffffb9 b 200364 <notmain+0x84>
|
|
200484: d503201f nop
|
|
200488: 528001a0 mov w0, #0xd // #13
|
|
20048c: 97ffff07 bl 2000a8 <uart_send>
|
|
200490: 528005a0 mov w0, #0x2d // #45
|
|
200494: 97ffff05 bl 2000a8 <uart_send>
|
|
200498: 528005a0 mov w0, #0x2d // #45
|
|
20049c: 97ffff03 bl 2000a8 <uart_send>
|
|
2004a0: 528001a0 mov w0, #0xd // #13
|
|
2004a4: 97ffff01 bl 2000a8 <uart_send>
|
|
2004a8: 52800140 mov w0, #0xa // #10
|
|
2004ac: 97fffeff bl 2000a8 <uart_send>
|
|
2004b0: 52800140 mov w0, #0xa // #10
|
|
2004b4: 97fffefd bl 2000a8 <uart_send>
|
|
2004b8: 52900000 mov w0, #0x8000 // #32768
|
|
2004bc: 97fffedf bl 200038 <BRANCHTO>
|
|
2004c0: 52800000 mov w0, #0x0 // #0
|
|
2004c4: a94153f3 ldp x19, x20, [sp,#16]
|
|
2004c8: a9425bf5 ldp x21, x22, [sp,#32]
|
|
2004cc: a94363f7 ldp x23, x24, [sp,#48]
|
|
2004d0: a9446bf9 ldp x25, x26, [sp,#64]
|
|
2004d4: a8c57bfd ldp x29, x30, [sp],#80
|
|
2004d8: d65f03c0 ret
|
|
2004dc: d503201f nop
|
|
2004e0: 528001d3 mov w19, #0xe // #14
|
|
2004e4: 17ffffa0 b 200364 <notmain+0x84>
|
|
2004e8: 2a1803e0 mov w0, w24
|
|
2004ec: 52800013 mov w19, #0x0 // #0
|
|
2004f0: 97ffff16 bl 200148 <hexstring>
|
|
2004f4: 17ffff9c b 200364 <notmain+0x84>
|
|
2004f8: 5ac00af7 rev w23, w23
|
|
2004fc: 2a1603e0 mov w0, w22
|
|
200500: 2a1703e1 mov w1, w23
|
|
200504: 0b1802d8 add w24, w22, w24
|
|
200508: 528001d3 mov w19, #0xe // #14
|
|
20050c: 0b1802f8 add w24, w23, w24
|
|
200510: 97fffec4 bl 200020 <PUT32>
|
|
200514: 110012d6 add w22, w22, #0x4
|
|
200518: 17ffff93 b 200364 <notmain+0x84>
|
|
20051c: d503201f nop
|
|
|
|
Disassembly of section .rodata:
|
|
|
|
0000000000200520 <.rodata>:
|
|
200520: 2f2f0808 .word 0x2f2f0808
|
|
200524: 1b272f2f .word 0x1b272f2f
|
|
200528: 13131313 .word 0x13131313
|
|
20052c: 0101010f .word 0x0101010f
|
|
200530: 01010101 .word 0x01010101
|
|
200534: 00000001 .word 0x00000001
|
|
|
|
Disassembly of section .comment:
|
|
|
|
0000000000000000 <.comment>:
|
|
0: 3a434347 ccmn w26, w3, #0x7, mi
|
|
4: 4e472820 trn1 v0.8h, v1.8h, v7.8h
|
|
8: 35202955 cbnz w21, 40530 <_start+0x40530>
|
|
c: 302e332e adr x14, 5c671 <_start+0x5c671>
|
|
...
|