From 6d2f9c2991f48cb432913c9aa8e51499aa0480ea Mon Sep 17 00:00:00 2001 From: zwx Date: Fri, 29 Mar 2024 15:00:50 +0800 Subject: [PATCH] fix(esp_phy): header file produces non-zero object --- components/esp_phy/CMakeLists.txt | 13 +- .../esp_phy/esp32/include/phy_init_data.h | 137 +-------- components/esp_phy/esp32/phy_init_data.c | 125 ++++++++ .../esp_phy/esp32c2/include/phy_init_data.h | 133 +-------- components/esp_phy/esp32c2/phy_init_data.c | 130 +++++++++ .../esp_phy/esp32c3/include/phy_init_data.h | 133 +-------- components/esp_phy/esp32c3/phy_init_data.c | 130 +++++++++ .../esp_phy/esp32c5/include/phy_init_data.h | 272 +---------------- components/esp_phy/esp32c5/phy_init_data.c | 275 ++++++++++++++++++ .../esp_phy/esp32c6/include/phy_init_data.h | 150 +--------- components/esp_phy/esp32c6/phy_init_data.c | 146 ++++++++++ .../esp_phy/esp32s2/include/phy_init_data.h | 149 +--------- components/esp_phy/esp32s2/phy_init_data.c | 146 ++++++++++ .../esp_phy/esp32s3/include/phy_init_data.h | 133 +-------- components/esp_phy/esp32s3/phy_init_data.c | 130 +++++++++ components/esp_phy/src/phy_init.c | 57 ++-- tools/ci/check_public_headers_exceptions.txt | 9 - 17 files changed, 1173 insertions(+), 1095 deletions(-) create mode 100644 components/esp_phy/esp32/phy_init_data.c create mode 100644 components/esp_phy/esp32c2/phy_init_data.c create mode 100644 components/esp_phy/esp32c3/phy_init_data.c create mode 100644 components/esp_phy/esp32c5/phy_init_data.c create mode 100644 components/esp_phy/esp32c6/phy_init_data.c create mode 100644 components/esp_phy/esp32s2/phy_init_data.c create mode 100644 components/esp_phy/esp32s3/phy_init_data.c diff --git a/components/esp_phy/CMakeLists.txt b/components/esp_phy/CMakeLists.txt index c4561af352..f798118e32 100644 --- a/components/esp_phy/CMakeLists.txt +++ b/components/esp_phy/CMakeLists.txt @@ -25,6 +25,7 @@ if(CONFIG_ESP_PHY_ENABLED) list(APPEND srcs "src/phy_init_esp32hxx.c") else() list(APPEND srcs "src/phy_init.c") + list(APPEND srcs "${idf_target}/phy_init_data.c") endif() if(CONFIG_SOC_BT_SUPPORTED OR CONFIG_SOC_IEEE802154_SUPPORTED OR CONFIG_SOC_IEEE802154_BLE_ONLY) @@ -103,16 +104,14 @@ endif() else() set(phy_init_data_bin "${build_dir}/phy_init_data.bin") - # To get the phy_init_data.bin file, compile phy_init_data.h as a C file and then objcopy - # the object file to a raw binary idf_build_get_property(config_dir CONFIG_DIR) add_custom_command( OUTPUT ${phy_init_data_bin} - DEPENDS ${CMAKE_CURRENT_LIST_DIR}/${idf_target}/include/phy_init_data.h - COMMAND ${CMAKE_C_COMPILER} -x c -c - -I ${esp_common_dir}/include -I ${CMAKE_CURRENT_LIST_DIR}/include -I ${config_dir} - -o phy_init_data.obj - ${CMAKE_CURRENT_LIST_DIR}/${idf_target}/include/phy_init_data.h + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/${idf_target}/phy_init_data.c + COMMAND ${CMAKE_C_COMPILER} -c ${CMAKE_CURRENT_LIST_DIR}/${idf_target}/phy_init_data.c + -I ${esp_common_dir}/include -I ${CMAKE_CURRENT_LIST_DIR}/include + -I ${CMAKE_CURRENT_LIST_DIR}/${idf_target}/include + -I ${config_dir} -o phy_init_data.obj COMMAND ${CMAKE_OBJCOPY} -O binary phy_init_data.obj ${phy_init_data_bin} ) add_custom_target(phy_init_data ALL DEPENDS ${phy_init_data_bin}) diff --git a/components/esp_phy/esp32/include/phy_init_data.h b/components/esp_phy/esp32/include/phy_init_data.h index 36f5440caa..146a08af16 100644 --- a/components/esp_phy/esp32/include/phy_init_data.h +++ b/components/esp_phy/esp32/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,10 +9,13 @@ #include "esp_phy_init.h" #include "sdkconfig.h" +#ifdef __cplusplus +extern "C" { +#endif // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - -#define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -25,129 +28,16 @@ #define PHY_INIT_DATA_TYPE_OFFSET 126 #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif -static const char phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 3, - 3, - 0x05, - 0x09, - 0x06, - 0x05, - 0x03, - 0x06, - 0x05, - 0x04, - 0x06, - 0x04, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x05, - 0x09, - 0x06, - 0x05, - 0x03, - 0x06, - 0x05, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0xfc, - 0xfc, - 0xfe, - 0xf0, - 0xf0, - 0xf0, - 0xe0, - 0xe0, - 0xe0, - 0x18, - 0x18, - 0x18, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 78), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 72), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 66), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 60), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 56), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 52), - 0, - 1, - 1, - 2, - 2, - 3, - 4, - 5, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, -} }; - -static const char phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ @@ -164,4 +54,9 @@ typedef struct { uint8_t type; } phy_country_to_bin_type_t; #endif + +#ifdef __cplusplus +} +#endif + #endif /* PHY_INIT_DATA_H */ diff --git a/components/esp_phy/esp32/phy_init_data.c b/components/esp_phy/esp32/phy_init_data.c new file mode 100644 index 0000000000..ee8560faf3 --- /dev/null +++ b/components/esp_phy/esp32/phy_init_data.c @@ -0,0 +1,125 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "phy_init_data.h" +#include "sdkconfig.h" + +const char phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 3, + 3, + 0x05, + 0x09, + 0x06, + 0x05, + 0x03, + 0x06, + 0x05, + 0x04, + 0x06, + 0x04, + 0x05, + 0x00, + 0x00, + 0x00, + 0x00, + 0x05, + 0x09, + 0x06, + 0x05, + 0x03, + 0x06, + 0x05, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0xfc, + 0xfc, + 0xfe, + 0xf0, + 0xf0, + 0xf0, + 0xe0, + 0xe0, + 0xe0, + 0x18, + 0x18, + 0x18, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 78), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 72), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 66), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 60), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 56), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 40, 52), + 0, + 1, + 1, + 2, + 2, + 3, + 4, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +} }; + +const char phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32c2/include/phy_init_data.h b/components/esp_phy/esp32c2/include/phy_init_data.h index 212cd582de..322b9bec8e 100644 --- a/components/esp_phy/esp32c2/include/phy_init_data.h +++ b/components/esp_phy/esp32c2/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -30,134 +29,16 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif -static const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x00, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0x74 -} }; - -static const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ diff --git a/components/esp_phy/esp32c2/phy_init_data.c b/components/esp_phy/esp32c2/phy_init_data.c new file mode 100644 index 0000000000..858e48352e --- /dev/null +++ b/components/esp_phy/esp32c2/phy_init_data.c @@ -0,0 +1,130 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + +const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x00, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), + 0x00, + 0x00, + 0x00, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x74 +} }; + +const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32c3/include/phy_init_data.h b/components/esp_phy/esp32c3/include/phy_init_data.h index 212cd582de..322b9bec8e 100644 --- a/components/esp_phy/esp32c3/include/phy_init_data.h +++ b/components/esp_phy/esp32c3/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -30,134 +29,16 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif -static const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x00, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0x74 -} }; - -static const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ diff --git a/components/esp_phy/esp32c3/phy_init_data.c b/components/esp_phy/esp32c3/phy_init_data.c new file mode 100644 index 0000000000..8604ae1df5 --- /dev/null +++ b/components/esp_phy/esp32c3/phy_init_data.c @@ -0,0 +1,130 @@ +/* + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + +const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x00, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), + 0x00, + 0x00, + 0x00, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x74 +} }; + +const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32c5/include/phy_init_data.h b/components/esp_phy/esp32c5/include/phy_init_data.h index 2dac61b92b..8a0eb24016 100644 --- a/components/esp_phy/esp32c5/include/phy_init_data.h +++ b/components/esp_phy/esp32c5/include/phy_init_data.h @@ -13,11 +13,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -31,272 +30,9 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 253 #endif - -static const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x01, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0x5A -} }; - -static const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** diff --git a/components/esp_phy/esp32c5/phy_init_data.c b/components/esp_phy/esp32c5/phy_init_data.c new file mode 100644 index 0000000000..6373e70f94 --- /dev/null +++ b/components/esp_phy/esp32c5/phy_init_data.c @@ -0,0 +1,275 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + + +const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x01, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x5A +} }; + +const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32c6/include/phy_init_data.h b/components/esp_phy/esp32c6/include/phy_init_data.h index aa6e9b4030..322b9bec8e 100644 --- a/components/esp_phy/esp32c6/include/phy_init_data.h +++ b/components/esp_phy/esp32c6/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -30,151 +29,16 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif - -static const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x01, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0x70 -} }; - -static const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ diff --git a/components/esp_phy/esp32c6/phy_init_data.c b/components/esp_phy/esp32c6/phy_init_data.c new file mode 100644 index 0000000000..f60ba8f7e3 --- /dev/null +++ b/components/esp_phy/esp32c6/phy_init_data.c @@ -0,0 +1,146 @@ +/* + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + +const char __attribute__((section(".rodata"))) phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x01, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x54), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x3C), + 0x00, + 0x00, + 0x00, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x70 +} }; + +const char __attribute__((section(".rodata"))) phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32s2/include/phy_init_data.h b/components/esp_phy/esp32s2/include/phy_init_data.h index 5128a86569..322b9bec8e 100644 --- a/components/esp_phy/esp32s2/include/phy_init_data.h +++ b/components/esp_phy/esp32s2/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -30,150 +29,16 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif -static const char phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x80, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4E), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4E), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0xf1 -} }; - -static const char phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ diff --git a/components/esp_phy/esp32s2/phy_init_data.c b/components/esp_phy/esp32s2/phy_init_data.c new file mode 100644 index 0000000000..a144c2ffc3 --- /dev/null +++ b/components/esp_phy/esp32s2/phy_init_data.c @@ -0,0 +1,146 @@ +/* + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + +const char phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x80, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4E), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4E), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), + 0x00, + 0x00, + 0x00, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0xf1 +} }; + +const char phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/esp32s3/include/phy_init_data.h b/components/esp_phy/esp32s3/include/phy_init_data.h index 4f2b669450..322b9bec8e 100644 --- a/components/esp_phy/esp32s3/include/phy_init_data.h +++ b/components/esp_phy/esp32s3/include/phy_init_data.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2016-2021 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -12,11 +12,10 @@ #ifdef __cplusplus extern "C" { #endif - // constrain a value between 'low' and 'high', inclusive #define LIMIT(val, low, high) ((val < low) ? low : (val > high) ? high : val) - #define PHY_INIT_MAGIC "PHYINIT" +#define PHY_INIT_MAGIC_LEN 8 // should be strlen(PHY_INIT_MAGIC) + 1 // define the lowest tx power as LOWEST_PHY_TX_POWER #define PHY_TX_POWER_LOWEST LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 52) @@ -30,134 +29,16 @@ extern "C" { #define PHY_SUPPORT_MULTIPLE_BIN_OFFSET 125 #endif -static const char phy_init_magic_pre[] = PHY_INIT_MAGIC; - -/** - * @brief Structure containing default recommended PHY initialization parameters. - */ -static const esp_phy_init_data_t phy_init_data= { { - 0x00, - 0x00, - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), - LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), - 0x00, - 0x00, - 0x00, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0xff, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0x74 -} }; - -static const char phy_init_magic_post[] = PHY_INIT_MAGIC; +extern const char phy_init_magic_pre[]; +extern const esp_phy_init_data_t phy_init_data; +extern const char phy_init_magic_post[]; #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN /** - * @brief PHY init data control infomation structure + * @brief PHY init data control information structure */ typedef struct { - uint8_t control_info_checksum[4]; /*!< 4-byte control infomation checksum */ + uint8_t control_info_checksum[4]; /*!< 4-byte control information checksum */ uint8_t multiple_bin_checksum[4]; /*!< 4-byte multiple bin checksum */ uint8_t check_algorithm; /*!< check algorithm */ uint8_t version; /*!< PHY init data bin version */ diff --git a/components/esp_phy/esp32s3/phy_init_data.c b/components/esp_phy/esp32s3/phy_init_data.c new file mode 100644 index 0000000000..d861f4090f --- /dev/null +++ b/components/esp_phy/esp32s3/phy_init_data.c @@ -0,0 +1,130 @@ +/* + * SPDX-FileCopyrightText: 2016-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "sdkconfig.h" +#include "phy_init_data.h" + +const char phy_init_magic_pre[] = PHY_INIT_MAGIC; + +/** + * @brief Structure containing default recommended PHY initialization parameters. + */ +const esp_phy_init_data_t phy_init_data= { { + 0x00, + 0x00, + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x50), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4c), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x48), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x44), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x4a), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x46), + LIMIT(CONFIG_ESP_PHY_MAX_TX_POWER * 4, 0, 0x42), + 0x00, + 0x00, + 0x00, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x74 +} }; + +const char phy_init_magic_post[] = PHY_INIT_MAGIC; diff --git a/components/esp_phy/src/phy_init.c b/components/esp_phy/src/phy_init.c index bfa5a46a00..3d83adf5c4 100644 --- a/components/esp_phy/src/phy_init.c +++ b/components/esp_phy/src/phy_init.c @@ -35,6 +35,10 @@ #include "soc/rtc_periph.h" +#if CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION +#include "esp_partition.h" +#endif + #if __has_include("soc/syscon_reg.h") #include "soc/syscon_reg.h" #endif @@ -521,13 +525,12 @@ IRAM_ATTR void esp_mac_bb_power_down(void) // PHY init data handling functions #if CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION -#include "esp_partition.h" const esp_phy_init_data_t* esp_phy_get_init_data(void) { #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED - size_t init_data_store_length = sizeof(phy_init_magic_pre) + - sizeof(esp_phy_init_data_t) + sizeof(phy_init_magic_post); + size_t init_data_store_length = PHY_INIT_MAGIC_LEN + + sizeof(esp_phy_init_data_t) + PHY_INIT_MAGIC_LEN; uint8_t* init_data_store = (uint8_t*) malloc(init_data_store_length); if (init_data_store == NULL) { ESP_LOGE(TAG, "failed to allocate memory for updated country code PHY init data"); @@ -543,8 +546,8 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) return NULL; } ESP_LOGD(TAG, "loading PHY init data from partition at offset 0x%" PRIx32 "", partition->address); - size_t init_data_store_length = sizeof(phy_init_magic_pre) + - sizeof(esp_phy_init_data_t) + sizeof(phy_init_magic_post); + size_t init_data_store_length = PHY_INIT_MAGIC_LEN + + sizeof(esp_phy_init_data_t) + PHY_INIT_MAGIC_LEN; uint8_t* init_data_store = (uint8_t*) malloc(init_data_store_length); if (init_data_store == NULL) { ESP_LOGE(TAG, "failed to allocate memory for PHY init data"); @@ -559,9 +562,9 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) } #endif // verify data - if (memcmp(init_data_store, PHY_INIT_MAGIC, sizeof(phy_init_magic_pre)) != 0 || - memcmp(init_data_store + init_data_store_length - sizeof(phy_init_magic_post), - PHY_INIT_MAGIC, sizeof(phy_init_magic_post)) != 0) { + if (memcmp(init_data_store, PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) != 0 || + memcmp(init_data_store + init_data_store_length - PHY_INIT_MAGIC_LEN, + PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) != 0) { #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED ESP_LOGE(TAG, "failed to validate embedded PHY init data"); free(init_data_store); @@ -575,15 +578,15 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) ESP_LOGE(TAG, "failed to validate PHY data partition, restoring default data into flash..."); memcpy(init_data_store, - PHY_INIT_MAGIC, sizeof(phy_init_magic_pre)); - memcpy(init_data_store + sizeof(phy_init_magic_pre), + PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN); + memcpy(init_data_store + PHY_INIT_MAGIC_LEN, &phy_init_data, sizeof(phy_init_data)); - memcpy(init_data_store + sizeof(phy_init_magic_pre) + sizeof(phy_init_data), - PHY_INIT_MAGIC, sizeof(phy_init_magic_post)); + memcpy(init_data_store + PHY_INIT_MAGIC_LEN + sizeof(phy_init_data), + PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN); - assert(memcmp(init_data_store, PHY_INIT_MAGIC, sizeof(phy_init_magic_pre)) == 0); - assert(memcmp(init_data_store + init_data_store_length - sizeof(phy_init_magic_post), - PHY_INIT_MAGIC, sizeof(phy_init_magic_post)) == 0); + assert(memcmp(init_data_store, PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) == 0); + assert(memcmp(init_data_store + init_data_store_length - PHY_INIT_MAGIC_LEN, + PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) == 0); // write default data err = esp_partition_write(partition, 0, init_data_store, init_data_store_length); @@ -596,7 +599,7 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) #endif // CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED } #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN - if ((*(init_data_store + (sizeof(phy_init_magic_pre) + PHY_SUPPORT_MULTIPLE_BIN_OFFSET)))) { + if ((*(init_data_store + (PHY_INIT_MAGIC_LEN + PHY_SUPPORT_MULTIPLE_BIN_OFFSET)))) { s_multiple_phy_init_data_bin = true; ESP_LOGI(TAG, "Support multiple PHY init data bins"); } else { @@ -604,12 +607,12 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void) } #endif ESP_LOGD(TAG, "PHY data partition validated"); - return (const esp_phy_init_data_t*) (init_data_store + sizeof(phy_init_magic_pre)); + return (const esp_phy_init_data_t*) (init_data_store + PHY_INIT_MAGIC_LEN); } void esp_phy_release_init_data(const esp_phy_init_data_t* init_data) { - free((uint8_t*) init_data - sizeof(phy_init_magic_pre)); + free((uint8_t*) init_data - PHY_INIT_MAGIC_LEN); } #else // CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION @@ -941,7 +944,7 @@ static esp_err_t phy_find_bin_data_according_type(uint8_t* out_init_data_store, int i = 0; for (i = 0; i < init_data_control_info->number; i++) { if (init_data_type == *(init_data_multiple + (i * sizeof(esp_phy_init_data_t)) + PHY_INIT_DATA_TYPE_OFFSET)) { - memcpy(out_init_data_store + sizeof(phy_init_magic_pre), + memcpy(out_init_data_store + PHY_INIT_MAGIC_LEN, init_data_multiple + (i * sizeof(esp_phy_init_data_t)), sizeof(esp_phy_init_data_t)); break; } @@ -1041,8 +1044,8 @@ esp_err_t esp_phy_update_init_data(phy_init_data_type_t init_data_type) #if CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED esp_err_t err = ESP_OK; const esp_partition_t* partition = NULL; - size_t init_data_store_length = sizeof(phy_init_magic_pre) + - sizeof(esp_phy_init_data_t) + sizeof(phy_init_magic_post); + size_t init_data_store_length = PHY_INIT_MAGIC_LEN + + sizeof(esp_phy_init_data_t) + PHY_INIT_MAGIC_LEN; uint8_t* init_data_store = (uint8_t*) malloc(init_data_store_length); if (init_data_store == NULL) { ESP_LOGE(TAG, "failed to allocate memory for updated country code PHY init data"); @@ -1057,8 +1060,8 @@ esp_err_t esp_phy_update_init_data(phy_init_data_type_t init_data_type) ESP_LOGE(TAG, "Updated country code PHY data partition not found"); return ESP_FAIL; } - size_t init_data_store_length = sizeof(phy_init_magic_pre) + - sizeof(esp_phy_init_data_t) + sizeof(phy_init_magic_post); + size_t init_data_store_length = PHY_INIT_MAGIC_LEN + + sizeof(esp_phy_init_data_t) + PHY_INIT_MAGIC_LEN; uint8_t* init_data_store = (uint8_t*) malloc(init_data_store_length); if (init_data_store == NULL) { ESP_LOGE(TAG, "failed to allocate memory for updated country code PHY init data"); @@ -1072,9 +1075,9 @@ esp_err_t esp_phy_update_init_data(phy_init_data_type_t init_data_type) return ESP_FAIL; } #endif - if (memcmp(init_data_store, PHY_INIT_MAGIC, sizeof(phy_init_magic_pre)) != 0 || - memcmp(init_data_store + init_data_store_length - sizeof(phy_init_magic_post), - PHY_INIT_MAGIC, sizeof(phy_init_magic_post)) != 0) { + if (memcmp(init_data_store, PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) != 0 || + memcmp(init_data_store + init_data_store_length - PHY_INIT_MAGIC_LEN, + PHY_INIT_MAGIC, PHY_INIT_MAGIC_LEN) != 0) { free(init_data_store); ESP_LOGE(TAG, "failed to validate updated country code PHY data partition"); return ESP_FAIL; @@ -1096,7 +1099,7 @@ esp_err_t esp_phy_update_init_data(phy_init_data_type_t init_data_type) } if (s_current_apply_phy_init_data != s_phy_init_data_type) { - err = esp_phy_apply_phy_init_data(init_data_store + sizeof(phy_init_magic_pre)); + err = esp_phy_apply_phy_init_data(init_data_store + PHY_INIT_MAGIC_LEN); if (err != ESP_OK) { ESP_LOGE(TAG, "PHY init data failed to load"); free(init_data_store); diff --git a/tools/ci/check_public_headers_exceptions.txt b/tools/ci/check_public_headers_exceptions.txt index 72e9476416..06860696dc 100644 --- a/tools/ci/check_public_headers_exceptions.txt +++ b/tools/ci/check_public_headers_exceptions.txt @@ -25,15 +25,6 @@ components/lwip/lwip/src/include/lwip/priv/memp_std.h components/lwip/include/lwip/sockets.h components/lwip/lwip/src/include/lwip/prot/nd6.h -## Header produced non-zero object: -components/esp_phy/esp32/include/phy_init_data.h -components/esp_phy/esp32s2/include/phy_init_data.h -components/esp_phy/esp32s3/include/phy_init_data.h -components/esp_phy/esp32c3/include/phy_init_data.h -components/esp_phy/esp32c2/include/phy_init_data.h -components/esp_phy/esp32c5/include/phy_init_data.h -components/esp_phy/esp32c6/include/phy_init_data.h - components/spi_flash/include/spi_flash_chip_issi.h components/spi_flash/include/spi_flash_chip_mxic.h components/spi_flash/include/spi_flash_chip_gd.h