From 189cadfbb33b328724e2fe3f08b356ed458ba0da Mon Sep 17 00:00:00 2001 From: Charles Papon Date: Wed, 10 Apr 2019 15:41:38 +0200 Subject: [PATCH] Add coremark --- src/test/cpp/regression/main.cpp | 24 ++++++++++++++++---- src/test/resources/.gitignore | 1 + src/test/resources/bin/.gitignore | 1 + src/test/resources/bin/coremark_rv32i.bin | Bin 0 -> 24376 bytes src/test/resources/bin/coremark_rv32ic.bin | Bin 0 -> 17832 bytes src/test/resources/bin/coremark_rv32im.bin | Bin 0 -> 22776 bytes src/test/resources/bin/coremark_rv32imc.bin | Bin 0 -> 17080 bytes 7 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/test/resources/.gitignore create mode 100644 src/test/resources/bin/.gitignore create mode 100755 src/test/resources/bin/coremark_rv32i.bin create mode 100755 src/test/resources/bin/coremark_rv32ic.bin create mode 100755 src/test/resources/bin/coremark_rv32im.bin create mode 100755 src/test/resources/bin/coremark_rv32imc.bin diff --git a/src/test/cpp/regression/main.cpp b/src/test/cpp/regression/main.cpp index 78f15a3..e71b250 100644 --- a/src/test/cpp/regression/main.cpp +++ b/src/test/cpp/regression/main.cpp @@ -3499,8 +3499,8 @@ int main(int argc, char **argv, char **env) { soc.loadBin(DTB, 0xC3000000); soc.loadBin(RAMDISK, 0xC2000000); #endif - soc.setIStall(true); //TODO It currently improve speed but should be removed later - soc.setDStall(true); + //soc.setIStall(true); //TODO It currently improve speed but should be removed later + //soc.setDStall(true); soc.bootAt(0x80000000); soc.run(0); // soc.run((496300000l + 2000000) / 2); @@ -3679,8 +3679,24 @@ int main(int argc, char **argv, char **env) { #endif #ifdef COREMARK - Dhrystone("coremark","/home/miaou/pro/riscv/coremark/coremark",false,false).run(1.9e6); - + for(int withStall = 1; true ;withStall--){ + string rv = "rv32i"; + #if defined(MUL) && defined(DIV) + rv += "m"; + #endif + #if defined(COMPRESSED) + if(withStall == -2) break; + if(withStall != -1) rv += "c"; + #else + if(withStall == -1) break; + #endif + WorkspaceRegression("coremark_" + rv + (withStall > 0 ? "_stall" : "_nostall")).withRiscvRef() + ->loadBin("../../resources/bin/coremark_" + rv + ".bin", 0x80000000) + ->bootAt(0x80000000) + ->setIStall(withStall > 0) + ->setDStall(withStall > 0) + ->run(50e6); + } #endif #ifdef FREERTOS diff --git a/src/test/resources/.gitignore b/src/test/resources/.gitignore new file mode 100644 index 0000000..38afe6e --- /dev/null +++ b/src/test/resources/.gitignore @@ -0,0 +1 @@ +!bin diff --git a/src/test/resources/bin/.gitignore b/src/test/resources/bin/.gitignore new file mode 100644 index 0000000..1eb37dc --- /dev/null +++ b/src/test/resources/bin/.gitignore @@ -0,0 +1 @@ +!*.bin diff --git a/src/test/resources/bin/coremark_rv32i.bin b/src/test/resources/bin/coremark_rv32i.bin new file mode 100755 index 0000000000000000000000000000000000000000..62cb11107f99a845bd6f2ed2403ce44582dceb56 GIT binary patch literal 24376 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%0A-Gc9~nX))t0IJm+4UC2A!?~m&4nVB)sz^pJ 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 bDM^LUEe*;-Fju7T;CcccY>dnC2mJjnVdoBr literal 0 HcmV?d00001 diff --git a/src/test/resources/bin/coremark_rv32im.bin b/src/test/resources/bin/coremark_rv32im.bin new file mode 100755 index 0000000000000000000000000000000000000000..23f9b10ae001f95a95333d993b392d4db2f67658 GIT binary patch literal 22776 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