diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c index ece26577c..ec78933e8 100755 --- a/wolfcrypt/benchmark/benchmark.c +++ b/wolfcrypt/benchmark/benchmark.c @@ -5979,6 +5979,28 @@ exit_ed_verify: (void)reset; return (double) tx_time_get() / TX_TIMER_TICKS_PER_SECOND; } + +#elif defined(WOLFSSL_XILINX) + #ifndef XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ + #define XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ 50000000 + #endif + #ifndef COUNTS_PER_SECOND + #define COUNTS_PER_SECOND XPAR_CPU_CORTEXA53_0_TIMESTAMP_CLK_FREQ + #endif + + double current_time(int reset) + { + double timer; + uint64_t cntPct = 0; + asm volatile("mrs %0, CNTPCT_EL0" : "=r" (cntPct)); + + /* Convert to milliseconds */ + timer = (double)(cntPct / (COUNTS_PER_SECOND / 1000)); + /* Convert to seconds.millisecond */ + timer /= 1000; + return timer; + } + #else #include diff --git a/wolfcrypt/src/chacha.c b/wolfcrypt/src/chacha.c index 120e55b24..38a1ede7d 100644 --- a/wolfcrypt/src/chacha.c +++ b/wolfcrypt/src/chacha.c @@ -37,7 +37,7 @@ #include -#ifdef HAVE_CHACHA +#if defined(HAVE_CHACHA) && !defined(WOLFSSL_ARMASM) #include #include diff --git a/wolfcrypt/src/sha512.c b/wolfcrypt/src/sha512.c index 9bbc003f3..0a648bf4a 100644 --- a/wolfcrypt/src/sha512.c +++ b/wolfcrypt/src/sha512.c @@ -26,7 +26,7 @@ #include -#if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384) +#if (defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384)) && !defined(WOLFSSL_ARMASM) #if defined(HAVE_FIPS) && \ defined(HAVE_FIPS_VERSION) && (HAVE_FIPS_VERSION >= 2) diff --git a/wolfssl/wolfcrypt/wc_port.h b/wolfssl/wolfcrypt/wc_port.h index f2dc702b2..88c7bfe34 100644 --- a/wolfssl/wolfcrypt/wc_port.h +++ b/wolfssl/wolfcrypt/wc_port.h @@ -527,7 +527,7 @@ WOLFSSL_API int wolfCrypt_Cleanup(void); #endif #define NEED_TMP_TIME -#elif defined(WOLFSSL_XILINX) && defined(FREERTOS) +#elif defined(WOLFSSL_XILINX) #define USER_TIME #include