[processor-sdk/performance-audio-sr.git] / psdk_cust / pdk_k2g_1_0_1_2_eng / packages / ti / boot / sbl / tools / flashWriter / qspi / src / makefile
1 # Copyright (C) 2015-2016 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 QSPI_WRTR_SRC_DIR ?= $(PDK_INSTALL_PATH)/ti/boot/sbl
37 QSPI_WRTR_BINDIR = $(QSPI_WRTR_SRC_DIR)/tools/flashWriter/qspi/bin/$(BOARD)
38 QSPI_WRTR_OBJDIR = $(QSPI_WRTR_SRC_DIR)/tools/flashWriter/qspi/bin/$(BOARD)/obj
39 ARMV7LIBDIR ?= ./lib
40 BINFLAGS = -O binary
42 #Cross tools
43 ifdef TOOLCHAIN_PATH_A15
44 # Support backwards compatibility with KeyStone1 approach
45 CC = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)gcc
46 AC = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)as
47 AR = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)ar
48 LD = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)gcc
49 BIN = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)objcopy
50 endif
52 # INCLUDE Directories
53 CSL_DIR = $(PDK_INSTALL_PATH)/ti/csl
54 BOARD_DIR = $(PDK_INSTALL_PATH)/ti/board
56 # Libraries
57 BOARD_LIB = "$(PDK_INSTALL_PATH)/ti/board/lib/$(BOARD)/armv7/ti.board.aa15fg"
58 UART_LIB = "$(PDK_INSTALL_PATH)/ti/drv/uart/lib/armv7/ti.drv.uart.aa15fg"
59 QSPI_LIB = "$(PDK_INSTALL_PATH)/ti/drv/spi/lib/armv7/ti.drv.spi.aa15fg"
60 I2C_LIB = "$(PDK_INSTALL_PATH)/ti/drv/i2c/lib/armv7/ti.drv.i2c.aa15fg"
61 MMCSD_LIB = "$(PDK_INSTALL_PATH)/ti/drv/mmcsd/lib/armv7/ti.drv.mmcsd.aa15fg"
62 FATFS_LIB = "$(PDK_INSTALL_PATH)/ti/fs/fatfs/lib/armv7/ti.fs.fatfs.aa15fg"
64 INCDIR := $(CSL_DIR);$(PDK_INSTALL_PATH);$(BOARD_DIR);$(QSPI_WRTR_SRC_DIR)/soc
66 # Board Specific Flags
67 ifeq ($(SOC), AM572x)
68 QSPI_WRTR_SOC = am572x
69 QSPI_WRTR_SOC_DIR = $(QSPI_WRTR_SRC_DIR)/soc/am57xx
70 PERIPHERAL_LIB = $(UART_LIB) $(QSPI_LIB) $(I2C_LIB) $(MMCSD_LIB) $(FATFS_LIB)
71 endif # ifeq ($(SOC), AM572x)
73 ifeq ($(SOC), AM571x)
74 QSPI_WRTR_SOC = am571x
75 QSPI_WRTR_SOC_DIR = $(QSPI_WRTR_SRC_DIR)/soc/am57xx
76 PERIPHERAL_LIB = $(UART_LIB) $(QSPI_LIB) $(I2C_LIB) $(MMCSD_LIB) $(FATFS_LIB)
77 endif # ifeq ($(SOC), AM571x)
79 ifeq ($(SOC), K2G)
80 QSPI_WRTR_SOC = k2g
81 QSPI_WRTR_SOC_DIR = $(QSPI_WRTR_SRC_DIR)/soc/k2g
82 CSL_LIB = "$(PDK_INSTALL_PATH)/ti/csl/lib/k2g/a15/ti.csl.aa15fg"
83 I2C_LIB = "$(PDK_INSTALL_PATH)/ti/drv/i2c/lib/k2g/armv7/ti.drv.i2c.k2g.aa15fg"
84 OSAL_LIB = "$(PDK_INSTALL_PATH)/ti/osal/lib/nonos/k2g/armv7/ti.osal.aa15fg"
85 PERIPHERAL_LIB = $(UART_LIB) $(I2C_LIB) $(QSPI_LIB) $(OSAL_LIB) $(CSL_LIB) $(MMCSD_LIB) $(FATFS_LIB)
86 endif
88 LIBDIR :=
90 # Compiler options
91 INTERNALDEFS += -g -gdwarf-3 -gstrict-dwarf -Wall $(DEBUG_FLAG) -D__ARMv7 -DSOC_$(SOC) -DEVM_$(SOC) -DBOOT_QSPI -mtune=cortex-a15 -march=armv7-a -marm -mfloat-abi=hard -mfpu=neon -D$(SOC)_BUILD
93 # Linker options
94 INTERNALLINKDEFS = -mfloat-abi=hard -Wl,--undefined,__aeabi_uidiv -Wl,--undefined,__aeabi_idiv --entry Entry -nostartfiles -static -Wl,--gc-sections -Wl,-T $(QSPI_WRTR_SOC_DIR)/linker.cmd -Wl,--start-group -lgcc -lc -lrdimon $(BOARD_LIB) $(PERIPHERAL_LIB) -Wl,--end-group $(LDFLAGS)
96 # Executable using device independent library and device object file
97 EXE=qspi_flash_writer.out
99 OBJEXT = o
100 ASMOBJEXT = ao
101 SRCDIR = $(QSPI_WRTR_SRC_DIR)/tools/flashWriter/qspi/src
103 INCS = -I. -I$(strip $(subst ;, -I,$(INCDIR)))
105 VPATH=$(SRCDIR):$(QSPI_WRTR_SRC_DIR)/board:$(PDK_INSTALL_PATH)/ti/drv/uart/soc/$(QSPI_WRTR_SOC):$(PDK_INSTALL_PATH)/ti/drv/mmcsd/soc/$(QSPI_WRTR_SOC):$(PDK_INSTALL_PATH)/ti/drv/spi/soc/$(QSPI_WRTR_SOC):$(QSPI_WRTR_SOC_DIR)
107 #List the Source Files
108 SRC_C = \
109 sbl_qspi_writer.c
111 SRC_DRV = \
112 UART_soc.c \
113 SPI_soc.c \
114 MMCSD_soc.c \
115 sbl_soc.c
117 ifeq ($(SOC), AM572x)
118 SRC_C += sbl_common_osal.c
119 endif # ifeq ($(SOC), AM572x)
121 ifeq ($(SOC), AM571x)
122 SRC_C += sbl_common_osal.c
123 endif # ifeq ($(SOC), AM571x)
125 #Common entry object
126 ENTRY_SRC = sbl_qspi_writer.S
128 # FLAGS for the SourceFiles
129 CFLAGS += -Wall -O2
130 SRC_CFLAGS = -I. $(CFLAGS) -g -gdwarf-3 -gstrict-dwarf -Wall
132 # Make Rule for the SRC Files
133 SRC_OBJS = $(patsubst %.c, $(QSPI_WRTR_OBJDIR)/%.$(OBJEXT), $(SRC_C))
134 ENTRY_OBJ = $(patsubst %.S, $(QSPI_WRTR_OBJDIR)/%.$(ASMOBJEXT), $(ENTRY_SRC))
135 SRC_DRV_OBJS = $(patsubst %.c, $(QSPI_WRTR_OBJDIR)/%.$(OBJEXT), $(SRC_DRV))
137 flashwriter:$(QSPI_WRTR_BINDIR)/$(EXE)
139 $(QSPI_WRTR_BINDIR)/$(EXE): $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) $(QSPI_WRTR_BINDIR)/.created $(QSPI_WRTR_OBJDIR)/.created
140 @echo linking $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) into $@ ...
141 @$(CC) $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) $(INTERNALLINKDEFS) -Wl,-Map=$(QSPI_WRTR_BINDIR)/qspi_flash_writer.map -o $@
143 $(QSPI_WRTR_OBJDIR)/%.$(OBJEXT): %.c $(QSPI_WRTR_OBJDIR)/.created
144 @echo compiling $< ...
145 @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS) $< -o $@
147 $(QSPI_WRTR_OBJDIR)/%.$(ASMOBJEXT): %.S $(QSPI_WRTR_OBJDIR)/.created
148 @echo compiling $< ...
149 @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS) $< -o $@
151 $(QSPI_WRTR_OBJDIR)/.created:
152 @mkdir -p $(QSPI_WRTR_OBJDIR)
153 @touch $(QSPI_WRTR_OBJDIR)/.created
155 $(QSPI_WRTR_BINDIR)/.created:
156 @mkdir -p $(QSPI_WRTR_BINDIR)
157 @touch $(QSPI_WRTR_BINDIR)/.created
159 flashwriter_clean:
160 @rm -f $(QSPI_WRTR_BINDIR)/$(EXE)
161 @rm -f $(SRC_OBJS) $(SRC_DEV_OBJS) $(ENTRY_OBJ) $(QSPI_WRTR_BINDIR)/.created $(QSPI_WRTR_OBJDIR)/.created