source: svn/trunk/newcon3bcm2_21bu/dta/src/bootloader7574/bootloader.mk @ 29

Last change on this file since 29 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 5.8 KB
Line 
1# WARNING: For two multi stage bootloader to compile makefile must run from the
2# bootloader directory otherwise it will not link! Please take this in to
3# consideration when modifying this makefile and build process.
4
5# Project Root Directory
6PROOT := $(shell cd ../../../ ; /bin/pwd)
7
8DEBUG ?= y
9
10# we always have to build at least 2 stage bootloader. MULTI_STAGE flag
11# is no longer applicable
12
13BLD_TARGET = bootloader
14
15# move BUILD_SHMOO to makefile as one of build options.
16BUILD_SHMOO ?= n
17CFG_PROFILE ?= 1
18ifeq ($(AOV_SDRAM_1G),y)
19DDR_DEV_TECH_1GBYTE = 0x2
20else
21DDR_DEV_TECH_1GBYTE = 0x3
22endif
23
24# use new ddr40phy shmoo
25ENABLE_NEW_SHMOO ?=y
26
27# Dram scrambling test option. A0/A1 Multistage bootloader only.
28ENABLE_BOOT_SCRAMBLE_DRAM ?= n
29
30# complie in BSP firmware
31ENABLE_BSEC=n
32
33include $(PROOT)/dta/build/platform.inc
34
35MAGNUM = $(PROOT)/magnum
36BSP = $(PROOT)/rockford/bsp
37LIBDIR = $(PROOT)/dta/lib
38DTADIR = $(PROOT)/dta
39BLDDIR = $(PROOT)/dta/src/bootloader7574
40
41CFLAGS += -ffunction-sections
42
43CFLAGS += -DBCHP_CHIP=$(BCHP_CHIP) -DBCHP_VER=BCHP_VER_$(BCHP_VER)
44CFLAGS += -DBSTD_CPU_ENDIAN=BSTD_ENDIAN_LITTLE
45
46ifeq ($(strip $(CFG_PROFILE)),1)
47DDR_FREQ_MHZ ?= 533
48CFLAGS += -DPROFILE=1 \
49        -DCPU_MDIV=8 \
50        -DAVD_MDIV=15 \
51        -DAVD_CPU_MDIV=15 \
52        -DDSP_MDIV=15 \
53        -DSCB_MDIV=12
54endif
55ifeq ($(strip $(CFG_PROFILE)),2)
56DDR_FREQ_MHZ ?= 800
57CFLAGS += -DPROFILE=2 \
58        -DCPU_MDIV=6 \
59        -DAVD_MDIV=12 \
60        -DAVD_CPU_MDIV=12 \
61        -DDSP_MDIV=8 \
62        -DSCB_MDIV=12
63endif
64ifeq ($(strip $(CFG_PROFILE)),3)
65DDR_FREQ_MHZ ?= 933
66CFLAGS += -DPROFILE=3 \
67        -DCPU_MDIV=5 \
68        -DAVD_MDIV=10 \
69        -DAVD_CPU_MDIV=8 \
70        -DDSP_MDIV=8 \
71        -DSCB_MDIV=11
72endif
73ifeq ($(strip $(CFG_PROFILE)),4)
74#RLQ, need to get right settings for 400 MHz
75DDR_FREQ_MHZ ?= 400
76CFLAGS += -DPROFILE=4 \
77        -DCPU_MDIV=8 \
78        -DAVD_MDIV=15 \
79        -DAVD_CPU_MDIV=15 \
80        -DDSP_MDIV=15 \
81        -DSCB_MDIV=12
82endif
83ifeq ($(strip $(CFG_PROFILE)),5)
84DDR_FREQ_MHZ ?= 667
85#RLQ, need to get right settings for 667 MHz
86CFLAGS += -DPROFILE=5 \
87    -DCPU_MDIV=8 \
88    -DAVD_MDIV=15 \
89    -DAVD_CPU_MDIV=15 \
90    -DDSP_MDIV=15 \
91    -DSCB_MDIV=12
92endif
93
94CFLAGS += -DMEMC_0_DEV_TECH=$(DDR_DEV_TECH_1GBYTE)
95CFLAGS += -DMEMC_0_DDR_FREQ=$(DDR_FREQ_MHZ)
96CFLAGS += -DMEMC_0_DDR_WIDTH=MEMC_DDR_16BIT
97CFLAGS += -DMEMC_0_DDR_MODE=MEMC_MODE_DDR3
98
99ifeq ($(ENABLE_BOOT_SCRAMBLE_DRAM),y)
100CFLAGS += -DBOOT_SCRAMBLE_DRAM=1
101endif
102
103CFLAGS += -I$(MAGNUM)/basemodules/chp/$(BCHP_CHIP)/rdb/$(BCHP_VER_LOWER) \
104        -I$(MAGNUM)/basemodules/chp \
105        -I$(MAGNUM)/basemodules/std \
106        -I$(MAGNUM)/basemodules/std/config \
107        -I$(MAGNUM)/basemodules/std/types/ucos_ii \
108        -I$(MAGNUM)/basemodules/err \
109        -I$(MAGNUM)/basemodules/dbg \
110        -I$(MAGNUM)/basemodules/reg \
111        -I$(MAGNUM)/commonutils/lst \
112
113CFLAGS += -I$(BSP)/bcm9$(BCHP_CHIP)/no-os/src/sde \
114        -I$(BSP)/Shmoo/$(BCHP_CHIP)/shmoo_lib/include \
115        -I$(BSP)/Shmoo/$(BCHP_CHIP)/shmoo_lib/src
116
117CFLAGS += -I$(DTADIR)/src -I$(DTADIR)/src/z
118
119ifeq ($(HAS_STANDBY),y)
120CFLAGS += -DCONFIG_STANDBY -DUSERIO_ID=$(USERIO_ID)
121endif
122
123S1_SRC := bls1.S
124
125XMODEM_SRC := $(DTADIR)/src/xmodem.c
126Z_SRC := $(DTADIR)/src/z/adler32.c \
127        $(DTADIR)/src/z/crc32.c \
128        $(DTADIR)/src/z/inffast.c \
129        $(DTADIR)/src/z/inflate.c \
130        $(DTADIR)/src/z/inftrees.c \
131        $(DTADIR)/src/z/zutil.c
132
133BLD_SRC := bls2.S stage2.c clocks.c fast_heap.c $(XMODEM_SRC) $(Z_SRC)
134
135ifeq (${HAS_STANDBY},y)
136BLD_SRC += cir.c
137endif
138
139S1_OBJ :=  $(subst .S,.o,$(filter %.S, $(S1_SRC))) $(subst .c,.o, $(filter %.c, $(S1_SRC)))
140
141BLD_OBJ := $(patsubst %.S,%.o,$(filter %.S,$(BLD_SRC))) $(patsubst %.s,%.o,$(filter %.s,$(BLD_SRC)))  $(patsubst %.c,%.o,$(filter %.c,$(BLD_SRC)))
142
143BLD_DEP := $(patsubst %.o,%.d,$(filter %.o,$(BLD_OBJ))) 
144
145LDFLAGS += -T $(BLDDIR)/bootloader2s.script --gc-sections
146
147# new shmoo does not work on A0 chip
148ifeq ($(BCHP_VER),A0)
149ENABLE_NEW_SHMOO = n
150endif
151
152ifeq ($(ENABLE_NEW_SHMOO),y)
153SHMOO_DIR = $(BSP)/Shmoo/$(BCHP_CHIP)/shmoo_lib/ddr40phy/build
154SHMOO_FILES = shmoo_aux_le.pof shmoo_core_le.pof
155SHMOO_OBJ = $(addprefix $(SHMOO_DIR)/, $(SHMOO_FILES))
156CFLAGS += -DNEW_SHMOO=1
157ifeq ($(ENABLE_AVS),y)
158CFLAGS += -DAVS_ENABLE=1
159AVS_FILES = avs_start_le.pof
160AVS_DIR = $(BSP)/Shmoo/$(BCHP_CHIP)/shmoo_lib/build
161AVS_OBJ =  $(addprefix $(AVS_DIR)/, $(AVS_FILES))
162SHMOO_LIB = $(AVS_OBJ)
163endif
164SHMOO_LIB += $(SHMOO_OBJ)
165else
166ifeq ($(BUILD_SHMOO),y)
167SHMOO_VERSION_MAJ = 1
168SHMOO_VERSION_MIN = 0
169SHMOO_FILES = memc_0_shmoo.c
170SHMOO_DIR = $(BSP)/Shmoo/$(BCHP_CHIP)/shmoo_lib/src
171SHMOO_SRC = $(addprefix $(SHMOO_DIR)/, $(SHMOO_FILES))
172SHMOO_OBJ = $(patsubst %.c,%.o,$(filter %.c,$(SHMOO_SRC)))
173SHMOO_DEP = $(patsubst %.o,%.d,$(filter %.o,$(SHMOO_OBJ)))
174endif
175SHMOO_LIB = $(LIBDIR)/libshmoo.a
176endif
177
178ifeq ($(ENABLE_BSEC),y)
179BSEC_OBJ = key0data.o bsec_053_hddta.o
180endif
181
182all : $(BLD_TARGET).bin
183
184$(BLD_TARGET).bin : $(BLD_TARGET).elf
185        $(OBJCOPY) -S -O binary $< $@
186
187$(BLD_TARGET).elf : $(BLD_TARGET)_s1l.o  $(BSEC_OBJ) $(BLD_TARGET).o
188        $(LD) -Map $(basename $@).map $(LDFLAGS) $^ $(LDLIBS) -o $@
189
190clean : $(BLD_TARGET)_clean
191
192$(BLD_TARGET)_clean:
193        $(RM) -f $(BLD_TARGET).elf $(BLD_TARGET).bin $(BLD_TARGET).map $(BLD_OBJ) $(BLD_DEP) $(S1_OBJ) $(BLD_TARGET)_s1.o $(BLD_TARGET)_s1l.o $(BLD_TARGET).o
194
195$(BLD_TARGET)_s1.o : $(S1_OBJ) $(SHMOO_LIB)
196        $(LD) -r $(LFLAGS) $^ -o $@
197
198$(BLD_TARGET)_s1l.o : $(BLD_TARGET)_s1.o
199        $(OBJCOPY) -w -G __start -G key1 $^ $@
200
201$(BLD_TARGET).o : $(BLD_OBJ)
202        $(LD) -r $(LFLAGS) $^ -o $@
203
204ifeq ($(BUILD_SHMOO),y)
205
206$(LIBDIR)/libshmoo.a : $(SHMOO_OBJ) $(LIBDIR)/libshmoo.a($(SHMOO_OBJ))
207
208# Extra flags for shmoo build. We must enable optimization at least for the
209# shmoo library, else bootloader does not fit in 0x7400 bytes. We also must
210# remove -nostdinc statement as the shmoo requres some files from the standard
211# include directories
212$(LIBDIR)/libshmoo.a : CFLAGS := $(filter-out -nostdinc,$(CFLAGS)) -Os
213
214ifeq ($(ENABLE_NEW_SHMOO),y)
215shmoo_clean :
216        $(RM) -f $(LIBDIR)/libshmoo.a
217else
218shmoo_clean :
219        $(RM) -f $(LIBDIR)/libshmoo.a  $(SHMOO_OBJ) $(SHMOO_DEP)
220endif
221
222clean : shmoo_clean
223
224-include $(SHMOO_DEP)
225endif
226
227-include $(BLD_DEP)
Note: See TracBrowser for help on using the repository browser.