มันทำที่ระดับไฟฟ้าไม่ใช่โดยซอฟต์แวร์ การลงทะเบียนทั้งสองที่คุณได้ระบุไว้ข้างต้น LNK_CAP และ LNK_STA เป็นสิ่งที่คุณจดบันทึกไว้อย่างถูกต้องว่า 'นี่คือสิ่งที่ลิงก์สามารถใช้' และ 'สถานะปัจจุบันที่นี่' นอกจากนี้ยังมี SLT_CAP และ SLT_STA ซึ่งอาจคุ้มค่ากับการดูว่าเป็น 'ช่อง' ที่ระบุในเครื่อง
ข้อมูลจำเพาะ PCIe กำหนดเครื่องLTSSM - Link Training และ Status State ที่ระดับ PHY / อุปกรณ์นี่คือสิ่งที่กำหนดความเร็วสูงสุดทั้งอุปกรณ์ที่รองรับความกว้างลิงก์สูงสุดที่อุปกรณ์ทั้งสองรองรับและนี่ก็เป็นที่ซึ่งการกลับขั้ว / การกลับขั้วเลนถูกจัดการ (เพื่อทำให้โครงร่างง่ายขึ้นสำหรับเรา / N เพื่อสลับเป็นอื่น ๆ )
อุปกรณ์ส่งชุดสัญลักษณ์ที่เป็นที่รู้จักและมีการสั่งซื้อซึ่งกันและกันและฮาร์ดแวร์ทำงานเพิ่มขึ้นจาก 2.5GT / s มีคำสั่งเปลี่ยนความเร็วที่สามารถส่งถึงกันได้และนี่คือที่ตั้งค่าการปรับสมดุลช่องสัญญาณด้วย
หากคุณเชื่อมโยงด้วยความเร็วที่ไม่ถูกต้องอาจเป็นไปได้ว่าพอร์ตราก PCIe ถูกกำหนดค่าไม่ถูกต้องหรือมีปัญหาเรื่องความสมบูรณ์ของสัญญาณบังคับให้ใช้ความกว้างลิงก์ที่ต่ำกว่า จากประสบการณ์ของฉันถ้าคุณเชื่อมต่อที่ 5 GT / s แทนที่จะเป็น 8 GT / s นั่นเป็นเรื่องของ SI มากกว่า - การเชื่อมโยงที่ x4 8 GT / s แทนที่จะเป็น x8 8 GT / s ดูเหมือนว่าเป็นปัญหาการกำหนดค่า หรืออาจเพิ่มการ์ดลงในช่องที่ไม่รองรับความกว้าง x8
ความสามารถของรูทคอมเพล็กซ์ลงทะเบียน (Offset 04h) จะเปิดเผยความกว้างสูงสุดที่รองรับซึ่งอาจช่วยในการวินิจฉัยของคุณ IIRC, -x จะถ่ายโอนพื้นที่กำหนดค่า 4K แรก, -xx หรือ -xxx จะถ่ายโอนพื้นที่ปรับแต่ง PCIe ที่ขยายเพิ่ม หากคุณถ่ายโอนพื้นที่การตั้งค่าทั้งหมดของคุณที่นี่ / pastebin ฉันสามารถขุดมันให้คุณได้ แต่ Linux ทำหน้าที่ถอดรหัสถอดรหัสที่ลงทะเบียนได้ดี