Added payload for figuring out sleep function
This commit is contained in:
@@ -12,26 +12,22 @@ endif()
|
|||||||
set(CMAKE_C_FLAGS "-nostdlib -O")
|
set(CMAKE_C_FLAGS "-nostdlib -O")
|
||||||
|
|
||||||
set(PAYLOADS
|
set(PAYLOADS
|
||||||
payload_aes
|
aes
|
||||||
payload_aes_busy
|
aes_busy
|
||||||
payload_aes_sw
|
aes_sw
|
||||||
payload_sync
|
sync
|
||||||
payload_sysreg)
|
sysreg
|
||||||
|
task_sleep_test)
|
||||||
add_executable(payload_aes src/aes.c)
|
|
||||||
add_executable(payload_aes_busy src/aes_busy.c)
|
|
||||||
add_executable(payload_aes_sw src/aes_sw.c)
|
|
||||||
add_executable(payload_sync src/sync.c)
|
|
||||||
add_executable(payload_sysreg src/sysreg.c)
|
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/)
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/)
|
||||||
set_directory_properties(PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/bin/")
|
set_directory_properties(PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/bin/")
|
||||||
|
|
||||||
foreach(BINARY ${PAYLOADS})
|
foreach(BINARY ${PAYLOADS})
|
||||||
add_custom_command(TARGET ${BINARY} POST_BUILD
|
add_executable(payload_${BINARY} src/${BINARY}.c)
|
||||||
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BINARY}.bin
|
add_custom_command(TARGET payload_${BINARY} POST_BUILD
|
||||||
|
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/payload_${BINARY}.bin
|
||||||
COMMAND ${CMAKE_OBJCOPY}
|
COMMAND ${CMAKE_OBJCOPY}
|
||||||
ARGS -O binary -j .text -j .payload_text -j .payload_data
|
ARGS -O binary -j .text -j .payload_text -j .payload_data
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${BINARY}
|
${CMAKE_CURRENT_BINARY_DIR}/payload_${BINARY}
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/bin/${BINARY}.bin)
|
${CMAKE_CURRENT_SOURCE_DIR}/bin/payload_${BINARY}.bin)
|
||||||
endforeach(BINARY)
|
endforeach(BINARY)
|
||||||
BIN
c8_payloads/bin/payload_task_sleep_test.bin
Normal file
BIN
c8_payloads/bin/payload_task_sleep_test.bin
Normal file
Binary file not shown.
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "brfunc_common.h"
|
#include "brfunc_common.h"
|
||||||
|
|
||||||
PAYLOAD_SECTION
|
|
||||||
int aes_hw_crypto_cmd(unsigned long long cmd,
|
int aes_hw_crypto_cmd(unsigned long long cmd,
|
||||||
unsigned char *src, unsigned char *dst,
|
unsigned char *src, unsigned char *dst,
|
||||||
int len, unsigned long long opts,
|
int len, unsigned long long opts,
|
||||||
|
|||||||
@@ -7,10 +7,4 @@
|
|||||||
#define SYSTEM_TIME ((BOOTROM_FUNC) ADDR_SYSTEM_TIME)
|
#define SYSTEM_TIME ((BOOTROM_FUNC) ADDR_SYSTEM_TIME)
|
||||||
#define TIME_HAS_ELAPSED ((BOOTROM_FUNC) ADDR_TIME_HAS_ELAPSED)
|
#define TIME_HAS_ELAPSED ((BOOTROM_FUNC) ADDR_TIME_HAS_ELAPSED)
|
||||||
|
|
||||||
PAYLOAD_SECTION
|
|
||||||
void task_sleep(unsigned int usec)
|
|
||||||
{
|
|
||||||
((BOOTROM_FUNC) ADDR_TASK_SLEEP)(usec);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //CHECKM8_TOOL_BRFUNC_TIMING_H
|
#endif //CHECKM8_TOOL_BRFUNC_TIMING_H
|
||||||
|
|||||||
20
c8_payloads/src/task_sleep_test.c
Normal file
20
c8_payloads/src/task_sleep_test.c
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#include "util.h"
|
||||||
|
#include "brfunc_common.h"
|
||||||
|
|
||||||
|
PAYLOAD_SECTION
|
||||||
|
void task_sleep(unsigned int usec)
|
||||||
|
{
|
||||||
|
((BOOTROM_FUNC) ADDR_TASK_SLEEP)(usec);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEXT_SECTION
|
||||||
|
unsigned long long _start(unsigned int usec)
|
||||||
|
{
|
||||||
|
unsigned long long start, end;
|
||||||
|
|
||||||
|
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (start));
|
||||||
|
task_sleep(usec);
|
||||||
|
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (end));
|
||||||
|
|
||||||
|
return end - start;
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
#define PAYLOAD_AES_SW_BIN CHECKM8_BIN_BASE "payloads/payload_aes_sw.bin"
|
#define PAYLOAD_AES_SW_BIN CHECKM8_BIN_BASE "payloads/payload_aes_sw.bin"
|
||||||
#define PAYLOAD_SYNC_BIN CHECKM8_BIN_BASE "payloads/payload_sync.bin"
|
#define PAYLOAD_SYNC_BIN CHECKM8_BIN_BASE "payloads/payload_sync.bin"
|
||||||
#define PAYLOAD_SYSREG_BIN CHECKM8_BIN_BASE "payloads/payload_sysreg.bin"
|
#define PAYLOAD_SYSREG_BIN CHECKM8_BIN_BASE "payloads/payload_sysreg.bin"
|
||||||
|
#define PAYLOAD_TASK_SLEEP_TEST_BIN CHECKM8_BIN_BASE "payloads/payload_task_sleep_test.bin"
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
@@ -16,6 +17,7 @@ typedef enum
|
|||||||
PAYLOAD_AES_SW,
|
PAYLOAD_AES_SW,
|
||||||
PAYLOAD_SYNC,
|
PAYLOAD_SYNC,
|
||||||
PAYLOAD_SYSREG,
|
PAYLOAD_SYSREG,
|
||||||
|
PAYLOAD_TASK_SLEEP_TEST
|
||||||
} PAYLOAD_T;
|
} PAYLOAD_T;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
|||||||
@@ -47,6 +47,10 @@ struct payload *get_payload(PAYLOAD_T p)
|
|||||||
path = PAYLOAD_SYSREG_BIN;
|
path = PAYLOAD_SYSREG_BIN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PAYLOAD_TASK_SLEEP_TEST:
|
||||||
|
path = PAYLOAD_TASK_SLEEP_TEST_BIN;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user