-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PLIC handlers array #363
Merged
Merged
PLIC handlers array #363
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…file so it can be an enum. Updated the corresponding handlers.
The last changes were performed and the documentation in the first comment was updated. |
i modified some minor things, but i still need to modify some other small things in here and I will merge it tomorrow |
JoseCalero
reviewed
Aug 14, 2023
JuanSapriza
added a commit
to JuanSapriza/HEEPsilon
that referenced
this pull request
Oct 24, 2023
Update code from upstream repository https://github.com/esl- epfl/x-heep.git to revision df569a88fc7eaa447645262f0d3a76dd22c519f7 * enable mcycle in matadd examples (esl-epfl/x-heep#413) (Davide Schiavone) * reduce FPGA frequencz to 15MHz to accomodate FPU (esl- epfl/x-heep#404) (Davide Schiavone) * fix cv32e4 verilator waivers (esl-epfl/x-heep#402) (Davide Schiavone) * fix GPIO HAL by adding selection of GPIO domain (esl- epfl/x-heep#385) (Davide Schiavone) * update vendor fpu_ss (esl-epfl/x-heep#397) (Davide Schiavone) * fix cv32e40px fpga (esl-epfl/x-heep#396) (Davide Schiavone) * add fpu over cv-x-if in tb (esl-epfl/x-heep#392) (Davide Schiavone) * SEGGER Embedded Studio support for X-HEEP (esl-epfl/x-heep#370) (jmiranda) * Squashed commit of the following: (jmiranda) * Always use `MCU_CFG` variable in `Makefile` (esl-epfl/x-heep#391) (Michele Caon) * update cv32e40p (esl-epfl/x-heep#389) (Davide Schiavone) * update cv32e40px (esl-epfl/x-heep#388) (Davide Schiavone) * use jtag i/o from harness when not using jtag dpi (esl- epfl/x-heep#379) (Davide Schiavone) * Fix esl-epfl/x-heep#336 (esl-epfl/x-heep#364) (JuanSapriza) * add minimal configuration for mcu-gen (esl-epfl/x-heep#378) (Davide Schiavone) * PLIC handlers array (esl-epfl/x-heep#363) (JuanSapriza) * Update README.md (jmiranda) * Choose linker compiler and sim/nosim in test_all.sh (esl- epfl/x-heep#359) (JuanSapriza) * Modified the two target header files so that they add a define with a value. That is then used to modify the PRINTF logic in all apps (esl-epfl/x-heep#361) (JuanSapriza) * add obi fifo stage to/from peripherals (esl-epfl/x-heep#200) (Davide Schiavone) * added support for clock-gating external subsystems (esl- epfl/x-heep#354) (Simone Machetti) * Improved the comments on the eXtendingHEEP readme (esl- epfl/x-heep#360) (JuanSapriza) * Modified the way of realizing if an app is external or not (JuanSapriza) * add script to simulate all apps (esl-epfl/x-heep#341) (JuanSapriza) * [app] fix APPs on flash_exec (esl-epfl/x-heep#357) (Davide Schiavone) * adding attributes and mux pad parameters in mcu-gen (esl- epfl/x-heep#349) (Davide Schiavone) * change signal names in power manager to reflex polarity (esl- epfl/x-heep#352) (Simone Machetti) * fix power gating core app (esl-epfl/x-heep#355) (Davide Schiavone) * add cv32e40px (esl-epfl/x-heep#353) (Davide Schiavone) * moved fpnew in its own directory (esl-epfl/x-heep#351) (Davide Schiavone) * update cv32e40p divider (esl-epfl/x-heep#350) (Davide Schiavone) * fix external pad gen (esl-epfl/x-heep#346) (Davide Schiavone) * fix mcu-gen (esl-epfl/x-heep#345) (Davide Schiavone) * update GPIO driver (esl-epfl/x-heep#246) (Hossein Taji) * fix interleaved bus (esl-epfl/x-heep#340) (Daniel Vázquez) * fix esl-epfl/x-heep#338 (esl-epfl/x-heep#339) (Davide Schiavone) * Initialized variables to 0 inside functions. Removed printf comments (esl-epfl/x-heep#334) (JuanSapriza) * made the dma_is_ready() function non-optimizable at all. (esl- epfl/x-heep#333) (JuanSapriza) * fix SPI apps (esl-epfl/x-heep#327) (Davide Schiavone) * Include x-heep.h to all apps that need it (esl-epfl/x-heep#329) (JuanSapriza) * Added soc_ctrl-reg_top warning to waiver (esl-epfl/x-heep#326) (JuanSapriza) * fix several applications (esl-epfl/x-heep#325) (Davide Schiavone) * Tries to use cmake3. If that is not available, go ahead with cmake (esl-epfl/x-heep#323) (JuanSapriza) * Improve the timing of cv32e40x by removing the debug triggers (esl- epfl/x-heep#324) (David Mallasén Quintana) * refactoring of examples (esl-epfl/x-heep#322) (JuanSapriza) * expose internal master ports to external devices (esl- epfl/x-heep#268) (Michele Caon) Signed-off-by: Juan Sapriza <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduction
To allow for easier extension of X-HEEP (without the need of modifying the PLIC HAL), we have decided to migrate the pre-defined handlers into an array of handlers that can then be filled externally.
During the initialization of the PLIC (through the
plic_Init()
function the array is filled withChanges
This change required several minor changes:
plic_get_irq_src_type
function was adapted to fill the handlers array. Now its calledplic_reset_handlers_list
.Tests
example_dma
andexample_i2s
where tested on FPGA and worked. These are the only two HALs that include a handler right now.example_gpio_intr
was tested on FPGA flash_load and flash_exec and worked. It implements two interrupts, with two different handlers.sys_init()
function that will be developed by @JoseCalero will need to includegpio_reset_all
, as there is nogpio_init
. If that function is not called, thengpio_reset_handlers_list
needs to be called.Future work
Some further changes might be needed