Added payload for figuring out sleep function
This commit is contained in:
@@ -12,26 +12,22 @@ endif()
|
||||
set(CMAKE_C_FLAGS "-nostdlib -O")
|
||||
|
||||
set(PAYLOADS
|
||||
payload_aes
|
||||
payload_aes_busy
|
||||
payload_aes_sw
|
||||
payload_sync
|
||||
payload_sysreg)
|
||||
|
||||
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)
|
||||
aes
|
||||
aes_busy
|
||||
aes_sw
|
||||
sync
|
||||
sysreg
|
||||
task_sleep_test)
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/)
|
||||
set_directory_properties(PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_SOURCE_DIR}/bin/")
|
||||
|
||||
foreach(BINARY ${PAYLOADS})
|
||||
add_custom_command(TARGET ${BINARY} POST_BUILD
|
||||
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BINARY}.bin
|
||||
add_executable(payload_${BINARY} src/${BINARY}.c)
|
||||
add_custom_command(TARGET payload_${BINARY} POST_BUILD
|
||||
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/bin/payload_${BINARY}.bin
|
||||
COMMAND ${CMAKE_OBJCOPY}
|
||||
ARGS -O binary -j .text -j .payload_text -j .payload_data
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${BINARY}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/bin/${BINARY}.bin)
|
||||
${CMAKE_CURRENT_BINARY_DIR}/payload_${BINARY}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/bin/payload_${BINARY}.bin)
|
||||
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"
|
||||
|
||||
PAYLOAD_SECTION
|
||||
int aes_hw_crypto_cmd(unsigned long long cmd,
|
||||
unsigned char *src, unsigned char *dst,
|
||||
int len, unsigned long long opts,
|
||||
|
||||
@@ -7,10 +7,4 @@
|
||||
#define SYSTEM_TIME ((BOOTROM_FUNC) ADDR_SYSTEM_TIME)
|
||||
#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
|
||||
|
||||
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_SYNC_BIN CHECKM8_BIN_BASE "payloads/payload_sync.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
|
||||
{
|
||||
@@ -16,6 +17,7 @@ typedef enum
|
||||
PAYLOAD_AES_SW,
|
||||
PAYLOAD_SYNC,
|
||||
PAYLOAD_SYSREG,
|
||||
PAYLOAD_TASK_SLEEP_TEST
|
||||
} PAYLOAD_T;
|
||||
|
||||
typedef enum
|
||||
|
||||
@@ -47,6 +47,10 @@ struct payload *get_payload(PAYLOAD_T p)
|
||||
path = PAYLOAD_SYSREG_BIN;
|
||||
break;
|
||||
|
||||
case PAYLOAD_TASK_SLEEP_TEST:
|
||||
path = PAYLOAD_TASK_SLEEP_TEST_BIN;
|
||||
break;
|
||||
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user