1 .cpu arm7tdmi 2 .arch armv4t 3 .fpu softvfp 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 4 11 .eabi_attribute 34, 0 12 .eabi_attribute 18, 4 13 .file "misc.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .file 1 "calypso/misc.c" 18 .section .rodata.str1.1,"aMS",%progbits,1 19 .LC0: 20 0000 25303858 .ascii "%08X: \000" 20 3A2000 21 .LC1: 22 0007 2000 .ascii " \000" 23 .LC2: 24 0009 25303858 .ascii "%08X %s\000" 24 20257300 25 .LC3: 26 0011 00 .ascii "\000" 27 .section .text.memdump_range,"ax",%progbits 28 .align 2 29 .global memdump_range 30 .syntax unified 31 .arm 33 memdump_range: 34 .LVL0: 35 .LFB0: 1:calypso/misc.c **** 2:calypso/misc.c **** #include 3:calypso/misc.c **** #include 4:calypso/misc.c **** #include 5:calypso/misc.c **** 6:calypso/misc.c **** /* dump a memory range */ 7:calypso/misc.c **** void memdump_range(unsigned int *ptr, unsigned int len) 8:calypso/misc.c **** { 36 .loc 1 8 1 view -0 37 .cfi_startproc 38 @ Function supports interworking. 39 @ args = 0, pretend = 0, frame = 0 40 @ frame_needed = 0, uses_anonymous_args = 0 9:calypso/misc.c **** unsigned int *end = ptr + (len/4); 41 .loc 1 9 2 view .LVU1 8:calypso/misc.c **** unsigned int *end = ptr + (len/4); 42 .loc 1 8 1 is_stmt 0 view .LVU2 43 0000 F0472DE9 push {r4, r5, r6, r7, r8, r9, r10, lr} 44 .LCFI0: 45 .cfi_def_cfa_offset 32 46 .cfi_offset 4, -32 47 .cfi_offset 5, -28 48 .cfi_offset 6, -24 49 .cfi_offset 7, -20 50 .cfi_offset 8, -16 51 .cfi_offset 9, -12 52 .cfi_offset 10, -8 53 .cfi_offset 14, -4 8:calypso/misc.c **** unsigned int *end = ptr + (len/4); 54 .loc 1 8 1 view .LVU3 55 0004 0040A0E1 mov r4, r0 56 .loc 1 9 26 view .LVU4 57 0008 0360C1E3 bic r6, r1, #3 58 .LBB2: 10:calypso/misc.c **** unsigned int *tmp; 11:calypso/misc.c **** 12:calypso/misc.c **** for (tmp = ptr; tmp < end; tmp += 8) { 13:calypso/misc.c **** int i; 14:calypso/misc.c **** printf("%08X: ", (unsigned int) tmp); 59 .loc 1 14 3 view .LVU5 60 000c 74809FE5 ldr r8, .L8 15:calypso/misc.c **** 16:calypso/misc.c **** for (i = 0; i < 8; i++) 17:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 61 .loc 1 17 4 view .LVU6 62 0010 74909FE5 ldr r9, .L8+4 63 0014 74709FE5 ldr r7, .L8+8 64 .LBE2: 9:calypso/misc.c **** unsigned int *tmp; 65 .loc 1 9 16 view .LVU7 66 0018 066080E0 add r6, r0, r6 67 .LVL1: 10:calypso/misc.c **** unsigned int *tmp; 68 .loc 1 10 2 is_stmt 1 view .LVU8 12:calypso/misc.c **** int i; 69 .loc 1 12 2 view .LVU9 70 .L2: 12:calypso/misc.c **** int i; 71 .loc 1 12 22 discriminator 1 view .LVU10 72 001c 060054E1 cmp r4, r6 73 0020 0100003A bcc .L5 18:calypso/misc.c **** 19:calypso/misc.c **** putchar('\n'); 20:calypso/misc.c **** } 21:calypso/misc.c **** } 74 .loc 1 21 1 is_stmt 0 view .LVU11 75 0024 F047BDE8 pop {r4, r5, r6, r7, r8, r9, r10, lr} 76 .LCFI1: 77 .cfi_remember_state 78 .cfi_restore 14 79 .cfi_restore 10 80 .cfi_restore 9 81 .cfi_restore 8 82 .cfi_restore 7 83 .cfi_restore 6 84 .cfi_restore 5 85 .cfi_restore 4 86 .cfi_def_cfa_offset 0 87 .LVL2: 88 .loc 1 21 1 view .LVU12 89 0028 1EFF2FE1 bx lr 90 .LVL3: 91 .L5: 92 .LCFI2: 93 .cfi_restore_state 94 .LBB3: 13:calypso/misc.c **** printf("%08X: ", (unsigned int) tmp); 95 .loc 1 13 3 is_stmt 1 view .LVU13 14:calypso/misc.c **** 96 .loc 1 14 3 view .LVU14 97 002c 0410A0E1 mov r1, r4 98 0030 0800A0E1 mov r0, r8 99 0034 FEFFFFEB bl printf 100 .LVL4: 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 101 .loc 1 16 3 view .LVU15 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 102 .loc 1 16 17 view .LVU16 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 103 .loc 1 16 10 is_stmt 0 view .LVU17 104 0038 0050A0E3 mov r5, #0 17:calypso/misc.c **** 105 .loc 1 17 4 view .LVU18 106 003c 50A09FE5 ldr r10, .L8+12 107 .LVL5: 108 .L4: 17:calypso/misc.c **** 109 .loc 1 17 4 is_stmt 1 view .LVU19 110 0040 030055E3 cmp r5, #3 111 0044 051194E7 ldr r1, [r4, r5, lsl #2] 112 0048 0400001A bne .L3 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 113 .loc 1 16 23 is_stmt 0 view .LVU20 114 004c 0450A0E3 mov r5, #4 115 .LVL6: 17:calypso/misc.c **** 116 .loc 1 17 4 view .LVU21 117 0050 0920A0E1 mov r2, r9 118 0054 0700A0E1 mov r0, r7 119 0058 FEFFFFEB bl printf 120 .LVL7: 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 121 .loc 1 16 23 is_stmt 1 view .LVU22 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 122 .loc 1 16 17 view .LVU23 17:calypso/misc.c **** 123 .loc 1 17 4 view .LVU24 124 005c 101094E5 ldr r1, [r4, #16] 125 .LVL8: 126 .L3: 17:calypso/misc.c **** 127 .loc 1 17 4 is_stmt 0 discriminator 4 view .LVU25 128 0060 0A20A0E1 mov r2, r10 129 0064 0700A0E1 mov r0, r7 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 130 .loc 1 16 23 discriminator 4 view .LVU26 131 0068 015085E2 add r5, r5, #1 132 .LVL9: 17:calypso/misc.c **** 133 .loc 1 17 4 discriminator 4 view .LVU27 134 006c FEFFFFEB bl printf 135 .LVL10: 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 136 .loc 1 16 23 is_stmt 1 discriminator 4 view .LVU28 16:calypso/misc.c **** printf("%08X %s", *(tmp+i), i == 3 ? " " : ""); 137 .loc 1 16 17 discriminator 4 view .LVU29 138 0070 080055E3 cmp r5, #8 139 0074 F1FFFF1A bne .L4 19:calypso/misc.c **** } 140 .loc 1 19 3 discriminator 2 view .LVU30 141 0078 0A00A0E3 mov r0, #10 142 007c FEFFFFEB bl sercomm_putchar 143 .LVL11: 144 .LBE3: 12:calypso/misc.c **** int i; 145 .loc 1 12 33 discriminator 2 view .LVU31 146 0080 204084E2 add r4, r4, #32 147 .LVL12: 12:calypso/misc.c **** int i; 148 .loc 1 12 33 is_stmt 0 discriminator 2 view .LVU32 149 0084 E4FFFFEA b .L2 150 .L9: 151 .align 2 152 .L8: 153 0088 00000000 .word .LC0 154 008c 07000000 .word .LC1 155 0090 09000000 .word .LC2 156 0094 11000000 .word .LC3 157 .cfi_endproc 158 .LFE0: 160 .section .rodata.str1.1 161 .LC4: 162 0012 44756D70 .ascii "Dump 64kBits of internal ROM\012\000" 162 2036346B 162 42697473 162 206F6620 162 696E7465 163 .LC5: 164 0030 44756D70 .ascii "Dump 8Mbits of external flash\012\000" 164 20384D62 164 69747320 164 6F662065 164 78746572 165 .LC6: 166 004f 44756D70 .ascii "Dump 2Mbits of internal RAM\012\000" 166 20324D62 166 69747320 166 6F662069 166 6E746572 167 .LC7: 168 006c 44756D70 .ascii "Dump 2Mbits of external RAM\012\000" 168 20324D62 168 69747320 168 6F662065 168 78746572 169 .section .text.dump_mem,"ax",%progbits 170 .align 2 171 .global dump_mem 172 .syntax unified 173 .arm 175 dump_mem: 176 .LFB1: 22:calypso/misc.c **** 23:calypso/misc.c **** #define KBIT 1024 24:calypso/misc.c **** #define MBIT (1024*KBIT) 25:calypso/misc.c **** void dump_mem(void) 26:calypso/misc.c **** { 177 .loc 1 26 1 is_stmt 1 view -0 178 .cfi_startproc 179 @ Function supports interworking. 180 @ args = 0, pretend = 0, frame = 0 181 @ frame_needed = 0, uses_anonymous_args = 0 27:calypso/misc.c **** puts("Dump 64kBits of internal ROM\n"); 182 .loc 1 27 2 view .LVU34 26:calypso/misc.c **** puts("Dump 64kBits of internal ROM\n"); 183 .loc 1 26 1 is_stmt 0 view .LVU35 184 0000 10402DE9 push {r4, lr} 185 .LCFI3: 186 .cfi_def_cfa_offset 8 187 .cfi_offset 4, -8 188 .cfi_offset 14, -4 189 .loc 1 27 2 view .LVU36 190 0004 4C009FE5 ldr r0, .L12 191 0008 FEFFFFEB bl puts 192 .LVL13: 28:calypso/misc.c **** memdump_range((void *)0x03800000, 64*KBIT/8); 193 .loc 1 28 2 is_stmt 1 view .LVU37 194 000c 021AA0E3 mov r1, #8192 195 0010 0E05A0E3 mov r0, #58720256 196 0014 FEFFFFEB bl memdump_range 197 .LVL14: 29:calypso/misc.c **** 30:calypso/misc.c **** puts("Dump 8Mbits of external flash\n"); 198 .loc 1 30 2 view .LVU38 199 0018 3C009FE5 ldr r0, .L12+4 200 001c FEFFFFEB bl puts 201 .LVL15: 31:calypso/misc.c **** memdump_range((void *)0x00000000, 8*MBIT/8); 202 .loc 1 31 2 view .LVU39 203 0020 0116A0E3 mov r1, #1048576 204 0024 0000A0E3 mov r0, #0 205 0028 FEFFFFEB bl memdump_range 206 .LVL16: 32:calypso/misc.c **** 33:calypso/misc.c **** puts("Dump 2Mbits of internal RAM\n"); 207 .loc 1 33 2 view .LVU40 208 002c 2C009FE5 ldr r0, .L12+8 209 0030 FEFFFFEB bl puts 210 .LVL17: 34:calypso/misc.c **** memdump_range((void *)0x00800000, 2*MBIT/8); 211 .loc 1 34 2 view .LVU41 212 0034 0117A0E3 mov r1, #262144 213 0038 0205A0E3 mov r0, #8388608 214 003c FEFFFFEB bl memdump_range 215 .LVL18: 35:calypso/misc.c **** 36:calypso/misc.c **** puts("Dump 2Mbits of external RAM\n"); 216 .loc 1 36 2 view .LVU42 217 0040 1C009FE5 ldr r0, .L12+12 218 0044 FEFFFFEB bl puts 219 .LVL19: 37:calypso/misc.c **** memdump_range((void *)0x01000000, 2*MBIT/8); 220 .loc 1 37 2 view .LVU43 221 0048 0117A0E3 mov r1, #262144 222 004c 0104A0E3 mov r0, #16777216 38:calypso/misc.c **** } 223 .loc 1 38 1 is_stmt 0 view .LVU44 224 0050 1040BDE8 pop {r4, lr} 225 .LCFI4: 226 .cfi_restore 14 227 .cfi_restore 4 228 .cfi_def_cfa_offset 0 37:calypso/misc.c **** memdump_range((void *)0x01000000, 2*MBIT/8); 229 .loc 1 37 2 view .LVU45 230 0054 FEFFFFEA b memdump_range 231 .LVL20: 232 .L13: 233 .align 2 234 .L12: 235 0058 12000000 .word .LC4 236 005c 30000000 .word .LC5 237 0060 4F000000 .word .LC6 238 0064 6C000000 .word .LC7 239 .cfi_endproc 240 .LFE1: 242 .section .rodata.str1.1 243 .LC8: 244 0089 44657669 .ascii "Device ID code: 0x%04x\012\000" 244 63652049 244 4420636F 244 64653A20 244 30782530 245 .LC9: 246 00a1 44657669 .ascii "Device Version code: 0x%04x\012\000" 246 63652056 246 65727369 246 6F6E2063 246 6F64653A 247 .LC10: 248 00be 41524D20 .ascii "ARM ID code: 0x%04x\012\000" 248 49442063 248 6F64653A 248 20307825 248 3034780A 249 .LC11: 250 00d3 63445350 .ascii "cDSP ID code: 0x%04x\012\000" 250 20494420 250 636F6465 250 3A203078 250 25303478 251 .LC12: 252 00e9 44696520 .ascii "Die ID code: \000" 252 49442063 252 6F64653A 252 2000 253 .LC13: 254 00f7 25303878 .ascii "%08x\000" 254 00 255 .section .text.dump_dev_id,"ax",%progbits 256 .align 2 257 .global dump_dev_id 258 .syntax unified 259 .arm 261 dump_dev_id: 262 .LFB2: 39:calypso/misc.c **** 40:calypso/misc.c **** #define REG_DEV_ID_CODE 0xfffef000 41:calypso/misc.c **** #define REG_DEV_VER_CODE 0xfffef002 42:calypso/misc.c **** #define REG_DEV_ARMVER_CODE 0xfffffe00 43:calypso/misc.c **** #define REG_cDSP_ID_CODE 0xfffffe02 44:calypso/misc.c **** #define REG_DIE_ID_CODE 0xfffef010 45:calypso/misc.c **** 46:calypso/misc.c **** void dump_dev_id(void) 47:calypso/misc.c **** { 263 .loc 1 47 1 is_stmt 1 view -0 264 .cfi_startproc 265 @ Function supports interworking. 266 @ args = 0, pretend = 0, frame = 0 267 @ frame_needed = 0, uses_anonymous_args = 0 48:calypso/misc.c **** int i; 268 .loc 1 48 2 view .LVU47 49:calypso/misc.c **** 50:calypso/misc.c **** printf("Device ID code: 0x%04x\n", readw(REG_DEV_ID_CODE)); 269 .loc 1 50 2 view .LVU48 47:calypso/misc.c **** int i; 270 .loc 1 47 1 is_stmt 0 view .LVU49 271 0000 70402DE9 push {r4, r5, r6, lr} 272 .LCFI5: 273 .cfi_def_cfa_offset 16 274 .cfi_offset 4, -16 275 .cfi_offset 5, -12 276 .cfi_offset 6, -8 277 .cfi_offset 14, -4 278 .loc 1 50 37 view .LVU50 279 0004 68409FE5 ldr r4, .L16 280 .loc 1 50 2 view .LVU51 281 0008 68009FE5 ldr r0, .L16+4 282 .loc 1 50 37 view .LVU52 283 000c BF1F54E1 ldrh r1, [r4, #-255] 284 .loc 1 50 2 view .LVU53 285 0010 FEFFFFEB bl printf 286 .LVL21: 51:calypso/misc.c **** printf("Device Version code: 0x%04x\n", readw(REG_DEV_VER_CODE)); 287 .loc 1 51 2 is_stmt 1 view .LVU54 288 .loc 1 51 42 is_stmt 0 view .LVU55 289 0014 BD1F54E1 ldrh r1, [r4, #-253] 52:calypso/misc.c **** printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE)); 290 .loc 1 52 34 view .LVU56 291 0018 014CE0E3 mvn r4, #256 53:calypso/misc.c **** printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE)); 54:calypso/misc.c **** puts("Die ID code: "); 55:calypso/misc.c **** for (i = 0; i < 64/8; i += 4) 56:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 292 .loc 1 56 3 view .LVU57 293 001c 0158E0E3 mvn r5, #65536 51:calypso/misc.c **** printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE)); 294 .loc 1 51 2 view .LVU58 295 0020 54009FE5 ldr r0, .L16+8 296 0024 FEFFFFEB bl printf 297 .LVL22: 52:calypso/misc.c **** printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE)); 298 .loc 1 52 2 is_stmt 1 view .LVU59 52:calypso/misc.c **** printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE)); 299 .loc 1 52 34 is_stmt 0 view .LVU60 300 0028 BF1F54E1 ldrh r1, [r4, #-255] 52:calypso/misc.c **** printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE)); 301 .loc 1 52 2 view .LVU61 302 002c 4C009FE5 ldr r0, .L16+12 303 0030 FEFFFFEB bl printf 304 .LVL23: 53:calypso/misc.c **** printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE)); 305 .loc 1 53 2 is_stmt 1 view .LVU62 53:calypso/misc.c **** printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE)); 306 .loc 1 53 35 is_stmt 0 view .LVU63 307 0034 BD1F54E1 ldrh r1, [r4, #-253] 53:calypso/misc.c **** printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE)); 308 .loc 1 53 2 view .LVU64 309 0038 44009FE5 ldr r0, .L16+16 310 .loc 1 56 3 view .LVU65 311 003c 44409FE5 ldr r4, .L16+20 53:calypso/misc.c **** printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE)); 312 .loc 1 53 2 view .LVU66 313 0040 FEFFFFEB bl printf 314 .LVL24: 54:calypso/misc.c **** for (i = 0; i < 64/8; i += 4) 315 .loc 1 54 2 is_stmt 1 view .LVU67 316 0044 40009FE5 ldr r0, .L16+24 317 0048 FEFFFFEB bl puts 318 .LVL25: 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 319 .loc 1 55 2 view .LVU68 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 320 .loc 1 55 16 view .LVU69 321 .loc 1 56 3 view .LVU70 322 004c EF1F15E5 ldr r1, [r5, #-4079] 323 0050 0400A0E1 mov r0, r4 324 0054 FEFFFFEB bl printf 325 .LVL26: 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 326 .loc 1 55 26 view .LVU71 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 327 .loc 1 55 16 view .LVU72 328 .loc 1 56 3 view .LVU73 329 0058 EB1F15E5 ldr r1, [r5, #-4075] 330 005c 0400A0E1 mov r0, r4 331 0060 FEFFFFEB bl printf 332 .LVL27: 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 333 .loc 1 55 26 view .LVU74 55:calypso/misc.c **** printf("%08x", readl(REG_DIE_ID_CODE+i)); 334 .loc 1 55 16 view .LVU75 57:calypso/misc.c **** putchar('\n'); 335 .loc 1 57 2 view .LVU76 336 0064 0A00A0E3 mov r0, #10 337 0068 FEFFFFEB bl sercomm_putchar 338 .LVL28: 58:calypso/misc.c **** } 339 .loc 1 58 1 is_stmt 0 view .LVU77 340 006c 7040BDE8 pop {r4, r5, r6, lr} 341 .LCFI6: 342 .cfi_restore 14 343 .cfi_restore 6 344 .cfi_restore 5 345 .cfi_restore 4 346 .cfi_def_cfa_offset 0 347 0070 1EFF2FE1 bx lr 348 .L17: 349 .align 2 350 .L16: 351 0074 FFF0FEFF .word -69377 352 0078 89000000 .word .LC8 353 007c A1000000 .word .LC9 354 0080 BE000000 .word .LC10 355 0084 D3000000 .word .LC11 356 0088 F7000000 .word .LC13 357 008c E9000000 .word .LC12 358 .cfi_endproc 359 .LFE2: 361 .text 362 .Letext0: 363 .file 2 "include/stdio.h" 364 .file 3 "include/comm/sercomm_cons.h" DEFINED SYMBOLS *ABS*:00000000 misc.c /tmp/ccNJUunz.s:28 .text.memdump_range:00000000 $a /tmp/ccNJUunz.s:33 .text.memdump_range:00000000 memdump_range /tmp/ccNJUunz.s:153 .text.memdump_range:00000088 $d /tmp/ccNJUunz.s:170 .text.dump_mem:00000000 $a /tmp/ccNJUunz.s:175 .text.dump_mem:00000000 dump_mem /tmp/ccNJUunz.s:235 .text.dump_mem:00000058 $d /tmp/ccNJUunz.s:256 .text.dump_dev_id:00000000 $a /tmp/ccNJUunz.s:261 .text.dump_dev_id:00000000 dump_dev_id /tmp/ccNJUunz.s:351 .text.dump_dev_id:00000074 $d UNDEFINED SYMBOLS printf sercomm_putchar puts