Skip to content

[BIOS, OS/Proc] Suspend/resume handling #23

@asiekierka

Description

@asiekierka

Brief primer:

The Freya environment supports up to three processes (not multi-tasked, rather in a kind of cooperative execution stack) :

  • the first process (SRAM bank 3) is typically the shell,
  • the second process (SRAM bank 2) is typically the program being executed from the shell,
  • the third process (SRAM bank 1) can be executed on top, but I think cannot be suspended.

There are two suspend slots, which allows one process to exist in IRAM, and two processes to exist outside of IRAM.

To make this work correctly, there's a bunch of sub-tasks that have to be done:

  • Clean up the sys_suspend/sys_resume implementation - it's very proof of concept.
  • Implement sys_swap.
  • Figure out how sys_set_resume/sys_get_resume relate to sys_suspend/sys_resume, and implement it in AthenaBIOS.
  • Based on this information, implement the relevant process management functions in Proc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    compat-issue-biosA compatibility issue concerning AthenaBIOS.compat-issue-osA compatibility issue concerning AthenaOS

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions