1# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15
16LOCAL_DIR := $(GET_LOCAL_DIR)
17
18DEBUG ?= 2
19SMP_MAX_CPUS ?= 2
20SMP_CPU_CLUSTER_SHIFT ?= 1
21WITH_SMP := 1
22KERNEL_32BIT := true
23
24# select timer
25GLOBAL_DEFINES += TIMER_ARM_GENERIC_SELECTED=CNTPS
26
27#
28# GLOBAL definitions
29#
30
31# requires linker GC
32WITH_LINKER_GC := 1
33
34# Need support for Non-secure memory mapping
35WITH_NS_MAPPING := true
36
37# do not relocate kernel in physical memory
38GLOBAL_DEFINES += WITH_NO_PHYS_RELOCATION=1
39
40# limit heap grows
41GLOBAL_DEFINES += HEAP_GROW_SIZE=0x400000
42
43# limit physical memory to 38 bit to prevert tt_trampiline from getting larger than arm64_kernel_translation_table
44GLOBAL_DEFINES += MMU_IDENT_SIZE_SHIFT=38
45
46# Set max RPMB block to 1024 means it will get 1024*512=512KB space to store critical information.
47GLOBAL_DEFINES += APP_STORAGE_RPMB_BLOCK_COUNT=1024
48
49GLOBAL_DEFINES += \
50	WITH_LIB_SM_MONITOR=1
51
52GLOBAL_DEFINES += \
53	WITH_LIB_VERSION=1
54
55#
56# Modules to be compiled into lk.bin
57#
58MODULES += \
59	trusty/kernel/lib/sm \
60	trusty/kernel/lib/trusty \
61	trusty/kernel/lib/memlog \
62
63TRUSTY_USER_ARCH := arm
64
65#
66# user tasks to be compiled into lk.bin
67#
68
69# prebuilt
70TRUSTY_PREBUILT_USER_TASKS :=
71
72# compiled from source
73TRUSTY_ALL_USER_TASKS := \
74	trusty/user/app/avb \
75	trusty/hardware/nxp/app/hwcrypto \
76	trusty/user/app/keymaster \
77	trusty/user/app/gatekeeper \
78	trusty/user/app/storage \
79
80# This project requires trusty IPC
81WITH_TRUSTY_IPC := true
82
83EXTRA_BUILDRULES += trusty/kernel/app/trusty/user-tasks.mk
84