# pyPCIe: Simple Python Module to access PCIe Endpoint BARs
pyPCIe provides a quick way to read/write registers in PCIe Base
Address Register (BAR) regions.
pyPCIe `mmap`s PCIe device BARs via the `resourceX` files in
`/sys/bus/pci/devices/[bus_id]` for read/write and provides functions
for 32 bit read/write requests.
*Note: the `resourceX` files in sysfs are typically only accessible as
root. The python scripts using pyPCIe might need to be run as root.*
## Example
```python
from pypcie import Device
# Bind to PCI device at "0000:03:00.0"
d = Device("0000:03:00.0")
# Access BAR 0
bar = d.bar[0]
# write 0xdeadbeef to BAR 0, offset 0x1000
bar.write(0x1000, 0xdeadbeef)
# read BAR 0, offset 0x1004
ret = bar.read(0x1004)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/heikoengel/pyPCIe",
"name": "pyPCIe",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,pcie",
"author": "Heiko Engel",
"author_email": "<heikoengel@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/e8/f4/a69b4d53ac2306e8b3b4ad964b8a85bc136a65e6a57be061670c6f440ba7/pyPCIe-0.1.1.tar.gz",
"platform": null,
"description": "# pyPCIe: Simple Python Module to access PCIe Endpoint BARs\n\npyPCIe provides a quick way to read/write registers in PCIe Base\nAddress Register (BAR) regions.\n\npyPCIe `mmap`s PCIe device BARs via the `resourceX` files in\n`/sys/bus/pci/devices/[bus_id]` for read/write and provides functions\nfor 32 bit read/write requests.\n\n*Note: the `resourceX` files in sysfs are typically only accessible as\nroot. The python scripts using pyPCIe might need to be run as root.*\n\n## Example\n\n```python\nfrom pypcie import Device\n\n# Bind to PCI device at \"0000:03:00.0\"\nd = Device(\"0000:03:00.0\")\n# Access BAR 0\nbar = d.bar[0]\n\n# write 0xdeadbeef to BAR 0, offset 0x1000\nbar.write(0x1000, 0xdeadbeef)\n\n# read BAR 0, offset 0x1004\nret = bar.read(0x1004)\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "Simple Python module to access PCIe devices",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/heikoengel/pyPCIe"
},
"split_keywords": [
"python",
"pcie"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "87e4b11850dac716d70c194d233e9c9cb4d8d4188190d30ad5353051b547452c",
"md5": "91f76d66628d58dc3c0d2843457d93f9",
"sha256": "68de8edd1077a87a76eab2f8c4de79fa82ec8c44747c3872f9adba17507c4f3d"
},
"downloads": -1,
"filename": "pyPCIe-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "91f76d66628d58dc3c0d2843457d93f9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 4449,
"upload_time": "2023-05-23T14:38:37",
"upload_time_iso_8601": "2023-05-23T14:38:37.974167Z",
"url": "https://files.pythonhosted.org/packages/87/e4/b11850dac716d70c194d233e9c9cb4d8d4188190d30ad5353051b547452c/pyPCIe-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e8f4a69b4d53ac2306e8b3b4ad964b8a85bc136a65e6a57be061670c6f440ba7",
"md5": "92bfbc5d80fb310c8c04e68cbfe8cb72",
"sha256": "85d9aa64821c8de62db165a469370e9ac279a8ec44725b933ede1bfbffe44f22"
},
"downloads": -1,
"filename": "pyPCIe-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "92bfbc5d80fb310c8c04e68cbfe8cb72",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3921,
"upload_time": "2023-05-23T14:38:40",
"upload_time_iso_8601": "2023-05-23T14:38:40.455210Z",
"url": "https://files.pythonhosted.org/packages/e8/f4/a69b4d53ac2306e8b3b4ad964b8a85bc136a65e6a57be061670c6f440ba7/pyPCIe-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-23 14:38:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "heikoengel",
"github_project": "pyPCIe",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pypcie"
}