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/ \ 42*e3525114SXing Zheng -I${RK_PLAT_SOC}/drivers/secure/ \ 436fba6e04STony Xie -I${RK_PLAT_SOC}/drivers/soc/ \ 44fe877779SCaesar Wang -I${RK_PLAT_SOC}/drivers/dram/ \ 456fba6e04STony Xie -I${RK_PLAT_SOC}/include/ \ 46977001aaSXing Zheng -I${RK_PLAT_SOC}/include/shared/ \ 476fba6e04STony Xie 486fba6e04STony XieRK_GIC_SOURCES := drivers/arm/gic/common/gic_common.c \ 496fba6e04STony Xie drivers/arm/gic/v3/gicv3_main.c \ 506fba6e04STony Xie drivers/arm/gic/v3/gicv3_helpers.c \ 516fba6e04STony Xie plat/common/plat_gicv3.c \ 526fba6e04STony Xie ${RK_PLAT}/common/rockchip_gicv3.c 536fba6e04STony Xie 543e4b8fdcSSoby MathewPLAT_BL_COMMON_SOURCES := lib/xlat_tables/xlat_tables_common.c \ 553e4b8fdcSSoby Mathew lib/xlat_tables/aarch64/xlat_tables.c \ 566fba6e04STony Xie plat/common/aarch64/plat_common.c \ 57bb2162f1SSoby Mathew plat/common/plat_psci_common.c 586fba6e04STony Xie 596fba6e04STony XieBL31_SOURCES += ${RK_GIC_SOURCES} \ 606fba6e04STony Xie drivers/arm/cci/cci.c \ 61b1271091SSoby Mathew drivers/console/aarch64/console.S \ 62b1271091SSoby Mathew drivers/ti/uart/aarch64/16550_console.S \ 636fba6e04STony Xie drivers/delay_timer/delay_timer.c \ 646704f425SAntonio Nino Diaz drivers/delay_timer/generic_delay_timer.c \ 659901dcf6SCaesar Wang drivers/gpio/gpio.c \ 666fba6e04STony Xie lib/cpus/aarch64/cortex_a53.S \ 676fba6e04STony Xie lib/cpus/aarch64/cortex_a72.S \ 686fba6e04STony Xie plat/common/aarch64/platform_mp_stack.S \ 696fba6e04STony Xie ${RK_PLAT_COMMON}/aarch64/plat_helpers.S \ 706fba6e04STony Xie ${RK_PLAT_COMMON}/bl31_plat_setup.c \ 7168ff45f4SCaesar Wang ${RK_PLAT_COMMON}/params_setup.c \ 726fba6e04STony Xie ${RK_PLAT_COMMON}/pmusram/pmu_sram_cpus_on.S \ 736fba6e04STony Xie ${RK_PLAT_COMMON}/pmusram/pmu_sram.c \ 746fba6e04STony Xie ${RK_PLAT_COMMON}/plat_pm.c \ 756fba6e04STony Xie ${RK_PLAT_COMMON}/plat_topology.c \ 766fba6e04STony Xie ${RK_PLAT_COMMON}/aarch64/platform_common.c \ 771760db68SCaesar Wang ${RK_PLAT_COMMON}/rockchip_sip_svc.c \ 781760db68SCaesar Wang ${RK_PLAT_SOC}/plat_sip_calls.c \ 799901dcf6SCaesar Wang ${RK_PLAT_SOC}/drivers/gpio/rk3399_gpio.c \ 806fba6e04STony Xie ${RK_PLAT_SOC}/drivers/pmu/pmu.c \ 818382e17cSCaesar Wang ${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c \ 82977001aaSXing Zheng ${RK_PLAT_SOC}/drivers/pmu/m0_ctl.c \ 835d3b1067SCaesar Wang ${RK_PLAT_SOC}/drivers/pwm/pwm.c \ 84*e3525114SXing Zheng ${RK_PLAT_SOC}/drivers/secure/secure.c \ 85fe877779SCaesar Wang ${RK_PLAT_SOC}/drivers/soc/soc.c \ 86613038bcSCaesar Wang ${RK_PLAT_SOC}/drivers/dram/dfs.c \ 87fe877779SCaesar Wang ${RK_PLAT_SOC}/drivers/dram/dram.c \ 88e82f5082SDerek Basehore ${RK_PLAT_SOC}/drivers/dram/dram_spec_timing.c \ 89e82f5082SDerek Basehore ${RK_PLAT_SOC}/drivers/dram/suspend.c 906fba6e04STony Xie 916fba6e04STony XieENABLE_PLAT_COMPAT := 0 92ec693569SCaesar Wang 93ec693569SCaesar Wang$(eval $(call add_define,PLAT_EXTRA_LD_SCRIPT)) 948382e17cSCaesar Wang 958382e17cSCaesar Wang# M0 source build 968382e17cSCaesar WangPLAT_M0 := ${PLAT}m0 97e77ade28SJulius WernerBUILD_M0 := ${BUILD_PLAT}/m0 988382e17cSCaesar Wang 99e77ade28SJulius WernerRK3399M0FW=${BUILD_M0}/${PLAT_M0}.bin 1008382e17cSCaesar Wang$(eval $(call add_define,RK3399M0FW)) 1018382e17cSCaesar Wang 1028382e17cSCaesar Wang# CCACHE_EXTRAFILES is needed because ccache doesn't handle .incbin 1038382e17cSCaesar Wangexport CCACHE_EXTRAFILES 1048382e17cSCaesar Wang${BUILD_PLAT}/bl31/pmu_fw.o: CCACHE_EXTRAFILES=$(RK3399M0FW) 1058382e17cSCaesar Wang${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c: $(RK3399M0FW) 1068382e17cSCaesar Wang 107e77ade28SJulius Werner$(eval $(call MAKE_PREREQ_DIR,${BUILD_M0},)) 1088382e17cSCaesar Wang.PHONY: $(RK3399M0FW) 109e77ade28SJulius Werner$(RK3399M0FW): | ${BUILD_M0} 110e77ade28SJulius Werner $(MAKE) -C ${RK_PLAT_SOC}/drivers/m0 BUILD=$(abspath ${BUILD_PLAT}/m0) 111