diff --git a/pkgs/development/python-modules/peakrdl-cheader/default.nix b/pkgs/development/python-modules/peakrdl-cheader/default.nix new file mode 100644 index 000000000000..f3c6287ee576 --- /dev/null +++ b/pkgs/development/python-modules/peakrdl-cheader/default.nix @@ -0,0 +1,45 @@ +{ + buildPythonPackage, + fetchFromGitHub, + gitUpdater, + jinja2, + lib, + peakrdl, + setuptools, + setuptools-scm, + systemrdl-compiler, +}: + +buildPythonPackage rec { + pname = "peakrdl-cheader"; + version = "1.0.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "PeakRDL-cheader"; + tag = "v${version}"; + hash = "sha256-1LxKGCea5ClKmrArl+CM6ZRpiTh2ThbYSe9TYYHjRlY="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + jinja2 + peakrdl + systemrdl-compiler + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "C Header generator for a SystemRDL definition"; + homepage = "https://peakrdl-cheader.readthedocs.io/"; + license = lib.licenses.lgpl3; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/peakrdl-ipxact/default.nix b/pkgs/development/python-modules/peakrdl-ipxact/default.nix new file mode 100644 index 000000000000..f8fdd217bc75 --- /dev/null +++ b/pkgs/development/python-modules/peakrdl-ipxact/default.nix @@ -0,0 +1,43 @@ +{ + buildPythonPackage, + fetchFromGitHub, + gitUpdater, + lib, + peakrdl, + setuptools, + setuptools-scm, + systemrdl-compiler, +}: + +buildPythonPackage rec { + pname = "peakrdl-ipxact"; + version = "3.5.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "PeakRDL-ipxact"; + tag = "v${version}"; + hash = "sha256-GFHgIyK82dt+/t0XbDdk61q0DXUOabxtjlhZhgacUVA="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + peakrdl + systemrdl-compiler + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "Import and export IP-XACT XML register models"; + homepage = "http://peakrdl-ipxact.readthedocs.io/"; + license = lib.licenses.lgpl3; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/peakrdl-markdown/default.nix b/pkgs/development/python-modules/peakrdl-markdown/default.nix new file mode 100644 index 000000000000..eb59158f6ad8 --- /dev/null +++ b/pkgs/development/python-modules/peakrdl-markdown/default.nix @@ -0,0 +1,39 @@ +{ + buildPythonPackage, + fetchFromGitHub, + gitUpdater, + lib, + peakrdl, + py-markdown-table, + poetry-core, +}: + +buildPythonPackage rec { + pname = "peakrdl-markdown"; + version = "1.0.3"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "PeakRDL-markdown"; + tag = "v${version}"; + hash = "sha256-Dt8FxnvvXY9nVhFehIcfSC9mFbbEzEuaVnBMu032dug="; + }; + + build-system = [ poetry-core ]; + + dependencies = [ + peakrdl + py-markdown-table + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "Export Markdown description from the systemrdl-compiler register model"; + homepage = "https://peakrdl-markdown.readthedocs.io/"; + license = lib.licenses.gpl3Only; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/peakrdl-regblock/default.nix b/pkgs/development/python-modules/peakrdl-regblock/default.nix new file mode 100644 index 000000000000..118a967811c1 --- /dev/null +++ b/pkgs/development/python-modules/peakrdl-regblock/default.nix @@ -0,0 +1,45 @@ +{ + buildPythonPackage, + fetchFromGitHub, + gitUpdater, + jinja2, + lib, + peakrdl, + setuptools, + setuptools-scm, + systemrdl-compiler, +}: + +buildPythonPackage rec { + pname = "peakrdl-regblock"; + version = "1.2.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "PeakRDL-regblock"; + tag = "v${version}"; + hash = "sha256-hVHqdmXsxOoqpo84KPaK+74VPVsl61QyB5b7lFlmA0o="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + jinja2 + peakrdl + systemrdl-compiler + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "Generate SystemVerilog RTL that implements a register block from compiled SystemRDL input"; + homepage = "http://peakrdl-regblock.readthedocs.io/"; + license = lib.licenses.lgpl3; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/peakrdl-rust/default.nix b/pkgs/development/python-modules/peakrdl-rust/default.nix new file mode 100644 index 000000000000..ecacee72a6a2 --- /dev/null +++ b/pkgs/development/python-modules/peakrdl-rust/default.nix @@ -0,0 +1,40 @@ +{ + buildPythonPackage, + case-converter, + fetchFromGitHub, + jinja2, + lib, + peakrdl, + systemrdl-compiler, + uv-build, +}: + +buildPythonPackage rec { + pname = "peakrdl-rust"; + version = "0.4.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "darsor"; + repo = "PeakRDL-rust"; + tag = "v${version}"; + hash = "sha256-MD0iMdNFvu/V/yWnivJ9cbE0/d77bsoCVScpMMGMG/I="; + }; + + build-system = [ uv-build ]; + + dependencies = [ + case-converter + jinja2 + peakrdl + systemrdl-compiler + ]; + + meta = { + description = "Generate a Rust crate from SystemRDL for accessing control/status registers"; + homepage = "https://peakrdl-rust.readthedocs.io/"; + license = lib.licenses.lgpl21Only; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/peakrdl/default.nix b/pkgs/development/python-modules/peakrdl/default.nix new file mode 100644 index 000000000000..afa16f433a2b --- /dev/null +++ b/pkgs/development/python-modules/peakrdl/default.nix @@ -0,0 +1,45 @@ +{ + buildPythonPackage, + fetchFromGitHub, + gitUpdater, + lib, + setuptools, + setuptools-scm, + systemrdl-compiler, + typing-extensions, +}: + +buildPythonPackage rec { + pname = "peakrdl"; + version = "1.5.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "PeakRDL"; + tag = "v${version}"; + hash = "sha256-SqLhOzx0gUVG8k4ikNbx8p1vO/ZqTQ/KAtidRWM2SZI="; + }; + sourceRoot = "${src.name}/peakrdl-cli"; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + systemrdl-compiler + typing-extensions + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "Control and status register code generator toolchain"; + homepage = "https://peakrdl.readthedocs.io/"; + license = lib.licenses.lgpl3; + maintainers = [ lib.maintainers.jmbaur ]; + mainProgram = "peakrdl"; + }; +} diff --git a/pkgs/development/python-modules/py-markdown-table/default.nix b/pkgs/development/python-modules/py-markdown-table/default.nix new file mode 100644 index 000000000000..33200d84320f --- /dev/null +++ b/pkgs/development/python-modules/py-markdown-table/default.nix @@ -0,0 +1,29 @@ +{ + buildPythonPackage, + fetchFromGitHub, + lib, + poetry-core, +}: + +buildPythonPackage rec { + pname = "py-markdown-table"; + version = "1.3.0"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "hvalev"; + repo = "py-markdown-table"; + tag = "v${version}"; + hash = "sha256-BZDyBDW6Ok9WUb5FEAevVqkYM1S12pvkUCGbZ0XxxV4="; + }; + + build-system = [ poetry-core ]; + + meta = { + description = "Tiny python library with zero dependencies which generates formatted multiline tables in markdown"; + homepage = "https://github.com/hvalev/py-markdown-table"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/development/python-modules/systemrdl-compiler/default.nix b/pkgs/development/python-modules/systemrdl-compiler/default.nix new file mode 100644 index 000000000000..70430c4777b2 --- /dev/null +++ b/pkgs/development/python-modules/systemrdl-compiler/default.nix @@ -0,0 +1,45 @@ +{ + antlr4-python3-runtime, + buildPythonPackage, + colorama, + fetchFromGitHub, + gitUpdater, + lib, + markdown, + setuptools, + setuptools-scm, +}: + +buildPythonPackage rec { + pname = "systemrdl-compiler"; + version = "1.32.1"; + + pyproject = true; + + src = fetchFromGitHub { + owner = "SystemRDL"; + repo = "systemrdl-compiler"; + tag = "v${version}"; + hash = "sha256-BTONBzNE9GfBeallS6P4E1ukPs2EzFa31/SpxEjXmKw="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + antlr4-python3-runtime + colorama + markdown + ]; + + passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + + meta = { + description = "SystemRDL 2.0 language compiler front-end"; + homepage = "https://systemrdl-compiler.readthedocs.io/en/stable/"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.jmbaur ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cc2b67eca4f2..59cd56ae87ec 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11870,6 +11870,18 @@ self: super: with self; { peacasso = callPackage ../development/python-modules/peacasso { }; + peakrdl = callPackage ../development/python-modules/peakrdl { }; + + peakrdl-cheader = callPackage ../development/python-modules/peakrdl-cheader { }; + + peakrdl-ipxact = callPackage ../development/python-modules/peakrdl-ipxact { }; + + peakrdl-markdown = callPackage ../development/python-modules/peakrdl-markdown { }; + + peakrdl-regblock = callPackage ../development/python-modules/peakrdl-regblock { }; + + peakrdl-rust = callPackage ../development/python-modules/peakrdl-rust { }; + peakutils = callPackage ../development/python-modules/peakutils { }; peaqevcore = callPackage ../development/python-modules/peaqevcore { }; @@ -12722,6 +12734,8 @@ self: super: with self; { py-madvr2 = callPackage ../development/python-modules/py-madvr2 { }; + py-markdown-table = callPackage ../development/python-modules/py-markdown-table { }; + py-melissa-climate = callPackage ../development/python-modules/py-melissa-climate { }; py-multiaddr = callPackage ../development/python-modules/py-multiaddr { }; @@ -18341,6 +18355,8 @@ self: super: with self; { systemdunitparser = callPackage ../development/python-modules/systemdunitparser { }; + systemrdl-compiler = callPackage ../development/python-modules/systemrdl-compiler { }; + sysv-ipc = callPackage ../development/python-modules/sysv-ipc { }; t61codec = callPackage ../development/python-modules/t61codec { };