[processor-sdk/performance-audio-sr.git] / pdk_k2g_1_0_1 / packages / ti / board / diag / framework / build / evmAM335x / armv7 / makefile
1 # Copyright (C) 2015 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 # Output directories
33 DIAGOBJDIR = $(PDK_DIAG_DIR)/obj/$(BOARD)/$(TARGET)
34 DIAGBINDIR = $(PDK_DIAG_DIR)/bin/$(BOARD)/$(TARGET)
35 SDDIAGBINDIR = $(PDK_DIAG_DIR)/bin/$(BOARD)/sd
37 # ARMV7 link directory that contain built peripheral libraries
38 ARMV7LIBDIR ?= ./lib
40 # Cross tools
41 ifdef TOOLCHAIN_PATH_A8
42 # Support backwards compatibility with KeyStone1 approach
43 CC = $(TOOLCHAIN_PATH_A8)/bin/$(CROSS_TOOL_PRFX)gcc
44 AC = $(TOOLCHAIN_PATH_A8)/bin/$(CROSS_TOOL_PRFX)as
45 AR = $(TOOLCHAIN_PATH_A8)/bin/$(CROSS_TOOL_PRFX)ar
46 LD = $(TOOLCHAIN_PATH_A8)/bin/$(CROSS_TOOL_PRFX)gcc
47 OBJCOPY = $(TOOLCHAIN_PATH_A8)/bin/$(CROSS_TOOL_PRFX)objcopy
48 endif
50 # INCLUDE Directories
51 CSL_DIR = $(PDK_INSTALL_PATH)/ti/csl/
53 # SBL dependencies
54 STARTERWARE_DIR = $(PDK_INSTALL_PATH)/ti/starterware
55 SBL_DIR = $(PDK_INSTALL_PATH)/ti/starterware/bootloader
56 SBL_MMCSD_DIR = $(SBL_DIR)/src
57 SBL_MMCSD_LIB_DIR = $(STARTERWARE_DIR)/library/mmcsd
58 SBL_FATFS_DIR = $(STARTERWARE_DIR)/library/third_party/ff9b/port
60 INCDIR := $(CSL_DIR);$(PDK_INSTALL_PATH);$(PDK_DIAG_DIR);$(PDK_DIAG_DIR)/src/$(BOARD)/include;$(PDK_INSTALL_PATH)/ti/drv/mmcsd;$(PDK_INSTALL_PATH)/ti/fs/fatfs;$(PDK_DIAG_DIR)/diag/common/$(DEVICE);$(SBL_DIR)/include;$(SBL_MMCSD_DIR);$(PDK_INSTALL_PATH)/ti/starterware/include
62 # Libraries
63 BOARD_LIB = "$(PDK_DIAG_DIR)/lib/$(BOARD)/armv7/ti.board.aa8fg"
64 MMCSD_LIB = "$(PDK_INSTALL_PATH)/ti/drv/mmcsd/lib/armv7/ti.drv.mmcsd.aa8fg"
65 FATFS_LIB = "$(PDK_INSTALL_PATH)/ti/fs/fatfs/lib/armv7/ti.fs.fatfs.aa8fg"
66 UART_LIB = "$(PDK_INSTALL_PATH)/ti/drv/uart/lib/am335x/armv7/ti.drv.uart.am335x.aa8fg"
67 I2C_LIB = "$(PDK_INSTALL_PATH)/ti/drv/i2c/lib/am335x/armv7/ti.drv.i2c.am335x.aa8fg"
68 PERIPHERAL_LIB = $(MMCSD_LIB) $(FATFS_LIB) $(UART_LIB) $(I2C_LIB)
70 # Compiler options
71 INTERNALDEFS = -g -gdwarf-3 -gstrict-dwarf -Wall $(DEBUG_FLAG) -D__ARMv7 -DSOC_$(DEVICE) -mtune=cortex-a8 -march=armv7-a -marm -mfloat-abi=hard -mfpu=neon
72 INTERNALDEFS += -DBOOT_MMCSD -D$(DEVICE)_BUILD
74 # Linker options
75 # Note: Framework needs a custom linker
76 LINKER_FILE = $(PDK_DIAG_DIR)/diag/common/$(DEVICE)/framework_linker.cmd
77 INTERNALLINKDEFS = -mfloat-abi=hard -Wl,--undefined,__aeabi_uidiv -Wl,--undefined,__aeabi_idiv --entry Entry -nostartfiles -static -Wl,--gc-sections -Wl,-T $(LINKER_FILE) -Wl,--start-group -l"c" -lrdimon -l"m" -l"nosys" $(BOARD_LIB) $(PERIPHERAL_LIB) -Wl,--end-group $(LDFLAGS)
78 BINFLAGS=-O binary
80 # Executable using device independent library and device object file
81 EXE=framework_$(BOARD)_$(TARGET).out
82 TESTNAME=framework
84 #
85 # Where the application will be loaded to. This is required to generate
86 # image with Header (Load Address and Size)
87 #
88 IMG_LOAD_ADDR = 0x402F0400
90 ifeq ($(OS),Windows_NT)
91 export TIIMAGE=tiimage.exe
92 else
93 export TIIMAGE=tiimage
94 endif
96 OBJEXT = o
97 ASMOBJEXT = ao
98 SRCDIR = $(PDK_DIAG_DIR)/diag/framework/src
99 BOARDSRCDIR = $(PDK_DIAG_DIR)/diag/framework/build/$(BOARD)
101 VPATH=$(SRCDIR):$(BOARDSRCDIR):$(PDK_DIAG_DIR)/diag/common/$(DEVICE):$(PDK_INSTALL_PATH)/ti/drv/uart/soc/am335x:$(PDK_INSTALL_PATH)/ti/drv/mmcsd/soc/am335x/:$(PDK_INSTALL_PATH)/ti/fs/fatfs/soc/am335x/
103 ifeq ($(OS),Windows_NT)
104 export MONO=
105 else
106 export MONO=mono
107 endif
109 INCS = -I. -I$(strip $(subst ;, -I,$(INCDIR)))
111 #List the Source Files
112 TEST_SRC = \
113 main.c \
114 framework.c
116 TEST_SRC_DEV = \
117 MMCSD_soc.c \
118 diag_osal.c \
119 diag_mmc.c
121 # Using the parse functions from SBL
122 SBL_SRC =
123 #sbl_mmcsd.c
124 # sbl_rprc.c
126 #Common entry object
127 ENTRY_SRC = framework_entry.S
129 #Common diagnostic source objects
130 DIAG_SRC = diag_common_cfg.c
132 # FLAGS for the SourceFiles
133 CFLAGS += -Wall -O2
134 SRC_CFLAGS = -I. $(CFLAGS) -g -gdwarf-3 -gstrict-dwarf -Wall
136 # Make Rule for the SRC Files
137 TEST_SRC_OBJS = $(patsubst %.c, $(DIAGOBJDIR)/%.$(OBJEXT), $(TEST_SRC))
138 ENTRY_OBJ = $(patsubst %.S, $(DIAGOBJDIR)/%.$(ASMOBJEXT), $(ENTRY_SRC))
139 TEST_SRC_DEV_OBJS = $(patsubst %.c, $(DIAGOBJDIR)/%.$(OBJEXT), $(TEST_SRC_DEV))
140 DIAG_SRC_OBJS = $(patsubst %.c, $(DIAGOBJDIR)/%.$(OBJEXT), $(DIAG_SRC))
141 SBL_SRC_OBJS = $(patsubst %.c, $(DIAGOBJDIR)/%.$(OBJEXT), $(SBL_SRC))
143 all:$(DIAGBINDIR)/$(EXE)
145 $(DIAGBINDIR)/$(EXE): $(TEST_SRC_OBJS) $(TEST_SRC_DEV_OBJS) $(ENTRY_OBJ) $(DIAG_SRC_OBJS) $(SBL_SRC_OBJS) $(DIAGBINDIR)/.created $(DIAGOBJDIR)/.created $(STARTERWARE_DIR)/tools/ti_image/$(TIIMAGE)
146 @echo linking $(TEST_SRC_OBJS) $(TEST_SRC_DEV_OBJS) $(ENTRY_OBJ) $(DIAG_SRC_OBJS) $(SBL_SRC_OBJS) into $@ ...
147 @$(CC) $(TEST_SRC_OBJS) $(TEST_SRC_DEV_OBJS) $(ENTRY_OBJ) $(DIAG_SRC_OBJS) $(SBL_SRC_OBJS) $(INTERNALLINKDEFS) -Wl,-Map=$(DIAGBINDIR)/framework_$(BOARD).map -o $@
148 mkdir -p $(SDDIAGBINDIR)
149 $(OBJCOPY) $(BINFLAGS) $(DIAGBINDIR)/$(EXE) $(DIAGBINDIR)/$(TESTNAME).bin
150 $(STARTERWARE_DIR)/tools/ti_image/$(TIIMAGE) $(IMG_LOAD_ADDR) NONE $(DIAGBINDIR)/$(TESTNAME).bin $(SDDIAGBINDIR)/$(TESTNAME)
152 $(DIAGOBJDIR)/%.$(OBJEXT): %.c $(DIAGOBJDIR)/.created
153 @echo compiling $< ...
154 @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS) $< -o $@
156 $(DIAGOBJDIR)/%.$(ASMOBJEXT): %.S $(DIAGOBJDIR)/.created
157 @echo compiling $< ...
158 @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS) $< -o $@
160 $(DIAGOBJDIR)/.created:
161 @mkdir -p $(DIAGOBJDIR)
162 @touch $(DIAGOBJDIR)/.created
164 $(DIAGBINDIR)/.created:
165 @mkdir -p $(DIAGBINDIR)
166 @touch $(DIAGBINDIR)/.created
168 $(STARTERWARE_DIR)/tools/ti_image/$(TIIMAGE):
169 gcc -o $(STARTERWARE_DIR)/tools/ti_image/$(TIIMAGE) $(STARTERWARE_DIR)/tools/ti_image/tiimage.c
171 clean:
172 @rm -f $(DIAGBINDIR)/$(EXE)
173 @rm -f $(TEST_SRC_OBJS) $(TEST_SRC_DEV_OBJS) $(ENTRY_OBJ) $(DIAGBINDIR)/.created $(DIAGOBJDIR)/.created $(DIAGBINDIR)/*.bin $(DIAGBINDIR)/*.map $(SDDIAGBINDIR)/* $(SDDIAGBINDIR)/.created