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