commit | a9f69bece6f21e590c52e270cd6cb649662b4943 | [log] [tgz] |
---|---|---|
author | Eunchan Kim <eunchan@google.com> | Fri Oct 18 16:44:31 2019 -0700 |
committer | Eunchan Kim <eunchan@google.com> | Mon Oct 21 08:41:56 2019 -0700 |
tree | 632cde2b492a8f00ce31ebf1eb189306d98c0cdb | |
parent | 11894a6aa31ef5bcc83c47a920551d10d6151efe [diff] |
[reggen] Correct calculation of interrupt width Issue was found during the code review #516. Error Symptom: If a IP has interrupts having more than one bit width, the validate has a chance to not raises ERROR for the interrupt exceeding full register width (currently 32). auto interrupt register generation was added to create INTERRUPT enable/status/test registers by the tool. It does have a limitation that only supports up to 32bit interrupts in a IP. For instance, if IP has 33 interrupts, it raises an ERROR and stop generating. However, GPIO has only one interrupt signal but the width of the interrupt is 32bit width. If it is set to 33 bit width, tool doesn't create an error. as the checker only checks: ```python if len(m['interrupt_list']) > fullwidth: ``` It should check the `width` field and account it to compare with `fullwidth`. Results: Changed to sum the width of the interrupt_list ```python sum([int(x['width']) if 'width' in x else 1 for x in m['interrupt_list']) ```
This repository contains hardware, software and utilities written as part of the OpenTitan project. It is structured as monolithic repository, or “monorepo”, where all components live in one repository.
The project contains comprehensive documentation of all IPs and tools. You can either access it online or build it locally by following the steps below.
$ sudo apt install python3 python3-pip $ pip3 install --user -r python-requirements.txt
$ ./util/build_docs.py --preview
This compiles the documentation into ./opentitan-docs
and starts a local server, which allows you to access the documentation at http://127.0.0.1:5500.
Have a look at CONTRIBUTING.md for guidelines how to contribute code to this repository.
Unless otherwise noted, everything in this repository is covered by the Apache License, Version 2.0 (see LICENSE for full text).