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)
// 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"
static const char phy_init_magic_post[] = PHY_INIT_MAGIC;
+#endif /* PHY_INIT_DATA_H */
+
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()
--- /dev/null
+0x1000 bootloader/bootloader.bin
+0x8000 partition_table/partition-table.bin
+${CONFIG_APP_OFFSET} ${PROJECT_NAME}.elf
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()
set(CMAKE_C_COMPILER xtensa-esp32-elf-gcc)\r
set(CMAKE_CXX_COMPILER xtensa-esp32-elf-g++)\r
set(CMAKE_ASM_COMPILER xtensa-esp32-elf-gcc)\r
+set(CMAKE_OBJCOPY xtensa-esp32-elf-objcopy)\r
\r
set(CMAKE_EXE_LINKER_FLAGS "-nostdlib" CACHE STRING "Linker Base Flags")\r
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()
+