Skip to content

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Latest commit

 

History

59 Commits

Folders and files

Repository files navigation

LibCheckpoint

LibCheckpoint is a restorer for "rvgcpt" checkpoints, restoring the in-memory architectural state into registers.

It provides the following functions:

How to Use

  1. Initialize the environment
pip install --upgrade protobuf grpcio-tools
git submodule update --init
  1. Build for restoring a checkpoint using Protobuf (stable)
./configure && make -j
  1. Build for a dual core QEMU checkpoint with serialized data at 0x80300000~0x80800000 (stable)
./configure --mode=dual_core && make -j

  1. Build the restorer than can pause a core's operation (stable)
./configure --stop_cpu=N && make -j
  1. Build restorer that can display serialize data from memory before unserialize to hardware (stable)
./configure --display_cpu=0 # n could be any hartid, one appropriate approach is to suspend one of the cores in a dual-core checkpoint and output the serialized data from the other core
  1. Build for linking to the next-level bootloader (stable)
./configure --gcpt_payload=/path/to/bbl.bin # default: put next level bootloader at address 0x80100000
./configure --gcpt_payload=/path/to/bbl.bin --gcpt_payload_position=0x???????? # point to link address
  1. Debugging ( In Process )

still in process...

  • The above options are not mutually exclusive and can be used in any combination

Reference

FAQ:

  • warning: build/gcpt has a LOAD segment with RWX permissions
    • this warning does not affect any normal use

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages