Comments (6)
Digging through the code for the PicoRV32: https://github.com/tillitis/tillitis-key1/blob/main/hw/application_fpga/core/picorv32/rtl/picorv32.v
One can see that if the CATCH_ILLINSN option is set (it is set by default), but no IRQs are enabled (they are not enabled by default), the CPU will move to the cpu_state_trap (see line 1491). In this state, the CPU will set the trap signal (which is an external port), and then stay in the state until reset. This means that in our instance of the CPU, any illegal instructions will hang the CPU at the instruction that was decoded. Not really clear what happens if CATCH_ILLSN is not set. The CPU probably executes something. Which we don't want.
What we could do is have hardware that observes the trap signal, and if being set starts flashing the LEDs.
from tillitis-key1.
The following commit contains functionality to look at the trap signal being set. And if it is set will flash the LEDs until the device is reset. The cost of the HW functionality is 63 LCs. The design meets timing,
The design needs to be tested.
from tillitis-key1.
I've tried executing 0x0000cafe and got a nice red flash!
from tillitis-key1.
I'd say we merge this into main.
from tillitis-key1.
@secworks agreed
from tillitis-key1.
Merged.
from tillitis-key1.
Related Issues (20)
- Add a Verilog formatter
- Make testbenches self testing, and with correct exit code
- Idea: ability (but not enforced) to clear (or R/W) CDI HOT 4
- Improve community information about the project HOT 1
- Increase clock frequency of application_fpga HOT 2
- Clean up UDI and UDS implementation as well as udi_uds_patch program
- Add support for client based device reset HOT 14
- support for OpenPGP? HOT 1
- Rewrite code to reduce resource allocation HOT 1
- Update core local Makefiles to use Verilog-2005 for sim, linting
- Hardware support to access flash from CPU
- Signal to firmware not to load app from flash HOT 2
- FW: Optionally start app from flash
- CH552 fw: Support for different USB classes: CDC and HID
- Support communication to different USB endpoints
- FIDO2 device app
- Change names of ADDR_RAM_ASLR and ADDR_RAM_SCRAMBLE HOT 1
- Device app to test hold touch HOT 1
- Remove possible redundant RAM clearing functionality HOT 2
- Remove possibly redundant randomized RAM scrambling during randomised RAM fill HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tillitis-key1.