From 57ffadecfe7a75b7d317490cb0635f045477a730 Mon Sep 17 00:00:00 2001 From: XiaoDong Huang Date: Thu, 21 Mar 2024 11:56:09 +0800 Subject: [PATCH] rk3576: bl31: update version to v1.01 Build from ATF commit: c87ba612c plat: rk3576: enanble hptimer adjust mode update feature: cdc109fe6 rockchip: add hptimer_v2 driver 67b93799e plat: rk3576: support poweroff by sleep_pin_1 646d8e4eb plat: rk3576: sleep: enable pmu1 repair if SLP_ARMOFF_PMUOFF 616765f12 plat: rk3576: support sleep from uboot de9e5e13a plat: rk3576: support virtual poweroff 44cd6c0d3 plat: rk3576: pll enter slow mode if ddrpd mode de44d42f1 plat: rk3576: sleep: always save/restore usb registers Change-Id: Icd53072b34e835a4a2ae366eee09bb7195bebcdc Signed-off-by: XiaoDong Huang --- RKTRUST/RK3576TRUST.ini | 2 +- ...6_bl31_v1.00.elf => rk3576_bl31_v1.01.elf} | Bin 414568 -> 414568 bytes doc/release/RK3576_CN.md | 14 ++++++++++++++ doc/release/RK3576_EN.md | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) rename bin/rk35/{rk3576_bl31_v1.00.elf => rk3576_bl31_v1.01.elf} (89%) diff --git a/RKTRUST/RK3576TRUST.ini b/RKTRUST/RK3576TRUST.ini index 1d18f0a6..a69fc8d7 100644 --- a/RKTRUST/RK3576TRUST.ini +++ b/RKTRUST/RK3576TRUST.ini @@ -5,7 +5,7 @@ MINOR=0 SEC=0 [BL31_OPTION] SEC=1 -PATH=bin/rk35/rk3576_bl31_v1.00.elf +PATH=bin/rk35/rk3576_bl31_v1.01.elf ADDR=0x40000 [BL32_OPTION] SEC=1 diff --git a/bin/rk35/rk3576_bl31_v1.00.elf b/bin/rk35/rk3576_bl31_v1.01.elf similarity index 89% rename from bin/rk35/rk3576_bl31_v1.00.elf rename to bin/rk35/rk3576_bl31_v1.01.elf index f6c0e140fda89947ac4925d42c3125e5340d131d..122bd9329b83d52ba574ececfa8951f193a4af3e 100644 GIT binary patch delta 17640 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 dO#Gn8OYg$cXPS%t80;=