On 07.07.23 18:26, Martin Åberg wrote:
Please see the comment below.

On 2023-07-05 13:18, Sebastian Huber wrote:
---
  bsps/sparc/leon3/include/bsp/leon3.h | 12 ++++
  bsps/sparc/leon3/start/bspclean.c    | 89 +++++++++++++++++++---------
  bsps/sparc/leon3/start/bspsmp.c      | 16 +----
  3 files changed, 77 insertions(+), 40 deletions(-)


@@ -92,7 +124,10 @@ void bsp_fatal_extension(
  #endif
  #if BSP_RESET_BOARD_AT_EXIT
-  /* If user wants to implement custom reset/reboot it can be done here */
-  bsp_reset();
+  /*
+   * Stop the system termination right now.  This skips the dynamically
+   * installed fatal error extensions and the generics shutdown procedure.
+   */
+  _CPU_Fatal_halt( source, code );
  #endif
  }


Some thoughts and questions on the implication of this.

As I understand it, bsp_reset() here was intended as a way for the user to
provide an application/mission specific way to take late action on a fatal
event. And also that bsp_reset() was called in a "single-processor state" where
the other processors had already been stopped (powered down).

Some potential use cases for action in a bsp_reset(), I can think of:
- Log an entry in an off-chip, on-board non-volatile memory with a record
   consisting of system date, fatal_source and fatal_code.
- Signal the event, using GPIO, to an external failure/redundancy controller.
- Tell an on-board reset circuit to initiate a board reset/shutdown.
- Issuing a "warm" system restart by jumping to a known location in a ROM boot
   loader.

The _CPU_Fatal_halt looks like a path of no return (error mode) and no more
user hooks. But would it perhaps be possibility for the application to provide
an extension with CONFIGURE_INITIAL_EXTENSIONS to have application specific
actions like the ones above?

Yes, exactly. The API to customize the fatal error handling for applications is the CONFIGURE_INITIAL_EXTENSIONS application configuration option. There is absolutely no need for a BSP-specific solution.

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to