32dcf814d508cdfb678d01e21cb25ddc39d50a56
1 # Copyright (C) 2019-2020 Texas Instruments Incorporated - http://www.ti.com/
2 #
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
6 # are met:
7 #
8 # Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 #
11 # Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the
14 # distribution.
15 #
16 # Neither the name of Texas Instruments Incorporated nor the names of
17 # its contributors may be used to endorse or promote products derived
18 # from this software without specific prior written permission.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #
33 # Macro definitions referenced below
34 #
36 #
37 # This file is the makefile for building CSL uart app.
38 #
39 include $(PDK_INSTALL_PATH)/ti/build/Rules.make
41 # Board diag parameters which can be controlled outside this makefile
42 UNIFLASH ?= uart
43 PROFILE ?= release
44 TESTMODE ?= FUNCTIONAL_TEST
45 MODENAME ?=
46 BOARD_UTILS_CFLAGS ?=
48 HS_SUFFIX=
49 ifeq ($(BUILD_HS),yes)
50 HS_SUFFIX=_hs
51 endif
53 APP_NAME ?= board_utils_$(UNIFLASH)_flash_programmer$(HS_SUFFIX)
55 BUILD_PROFILE_$(CORE) = $(PROFILE)
57 BUILD_OS_TYPE = baremetal
58 LNKFLAGS_LOCAL_mpu1_0 += --entry Entry
59 EXTERNAL_INTERFACES =
60 XDC_CFG_FILE_mpu1_0 =
61 XDC_CFG_FILE_mcu1_0 =
63 UNIFLASH_BASE_DIR=$(PDK_BOARD_UTILS_COMP_PATH)/uniflash/target
65 # Name of the binary if different from the default (APP_NAME)_$(BOARD_$(CORE)_<build_profile>
66 LOCAL_APP_NAME = $(UNIFLASH)_$(BOARD)_flash_programmer
68 SRCDIR = $(UNIFLASH_BASE_DIR)/src
69 INCDIR = $(PDK_BOARD_COMP_PATH) $(UNIFLASH_BASE_DIR)/src $(UNIFLASH_BASE_DIR)/include $(PDK_BOARD_COMP_PATH)/src/$(BOARD)/include $(PDK_BOARD_COMP_PATH)/src/$(BOARD) $(PDK_BOARD_COMP_PATH)/src/flash $(PDK_CSL_COMP_PATH)
71 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm am65xx_evm am65xx_idk j7200_evm am64x_evm))
72 SRCDIR += $(UNIFLASH_BASE_DIR)/soc/k3 $(UNIFLASH_BASE_DIR)/src/ospi $(UNIFLASH_BASE_DIR)/src/qspi $(UNIFLASH_BASE_DIR)/src/hyperflash $(UNIFLASH_BASE_DIR)/src/emmc $(PDK_BOARD_COMP_PATH)/diag/common/$(SOC)
73 INCDIR += $(UNIFLASH_BASE_DIR)/soc/k3 $(UNIFLASH_BASE_DIR)/src/ospi $(UNIFLASH_BASE_DIR)/src/qspi $(UNIFLASH_BASE_DIR)/src/hyperflash $(UNIFLASH_BASE_DIR)/src/emmc $(PDK_BOARD_COMP_PATH)/diag/common/$(SOC)
74 ifeq ($(BOARD), $(filter $(BOARD), am65xx_evm am65xx_idk))
75 SRCDIR += $(PDK_BOARD_COMP_PATH)/diag/common/am65xx
76 INCDIR += $(PDK_BOARD_COMP_PATH)/diag/common/am65xx
77 endif
78 endif
80 ifeq ($(BOARD), $(filter $(BOARD), tpr12_evm))
81 SRCDIR += $(UNIFLASH_BASE_DIR)/soc/$(SOC) $(UNIFLASH_BASE_DIR)/src/qspi
82 INCDIR += $(UNIFLASH_BASE_DIR)/src/qspi
83 endif
85 # List all the external components/interfaces, whose interface header files
86 # need to be included for this component
87 INCLUDE_EXTERNAL_INTERFACES = pdk
89 # List all the components required by the application
90 COMP_LIST_COMMON = $(PDK_COMMON_BAREMETAL_COMP)
91 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm am65xx_evm am65xx_idk j7200_evm am64x_evm))
92 COMP_LIST_COMMON += spi_dma mmcsd
93 endif
95 ifeq ($(BOARD), $(filter $(BOARD), tpr12_evm))
96 COMP_LIST_COMMON += spi_dma
97 endif
99 ifneq ($(strip $(HS_SUFFIX)),) #if $(HS_SUFFIX) is non-empty
100 SCICLIENT := $(filter sciclient%,$(COMP_LIST_COMMON))
101 COMP_LIST_COMMON := $(subst $(SCICLIENT),$(SCICLIENT)_hs,$(COMP_LIST_COMMON))
102 endif
104 # Common source files and CFLAGS across all platforms and cores
105 ifeq ($(BUILD_HS),yes)
106 # Already packaged in non HS build. Relative paths are different. So better to skip
107 PACKAGE_SRCS_COMMON =
108 else
109 PACKAGE_SRCS_COMMON = ../../board ../../build ../../include ../../src ../../soc/soc.h
110 PACKAGE_SRCS_COMMON += ../../../host
111 PACKAGE_SRCS_COMMON += ../../../../board_utils_component.mk
112 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm am65xx_evm am65xx_idk j7200_evm am64x_evm))
113 PACKAGE_SRCS_COMMON += ../../soc/k3
114 endif
115 ifeq ($(BOARD), $(filter $(BOARD), tpr12_evm))
116 PACKAGE_SRCS_COMMON += ../../soc/$(SOC)
117 endif
118 PACKAGE_SRCS_COMMON = ../../target ../../host ../../../board_utils_component.mk
119 endif
121 SRCS_COMMON = uart_main.c xmodem.c soc.c
123 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm j7200_evm))
124 SRCS_COMMON += ospi.c emmc.c hyperflash.c
125 EXTERNAL_LNKCMD_FILE_LOCAL = $(UNIFLASH_BASE_DIR)/soc/k3/linker_j7.cmd
126 endif
128 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm))
129 SRCS_COMMON += qspi.c
130 endif
131 ifeq ($(BOARD), $(filter $(BOARD), am65xx_evm am65xx_idk am64x_evm))
132 SRCS_COMMON += ospi.c emmc.c
133 EXTERNAL_LNKCMD_FILE_LOCAL = $(UNIFLASH_BASE_DIR)/soc/k3/linker_am64x.cmd
134 endif
136 ifeq ($(BOARD), $(filter $(BOARD), tpr12_evm))
137 SRCS_COMMON += qspi.c
138 EXTERNAL_LNKCMD_FILE_LOCAL = $(UNIFLASH_BASE_DIR)/soc/$(SOC)/linker.cmd
139 BOARD_UTILS_CFLAGS += -DSPI_DMA_ENABLE
140 endif
142 ifeq ($(NOJTAG), yes)
143 BOARD_UTILS_CFLAGS += UFP_DISABLE_JTAG_LOAD
144 endif
146 CFLAGS_LOCAL_COMMON = $(PDK_CFLAGS) $(BOARD_UTILS_CFLAGS) -DSOC_$(SOC) -D$(BOARD)
147 ifeq ($(BOARD), $(filter $(BOARD), am65xx_evm am65xx_idk))
148 CFLAGS_LOCAL_COMMON += -DSOC_AM65XX
149 endif
151 ifeq ($(BOARD), $(filter $(BOARD), j721e_evm am65xx_evm am65xx_idk am64x_evm))
152 ifeq ($(BUILD_HS),no)
153 #CFLAGS_LOCAL_COMMON += -DSPI_DMA_ENABLE
154 endif
155 endif
157 SBL_OBJ_COPY := $(TOOLCHAIN_PATH_GCC_ARCH64)/bin/$(GCC_ARCH64_BIN_PREFIX)-objcopy
158 export SBL_OBJ_COPY
160 # Include common make files
161 ifeq ($(MAKERULEDIR), )
162 #Makerule path not defined, define this and assume relative path from ROOTDIR
163 MAKERULEDIR := $(ROOTDIR)/ti/build/makerules
164 export MAKERULEDIR
165 endif
166 include $(MAKERULEDIR)/common.mk
168 # OBJs and libraries are built by using rule defined in rules_<target>.mk
169 # and need not be explicitly specified here
171 # Nothing beyond this point