@@ -32,7 +32,7 @@ Supported Architectures:
3232If your model's target architecture is one of these, it is supported by TSFFS. If not,
3333file an issue or pull request. Adding new architectures is easy, and can be a good
3434first contribution to the fuzzer. See the generic and specific architecture information
35- [ here] ( ../../../modules /tsffs/src/tsffs /src/arch) .
35+ [ here] ( https://github.com/intel /tsffs/tree/main /src/arch) .
3636
3737## Micro Checkpoints
3838
@@ -51,8 +51,10 @@ model with a simple test.
5151### Testing Micro Checkpoints
5252
5353As an example, let's consider the x86 QSP platform model that ships with SIMICS and the
54- Hello World EFI [ example] ( ../../../examples/tests/x86_64-uefi/ ) . The process for fuzzing
55- this target software follows the basic flow:
54+ Hello World EFI [ resource
55+ example] ( https://github.com/intel/tsffs/tree/main/tests/rsrc/x86_64-uefi ) which you can
56+ build by running ` ./build.sh ` in the resource directory. The process for fuzzing this
57+ target software follows the basic flow:
5658
57591 . Boot the x86 QSP BIOS with the QSP x86 hdd boot script, with a minimal boot disk
58602 . Upload the test.efi EFI app using the SIMICS agent (for most real targets, we
@@ -210,7 +212,7 @@ running>
210212You'll see several automatic actions on the SIMICS GUI, and you will end up with the
211213console screen below.
212214
213- ![ The EFI console, with the prompt FS0: \\ >] ( ../../ images/REQUIREMENTS_Test_Micro_Checkpoints_Pre.png )
215+ ![ The EFI console, with the prompt FS0: \\ >] ( ../images/REQUIREMENTS_Test_Micro_Checkpoints_Pre.png )
214216
215217First, we'll run our EFI app to make sure all is well.
216218
@@ -220,7 +222,7 @@ running> $system.console.con.input "test.efi\n"
220222
221223You should see "Working..." print out on the console.
222224
223- ![ The EFI console, after test run] ( ../../ images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png )
225+ ![ The EFI console, after test run] ( ../images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png )
224226
225227Now, we'll go ahead stop the simulation and take our micro checkpoint.
226228
@@ -242,7 +244,7 @@ running> stop
242244We stopped our execution after the app executed, so you should see the output from the
243245second time we ran it ("Working...") printed on the GUI console.
244246
245- ![ The EFI console, after running again] ( ../../ images/REQUIREMENTS_Test_Micro_Checkpoints_Post.png )
247+ ![ The EFI console, after running again] ( ../images/REQUIREMENTS_Test_Micro_Checkpoints_Post.png )
246248
247249Now, we will restore our micro checkpoint and clear the recorder. The second step is
248250important, because if we did not clear the recorder we would * replay* the execution of
@@ -259,7 +261,7 @@ simics> continue
259261The console should be back to the state it was before you ran the second app execution,
260262and will look like this:
261263
262- ![ The EFI console, after test run] ( ../../ images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png )
264+ ![ The EFI console, after test run] ( ../images/REQUIREMENTS_Test_Micro_Checkpoints_TestRun.png )
263265
264266#### Testing for Your App
265267
@@ -279,12 +281,12 @@ somewhat depending on your project. In general, try to follow this flow:
279281
280282## Snapshots
281283
282- Newer versions of SIMICS (>= 6 .0.175 ) support a new feature called snapshots, which are
284+ Newer versions of SIMICS (>= 7 .0.0 ) support a new feature called snapshots, which are
283285similar to micro checkpoints but do not rely on underlying rev-exec support. If your
284286model supports a new version of SIMICS, follow the same instructions as for micro
285287checkpoints, but replace:
286288
287- * ` VT_save_micro_checkpoint("origin", 0) ` with ` VT_take_snapshot ("origin")`
289+ * ` VT_save_micro_checkpoint("origin", 0) ` with ` VT_save_snapshot ("origin")`
288290* ` VT_restore_micro_checkpoint(0) ` with ` VT_restore_snapshot("origin") `
289291
290292And do not call ` CORE_discard_future ` .
0 commit comments