blob: db82d832fa3436da83a78688ba12a32eb06de3dc [file] [log] [blame]
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +05301cmake_minimum_required(VERSION 3.13)
2
3project(hal)
4
5set(esp_idf_dir ${IDF_PATH})
6
7set(SRC_DIR ${CMAKE_CURRENT_LIST_DIR}/src)
8set(INCLUDE_DIRS
9 ${CMAKE_CURRENT_LIST_DIR}/include
Almir Okatod5320292021-06-18 02:00:40 -030010 ${CMAKE_CURRENT_LIST_DIR}/include/${MCUBOOT_TARGET}
11 )
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053012
13list(APPEND INCLUDE_DIRS
14 ${esp_idf_dir}/components/esp_common/include
15 ${esp_idf_dir}/components/esp_rom/include
Almir Okatod5320292021-06-18 02:00:40 -030016 ${esp_idf_dir}/components/esp_rom/include/${MCUBOOT_TARGET}
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053017 ${esp_idf_dir}/components/xtensa/${MCUBOOT_TARGET}/include
18 ${esp_idf_dir}/components/spi_flash/include
19 ${esp_idf_dir}/components/spi_flash/private_include
20 ${esp_idf_dir}/components/xtensa/include
21 ${esp_idf_dir}/components/soc/${MCUBOOT_TARGET}/include
22 ${esp_idf_dir}/components/${MCUBOOT_TARGET}/include
23 ${esp_idf_dir}/components/soc/include
24 ${esp_idf_dir}/components/esp_hw_support/include
25 ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include
Almir Okatod5320292021-06-18 02:00:40 -030026 ${esp_idf_dir}/components/hal/${MCUBOOT_TARGET}/include/hal
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053027 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}
28 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/private_include
29 ${esp_idf_dir}/components/bootloader_support/include
30 ${esp_idf_dir}/components/bootloader_support/include_bootloader
31 ${esp_idf_dir}/components/hal/include
32 ${esp_idf_dir}/components/efuse/include
33 ${esp_idf_dir}/components/efuse/${MCUBOOT_TARGET}/include
34 )
35set(hal_srcs
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053036 ${SRC_DIR}/bootloader_wdt.c
Almir Okatod5320292021-06-18 02:00:40 -030037 ${SRC_DIR}/${MCUBOOT_TARGET}/bootloader_init.c
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053038 ${esp_idf_dir}/components/hal/mpu_hal.c
39 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
40 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash_config_${MCUBOOT_TARGET}.c
41 ${esp_idf_dir}/components/bootloader_support/src/bootloader_clock_init.c
42 ${esp_idf_dir}/components/bootloader_support/src/bootloader_efuse_${MCUBOOT_TARGET}.c
43 ${esp_idf_dir}/components/bootloader_support/src/bootloader_panic.c
44 ${esp_idf_dir}/components/bootloader_support/src/bootloader_mem.c
45 ${esp_idf_dir}/components/spi_flash/${MCUBOOT_TARGET}/spi_flash_rom_patch.c
46 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_init.c
47 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
48 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
49 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
50 ${esp_idf_dir}/components/hal/wdt_hal_iram.c
51 ${esp_idf_dir}/components/esp_hw_support/cpu_util.c
52 ${esp_idf_dir}/components/esp_rom/patches/esp_rom_uart.c
53 ${esp_idf_dir}/components/${MCUBOOT_TARGET}/clk.c
54 )
55
Almir Okatod5320292021-06-18 02:00:40 -030056if ("${MCUBOOT_TARGET}" STREQUAL "esp32s2")
57 list(APPEND hal_srcs
58 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/regi2c_ctrl.c
59 )
60endif()
61
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +053062set(CFLAGS
63 "-nostdlib"
64 "-mlongcalls"
65 "-Wno-frame-address"
66 "-Wall"
67 "-Wextra"
68 "-W"
69 "-Wwrite-strings"
70 "-Wlogical-op"
71 "-Wshadow"
72 "-ffunction-sections"
73 "-fdata-sections"
74 "-fstrict-volatile-bitfields"
75 "-Werror=all"
76 "-Wno-error=unused-function"
77 "-Wno-error=unused-but-set-variable"
78 "-Wno-error=unused-variable"
79 "-Wno-error=deprecated-declarations"
80 "-Wno-unused-parameter"
81 "-Wno-sign-compare"
82 "-ggdb"
83 "-Os"
84 "-D_GNU_SOURCE"
85 "-std=gnu99"
86 "-Wno-old-style-declaration"
87 "-Wno-implicit-int"
88 )
89
90set(LDFLAGS
91 "-mlongcalls"
92 "-Wno-frame-address"
93 "-Wl,--cref"
94 "-Wl,--Map=${APP_NAME}.map"
95 "-fno-rtti"
96 "-fno-lto"
97 "-Wl,--gc-sections"
98 "-Wl,--undefined=uxTopUsedPriority"
99 "-lm"
100 "-lgcc"
101 "-lgcov"
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530102 )
103
104add_library(hal STATIC ${hal_srcs} ${INCLUDE_DIRS})
105
106set_source_files_properties(
107 ${esp_idf_dir}/components/bootloader_support/src/bootloader_flash.c
108 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk_init.c
Almir Okatod5320292021-06-18 02:00:40 -0300109 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_init.c
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530110 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_clk.c
111 ${esp_idf_dir}/components/esp_hw_support/port/${MCUBOOT_TARGET}/rtc_time.c
112 PROPERTIES COMPILE_FLAGS
113 "-Wno-unused-variable")
114
115target_include_directories(
116 hal
117 PUBLIC
118 ${INCLUDE_DIRS}
119 )
120
121target_compile_options(
122 hal
123 PUBLIC
124 ${CFLAGS}
125 )
126
Almir Okatod5320292021-06-18 02:00:40 -0300127set(LINKER_SCRIPTS
Shubham Kulkarnic75b3c72021-07-20 11:43:28 +0530128 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.ld
129 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.libgcc.ld
130 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.api.ld
131 -T${esp_idf_dir}/components/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.peripherals.ld
132 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.newlib-funcs.ld
133 )
Almir Okatod5320292021-06-18 02:00:40 -0300134
135if ("${MCUBOOT_TARGET}" STREQUAL "esp32s2")
136 list(APPEND LINKER_SCRIPTS
137 -T${esp_idf_dir}/components/esp_rom/${MCUBOOT_TARGET}/ld/${MCUBOOT_TARGET}.rom.spiflash.ld
138 )
139endif()
140
141target_link_libraries(
142 hal
143 PUBLIC
144 ${LDFLAGS}
145 ${LINKER_SCRIPTS}
146 )