"32us-64us",
"More than 64us"
};
-
+
if (value >= 0 && value <= 7)
return latencies[value];
return "Unknown";
u32 devcap3;
u16 devctl3, devsta3;
char buf[16];
-
+
printf("Device 3\n");
-
+
if (verbose < 2)
return;
-
+
if (!config_fetch(d, where + PCI_DEV3_DEVCAP3, 4))
return;
devcap3 = get_conf_long(d, where + PCI_DEV3_DEVCAP3);
-
+
printf("\t\tDevCap3: DMWr Request Routing%c, 14-Bit Tag Completer%c, 14-Bit Tag Requester%c\n"
"\t\t\t L0p%c",
FLAG(devcap3, PCI_DEV3_DEVCAP3_DMWR_REQ),
FLAG(devcap3, PCI_DEV3_DEVCAP3_14BIT_TAG_COMP),
FLAG(devcap3, PCI_DEV3_DEVCAP3_14BIT_TAG_REQ),
FLAG(devcap3, PCI_DEV3_DEVCAP3_L0P_SUPP));
-
+
if (devcap3 & PCI_DEV3_DEVCAP3_L0P_SUPP)
printf(", Port L0p Exit Latency: %s, Retimer L0p Exit Latency: %s",
l0p_exit_latency(PCI_DEV3_DEVCAP3_PORT_L0P_EXIT(devcap3)),
l0p_exit_latency(PCI_DEV3_DEVCAP3_RETIMER_L0P_EXIT(devcap3)));
-
+
printf("\n\t\t\t UIO Mem RdWr Completer%c, UIO Mem RdWr Requester%c\n",
FLAG(devcap3, PCI_DEV3_DEVCAP3_UIO_MEM_RDWR_COMP),
FLAG(devcap3, PCI_DEV3_DEVCAP3_UIO_MEM_RDWR_REQ));
-
+
if (!config_fetch(d, where + PCI_DEV3_DEVCTL3, 2))
return;
devctl3 = get_conf_word(d, where + PCI_DEV3_DEVCTL3);
-
+
printf("\t\tDevCtl3: DMWr Requester%c, DMWr Egress Blocking%c, 14-Bit Tag Requester%c\n"
"\t\t\t L0p%c, Target Link Width: %s\n"
"\t\t\t UIO Mem RdWr Requester%c, UIO Request 256B Boundary%c\n",
link_width_str(buf, sizeof(buf), PCI_DEV3_DEVCTL3_TARGET_LINK_WIDTH(devctl3)),
FLAG(devctl3, PCI_DEV3_DEVCTL3_UIO_MEM_RDWR_REQ_EN),
FLAG(~devctl3, PCI_DEV3_DEVCTL3_UIO_REQ_256B_DIS));
-
+
if (!config_fetch(d, where + PCI_DEV3_DEVSTA3, 2))
return;
devsta3 = get_conf_word(d, where + PCI_DEV3_DEVSTA3);
-
+
printf("\t\tDevSta3: Initial Link Width: %s, Segment Captured%c, Remote L0p%c\n",
link_width_str(buf, sizeof(buf), PCI_DEV3_DEVSTA3_INIT_LINK_WIDTH(devsta3)),
FLAG(devsta3, PCI_DEV3_DEVSTA3_SEGMENT_CAPTURED),