Copyright (c) 2025 Antmicro
girdl is a plugin for Ghidra for importing peripheral device definitions from RDL, SVD, and JSON files.
To build the extension, use the provided Gradle wrapper script:
# Before you can build the plugin you will need to run the install.sh script
# to download a local copy of ghidra that the plugin is based on
./script/install.sh
# Extension zip will be created in ./dist
# To use it add it to the list found in File > Install Extensions, and restart ghidra
./gradlew buildIf you just intend to run/debug the plugin and don't care about adding it to your own Ghidra install:
# This will start ghidra with the extension pre-installed,
# this is the recommended way of starting the plugin during development
./script/ghidra.sh -rWhen you begin file analysis (with the plugin enabled), in the "Analysis Options" popup scroll to "Peripheral Registers" and specify the path to a .json, .svd, or .rdl file containing the definitions of the registers (or a directory/archive to load multiple files).
Additional help can be found under "Help > Contents > Ghidra Functionality > Peripheral Registers" and in the Documentation.
This plugin uses submodules for some of the test data, but if you don't want to use them you can still run the tests, those that depend on the submodule data will be skipped.
# If you want to clone the submodules with additional test data use:
git submodule update --init --recursive
# Run checkstyle and unit tests
./gradlew check
# Additionally, run tests of the standalone mode
./script/ci/standalone.shWant to help develop girdl? See the Development Guide.
This project is licensed under the Apache License, Version 2.0. See LICENSE.