1 /* SPDX-License-Identifier: GPL-2.0-only */
2
3 #include <console/console.h>
4 #include <device/mmio.h>
5 #include <soc/addressmap.h>
6 #include <soc/tracker.h>
7 #include <soc/tracker_common.h>
8
tracker_setup(void)9 __weak void tracker_setup(void)
10 {
11 /* do nothing. */
12 }
13
tracker_dump_data(void)14 static void tracker_dump_data(void)
15 {
16 int i, j, k;
17 int size;
18 uintptr_t reg;
19 struct tracker *tra;
20
21 for (j = 0; j < TRACKER_NUM; j++) {
22 tra = &tracker_data[j];
23
24 if (!(read32((void *)(tra->base_addr)) & tra->timeout))
25 continue;
26
27 printk(BIOS_INFO, "**Dump %s debug register start**\n", tra->str);
28 for (k = 0; k < 2; k++) {
29 size = 2 * tra->entry;
30 for (i = 0; i < size; i++) {
31 reg = tra->base_addr + tra->offset[k] + i * 4;
32 printk(BIOS_INFO, "%#lx:%#x,", reg, read32((void *)reg));
33
34 if (i % 4 == 3 || i == size - 1)
35 printk(BIOS_INFO, "\n");
36 }
37 }
38
39 printk(BIOS_INFO, "**Dump %s debug register end**\n", tra->str);
40 }
41 }
42
bustracker_init(void)43 void bustracker_init(void)
44 {
45 tracker_dump_data();
46 tracker_setup();
47 }
48