public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release
@ 2020-04-21 11:29 Pete Batard
  2020-04-21 12:20 ` Ard Biesheuvel
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Batard @ 2020-04-21 11:29 UTC (permalink / raw)
  To: devel; +Cc: ard.biesheuvel, leif, awarkentin

With the v2.3 release of TF-A, that integrates automatic PL011 vs miniUART
switching, we can remove the dual bl31 binaries we were using for RPi4,
and of course, we also take this opportunity to update the RPi3 binaries
to the latest.

Note that these binaries were built in an open and verifiable manner
through an AppVeyor build script (https://github.com/pbatard/pitf).

Signed-off-by: Pete Batard <pete@akeo.ie>
---
 Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md         |  16 ++++++++--------
 Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin           | Bin 18776 -> 18837 bytes
 Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin           | Bin 45792 -> 53972 bytes
 Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md         |  16 ++++++++++------
 Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin          | Bin 0 -> 41067 bytes
 Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin | Bin 41072 -> 0 bytes
 Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin    | Bin 41072 -> 0 bytes
 7 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md b/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md
index f0c4fcf414be..326f5f9d712f 100644
--- a/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md
+++ b/Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md
@@ -1,19 +1,19 @@
 ARM Trusted Firmware for Raspberry Pi 3
 =======================================
 
-The `bl1.bin` and `fip.bin` ATF binaries found in this directory were built from the
-[official ATF 2.1 release](https://github.com/ARM-software/arm-trusted-firmware/releases/tag/v2.1)
+The `bl1.bin` and `fip.bin` TF-A binaries found in this directory were built from the
+[official TF-A 2.3 release](https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.3)
 through an [AppVeyor build script](https://github.com/pbatard/pitf/blob/master/appveyor.yml)
-that is designed to provide evidence that these binaries match the vanilla ATF source.
+that is designed to provide evidence that these binaries match the vanilla TF-A source.
 
-As per the [AppVeyor build log](https://ci.appveyor.com/project/pbatard/pitf/builds/24506898),
+As per the [AppVeyor build log](https://ci.appveyor.com/project/pbatard/pitf/builds/32330098),
 the SHA-256 sums for the blobs can be validated to be as follows:
-- `bl1.bin`: `57e30ed8572e6a3a161c231e68138ee2c78e9dfc6dc51be8c0b4d9c3fe9bbfad`
-- `fip.bin`: `b7eadad3a11088e322c52ab5fd2247a7bc79dc086a21db12cc8079a2ab4789f6`
+- `bl1.bin`: `28d70adc6e7041582264874d342bcad992adb8d34c9de5813e661029d0189b3b`
+- `fip.bin`: `02a8c3ea9227fbe60ecfc20999db6bb755d0b32fd757a596353e068e1814e171`
 
-For Raspberry Pi 3 usage, ATF was built using the command:
+For Raspberry Pi 3 usage, TF-A was built using the command:
 ```
-make PLAT=rpi3 PRELOADED_BL33_BASE=0x30000 RPI3_PRELOADED_DTB_BASE=0x10000 SUPPORT_VFP=1 RPI3_USE_UEFI_MAP=1 fip all
+make PLAT=rpi3 RPI3_PRELOADED_DTB_BASE=0x10000 PRELOADED_BL33_BASE=0x30000 SUPPORT_VFP=1 RPI3_USE_UEFI_MAP=1 DEBUG=0 fip all
 ```
 which results in the following memory mapping:
 ```
diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin b/Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin
index cc3e79cc245fc07bedefd296bd9122eae2c9cce1..cd3038990a7c9e45d18cde6198d087281b4b4490 100644
GIT binary patch
delta 6518
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
Cmkmz<

delta 5238
zcmZ`-e^gZ0o&UZcGYlg!!_4qQKzIXEmDqqF_=}Y{1Bq$Ynh12)Q`2TZUDL=(3YZ)c
z%$Wxgn^t$%=Ov}JIbkq~b>_5t2<UESH;F`3+a~R<4rko<FEQG<8?sw>kcAh6v!DBB
z#^q$s&N-Lwz2E!2-~0W2zmHd$@cZLJ1zG!|!TeKkaumm|Hb}AY3>s94&JdMcQ38U4
zCX)C+W#|<Z`V%Vxhe6;cs{KA-hm8h@0JS{2L?r8dfSzEv?jic<1onb?bc=}e5kTNf
z{2=gtlipk(^Gta3cC39tN%!I0ud#nlrC2-o#zh*O!&q-4w?<m?g!H7IcpxC_LY8W@
zK}x}@MW4rkfRzja!ORlXSm-@}8iZFCdfy36NkVu*B7LSs2o2&AhS6Ut>usW}w}9~k
z(YhMaoKupkVy49#TIl`2Jll6zHBKHP-QTYo+XWh&x|^sCx>VzhH%J#%QHzdTApNhg
zF(XlhDp2i6jT%uPfVS;yR|C<0L7>*)dNsnCmk@Q%xL5&a@I9RQBQt~*_5sx}&8Der
zrTF^Ok9#Aq>N>xmIl1tMAgKRms!@vbhcW+vEIRo7*Ob&>P)c;nM}mGnNJhKgqW8<h
z>6%YIE<^}|?)w=TD~OE$OeFFadjBbuHUL+?+b6S1sbKN#EmC>Lda#@;6<I*~s`z6Y
z`#ULDWHxqDYVm1gaIZEDBw;CJ5=b?kBw@M_Ixh5{3kiZ2<#+r8JjQ7i=(5oJ{%MkF
zhw`|<cF8NhWzi23;skMnI5_5+BDjEz#qLs*{=K4LpAZXxrc1dsxNA8a0QW<hMc4e^
z2*K**z`yJl*j0I-Y|)?3V2@hr#I-ioZ`m#`x3Q?DrUIM_7vJm`|If|+;ObMXtkU}6
zg9F~klRL}iP0<HnPF!HXjHX(eH&SAw&eKG#*w0opfgQ1avj9gDS=718%B}HE=o3i_
zbMHL`jtOgBfnwEP#q#V)t3LGE!O5FAc}C1T@~Z)1{IQIsLLiu-C!_V8>8MO8nN9-m
zBK1c_IT#mjlQC6tU`&Cdxna}vJbpMGH$D%Ft*`Kap<@ptwm57$nuLv-YS8WE+;>nl
zJhEz(WB)CGxxV@>nJ&MzMjZpx6G#cub5Q%JMDB&&_e`OJ-J~C7IhpkVP1YqMw;6&(
z7M{>ZU|F}Mao9I;-?iv(l<<^*Ge@oZqhO4*0P|#Sn)rOH-UPhK>r#r>yhV@0-sb+g
z480!ve9a9jkQQZ^GIQ35UZXCN7~-j?AP6+9PhKbenv@f+PvQLtv|x#946tnbx;1vM
zQM~v7*69N)zI332b=p^{A7|)2cN0TAVf>{w{R-yVT^{&a)C?A~>0bcnw|Wh8t=dpw
zyrzU)!&&wR`*I<Z&DkFdyc-gfWP04ILH#y;)<wpwL}3*i6$-{Rnuzx~1;dXzhFTO3
z*vSYKP~?3J4GNFE(tJ$_c8PgIQE}?0ah24FN2X4XNUf%wRHyzv%8CZQB8@f+vKnb1
zasPw``%iEOyyn&;ARyEdF6J!i&_eG8GmL@@b9Lk%iV_&NiOZ`+SMm~pD3ZQ7ePJI0
z-@Nd*PW=X)qO#vDQT9CL(tiTxpJEI^TBYOQ@qkFvTAFy?rO$(yTY+nK5;Xt9*A6w(
zk1&J8D462@d-Pd3`affz+-f8!l9_?OW$$J^5O~JI12UN<pTPRvxRD3zpYHPbcsFE<
zb}7fq25##bsNTIL*R=I_K+A78W3z|!y^Gg)nA))3f%u#S-}^A<u~h;aUz4eIDb_hE
z1$6#MWMXj}n-i$j*LVPO`|iorcL1M>B;Y~F>2ep*nKY~N^hbc3lH3(zCUjNY!G)Yx
za51kp^Ys6K`sSIAe0_6@wwj6|)gtG;ERfqI`bEAzhXd@ECCA;dOn)GGAe=6(<!trR
z10of(;iV4--dUzE;L>fN`9!9{|HkD%$J!Mn{eV@C@Q5_uBr4VqiR8SEQYQ55o`0X{
zEU$p2T9z(6tTngUMt&mnl+CXbk!3wv^EFu3@1)3-lw0vb@Z*-=W<qzxZa@uw4q7P^
z;2WkAyL@<RFP#28EJpH%SV>k-d<2Y?7qn(_^c8#tg}6(3VdJS%i;(6ng<Hb6@uZ)H
za1bQ=DU=Yhx5TD`eNH05{tZ}?h^qUYYNW~0G}(kQK$KhE2j#rv2-FefR8vop(<GD~
z)v`>rjak0Q0P4Dz*LBLT_8fd_au`pxhxQ$ps4prNoQju`6t-maMc>K~#yw;SdmM*O
zw4Efw<Jb^uJ4MEGxJby-qHS^HHPY*2Nv!bq<H>9%U9+l2dw({1k;0_*q74NB+9O@u
zjalRjtU{o%-#7|u52G4!W2T+=kER`xAs@gVq15t_m*oFVg%{Ye?3LbUv5O|C(}Ooz
zK)D|g)H({HWLf)~NAgc~5oK@-Rgj}7#^dv2&~uo+=>~f_yK*fmMASc36ccCzMp0}8
za0HM%z`eFP=BfYlNl$iB%#WdbTok*`{yn?lzR`umkc(7<Oa3mab#4_lu$P>9IqQMv
zi9|4RunaOa3i@|h$XQvwKefZL&tlF?bs->9y0#C#<0g~Xg0rNe8{y;sJW<O-oIiWX
zr|<9Y^)w?#tfBTi8ue++=PDK2*<M#;l@m3FhuK2!hh~v;SZQ$3O8PXIAdW{%-)u5O
zv=_>ovY{Y0nd07P2ktrSopp+Ax4S$GFH38?9iBv&$%5{pGM<&`nB=jDL>YDA5RcFF
z!8vz-fC_aeyhG{n&nJa_FC?lzYA&T<m)VFdAp`HqXt%Fe7lKEdM<Q=@k?jXj<;G9r
z*I~d+gtQ;gbP*2nqZcq!Ce_t?AnR+U81LLOz->tm&q&tr>@G1hw_6G^Ex#xS3<gCh
z=c8mb$_Y2(;4b!dzN_{xuybB?VaFAg1g)8~=Y<bhbBnYheHZ5G44vEEXg0*(WJdmD
z>r~%{7-fkqye#sUfDrm*6I-~Fye(=oarLn~5Re>OV!Ul)t;==_AF`h>>-dHu>i-Jf
z=>{9MGwg>M2>5*{W$D8HA=KtKv|$frr?nLO>P|BINd@!$pyjuziA1ZSuxAQZHUSH5
zDr7V@Vm{(VF&pbqQp@$XzZB(zi+Y;H_2fAFLqTESmm;~7VUzxVcrO${XV*l}kD0E6
z*SnD+?bhKFH3tKe-D2<Y26`#pEs9~<sYcpGxFT=(1ed?1$Q9-V#Y<In-QtU5>ul5|
zAf)<LEz0R%;_em6tcIzksN#xf(VFoVJ`MM^J_mws5csV<W1?4!4%?}dAM`u56Eow#
zEbJA8{mi?(W%*x$P<yd{{sQd1+NK)cchZ@!AR9{^s&SRQz1$@>e3e~XUa>4jnMb(N
zXRUO(Mv#uo6_U}7`Bj!#yxD$J62l#2{pf~`Z7+V*If=##;zX}Wd3ev<;a`a?TwIs;
zsap-9uRjtX%e2ixmoGr2fM{cL#hyTeAW!q2L_nL7kHQZ8^!dAq)^nnL`Ve}N0kR(%
zK(l$3<mnqj!vz7+GJPGI2FN!3N3740{Iml4n|O_Q;p5G{8B9Dh>lJ-O)SRJ(M4m@Z
zwlQYN0zZq#WUf$ULnRx<24Or}@)bdNi5W_<^A<j0^?p$`RMeKg#aPW&d)5mlS(~R!
z_%Z(GuoIr8nXf|F8L2q@1NOFOz0Hm&MMb&9Zg~{;+3Gz3g3HsTC!MLt+$b_Pj?9iC
zv*Uk>uoRHR9%M0pnbUM9_?%8h1@vY3e2WM+if~@9gXdL=rbi@dEye?ORZ`>EV7t3V
zRD*x~Vo&D}9ZWBUPuyW!N^>{1!PYf+xl6vcG&a0hLK%05tFb=(dQ)iNhmE2Bzww2%
z!(O~I!&eBOWEI%s-GHCHT3Y$-m+vHoUQ8+aJA{lCYKlmiyC?uY)HoI2`&_a;KEd%&
zqu}6Lizxrn-QlP-buR8B$vzCPPrze+vTxplHSgQnkcgVbO3Tid*>|dj{k6i_lB#W?
z2O5iF+c56i@b%DrfX`suuWo0FvK=zNh6PtVvIHNfLw9>sbiBjt<_gb>S$O?A9HF_@
z4ak8rjo4oR&QDKX;dl!kPF7!DRJ9%(mPFz#-}nR@Yp|Zefe$K$$3MmV1`6VUgD#_H
z4^?7}zfyis%zRj+GZSt!*erXMd$m7Dhd0pE^UqPtvr=<^t`6;u5$G@Ad#nEr+rH}X
z{oLp`lkL$lRF?6%ii?6!IsV?7xFmjVjE`0QNVaQHCt}Qn!7f)FVA=-R7XJcIAO=Sq
z-zeLnm`|qGOao#Ji}5tUCfRnJ&+icc(S=2KnqaeRYsS3g9sv;5Sk$Bm>fN@sClaj}
zKS%AoT(yU3^^gIcpTRI?_%q0W`DAL%G$6*X7*7*yfed_pj{t}+EV|PK4UhrzmU{$1
zRAW(tF@CvfZN~UiRihB_J@=iC1Ii|4ZSAJ&x=mGeYm~3Iy`ZeEQL3xfZlvd{A6&bt
zYj4Niw(h;FH}Ms++5EjJCLway{K@#-T>P6)Ek1+e7XPwRYc$#XC(*nFg>!cd%1NrD
zDL9&fH&Rf>rz`)xl7eaq=BHqC7df1w53&(;{djd#tx#`nrNqU5BlyozT4}<aNGbD&
zYGVFU_*rjq8DyPaMNJ_sDdHeLAQltX{y+GK()jUC@3TS`rP$=8(O+Uy{w4hQzK1Hs
zRrGHUCohYq;1?-q-I~NZl92skYYl5}JjJHB9<x_ny5Cg5UCeFEMjz3Zp}d*8C-CD3
Y({PG;zgChtu`+278T5Hf`<ml_0O%7_hX4Qo

diff --git a/Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin b/Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin
index 57eb8757b29a4c0e0004dc849d4aa731c953279c..da8a93c495a746fd1f5caa90fba45fa1610a9da8 100644
GIT binary patch
delta 16052
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

delta 14287
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

diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md b/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md
index b3e7d6d772ce..43a33f7b1b12 100644
--- a/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md
+++ b/Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md
@@ -1,12 +1,16 @@
 ARM Trusted Firmware for Raspberry Pi 4
 =======================================
 
-The `bl31_#####.bin` TF-A binaries found in this repository were built on a Debian 10.2 system
-from https://github.com/pbatard/arm-trusted-firmware/tree/pi4 (pi4 branch) using the command:
+The `bl31.bin` TF-A binary found in this directory was built from the
+[official TF-A 2.3 release](https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.3)
+through an [AppVeyor build script](https://github.com/pbatard/pitf/blob/master/appveyor.yml)
+that is designed to provide evidence that these binaries match the vanilla TF-A source.
 
+As per the [AppVeyor build log](https://ci.appveyor.com/project/pbatard/pitf/builds/32330098),
+the SHA-256 sum for the bin can be validated to be as follows:
+- `bl31.bin`: `b868ef51cead73ab96b2af778334eb063f6bc8009736c1a16080edc21796dc6a`
+
+For Raspberry Pi 4 usage, TF-A was built using the command:
 ```
-make PLAT=rpi4 RPI3_PRELOADED_DTB_BASE=0x1f0000 PRELOADED_BL33_BASE=0x20000 SUPPORT_VFP=1 [RPI3_USE_PL011_UART=1] DEBUG=0 all
+make PLAT=rpi4 RPI3_PRELOADED_DTB_BASE=0x1F0000 PRELOADED_BL33_BASE=0x20000 SUPPORT_VFP=1 DEBUG=0 all
 ```
-
-The only difference between these firmwares is that the `RPI3_USE_PL011_UART=1` option was added
-to build `bl31_pl011.bin` so that it uses PL011 for serial output rather than the "mini UART".
diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin b/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7ed86b7d4e2786d8ccbc9fdbcfd4f4bed7773715
GIT binary patch
literal 41067
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
VcD1}TK}w?qm(O_VM-+$he*qMCb-Vxo

literal 0
HcmV?d00001

diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin b/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin
deleted file mode 100644
index 4ae39b79ffd483abab2f4ad29d6c380d4cd017ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41072
zcmeIb3w%}8nfJf;K8FxUgxt6Y)a(<`;%TkOHL=$01iV`>A#EMUw>cq1!626;I0#e@
zmsZ<!=Jg;gE&4Vmpq8A@J9QLV(;ETpZRkufG_=!yTLW0F#kLqw6EEcd{q22ra!@;V
zW<LG+|9^&jJnX&K<yp`3tY<y9wf5G8O_BK@^q2FAQ#bz)BKHibXE<<%17|pJh686f
zaE1eCIB<poXE<<%17|pJh686f;Bnw&$fRBlS*ce-cIwqoC}pzNcO}O^(rfb0>3*g>
z)V;6BY;ld*WlZs*<fWlJ)9IIAHpXnJur_p=yi2={u~I?%S(KYA;$0^H9Ln$Oa`KYB
zP9gV`D0^^X_rSam<?$|8_2JTP^ONNVi^JxnT4Sn>lk7@XPVBy)F=NKe`Xbldv1ZE-
zABRUlII-TC;}Nd>_J5E%+EH#N=>KS>XO36iM0wnp1L^h$A~C=H9hC2JO?Ngp7J<VU
zeq;HK<JS`^N*xZ3NgWA|O&tx5OHCVLwp`24{9QP&c6B&U<Jp3{Ix8>o96z2<0q2Kf
zOi|CQA-)WN>pSt~Pn7?6`6Ar^9XJm7-UTi@&oW!S%J`AB!{&<zkwteObQZ;)=nT~y
zimVM&HZ2iZl36y?u4IvuZl|)a*Z1_YtkcVy@7`=oUSg=t5d5I*%{6=4kA|%1n<0~U
z7P<Q6z`)iL6R$cP3Ps;svv+5u^W+5El#J{Ng;T#C7#OFzN@wqcXSlDNWC{fTF#YXC
zky6nxCAWBfCd}Ug^Iw2jtA1fqAea&7sR@<*jERiYIF-gkdqTrfzX0Z&YrfkqTu#il
z+Ka;Rs=~0_@p7T*e;GJU1rz5tZ7}(*c40%EWvW%L`zJH*C)=j_#Qci(mkZtgH`hG5
zQ#c(C6-8|mFX%y5w$T4;;PWTOQu&c5t?6EQfyv)R`HSgt+E;nyl_vi&%3pX3Zd!vU
zSc5PBt=&GxIEmR;mb9$1#~y2AO?cz~ZDo5fey#1^6`5iR%Ga6|BSNNHa=TqTp<MS1
zY_~)8mGiDXDBNO{w^3%MxSJ#J*jhBJ)N41=EmNP$qIn0^{^1N5dj2xcO$8?L8xPm-
z4DwNUTF@h0(HR~ugg<Mk>eY#+e+B(mM`>OZrFO#$mF?MJR#XfORIA+_es^9yyX6_X
z@K_uCJ`$S6oE3R+KSA3g^w+a!_s6Pie|4hf;HjO};FHONsmzhnIXd5fbMYl+#ZGv(
z0NT`Fv@HXk+6R2;DcL(=w{4>0kH-h<MW^IZy5w+iyvn$4zX`kjR@ihzJ`%68jOoza
zt6p^$b&i3j&F2)D+=<hjbp4xazUT8P$MiSRHdaa7Jh$JTN?YUh{}W?*W!$Sj@a7m}
zy#6P0MBhG7#s=Xax6Qzb14sP}=~H{>IR#C&nJ%2J1fJ>yU*o9F?ddYVz3C7S-wM~F
zUF3JycbrJ$X<6~ESf%NY*>>XF=ob&itaw*|(>IDtQ7w2Z;D@eWQR&zTCmu=|vtgTf
zQEtpjCa-mycqH7-@jYEycb0jyN@Em*tCej!%+Ig~CfN(!yG+<TeF~n(WkdGu=>^{o
zbBk&0WInB_Uqc_8Xzd?6d!6jgZQ^CqhEU>f@??vWU9l|Fe;@a;0@D%8ay!=DZMUzR
zV4&Yjr>>(XM4M5jKfqsjnfT_e<a7Vj`v=DC85lS&y&@dVamKaGES1d-G1q-=hn=15
zitKFI+=Hy|XPn7ayvjBkx{$>#!|w+k9_GIFX<Ib>gKoczv5SP=r?aN|_rqrT*YGs|
z8k*u?ZAbI8q3dE`0INzm>}PqVNV-aR2m0z~7W9GFVajYfiT<!suV<MpJyzfBBk)G$
z8q;)IiH6ahjlR#shb8V|{+ILnU;M7+=g+^dy9EDfW40uXnd$Yt$xhrt-<QM_>ds-z
zcu;rTPV`eAvKSwlD@5N<LJ75-&wbN^aN>W_UhA`x=gMdOx*voo!;Wu)XO?rgcgIGP
z@al`gi8gfa;q}R?whx$&!_XjDlc33i?S?(r%ju6kp{_9X6>MBMZ1RtC@4<+Nu@6OF
zzfs}^{m&h4wse}e@Z`~O;ymb5y^YSFd&><6D=xY6VBIa_=hwPcbne>m^B2VIXvEmj
zvyk_HhE5NDPj(^%t@BpZJ+Tn~!!hv!$xf>=4Rv9Ykp424n1Zk|MRqRs3L9HeWJ;3*
z1G8QMMl1f(Iw#cauLEDc8o@*5@}=To<Of-=5O3VCHQLx5o2$k8SRaaaS=2e6UYSsU
zJ&!t+3*G>*19|;Db7}!cZG$rP*`D%Y1^tlctwH@SPw9T|&L5o`823|tK{@Mki&^`r
zgAr)9Hktka&sN3^WK*=*PF%9)$+&T|65xdl$E#F_9lp_(48WffW4BB$a!c32uh_Ks
z1cSXPH}<hw_@=hNc+}v#>7MydnFp~+w=Cameihps;dj`W-Nlnu^;+~>j~*}2H7l;<
znp2=XDt|6acIVCNFFhlFK<lLkyZ;*WO4c@kOYA4bPsj)O^f0q!NcRo-0<u><_`C82
zPUwoy5z3G?*{{I<cyi&4NCZ9rFuk=}q4n^q5s6^Eo&cucb%t1rBl>20^(RMwTVd+k
zlu1TKgJ;iA^Cz%HT0hMry|yobv*bT{YG966{>BJo-d_(tg~pyY2WENY(?+J(LSgF1
zlsiHB!lCjfDUZD|FzaK$-~BnkACvkqKC9N02cvUD;wWYQnkr0{F?P>u1G6T>!%+N*
zMz776hT!ec`27R3=6dyy`t?5=s((QBeFL-VGW-8-sQ!NHk+~H;q1KzfhfGU`zT?UE
zw+H<T&CRQIq4t}=dHikg9Y4e4<+b8vQECyqgxAsdu)aAyUy4$<pocy|`&Yj>BB8p+
z;q|&Kb5U*BR2MQvg!Q^(hLt!H8V{|7-rT-uBm2Y5t_{fkVf_6G=z)0H%t~JGb`<BC
z6%qP=9GL32?-9*`-%q^!HGN&%?B0E+&(r2KPsPj3w!cM}Ij;@O1cw6TAnMIMzTB&I
zbFs<a_iX)k#%}}8YlV!@9D3syG5(ta)xnq-L7(Wt_hs$+yz>1oE9LPfoa6bpFC)ty
z|M0^U%e_x>H@t7QH;>sl*kk#jMX8&ZXTfu_d>(2(y*5|ocsxFzd6Eohe6M_yUp|>~
z?|D~FB20bA<DJi!6tpH!#SV_AO>(Ym@R;Zr-Cv>manS<q1yAu+@*0&DrDmt`&^!k4
zJopFv@xA~|^^q;v5wd(c@}gg-dHs9pPvfiSBl>(5eZP{74eE<M?b10~uLgZ7eX;%5
ztySBtZ#5PhyJ0<ks8i&2oTOYn&Q<a&$GaWJ^*qn4a4hEV{`dsxQBUucz_U{idwnD7
zJH_qzt=b~rotp2$_=J}kU;R!953aJa(!ECmJhI&m;*_n#N>O6yoO1MLHa`6@W9RJQ
zeg`<juwPpDdX}#n1IPUu$Ho6=Ty!q|?1n43kAcHe)YZ`TN9fJSTKE2lJEbLNtd;<8
z)?C+{;PHE8<p_8Nw%~W*RB4%x7tn>QiK;`uiJ_0*5AU^p#IyfP+4JD)Ld#+F{(1Q(
zzuYk^T>4>Ks<8{ljmb@zD{D(@3Fe%8ofhQ{_M>k~JbB7u?PaI-0LOiEU>7jUo(ttf
z4fb=N8F9_w&<L;oo2q|fVAl_FP5uw?u`dUHPiVLoLyGsp?{LV6^^degX9-rvr@4<@
zWb)-7Wx-D~#_fnxrnn%R^;9#-toZR81J&i(Zf~3`eq8<$Z%%x_y{#BKjP8heeDQtp
zBk-dp?DoorZErFO#cz_2!_b>7b~|ME1AqN5>91I=7`ygP{r|`u{DFDd10HRrZ;s;U
zB=;{$KJ30Z|Hyd4p(iv7J(e5&--4BGR>Yb6;wi`|@*&*zg4^HYV<#<qTX>)J_?HX+
ze473h-lywsR2_3MTd-e+7F~Y=4_YJWPvGpa%uAooZ@rmyFfJFq{4s;x?bzEIZ0!N?
zz`o6Cqi;Fm8`FAoFc$JwAbAUT)C-MYr=P<d_WY~tw1qEg&<mqeJ)wfscY$TBG%VKA
z|CJw*=J(rS4%u|pJN>cc*o&FSz4BS3(CMOo49{EaG5eeCBI4?zV=n*`{m~`c9O&dA
zz9#mBw_|}-nEFBi`sLKX%%&`p=uOiQtlekv$A3%wtN7*x{3}nN;;(DH9_6{%3~QLm
zy!gI)2zcSt7X?ptAS2eB4}V?<cA%$BZs#w3|7M6b>2%`m==R6WpdHH7+#^Rl(4x72
z{6b<t##?7=J;n=~9*a*1bYno9>{<`&K=w$!eP(_{{1e~&{D_^p2KY(j0DHG9X`2r5
zYXo{AHq!0DA>F#A(rIaepI@LpMhqqyP`g2%X81VLG4R3Hy}543_h~ELB%S2APK#?y
zi%)Y#yF9n!+q9Ez#BO!P^Q;!-meke|bACfG@HyRqf!*@|0{xarllW%Pv66||q79jN
zgnpVU*`GDcQ!JzyYpnNtisv5IS$wS9aj<em%l&p?%Qo6ee<(*FoqBi}a*J%-jlGUp
zW>+CNhzBZbr0g^vWaMo$Cz-s|S_^Es@>3_F&9~{k|MM!i_CZ%wTDDwd>jbe+(K`43
zJ=o9WHN?HlwYAe-4TGwSSu0K3TW=2L{N=a!8PW?Dwq-m1jPF;BP3?v@<-%Os>}r$W
z6S5j!^ki1K&~d5md_M+F-rih_j+l7_o>|$Ve_ZNG>f+c3)fF3S1^U|aSGG^K&`)Di
z`_p)1M+Vov){5lpA?l<rwC+85Nw0^ww9Q-_fzAl}J@RMz&3aqEA%9XlUCG?P!upe6
z`6}c0g@&d28^Z1V@c7@;@*r8q-`jN%8CGr>=d?(^iqETYDaP0;d5VX~T_96MJp1^M
zODPZY8g;#_?_x9N*kO-{(j#Z5dO{OY8{w7a51)2dVaWG=0=*+&u)ks6pg$Olw-=b`
z|8e&tH@a#KJ;xZH{~|vHUPvx~hfETy?s90yd~~31yMnbajQgHYR!YyTrPJ2CXbJSC
zVxU*>7ZnHXg@$LL8$E|kE`)|L$YmwD2|phvUGnP;SP!F<g87kciz7?$B^6^0Nd~-}
z9Q;UL81FFCOrjXu>+tNLC!bV3Hn|-d99M9L@~jSR-(Vck^IFDu{#tow+&BLPxOcq`
zmX*T4IUbpkON{5sCwd}!9kH>C9m1!F4@JawZolRmKXuS<h!^QNrt7V7-J5Gp&zVXN
z1y?yz$>1$-dh$dZgUztrvh8=f_ph|=mg4VVKe6M1o_T>h5o`M;<RUdT?+e?s_V(F@
z*T^S~g?(PDtOR_S)94B2Zk;{m*baC)1{s#^+C!d|HD0Z81V1KU#xC3+jBy}6hUQyi
zC?0&0F$7oe4lz%HEk6M{7>Z-kIa%rMErT{CodflBn&!#!a@!wZZhTu<NLe6D`*xzo
zk;@@ooi3MFnqPKmBK^l;%U=PH-SCS1ctgYBIx7O^xKulIIJTL&fchZT`7&ia=qco=
zYH-bE;7w|CKRmh-TXszmx}5yVIES_`XUYkBYlq~VbpoG{SCS971^y?c|FFB6aw{IT
zQReyR=;WSptrPk(VWs)v>w0v)bkG}Vn?%mZM!o`jv>F+atwLAA_o4VPu;;$7;>Taz
z;De68=xfY7xr3QLoWiL5HNlYo7Wf#a#UR*O*4NhJ2mSp7aw^f7Y$jz9Gb~5;7yaI#
zy^t8T`%jctnsAQRg5oCaoyg~5PlLQYeI2*sIqn@}aukR3yuWoYW)fdBeZfF)d>Q(g
zw^`B|Kc}x^8+2Xt1;IYg?O@G%ur1rSz4A4rPoJ5GEJLs5Y_F;vORhV^uaZ8L{)ln)
z^~dQl7VNitJZbV@#?Bh}ptbpPJCq~eVm<y%C3YjW-6W<WL&iK@Rkv?;i*n9!d?3X_
zYNK_F|B=GC!nYe6{VL_Lk<#&Fq7QLjw{K2M>^%C6ayydgKJgN_<Nt6keyMMs*LPg>
zOX@p{w$y)t`z`!DJC3}@N`hSeQ(pY3ISle&hI#ocZ8cX(`2QL1H^KjhI;XUhg!<-)
zj^|j1<U3o+P59Wo%;hs?*s-}>>!`cU*!%A>!&?R@+X2s$%;!pAB=OA#j5(&*a+As0
z-)TZE8)*A1IZdsnz|O?dKE9jwWix#++5405H|<wOHJ6f|xO`>i7Qg(On<+z8<=n(o
zyo$lAk8vNjP0oCk!4t&^Z`ZNk8q6E{`Ze&KLeaiZ*t7AkvA$k!8rFUfGFAw!2g7}H
zlED86a66bk+2=6!8NHH9!uL6p3%?_j_h7%Dmu#YEi_F>A6b+{@bN?aQG|~6yD3jlY
zk61^H%6hA+n`ZKrW3xi0Uoo!Mo#fOCk@Jrwt5_4zQ4~FgI*0ubbXIht?!&qtTHk?B
z@Osl__ys@k=3BTO$};(*Y5xXrMMEz4@wwoE+_l-JML1~uyC|2wj+4t%zmuU!QH!!p
z_&I<sPa;eEklVx1=!7P<EMh*%A)+UWqQBvq>6Z@9ANK1N`KTfMD9?rwUjZ}5x;=vK
z-BBpNQhsz{>N)gQ^8KcN`xV5W<jHE#OZXbm!>rYZ@DGnNj`{@c{{c8Idi!+!{C$t^
zjqtdVJb;BiAU;>}(-^m@54;sW{{@=b-p`&Id`xncpOLiv9Q85ikzVxjX&!Audf-GT
z9DV4h@$5c20H3EYD!)s->qHkn&R&RYiOvNO>-V4I?J1<~pBLW*YjMcmJPFJ|7Ufg<
zKBt8|+NpiuDVazTbBJGlK5`s98<YBSnrHGa#W&Hb@=vfXM89NBw2KE*!BKEx&@Z|r
zN1p}ujw|9F8^Bk5kpBdKQ-(Erd{jE_)L!;m;)0?1P;S)6B^tm#h5P_tFg;kn)c)C<
zYlhaH?6qQ3pXN|h^orL0$)^7^lC>-|%lDy%a<BVXQ^~Bp*_xNOVZ<a&K}=GVy7~2i
zt>3Iso<nhj7l%YYMw!VqH`0CuxykCs*;AGdeg(Xm*blv$aSpK_n@UXnm+i5vheGX3
zlOvM<U6lG2^^#NLB&)WwhGslD!_)2Z5#qPceggg`NYW-MPu{&*?Y{@VwtF;>_xdM!
zHg2*iwomzraYO!(eD}%nS^YKY4EjK)$L??4Yxo^<l<8k<%uL<3^PPE|GU#RTInCp!
zc$@=m@`(iFhp!E6#kY(a^4NO*AbjRN|Li4`<}0Q(w3TgrfjBUZ?tMctS7SOJf#2}T
zgK;F3744(k1qSjNmES2?dzk~lc91!Py^UdSlk_`ATj}f`+Wt=WS-xHyT+46a(e8~_
zV$Z)7KOx^maNB_KYw%VMLpe6VjK4lGTVu(0iKD+rSZ?jcPCFr!vl|_@#~$DCd2EvW
zz?eOzrPVga$X!-{vC=<Np!`lJ<+b}tTku_ueU|4>FgL#h-Yd{^6dI2}uVh*{^aDRL
z@AE;;_qWzpb?*6YBXZ->_RneB0@{s%2NST>=eQjy>e^L*j_E*uus()-VCm1NsPptO
zGAP~k19<8AO3c9n)KxM^l7~v>$>(=r>Suz7j=!I)>`@Fp+{eBAs((<O$7f#`1$i;*
z4w%lfy!|!#2Z|LZ_4#{$bNf!m%R75DX`XlXYA^ip`Znh#e!+g~W!YxSKjrG2kvXn2
zGqOzvI9lsJrCvO{jy(yLYo0a!T1)$4L+2l6fJ@WWxvb$r#a9O+t4w0A*EjvlKHztG
zt^_VI?3Ou-x0FAA(Ay^`pId(DXXv34a0&dnE3!>d1#L>qFmxNXHQQ>L%ddi;xy0?L
z!w-r~LCy{SoUx*cOOzkYMm8+=S9|DV)>;n;2EJ{Avr>I(WAM38F>e(IF70-1^2;)5
zk$&5hgG}7i)ED5QeuHiN{0(~0j;^L%(M>b@0>1d|hU|mKmy)v+GvUdWk_m||#9_gj
zZoS*Qq&3Z<m+Fs!<L;6R6LubZv&gP&0X#bJ>h@8IFP^&W;MwS|Eu8;)#x6Ui9KhSx
zn{Pi$i`N`13Kf2>6PWQVx6Ep2DlNw^mrqyxhR+*xX_<8EPT+9g&l=wyABA1vN-UW2
zWW$U~+{k==kKg-|4a5BOU>_BCt<Q4%uco|gxXCXoHU<BW)-5n?#<I+W`5L#fh%-sd
z$vpOUE6tb|!?WfH+PXH9t1mW_8$#rp|Aw<)5#q4d)9dKSaBI5cSh0p5FJz_S_^m$z
zSDi0WY!ZhS=5TW^PGrQ~S9N&c>y6q^5l!S~swIP&^X4+9qjM<u2+D)@lv~r`i5DY_
zmpvP6A46ta$~l*Kl@GgM1h9KH`t8;Ob2jr_oR05o>KMPu;9tt$aF{PY&e_v$-e|27
z{%0f0v)J!aANkEa!&@huCPO+WGj(F)iBMMRFgW}hdt1Wqt+=yK6Lor8t4#dS#$wAf
zxWX^n<m;aH)h4sf)_IlIUrLX5M(^$F{N#6fJ9F8i-u>w=vuaOoXEtYka$CF1n>%|u
z!`$a^MkarIul7Wsq3aoA+I!U3lXc&wNmk`6&q6Px^Oh-V9_J{L33M}-`O@wa$@My;
zG!hw}$#r_X!0m92GpETOJ3XGI`@Gpr_L%8St0yTZN`5_Wx)bIs=m)dsYtCw+zsb&;
zu5%Vzze&4wLYzG!)`0ekwr&6(v_|LU%{%xMzEnkS<-u~=v96JW@zasVj*wa36`Jr!
z@37(PyB;2&>}`ebkp~xX*5S6zlT8SnG%OX#+qiA-cGDlpEA8&wVET`+e!;JQ?<1yv
z{Q{jEtZ3i2A)nmW*p!_e?~?DN*!#g;^bqGi%BPwYN8!()9`N#;#98nL`6>7l_E!2l
zkiD<Jtu6U!+8WxjA9Pw<V#gu4=ok5Wzo3oj3@3gx(rkgRGksk$(bpxF6BF9okR7c3
zjN4~C881Jib(Hz6HXD)OO#S4+vD0u$CMNvcv~NGY&6s;COgD0y(D~CK<{P9rjoUxd
zjy?Ak5&StT&iOLSoo$kwf6H25)i(YS*5hz*y_>vA-Q-uRCTh(v=f%0JdYRj5XX@1l
zO}zG?3E%XX$)D8Sv+gsT5uVf?gAQ|eQn&O(ZO^1`V~`Uw33s5BALS9s9{g~3WjtAB
zF3FkioqwTUEx*W-N!=&0QP`{K&vmweYmRqrs4&`&9A(-s_D$jUX?|O@f%Cr=ZoF#y
z4ru4hQrlc}mvUn}J=<3lZKM1KoduBHdiL`ESlH}t+bF-iDEbT9B)Mnbq-q9jP6q9I
zF7LOp-G0?M=up8>`@f;S30ZcrLF+|x%p`unJnK0E3~RjUX#H@gJG1^p)oX0Qblm<5
z_9Ftg7JDRZuWMgax~}|?<i~k^VCJ*XIg5TnwEJhnGIMZSI1lLi^Tg9$tY@W)UL_yV
z<+KQnH>R15?J~sAMXA@}li+=uYk+%udW>)A3^n`c@!@8sw^upbR0sS@lDD>u+s}I6
zCHp2kKMt*ewUd5hp;`A2XTZHb4L6yFTWrQQILN%(J&@7oOBsDWlgTIe5{$*(hnI)Y
zUWfWCo)tYmrLT0&piRxl7pmQQ>VrAa^QSV#YG5pKWaCz10~9NLfvapnrfi|4jtBWC
z4~HYnUy<-C^mxz-yf|g{c(;Fn$D6{G3va%{c@6~pc+7_P%+Z#vSuMdFZ1Zp~N{KJ0
z@i*7!Zy*OV<#({wXLCKowbdSbY$N<@V?9MUkJSY1-FL6OU+1wL=A!oYS)MNw=sp`-
z)@SG!<rUvt^MvPXN@jM4Z0{_Je5RAcfqwiOifX?_dnB)a!1R9spANkk-80IM1NxbV
zgZO`nv&GLftR1trwA&r-`yVO`Q#L0oe}i))oFfzNI)C_K?$?ASCi;N!j6Lz#Wb}{L
zNZ};*wS%>^+$4tiGH^ia)RQ~bpf7jhqmny#cEDRlX?|%Ol`B7VKe|ovO~_xv2Y6?o
z%4^G++n`;5`)%O#4Pqzk+JSFcW@b`z%i4^vHiNc%Gx&E9{>=uS_;@{Yx6TQ5?}CTo
z5BaBP>pzG`MX45#Kgx3#MrSZa+YZIYh0%J-y)h=CQz-LsE{rBJ+G7*849aqPzv=Z4
zC~p0cmtzs_fj$>qgLWO50nQV_ZMUaG@u7Prb|Z%eV$WSJUvU??)BYY$PK#0)o-MVM
z%h!%j?(vp+sDQ>9I>*brA%l-f1})}D_DFjb!cX$1SYk0}6f<p>?9sl~J@|U|?QOKJ
zWb8`ttn|*^79XOYcTTf{@(AS-&fYqlI|*nKJ<`Lk;-e}K(>Z?&nJ4d`zplWnkUyuf
zGi{=Hdk=Cd-6fxdoI1-E7~tY^6%G|nR>F0%%ABw%bF%s6nzGK&TjK)l$yh1LqKUg@
zjxlB3;9;#@d(e|P^eDb+O9?QwuZT<@k2svGFhvcDV{7EYa$R?INogj2hW@~62~Bg$
z>Znr;ss6p-7dj1gsD=H(<C}n~dY##-r)@ds6QH45_`0hmKOuN^_}y_}s-5ox48?QO
z`(Fib?GJc-2JcATu$DSt*8zJT{MZCPBJ>q4&yoA8F@+6_;j?HjMwffnxGD42CHhN#
zk?fr2{Cy)#k>33fy|=N~Z)eY4JuuCbiT2h-=a%lJOf(9<_GsQ*({WnvS2>V$t}Ru{
z_|i9j15Ra=vl7bxt^)VhX(PF<MaM<*Cbp~v_l=WH;<eDk)GXi@hsHJ(5yR*VR`GDo
z=&*NFj^9{0aqj9x;L$@I<1~D@6#aNGPQM*<$T2Qj`Gnf6B&Lawi`|azX^)?~TKXb#
zU+cEgm(d+pmzJ{6*|=klw})8m@ef|Hw%9`%+tAK<hi%v6i<RaN_NB|jP2%Us;8ozR
z`H^nM?`v5A-j(n?Mh?uPU4(gi#<m(3;QzmEoqIXtAA0M&kMVZX=LhglGF_SD({%*8
zN)~;%bl_^I)WBoKZ%1#hE!CLFC^BZsBoplGjKi-elds(aKd{|pS_{zM08QTdkUTk*
zDV|o_z2s4YcC=yX$GvmIL7Pm!qZzueXWp658MIr;^X?LpkPqU`FY8GAem`ccK{_*R
zGdYnPwWfPk$DT+QAjhR{S$vdf8HwH0y2!M_nPW+|gR#hQryd9A0DiF7rai*Wo10F9
zI~lm_lL6QFmG_?{kCl$^ps&C@8pL=*@xO8?@YJ(4fe#?LwRlfJvA@nFtPh#p<A|dS
zaY>)OYV#+;?i`D_Wz52}=ii@Yy!S044nAQ{vhhylzjJKsw)M6-pR*ZVapIQ8k(n=#
z(q7gLv+uXeoZ^sqDY6Q`ikQ<dzv!wc*b#TctA;7AP5T|36`pC>FAHdYbuf45=Mqfb
zCEeN|5Iomn9_{!9^!a@2VszJ(G0`U5;%B1w1N()y@cT>n-Fxt#<wq;e5<#z)BZJ6C
zwSzq{TSh0!;O8U!MuWffwA#&>L@pQ~dEH3Pw~TF_AiKy}!>zvGTo_%B&*uBwh0*Pl
zdwLewDwDsdHHKeYog`-_ovt$pLEp9X6|KP>UrL?y9&&mhf}gM+n+Bf!Jnxb{fnT1T
zk&ItCT=}kV4(cFeD8(5b?+m#1bk_hoNv_n-E8>?OHHo_^iz8cY+>7Uv!O7#bx0mo^
zZ;d*P;paZSF$jCtMtrIa{ighS>!=B<l$(*yRR-SjBMtF`>~&M+4F@BPCHl2)26=oS
zFVTY!^HF&G4RnfPXos9+Adj9e&i+F(R8dw5?_G3}WAKfnzqvonCq_2jT=Op;&L^Nr
zId}Of<W!?c_ITDn8)s?9rS~{eD!UY%I@y~RuJVm%L96c@`~IWsbil`aXzB#+eA;N<
z{CV>I6~)vVD~VjNAK>kU^k}bwIUitLT@_C|j5Qe<->zr&Al3e3)a$)G_*}K=4c^;B
zCyD22y;Tsz>UtjZABgLJb^?B~U!i$`26AabvCdL>DIC{OCVxTx|Ddk%asuovGWPA@
z+QWF#y)I+woTNXVAA>2TZ5!umeIKhuW+fv!Tj(N3szVMvxhx@85D#4DMt)-_u$1Ew
z9ilD3J6UHEA7#uSKb%>91?6p{-G1Rhzs=5l@ojHy=lg;F{>~4<BL*Id@u$kBgNxRp
z{6*XK{X~C`_U&|8E5aps7B7W+$$^hzul$^yi>->A<FhNqeZK0joopmGIMQmq>0mi$
z6x)DbJZX8acwnt9o*%)FR&I>Bs&<^t3GxGb3R}JRKn(LJTf^1c?|=VDGh1gf53@$(
zqy3ios$^X7sWQ&@y}o9Isg};xnM~#8o(&B{c0;M~@Z)nr@vm1sWI{QuH;^06Hr12S
zO?6IQqVCFtrT9^K8}FUm5`(^;jb?g~3%LVcD)*=J2FfAHkIAD<>o|CpKddubuTZA@
z1=Q<YxbC&ru6f+dRr4sgUr5*KoPczxV5;pbo;hbe?s@#|ll)RVA5QmqKRNiIonTy?
ze%Ae~=y~4hDDY^z)}KR<w)op=gO{5%XS)8-gYDZl@_Wd+@Ba&CxA!j0kPeh>lRg>)
zuVvG2g8$>^W+mi{l~Klr*ACnqn(g^xtoyBR^m^yXQ}d`hO04ruY%H-=*K?h-TI8=!
z;+GBH-(PfR=}uFav(C<L(D{T1L&I{|3s1a?tuM!C%f^3iMUHpdXXoJGR`s*r?G~Eq
zDcnoHtU1RN#5gy36gdifCpXWuoKJl%bt7h)vhydcJy>GdEfuAvOtH#1_UA499{Cf>
zhng4H9(-hm>8}WxmYs!Xo&WIYQRmN58+i29a>^T=zMjy;=xSo5!|*{quzcGR{9eJc
z!nAcv*?Rom1?UNDUc5?e)Tg$t?SVh^4{Y68_)*|qcm5+Y-2ShYv&I=W;<drHO|}yw
z(OqpV*iC#!orj3A9&GS>{Pq&hFA=WVqt`ocmDqWkF%{n&=FIQo=#OubQ?C7ryIFpn
z;(M)+O8ofw$oNWoPNHIw)5rPvty(J<V=1PMlMjtEPZoG9Z!!biBOBsXtp7)?17~&A
z9=W`~gjgEB?%GbdO<4&!mVG=+Pi^38v;Hd0`=)z!#Doio8B2&QOSr0Tt|^`#qTgiV
zwvDu(Ywjh!3Prv4Q!-(U_hImk<q+I)ei=GwsI1U0yE2W(wV8Ei`E~O$%W}Q4$PKP%
z^DS_Sm{HS3pL7`OfcKsK_jYtv(?6Ht+v}C^P(CVhTP2zG^S1tac?BMdPs%yOq02xs
z&$|qIdkHbQSBL&I(5SM&kJLWuY5m9_1pPjl*$+PW{f6?EMd(Y}DF3{TmFfo8Omf8m
zJcDof(KHPCCeq*1;~{95uM`6h=`ztByz|zHE;xwp5Ae0%=X&q`jd+zqdxvv@(iPr&
zF5qgsy7EJc7m%gRvh{=Z5F0OflYbXOb}Z&7$=N!=(HUG1PKHnBwP8HrrZ(jN=Oj5_
zCqEm1cANa~y_~~y8Ao{PD&3@e-rd+=gDvH~CFKkr4fyNj4w!!zcyZpdW6Un$9@xj=
zT-q`GB(1;j+I0tQuC=#MS!HoOijLR%s#{&Rs_v4CgXJdF5OFq6sL^|4j1{3ydZ?td
zc)sOW(FOD?rj5boEd<tr+ZV2?x5F)!yi2-$U^wTqtof{knF}2|%K0oWzNsM(^pJ7y
z+64R>%HqH!KF?n#`^b9U^N~>ZpYv7ZLwyI__got4mcCxM+F7M{J6nO7*~bhcm;U*f
zw+F0qisD(oBlg8~Hn*_{9aCOH-#MXfXh#QF-g#oR<$1Ggp8Al>DUdCdUROVSmTKl@
zrjvh3H}bUE^sU%z!p)C4<mH`0VjJD_U65d|y#45R!9_4#;vy?4-^u!%F?T+u?}+?I
zcnK%$=O9j}_h0p{{p~bedQVGqCDS+<<M-8jy@%0_R>3*l`=Hkyr1$SOYyZM3m^4VE
z&)*@xzO5yzy#%@3asTl4habpp|LXOozmhmx@p29OnmZKFGndl!<SG;svG+;LjnAGW
zCfLK-jbtd?p4@09lH^r;vf>5Fzol&Wy!Pa9o8M*pLhWrE$rWHPKZ5S|eKOx~|1f^*
z7RqHK@y{NOym+~CqPtlSRl-$%XpH%f7`I<%C>_fEvy?;cX%JV-FJ6(PoeK;L7{Kbc
zU(D)P`(S<})Nv-s%a387&^cDL@|IQDAS;EP>i2nb+8$$6@Z^Ke;<|e}dnv#^IXYf&
z5FDisJROzZlT-gTcoV~3f%os@%oE>%=qLBN>zSzcj#{;RW}VSgxogS~wc7SY@d9`C
zmM+DyZol$MJ*Tdit#(P`TeXRu8kjAgP5MjtNS-{u7(9fJ^lX6NX?S@to$uFY;$^_A
zwtziG?121x=N<5n4_J{EuPXi#XTk4VKcNC#w9jpv^%G3?-U;yXzDP1ZVR#46SrzLO
z?Jm6L?CFpW^J6J;@K#E>eTP0KyD$-BzWg|?5PeG7uL=`?OWBY3U4(y-sRQRjZ&T&e
zgzbI_UnSXyUlY~4_$K>vUCvW`dSBHZH8ENTeM`6(J+<Hw=$OxV`1t4T{QV@}IRqd1
zhVqekza=#n+FlI}ONpnigoYDChdD=)mAV6Yw?kw0`+4;-sky*iMA;F$h%)8Di&ArW
zf4+_~&cjnym<j<)IDC>ak2W(Vp+13}D4(Hkh}?!x>D=YZxS7^k)pKjIQ9P6$^ZKnS
z^4{wn16{EU87|JP=G}c_lkmsW*PHxn?k(wStXDQku#)IX#U*jB-Z^BhT06{Bm(GK`
zmFV7F+uQG6&)QM0$7I{{)mL$QtygwQw_*r=V@c-}w9c&Do-UK!)8&}BH%<UY{Wg&Y
z6b<F3xbYs-`Af;_^Ld@W4D-$o=c!Yh%<yY;-dM1$<Y%fjasFZxw*FtBbA8;TLV1sN
z?O}|#YuF!O{21qG_^#9XZ56{yyUTOkUYCBA#(nH?YrJcHcCuG%doO1M_HmBD=bt~<
z$$Kn(rk!1FbtbWWoayHsMsxvwkW0>VhUxe@bE0`rAIU*b$KDA!72kIfPNFwLKgOso
zp|5)r=Nh?c+y>f;PcC**Web=mn|kp!Q-<XW1@PtPgwZ|qYD-=x<oi{Rn)sXq-+=J)
zLxJqB<h$5|aQwC8<#!aL$qsaalP`z<JA{gzSBFfIuV4N5EHnEzG4J!RSLP<(+v2^w
z1zD}zX5b5yn@{yN*=yK$v-x%pvOlhMo9LcDsW4T+7!_t3XC+oYHZ$8aTFBl8H{PYT
zp8}7VO>FM@O8$5@@1~U#8^`FklKLj<?Fzo_lC|owR^`v=7b}Qw^L-sZZu8<ba(>E@
zlOInJb9L=rJ7%Ku3)eemNG@I9$J(s*x%(?7-+yn)N{ye~z3tVK?rkSR<M)p>V|f?Q
ze2%#MSks0L+nQ~Ae@|#mYRh@u+xBLer(Yw!Cicire%SOsG(YeB=4)rRv|VBP+d?;-
z&t85G`nutKa^REiaoZQz<6Az?w_)yCy|!;VaaApQBkN4zu?S^7VN<Y({bO?7$EI>E
z;aqjiX!6)5w7=36ws>n3-bSc<ocQU%;U<y1f*c3^ck+H3@zK+hS^Ii#vXgzn9_5Ta
z3=Hf=8$8=4e+9j5rgU#J!_4j&e&%gFTi|ZiHs4Ro{k7T)*~h>x_k`WY;;S#|JBrTI
zJ0D+VFW|SKanZ0FoI9PELLYDaDmj1IaLa7KcN(5*piJLAGOwr4CCShJGqJ@wGxpeG
z@LC7G_x6)>V*md6&o^(@nUkZT3FHGNrXmyFj$45#T%M%-{A{=Xvjt|?dD!d{Vy$OB
z==L5y3*I94>$qRfefb4$Zw1#HbLC56)+y&`UX#r5p7TrVbCnwz(%Ic+M2k1~@NR|`
zY7q~g;T<>S<QLpG|FwH_h(QJ0wvSEKJ>%}-o--=dIpo5^$fONU4I`#JuyFk+`@%V9
z_w(dtmhe8ovy`K=c59z_<7T)0)7wpAqY1U(=RU1DuLQ<ZBh2o(v_sGDsxdjoj#Bn2
zHiWz;`5oUD#Ob#Oe;4`Z-5KrW7o{HOxwAxbKjv5^v~`!Dqt5eXLC*)z<6W<S_ZfQ#
zzb|szcbYIVH|$vUF!S`2tU2-y{yb22FV876a(|7L>wTX~?P`&Saw~i+!qp-VH69sL
zpM83N+8%jqBeJ&1jBJ5cco#nQ?AF!^>+E62j%sdA_OajcyvKxZcWD27(j>mcJf4e=
zlI}-$-Df6^Pqf+bf)#I)4+#5twV>RSoizT^eYLD*T~A_Dzm~qf6K`u@9;lx8^1v?P
z{X52$?@-Cu4|5f6Pa>aFz~L7>`?`JTOso7*?Onw1W8(N?nL5b#v5Hckl>T8}{C&is
z_*845i20P?q<JdC7Svv>Gf?p^>46`?-@2&(ypHFe@EpfqOY$B8Hm^!CX{^dBlb!d+
zeR3yCq-ene*6}K*&tL=PKP><^=Ax@|nrW$773qsmUT(5qYQtWrjdE&r^s#9Z=<$W%
zQD5bDbdaYLPUNXmG1^3qf9l|;C|myzF8)D?_m9ofk}LUgn<jYYw>X0{Hn9O8lJ5*`
zUCHk^#MoP)|LHXU#6t@^9_jnkW-I+|MU^?dW!=Wy{FoK$WFIev&5eA{={?)~UXbdI
zSAXSWCS9g8K!g4I?%J%j-ZON>3-i2wiuF|XQs|si7W`$7c3HrQnAl?$?H#-3P%Z7j
z-#de4UR-ssn0E|okw<vk<&B%Zo&ZKKFnZyI-p^Nj=f!FneR}?2yzfH#xL!4cD|q<y
zt$r+^DaP2n!2B+7_VSb8sWDH%ul?MgVvK)<XKJ&H=O_5-T^hA{nKq^5Aa(x=_bOL=
z;EYp#+(HhlNyM6yR&931yDg$a<>nH1v*-(ATyh3m4RdNo-~sPMNlxh7UqgIsp})#G
z_vy)rqjLW&fuW7ydAv#czZTyVYvY?@_{UxN$Gzih#-}cVZ+sc|fuDRc_wJ)*-4*)&
z6Y-Aw=+OKQgPv1sO#eAmmv;YV-OUG|*=Sx$B3IAcZ(fRV?HO*`kBqk3pB-nnuV)?%
zIz3KIW6?gc_U41elpo55ZuP&^x^ni5v=M()f6f$>r!%oV!(Cuh0Hd<~)Ec)R`>|DH
z9u~ZG+wYZ_Je#)q!Hc5b-sARPrWgf2+wP^^lldL_-}&uf;_qR=es)|Q@AMbzJ>kSA
z;~xBN3wodPfqM-88FTj=@`yS&c(~=pcFR4dyM*7-!W-H{#OvXzbGira!7qfLvC#23
z^x<4VaS9(b@soRfIC+eB5x)Y)JMdI~dsp1_UtznCw^}BV$3DU6wKWIxCX7y9R~pXy
z>Eh+3KQ*OuzV>-5@Ar!*&R=%b?R`C#cRslY`Zjkmx4(ua(XMB{KXmB#;MfEoO7Jf$
z`F5u4v&ps|aIKm{FHnaL-HOa49G=y75zis;bPt@<tu_{WtvX9?T^!ES`3=d1)(SDt
z)^W6xO+1B;s)UCw`vs~mf!FepD&z5O-dS_>poPtf<RXKMYWp18U4G!w?oP^+=v9py
z23BXT)psg1G9?&Kea6bGzt>{Sc$bZAhfcM2g?je%;scFr#TG$p_4-Y7`yxE!3pUiE
z@8Uh?Y4x=f2l6d6C)a&Ez=u2)I9bQs`!@RV1mm;U->;w6j0-#iUK%gmr)m%D#9J$G
z)ZEM3n`N)H?q$8qQho6ot@r9GKmNr0J?;1;Td^tHqhn9Tz-J5J&?MTRE0*OxeYnoq
z|1IuM%-_2+$Q7usa#vgFm)Yl0+9?(?=I+OW@685%r1RE+*G0(dh^cP-2zPvUl;3E#
zqJ4DU`0i=^@~2d`-^g`@nb1A*gLB(QR!r*7sT$v%J9A!pt~0*-0)C?|xvYKEcKYoY
z-<>z_^7b1jOB|rj)GOMrIxw;Oc7A7-UfF(DGi_sne^vYF8-dR+f6CSE7pZOM`0ku(
z*R+3N?xgN(`JGjIZTneVm+~9!ezbk`v`O95ZkXih=*;!~Tyd!Vckd6k|Ng>Z?Jv&B
zYX4*T@b=?ZWViQTKcfBQCq}lvQj^o(cUx}zYs=1Rf8*~)wHH*BcK5C`{pXWUE4LQ+
zM$i`{I14+HHB)2x@!AVpskhcVHiB>ODp#es(HZSx<Mv8cl#44ii+gLi@7c<{(=JnA
zJXbsyoaTYkW#Du<I9&lwSAx@3;B+-OT?0<ng40La-&p7NPpTN-{l?#2*RFA1VxFY~
zUTQJ@y&K*B<3GHyy@2(fhc38?-*1>-tx2uNqsV%kZ^y-0FJH&j>im4n)EpYdI#b=l
zdFJW(l<#jdx#;q#=B2rk%Lh5r)JaT9`(b<sMD3rW?U#7&0nS6WTQ`u?;l0?b)F%3q
zhu-=Cb*Fg#D*B)eJv!NZxV!G!8xC$jzWF}wHsrHqF81A+$)9uX&Oz3AC!h7PgLM?x
z)pzZ;`oGxk&g^#_?@9LL|1D(l{%wrT+m1+0#Sf|+c6Ez2W#2Z=Lv1e4HZQTaRXq~9
z)*M?LF=J0=b7h`MOqn+K;HUFCZ~iQMpLvn*Pq@k&5j}6oS@ZKF`zCnwSjC5~9>Mtv
zGxFFX^2)`)P`Th}4u9zEoA3c^c=Q@@d*0+XY=;l$TY1MSx#~>KVEx^1uU9^8uzvO1
z>$R_TKDd(G>AF4JJpF_8^Tzb^KAvsnV;Xa%>ru^Bu6yv))bC)f%1y{S?^)~lW7hA9
zhpWTbSLHz#^3HB6x^^nxaVsWwfjm?X%XJ@nn7U8H&tksYSd6|ze?fEj*aqs0*RJ2G
zdvsRyJp3@-Z>QX8)_jJLgRmzD^IlxL`JMVmx5ov?gKc}T#Y2rB!^aLYzHoc$)PRTE
z2Fm=lVXv+DrS{Te1Kgu{i+C4r+^hUtaE^q`Oq-wH6D!HyH=#oB(yYy%U&%GZyH9oI
z?CGIg?Ma#ro4r3fFJ4e*?2#&~LuPah=}O&Xa%Ca*FTL_S@+y>TZ1lW$eV%osGkllx
zJ&(>Je0A0izQ8VhPvjJFEMwdkxo>*HBKPCn=gml1yj$XzbDu|i&pcV=cAH-#ugcnF
z-L5zcf7lmfe{y0$P25_6-KgFUF4*CYx0XAU38x7Ai28OKXQVr7jhStX>y?9Rfrm5o
z%8#i&0^IU6+<+FmFR#A%o>AR=zbxe{rXuGf-_F{8PPc4zrE^Yq2%8t;Dj!?&AI8=^
z3=PAqWbY>47x^^4`v7|Lp}bAo!g>C8&^5k|j)*V^nt$+P+I(9XB9Fh$SPe;NG|ao=
zvM_Zu$WgkTx4#`)w6IiiaV~M^!^dk%i76X;kd2rbc8%aOXY>gjs{pp1r!1-~4KJEp
zT1Ow{6#3TK{%4`<8OE1h)VZ4wIGxK6{-ewAF-&MbI6Pf$I9oy+oqZ6j?Tcci3l=%0
z;@?}xvC?BG4$XY$cNp+agm|Z)y?*8KcXPH!`G8MI4zu@e`v&=vSloIbES{jNH{4?7
zZ|XGpo2G4;@X+n&mMRCSb%@^Hy^e1f>3tBzc?WfVk9RsbV{*}6p5yk|oYQ0UA9y)K
zy@SiXMSc#pKE`)DbcS*XJk}YC<n2wR%2DXNxPO*n=v`&yooAAh5Z=lkjA7gvx43+N
zC)_@PvxYa1K0BfJ>XZxXWG}&C&-1Nko`&{+eO!vSm=!vU&^F0bkEgH2?>yFR@k7>%
z9^(GuN39jLTqE#A?R2L5eX9SNwZa`^su!WNihp9Qs6bB@jqIDV>QcUY!`{aD6QA1L
zOgzb+GVy6)6q*uozBOQwkDd``)^6L%(R=;m-%^6hyOQIId#n{n@;b%8vsQ?I!FUzm
z)K4B%G!=JRD>(mGolQQh_&#ezC$g~fHSRk(2LwLwqyYUlju>dg1>km)?_tHji5NLb
z%(QteII*X|xO~GV-1m(n`JM5@&5b+p&3ZzU_8;ZktKO}xU`>A<It_AslJDrmK9mU~
z?wyfZ&->cQ<BGor2aO^4zhi7Kw%<3iMdw^jYXc0m(L4ujw71N-DcO<-f!7-H;fasp
zq29UbQ?3Ab|H%E_;Hj%{T1%VPq3gjkueY!_uAD?bgT?nouyb2E_X4jcLi41Q@*@v0
z&bstCf}#Gx>5cR_!ilp&oCERaEoM*f<}HSgta%%sV{UwoHkw=IN5t!YWxlq+>ssKk
zKNBVAusP=Ons3aJYstjveQBIF&{uXvwA8|zjDFrZ@D1Quljg7B3MTP8XNi1%h}WmJ
z0fyR$mY|Jj@niw~ym9^ve!|7D2Hy!6(RkW8X<Xhq&S`D_3@(yst+Rc|a%HEvaV|P$
z-4xDhy)aNc7n$?wb3zlPYZb5UMo*l@{a`NMKaUsHw~3$S-D6^$6*0b>7Ucb<6Nx!E
zzvGrIU~kJYX1~f<zur5k((}q0h0?mcGB3WZj=Zt-yY!^q^;dgy=I;y#&T!xi2mU|K
z0lu9}y6V0A>wJ&LPrk?Fe^%dUc@O_$?=k)Edpy4L9*;lbJ)VF4|F}-uf4H7~hq(jQ
z&(x6n<*NMLFZ%y_IwBbVdwc`PknfN1>$xYt{RsOB>@#}b9KeT7oXz{^?A!C+k*RL^
zBW=k=Xn(F}o%@(gKC^;72%T#>%05EUE<bemFPzt4{I9&r`2DX8jo<JWjKB9kG5-Jg
zEAsc<R7*hr;Qo{5e@1%#xoZAz`YYlWjDP97@c+vh{LlFd_+R^<;J+vT?=t>f8RH-O
z!@J90#eZV__x%<5`)>13eEy!=|1;yC;s3kJ=wGwJ|8V)&{-b{`W!>Ppln7@$bw=ed
z-@9V(tHH3}Z*_jH%9x7P%0X+tPWf@|6CP)8;=eOJ|Izrt7~22%?~L&u^*uBGUpoKo
zXXgJu5~TlP-Fq#6|3$RVbUVX=GaNX>fioO9!+|p#`2R5nDpxLE((GL9Ouy*j88a@P
zR{BBbqqU8WGs~GiZTd8G=kyOvpW0Zzq`tPP{``x1y6A$kvN;#rRyVzD#>_bvu|dko
zZ~yPU^mUr$-;k*D{(|zP|2XohrFYgYS-jAhSAXZ?x_YO&vA*7^ZFbIGez8;E*to3G
zId|bmGxGA<#Y^fJI?c<R+Jy_98|Kfw>a-3^mo2P+=T>#gS331eYZol3ckZZfUbJjs
zle2hfX5W#fw)s|fnyGEP<Ab*?uDf97v}tDX(q_h9xxBf_Tv)egSyTN|(^TKMxOT}j
z)6~3h*~;b%me)2f%EW4UZCyhq)VGu1lM8<~4S2Us`Wlq~nd`M@`xPhC*W>ByTbuvt
z&y)x4cBSigrmxxW(mv?-mtHlyoXImK#_}e*ZrL61Xfb?;h09kqnT6i`)->O>yxve?
z{7JdMpA>W9@}|1Q=0a~4bbG-?AM&Tfdzkj2>4P<<>5e)9sA*c+w7h=lLhpXrt+)Eu
zrRKuMdgkiR`h|eLV_D-}W-<~(S<?k|^-GpCnaNFySJ$WS8*7)|R^McnF1z54+U2IP
z{x*mhQ8eOD{EfH}sYJ?~Oi|^vGcLN=IkyP`yX@MFoTin_moIB<ZgMIr8tWF#o_WEt
zrAzMmkaL5#D4eGHW@iCwXrXiKlG@vxxz#t-Ty@>tYd<#cvYLvDs<~Irm|jzL*%kAh
zk2uptinm!hy3OCbeD7ig*F)pVrOk`)s0U!9w=fpgH`O&RUf!$~v0SKli(~Q9#m&g&
z;?;|n-sZfui%>?aYihx>rs>W)39ok@`LU(-tCrW-HM68@Z@pDO?qXToy3A>6u5GUO
zFv$vy99=MGoD(T2D?58qSy@?h3g?*2)Apf%|CQZi>+k6E{BzQNX%Oe;+Q!?UfBCY%
zt8a9c)ZbaZ#JLrG(=+8PTVCIYOe|Xp<@asz>D`vTK9s)xQ~LTu`g&Pa)%8^uJC0+n
zyT1CWxtDQkK2cG1-Bs6Jaj|2ry6*DpRq2?IUshFl{d}tV%=FSlwM!RDU0k+`b-c88
ziBqwF8FL!z>*^OH8P2k$&a_qME?K2jdfBxzBCyk`UsYGXT*%R^wrSbYkDR;GX}W9a
z!p3EH)PF>+m#m^$<MPEbE_SX8^n=rgGVt{ha6aVCs5#|RHh8u5%sUyupX=Xn(!~1<
zuHLdSoI4Bt+~DRfxsJSUSu=`m*~;4%q39&|QkIA{<lF{T7msv4UU9KcwR3}i2Ll|f
z1{JU7zP7o!QTHPB4!YK`a%%kUHFb;X>l&t>@7(Gs;tyr$<{K)myK1gDdBa@n#<W$2
z|Mch6bKw5dv461Ce-3jXPk+Bo*WXg+m&b$afzcHzab#2U7hL_P!GD|6<zGr)^Q!%-
zU!|`Prmuq?&fJ{gz!?sl;lLRVoZ-M34xHh@84jGr0gD$*<(U=n)0Ov*ym&RZ#(wWN
bAM|IB`_FXq{@iqZ@SH9ly!c+<5ZwP4Ba4z-

diff --git a/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin b/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin
deleted file mode 100644
index 915085d6754984c358aac16ce444d8a83214d090..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 41072
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

-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release
  2020-04-21 11:29 [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release Pete Batard
@ 2020-04-21 12:20 ` Ard Biesheuvel
  2020-04-21 12:29   ` Pete Batard
  0 siblings, 1 reply; 4+ messages in thread
From: Ard Biesheuvel @ 2020-04-21 12:20 UTC (permalink / raw)
  To: Pete Batard, devel; +Cc: leif, awarkentin

On 4/21/20 1:29 PM, Pete Batard wrote:
> With the v2.3 release of TF-A, that integrates automatic PL011 vs miniUART
> switching, we can remove the dual bl31 binaries we were using for RPi4,
> and of course, we also take this opportunity to update the RPi3 binaries
> to the latest.
> 
> Note that these binaries were built in an open and verifiable manner
> through an AppVeyor build script (https://github.com/pbatard/pitf).
> 
> Signed-off-by: Pete Batard <pete@akeo.ie>
> ---
>   Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md         |  16 ++++++++--------
>   Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin           | Bin 18776 -> 18837 bytes
>   Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin           | Bin 45792 -> 53972 bytes
>   Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md         |  16 ++++++++++------
>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin          | Bin 0 -> 41067 bytes
>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin | Bin 41072 -> 0 bytes
>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin    | Bin 41072 -> 0 bytes
>   7 files changed, 18 insertions(+), 14 deletions(-)
> 

I gave these a spin, and my RPi3 isn't booting. I then went back to your 
v1.21 release, and it doesn't boot either. Log of my DEBUG build below - 
any thoughts?




Raspberry Pi Bootcode
Read File: config.txt, 93
Read File: start.elf, 2884708 (bytes)
Read File: fixup.dat, 6746 (bytes)
MESS:00:00:01.526885:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:01.531096:0: brfs: File read: 93 bytes
MESS:00:00:01.587076:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:01.591292:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK 
not defined
MESS:00:00:01.795773:0: gpioman: gpioman_get_pin_num: pin 
DISPLAY_DSI_PORT not defined
MESS:00:00:01.803201:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK 
not defined
MESS:00:00:01.809220:0: *** Restart logging
MESS:00:00:01.813107:0: brfs: File read: 93 bytes
MESS:00:00:01.834674:0: hdmi: HDMI:hdmi_get_state is deprecated, use 
hdmi_get_display_state instead
MESS:00:00:01.853083:0: brfs: File read: /mfs/sd/bcm2710-rpi-3-b.dtb
MESS:00:00:01.857754:0: Loading 'bcm2710-rpi-3-b.dtb' to 0x100 size 0x675f
MESS:00:00:02.073260:0: brfs: File read: 26463 bytes
MESS:00:00:02.079132:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:02.084442:0: brfs: File read: 93 bytes
MESS:00:00:02.089923:0: brfs: File read: /mfs/sd/cmdline.txt
MESS:00:00:02.093917:0: Read command line from file 'cmdline.txt':
MESS:00:00:02.099785:0: 'console=serial0,115200 console=tty1 
root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes 
rootwait quiet splash plymouth.ignore-serial-consoles'
MESS:00:00:04.177869:0: gpioman: gpioman_get_pin_num: pin EMMC_ENABLE 
not defined
MESS:00:00:04.347941:0: brfs: File read: 160 bytes
MESS:00:00:04.484887:0: brfs: File read: /mfs/sd/RPI_EFI.fd
MESS:00:00:04.488762:0: Loading 'RPI_EFI.fd' to 0x0 size 0x200000
MESS:00:00:04.494604:0: brfs: File read: 2097152 bytes
MESS:00:00:05.334051:0: brfs: File read: /mfs/sd/kernel8.img
MESS:00:00:05.338010:0: Loading 'kernel8.img' to 0x80000 size 0xc9e200
MESS:00:00:05.344269:0: Device tree loaded to 0x2eff9400 (size 0x6b8a)
MESS:00:00:05.351740:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:05.358222:0: uart: Baud rate change done...
MESS:00:00:05.361652:0: uart: Baud rateNOTICE:  Booting Trusted Firmware
NOTICE:  BL1: v2.3():v2.3
NOTICE:  BL1: Built : 10:40:46, Apr 21 2020
NOTICE:  rpi3: Detected: Raspberry Pi 3 Model B (1GB, Embest, China) 
[0x00a22082]
NOTICE:  BL1: Booting BL2
NOTICE:  BL2: v2.3():v2.3
NOTICE:  BL2: Built : 10:40:42, Apr 21 2020
NOTICE:  BL1: Booting BL31
NOTICE:  BL31: v2.3():v2.3
NOTICE:  BL31: Built : 10:40:44, Apr 21 2020
UEFI firmware (version EDK2-DEV built at 14:02:06 on Apr 21 2020)
Board Rev: 0xA22082
Base RAM : 0x00000000 (Size 0x3B400000)
VideoCore: 0x3B400000 (Size 0x04C00000)
FD:
         PhysicalBase: 0x0
         VirtualBase: 0x0
         Length: 0x1E0000
FD Variables:
         PhysicalBase: 0x1E0000
         VirtualBase: 0x1E0000
         Length: 0x20000
TF-A RAM:
         PhysicalBase: 0x200000
         VirtualBase: 0x200000
         Length: 0x200000
Base System RAM:
         PhysicalBase: 0x400000
         VirtualBase: 0x400000
         Length: 0x3B000000
GPU Reserved:
         PhysicalBase: 0x3B400000
         VirtualBase: 0x3B400000
         Length: 0x3C00000
SoC Reserved (283x):
         PhysicalBase: 0x3F000000
         VirtualBase: 0x3F000000
         Length: 0x2000000
Decompress Failed - Invalid Parameter

ASSERT_EFI_ERROR (Status = Not Found)
ASSERT [ArmPlatformPrePiUniCore] 
/home/ardbie01/build/edk2/ArmPlatformPkg/PrePi/PrePi.c(152): !EFI_ERROR 
(Status)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release
  2020-04-21 12:20 ` Ard Biesheuvel
@ 2020-04-21 12:29   ` Pete Batard
  2020-04-21 12:52     ` Ard Biesheuvel
  0 siblings, 1 reply; 4+ messages in thread
From: Pete Batard @ 2020-04-21 12:29 UTC (permalink / raw)
  To: Ard Biesheuvel, devel; +Cc: leif, awarkentin

Hi Ard,

On 2020.04.21 13:20, Ard Biesheuvel wrote:
> On 4/21/20 1:29 PM, Pete Batard wrote:
>> With the v2.3 release of TF-A, that integrates automatic PL011 vs 
>> miniUART
>> switching, we can remove the dual bl31 binaries we were using for RPi4,
>> and of course, we also take this opportunity to update the RPi3 binaries
>> to the latest.
>>
>> Note that these binaries were built in an open and verifiable manner
>> through an AppVeyor build script (https://github.com/pbatard/pitf).
>>
>> Signed-off-by: Pete Batard <pete@akeo.ie>
>> ---
>>   Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md         |  16 
>> ++++++++--------
>>   Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin           | Bin 
>> 18776 -> 18837 bytes
>>   Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin           | Bin 
>> 45792 -> 53972 bytes
>>   Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md         |  16 
>> ++++++++++------
>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin          | Bin 0 
>> -> 41067 bytes
>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin | Bin 
>> 41072 -> 0 bytes
>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin    | Bin 
>> 41072 -> 0 bytes
>>   7 files changed, 18 insertions(+), 14 deletions(-)
>>
> 
> I gave these a spin, and my RPi3 isn't booting. I then went back to your 
> v1.21 release, and it doesn't boot either. Log of my DEBUG build below - 
> any thoughts?

You may need an updated start.elf (along with bootcode.bin, which needs 
to match the release date of start/elf).

What happens if you pick the files from 
https://github.com/pftf/RPi3/releases and just replace your RPI_EFI.fd?

For the record, I did test the patches I sent in just that manner, 
applied on top of latest platforms/non-osi, for both Pi3 and Pi4 (with 
and without PL011 overlay) and didn't see any ASSERT.

Regards,

/Pete

> 
> 
> 
> 
> Raspberry Pi Bootcode
> Read File: config.txt, 93
> Read File: start.elf, 2884708 (bytes)
> Read File: fixup.dat, 6746 (bytes)
> MESS:00:00:01.526885:0: brfs: File read: /mfs/sd/config.txt
> MESS:00:00:01.531096:0: brfs: File read: 93 bytes
> MESS:00:00:01.587076:0: brfs: File read: /mfs/sd/config.txt
> MESS:00:00:01.591292:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK 
> not defined
> MESS:00:00:01.795773:0: gpioman: gpioman_get_pin_num: pin 
> DISPLAY_DSI_PORT not defined
> MESS:00:00:01.803201:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK 
> not defined
> MESS:00:00:01.809220:0: *** Restart logging
> MESS:00:00:01.813107:0: brfs: File read: 93 bytes
> MESS:00:00:01.834674:0: hdmi: HDMI:hdmi_get_state is deprecated, use 
> hdmi_get_display_state instead
> MESS:00:00:01.853083:0: brfs: File read: /mfs/sd/bcm2710-rpi-3-b.dtb
> MESS:00:00:01.857754:0: Loading 'bcm2710-rpi-3-b.dtb' to 0x100 size 0x675f
> MESS:00:00:02.073260:0: brfs: File read: 26463 bytes
> MESS:00:00:02.079132:0: brfs: File read: /mfs/sd/config.txt
> MESS:00:00:02.084442:0: brfs: File read: 93 bytes
> MESS:00:00:02.089923:0: brfs: File read: /mfs/sd/cmdline.txt
> MESS:00:00:02.093917:0: Read command line from file 'cmdline.txt':
> MESS:00:00:02.099785:0: 'console=serial0,115200 console=tty1 
> root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes 
> rootwait quiet splash plymouth.ignore-serial-consoles'
> MESS:00:00:04.177869:0: gpioman: gpioman_get_pin_num: pin EMMC_ENABLE 
> not defined
> MESS:00:00:04.347941:0: brfs: File read: 160 bytes
> MESS:00:00:04.484887:0: brfs: File read: /mfs/sd/RPI_EFI.fd
> MESS:00:00:04.488762:0: Loading 'RPI_EFI.fd' to 0x0 size 0x200000
> MESS:00:00:04.494604:0: brfs: File read: 2097152 bytes
> MESS:00:00:05.334051:0: brfs: File read: /mfs/sd/kernel8.img
> MESS:00:00:05.338010:0: Loading 'kernel8.img' to 0x80000 size 0xc9e200
> MESS:00:00:05.344269:0: Device tree loaded to 0x2eff9400 (size 0x6b8a)
> MESS:00:00:05.351740:0: uart: Set PL011 baud rate to 103448.300000 Hz
> MESS:00:00:05.358222:0: uart: Baud rate change done...
> MESS:00:00:05.361652:0: uart: Baud rateNOTICE:  Booting Trusted Firmware
> NOTICE:  BL1: v2.3():v2.3
> NOTICE:  BL1: Built : 10:40:46, Apr 21 2020
> NOTICE:  rpi3: Detected: Raspberry Pi 3 Model B (1GB, Embest, China) 
> [0x00a22082]
> NOTICE:  BL1: Booting BL2
> NOTICE:  BL2: v2.3():v2.3
> NOTICE:  BL2: Built : 10:40:42, Apr 21 2020
> NOTICE:  BL1: Booting BL31
> NOTICE:  BL31: v2.3():v2.3
> NOTICE:  BL31: Built : 10:40:44, Apr 21 2020
> UEFI firmware (version EDK2-DEV built at 14:02:06 on Apr 21 2020)
> Board Rev: 0xA22082
> Base RAM : 0x00000000 (Size 0x3B400000)
> VideoCore: 0x3B400000 (Size 0x04C00000)
> FD:
>          PhysicalBase: 0x0
>          VirtualBase: 0x0
>          Length: 0x1E0000
> FD Variables:
>          PhysicalBase: 0x1E0000
>          VirtualBase: 0x1E0000
>          Length: 0x20000
> TF-A RAM:
>          PhysicalBase: 0x200000
>          VirtualBase: 0x200000
>          Length: 0x200000
> Base System RAM:
>          PhysicalBase: 0x400000
>          VirtualBase: 0x400000
>          Length: 0x3B000000
> GPU Reserved:
>          PhysicalBase: 0x3B400000
>          VirtualBase: 0x3B400000
>          Length: 0x3C00000
> SoC Reserved (283x):
>          PhysicalBase: 0x3F000000
>          VirtualBase: 0x3F000000
>          Length: 0x2000000
> Decompress Failed - Invalid Parameter
> 
> ASSERT_EFI_ERROR (Status = Not Found)
> ASSERT [ArmPlatformPrePiUniCore] 
> /home/ardbie01/build/edk2/ArmPlatformPkg/PrePi/PrePi.c(152): !EFI_ERROR 
> (Status)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release
  2020-04-21 12:29   ` Pete Batard
@ 2020-04-21 12:52     ` Ard Biesheuvel
  0 siblings, 0 replies; 4+ messages in thread
From: Ard Biesheuvel @ 2020-04-21 12:52 UTC (permalink / raw)
  To: Pete Batard, devel; +Cc: leif, awarkentin

On 4/21/20 2:29 PM, Pete Batard wrote:
> Hi Ard,
> 
> On 2020.04.21 13:20, Ard Biesheuvel wrote:
>> On 4/21/20 1:29 PM, Pete Batard wrote:
>>> With the v2.3 release of TF-A, that integrates automatic PL011 vs 
>>> miniUART
>>> switching, we can remove the dual bl31 binaries we were using for RPi4,
>>> and of course, we also take this opportunity to update the RPi3 binaries
>>> to the latest.
>>>
>>> Note that these binaries were built in an open and verifiable manner
>>> through an AppVeyor build script (https://github.com/pbatard/pitf).
>>>
>>> Signed-off-by: Pete Batard <pete@akeo.ie>
>>> ---
>>>   Platform/RaspberryPi/RPi3/TrustedFirmware/Readme.md         |  16 
>>> ++++++++--------
>>>   Platform/RaspberryPi/RPi3/TrustedFirmware/bl1.bin           | Bin 
>>> 18776 -> 18837 bytes
>>>   Platform/RaspberryPi/RPi3/TrustedFirmware/fip.bin           | Bin 
>>> 45792 -> 53972 bytes
>>>   Platform/RaspberryPi/RPi4/TrustedFirmware/Readme.md         |  16 
>>> ++++++++++------
>>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin          | Bin 0 
>>> -> 41067 bytes
>>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_miniuart.bin | Bin 
>>> 41072 -> 0 bytes
>>>   Platform/RaspberryPi/RPi4/TrustedFirmware/bl31_pl011.bin    | Bin 
>>> 41072 -> 0 bytes
>>>   7 files changed, 18 insertions(+), 14 deletions(-)
>>>
>>
>> I gave these a spin, and my RPi3 isn't booting. I then went back to 
>> your v1.21 release, and it doesn't boot either. Log of my DEBUG build 
>> below - any thoughts?
> 
> You may need an updated start.elf (along with bootcode.bin, which needs 
> to match the release date of start/elf).
> 
> What happens if you pick the files from 
> https://github.com/pftf/RPi3/releases and just replace your RPI_EFI.fd?
> 

I took the entire .zip and dumped it into the /boot partition, which 
already had a bunch of files there.

I just did the same again, but after deleting all files (but without 
reformatting) and now it boots fine. So I am going to assume this is an 
issue in the FAT driver in the Pi firmware.

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com>

Pushed as 17f0712c484b..96ec764b947c


> For the record, I did test the patches I sent in just that manner, 
> applied on top of latest platforms/non-osi, for both Pi3 and Pi4 (with 
> and without PL011 overlay) and didn't see any ASSERT.
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-04-21 12:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-21 11:29 [edk2-non-osi][PATCH 1/1] Platform/RPi/TrustedFirmware: Update TF-A binaries to v2.3 release Pete Batard
2020-04-21 12:20 ` Ard Biesheuvel
2020-04-21 12:29   ` Pete Batard
2020-04-21 12:52     ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox