A single-file, interactive HTML5 application for visualizing and exploring PCIe Configuration Space headers, Capabilities, and Extended Capabilities.
We welcome contributions to add more PCIe Capabilities and Extended Capabilities!
All data is defined in the structures array within index.html. To add a new capability, follow these steps:
- Open
index.htmlin your text editor. - Locate the
structuresarray in the JavaScript section. - Append a new object to the array following this template:
{
id: "unique_id_for_capability", // e.g., "ltr_extcap"
type: "Cap" | "ExtCap", // "Cap" for PCI Capabilities, "ExtCap" for Extended
name: "Capability Name", // e.g., "Latency Tolerance Reporting"
description: "Brief description from the spec.",
rows: [
// Define the layout of registers (visual map)
{
offset: "00h", // Relative offset within the capability
fields: [
// Define fields within this row (total width must be <= 32 bits)
{ id: "field_id", label: "Field Label", range: "[31:0]" }
]
},
// Add more rows as needed...
],
bitfields: {
// Define detailed bit descriptions for each field defined above
field_id: {
name: "Field Name",
offset: "00h",
range: "[31:0]",
bits: [
// Define individual bits or ranges
{
range: "[0]",
title: "Bit Name",
description: "Description of what this bit does.",
values: { "0": "Meaning of 0", "1": "Meaning of 1" } // Optional value meanings
},
{
range: "[31:1]",
title: "Reserved",
description: "Reserved."
}
]
}
}
}- Save and Refresh: Open
index.htmlin your browser to verify the new capability appears in the list and renders correctly.
We encourage you to contribute your changes back to the master branch!
- Fork the repository on GitHub.
- Clone your fork locally.
- Create a new branch for your feature (e.g.,
git checkout -b add-ltr-capability). - Commit your changes (e.g.,
git commit -m "feat: Add LTR Extended Capability"). - Push to your branch (e.g.,
git push origin add-ltr-capability). - Open a Pull Request against the
masterbranch of the original repository.
Please ensure your code follows the existing style and that all comments are in English.
Please ensure all comments and user-facing text are in English.
This project is licensed under the Mozilla Public License 2.0 (MPL 2.0). See the LICENSE file for details.