comparison pirelli/fw-disasm @ 258:61d8d70ca7b0

pirelli/fw-disasm: pwr_short_test_timer_process() analyzed
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 26 Dec 2017 04:12:06 +0000
parents 01030ff953a2
children ea66ce1a0d2e
comparison
equal deleted inserted replaced
257:01030ff953a2 258:61d8d70ca7b0
784 2e242e: 2200 mov r2, #0 784 2e242e: 2200 mov r2, #0
785 2e2430: f048 fd22 bl 0x32ae78 785 2e2430: f048 fd22 bl 0x32ae78
786 2e2434: bd00 pop {pc} 786 2e2434: bd00 pop {pc}
787 2e2436: 46c0 nop (mov r8, r8) 787 2e2436: 46c0 nop (mov r8, r8)
788 788
789 $pwr_short_test_timer_process:
790 2e2468: b570 push {r4, r5, r6, lr}
791 ; not in MV100: additional checks to see if the state is something other than
792 ; CHARGE_STOPPED and that the charging power source is still there
793 2e246a: b082 sub sp, #8
794 2e246c: f066 ff4e bl 0x34930c ; $ABB_Read_Status
795 2e2470: 4955 ldr r1, =0x1774e70 ; via 0x2e25c8
796 2e2472: 6809 ldr r1, [r1, #0]
797 2e2474: 6849 ldr r1, [r1, #4]
798 2e2476: 2900 cmp r1, #0
799 2e2478: d100 bne 0x2e247c
800 2e247a: e0a1 b 0x2e25c0
801 2e247c: 09c0 lsr r0, r0, #7
802 2e247e: d200 bcs 0x2e2482
803 2e2480: e09e b 0x2e25c0
804 ; trace
805 2e2482: 4850 ldr r0, =0xa0020 ; via 0x2e25c4
806 2e2484: 9000 str r0, [sp, #0]
807 2e2486: a0c8 add r0, pc, #800 ; 0x320
808 2e2488: 211f mov r1, #31 ; 0x1f
809 2e248a: 2200 mov r2, #0
810 2e248c: 43d2 mvn r2, r2
811 2e248e: 2302 mov r3, #2
812 2e2490: f0f8 fbd0 bl 0x3dac34
813 2e2494: 2002 mov r0, #2
814 2e2496: f7cf fa02 bl 0x2b189e ; rvf_delay()
815 2e249a: 2001 mov r0, #1
816 2e249c: 2122 mov r1, #34 ; 0x22
817 2e249e: 2200 mov r2, #0
818 2e24a0: f066 feb4 bl 0x34920c
819 2e24a4: 2002 mov r0, #2
820 2e24a6: f7cf f9fa bl 0x2b189e
821 ; read and trace-dump VBAT, VCHG and ICHG
822 2e24aa: 2001 mov r0, #1
823 2e24ac: 211e mov r1, #30 ; 0x1e
824 2e24ae: f066 fed4 bl 0x34925a
825 2e24b2: 1c05 add r5, r0, #0
826 2e24b4: 4843 ldr r0, =0xa0020 ; via 0x2e25c4
827 2e24b6: 9000 str r0, [sp, #0]
828 2e24b8: a0c3 add r0, pc, #780 ; 0x30c
829 2e24ba: 2111 mov r1, #17 ; 0x11
830 2e24bc: 1c2a add r2, r5, #0
831 2e24be: 2302 mov r3, #2
832 2e24c0: f0f8 fbb8 bl 0x3dac34
833 2e24c4: 2001 mov r0, #1
834 2e24c6: 2120 mov r1, #32 ; 0x20
835 2e24c8: f066 fec7 bl 0x34925a
836 2e24cc: 1c06 add r6, r0, #0
837 2e24ce: 483d ldr r0, =0xa0020 ; via 0x2e25c4
838 2e24d0: 9000 str r0, [sp, #0]
839 2e24d2: a0c2 add r0, pc, #776 ; 0x308
840 2e24d4: 2111 mov r1, #17 ; 0x11
841 2e24d6: 1c32 add r2, r6, #0
842 2e24d8: 2302 mov r3, #2
843 2e24da: f0f8 fbab bl 0x3dac34
844 2e24de: 2001 mov r0, #1
845 2e24e0: 2122 mov r1, #34 ; 0x22
846 2e24e2: f066 feba bl 0x34925a
847 2e24e6: 1c04 add r4, r0, #0
848 2e24e8: 4836 ldr r0, =0xa0020 ; via 0x2e25c4
849 2e24ea: 9000 str r0, [sp, #0]
850 2e24ec: a0c0 add r0, pc, #768 ; 0x300
851 2e24ee: 211b mov r1, #27 ; 0x1b
852 2e24f0: 1c22 add r2, r4, #0
853 2e24f2: 2305 mov r3, #5
854 2e24f4: f0f8 fb9e bl 0x3dac34
855 ; end of the read-and-dump
856 2e24f8: f7ff fef9 bl 0x2e22ee ; $pwr_stop_charging
857 2e24fc: 20ff mov r0, #255 ; 0xff
858 2e24fe: 30b7 add r0, #183 ; 0xb7
859 2e2500: 4285 cmp r5, r0
860 2e2502: dd21 ble 0x2e2548
861 2e2504: 205f mov r0, #95 ; 0x5f
862 2e2506: 00c0 lsl r0, r0, #3
863 2e2508: 4286 cmp r6, r0
864 2e250a: da1d bge 0x2e2548
865 ; "Battery OK" trace
866 2e250c: 482d ldr r0, =0xa0020 ; via 0x2e25c4
867 2e250e: 9000 str r0, [sp, #0]
868 2e2510: a0be add r0, pc, #760 ; 0x2f8
869 2e2512: 210a mov r1, #10 ; 0xa
870 2e2514: 2200 mov r2, #0
871 2e2516: 43d2 mvn r2, r2
872 2e2518: 2305 mov r3, #5
873 2e251a: f0f8 fb8b bl 0x3dac34
874 2e251e: 4c2a ldr r4, =0x1774e70 ; via 0x2e25c8
875 2e2520: 6821 ldr r1, [r4, #0]
876 ; setting the time limit for the overall charging process: 7200 s
877 2e2522: 20e1 mov r0, #225 ; 0xe1
878 2e2524: 0140 lsl r0, r0, #5
879 2e2526: 8748 strh r0, [r1, #58] ; 0x3a
880 ; elapsed time init to 0
881 2e2528: 6821 ldr r1, [r4, #0]
882 2e252a: 2000 mov r0, #0
883 2e252c: 8788 strh r0, [r1, #60] ; 0x3c
884 ; mystery var init
885 2e252e: 48c0 ldr r0, =0x1775040 ; via 0x2e2830
886 2e2530: 2165 mov r1, #101 ; 0x65
887 2e2532: 7001 strb r1, [r0, #0]
888 2e2534: f048 fc96 bl 0x32ae64 ; $rvf_get_tick_count
889 2e2538: 49be ldr r1, =0x17749bc ; via 0x2e2834
890 2e253a: 6008 str r0, [r1, #0]
891 ; pwr_env_ctrl_blk->charging_state = TESTING_BATTERY;
892 2e253c: 6821 ldr r1, [r4, #0]
893 2e253e: 2001 mov r0, #1
894 2e2540: 6048 str r0, [r1, #4]
895 2e2542: f04b fb7d bl 0x32dc40 ; $pwr_get_battery_temperature
896 2e2546: e03b b 0x2e25c0 ; return
897 ; failure code path
898 2e2548: 481e ldr r0, =0xa0020 ; via 0x2e25c4
899 2e254a: 9000 str r0, [sp, #0]
900 2e254c: a0b2 add r0, pc, #712 ; 0x2c8
901 2e254e: 2117 mov r1, #23 ; 0x17
902 2e2550: 2200 mov r2, #0
903 2e2552: 43d2 mvn r2, r2
904 2e2554: 2302 mov r3, #2
905 2e2556: f0f8 fb6d bl 0x3dac34
906 2e255a: 20ff mov r0, #255 ; 0xff
907 2e255c: 30b7 add r0, #183 ; 0xb7
908 2e255e: 4285 cmp r5, r0
909 2e2560: dd19 ble 0x2e2596
910 2e2562: 20a3 mov r0, #163 ; 0xa3
911 2e2564: 0080 lsl r0, r0, #2
912 2e2566: 4285 cmp r5, r0
913 2e2568: da13 bge 0x2e2592
914 2e256a: 2c46 cmp r4, #70 ; 0x46
915 2e256c: dd0f ble 0x2e258e
916 2e256e: 205f mov r0, #95 ; 0x5f
917 2e2570: 00c0 lsl r0, r0, #3
918 2e2572: 4286 cmp r6, r0
919 2e2574: da01 bge 0x2e257a
920 2e2576: 2108 mov r1, #8
921 2e2578: e00e b 0x2e2598
922 2e257a: 4823 ldr r0, =0x1774b78 ; via 0x2e2608
923 2e257c: 210b mov r1, #11 ; 0xb
924 2e257e: 43c9 mvn r1, r1
925 2e2580: 8001 strh r1, [r0, #0]
926 2e2582: 2001 mov r0, #1
927 2e2584: 213a mov r1, #58 ; 0x3a
928 2e2586: 2280 mov r2, #128 ; 0x80
929 2e2588: f066 fe40 bl 0x34920c
930 2e258c: e007 b 0x2e259e
931 2e258e: 2102 mov r1, #2
932 2e2590: e002 b 0x2e2598
933 2e2592: 2107 mov r1, #7
934 2e2594: e000 b 0x2e2598
935 2e2596: 2101 mov r1, #1
936 2e2598: 43c9 mvn r1, r1
937 2e259a: 481b ldr r0, =0x1774b78 ; via 0x2e2608
938 2e259c: 8001 strh r1, [r0, #0]
939 2e259e: 2002 mov r0, #2
940 2e25a0: f0b2 fc8f bl 0x394ec2
941 2e25a4: 2032 mov r0, #50 ; 0x32
942 2e25a6: 493e ldr r1, =0x1774e38 ; via 0x2e26a0
943 2e25a8: 6809 ldr r1, [r1, #0]
944 2e25aa: 5c40 ldrb r0, [r0, r1]
945 2e25ac: 2800 cmp r0, #0
946 2e25ae: d105 bne 0x2e25bc
947 2e25b0: 2001 mov r0, #1
948 2e25b2: 213c mov r1, #60 ; 0x3c
949 2e25b4: 2201 mov r2, #1
950 2e25b6: f066 fe29 bl 0x34920c
951 2e25ba: e001 b 0x2e25c0
952 2e25bc: f0d1 faf9 bl 0x3b3bb2
953 2e25c0: b002 add sp, #8
954 2e25c2: bd70 pop {r4, r5, r6, pc}
955
789 $l1_abb_power_on: 956 $l1_abb_power_on:
790 31c036: b510 push {r4, lr} 957 31c036: b510 push {r4, lr}
791 31c038: b084 sub sp, #16 ; 0x10 958 31c038: b084 sub sp, #16 ; 0x10
792 31c03a: 2000 mov r0, #0 959 31c03a: 2000 mov r0, #0
793 31c03c: 4669 mov r1, sp 960 31c03c: 4669 mov r1, sp
940 31c746: f7ff fc68 bl 0x31c01a ; $l1_tpu_init 1107 31c746: f7ff fc68 bl 0x31c01a ; $l1_tpu_init
941 31c74a: f7ff fb47 bl 0x31bddc ; $l1_dsp_init 1108 31c74a: f7ff fb47 bl 0x31bddc ; $l1_dsp_init
942 31c74e: f7ff fdf9 bl 0x31c344 ; $l1_initialize_var 1109 31c74e: f7ff fdf9 bl 0x31c344 ; $l1_initialize_var
943 31c752: f0dc fccb bl 0x3f90ec ; $initialize_l1pvar 1110 31c752: f0dc fccb bl 0x3f90ec ; $initialize_l1pvar
944 31c756: bd30 pop {r4, r5, pc} 1111 31c756: bd30 pop {r4, r5, pc}
1112
1113 $rvf_get_tick_count:
1114 32ae64: b500 push {lr}
1115 32ae66: f0ce fbb1 bl 0x3f95cc ; $TMT_Retrieve_Clock
1116 32ae6a: bd00 pop {pc}
945 1117
946 $rvf_start_timer: 1118 $rvf_start_timer:
947 32ae78: b500 push {lr} 1119 32ae78: b500 push {lr}
948 32ae7a: b085 sub sp, #20 ; 0x14 1120 32ae7a: b085 sub sp, #20 ; 0x14
949 32ae7c: 466b mov r3, sp 1121 32ae7c: 466b mov r3, sp