Skip to content

Commit

Permalink
fix secworks example: new build.rs script + upgrade to latest Verdi O…
Browse files Browse the repository at this point in the history
…bserver
  • Loading branch information
Bounti committed Jun 14, 2023
1 parent 6a6ec03 commit fc4002c
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 55 deletions.
2 changes: 1 addition & 1 deletion fuzzers/secworks-vcs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0

[package]
name = "baby-rtl-fuzzer"
name = "secworks-vcs"
version = "0.0.1"
authors = ["Nassim Corteggiani <nassim.corteggiani@intel.com>"]
edition = "2021"
Expand Down
79 changes: 67 additions & 12 deletions fuzzers/secworks-vcs/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,77 @@
// SPDX-License-Identifier: Apache-2.0

use std::process::Command;
use std::path::PathBuf;
use std::fs::OpenOptions;
use std::io::prelude::*;

fn main() {

let args = "fusesoc library add sha256 https://github.com/secworks/sha256";
let args = args.split(' ');
let rtl_dir = PathBuf::from("./fusesoc_libraries/sha256");

if !rtl_dir.exists() {

assert!(Command::new("fusesoc")
.arg("library")
.arg("add")
.arg("sha256")
.arg("https://github.com/secworks/sha256")
.status()
.unwrap()
.success());

assert!(Command::new("cp")
.arg("./tb_fuzz.sv")
.arg("./fusesoc_libraries/sha256/src/tb/")
.status()
.unwrap()
.success());

let mut file = OpenOptions::new()
.write(true)
.append(true)
.open("fusesoc_libraries/sha256/sha256.core")
.unwrap();

if let Err(e) = writeln!(file, " tb_fuzz:") {
eprintln!("Couldn't write to file: {}", e);
}

if let Err(e) = writeln!(file, " <<: *tb") {
eprintln!("Couldn't write to file: {}", e);
}

if let Err(e) = writeln!(file, " toplevel : tb_fuzz") {
eprintln!("Couldn't write to file: {}", e);
}

assert!(Command::new("sed")
.arg("-i")
.arg("s|- src/tb/tb_sha256.v|- src/tb/tb_fuzz.sv|g")
.arg("fusesoc_libraries/sha256/sha256.core")
.status()
.unwrap()
.success());
}

Command::new("fusesoc")
.args(args)
.output()
.expect("failed to execute process");

let args = "fusesoc run --target=tb_fuzz --tool=vcs secworks:crypto:sha256 --vcs_options '-LDFLAGS -Wl,--no-as-needed -cm line+fsm+cond+tgl+branch -cm_dir Coverage.vdb -full64 -sverilog' --run_options '+TESTCASE=/home/nasm/Projects/HW_Fuzzing/research.security.fuzzing.hardware-fuzzing/fuzzers/baby-rtl-fuzzer/fuzz_inputs.hex -cm tgl'";
let args = args.split(' ');
assert!(Command::new("fusesoc")
.arg("run")
.arg("--build")
.arg("--target=tb_fuzz")
.arg("--tool=vcs")
.arg("secworks:crypto:sha256")
.arg("--vcs_options")
.arg("-LDFLAGS -Wl,--no-as-needed -cm line+fsm+cond+tgl+branch -cm_dir Coverage.vdb -full64 -sverilog")
.status()
.unwrap()
.success());

Command::new("fusesoc")
.args(args)
.output()
.expect("failed to execute process");
// let args = "fusesoc run --target=tb_fuzz --tool=vcs secworks:crypto:sha256 --vcs_options '-LDFLAGS -Wl,--no-as-needed -cm line+fsm+cond+tgl+branch -cm_dir Coverage.vdb -full64 -sverilog' --run_options '+TESTCASE=/home/nasm/Projects/HW_Fuzzing/research.security.fuzzing.hardware-fuzzing/fuzzers/baby-rtl-fuzzer/fuzz_inputs.hex -cm tgl'";
// let args = args.split(' ');
//
// Command::new("fusesoc")
// .args(args)
// .output()
// .expect("failed to execute process");
}
40 changes: 0 additions & 40 deletions fuzzers/secworks-vcs/init.sh

This file was deleted.

2 changes: 1 addition & 1 deletion fuzzers/secworks-vcs/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ pub fn main() {
let (mut feedback, verdi_observer) =
{
let outdir = res.value_of("outdir").unwrap().to_string();
let verdi_observer = unsafe{VerdiShMapObserver::<{MAP_SIZE/4}>::from_mut_ptr("verdi_map", &outdir, shmem_ptr, &VerdiCoverageMetric::Toggle)};
let verdi_observer = unsafe{VerdiShMapObserver::<{MAP_SIZE/4}>::from_mut_ptr("verdi_map", &outdir, shmem_ptr, &VerdiCoverageMetric::Toggle, &"".to_string())};

let feedback = VerdiFeedback::<{MAP_SIZE/4}>::new_with_observer("verdi_map", MAP_SIZE, &outdir);
// let feedback = MaxMapFeedback::new(&verdi_observer);
Expand Down
3 changes: 2 additions & 1 deletion fuzzers/secworks-vcs/tb_fuzz.sv
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,11 @@

module tb_fuzz();

string test_case;
parameter WIDTH = 32;

int fd;
int status;
string test_case;

//----------------------------------------------------------------
// Internal constant and parameter definitions.
Expand Down

0 comments on commit fc4002c

Please sign in to comment.