diff mbox series

[1/2] package/coremark: new package

Message ID 20201111073415.814-1-judge.packham@gmail.com
State Superseded
Headers show
Series [1/2] package/coremark: new package | expand

Commit Message

Chris Packham Nov. 11, 2020, 7:34 a.m. UTC
CoreMark is a simple, yet sophisticated benchmark that is designed
specifically to test the functionality of a processor core. Running
CoreMark produces a single-number score allowing users to make quick
comparisons between processors.

https://www.eembc.org/coremark/

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
 DEVELOPERS                     |  1 +
 package/Config.in              |  1 +
 package/coremark/Config.in     |  8 ++++++++
 package/coremark/coremark.hash |  3 +++
 package/coremark/coremark.mk   | 21 +++++++++++++++++++++
 5 files changed, 34 insertions(+)
 create mode 100644 package/coremark/Config.in
 create mode 100644 package/coremark/coremark.hash
 create mode 100644 package/coremark/coremark.mk

Comments

Matt Weber Nov. 11, 2020, 1:53 p.m. UTC | #1
Chris,

On Wed, Nov 11, 2020 at 1:35 AM Chris Packham <judge.packham@gmail.com> wrote:
>
> CoreMark is a simple, yet sophisticated benchmark that is designed
> specifically to test the functionality of a processor core. Running
> CoreMark produces a single-number score allowing users to make quick
> comparisons between processors.
>
> https://www.eembc.org/coremark/
>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>

./utils/test-pkg -k  -d foo_coremark -p coremark
                             br-arm-full [1/6]: OK
                  br-arm-cortex-a9-glibc [2/6]: OK
                   br-arm-cortex-m4-full [3/6]: OK
                          br-x86-64-musl [4/6]: OK
                      br-arm-full-static [5/6]: OK
                            sourcery-arm [6/6]: OK


***Runtime test with QEMU***

BR2_aarch64=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.16.7"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_COREMARK=y
BR2_PACKAGE_COREMARK_PRO=y
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set

# coremark
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 13102
Total time (secs): 13.102000
Iterations/Sec   : 1526.484506
Iterations       : 20000
Compiler version : GCC9.2.1 20191025
Compiler flags   : -O2   -lrt
Memory location  : Please put data memory location here
                       (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x382f
Correct operation validated. See readme.txt for run and reporting rules.
CoreMark 1.0 : 1526.484506 / GCC9.2.1 20191025 -O2   -lrt / Heap

Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 43cc1b55ae..ff823a2e3d 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -490,6 +490,7 @@  F:	configs/olimex_a13_olinuxino_defconfig
 F:	configs/orangepi_plus_defconfig
 
 N:	Chris Packham <judge.packham@gmail.com>
+F:	package/coremark/
 F:	package/gstreamer1/gst1-shark/
 F:	package/micropython/
 F:	package/micropython-lib/
diff --git a/package/Config.in b/package/Config.in
index 016a99ed1a..16fd95fe38 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -87,6 +87,7 @@  menu "Debugging, profiling and benchmark"
 	source "package/bonnie/Config.in"
 	source "package/cache-calibrator/Config.in"
 	source "package/clinfo/Config.in"
+	source "package/coremark/Config.in"
 	source "package/dacapo/Config.in"
 	source "package/dhrystone/Config.in"
 	source "package/dieharder/Config.in"
diff --git a/package/coremark/Config.in b/package/coremark/Config.in
new file mode 100644
index 0000000000..f0e13eda63
--- /dev/null
+++ b/package/coremark/Config.in
@@ -0,0 +1,8 @@ 
+config BR2_PACKAGE_COREMARK
+	bool "coremark"
+	help
+	  CoreMark is a benchmark that measures the performance of
+	  microcontrollers (MCUs) and central processing units (CPUs)
+	  used in embedded systems
+
+	  https://www.eembc.org/coremark/
diff --git a/package/coremark/coremark.hash b/package/coremark/coremark.hash
new file mode 100644
index 0000000000..57da3e998c
--- /dev/null
+++ b/package/coremark/coremark.hash
@@ -0,0 +1,3 @@ 
+#locally computed
+sha256  99c5a6d63af85a281b4e4d6ccb522c446653c435dfec9455ad73ef9e71f28bde  coremark-1.01.tar.gz
+sha256  d72094a3cb629dc7712ae09b7b777416903c6670930928b5530f2ddfb2296888  LICENSE.md
diff --git a/package/coremark/coremark.mk b/package/coremark/coremark.mk
new file mode 100644
index 0000000000..418fd5c8d3
--- /dev/null
+++ b/package/coremark/coremark.mk
@@ -0,0 +1,21 @@ 
+################################################################################
+#
+# CoreMark
+#
+################################################################################
+
+COREMARK_VERSION = 1.01
+COREMARK_SITE = $(call github,eembc,coremark,v$(COREMARK_VERSION))
+COREMARK_LICENSE = Apache-2.0
+COREMARK_LICENSE_FILES = LICENSE.md
+
+define COREMARK_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) CC="$(TARGET_CC)" -C $(@D) \
+		PORT_DIR=linux$(if $(BR2_ARCH_IS_64),64) EXE= link
+endef
+
+define COREMARK_INSTALL_TARGET_CMDS
+	$(INSTALL) -D $(@D)/coremark $(TARGET_DIR)/usr/bin/coremark
+endef
+
+$(eval $(generic-package))