From c76631c52b0b1550ff182c177555485700274314 Mon Sep 17 00:00:00 2001 From: Ziyuan Xu <xzy.xu@rock-chips.com> Date: Thu, 27 Oct 2016 19:07:35 +0800 Subject: [PATCH] rockchip: include hdcp.bin and declare hdcp key decryption handler For some reason, HDCP key decrytion can't open source in ATF, so we build it as hdcp.bin. Besides declare the handler for decrypting. Change-Id: Ia67ff2442ab43cb3ee4875b3d59cc1608e854b4b Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> Signed-off-by: Caesar Wang <wxt@rock-chips.com> --- plat/rockchip/rk3399/drivers/dp/cdn_dp.c | 19 +++++++++++++++++++ plat/rockchip/rk3399/drivers/dp/hdcp.bin | Bin 0 -> 864 bytes plat/rockchip/rk3399/platform.mk | 8 ++++++++ 3 files changed, 27 insertions(+) create mode 100644 plat/rockchip/rk3399/drivers/dp/cdn_dp.c create mode 100644 plat/rockchip/rk3399/drivers/dp/hdcp.bin diff --git a/plat/rockchip/rk3399/drivers/dp/cdn_dp.c b/plat/rockchip/rk3399/drivers/dp/cdn_dp.c new file mode 100644 index 000000000..9fc623b97 --- /dev/null +++ b/plat/rockchip/rk3399/drivers/dp/cdn_dp.c @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <stdlib.h> + +__asm__( + ".pushsection .text.hdcp_handler, \"ax\", %progbits\n" + ".global hdcp_handler\n" + ".balign 4\n" + "hdcp_handler:\n" + ".incbin \"" __XSTRING(HDCPFW) "\"\n" + ".type hdcp_handler, %function\n" + ".size hdcp_handler, .- hdcp_handler\n" + ".popsection\n" +); + diff --git a/plat/rockchip/rk3399/drivers/dp/hdcp.bin b/plat/rockchip/rk3399/drivers/dp/hdcp.bin new file mode 100644 index 0000000000000000000000000000000000000000..28db923669fe63812c25f016753df10558334fee GIT binary patch literal 864 zcmYjPOH30{6g@L<I&Cc?LKBISv>l2;;=)Bu-b5CqMNDwlcHag<GJ%z{G7z1HnrPTK z(ZnTHf~L4|%?gnOHPJ*c8kYs*Cw4;x7MRF*9<p%pa&yl;=iYPQd%kF0*WqsXS*&l0 zuy-J^FPssXbrLdTz$>N$&9d(o>REW*hMTkQWNsMb3&0+2adX0ey{a*Wn4e&5ft?j@ zyJ&;mt?E(OBFNZD9K^d|e>uiH4tqYpm?W>2v6r~gohPp97l<EcOi?!-%Ip2?BgvUD zJmvQ+^w}{Ov#;I{+9v&egE{=fv5q{WsnK&K4Q~!cvwYwel%_rdFXP1jafm-6N8#Kj zr+SR>RA5Fb2t+DfXumz3z8`ePWbml3>Ga5=(y?DM4)2_6c;AJw7*KkiH3KKtsC!MF z?l^J*dSrq5BJ+qdE+bB_)SW&VVolfd$Pc9LOc(Mx=Q1DOibDDbH&*`mg*fltYJ+!$ z9CN!UgWEAVv>TH#=nb%zrS~n)c02h-K;tD)Fv-2lGsHdta)0~&Del2L2sf1H_*=uX z=s7^npyHBekf-#c><8Y3<&@+I??}yvMREA{3Qq#FBRq$A$!J#M?7_Dkpsvi_A9uUC zI%5y;;6SAJ`JX&rw0bW@@sn`w=D<B?!qw}haC4gGZfKvEe<hG!D(gs%8o0Je|NrAF z8d6pMmo^}3)h~VA5>{W5@vBJo4Z?^FAaHdV`b6Sh<#b}&Jd^PK)KBiK>Hm7ifhGFR zsrmjY)_3x#75b5{KZU(FrPbV<q5Pf@i<|SXJJjEJ27C88?D{;s(s)UJ@coBX4HqX( sc(>ZoRC_AkoZd0<j$W(dlTy{*kXPbtoj%pPoqW2sH#Jb>%){OP0&Y4QX8-^I literal 0 HcmV?d00001 diff --git a/plat/rockchip/rk3399/platform.mk b/plat/rockchip/rk3399/platform.mk index cb7999b5e..06189603b 100644 --- a/plat/rockchip/rk3399/platform.mk +++ b/plat/rockchip/rk3399/platform.mk @@ -18,6 +18,7 @@ PLAT_INCLUDES := -I${RK_PLAT_COMMON}/ \ -I${RK_PLAT_SOC}/drivers/secure/ \ -I${RK_PLAT_SOC}/drivers/soc/ \ -I${RK_PLAT_SOC}/drivers/dram/ \ + -I${RK_PLAT_SOC}/drivers/dp/ \ -I${RK_PLAT_SOC}/include/ \ -I${RK_PLAT_SOC}/include/shared/ \ @@ -49,6 +50,7 @@ BL31_SOURCES += ${RK_GIC_SOURCES} \ ${RK_PLAT_COMMON}/aarch64/platform_common.c \ ${RK_PLAT_COMMON}/rockchip_sip_svc.c \ ${RK_PLAT_SOC}/plat_sip_calls.c \ + ${RK_PLAT_SOC}/drivers/dp/cdn_dp.c \ ${RK_PLAT_SOC}/drivers/gpio/rk3399_gpio.c \ ${RK_PLAT_SOC}/drivers/pmu/pmu.c \ ${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c \ @@ -72,11 +74,17 @@ BUILD_M0 := ${BUILD_PLAT}/m0 RK3399M0FW=${BUILD_M0}/${PLAT_M0}.bin $(eval $(call add_define,RK3399M0FW)) +HDCPFW=${RK_PLAT_SOC}/drivers/dp/hdcp.bin +$(eval $(call add_define,HDCPFW)) + # CCACHE_EXTRAFILES is needed because ccache doesn't handle .incbin export CCACHE_EXTRAFILES ${BUILD_PLAT}/bl31/pmu_fw.o: CCACHE_EXTRAFILES=$(RK3399M0FW) ${RK_PLAT_SOC}/drivers/pmu/pmu_fw.c: $(RK3399M0FW) +${BUILD_PLAT}/bl31/cdn_dp.o: CCACHE_EXTRAFILES=$(HDCPFW) +${RK_PLAT_SOC}/drivers/dp/cdn_dp.c: $(HDCPFW) + $(eval $(call MAKE_PREREQ_DIR,${BUILD_M0},)) .PHONY: $(RK3399M0FW) $(RK3399M0FW): | ${BUILD_M0} -- GitLab