Initial import of OsmocomBB into git repository
[osmocom-bb.git] / src / target / firmware / calypso / misc.c
1
2 #include <stdint.h>
3 #include <stdio.h>
4 #include <memory.h>
5
6 /* dump a memory range */
7 void memdump_range(unsigned int *ptr, unsigned int len)
8 {
9         unsigned int *end = ptr + (len/4);
10         unsigned int *tmp;
11
12         for (tmp = ptr; tmp < end; tmp += 8) {
13                 int i;
14                 printf("%08X: ", (unsigned int) tmp);
15
16                 for (i = 0; i < 8; i++)
17                         printf("%08X %s", *(tmp+i), i == 3 ? " " : "");
18
19                 putchar('\n');
20         }
21 }
22
23 #define KBIT 1024
24 #define MBIT (1024*KBIT)
25 void dump_mem(void)
26 {
27         puts("Dump 64kBits of internal ROM\n");
28         memdump_range((void *)0x03800000, 64*KBIT/8);
29
30         puts("Dump 8Mbits of external flash\n");
31         memdump_range((void *)0x00000000, 8*MBIT/8);
32
33         puts("Dump 2Mbits of internal RAM\n");
34         memdump_range((void *)0x00800000, 2*MBIT/8);
35
36         puts("Dump 2Mbits of external RAM\n");
37         memdump_range((void *)0x01000000, 2*MBIT/8);
38 }
39
40 #define REG_DEV_ID_CODE         0xfffef000
41 #define REG_DEV_VER_CODE        0xfffef002
42 #define REG_DEV_ARMVER_CODE     0xfffffe00
43 #define REG_cDSP_ID_CODE        0xfffffe02
44 #define REG_DIE_ID_CODE         0xfffef010
45
46 void dump_dev_id(void)
47 {
48         int i;
49
50         printf("Device ID code: 0x%04x\n", readw(REG_DEV_ID_CODE));
51         printf("Device Version code: 0x%04x\n", readw(REG_DEV_VER_CODE));
52         printf("ARM ID code: 0x%04x\n", readw(REG_DEV_ARMVER_CODE));
53         printf("cDSP ID code: 0x%04x\n", readw(REG_cDSP_ID_CODE));
54         puts("Die ID code: ");
55         for (i = 0; i < 64/8; i += 4)
56                 printf("%08x", readl(REG_DIE_ID_CODE+i));
57         putchar('\n');
58 }
59
60