Network
Decode a PCIe link training log (LTSSM state sequence plus TS1/TS2 ordered sets) into the full Gen1-Gen6 state timeline: negotiated speed and width, rate identifier bits, lane reversal, polarity inversion, equalization phases and Detect/Recovery restart diagnostics. Also grades a lane margining report (pcilmr CSV or key=value) against the PCIe Base Spec Rev 5.0 §8.4.2 eye minimums per generation and renders a per-lane eye-margin heatmap SVG.
Call this tool from your code in three languages.
curl -X POST 'http://127.0.0.1:3003/en/api/tools/pcie-link-training-linkstate-and-lane-margining-eye-decode' \
-H 'Content-Type: application/json' \
-d '{"logText":"t=0.00ms LTSSM: Detect.Quiet\nt=0.02ms Detect.Active\nt=0.90ms Polling.Active TS1 link=PAD lane=PAD rate=0x01 nfts=255\nt=5.20ms Polling.Configuration TS2 link=PAD lane=PAD rate=0x0F\nt=5.80ms Configuration.Linkwidth.Start TS1 link=0 lane=0 rate=0x0F\nt=6.10ms Configuration.Linkwidth.Accept TS1 link=0 lane=0\nt=6.40ms Configuration.Lanenum.Wait TS1 link=0 lane=0\nt=6.45ms Configuration.Lanenum.Wait TS1 link=0 lane=1\nt=6.50ms Configuration.Lanenum.Wait TS1 link=0 lane=2\nt=6.55ms Configuration.Lanenum.Wait TS1 link=0 lane=3\nt=6.70ms Configuration.Lanenum.Accept TS1 link=0 lane=0\nt=6.75ms Configuration.Lanenum.Accept TS1 link=0 lane=1\nt=6.80ms Configuration.Lanenum.Accept TS1 link=0 lane=2\nt=6.85ms Configuration.Lanenum.Accept TS1 link=0 lane=3\nt=7.00ms Configuration.Complete TS2 link=0 lane=3 rate=0x1F\nt=7.30ms Configuration.Idle\nt=7.40ms L0\nt=8.20ms Recovery.RcvrLock TS1 link=0 lane=3 rate=0x1F speed-change=1\nt=8.50ms Recovery.Speed\nt=9.00ms Recovery.RcvrCfg TS2 link=0 lane=3 rate=0x1F\nt=9.20ms Recovery.Equalization.Phase1\nt=9.60ms Recovery.Equalization.Phase2 TS1 link=0 lane=3 ec=01\nt=10.10ms Recovery.Equalization.Phase3 TS1 link=0 lane=3 ec=10\nt=10.60ms Recovery.Idle\nt=10.70ms L0","pciGen":"auto","showEyeHeatmap":true}'Send a POST request with your inputs as JSON. File parameters require a separate upload first.
POST http://127.0.0.1:3003/en/api/tools/pcie-link-training-linkstate-and-lane-margining-eye-decode| Name | Type | Required | Description |
|---|---|---|---|
| logText | textarea | Yes | — |
| pciGen | select | No | — |
| showEyeHeatmap | checkbox | No | — |
HTML result
{
"result": "<div>Processed HTML content</div>",
"error": "Error message (optional)",
"message": "Notification message (optional)",
"metadata": {
"key": "value"
}
}Add this tool to your Model Context Protocol server so AI agents can list and call it.
Add this block to your MCP client configuration:
{
"mcpServers": {
"elysiatools-pcie-link-training-linkstate-and-lane-margining-eye-decode": {
"name": "pcie-link-training-linkstate-and-lane-margining-eye-decode",
"description": "Decode a PCIe link training log (LTSSM state sequence plus TS1/TS2 ordered sets) into the full Gen1-Gen6 state timeline: negotiated speed and width, rate identifier bits, lane reversal, polarity inversion, equalization phases and Detect/Recovery restart diagnostics. Also grades a lane margining report (pcilmr CSV or key=value) against the PCIe Base Spec Rev 5.0 §8.4.2 eye minimums per generation and renders a per-lane eye-margin heatmap SVG.",
"baseUrl": "http://127.0.0.1:3003/mcp/sse?toolId=pcie-link-training-linkstate-and-lane-margining-eye-decode",
"command": "",
"args": [],
"env": {},
"isActive": true,
"type": "sse"
}
}
}After connecting to the SSE endpoint, list the exposed tools:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}Invoke the tool by its id, passing arguments built from its parameters:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "pcie-link-training-linkstate-and-lane-margining-eye-decode",
"arguments": {
"logText": "t=0.00ms LTSSM: Detect.Quiet\nt=0.02ms Detect.Active\nt=0.90ms Polling.Active TS1 link=PAD lane=PAD rate=0x01 nfts=255\nt=5.20ms Polling.Configuration TS2 link=PAD lane=PAD rate=0x0F\nt=5.80ms Configuration.Linkwidth.Start TS1 link=0 lane=0 rate=0x0F\nt=6.10ms Configuration.Linkwidth.Accept TS1 link=0 lane=0\nt=6.40ms Configuration.Lanenum.Wait TS1 link=0 lane=0\nt=6.45ms Configuration.Lanenum.Wait TS1 link=0 lane=1\nt=6.50ms Configuration.Lanenum.Wait TS1 link=0 lane=2\nt=6.55ms Configuration.Lanenum.Wait TS1 link=0 lane=3\nt=6.70ms Configuration.Lanenum.Accept TS1 link=0 lane=0\nt=6.75ms Configuration.Lanenum.Accept TS1 link=0 lane=1\nt=6.80ms Configuration.Lanenum.Accept TS1 link=0 lane=2\nt=6.85ms Configuration.Lanenum.Accept TS1 link=0 lane=3\nt=7.00ms Configuration.Complete TS2 link=0 lane=3 rate=0x1F\nt=7.30ms Configuration.Idle\nt=7.40ms L0\nt=8.20ms Recovery.RcvrLock TS1 link=0 lane=3 rate=0x1F speed-change=1\nt=8.50ms Recovery.Speed\nt=9.00ms Recovery.RcvrCfg TS2 link=0 lane=3 rate=0x1F\nt=9.20ms Recovery.Equalization.Phase1\nt=9.60ms Recovery.Equalization.Phase2 TS1 link=0 lane=3 ec=01\nt=10.10ms Recovery.Equalization.Phase3 TS1 link=0 lane=3 ec=10\nt=10.60ms Recovery.Idle\nt=10.70ms L0",
"pciGen": "auto",
"showEyeHeatmap": true
}
}
}Questions or issues? Contact [email protected]