sancus-tee / sancus-core

Minimal OpenMSP430 hardware extensions for isolation and attestation
BSD 3-Clause "New" or "Revised" License
20 stars 13 forks source link

DMA interface and DMA controller extension for Sancus #14

Closed S3rg7o closed 4 years ago

S3rg7o commented 5 years ago

This is the Sancus core supporting DMA controller.; amongst all the changes the most important to be underlined are: 1) the ones in the memory backbone, true arbiter of the DMA interface; it was necessary to implement some control logic for correctly handling the external memory requests with the right hierarchy ( EXT_MEM > EU > FE); a modification of the upstream openMSP430 memory backbone was needed to allow the execution unit to write the PMEM (line 276 of omsp_mem_backbone.v).

2) A change in the omsp_synch_reset module, at the end of the file, where I commented a `ifdef directive on "__SANCUS_SIM" since it was the cause of simulation glitches for the reset signal.

3) Finally, the folder "core/rtl/dma_controller/rtl" is devoted for the verilog code of the controller and its constituent modules.

4) A simple MMIO device is skecthed and programmed to perform both read and write access through DMA interface. Results are shown in the main page (README.md file has been conveniently modified to show simulations results). Simulation program can be found at "core/sim/rtl_sim/src/dma_dev_rd_wr.s43"

jovanbulck commented 4 years ago

thanks again! minimized parts (without DMA controller, can be maintained separately) have been merged into upstream sancus-core via #17