Skip to content

antmicro/girdl

Repository files navigation

girdl

Copyright (c) 2025 Antmicro

girdl-logo-color

girdl is a plugin for Ghidra for importing peripheral device definitions from RDL, SVD, and JSON files.

Building

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 build

If 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 -r

Usage

When 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.

Testing

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.sh

Development

Want to help develop girdl? See the Development Guide.

License

This project is licensed under the Apache License, Version 2.0. See LICENSE.

About

A plugin for Ghidra for automatic analysis of the binding of individual registers and their layouts.

Topics

Resources

License

Stars

Watchers

Forks

Languages