comparison dsample-fw-disasm @ 302:844ebeb9a5c6

dsample-fw-disasm: rf_program() and l1dmacro_agc() analysed
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 05 Oct 2019 23:47:32 +0000
parents 5f9932613f99
children 3baaefa1e229
comparison
equal deleted inserted replaced
301:5f9932613f99 302:844ebeb9a5c6
3028 805efe: f00d f9ef bl 0x8132e0 ; $l1dmacro_reset_hw 3028 805efe: f00d f9ef bl 0x8132e0 ; $l1dmacro_reset_hw
3029 805f02: bd10 pop {r4, pc} 3029 805f02: bd10 pop {r4, pc}
3030 3030
3031 ; apparent beginning of tpudrv10 module 3031 ; apparent beginning of tpudrv10 module
3032 3032
3033 ; mystery helper function for rf_program()
3033 811df8: b500 push {lr} 3034 811df8: b500 push {lr}
3034 811dfa: b084 sub sp, #16 ; 0x10 3035 811dfa: b084 sub sp, #16 ; 0x10
3035 811dfc: 4669 mov r1, sp 3036 811dfc: 4669 mov r1, sp
3036 811dfe: 8008 strh r0, [r1, #0] 3037 811dfe: 8008 strh r0, [r1, #0]
3037 811e00: 2014 mov r0, #20 ; 0x14 3038 811e00: 2014 mov r0, #20 ; 0x14
3062 811e32: 0040 lsl r0, r0, #1 3063 811e32: 0040 lsl r0, r0, #1
3063 811e34: 80c8 strh r0, [r1, #6] 3064 811e34: 80c8 strh r0, [r1, #6]
3064 811e36: 4668 mov r0, sp 3065 811e36: 4668 mov r0, sp
3065 811e38: 88c0 ldrh r0, [r0, #6] 3066 811e38: 88c0 ldrh r0, [r0, #6]
3066 811e3a: 210d mov r1, #13 ; 0xd 3067 811e3a: 210d mov r1, #13 ; 0xd
3067 811e3c: f002 fd8e bl 0x81495c 3068 811e3c: f002 fd8e bl 0x81495c ; I$DIV
3068 811e40: 4668 mov r0, sp 3069 811e40: 4668 mov r0, sp
3069 811e42: 8101 strh r1, [r0, #8] 3070 811e42: 8101 strh r1, [r0, #8]
3070 811e44: 8900 ldrh r0, [r0, #8] 3071 811e44: 8900 ldrh r0, [r0, #8]
3071 811e46: 1081 asr r1, r0, #2 3072 811e46: 1081 asr r1, r0, #2
3072 811e48: 0f49 lsr r1, r1, #29 3073 811e48: 0f49 lsr r1, r1, #29
4122 81271a: 1c91 add r1, r2, #2 4123 81271a: 1c91 add r1, r2, #2
4123 81271c: 6001 str r1, [r0, #0] 4124 81271c: 6001 str r1, [r0, #0]
4124 81271e: 48a2 ldr r0, =0x8041 ; via 0x8129a8 4125 81271e: 48a2 ldr r0, =0x8041 ; via 0x8129a8
4125 812720: 8010 strh r0, [r2, #0] 4126 812720: 8010 strh r0, [r2, #0]
4126 812722: e12c b 0x81297e 4127 812722: e12c b 0x81297e
4127 812724: 8002 strh r2, [r0, #0] 4128
4128 812726: 0000 lsl r0, r0, #0 4129 812724: 00008002
4129 812728: 8ae0 ldrh r0, [r4, #22] ; 0x16 4130 812728: 00008ae0
4130 81272a: 0000 lsl r0, r0, #0 4131
4131 81272c: 4668 mov r0, sp 4132 81272c: 4668 mov r0, sp
4132 81272e: 8b80 ldrh r0, [r0, #28] ; 0x1c 4133 81272e: 8b80 ldrh r0, [r0, #28] ; 0x1c
4133 812730: 2100 mov r1, #0 4134 812730: 2100 mov r1, #0
4134 812732: f7ff fba2 bl 0x811e7a 4135 812732: f7ff fba2 bl 0x811e7a
4135 812736: 9004 str r0, [sp, #16] ; 0x10 4136 812736: 9004 str r0, [sp, #16] ; 0x10
4581 812adc: 8001 strh r1, [r0, #0] 4582 812adc: 8001 strh r1, [r0, #0]
4582 812ade: 9801 ldr r0, [sp, #4] 4583 812ade: 9801 ldr r0, [sp, #4]
4583 812ae0: 4669 mov r1, sp 4584 812ae0: 4669 mov r1, sp
4584 812ae2: 8809 ldrh r1, [r1, #0] 4585 812ae2: 8809 ldrh r1, [r1, #0]
4585 812ae4: 2201 mov r2, #1 4586 812ae4: 2201 mov r2, #1
4586 812ae6: f7ff fd51 bl 0x81258c 4587 812ae6: f7ff fd51 bl 0x81258c ; $rf_program
4587 812aea: 9001 str r0, [sp, #4] 4588 812aea: 9001 str r0, [sp, #4]
4588 812aec: b002 add sp, #8 4589 812aec: b002 add sp, #8
4589 812aee: bd00 pop {pc} 4590 812aee: bd00 pop {pc}
4590 4591
4591 $l1dmacro_tx_synth: 4592 $l1dmacro_tx_synth:
4608 812b10: 8001 strh r1, [r0, #0] 4609 812b10: 8001 strh r1, [r0, #0]
4609 812b12: 9801 ldr r0, [sp, #4] 4610 812b12: 9801 ldr r0, [sp, #4]
4610 812b14: 4669 mov r1, sp 4611 812b14: 4669 mov r1, sp
4611 812b16: 8809 ldrh r1, [r1, #0] 4612 812b16: 8809 ldrh r1, [r1, #0]
4612 812b18: 2200 mov r2, #0 4613 812b18: 2200 mov r2, #0
4613 812b1a: f7ff fd37 bl 0x81258c 4614 812b1a: f7ff fd37 bl 0x81258c ; $rf_program
4614 812b1e: 9001 str r0, [sp, #4] 4615 812b1e: 9001 str r0, [sp, #4]
4615 812b20: b002 add sp, #8 4616 812b20: b002 add sp, #8
4616 812b22: bd00 pop {pc} 4617 812b22: bd00 pop {pc}
4617 4618
4618 812b24: b081 sub sp, #4 4619 812b24: b081 sub sp, #4
5380 813b86: b500 push {lr} 5381 813b86: b500 push {lr}
5381 813b88: f7ff ff0b bl 0x8139a2 ; $TPU_FrameItEnable 5382 813b88: f7ff ff0b bl 0x8139a2 ; $TPU_FrameItEnable
5382 813b8c: bd00 pop {pc} 5383 813b8c: bd00 pop {pc}
5383 813b8e: 46c0 nop (mov r8, r8) 5384 813b8e: 46c0 nop (mov r8, r8)
5384 5385
5386 I$DIV:
5387 I$MOD:
5388 81495c: b43c push {r2, r3, r4, r5}
5389 81495e: 17cc asr r4, r1, #31
5390 814960: 4061 eor r1, r4
5391 814962: 1b09 sub r1, r1, r4
5392 814964: d050 beq 0x814a08
5393 814966: 17c2 asr r2, r0, #31
5394 814968: 4050 eor r0, r2
5395 81496a: 1a80 sub r0, r0, r2
5396 81496c: 0864 lsr r4, r4, #1
5397 81496e: 4054 eor r4, r2
5398 814970: 1c0a add r2, r1, #0
5399 814972: 0c05 lsr r5, r0, #16
5400 814974: 42aa cmp r2, r5
5401 814976: d800 bhi 0x81497a
5402 814978: 0412 lsl r2, r2, #16
5403 81497a: 0a05 lsr r5, r0, #8
5404 81497c: 42aa cmp r2, r5
5405 81497e: d800 bhi 0x814982
5406 814980: 0212 lsl r2, r2, #8
5407 814982: 1c03 add r3, r0, #0
5408 814984: a51b add r5, pc, #108 ; 0x6c
5409 814986: 085b lsr r3, r3, #1
5410 814988: 3d0c sub r5, #12 ; 0xc
5411 81498a: 429a cmp r2, r3
5412 81498c: d9fb bls 0x814986
5413 81498e: 2300 mov r3, #0
5414 814990: 46af mov pc, r5
5415 814992: 0a12 lsr r2, r2, #8
5416 814994: 01d5 lsl r5, r2, #7
5417 814996: 42a8 cmp r0, r5
5418 814998: 415b adc r3, r3
5419 81499a: 42a8 cmp r0, r5
5420 81499c: d300 bcc 0x8149a0
5421 81499e: 1b40 sub r0, r0, r5
5422 8149a0: 0195 lsl r5, r2, #6
5423 8149a2: 42a8 cmp r0, r5
5424 8149a4: 415b adc r3, r3
5425 8149a6: 42a8 cmp r0, r5
5426 8149a8: d300 bcc 0x8149ac
5427 8149aa: 1b40 sub r0, r0, r5
5428 8149ac: 0155 lsl r5, r2, #5
5429 8149ae: 42a8 cmp r0, r5
5430 8149b0: 415b adc r3, r3
5431 8149b2: 42a8 cmp r0, r5
5432 8149b4: d300 bcc 0x8149b8
5433 8149b6: 1b40 sub r0, r0, r5
5434 8149b8: 0115 lsl r5, r2, #4
5435 8149ba: 42a8 cmp r0, r5
5436 8149bc: 415b adc r3, r3
5437 8149be: 42a8 cmp r0, r5
5438 8149c0: d300 bcc 0x8149c4
5439 8149c2: 1b40 sub r0, r0, r5
5440 8149c4: 00d5 lsl r5, r2, #3
5441 8149c6: 42a8 cmp r0, r5
5442 8149c8: 415b adc r3, r3
5443 8149ca: 42a8 cmp r0, r5
5444 8149cc: d300 bcc 0x8149d0
5445 8149ce: 1b40 sub r0, r0, r5
5446 8149d0: 0095 lsl r5, r2, #2
5447 8149d2: 42a8 cmp r0, r5
5448 8149d4: 415b adc r3, r3
5449 8149d6: 42a8 cmp r0, r5
5450 8149d8: d300 bcc 0x8149dc
5451 8149da: 1b40 sub r0, r0, r5
5452 8149dc: 0055 lsl r5, r2, #1
5453 8149de: 42a8 cmp r0, r5
5454 8149e0: 415b adc r3, r3
5455 8149e2: 42a8 cmp r0, r5
5456 8149e4: d300 bcc 0x8149e8
5457 8149e6: 1b40 sub r0, r0, r5
5458 8149e8: 4290 cmp r0, r2
5459 8149ea: 415b adc r3, r3
5460 8149ec: 4290 cmp r0, r2
5461 8149ee: d300 bcc 0x8149f2
5462 8149f0: 1a80 sub r0, r0, r2
5463 8149f2: 4291 cmp r1, r2
5464 8149f4: d3cd bcc 0x814992
5465 8149f6: 17e5 asr r5, r4, #31
5466 8149f8: 4068 eor r0, r5
5467 8149fa: 1b40 sub r0, r0, r5
5468 8149fc: 0064 lsl r4, r4, #1
5469 8149fe: 17e4 asr r4, r4, #31
5470 814a00: 4063 eor r3, r4
5471 814a02: 1b19 sub r1, r3, r4
5472 814a04: bc3c pop {r2, r3, r4, r5}
5473 814a06: 46f7 mov pc, lr
5474 814a08: 2000 mov r0, #0
5475 814a0a: bc3c pop {r2, r3, r4, r5}
5476 814a0c: 46f7 mov pc, lr
5477
5385 IRAM data: 5478 IRAM data:
5386 5479
5387 0x839ea8 rf structure 5480 0x839ea8 rf structure
5388 0x83a09c adc_cal structure 5481 0x83a09c adc_cal structure
5389 0x83be2c 8-bit var I'm calling magic2_byte 5482 0x83be2c 8-bit var I'm calling magic2_byte
5390 0x83be30 synth_900 5483 0x83be30 synth_900
5391 0x83be60 synth_1800 5484 0x83be60 synth_1800
5392 0x83be78 synth_1900 5485 0x83be78 synth_1900
5393 0x83be90 synth_850 5486 0x83be90 synth_850
5394 0x83c048 rf_path array of structs 5487 0x83c048 rf_path array of structs
5488 0x83c098 16-bit var captures lna_off flag
5395 0x83c09c rf_data 32-bit var? 5489 0x83c09c rf_data 32-bit var?
5396 0x83c0a0 rf_band 8-bit var 5490 0x83c0a0 rf_band 8-bit var
5397 0x83c0a1 rf_index 8-bit var 5491 0x83c0a1 rf_index 8-bit var
5398 0x83c0a4 TP_Ptr 5492 0x83c0a4 TP_Ptr
5399 0x83c724 l1s_tpu_com structure 5493 0x83c724 l1s_tpu_com structure