First version
[3rdparty/ote_partner/tlk.git] / platform / tegra / rules.mk
1 LOCAL_DIR := $(GET_LOCAL_DIR)
2
3 MODULE := $(LOCAL_DIR)
4
5 ENABLE_THUMB := false
6
7 ARCH := arm
8 CPU := generic
9
10 INCLUDES += \
11         -I$(LOCAL_DIR)/include \
12         -I$(LOCAL_DIR)/include/platform/$(PLATFORM_SOC) \
13         -I$(LOCAL_DIR)/common \
14         -I../lib
15
16 COMMON_DIR := $(LOCAL_DIR)/common
17 PLATFORM_SOC_DIR := $(LOCAL_DIR)/$(PLATFORM_SOC)
18
19 MODULE_SRCS += \
20         $(COMMON_DIR)/cpu_early_init.S  \
21         $(COMMON_DIR)/tz.c              \
22         $(COMMON_DIR)/cpu.c             \
23         $(COMMON_DIR)/platform.c        \
24         $(COMMON_DIR)/timer.c           \
25         $(COMMON_DIR)/interrupts.c      \
26         $(COMMON_DIR)/memory.c          \
27         $(COMMON_DIR)/debug.c           \
28
29 # The code within the monitor dir builds to a lib that's either
30 # linked into a mon.bin (when MONITOR_BIN is true) or into the
31 # secureos when it's not.
32 #
33 # Routines in the monitor dir are those that restore HW state.
34 # In particular, SOC level state is restored there, while CPU
35 # state was handled by lib/monitor or boot_secondary.S,
36 #
37 # In platform/tegra/common, there are still memory and interrupt
38 # routines, but they're only called for secureos handling
39 # (i.e. aren't part of the monitor or for restoring HW state).
40
41 MODULE_DEPS += \
42         $(LOCAL_DIR)/monitor
43
44 # Add power management into the secureos build if
45 # there's not a separate monitor being built.
46 ifeq ($(MONITOR_BIN),)
47 MODULE_SRCS += \
48         $(COMMON_DIR)/pm.c      \
49         $(COMMON_DIR)/boot_secondary.S
50 endif
51
52 include $(PLATFORM_SOC_DIR)/rules.mk
53
54 # Disable all prints for release builds, only CRITICAL prints will be
55 # printed in release builds. Change the value of DEBUG in else block
56 # to 1->INFO and 2->SPEW prints in debug builds.
57 ifeq ($(TARGET_BUILD_TYPE), release)
58         DEBUG := 0
59 else
60         DEBUG := 1
61 endif
62
63 # relocate image to provided physaddr via MMU
64 ARM_USE_MMU_RELOC := true
65
66 # enable use of CPU caching
67 ARM_USE_CPU_CACHING := true
68
69 DEFINES += VMEMBASE=$(VMEMBASE) \
70         VMEMSIZE=$(VMEMSIZE) \
71         DEBUG=$(DEBUG) \
72         WITH_CPU_EARLY_INIT=1
73
74 # use a two segment memory layout, where all of the read-only sections
75 # of the binary reside in rom, and the read/write are in memory. The
76 # ROMBASE, VMEMBASE, and VMEMSIZE make variables are required to be set
77 # for the linker script to be generated properly.
78 #
79 LINKER_SCRIPT += \
80         $(BUILDDIR)/system-onesegment.ld
81
82 include make/module.mk