mirror of
https://github.com/espressif/esp-idf
synced 2025-03-10 01:29:21 -04:00
efuse: Adds an option to disable eFuse FPGA tests
This commit is contained in:
parent
0eee228700
commit
2e8c3c61b3
11
components/efuse/test_apps/main/Kconfig.projbuild
Normal file
11
components/efuse/test_apps/main/Kconfig.projbuild
Normal file
@ -0,0 +1,11 @@
|
||||
menu "eFuse Tests"
|
||||
visible if IDF_ENV_FPGA
|
||||
|
||||
config EFUSE_FPGA_TEST
|
||||
bool "Enable eFuse tests for FPGA (developers only, will PERMANENTLY burn efuses)"
|
||||
default y if IDF_ENV_FPGA
|
||||
help
|
||||
This includes eFuse tests for FPGA. These tests expect actual eFuse burning.
|
||||
Disable EFUSE_VIRTUAL to use real eFuse burning.
|
||||
|
||||
endmenu
|
@ -121,7 +121,7 @@ TEST_CASE("Test a key read protection 2", "[efuse]")
|
||||
}
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_CASE("Test a real write (FPGA)2", "[efuse]")
|
||||
{
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
@ -150,4 +150,4 @@ TEST_CASE("Test a real write (FPGA)2", "[efuse]")
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
}
|
||||
#endif // CONFIG_IDF_ENV_FPGA
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST
|
||||
|
@ -46,7 +46,7 @@ TEST_CASE("Test keys and purposes, rd, wr, wr_key_purposes are in the initial st
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
|
||||
// If using efuse is real, then turn off writing tests.
|
||||
#if CONFIG_EFUSE_VIRTUAL || CONFIG_IDF_ENV_FPGA
|
||||
#if CONFIG_EFUSE_VIRTUAL || CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
static esp_err_t s_check_key(esp_efuse_block_t num_key, void* wr_key, esp_efuse_purpose_t purpose)
|
||||
{
|
||||
@ -63,16 +63,16 @@ static esp_err_t s_check_key(esp_efuse_block_t num_key, void* wr_key, esp_efuse_
|
||||
uint8_t rd_key[32] = { 0xEE };
|
||||
TEST_ESP_OK(esp_efuse_read_block(EFUSE_BLK_KEY0, &rd_key, offset_in_bits, key_size * 8));
|
||||
|
||||
#ifndef CONFIG_IDF_ENV_FPGA
|
||||
#ifndef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_ASSERT_EQUAL_HEX8_ARRAY(wr_key, rd_key, key_size);
|
||||
#endif // not CONFIG_IDF_ENV_FPGA
|
||||
#endif // not CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_key_dis_write(num_key));
|
||||
if (purpose == ESP_EFUSE_KEY_PURPOSE_XTS_AES_128_KEY || purpose == ESP_EFUSE_KEY_PURPOSE_XTS_AES_128_KEY_DERIVED_FROM_128_EFUSE_BITS) {
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_key_dis_read(num_key));
|
||||
#if CONFIG_IDF_ENV_FPGA && !CONFIG_EFUSE_VIRTUAL
|
||||
#if CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8(0, rd_key, key_size);
|
||||
#endif // CONFIG_IDF_ENV_FPGA && ! CONFIG_EFUSE_VIRTUAL
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST && ! CONFIG_EFUSE_VIRTUAL
|
||||
} else {
|
||||
TEST_ASSERT_EQUAL_HEX8_ARRAY(wr_key, rd_key, key_size);
|
||||
}
|
||||
@ -106,7 +106,7 @@ void test_write_key(esp_efuse_block_t num_key, esp_efuse_purpose_t purpose) {
|
||||
printf("EFUSE_BLK_KEY%d, purpose=%d ... OK\n", id, purpose);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_IDF_ENV_FPGA
|
||||
#ifndef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_CASE("Test esp_efuse_write_key for virt mode", "[efuse]")
|
||||
{
|
||||
uint8_t rd_key[32] = { 0xEE };
|
||||
@ -135,7 +135,7 @@ TEST_CASE("Test esp_efuse_write_key for virt mode", "[efuse]")
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
}
|
||||
}
|
||||
#endif // not CONFIG_IDF_ENV_FPGA
|
||||
#endif // not CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
TEST_CASE("Test 1 esp_efuse_write_key for FPGA", "[efuse]")
|
||||
{
|
||||
@ -151,7 +151,7 @@ TEST_CASE("Test 1 esp_efuse_write_key for FPGA", "[efuse]")
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
|
||||
TEST_ASSERT_FALSE(esp_efuse_key_block_unused(EFUSE_BLK_KEY0));
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_ASSERT_TRUE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
#else
|
||||
TEST_ASSERT_FALSE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
@ -195,7 +195,7 @@ TEST_CASE("Test 3 esp_efuse_write_key for FPGA", "[efuse]")
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
|
||||
TEST_ASSERT_FALSE(esp_efuse_key_block_unused(EFUSE_BLK_KEY0));
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_ASSERT_TRUE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
#else
|
||||
TEST_ASSERT_FALSE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
@ -281,11 +281,11 @@ TEST_CASE("Test esp_efuse_write_keys for returned errors", "[efuse]")
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
|
||||
TEST_ASSERT_FALSE(esp_efuse_key_block_unused(EFUSE_BLK_KEY0));
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_ASSERT_TRUE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
#else
|
||||
TEST_ASSERT_FALSE(esp_efuse_block_is_empty(EFUSE_BLK_KEY0));
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // CONFIG_EFUSE_VIRTUAL || CONFIG_IDF_ENV_FPGA
|
||||
#endif // CONFIG_EFUSE_VIRTUAL || CONFIG_EFUSE_FPGA_TEST
|
||||
|
@ -824,7 +824,7 @@ TEST_CASE("Check a case when ESP_ERR_DAMAGED_READING occurs during reading efuse
|
||||
}
|
||||
#endif // if not CONFIG_FREERTOS_UNICORE
|
||||
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_CASE("Test a real write (FPGA)", "[efuse]")
|
||||
{
|
||||
ESP_LOGI(TAG, "1. Write MAC address");
|
||||
@ -859,7 +859,7 @@ TEST_CASE("Test a real write (FPGA)", "[efuse]")
|
||||
TEST_ASSERT_EQUAL_INT(i + 1, read_sec_version);
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_IDF_ENV_FPGA
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
TEST_CASE("Test chip_ver_pkg APIs return the same value", "[efuse]")
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ TEST_CASE("Test a write/read protection", "[efuse]")
|
||||
}
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
|
||||
#ifdef CONFIG_IDF_ENV_FPGA
|
||||
#ifdef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_CASE("Test a real write (FPGA)2", "[efuse]")
|
||||
{
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
@ -113,9 +113,9 @@ TEST_CASE("Test a real write (FPGA)2", "[efuse]")
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
}
|
||||
#endif // CONFIG_IDF_ENV_FPGA
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
#if CONFIG_IDF_ENV_FPGA || CONFIG_EFUSE_VIRTUAL
|
||||
#if CONFIG_EFUSE_FPGA_TEST || CONFIG_EFUSE_VIRTUAL
|
||||
TEST_CASE("Test writing order is BLK_MAX->BLK0", "[efuse]")
|
||||
{
|
||||
uint8_t new_key[32] = {33, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||
@ -191,4 +191,4 @@ TEST_CASE("Test reading inside of batch mode in a nested way", "[efuse]")
|
||||
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
}
|
||||
#endif // CONFIG_IDF_ENV_FPGA || CONFIG_EFUSE_VIRTUAL
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST || CONFIG_EFUSE_VIRTUAL
|
||||
|
@ -49,16 +49,16 @@ TEST_CASE("Test keys and purposes, rd, wr, wr_key_purposes are in the initial st
|
||||
#endif // CONFIG_EFUSE_VIRTUAL
|
||||
|
||||
// If using efuse is real, then turn off writing tests.
|
||||
#if CONFIG_EFUSE_VIRTUAL || CONFIG_IDF_ENV_FPGA
|
||||
#if CONFIG_EFUSE_VIRTUAL || CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
static esp_err_t s_check_key(esp_efuse_block_t num_key, void* wr_key)
|
||||
{
|
||||
uint8_t rd_key[32] = { 0xEE };
|
||||
esp_efuse_purpose_t purpose = esp_efuse_get_key_purpose(num_key);
|
||||
TEST_ESP_OK(esp_efuse_read_field_blob(esp_efuse_get_key(num_key), &rd_key, sizeof(rd_key) * 8));
|
||||
#ifndef CONFIG_IDF_ENV_FPGA
|
||||
#ifndef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_ASSERT_EQUAL_HEX8_ARRAY(wr_key, rd_key, sizeof(wr_key));
|
||||
#endif // not CONFIG_IDF_ENV_FPGA
|
||||
#endif // not CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_key_dis_write(num_key));
|
||||
if (purpose == ESP_EFUSE_KEY_PURPOSE_XTS_AES_128_KEY ||
|
||||
@ -71,9 +71,9 @@ static esp_err_t s_check_key(esp_efuse_block_t num_key, void* wr_key)
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_HMAC_DOWN_DIGITAL_SIGNATURE ||
|
||||
purpose == ESP_EFUSE_KEY_PURPOSE_HMAC_UP) {
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_key_dis_read(num_key));
|
||||
#if CONFIG_IDF_ENV_FPGA && !CONFIG_EFUSE_VIRTUAL
|
||||
#if CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
TEST_ASSERT_EACH_EQUAL_HEX8(0, rd_key, sizeof(rd_key));
|
||||
#endif // CONFIG_IDF_ENV_FPGA && ! CONFIG_EFUSE_VIRTUAL
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST && ! CONFIG_EFUSE_VIRTUAL
|
||||
} else {
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_key_dis_read(num_key));
|
||||
TEST_ASSERT_EQUAL_HEX8_ARRAY(wr_key, rd_key, sizeof(wr_key));
|
||||
@ -108,7 +108,7 @@ void test_write_key(esp_efuse_block_t num_key, esp_efuse_purpose_t purpose) {
|
||||
printf("EFUSE_BLK_KEY%d, purpose=%d ... OK\n", id, purpose);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_IDF_ENV_FPGA
|
||||
#ifndef CONFIG_EFUSE_FPGA_TEST
|
||||
TEST_CASE("Test esp_efuse_write_key for virt mode", "[efuse]")
|
||||
{
|
||||
uint8_t rd_key[32] = { 0xEE };
|
||||
@ -137,7 +137,7 @@ TEST_CASE("Test esp_efuse_write_key for virt mode", "[efuse]")
|
||||
esp_efuse_utility_debug_dump_blocks();
|
||||
}
|
||||
}
|
||||
#endif // not CONFIG_IDF_ENV_FPGA
|
||||
#endif // not CONFIG_EFUSE_FPGA_TEST
|
||||
|
||||
TEST_CASE("Test 1 esp_efuse_write_key for FPGA", "[efuse]")
|
||||
{
|
||||
@ -372,7 +372,7 @@ TEST_CASE("Test set_write_protect_of_digest_revoke", "[efuse]")
|
||||
TEST_ESP_OK(esp_efuse_set_digest_revoke(1));
|
||||
TEST_ESP_OK(esp_efuse_set_digest_revoke(2));
|
||||
|
||||
#if CONFIG_IDF_ENV_FPGA && !CONFIG_EFUSE_VIRTUAL
|
||||
#if CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
// the write protection bits are set and the revocation bits will not be changed.
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_digest_revoke(0));
|
||||
TEST_ASSERT_FALSE(esp_efuse_get_digest_revoke(1));
|
||||
@ -381,8 +381,8 @@ TEST_CASE("Test set_write_protect_of_digest_revoke", "[efuse]")
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(0));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(1));
|
||||
TEST_ASSERT_TRUE(esp_efuse_get_digest_revoke(2));
|
||||
#endif // CONFIG_IDF_ENV_FPGA && !CONFIG_EFUSE_VIRTUAL
|
||||
#endif // CONFIG_EFUSE_FPGA_TEST && !CONFIG_EFUSE_VIRTUAL
|
||||
}
|
||||
#endif // SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY
|
||||
|
||||
#endif // CONFIG_EFUSE_VIRTUAL || CONFIG_IDF_ENV_FPGA
|
||||
#endif // CONFIG_EFUSE_VIRTUAL || CONFIG_EFUSE_FPGA_TEST
|
||||
|
Loading…
x
Reference in New Issue
Block a user