1473c88f9SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
2473c88f9SBruce Richardson * Copyright(c) 2010-2018 Intel Corporation
3473c88f9SBruce Richardson */
4473c88f9SBruce Richardson
5473c88f9SBruce Richardson #define OPAE_HW_DEBUG
6473c88f9SBruce Richardson
7473c88f9SBruce Richardson #include "opae_hw_api.h"
8473c88f9SBruce Richardson #include "opae_debug.h"
9473c88f9SBruce Richardson
opae_manager_dump(struct opae_manager * mgr)10473c88f9SBruce Richardson void opae_manager_dump(struct opae_manager *mgr)
11473c88f9SBruce Richardson {
12473c88f9SBruce Richardson opae_log("=====%s=====\n", __func__);
13473c88f9SBruce Richardson opae_log("OPAE Manger %s\n", mgr->name);
14473c88f9SBruce Richardson opae_log("OPAE Manger OPs = %p\n", mgr->ops);
15473c88f9SBruce Richardson opae_log("OPAE Manager Private Data = %p\n", mgr->data);
16473c88f9SBruce Richardson opae_log("OPAE Adapter(parent) = %p\n", mgr->adapter);
17473c88f9SBruce Richardson opae_log("==========================\n");
18473c88f9SBruce Richardson }
19473c88f9SBruce Richardson
opae_bridge_dump(struct opae_bridge * br)20473c88f9SBruce Richardson void opae_bridge_dump(struct opae_bridge *br)
21473c88f9SBruce Richardson {
22473c88f9SBruce Richardson opae_log("=====%s=====\n", __func__);
23473c88f9SBruce Richardson opae_log("OPAE Bridge %s\n", br->name);
24473c88f9SBruce Richardson opae_log("OPAE Bridge ID = %d\n", br->id);
25473c88f9SBruce Richardson opae_log("OPAE Bridge OPs = %p\n", br->ops);
26473c88f9SBruce Richardson opae_log("OPAE Bridge Private Data = %p\n", br->data);
27473c88f9SBruce Richardson opae_log("OPAE Accelerator(under this bridge) = %p\n", br->acc);
28473c88f9SBruce Richardson opae_log("==========================\n");
29473c88f9SBruce Richardson }
30473c88f9SBruce Richardson
opae_accelerator_dump(struct opae_accelerator * acc)31473c88f9SBruce Richardson void opae_accelerator_dump(struct opae_accelerator *acc)
32473c88f9SBruce Richardson {
33473c88f9SBruce Richardson opae_log("=====%s=====\n", __func__);
34473c88f9SBruce Richardson opae_log("OPAE Accelerator %s\n", acc->name);
35473c88f9SBruce Richardson opae_log("OPAE Accelerator Index = %d\n", acc->index);
36473c88f9SBruce Richardson opae_log("OPAE Accelerator OPs = %p\n", acc->ops);
37473c88f9SBruce Richardson opae_log("OPAE Accelerator Private Data = %p\n", acc->data);
38473c88f9SBruce Richardson opae_log("OPAE Bridge (upstream) = %p\n", acc->br);
39473c88f9SBruce Richardson opae_log("OPAE Manager (upstream) = %p\n", acc->mgr);
40473c88f9SBruce Richardson opae_log("==========================\n");
41473c88f9SBruce Richardson
42473c88f9SBruce Richardson if (acc->br)
43473c88f9SBruce Richardson opae_bridge_dump(acc->br);
44473c88f9SBruce Richardson }
45473c88f9SBruce Richardson
opae_adapter_data_dump(void * data)46473c88f9SBruce Richardson static void opae_adapter_data_dump(void *data)
47473c88f9SBruce Richardson {
48473c88f9SBruce Richardson struct opae_adapter_data *d = data;
49473c88f9SBruce Richardson struct opae_adapter_data_pci *d_pci;
50473c88f9SBruce Richardson struct opae_reg_region *r;
51473c88f9SBruce Richardson int i;
52473c88f9SBruce Richardson
53473c88f9SBruce Richardson opae_log("=====%s=====\n", __func__);
54473c88f9SBruce Richardson
55473c88f9SBruce Richardson switch (d->type) {
56473c88f9SBruce Richardson case OPAE_FPGA_PCI:
57473c88f9SBruce Richardson d_pci = (struct opae_adapter_data_pci *)d;
58473c88f9SBruce Richardson
59473c88f9SBruce Richardson opae_log("OPAE Adapter Type = PCI\n");
60473c88f9SBruce Richardson opae_log("PCI Device ID: 0x%04x\n", d_pci->device_id);
61473c88f9SBruce Richardson opae_log("PCI Vendor ID: 0x%04x\n", d_pci->vendor_id);
62*4a19f891STianfei Zhang opae_log("PCI bus: 0x%04x\n", d_pci->bus);
63*4a19f891STianfei Zhang opae_log("PCI devid: 0x%04x\n", d_pci->devid);
64*4a19f891STianfei Zhang opae_log("PCI function: 0x%04x\n", d_pci->function);
65473c88f9SBruce Richardson
66473c88f9SBruce Richardson for (i = 0; i < PCI_MAX_RESOURCE; i++) {
67473c88f9SBruce Richardson r = &d_pci->region[i];
68473c88f9SBruce Richardson opae_log("PCI Bar %d: phy(%llx) len(%llx) addr(%p)\n",
69473c88f9SBruce Richardson i, (unsigned long long)r->phys_addr,
70473c88f9SBruce Richardson (unsigned long long)r->len, r->addr);
71473c88f9SBruce Richardson }
72473c88f9SBruce Richardson break;
73473c88f9SBruce Richardson case OPAE_FPGA_NET:
74473c88f9SBruce Richardson break;
75473c88f9SBruce Richardson }
76473c88f9SBruce Richardson
77473c88f9SBruce Richardson opae_log("==========================\n");
78473c88f9SBruce Richardson }
79473c88f9SBruce Richardson
opae_adapter_dump(struct opae_adapter * adapter,int verbose)80473c88f9SBruce Richardson void opae_adapter_dump(struct opae_adapter *adapter, int verbose)
81473c88f9SBruce Richardson {
82473c88f9SBruce Richardson struct opae_accelerator *acc;
83473c88f9SBruce Richardson
84473c88f9SBruce Richardson if (verbose) {
85473c88f9SBruce Richardson opae_log("=====%s=====\n", __func__);
86473c88f9SBruce Richardson opae_log("OPAE Adapter %s\n", adapter->name);
87473c88f9SBruce Richardson opae_log("OPAE Adapter OPs = %p\n", adapter->ops);
88473c88f9SBruce Richardson opae_log("OPAE Adapter Private Data = %p\n", adapter->data);
89473c88f9SBruce Richardson opae_log("OPAE Manager (downstream) = %p\n", adapter->mgr);
90473c88f9SBruce Richardson
91473c88f9SBruce Richardson if (adapter->mgr)
92473c88f9SBruce Richardson opae_manager_dump(adapter->mgr);
93473c88f9SBruce Richardson
94473c88f9SBruce Richardson opae_adapter_for_each_acc(adapter, acc)
95473c88f9SBruce Richardson opae_accelerator_dump(acc);
96473c88f9SBruce Richardson
97473c88f9SBruce Richardson if (adapter->data)
98473c88f9SBruce Richardson opae_adapter_data_dump(adapter->data);
99473c88f9SBruce Richardson
100473c88f9SBruce Richardson opae_log("==========================\n");
101473c88f9SBruce Richardson }
102473c88f9SBruce Richardson }
103