# SVD-Loader for Ghidra

> Ghidra script from leveldown security that reads a CMSIS-SVD file, the XML format describing a microcontroller's memory-mapped peripherals and their registers, and applies it to firmware already loaded in Ghidra. It creates memory blocks for the peripheral address ranges, a structure type for each peripheral with its registers as fields, and a label at each peripheral base address, so register accesses can be read by peripheral and register name. It targets little-endian Arm Cortex-M devices and bundles a fork of the cmsis-svd parser ported to Ghidra's Jython.

- Type: Tool
- Targets: Firmware
- Category: Firmware tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-31
- Original resource: <https://github.com/leveldown-security/SVD-Loader-Ghidra>
- Primary source: <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/README.md>
- Catalog page: <https://awesomerea.org/resources/svd-loader-ghidra/>
- Record JSON: <https://awesomerea.org/resources/svd-loader-ghidra/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/svd-loader-ghidra/index.md)

## Requirements & limits

- The repository has no releases or tags. The reviewed master head is a 2024-02-01 merge that expanded the installation instructions; the last code changes, merged on 2023-03-04, added error handling to the script and fixed derivedFrom handling for peripherals in the bundled parser. The README names no supported Ghidra release, a 2019 commit fixed compatibility with Ghidra 9.1, and the repository has no tests.
- It runs inside Ghidra's CodeBrowser: add the cloned repository as a script directory in the Script Manager, then run SVD-Loader.py on the open program. The script is written for Ghidra's Jython environment, and it imports the bundled cmsis_svd package (version 0.4) from the same directory.
- Supply the CMSIS-SVD file for the target chip, which the README suggests taking from the cmsis-svd collection or a Keil software pack, and the firmware image already imported into Ghidra. The script stops on an SVD that declares a big-endian CPU and warns but continues when the CPU is not a Cortex-M. Peripheral ranges that conflict with existing memory blocks are reported and skipped.
- Only peripherals and registers are applied: the generated memory blocks are uninitialized, volatile and read/write, and register bit fields, enumerated values and interrupts from the SVD are not added. Results depend on the supplied SVD file; when a block or structure cannot be created, the script prints the failure and moves on.
- SVD-Loader.py is GPL-3.0; the forked cmsis_svd/ code keeps upstream cmsis-svd's Apache-2.0 license. The blog post the README links for usage details returned HTTP 404 at review.

## Primary sources

1. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/README.md>
2. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/SVD-Loader.py>
3. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/SVD-Loader.py#L84-L105>
4. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/SVD-Loader.py#L131-L201>
5. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/cmsis_svd/__init__.py>
6. <https://github.com/leveldown-security/SVD-Loader-Ghidra/blob/4b21fa54a1f516e25e959939f6e1251263c74725/LICENSE>

## More in Firmware and hardware

- [UEFI Firmware Parser](https://awesomerea.org/resources/uefi-firmware-parser/index.md) · Tool
- [ESP32 Bit Pirate](https://awesomerea.org/resources/esp32-bit-pirate/index.md) · Tool
- [Firmware Analysis Toolkit (FAT)](https://awesomerea.org/resources/attify-firmware-analysis-toolkit/index.md) · Tool
- [FujiHack](https://awesomerea.org/resources/fujihack/index.md) · Tool
- [efiSeek](https://awesomerea.org/resources/efiseek/index.md) · Tool
- [FwAnalyzer](https://awesomerea.org/resources/fwanalyzer/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
