diff --git a/firmware/CMakeLists.txt b/firmware/CMakeLists.txt index d63a3b54a..9a7bb2d19 100644 --- a/firmware/CMakeLists.txt +++ b/firmware/CMakeLists.txt @@ -26,7 +26,12 @@ set(CHIBIOS_PORTAPACK ${PROJECT_SOURCE_DIR}/chibios-portapack) set(HACKRF_FIRMWARE_FILENAME hackrf_one_usb_ram.dfu) set(HACKRF_FIRMWARE_IMAGE ${PROJECT_SOURCE_DIR}/${HACKRF_FIRMWARE_FILENAME}) + +set(HACKRF_CPLD_SVF_FILENAME hackrf_cpld_default.svf) +set(HACKRF_CPLD_SVF_PATH ${PROJECT_SOURCE_DIR}/${HACKRF_CPLD_SVF_FILENAME}) + set(EXTRACT_CPLD_DATA ${PROJECT_SOURCE_DIR}/tools/extract_cpld_data.py) +set(EXTRACT_SVF_DATA_XC2C64A ${PROJECT_SOURCE_DIR}/tools/extract_svf_data_xc2c64a.py) set(STRIP_DFU ${PROJECT_SOURCE_DIR}/tools/strip_dfu.py) set(MAKE_SPI_IMAGE ${PROJECT_SOURCE_DIR}/tools/make_spi_image.py) set(MAKE_IMAGE_CHUNK ${PROJECT_SOURCE_DIR}/tools/make_image_chunk.py) diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 46de19ba1..f4190523f 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -74,6 +74,9 @@ set(USE_FPU no) set(CPLD_SVF_PATH ${HARDWARE_PATH}/portapack_h1/cpld/output_files/portapack_h1_cpld.svf) set(CPLD_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/portapack_cpld_data.cpp) +set(HACKRF_CPLD_DATA_HPP ${CMAKE_CURRENT_BINARY_DIR}/hackrf_cpld_data.hpp) +set(HACKRF_CPLD_DATA_CPP ${CMAKE_CURRENT_BINARY_DIR}/hackrf_cpld_data.cpp) + # Imported source files and paths include(${CHIBIOS_PORTAPACK}/boards/GSG_HACKRF_ONE/board.cmake) include(${CHIBIOS_PORTAPACK}/os/hal/platforms/LPC43xx_M0/platform.cmake) @@ -181,9 +184,12 @@ set(CPPSRC ${COMMON}/lfsr_random.cpp core_control.cpp ${COMMON}/cpld_max5.cpp + ${COMMON}/cpld_xilinx.cpp ${COMMON}/jtag.cpp + ${COMMON}/jtag_tap.cpp cpld_update.cpp ${CPLD_DATA_CPP} + ${HACKRF_CPLD_DATA_CPP} ) # C sources to be compiled in ARM mode regardless of the global setting. @@ -209,7 +215,7 @@ set(TCPPSRC) # List ASM source files here set(ASMSRC ${PORTASM}) -set(INCDIR ${COMMON} ${PORTINC} ${KERNINC} ${TESTINC} +set(INCDIR ${CMAKE_CURRENT_BINARY_DIR} ${COMMON} ${PORTINC} ${KERNINC} ${TESTINC} ${HALINC} ${PLATFORMINC} ${BOARDINC} ${FATFSINC} ${CHIBIOS}/os/various @@ -303,6 +309,12 @@ add_custom_command( DEPENDS ${EXTRACT_CPLD_DATA} ${CPLD_SVF_PATH} ) +add_custom_command( + OUTPUT ${HACKRF_CPLD_DATA_HPP} ${HACKRF_CPLD_DATA_CPP} + COMMAND ${EXTRACT_SVF_DATA_XC2C64A} ${HACKRF_CPLD_SVF_PATH} hackrf::one::cpld::verify_blocks ${HACKRF_CPLD_DATA_HPP} ${HACKRF_CPLD_DATA_CPP} + DEPENDS ${EXTRACT_SVF_DATA_XC2C64A} ${HACKRF_CPLD_SVF_PATH} +) + add_executable(${PROJECT_NAME}.elf ${CSRC} ${CPPSRC} ${ASMSRC}) set_target_properties(${PROJECT_NAME}.elf PROPERTIES LINK_DEPENDS ${LDSCRIPT}) add_definitions(${DEFS})