Merge branch 'rahix/lifecycle'
This changeset implements a proper lifecycle of the core 1 payload.
The implementation faces some difficulties because there is no way to
properly reset just core 1. Instead, we chose a cooperative approach:
To perform a reset, core 1 jumps to a reset-stub and is then fed a new
IVT location which it uses to "restart" with a new payload. The jump to
the reset-stub is either voluntary by a call to epic_exit() or epix_exec(),
or involuntary by Epicardium issuing a "reset" interrupt. This is a
special API interrupt whose handler is pre-implemented in the API-caller
lib.
Additionally, this changeset contains support for defining which python
script Pycardium should execute on startup. This way, scripts can issue
the start of one another using `epic_exec("script-name.py")`.
Finally, this changeset also changes the power-button behavior.
Pressing the power button will now excert the following behavior:
- `<400 ms`: Return back to menu
- `<1 s`: Reset card10
- `>1 s`: Poweroff
Signed-off-by:
Rahix <rahix@rahix.de>
No related branches found
No related tags found
Showing
- Documentation/how-to-build.rst 2 additions, 0 deletionsDocumentation/how-to-build.rst
- epicardium/api/caller.c 63 additions, 0 deletionsepicardium/api/caller.c
- epicardium/api/caller.h 9 additions, 0 deletionsepicardium/api/caller.h
- epicardium/api/common.h 9 additions, 1 deletionepicardium/api/common.h
- epicardium/api/control.c 233 additions, 0 deletionsepicardium/api/control.c
- epicardium/api/dispatcher.c 28 additions, 6 deletionsepicardium/api/dispatcher.c
- epicardium/api/dispatcher.h 22 additions, 2 deletionsepicardium/api/dispatcher.h
- epicardium/api/genapi.py 3 additions, 0 deletionsepicardium/api/genapi.py
- epicardium/api/interrupt-receiver.c 8 additions, 1 deletionepicardium/api/interrupt-receiver.c
- epicardium/api/interrupt-sender.c 7 additions, 3 deletionsepicardium/api/interrupt-sender.c
- epicardium/epicardium.h 55 additions, 4 deletionsepicardium/epicardium.h
- epicardium/main.c 34 additions, 41 deletionsepicardium/main.c
- epicardium/meson.build 2 additions, 1 deletionepicardium/meson.build
- epicardium/modules/dispatcher.c 34 additions, 0 deletionsepicardium/modules/dispatcher.c
- epicardium/modules/hardware.c 40 additions, 0 deletionsepicardium/modules/hardware.c
- epicardium/modules/lifecycle.c 315 additions, 0 deletionsepicardium/modules/lifecycle.c
- epicardium/modules/meson.build 3 additions, 0 deletionsepicardium/modules/meson.build
- epicardium/modules/modules.h 18 additions, 1 deletionepicardium/modules/modules.h
- epicardium/modules/pmic.c 18 additions, 20 deletionsepicardium/modules/pmic.c
- l0dables/lib/crt.s 3 additions, 3 deletionsl0dables/lib/crt.s
Loading
-
mentioned in merge request !96 (closed)
-
mentioned in issue #61 (closed)
Please register or sign in to comment