[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] CMSIS SVD based peripheral definitions

From: Liviu Ionescu
Subject: Re: [Qemu-devel] CMSIS SVD based peripheral definitions
Date: Mon, 9 Jan 2017 18:51:01 +0200

> On 9 Jan 2017, at 18:16, Peter Maydell <address@hidden> wrote:
> On 28 December 2016 at 18:49, Liviu Ionescu <address@hidden> wrote:
>> The latest release of GNU ARM Eclipse QEMU (2.8.0-20161227) introduced
>> a new technology for implementing peripherals, based on standard
>> CMSIS SVD definitions
>> (http://www.keil.com/pack/doc/CMSIS/SVD/html/index.html).
>> The SVD files are large XML files produced by the silicon vendors,
>> and generally are considered the final hardware reference for
>> the Cortex-M devices, so they are expected to provide the most
>> accurate peripheral emulation.
> This certainly seems like a good idea in principle, if there's
> enough information in the SVD files to reliably create a
> complete board model.

the general answer is that this information should be there.

in practice, it mostly is. however, the SVD specs are quite lax and each vendor 
understands them slightly differently.

to compensate for these differences, my workflow added an extra step of 
patching the original content. the patch files are minimal compared to the 
original files, and the effort to create them is perfectly acceptable.

> The obvious issue that comes to mind
> is licensing, though -- what licenses are the SVD files under,
> and would those be compatible with QEMU's GPLv2 ?

that's a common question with cmsis files. I could not find any specific 
license applying to svd files, so, since these files are provided as part of 
the arm cmsis packs, I would consider the generic license, which, starting with 
the latest cmsis release, was changed to Apache.

anyway, in my opinion, after experimenting both with classical (switch based) 
implementations and table based (peripheral/register/bitfield) implementations, 
if I would have to deal with a device which does not have the vendor SVD files, 
I would probably prefer to write the JSON file by hand and allow the automated 
tools to handle the rest.

actually I'll have to do this when I'll rewrite the Cortex-M system 
peripherals, not included in the vendor provided SVDs.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]