16fba6e04STony Xie# 26fba6e04STony Xie# Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 36fba6e04STony Xie# 46fba6e04STony Xie# Redistribution and use in source and binary forms, with or without 56fba6e04STony Xie# modification, are permitted provided that the following conditions are met: 66fba6e04STony Xie# 76fba6e04STony Xie# Redistributions of source code must retain the above copyright notice, this 86fba6e04STony Xie# list of conditions and the following disclaimer. 96fba6e04STony Xie# 106fba6e04STony Xie# Redistributions in binary form must reproduce the above copyright notice, 116fba6e04STony Xie# this list of conditions and the following disclaimer in the documentation 126fba6e04STony Xie# and/or other materials provided with the distribution. 136fba6e04STony Xie# 146fba6e04STony Xie# Neither the name of ARM nor the names of its contributors may be used 156fba6e04STony Xie# to endorse or promote products derived from this software without specific 166fba6e04STony Xie# prior written permission. 176fba6e04STony Xie# 186fba6e04STony Xie# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 196fba6e04STony Xie# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 206fba6e04STony Xie# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 216fba6e04STony Xie# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 226fba6e04STony Xie# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 236fba6e04STony Xie# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 246fba6e04STony Xie# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 256fba6e04STony Xie# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 266fba6e04STony Xie# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 276fba6e04STony Xie# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 286fba6e04STony Xie# POSSIBILITY OF SUCH DAMAGE. 296fba6e04STony Xie# 306fba6e04STony Xie 316fba6e04STony XieRK_PLAT := plat/rockchip 326fba6e04STony XieRK_PLAT_SOC := ${RK_PLAT}/${PLAT} 336fba6e04STony XieRK_PLAT_COMMON := ${RK_PLAT}/common 346fba6e04STony Xie 356fba6e04STony XiePLAT_INCLUDES := -I${RK_PLAT_COMMON}/ \ 366fba6e04STony Xie -I${RK_PLAT_COMMON}/include/ \ 376fba6e04STony Xie -I${RK_PLAT_COMMON}/pmusram \ 386fba6e04STony Xie -I${RK_PLAT_COMMON}/drivers/pmu/ \ 396fba6e04STony Xie -I${RK_PLAT_SOC}/ \ 406fba6e04STony Xie -I${RK_PLAT_SOC}/drivers/pmu/ \ 415d3b1067SCaesar Wang -I${RK_PLAT_SOC}/drivers/pwm/ \ 426fba6e04STony Xie -I${RK_PLAT_SOC}/drivers/soc/ \ 43fe877779SCaesar Wang -I${RK_PLAT_SOC}/drivers/dram/ \ 446fba6e04STony Xie -I${RK_PLAT_SOC}/include/ \ 456fba6e04STony Xie 466fba6e04STony XieRK_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 476fba6e04STony Xie drivers/arm/gic/v3/gicv3_main.c \ 486fba6e04STony Xie drivers/arm/gic/v3/gicv3_helpers.c \ 496fba6e04STony Xie plat/common/plat_gicv3.c \ 506fba6e04STony Xie ${RK_PLAT}/common/rockchip_gicv3.c 516fba6e04STony Xie 523e4b8fdcSSoby MathewPLAT_BL_COMMON_SOURCES := lib/xlat_tables/xlat_tables_common.c \ 533e4b8fdcSSoby Mathew lib/xlat_tables/aarch64/xlat_tables.c \ 546fba6e04STony Xie plat/common/aarch64/plat_common.c \ 55bb2162f1SSoby Mathew plat/common/plat_psci_common.c 566fba6e04STony Xie 576fba6e04STony XieBL31_SOURCES += ${RK_GIC_SOURCES} \ 586fba6e04STony Xie drivers/arm/cci/cci.c \ 59b1271091SSoby Mathew drivers/console/aarch64/console.S \ 60b1271091SSoby Mathew drivers/ti/uart/aarch64/16550_console.S \ 616fba6e04STony Xie drivers/delay_timer/delay_timer.c \ 626704f425SAntonio Nino Diaz drivers/delay_timer/generic_delay_timer.c \ 639901dcf6SCaesar Wang drivers/gpio/gpio.c \ 646fba6e04STony Xie lib/cpus/aarch64/cortex_a53.S \ 656fba6e04STony Xie lib/cpus/aarch64/cortex_a72.S \ 666fba6e04STony Xie plat/common/aarch64/platform_mp_stack.S \ 676fba6e04STony Xie ${RK_PLAT_COMMON}/aarch64/plat_helpers.S \ 686fba6e04STony Xie ${RK_PLAT_COMMON}/bl31_plat_setup.c \ 6968ff45f4SCaesar Wang ${RK_PLAT_COMMON}/params_setup.c \ 706fba6e04STony Xie ${RK_PLAT_COMMON}/pmusram/pmu_sram_cpus_on.S \ 716fba6e04STony Xie ${RK_PLAT_COMMON}/pmusram/pmu_sram.c \ 726fba6e04STony Xie ${RK_PLAT_COMMON}/plat_pm.c \ 736fba6e04STony Xie ${RK_PLAT_COMMON}/plat_topology.c \ 746fba6e04STony Xie ${RK_PLAT_COMMON}/aarch64/platform_common.c \ 751760db68SCaesar Wang ${RK_PLAT_COMMON}/rockchip_sip_svc.c \ 761760db68SCaesar Wang ${RK_PLAT_SOC}/plat_sip_calls.c \ 779901dcf6SCaesar Wang ${RK_PLAT_SOC}/drivers/gpio/rk3399_gpio.c \ 786fba6e04STony Xie ${RK_PLAT_SOC}/drivers/pmu/pmu.c \ 79*8382e17cSCaesar Wang ${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c \ 805d3b1067SCaesar Wang ${RK_PLAT_SOC}/drivers/pwm/pwm.c \ 81fe877779SCaesar Wang ${RK_PLAT_SOC}/drivers/soc/soc.c \ 82fe877779SCaesar Wang ${RK_PLAT_SOC}/drivers/dram/dram.c \ 83fe877779SCaesar Wang ${RK_PLAT_SOC}/drivers/dram/dram_spec_timing.c 846fba6e04STony Xie 856fba6e04STony XieENABLE_PLAT_COMPAT := 0 86ec693569SCaesar Wang 87ec693569SCaesar Wang$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT)) 88*8382e17cSCaesar Wang 89*8382e17cSCaesar Wang# M0 source build 90*8382e17cSCaesar WangPLAT_M0 := ${PLAT}m0 91*8382e17cSCaesar Wang 92*8382e17cSCaesar WangRK3399M0FW=${BUILD_PLAT}/m0/bin/${PLAT_M0}.bin 93*8382e17cSCaesar Wang$(eval $(call add_define,RK3399M0FW)) 94*8382e17cSCaesar Wang 95*8382e17cSCaesar Wang# CCACHE_EXTRAFILES is needed because ccache doesn't handle .incbin 96*8382e17cSCaesar Wangexport CCACHE_EXTRAFILES 97*8382e17cSCaesar Wang${BUILD_PLAT}/bl31/pmu_fw.o: CCACHE_EXTRAFILES=$(RK3399M0FW) 98*8382e17cSCaesar Wang${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c: $(RK3399M0FW) 99*8382e17cSCaesar Wang 100*8382e17cSCaesar Wang.PHONY: $(RK3399M0FW) 101*8382e17cSCaesar Wang$(RK3399M0FW): 102*8382e17cSCaesar Wang $(MAKE) -C ${RK_PLAT_SOC}/drivers/m0 \ 103*8382e17cSCaesar Wang BUILD_PLAT=$(abspath ${BUILD_PLAT}/m0) 104