Skip to content

[FEATURE] exception handler roadmap. #6743

Open

Description

@lgirdwood

Today exception handlers spin the DSP and emit an IPC error. We can do better. (pls add other items here)

  • Call Zephyr stack and context dump
  • Write stack and context to SRAM Window (and power SRAM ON if OFF)
  • Inform host and include any SOF application context error token (@aborisovich I'm calling this an error token today as I dont have a better name). This will depend on your error code work.
  • Put the DSP into a recoverable state (e.g. mask, IRQ, stop timers, disable DMAs) so that host can reload FW or reboot without a power cycle.
  • Invoke the GDB stub in polling mode (if in debug mode) - this allows further FW introspection

@thesofproject/steering-committee @kv2019i @nashif @andyross @mmaka1 @marcinszkudlinski

Activity

  1. cujomalainey commented on Dec 7, 2022

    @cujomalainey
    Contributor

    2 and 3 are definitely of interest here. Tracking a context token will be easier than identify which PC is the cause of the crash

  2. kv2019i commented on Jun 20, 2023

    @kv2019i
    Collaborator

    @lgirdwood I now marked items 1, 2 and 3 done. I'm not 100% about the "context error" token (FYI @aborisovich ). FW sends the standard IPC4 exception notification and we provide a standard Zephyr coredump in SRAM. So I'd say this provides ample application context, and is basicly matching what we can do with IPC3/4 protocol now. Please add a new task if you meant something more specific.

  3. cujomalainey commented on Jun 21, 2023

    @cujomalainey
    Contributor

    @eddy1021 FYI for testing

  4. lgirdwood commented on Jul 4, 2023

    @lgirdwood
    MemberAuthor

    @kv2019i @cujomalainey so we are missing the GDB polling stub. I think we had some PRs in progress on Zephyr but never finished due to high priority work. Could be a Q4 item.

  5. added this to the TBD milestone on Jul 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions