1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2010-2018 Intel Corporation
*/
#define OPAE_HW_DEBUG
#include "opae_hw_api.h"
#include "opae_debug.h"
void opae_manager_dump(struct opae_manager *mgr)
{
opae_log("=====%s=====\n", __func__);
opae_log("OPAE Manger %s\n", mgr->name);
opae_log("OPAE Manger OPs = %p\n", mgr->ops);
opae_log("OPAE Manager Private Data = %p\n", mgr->data);
opae_log("OPAE Adapter(parent) = %p\n", mgr->adapter);
opae_log("==========================\n");
}
void opae_bridge_dump(struct opae_bridge *br)
{
opae_log("=====%s=====\n", __func__);
opae_log("OPAE Bridge %s\n", br->name);
opae_log("OPAE Bridge ID = %d\n", br->id);
opae_log("OPAE Bridge OPs = %p\n", br->ops);
opae_log("OPAE Bridge Private Data = %p\n", br->data);
opae_log("OPAE Accelerator(under this bridge) = %p\n", br->acc);
opae_log("==========================\n");
}
void opae_accelerator_dump(struct opae_accelerator *acc)
{
opae_log("=====%s=====\n", __func__);
opae_log("OPAE Accelerator %s\n", acc->name);
opae_log("OPAE Accelerator Index = %d\n", acc->index);
opae_log("OPAE Accelerator OPs = %p\n", acc->ops);
opae_log("OPAE Accelerator Private Data = %p\n", acc->data);
opae_log("OPAE Bridge (upstream) = %p\n", acc->br);
opae_log("OPAE Manager (upstream) = %p\n", acc->mgr);
opae_log("==========================\n");
if (acc->br)
opae_bridge_dump(acc->br);
}
static void opae_adapter_data_dump(void *data)
{
struct opae_adapter_data *d = data;
struct opae_adapter_data_pci *d_pci;
struct opae_reg_region *r;
int i;
opae_log("=====%s=====\n", __func__);
switch (d->type) {
case OPAE_FPGA_PCI:
d_pci = (struct opae_adapter_data_pci *)d;
opae_log("OPAE Adapter Type = PCI\n");
opae_log("PCI Device ID: 0x%04x\n", d_pci->device_id);
opae_log("PCI Vendor ID: 0x%04x\n", d_pci->vendor_id);
for (i = 0; i < PCI_MAX_RESOURCE; i++) {
r = &d_pci->region[i];
opae_log("PCI Bar %d: phy(%llx) len(%llx) addr(%p)\n",
i, (unsigned long long)r->phys_addr,
(unsigned long long)r->len, r->addr);
}
break;
case OPAE_FPGA_NET:
break;
}
opae_log("==========================\n");
}
void opae_adapter_dump(struct opae_adapter *adapter, int verbose)
{
struct opae_accelerator *acc;
opae_log("=====%s=====\n", __func__);
opae_log("OPAE Adapter %s\n", adapter->name);
opae_log("OPAE Adapter OPs = %p\n", adapter->ops);
opae_log("OPAE Adapter Private Data = %p\n", adapter->data);
opae_log("OPAE Manager (downstream) = %p\n", adapter->mgr);
if (verbose) {
if (adapter->mgr)
opae_manager_dump(adapter->mgr);
opae_adapter_for_each_acc(adapter, acc)
opae_accelerator_dump(acc);
if (adapter->data)
opae_adapter_data_dump(adapter->data);
}
opae_log("==========================\n");
}
|