Home | History | Annotate | Download | only in hikey
      1 #
      2 # Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
      3 #
      4 # SPDX-License-Identifier: BSD-3-Clause
      5 #
      6 
      7 # Enable version2 of image loading
      8 LOAD_IMAGE_V2	:=	1
      9 
     10 # On Hikey, the TSP can execute from TZC secure area in DRAM (default)
     11 # or SRAM.
     12 HIKEY_TSP_RAM_LOCATION	:=	dram
     13 ifeq (${HIKEY_TSP_RAM_LOCATION}, dram)
     14   HIKEY_TSP_RAM_LOCATION_ID = HIKEY_DRAM_ID
     15 else ifeq (${HIKEY_TSP_RAM_LOCATION}, sram)
     16   HIKEY_TSP_RAM_LOCATION_ID := HIKEY_SRAM_ID
     17 else
     18   $(error "Currently unsupported HIKEY_TSP_RAM_LOCATION value")
     19 endif
     20 
     21 CONSOLE_BASE			:=	PL011_UART3_BASE
     22 CRASH_CONSOLE_BASE		:=	PL011_UART3_BASE
     23 PLAT_PARTITION_MAX_ENTRIES	:=	12
     24 PLAT_PL061_MAX_GPIOS		:=	160
     25 COLD_BOOT_SINGLE_CPU		:=	1
     26 PROGRAMMABLE_RESET_ADDRESS	:=	1
     27 
     28 # Process flags
     29 $(eval $(call add_define,HIKEY_TSP_RAM_LOCATION_ID))
     30 $(eval $(call add_define,CONSOLE_BASE))
     31 $(eval $(call add_define,CRASH_CONSOLE_BASE))
     32 $(eval $(call add_define,PLAT_PL061_MAX_GPIOS))
     33 $(eval $(call add_define,PLAT_PARTITION_MAX_ENTRIES))
     34 
     35 # Add the build options to pack Trusted OS Extra1 and Trusted OS Extra2 images
     36 # in the FIP if the platform requires.
     37 ifneq ($(BL32_EXTRA1),)
     38 $(eval $(call FIP_ADD_IMG,BL32_EXTRA1,--tos-fw-extra1))
     39 endif
     40 ifneq ($(BL32_EXTRA2),)
     41 $(eval $(call FIP_ADD_IMG,BL32_EXTRA2,--tos-fw-extra2))
     42 endif
     43 
     44 ENABLE_PLAT_COMPAT	:=	0
     45 
     46 USE_COHERENT_MEM	:=	1
     47 
     48 PLAT_INCLUDES		:=	-Iinclude/common/tbbr			\
     49 				-Iinclude/drivers/synopsys		\
     50 				-Iplat/hisilicon/hikey/include
     51 
     52 PLAT_BL_COMMON_SOURCES	:=	drivers/arm/pl011/pl011_console.S	\
     53 				lib/aarch64/xlat_tables.c		\
     54 				plat/hisilicon/hikey/aarch64/hikey_common.c
     55 
     56 BL1_SOURCES		+=	bl1/tbbr/tbbr_img_desc.c		\
     57 				drivers/arm/pl061/pl061_gpio.c		\
     58 				drivers/arm/sp804/sp804_delay_timer.c	\
     59 				drivers/delay_timer/delay_timer.c	\
     60 				drivers/gpio/gpio.c			\
     61 				drivers/io/io_block.c			\
     62 				drivers/io/io_fip.c			\
     63 				drivers/io/io_storage.c			\
     64 				drivers/emmc/emmc.c			\
     65 				drivers/synopsys/emmc/dw_mmc.c		\
     66 				lib/cpus/aarch64/cortex_a53.S		\
     67 				plat/hisilicon/hikey/aarch64/hikey_helpers.S \
     68 				plat/hisilicon/hikey/hikey_bl1_setup.c	\
     69 				plat/hisilicon/hikey/hikey_io_storage.c
     70 
     71 BL2_SOURCES		+=	drivers/arm/sp804/sp804_delay_timer.c	\
     72 				drivers/delay_timer/delay_timer.c	\
     73 				drivers/io/io_block.c			\
     74 				drivers/io/io_fip.c			\
     75 				drivers/io/io_storage.c			\
     76 				drivers/emmc/emmc.c			\
     77 				drivers/synopsys/emmc/dw_mmc.c		\
     78 				plat/hisilicon/hikey/aarch64/hikey_helpers.S \
     79 				plat/hisilicon/hikey/hikey_bl2_setup.c	\
     80 				plat/hisilicon/hikey/hikey_ddr.c	\
     81 				plat/hisilicon/hikey/hikey_io_storage.c	\
     82 				plat/hisilicon/hikey/hisi_dvfs.c	\
     83 				plat/hisilicon/hikey/hisi_mcu.c
     84 
     85 ifeq (${LOAD_IMAGE_V2},1)
     86 BL2_SOURCES		+=	plat/hisilicon/hikey/hikey_bl2_mem_params_desc.c \
     87 				plat/hisilicon/hikey/hikey_image_load.c \
     88 				common/desc_image_load.c
     89 
     90 ifeq (${SPD},opteed)
     91 BL2_SOURCES		+=	lib/optee/optee_utils.c
     92 endif
     93 endif
     94 
     95 HIKEY_GIC_SOURCES	:=	drivers/arm/gic/common/gic_common.c	\
     96 				drivers/arm/gic/v2/gicv2_main.c		\
     97 				drivers/arm/gic/v2/gicv2_helpers.c	\
     98 				plat/common/plat_gicv2.c
     99 
    100 BL31_SOURCES		+=	drivers/arm/cci/cci.c			\
    101 				drivers/arm/sp804/sp804_delay_timer.c	\
    102 				drivers/delay_timer/delay_timer.c	\
    103 				lib/cpus/aarch64/cortex_a53.S		\
    104 				plat/common/aarch64/plat_psci_common.c	\
    105 				plat/hisilicon/hikey/aarch64/hikey_helpers.S \
    106 				plat/hisilicon/hikey/hikey_bl31_setup.c	\
    107 				plat/hisilicon/hikey/hikey_pm.c		\
    108 				plat/hisilicon/hikey/hikey_topology.c	\
    109 				plat/hisilicon/hikey/hisi_ipc.c		\
    110 				plat/hisilicon/hikey/hisi_pwrc.c	\
    111 				plat/hisilicon/hikey/hisi_pwrc_sram.S	\
    112 				${HIKEY_GIC_SOURCES}
    113 ifeq (${ENABLE_PMF}, 1)
    114 BL31_SOURCES		+=	plat/hisilicon/hikey/hisi_sip_svc.c			\
    115 				lib/pmf/pmf_smc.c
    116 endif
    117 
    118 # Enable workarounds for selected Cortex-A53 errata.
    119 ERRATA_A53_836870		:=	1
    120 ERRATA_A53_843419		:=	1
    121 ERRATA_A53_855873		:=	1
    122