XSVD - a proposal for defining the peripheral registers

328 views
Skip to first unread message

Liviu Ionescu

unread,
Nov 13, 2017, 6:55:57 AM11/13/17
to RISC-V SW Dev, Yunsup Lee, Drew Barbier
The projects generated by the new SiFive C/C++ Project wizard include some proposals on how to better structure the RISC-V device definitions.

One such proposal is the use of a JSON file with the definitions of the peripheral registers.

An example of such a file is the fe310-xsvd.json, with the definitions for the SiFive FE310-G000 device:

https://github.com/micro-os-plus/sifive-devices-xpack/blob/xpack/xsvd/fe310-xsvd.json


This file will not only be used during a debug session to display the peripheral registers, similar to the ARM devices:

https://gnu-mcu-eclipse.github.io/debug/peripheral-registers/#the-peripherals-view

but it was already used to automatically generate the fe310/device-peripherals.h file, for example:

https://github.com/micro-os-plus/sifive-devices-xpack/blob/xpack/include/sifive-devices/fe310/device-peripherals.h


The current specs for the XSVD format are:

https://xpack.github.io/xsvd/files/xsvd-json/

The command line tool used to manage xsvd files is:

https://www.npmjs.com/package/xsvd



XSVD is part of the xPack project (https://xpack.github.io), with the documentation web as work in progress.


Any feedback will be highly appreciated.


Liviu


p.s. Disclaimer: for the moment `xsvd` is in pre-release status, error processing is schematic, and should not be used yet in production environments.



Reply all
Reply to author
Forward
0 new messages