From e52bc4972c8f9e53bcf207c22de4e50f3e3242a6 Mon Sep 17 00:00:00 2001 From: XiaoDong Huang Date: Thu, 19 Apr 2018 19:39:45 +0800 Subject: [PATCH] rk3308: bl31: update version to v1.02 Build from ATF commit: 69d9b56 bl31: execute bl32_init() dynamically Update features: 1. 69d9b56 bl31: execute bl32_init() dynamically 2. 35e0de4 plat: rk3308: dfs: add ddr_get_rate implement 3. e46f07e plat: rk3308: add optimise Change-Id: I99ed333c38a8c1038120ab311602f3eeb2599995 Signed-off-by: XiaoDong Huang --- RKTRUST/RK3308TRUST.ini | 2 +- ...8_bl31_v1.01.elf => rk3308_bl31_v1.02.elf} | Bin 279248 -> 279248 bytes 2 files changed, 1 insertion(+), 1 deletion(-) rename bin/rk33/{rk3308_bl31_v1.01.elf => rk3308_bl31_v1.02.elf} (89%) mode change 100755 => 100644 diff --git a/RKTRUST/RK3308TRUST.ini b/RKTRUST/RK3308TRUST.ini index 9ca8f4b3..cc4a9a74 100644 --- a/RKTRUST/RK3308TRUST.ini +++ b/RKTRUST/RK3308TRUST.ini @@ -5,7 +5,7 @@ MINOR=0 SEC=0 [BL31_OPTION] SEC=1 -PATH=bin/rk33/rk3308_bl31_v1.01.elf +PATH=bin/rk33/rk3308_bl31_v1.02.elf ADDR=0x00010000 [BL32_OPTION] SEC=0 diff --git a/bin/rk33/rk3308_bl31_v1.01.elf b/bin/rk33/rk3308_bl31_v1.02.elf old mode 100755 new mode 100644 similarity index 89% rename from bin/rk33/rk3308_bl31_v1.01.elf rename to bin/rk33/rk3308_bl31_v1.02.elf index 37cb0dfb4a370cbe8d342a60622b64f09d36f1d3..e3927f6ac2b9da248716e522e9c78774576ebd6c GIT binary patch delta 12550 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 O4AYUgKGIF^D*qRgwa3E% delta 11531 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