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