]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/performance-audio-sr.git/blob - pdk_k2g_1_0_1/packages/ti/boot/sbl/board/evmAM572x/build/makefile
Add alpha files for car
[processor-sdk/performance-audio-sr.git] / pdk_k2g_1_0_1 / packages / ti / boot / sbl / board / evmAM572x / build / 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 IMG_LOAD_ADDR = 0x40331000
37 SBL_SRC_DIR ?= $(PDK_INSTALL_PATH)/ti/boot/sbl
38 SBLOBJDIR = $(SBL_SRC_DIR)/binary/$(BOARD)/$(BOOTMODE)/obj
39 SBLBINDIR = $(SBL_SRC_DIR)/binary/$(BOARD)/$(BOOTMODE)/bin
40 ARMV7LIBDIR ?= ./lib
41 BINFLAGS = -O binary
43 #Cross tools
44 ifdef TOOLCHAIN_PATH_A15
45 # Support backwards compatibility with KeyStone1 approach
46  CC = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)gcc
47  AC = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)as
48  AR = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)ar
49  LD = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)gcc
50  BIN = $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)objcopy
51 endif
53 # INCLUDE Directories
54 CSL_DIR = $(PDK_INSTALL_PATH)/ti/csl
55 BOARD_DIR = $(PDK_INSTALL_PATH)/ti/board
56 SBL_INC_DIR = $(SBL_SRC_DIR)/board/src
57 SBL_LIB_INC_DIR = $(SBL_SRC_DIR)/src/rprc
58 SBL_SOC_DIR = $(SBL_SRC_DIR)/soc/am57xx
60 # Libraries
61 BOARD_LIB = "$(PDK_INSTALL_PATH)/ti/board/lib/$(BOARD)/armv7/ti.board.aa15fg"
62 UART_LIB = "$(PDK_INSTALL_PATH)/ti/drv/uart/lib/armv7/ti.drv.uart.aa15fg"
63 I2C_LIB = "$(PDK_INSTALL_PATH)/ti/drv/i2c/lib/armv7/ti.drv.i2c.aa15fg"
64 MMCSD_LIB = "$(PDK_INSTALL_PATH)/ti/drv/mmcsd/lib/armv7/ti.drv.mmcsd.aa15fg"
65 FATFS_LIB = "$(PDK_INSTALL_PATH)/ti/fs/fatfs/lib/armv7/ti.fs.fatfs.aa15fg"
66 CSL_LIB = "$(PDK_INSTALL_PATH)/ti/csl/lib/am572x/a15/ti.csl.aa15fg"
68 # BOOTMODE specific CFLAGS
69 ifeq ($(BOOTMODE), mmcsd)
70   INTERNALDEFS += -DBOOT_MMCSD
71   SBL_MMCSD_DIR = $(SBL_SRC_DIR)/src/mmcsd
72   INCDIR := $(CSL_DIR);$(PDK_INSTALL_PATH);$(BOARD_DIR);$(SBL_INC_DIR);$(SBL_LIB_INC_DIR);$(SBL_MMCSD_DIR);$(SBL_SOC_DIR)
73   PERIPHERAL_LIB = $(UART_LIB) $(I2C_LIB) $(MMCSD_LIB) $(FATFS_LIB) $(CSL_LIB)
74 endif # ifeq ($(BOOTMODE), mmcsd)
76 #Flags for opp_nom, opp_od and opp_high
77 ifeq ($(OPPMODE),)
78        INTERNALDEFS += -DOPP_NOM
79 else ifeq ($(OPPMODE),opp_nom)
80        INTERNALDEFS += -DOPP_NOM
81 else ifeq ($(OPPMODE),opp_high)
82        INTERNALDEFS += -DOPP_HIGH
83 else ifeq ($(OPPMODE),opp_od)
84        INTERNALDEFS += -DOPP_OD
85 endif
87 LIBDIR :=
89 # Compiler options
90 INTERNALDEFS += -g -gdwarf-3 -gstrict-dwarf -Wall $(DEBUG_FLAG) -D__ARMv7 -DSOC_$(SOC) -mtune=cortex-a15 -march=armv7-a -marm -mfloat-abi=hard -mfpu=neon -D$(SOC)_BUILD -D$(BOARD)
92 # Linker options
93 INTERNALLINKDEFS = -mfloat-abi=hard -Wl,--undefined,__aeabi_uidiv -Wl,--undefined,__aeabi_idiv --entry Entry -nostartfiles -static -Wl,--gc-sections -Wl,-T $(SBL_SRC_DIR)/board/$(BOARD)/build/linker.cmd -Wl,--start-group -lgcc -lc -lrdimon $(BOARD_LIB) $(PERIPHERAL_LIB) -Wl,--end-group $(LDFLAGS)
95 # Executable using device independent library and device object file
96 EXE=sbl.out
98 OBJEXT = o
99 ASMOBJEXT = ao
100 SRCDIR = $(SBL_SRC_DIR)/board
102 INCS = -I. -I$(strip $(subst ;, -I,$(INCDIR)))
105 VPATH=$(SRCDIR):$(SRCDIR)/$(BOARD):$(SBL_SRC_DIR)/soc/am57xx:$(SBL_SRC_DIR)/src/$(BOOTMODE):$(SBL_SRC_DIR)/src/rprc:$(SBL_SRC_DIR)/board/src:$(PDK_INSTALL_PATH)/ti/drv/uart/soc/am572x:$(PDK_INSTALL_PATH)/ti/drv/mmcsd/soc/am572x:$(PDK_INSTALL_PATH)/ti/drv/spi/soc/am572x
107 #List the Source Files
108 SRC_C = \
109         sbl_main.c \
110         sbl_image_copy.c \
111         sbl_rprc.c \
112         sbl_common_osal.c \
113         sbl_prcm.c \
114         sbl_slave_core_boot.c \
115         sbl_avs_config.c \
116         sbl_startup.c
118 SRC_DRV = \
119         UART_soc.c
121 ifeq ($(BOOTMODE), mmcsd)
122     SRC_C += sbl_mmcsd.c
123     SRC_DRV += MMCSD_soc.c
124 endif
126 #Common entry object
127 ENTRY_SRC = sbl_init.S
129 # FLAGS for the SourceFiles
130 CFLAGS += -Wall -O2
131 SRC_CFLAGS = -I. $(CFLAGS) -g -gdwarf-3 -gstrict-dwarf -Wall 
133 # Make Rule for the SRC Files
134 SRC_OBJS = $(patsubst %.c, $(SBLOBJDIR)/%.$(OBJEXT), $(SRC_C))
135 ENTRY_OBJ = $(patsubst %.S, $(SBLOBJDIR)/%.$(ASMOBJEXT), $(ENTRY_SRC))
136 SRC_DRV_OBJS = $(patsubst %.c, $(SBLOBJDIR)/%.$(OBJEXT), $(SRC_DRV))
138 ifeq ($(OS),Windows_NT)
139   TIIMAGE_EXE = tiimage.exe
140 else
141   TIIMAGE_EXE = tiimage
142 endif
144 all:$(SBLBINDIR)/$(EXE)
146 $(SBLBINDIR)/$(EXE): $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) $(SBLBINDIR)/.created $(SBLOBJDIR)/.created
147         @echo linking $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) into $@ ...
148         @$(CC) $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) $(INTERNALLINKDEFS) -Wl,-Map=$(SBLBINDIR)/sbl.map -o $@
149         $(BIN) $(BINFLAGS) $(SBLBINDIR)/sbl.out \
150                 $(SBLBINDIR)/sbl.bin
151          $(SBL_SRC_DIR)/tools/tiImageGen/bin/$(TIIMAGE_EXE) $(IMG_LOAD_ADDR) $(BOOTMODE) \
152                 $(SBLBINDIR)/sbl.bin $(SBLBINDIR)/MLO;
154 $(SBLOBJDIR)/%.$(OBJEXT): %.c $(SBLOBJDIR)/.created
155         @echo compiling $< ...
156         @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS)  $< -o $@
158 $(SBLOBJDIR)/%.$(ASMOBJEXT): %.S $(SBLOBJDIR)/.created
159         @echo compiling $< ...
160         @$(CC) -c $(SRC_CFLAGS) $(INTERNALDEFS) $(INCS)  $< -o $@
162 $(SBLOBJDIR)/.created:
163         @mkdir -p $(SBLOBJDIR)
164         @touch $(SBLOBJDIR)/.created
166 $(SBLBINDIR)/.created:
167         @mkdir -p $(SBLBINDIR)
168         @touch $(SBLBINDIR)/.created
170 clean:
171         @rm -f $(SBLBINDIR)/$(EXE)
172         @rm -f $(SRC_OBJS) $(SRC_DRV_OBJS) $(ENTRY_OBJ) $(SBLBINDIR)/.created $(SBLOBJDIR)/.created