cmake: Generate PHY init data partition as part of the build
This commit is contained in:
parent
0bdc12256e
commit
cb99531d15
|
@ -58,4 +58,18 @@ else()
|
|||
add_custom_target(esp32_linker_script DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/esp32_out.ld)
|
||||
add_dependencies(esp32 esp32_linker_script)
|
||||
|
||||
endif()
|
||||
if(CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION)
|
||||
set(PHY_INIT_DATA_BIN 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
|
||||
add_custom_command(
|
||||
OUTPUT ${PHY_INIT_DATA_BIN}
|
||||
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/phy_init_data.h
|
||||
COMMAND ${CMAKE_C_COMPILER} -x c -c -o phy_init_data.obj -I ${CMAKE_CURRENT_LIST_DIR} -I ${CMAKE_CURRENT_LIST_DIR}/include -I ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_LIST_DIR}/phy_init_data.h
|
||||
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})
|
||||
|
||||
endif(CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION)
|
||||
|
||||
endif(BOOTLOADER_BUILD)
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
#ifndef PHY_INIT_DATA_H
|
||||
#define PHY_INIT_DATA_H /* don't use #pragma once here, we compile this file sometimes */
|
||||
#include "esp_phy_init.h"
|
||||
#include "sdkconfig.h"
|
||||
|
||||
|
@ -138,3 +139,5 @@ static const esp_phy_init_data_t phy_init_data= { {
|
|||
|
||||
static const char phy_init_magic_post[] = PHY_INIT_MAGIC;
|
||||
|
||||
#endif /* PHY_INIT_DATA_H */
|
||||
|
||||
|
|
|
@ -1 +1,10 @@
|
|||
register_config_only_component()
|
||||
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_LIST_DIR}/flash_project_args.in"
|
||||
"${CMAKE_BINARY_DIR}/flash_project_args"
|
||||
)
|
||||
if(CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION)
|
||||
file_append_line(${CMAKE_BINARY_DIR}/flash_project_args
|
||||
"${CONFIG_PHY_DATA_OFFSET} esp32/phy_init_data.bin")
|
||||
endif()
|
||||
|
|
3
components/esptool_py/flash_project_args.in
Normal file
3
components/esptool_py/flash_project_args.in
Normal file
|
@ -0,0 +1,3 @@
|
|||
0x1000 bootloader/bootloader.bin
|
||||
0x8000 partition_table/partition-table.bin
|
||||
${CONFIG_APP_OFFSET} ${PROJECT_NAME}.elf
|
|
@ -11,12 +11,12 @@ else()
|
|||
endif()
|
||||
|
||||
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
|
||||
set(unsigned_partition_bin "partition-unsigned.bin")
|
||||
set(final_partition_bin "partition.bin")
|
||||
set(unsigned_partition_bin "partition-table-unsigned.bin")
|
||||
set(final_partition_bin "partition-table.bin")
|
||||
set(final_partition_target "sign_partition_table")
|
||||
else()
|
||||
set(unsigned_partition_bin "partition.bin")
|
||||
set(final_partition_bin "partition.bin")
|
||||
set(unsigned_partition_bin "partition-table.bin")
|
||||
set(final_partition_bin "partition-table.bin")
|
||||
set(final_partition_target "build_partition_table")
|
||||
endif()
|
||||
|
||||
|
|
|
@ -3,5 +3,6 @@ set(CMAKE_SYSTEM_NAME Generic)
|
|||
set(CMAKE_C_COMPILER xtensa-esp32-elf-gcc)
|
||||
set(CMAKE_CXX_COMPILER xtensa-esp32-elf-g++)
|
||||
set(CMAKE_ASM_COMPILER xtensa-esp32-elf-gcc)
|
||||
set(CMAKE_OBJCOPY xtensa-esp32-elf-objcopy)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-nostdlib" CACHE STRING "Linker Base Flags")
|
||||
|
|
|
@ -127,3 +127,22 @@ macro(include_if_exists path)
|
|||
include("${path}")
|
||||
endif()
|
||||
endmacro(include_if_exists)
|
||||
|
||||
# Append a single line to the file specified
|
||||
# The line ending is determined by the host OS
|
||||
function(file_append_line file line)
|
||||
if(ENV{MSYSTEM} OR CMAKE_HOST_WIN32)
|
||||
set(line_ending "\r\n")
|
||||
else() # unix
|
||||
set(line_ending "\n")
|
||||
endif()
|
||||
file(READ ${file} existing)
|
||||
string(FIND ${existing} ${line_ending} last_newline REVERSE)
|
||||
string(LENGTH ${existing} length)
|
||||
math(EXPR length "${length}-1")
|
||||
if(NOT length EQUAL last_newline) # file doesn't end with a newline
|
||||
file(APPEND "${file}" "${line_ending}")
|
||||
endif()
|
||||
file(APPEND "${file}" "${line}${line_ending}")
|
||||
endfunction()
|
||||
|
||||
|
|
Loading…
Reference in a new issue