blob: dc2778328e30e73bc97517a1970d3cc1fa7d1733 [file] [log] [blame]
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_DIR := $(GET_LOCAL_DIR)
DEBUG ?= 2
SMP_MAX_CPUS ?= 2
SMP_CPU_CLUSTER_SHIFT ?= 1
WITH_SMP := 1
# select timer
GLOBAL_DEFINES += TIMER_ARM_GENERIC_SELECTED=CNTPS
#
# GLOBAL definitions
#
# requires linker GC
WITH_LINKER_GC := 1
# Need support for Non-secure memory mapping
WITH_NS_MAPPING := true
# do not relocate kernel in physical memory
GLOBAL_DEFINES += WITH_NO_PHYS_RELOCATION=1
# limit heap grows
GLOBAL_DEFINES += HEAP_GROW_SIZE=0x400000
# limit physical memory to 38 bit to prevert tt_trampiline from getting larger than arm64_kernel_translation_table
GLOBAL_DEFINES += MMU_IDENT_SIZE_SHIFT=38
# Set max RPMB block to 256 means it will get 256*512=128KB space to store critical information.
GLOBAL_DEFINES += APP_STORAGE_RPMB_BLOCK_COUNT=256
GLOBAL_DEFINES += \
WITH_LIB_SM_MONITOR=1
GLOBAL_DEFINES += \
WITH_LIB_VERSION=1
#
# Modules to be compiled into lk.bin
#
MODULES += \
lib/sm \
lib/trusty \
lib/memlog \
TRUSTY_USER_ARCH := arm
#
# user tasks to be compiled into lk.bin
#
# prebuilt
TRUSTY_PREBUILT_USER_TASKS :=
# compiled from source
TRUSTY_ALL_USER_TASKS := \
app/avb \
app/hwcrypto \
keymaster \
gatekeeper \
storage \
# This project requires trusty IPC
WITH_TRUSTY_IPC := true
EXTRA_BUILDRULES += app/trusty/user-tasks.mk