From b55943260407b94bbe27981dea92559c69b41144 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Sun, 30 Jun 2019 21:16:50 +0800 Subject: [PATCH] mainboard: Add Lenovo ThinkPad T440p The code is based on autoport. This port is tested on a T440p without a dGPU and can boot Arch Linux from SATA disk with SeaBIOS payload. The tested components and issues are in the documentation. Change-Id: I56a6b94197789a83731d8b349b8ba6814bf57ca2 Signed-off-by: Iru Cai Reviewed-on: https://review.coreboot.org/c/coreboot/+/34359 Reviewed-by: Patrick Rudolph Tested-by: build bot (Jenkins) --- Documentation/mainboard/index.md | 4 + Documentation/mainboard/lenovo/t440p.md | 66 ++++++ .../lenovo/t440p_all_flash_chips.jpg | Bin 0 -> 84271 bytes .../mainboard/lenovo/t440p_flash_chip.jpg | Bin 0 -> 82250 bytes src/mainboard/lenovo/t440p/Kconfig | 54 +++++ src/mainboard/lenovo/t440p/Kconfig.name | 2 + src/mainboard/lenovo/t440p/Makefile.inc | 3 + src/mainboard/lenovo/t440p/acpi/ec.asl | 17 ++ src/mainboard/lenovo/t440p/acpi/platform.asl | 28 +++ src/mainboard/lenovo/t440p/acpi/superio.asl | 17 ++ src/mainboard/lenovo/t440p/acpi_tables.c | 35 +++ src/mainboard/lenovo/t440p/board_info.txt | 7 + src/mainboard/lenovo/t440p/cmos.default | 13 + src/mainboard/lenovo/t440p/cmos.layout | 120 ++++++++++ src/mainboard/lenovo/t440p/data.vbt | Bin 0 -> 4608 bytes src/mainboard/lenovo/t440p/devicetree.cb | 113 +++++++++ src/mainboard/lenovo/t440p/dsdt.asl | 46 ++++ src/mainboard/lenovo/t440p/gma-mainboard.ads | 30 +++ src/mainboard/lenovo/t440p/gpio.c | 224 ++++++++++++++++++ src/mainboard/lenovo/t440p/hda_verb.c | 40 ++++ src/mainboard/lenovo/t440p/mainboard.c | 34 +++ src/mainboard/lenovo/t440p/romstage.c | 103 ++++++++ src/mainboard/lenovo/t440p/smihandler.c | 100 ++++++++ 23 files changed, 1056 insertions(+) create mode 100644 Documentation/mainboard/lenovo/t440p.md create mode 100644 Documentation/mainboard/lenovo/t440p_all_flash_chips.jpg create mode 100644 Documentation/mainboard/lenovo/t440p_flash_chip.jpg create mode 100644 src/mainboard/lenovo/t440p/Kconfig create mode 100644 src/mainboard/lenovo/t440p/Kconfig.name create mode 100644 src/mainboard/lenovo/t440p/Makefile.inc create mode 100644 src/mainboard/lenovo/t440p/acpi/ec.asl create mode 100644 src/mainboard/lenovo/t440p/acpi/platform.asl create mode 100644 src/mainboard/lenovo/t440p/acpi/superio.asl create mode 100644 src/mainboard/lenovo/t440p/acpi_tables.c create mode 100644 src/mainboard/lenovo/t440p/board_info.txt create mode 100644 src/mainboard/lenovo/t440p/cmos.default create mode 100644 src/mainboard/lenovo/t440p/cmos.layout create mode 100644 src/mainboard/lenovo/t440p/data.vbt create mode 100644 src/mainboard/lenovo/t440p/devicetree.cb create mode 100644 src/mainboard/lenovo/t440p/dsdt.asl create mode 100644 src/mainboard/lenovo/t440p/gma-mainboard.ads create mode 100644 src/mainboard/lenovo/t440p/gpio.c create mode 100644 src/mainboard/lenovo/t440p/hda_verb.c create mode 100644 src/mainboard/lenovo/t440p/mainboard.c create mode 100644 src/mainboard/lenovo/t440p/romstage.c create mode 100644 src/mainboard/lenovo/t440p/smihandler.c diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 4c9d08cc97..8e88443ac3 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -91,6 +91,10 @@ The boards in this section are not real mainboards, but emulators. - [T430 / T530 / X230 / W530 common](lenovo/xx30_series.md) - [T431s](lenovo/t431s.md) +### Haswell series + +- [T440p](lenovo/t440p.md) + ## Portwell - [PQ7-M107](portwell/pq7-m107.md) diff --git a/Documentation/mainboard/lenovo/t440p.md b/Documentation/mainboard/lenovo/t440p.md new file mode 100644 index 0000000000..98c1da54ac --- /dev/null +++ b/Documentation/mainboard/lenovo/t440p.md @@ -0,0 +1,66 @@ +# Lenovo ThinkPad T440p + +This page describes how to run coreboot on [Lenovo ThinkPad T440p]. + +## Required proprietary blobs + +Please see [mrc.bin](../../northbridge/intel/haswell/mrc.bin). + +## Flashing instructions + +T440p has two flash chips, an 8MB W25Q64FV and a 4MB W25Q32FV. To flash +coreboot, you just need to remove the big door according to the T440 +[Hardware Maintenance Manual] and flash the 4MB chip. + +![T440p flash chip](t440p_flash_chip.jpg) + +To access the 8MB chip, you need to remove the base cover. + +![T440p 8MB flash chip](t440p_all_flash_chips.jpg) + +The flash layout of the OEM firmware is as follows: + + 00000000:00000fff fd + 00001000:00002fff gbe + 00003000:004fffff me + 00500000:00bfffff bios + +After flashing coreboot, you may need to re-plug the AC adapter to make +the laptop able to power on. + +## Known Issues + +- No audio output when using a headphone +- The touchpad is misconfigured, the 3 keys on top are all identified + as left button +- Cannot get the mainboard serial number from the mainboard: the OEM + UEFI firmware gets the serial number from an "emulated EEPROM" via + I/O port 0x1630/0x1634, but it's still unknown how to make it work + +## Untested + +- the dGPU model + +## Working + +- boot Arch Linux with Linux 4.19.77 from SeaBIOS payload +- integrated graphics init with libgfxinit +- EHCI debug: the port is the non-charging USB2 port on the right +- video output: internal (eDP), miniDP, dock DP, dock HDMI +- ACPI support +- keyboard and trackpoint +- SATA +- M.2 SATA SSD +- USB +- Ethernet +- WLAN +- WWAN +- bluetooth +- virtualization: VT-x and VT-d +- dock +- CMOS options: wlan, trackpoint, fn_ctrl_swap +- internal flashing when IFD is unlocked +- using `me_cleaner` + +[Lenovo ThinkPad T440p]: https://pcsupport.lenovo.com/us/zh/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t440p +[Hardware Maintenance Manual]: https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/t440p_hmm_en_sp40a25467_04.pdf diff --git a/Documentation/mainboard/lenovo/t440p_all_flash_chips.jpg b/Documentation/mainboard/lenovo/t440p_all_flash_chips.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cab80f21c566b0ec54738b59f8aef34d6eb1152a GIT binary patch literal 84271 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�-*?~#56x)C&KA8rs{JaT}~DlI4bmV=P&>6}~X z_`c46pCGE+MRXK*qE!4kd(M09Er*AV=m%)IAo;AT7MslT-p8zT-YlVOMFDc`i5;In zRb`2Wf7O8=SH(d&#`nzhgy73oEDcgF=$abl>Q0j5311TPBHmOIa?FUHx#pY`Rr44y ziKm;C;8|$pU!u>+>oJ9A@6ANAud0#inNss=fHj-XW2PnIiG=i*s61(}+^YHLQI)BZRuZCrCMV(O6=;C>|5l)PrAuV!fFXDc|A zAG#1;y`u4vStTVUNGK`sPS!}z3JwTIUyfZaw_b2{V!ihhjOe$&wvz}NKJh&>WS=lL z^FNF*fL-%R01VL@D74hX*~Uy4yKfcja=^XV+*0msXj|Vr?yemrSh%fFqcX)S^qxth zWRw8RD*9OJl>`z(7_}U91)$d12+oN{SCzDth>^0bpML)=)ktCR3K?v`W@_IGEYSV) z+}?ss9T4T^eQFm&R|vAYWm-zfP5k9yJLX@0x0*$i7sXA2JdH#rKq&7vj_Fl7qSpwTpp0roH%ppH$$O(H zUrwjW%&M==jM??>N<@c3o=>kBga*h6Mg!`47vb9{6gSTw?(wI2EQX7)3wVZusluxz z{vQCBKxn`CA`Gl~6zH??7L{%c*liI|yoj3-2ChdZ8%_6JZDcQ!G0%*TeH#Z#9LSc- z_}2~$dzH;c5X{!jMhP2O6#}@`CnCkLt(Hz)@Q;=0D@S$Sg3a72663!_%CM>MjIKfT z()x{i$6+5oeFU1cGiCRWhIv6Lz7Gr__b|d5p8o(x`cdZnAMHdp6B8qznl8I1N<9y& z{f|WFpQ2hge%hhz%ShJ-J$*YuJ_k)i=?XN?bvNB~;hnT@V-CoyZ%(S5GY7fBuyAup z%gFDrhEYmTq*IPh(RlnTVm0&`CdV`~9YzM>8+hS}J@6J4NVyg7+Zv*0aY4HM5VEQp zJ2i?cczHI)x_>jGqr5W&v^)#+d|vP-nd@ytzJZ554?#R2)ITSQ;eHY00w|(*oxwY2 z$vD@iL@Ua^$}UeG3ciY*y~T+V&La~Z;p9{3ef|Nj!HLVc1`K7WI({GAyXN*7nRMV? zTIjkx50P2@kr~E|?kS|F%HUMsz6QyR>lewecwlOpM%ki;)7_oh+oP^l8G_cYA0op9 zpIT*tgW|XUZCrT{a?g*$Q+IZ)!OgGejW_#Jg>}SGdIXJ|;I%uv0 z$o099B#WZtvu#esUd)k;K%_+S$eK?qSFvX6!WyKScw-j-01H%Jw$Vo-IcUTv@;6PL zN1=eRF3w<=a#OhDA}IxN{0Wi`^uC_}*Kt{IceIqdas?{8M8-x>irA&vdlU}Wi>Esw z{{V;=N&ArhXW@^rFX zor2;=ftj__9tdln10M{cBJ^R2lvc-^Rp?EpR|m)+Oj)!}R|WMQ=-XgO4CXXBhr-dR zWJ&`33-GnrWqHX_dvtPQeGJ>+jf{pRmzHhpNkRO+j?8Ri-XlUsn(-u$mjPPnli0%0 znS6wZ=dtd3A0l~AlPX|5wgjwyF}%~NH;3I0WmY!Kme=TMX2;7W+8cPt(n?p5rVjoE zNoqEPW}hVvKgAffui;TUzi6N5B6mK~*ahfch3bw5#OQwCR_Ioi`f_p70kmslIMu3x zWjb-i5*huvUIFrtkVzEjh5Y&ruc-E6*wpiHBTSH^jC{;VXxHJHar~s2j{>y#XlxX< z9pG6=<4{l=zDfEHK@E!h2)K#I#}>DtUSPsfJ24Jn+%r`d7Mg5RS>M3LvG@XG zXlP7GC626JQK6`V_Rb9r{WuoJ>zuMUhN$fA@Dr-Tk*J8g4`j`4^lc8}6ML>h-T|d> z&javL4N1>>6GP#TSNw&O5S!1cC#FJT%BC3>x)suuZOUk8y<3H-B~-;48wb&cW3g~0 z3r1M4Boy*6ZHGnnWBJ6qmT~CUw*1~t`G~%MQ6J|+tBI%@w!vgf?bRt^vesD1HNbAg zlHw@~V`D1D-Ruv5CxXY|&k$l}Je~aqhiEFut8FbCq_NoW^1cr&^3N=AY(quSH`V?K zdJ-*&KX;`jJGtq2Zp-9We=taAr_K#8N+mA1}ol&lvg~QPae*(UW%;Fb% zl$Ql2g^iC*O%F}kMBrHjN#ciBMV|h-?USBFu%spQF`LcTz{NbEj}ULr!H|&Ii@_+b z$%0X)u<*n)&D;60#!Bo5uDz7bIq5$7Tz7<>r43^|hBTfi(!X$@RGH?S$ImB?=6c0H%C_L+L|7aoXTo9bV&(I_(J z-a|8P*LEq6;IH@*q3+m3vAVt=V=;2%dGv>~iu5=*!Z;zL`*gvNv-7nN zgH&NT)`4O*sL@=O6CD0?v=5dQ$gJD^i&2$Tx4sBz%Xl}TE2P^$;}O`Yk9Foj21)P~ zN?#oTD6e;6>P+%0MQUOr{mg%w9V`C;7=Ol}^U+^iV)6)QSI9zrcp0|I zXFC^HT)PC9F{F(REj^Lb633WpY24Dh`XZ$4J&*1mLYW`T>Ua*R-VlcVl<|**{9=@7 z61jk1it6=;jvU_4$p|JVqMan{*}La~zw!R zZXpSh^2Wt9oEuD^hDzQvJO2Q;_AbZo{DuBm5#stASxfXUysq-Q#QoxK;{@_I3(Mt- z?#FCWf59>T0KlK(ll)OH zEJc({r_&M1z?XoLn@ubj`b}wj41~kMlQ!G$OzaQzqx}n^^G_u5Pc%wBjUI=dfk*pYO_H-BeGr`b?bFo=GO{n{ZcS(B& zxp$OmhsqS*;YU-s>@*UAQ!jvS7*eDmgF`~h?4N=+29OyR-lx&^)_(!K{jbO0M()QC z7e~<$w z-bUOk?4!ptYWH+=%j5~nHk5Z}KimHRBL4uT3ybbXqD)ty=KjNfgZ>2;>kh#*uQIF+ zg~;bnlp+}+iE7|Sf8<6Dy@)!jT0(`UJTJ4tJTI|TX={;i_%UvVL9fGEr`JQ3+`*1I zrg{@q{zIZhHPQ5#G7!hoVLPF+nhKL%x)UO7mJMNNBo|hSvl2lZ4jsJw593gTaEhSV z=c16)YN^3k2Bfeb7mkbb$4*|2JsyX6UnNc8R>qpbNuzS2E>V*6@Fl&Ic<8ftEm3wJ zS(lKM{s55j%}1t(c$prsCYJ6&fheajr)n2yc^^lA=@`sc5))5~n|Ne$?qQqj$fDCr zF`84rui#!UJtS;C&+0|<&D@V7 zWaMu>B~ijCs;v1EBvnM@$0B4~-XyJ!%Yo<{FN!&#!pr*~CdJl4^z)@hqK}caSdaUWQty!u)E@rQA+=09vtvyeG9nJxyxZ)e zO$vxIx*JgB6`djdkqsu=a?kRGojLAg*w$kSjdUuUb|R1`mvJUCCah@*m@WjyTEbZF zF=g^GX0_b2S%WW6*-rq~?0lXDDvURAh4Ho2pC{@r>6b3uH>ElwqXk7qXe}>B^M77C zMO+4^AQM=N&X8$%Wva7w~I9i714unC*-^(KSYV7ciyB{{UdxkIBq3jy#lXV>fv8 z=HCpvuD(UsS4QwM&0gZ_#c{w)hJTrBWQqNO71OnG(6V_kaD0-GsF_*C+(L+a7K4`@ zU4|aY)`ILL-v?n$ix_?d<5X%UCd=D_(bikJKibdsv;C~`eTa*(hqzlcLLXV`>3I;E z(iWGaVY{roG584-t?Wf^BF&mEKM&IxDil;nWe&Arso0Db&hVUYPmDZZRy<>o@jtlL z%o|_s6>h8)Nu&3=w4Tu|Am3f=Z;C(SBdT{g=^fQ6Wuo>W$np5|*NR@R>#r#NCLs!g zyrH`d_u1@yiEH-`bZIIR6k6zBij73Di8ssGie!{}GS1Cix+9v=wo2R-mf@ox;2a-- zTf}Ne5bP3L?j2zdDIrTVjdCpablM1nCrOM8NZ4%Z^pj)DJa`aUQ4JyNcHAqW&W&fI z!F!_?#h|lY!1l`sOkyb~k#M$RyN*OIAWG0YTF1gXR>b2I5etW$Ur{I3K`dsd%I(=*=NW1JoJ8DNF$ zPZ9C{2yy=auLt_k!0n8swrhJEJbha!_Wq0a! z_>tXQ2hAG79^kia--30<@;8;7@+R0C(A5mR4JHy@T=)bmG>PH#?QGFCX^es*!x^l^ zsTX}4K}ysm-i%e;bW)oFnr?SgLV(g+6Ug_{ez2vh^F)HwNuEp9Ud5bMz^dEIA!+SW zuOCK05j^sg$|z@KCk>$t)*Aa0CDfB_2QyDxz{`ee%0zm5=`^P8`D3KgYlo1p7U2p> zTX_)`{mc@Dj){nWy&g}|<^3LC(1fU%v-&gS-{{+}y37u(3x<;Ajta@C&f*&TCSXq~ zu{jgxfz$2;pvcKrgc=*b?42e*wkq3aNlUzZsBEJy<@y@8!Q^hVSA->*Z|GVk{)Q}Q z!9Dsl`Vy9L+$fIE@L^@6WlfttP{laYl4bmoAt>8&ay?P>ZR28U1~EQ5a(^(-&_j#- z0+YJBZi&@;;Ev=-C!kHQBRNg3(7Gf40Q6#yDeVmw-4nYULw|xcLXqUw)ynKPGeEH? z667PchdNJWZ1169q_1&lI|41d_Yj8CJ`$qoJXC*$Ie{syC*Vx_Z}}}epQt_cPBH!t zlF(ozZ^*lqXrVJNu7~%DLFlb}V*}a{v1yL@7qPQU zO>BPU=r<(3)L}HiUYr-7IVJfLLwqQZelaa@*c^qJsr}GRbqJ0Z1R-MoG zBv*In@;^tH`Wd{vVsFuN`Dz*ZUxn!2anq7eaE)Ld7;*II`jEp01 zz{TzO>3?|uDSpO57WN9Aix6`ga3^>;U~f;c8YAu|=XiVkF*4$CuzZjAzlNB05|-Zt zamcVR+ANJ2l=suhO0i50O?qM-L&kjcPr%=B$r_B20_TJ^>dk4^8$+&G_ZrGSl7jyL zIFC2zctz%4Dkp}y=#ik|4UH+RhqPdXE0#Qb`qJi z(B6LIbxv5|{yrFGo`?4y!iX@|_bXct5~l&pDmuGF*zcAVE3x41UJy+uSD{v;6S%3p zVqtn>zRZZ1*;7x?Ri#r>Z!fUO8gr6EI*H+i*2a~A-nqr|g2zO*P=l+*RMBbhaFU_zhrcjEsY#8eFl|axhIg#yogq(BRgF zc3LyhM`*yxhu|Wwd>o9cGlD1g4CeFTLnRyT%P4Fi%;oI#e%DD)1rkdegnxhV_8*ha zlSR74DUQa+4rc6fIhEi+Z4~cD&Q49Ckrjl47FHFaPNGU^T5w^IdzfVXU_b40H!qey z&Yvj3GfrroITQOG;P;QR(Ltqj@;qS8eTteTG})PSUd+e0D9zG2ai}KcGcnItTV)rx|C6t$hS17<<1YX!kgHot|T?$UY z#U+x%3gjg1(z+$HGXs#+)ZkP)j2(99*+u~>%*jtm&(I%;HbcmiR5#eNHWK8)^a!jQ zxx5KyWBR(V-}EQoMnft_H<_VRrKaCYuFUN?Pc`gq;cv4MGYMf2MJ|rr7CVjvUGR97 zb(yBM1Y}8eQ7FF#fNAh#b3|=cif;LXM73M)CL{bOT_hT+(DVvQV$iw~Q(f$onvork0pSY> zLeec8b%ZE+@JOA_(L$-oQ)0Iv!9`<(6{yBTLvoRh*?MRvsas|p72sg?BfkR3p2p>G z;K|(km=;gu#lu7{bW&~H616qaY){4o!c2;?N8o6F!7_K+=*uI1gv8CvV0mcd172bq zy%N@AUw_o3w)hi zHYI73RyHp{ADglkc2>iAW^Y2;eoHufh?Nj_rLi$>4mMSBH(^n57fm~%d`nTLSi2*# zFqX!YWOZ!{Fl>x9GhT+T@E?EZS;b*+xciH-MCjvd(Uf-vVdNXe5QMx4r;OaL#E{Z> zBlI##=b7|b${+7WX)*9*!L)SI{{WCY{{XX1`;Is#WHNTo$uYyuMxzt>7BbA3 zjSnK#jdCq?poR@Qeng(j(j~}7X?2IBv@Q*iri~l7_YDRVyoeb45_Fh&=Z1L04I~n{ z#81ab&q3lZrQGSqOL`JKkF0%-=}R>tQ*O2BVMg5(38pzv-y=#Cxjl+#yXOeWyflpk z&0y%w619Vej1*r1F2Ia>^2vF};Inf70FkMjoMUE3N#7i|16R`tVavY9c@P>NyHrwe-OlfU1#*ATE#8JtS4%yDll(&1%L1dQY+-zZaoXD%URl)Fz;8T&AVSC_XAE@nShri0f z%)xgQZ$sPQP4^rw<-^axp@*m~UQCR{X>gMj(-!L6;I^{6nGapXHWo!r8{ctnY`|2V zKuE%6P5BfyE3=I zQ`;{Cg^~B*@LFVTtWpaCthnweUpQ=~q43^%Zg(Do+OH#jEYY-)y=U*PxCsb2e={i~~g&O?IEU^vQvl7Z)OD8A6h%}l+?m}dUL^S9^58zM#0728=<2(zY z2#L`m2=KDTi_06en=tSkQ9C2rP+hX@Yf^R@lxE+0YKTMN!82f9#pB6IoLU!?e=+`q zf2kkrLn(0>!5(@q#kPp7P|KDxmO(@~5_dLD5~UxcUNW*+nq>WIw2>$pwLPf zKV{QTvtMJoY48ndj6JJRZEUvo+bDz~3u^R8Yw*e&$dE}P8HwO$jA#QEeuzP?jAtVr zMrdTnva#rERug(ci&86O^m;8C?>&Zz9ki66CE#e6klh1x_m1TwZS+o()=)meQDpcR z9rr3aiYu@t)4vtgQFrAP4NBx8Tpufv>m$ZMAL@;N6 zapAD-lW3@%a|n!Xjescu9fdn7z{MgFk7vln#(EFg>8IKILsSQb!t9a}*dli-MO+tT zWEfDg_z@A@MAOKViT4_|Wl||Cf>mK9hU{V$ybz9GZkZqK8Fn$r`U58|4GF#p)No>J zK?G${vBE56#a_nr8e%Aa;5E_G#U6t2JfjV<_l$4INpp{4Lu2+KBa%iiR6i?$z-+Qy z1hU%3uLep_bXgPN*%W~^jJz3LGsW;^aZVd(e5$luml9OSa%!mIEiFc1)WGm*jvzs4 zt(dRKfiTnL+55gli1@O3C&)ffRsztF9{&KKsf;~_xm_1-t~we93-t`#i`@;ygXmsK zFDOWRLv4-oq+4c7lqH^-JZU4nKVbc%25>fM;fi}sN20fpoG{BdEi5FWL#LM_-pvh= z=atd19i9>`mjL`CydgtdA$(6LVJU~>ft4$v$NU2$7`Z67Fe#0PtE6?9)Cot(!6NKj zjA`a}qs210zeA55gkAmR3MXdBEuT>G%zFqPLF5>AHS3{G>}a$*k`XFwJ7-K6uz)OO zcGL0O|e`I}Hz~fvdcc?qL0+ce4e`(WK{;X~Er#Wxr)f z*NR~e2HG)!S=|*kdC8LKQ}E_x?i>>IGe9Vjzxs_o@^)b{nRy4G#;Zhpk;_^l@>>&< zelm<$cTx-?6z1U9w2ZMREvFbyB1@r-T_c%@iM70>jSAGOg8)aWg>^M}A~uhdBZFk| zrn)}z3S?e#9m(=?L3RkIMf*Jlk|4gAJOfs2*CTA~KhgaK4}X)TMOhTt3Dd$Kuv*hr_A~B2Ci^G;i(Ee? zPyLtU_I41(q2nIEqSM=W5}`PG6*np|a$fPBdmP|Kk+EX*d-P;W@RqI z;|kRJ1(l2BTgT*1}XNhzV{9%tEmhQ-O6yX1EcXVC$z4M&7<&~Ety8XdFtOJ=Xg+6jqIBUbh$tCx|L zTl|bRHaR^Mws=F)`PYK^e?wI_UnuS2-bL9jhe6rI1=xOA*ZE0~4}x!qcOTMxVWJlk zxFYsDOk1be-c+KHz~@67$3kXFj)@)#z~}INALl0xi;R0JfhdK&PCe9_K=B_9sObyYkx`~ zBfUZ#pCq|qd!LaG{{WUxUonFQ?EN7i@RQJ%o4QAdjaG|(4H4jdfRLbtCKuiaOxUjt zu?=+|DE{0f!3|9PiW84zVGXkX0QwI-zC54wigGK+uKg&O|bL0bq5ta zKAG|YeaPFNoFNW!9WnNF+HhEJ_~g~~ijeduyWCsV(k|KoQ(?N@m9yMYjr8a7t*|WC z`93ieG;D^%Nl6&!vPXOD6Z+O%1(Khz`3D{n-;hW75BC_1ue_rUlfH7;!=naI?4f^v zMh*UlgY0ZZrgt1V9hlm5{{V6S0NWq=flvKeKl2SUt1 z3T+v!GakBTzNWzZl;FRP*;*6iAo(V5;~P0R=)_p`;#)w^k9Idjj=LsoIRt3np8|?o8Yd_k>*!_sC z?%>FW;`o~}7wNNH*V7;CLjM4iU*Jgb^gK)G$HC?5C5#V4$--3`_WuB)^gX}Ab!*9l zX{~f+QI1(KR(OUY=YoxNlv^uibV}o5rF;)&+SO(l@|w#M#o*@4EVklTV~6N{Af*TR z1LwpVI%r8}^mJkxJV;vZ-j6~fk%jVF7{%|Rl{bTPgz4j?$javXz64jrlhWG8FwBvW zDj=!{24Ni%2AfBQLJRIsC73i7SDP*KLmo^38dfmGN^3FM6Ds%KxH~(gvp%B^b(bX%zK#=?K>{xTi%4uICw;D zn`ZP+BRA2$1M(m-DLWs!gDJd?t_TS`p+U~U49-4;t!2c5H-)YVSkugV3xGRG?7_kw zJ&}YAp*=DgUWz1>Q0_glS_!j#7vRR;-=QgW%K~fd&-%#9EVn(nFUb}j4$xwbx*UXK z`Y&A@9>#mJdG)#E5omj22`?HoWCO?M7Ji)#+$I!ruY$iWXH3bEYJ}=1fSH$0&>ik z?41z83D_;LEirhV*2l~)S{t40V(Gm0L4f4mcx36U84vc|x>oWk@!e zr#l@Uo|i6*P?hW^(;;RgDFR3_Wucj9g`_WGb#91V9`WV2g(-P1Pl{ROyJzty;;R^y z5|&|zHp9}+{{WJbn}pt>L2> z!2&F9yn?kfNd`7IxKq4yU5*D@#!y}zG2n#g(5*wMMUmkXXVBGo7vV-R<@SoNJ^PdT z8RTn0{{U&BKC7e_`wHj3(t7DC$i5HSJ&ke}mf7$lBZk)qgik};8Sl1AiMES^S$t6v z)8ticV`qk7J|8FWnfp)D>HEgMf^nLVbKJv-zMr%!Kpw{29sn3_)e5)(*u%+{0J?ub zmMq%AbK##FKAhE2Dsu?HlO@To*!`j(%5XneQ!=5hdWp!d1^hx0FpMfO-H(EinwZeB zc4&{egRzm6!m7|aZ>$@S2v$4im%9mXuSI`}4BBO5*nI;Qq)Q`Vh@#_W4U-T=+U#d%jJ@bq_q3V9jEl|}<+HDk1Dd3NI22U z#xdnGI)UkN1diH^3!|=?=-erP3Ly(-xPJ#zUF==+~@{<(&3M|F2psh z8`r>t8yt(zBQDHkh|08H;-y+lT_aTc1dQ%DLkXtTi_zJ3FGaDUBT|jZFszj0>OAeE zoD4*dBhZz70+33?L{+Alf^Pw_GxlPxAr$^52FAIom^2yBLz5v><_qv?(; z-02Oz&ZI5$uC=a=KH&wp)7)chFL(EU(c)>=P~64*x#Y}|cM*7&%`DmE$F$-ba+>a9 zbQOFI@+2aCT5uuKTM~aWGrkdPi@A`idLLFd2o@ap7GocCl4NRIS)%QhS$)lfN;Zy+ z*8@a;(9<=HS;$(r210zgCCGIoH$F<)mnBwJH&>!AT*r7HMa(=K8!S{fmNUXQix%rc zL=}0*MQ?$jZ~hc|=%^5nLdZ*z@=Jm0zO7u4q-j1wRk+s>z{6uL62_T^)%isoaw=!s zK?vkbbrbL%gYp!=AYahnEp*H>LwGzG`xE0)6*r)!*j`I)UIlP?v?b8*_$)|d7DTo^ zvG3rznO9}DOk;=0uODz{YRl3pvi6HZT$V{3(e6p(5o;dL5fF!+g?ElaDpM|quIo@+ zqceOkg@ke^W;(RF8i#O#Ch{5%_GtCd0CB@+iX=It*F}^eBZH^s>~86nDp4o<8!+pd zTo$@CyO&I=S$DxKUPaXpizDR)xDmC1%Suz&-b8RA8X7eTkt)eCLhYd^kl6A%v{XSo z$s~e$Ee^!GY#o(*2-lUdBRE>7!6WQ#o?eIEW8g}IY?oTA%N+?f;7*Hu7;}*uB-;@y zo>{K7(K(Z`m8?l@8{nH7V|y2H*vH&Pb!r^Lmqg4o2V=N7uKojJm{ygjRAoFRgP($Rw7>$5ysl z5~>*8JdwP&(PTs#`5lcixJMe(8CR@cL@UG%<|iLM6YA=4U{u6GVUVV=(6}){quIoH zZLOFuUJR##57~iR`HH$xEeKmbC8o3XA`60BzS!wBpOIn^HFan20zb;W#-K;UcIviSsOwSZdu8T^7n$15m8^w5EbjdUiF*tOWi zyra8jP1l37!0C7#9x2F@nm3bU&q)GCH_>!VJqM-yOw{_0iAb8jEU8WTx@~YtIGRkTslQz)p;Q`~Ifn|zAnV#ir8A(+}Gg+qb5ub0;F3Bb>CfW&aS&ou%8WA3;W4?VNPj0wlyq#djTAj9&Gv+-o?ApASY(6Dh`gL) zpz_+Ma+1$f9-NF=Y-FU<{4%XASW__=>3HNLcybz`sm%)p@+{$M^vO2J*CqV}pKY$M zMrbVQS8RJVZ8ThM8`N1sD^jZol&wW;x8RiDV|I9TI2(zdjruu#g_L5E*ufLH`RUSb zQ9NOLFGMqJF_r8%4V8{dMYYNuD4kkd2|;wQpJM^4A0$$HG&^dxI^7amE%I5|cs>R) zc1GC6`S9p5lCCgE&WFZud2GGTP}sQm^KJ%Bb6BGPr)r%G47P?Pa*? z`UTV)mzcTu6(Oz+lAW=IBxsoa;b=i9v!*@j_#x#6skss*9)+8^N$`tp)NaHmZA5#M~DqwA4eS&IY_0F&oP>jUpck6%Pon&eW1-aMx zgauLQ3!EWwH3dP4f)gs_NgZ#2{DBU7p(nWrv~Kns+M4Vq_kIj?yyA&TPERKy#5rnt z4dUj6_!k7j%I)|qSZUxru&?NP;K@vtg)yJdvc`vCkKiwWZ6-x`1x+%{kBk@+ST&vv zG=ky9?Gb3Dn9dh-I_Rsk%~JA(wzFL%r1nGw!W@E}p2aX`?>XSLK+zifVEXVA4BydU zExt^Fgpw+#_05*~8GbrzW6Cl*m83efhLIVp>nKrZX$Wr@VUJ(kmbi2>WT-|GP4%03 za9Dk^_22AwT45T5cLKAj7i^Nes#lXGzksx9po>$_fs;nGHAwCF&6vWJq}C{I6(uX; z@)HJWWXwsAm^K?@l>Yz>{i8<_PF;;4P~yB6d%-x0NyT8%=@?=%i8)@Gf)5ukY&DW= z^Ttq;wdip?VceKOqTWf+mvNN#7|H0?Qx^1EhIl*;K0|98pLES6UdF8w3v?$Evhv2X zsn6#6aS|^gjdk2(QEVn(B4M-0x*$6#jB;Mtn)J@QOrC1Z7}VI{y6$3aY#{9#W_UXW zjugE%Z9U>Je;yhi%P1id960c2|Uvt(T@KE*?ZkOG$of{{Rq7 zRx}}`t;R*%#)o;_%3{@t<(cGUv|9WUn#MaAx9}%qELi*s+vk#m@FeO((Iqv>4XrXK z6KjSib+`N<2F5srDU8iC7RW}mA%I;5o863>Heg-<0HU@}*|m}4FR-$MzA+NTQPH?= zwu())rX{ju|Jncy0|5X600RI301&AnpAtUZLIE#TLAW@%(j#7AUu)qZ4KwNkyt0|@ zJ$uFNQE81e*JeE>GF73CkJa4X)k&gM^@t+x5TEq0=Tw|PY3Xh9rd|u-W*wuzQV7*bLHg^Ej)X#UaJe5+Gj>E~<|qvQX1`3Zp^S3$6(} zZFfhu%TFP#jBGJNLi?dW-+D5W_ofzz9I;G7H~MzVT^4oo2Th-7I$^w+98uB4(@tJr zB2{+*EP*mDYq-2?SzFGl0rco=)8^sbg={$B0jjiI`GwaZEK%BeuLiw#4Dl zfxJmT3Z$)Ce%f+y0GBHvebiGKXufeZ@33L&ht|)^m`yji=n9F+ zus@!B#>1G+IHpMQuy21$-mYd-)f->nzK3R($CjL{kY!(LIOSk4q-jlV_DhYoUwte# z=Qx!eKZ6%&RU(R%1wp^c>?+&_>`K+T!$w*hvq{K)>+f!_D~nmwCsJy@SBViDs$$tF z>!QhtW8C}Hi0?c%^e5k($rX~C`o$GxFtX~~_+;LooIA{VI8CmU#0zc8_8zJ!FG*-w z+kFywJGcygKUshO0KmfM*#RB7#DyP?LrZ?#hPC%Txa^K*s$K5&=)j$z^cJhf9j|5P z8s|`Eo?3L$E4Ve0(WuinXN6W?IKq}+aRyN2hk2h6)7#WpXl_ICw6hBwlMYt*V6GQ~ zb;o!`Wyd@nZNhPDa`_+J3a+3}0!}(J9@et`fRJ z74$1K!bnqjDZvJNGL*ovC~}U}b0jiB7Eu|{++G)Vh?4i}rD(x#?00X4NTPHD0JJVi z&P-D_SAK8vl20imKwDX-sV?^fAoqzrpy3Vc4rwoF*I7zFuVm0pG>+^;TBs1i!+GSH zCL26@%lLg9N64V#ZO{()3?bu7%IURR4T+g4&VNB-s%w2bneZHho&Ny)hSOqBa<|_f z{d@y%C|A|X1^3~hBDHon4*iV4y4Neq@;XUK!<5)yz6sOPfqOprCIlfVoYmk@5>wfL zC^T=qkV_ap{IwZjibiRx+aiNmZs^9z(GgtrlTg(z_Atms6gY3|RFJ{U*9}?4!qCY| zX^-aqQIX|0T&^57-2*+amEf#M=UNPb<`9BGlC-V$Jq;a0LckTrNN+y_p7!`wR2l8- z_XN`Yf(>Jh#zBo4Zz{($&yu%ZIb%|Ry*Q~TATE5Rlp+b;UiXLh2MeB+;;L?uScNQB zQo`xnE!G&6{#&jnKH09p3cFbz0wZ+pL9C5dIP|{P=@G1c(%Y&Es6uwGX z@$-_7VrpT%m?1h%%CrTwCI7?#CJ_Mu0s;a80s;d80RaF2000315g{=UAVE zkMMrbe5Lq(7tLSw+O{$K}Sj>H8)v(uffriwz z?jnnrd{cCa!#C-)dOPB5VrdC-`wIF;3_&TFsw(G~Q&wt!5!=X3I}s3K;-UCOT2DEQ zO-;IO6QjNih6+LKH{!7kkS8Ro;$Ag3<(nX>Otp+9+%wS?w|ST@T8YkLZOj-p#Xnd= zgxjHyM{z>060cH~KPZ=ouyM(iJSv7%d|m+sz#MYw5mJ*7P**gltQ1#te9AC0NN7Y= zI+iXHhHb@4hY{u)(NOTzS8?-^?U<*2zE;5|d(6XW+0ldw6I-7LbYswR; z80$SNE3POcNa_Ar`j}JUU;=Tk@f+5Tl|IX-ET0 zio-lD2gK8(H|lG^lJt(t>8x3wtqpcjpyfbXrBdc&s{#XOz=6zBH5H0RRl(m-=V`Ah z(c`0=&(@w@ok)F;09e#TZ?~#uPl3}l0vLi>E6Cpme*wQeII4scmzsuEERE;uO(E3Z z@kGe;!$?Iyud5*)GvIE@ARc2jfg*5s@IX0)d<&+mt}qQrO_C%=WLa365UKy28_DQvuB4;Z?Fc#JRk-= zh)C+60Lh5pt!Gfwu^tiM!EVHfQTN3=gjdQY>9}PTylBBkz^)>tG4?fwayDBaZ8Q*N4kD+CT)>mCz_yv5(7r3z-HHGC~JCH)wWl&WDfEg{IYRMwF6O7=>8 zM0YLG#S>y>ARA>Y?p~KS>8EF(31>XexSmmiNv%;s=@SAKA}WA|!2TgXj@vA(%!EQ7 zQmH7;(k0A2Q0a(jZ%FR>xZL&9!M%2(Up~ym6VLBmE6l6R5w29 z_rbKlflEfZffHi-GWc8-Y&=LIRX+%riAi2^((r5?yvXI|Dk~M1%VoKu*i~>Bpz5{J zxU(M4pbmIVC2(;Rc;fWhh!s=Cz+#)I*|~D&QX2%Psb*IT9PKV#B}GYTX=smS^p(gW$AyZ->>eZXo32xdbHlt7sTn?hkxZjY$L zVn7!iug?cx$}Ho_E)up-vLq~yMR|{+4M!!ys7aC?bQqREoG@vCY(ocM7y#(d=&#+s zokadYUcQg4VrUA^{?#p*AV;$Q0F2k_Eg6x3m9g{EH%=K7ux4j7fs(;-eywUk^jEML^hD{%fH7LH2(A!+XSVB#2O$YGQ=pv8IYzSRO3aM zBp}>rE?u-Ic~Y^###|m~luf#(cq`ls>-!(~S0p-@G#3uf?ytX0KBlDUR)!_7pSL{RJd{{ZX^!(9$3BiH*9YGzW< zZ6H-JTT%6o-dHYTr8zYlsRHKRn4#3knE4P-6X=4z49}=T#bt(-!@@ukgnMFbqoqR~fb`a+0FOL@a<9m?{I}QhgKXlyp{`;9}enF5rY#+#|`kK;cG? zzrX&?p{~EF{{SxV<$QwiFH*W(Ta^@o%sqd9{gmwePx)|0EwR)EE(OY!t-_4K!^e&j zgP1!0*ZVALJ+QHGy{1ykpRNA@D9jMlQ!s%Tuw|||Fqg*J;PWX_;?F%qOKv{IDy;$~ z;3Zm7OTy&kE3ALZWEji31{CfUE(UnE38Fg@CepW=|HJ?z5dZ=L0{{a70RRI500000 z0003H5g;KkFhOB)QGubc!T;I-2mt~C0Y4Cz!A;;OU6D8@EHtqp(NFByvSR4hHqN1I z#m|E2L!?@bC@5VY2H2v+#@w+So`U48xSN#NkG~XrI?1s@7@NTz%Mj3&>je&Me1#4x z*!Pq?9|hU6#OB7_Cdw#6h1{~*icR3^p_h*3p;4i%zKblgk>Q#K!OG8~*|HRs;xA*wg$msey_Lem zpYQz@m!oA2xQ++mhCYbn2P?o<6%dUqZikA5Y|pv(KBv%M)ccG2iA^!|by--(AyA=0 zh1{$gsMKx+qBgAUVbJhnZasfbne#qp%=w=&e-Tnj7$!nu-_qaocVk4YjZTZTW9YGA z+4YLf*lDihye`=3V7hgO2XX8B3TSv3p)8}Kp$qmpuwsO)dT_Woj5VU62~XxKm142B zM@U?i)1s$?xc>mOEEu4rl<$x|bg;zAH?fImthzA@!lb$gZI!K9VCe9xg+!^MvDz0f z>}AIj_5CbTp+RYTHf}u4p z{sEmqa|VC5B`@#)06Z-O>{iq`!@N14ukIE%qRE|@wIvTqBk)H;IFvHKz|ZptS*S*t zYKJ}xX0$V-L#Z@=$LM|;_#eUfKarPhn&{g@iBiH=uR}Tz`jj&HKWJq|_rS-}$IXdN zocJl$i*{LAQ4LEG(D+rm!cv+d+ZoV~B@9l5&qgX=BiQ(K&T!)nAxKyxH609WnAbHF zP|*7vN}DXan3l>GDiUdt&KzS%r96{`*rOJtuw#eRsj|x#F>u?lw@10g9C(Y7VuRq` z#U;Gx0j$!dRH;&dV# zg2&zm6lo?5n{z?xm_;{EV9ckD5!Fp$vGIcNObMu;_+TB6vY)6o#fOk6j4|+ ztVy>|BW~#$T7)K%f8eaFVu$Cu&Y05@XkHdrG}{(c)V){H(XY{2J^NGxuB`|P#hD|%v5N?39=DUvY)25~w4*=9BPNhD4kmibY z%r+{R!Y<>5V=I_iMUD9SvHCLgL~5PQ6e#3x$0?5-=AhXVlJUb5-=GTyiDH%;Qw{Nb z$^z9E2QM>jTMJun9;PX>MQR)tetv+!5!l7B*U^X$&{zKe6t@b@w18>OSNju!ADjg% z^ZuYXn$;@|zX<^H&upTm>4TOXrFiZag-KdXwcIU+$QEZl<{Jx*j}dfg*z1*_&Wk7MQ*wFvHUt^d(#_AH(P|S;M)XG%#5NrL_pyea5AHVg`!8Qh*eEJW8>pkt0)@x|OZ2!RA;f+tjx_%j9v!CpR3#5KMg|LeRj%?u|L_;?Zo%EI8Ds zAkxKVD1C_K1k5Ul;p{G5=(E(2omhfI)aScWVfVAEsh>t5JtpK|54!)rx z<+7loa^RZIXe4O_T<9O5A+uBie2C=>ljk0b0r2D3KGgrH%oIjLrb+89M>SHHa1N#( z1EK(y0&Jd~L`yQ5?A+d=1gTk-1JBX1@$>F$jZ0SabSSqr_UKSzR!>a3;(p1zK+^P

4>$2m{RRf07Fe$N~Q$? zaM#j}^9;(CGk-F(BmQ}Xy1&meHB|fm0I*dlz;Jqk8U?h=H7+$NV$=@wW}$=&C=IMJ zVRdWN$S}GVHyF{1U3r`|-~zFfYk-$FA+D++pcb;&3?xjTJrd!_8nCnI)E>|CJD=tTQr+E> zsWieJ#05EGaaoLYH}_JE9JqxO#NG7^ zU1m*Uq6#i1S{!jMIaO|4;hf2dfpv)4l#SVf()EAG)kqkYhVc!iqfeQ*e~Sg8 z3SAODr6(>AT6xBv^P~6 zM5%4y%vgzzJDf)mn2!*ILa%j+q{&u_w7BrzCOQ_v;g)BC*%F7ua!Ybeww7Af>odSH ztY}1BunmqwiE@CA*uq3slI5>_?Sh$i4c=gQxEIEvazM6@Vzv}O^L+=>>SQ*wQ%0$n z3#zofwvBF}S%+%Jez@A?7fE3SdD|M(haN2LfH7kzBL5Ku`wh$|BI6D_$bU znv6i!@{4r!6vmethn9pHUvooRQdt%leaerBsTV^$d=ZbgECP?JCK29Ey|WUmF6tiR z%IQ|mC{TTpZS$CH42u)uDlvsGw=*F zL3A*(2^jQ)vO`^b#LT+pc`+%(usy>zhgU30?lB`ALCpAsr9P%m!8jq)6tQzCp7!FV z?Sd}~?LmOno3mb^MWgKw2RwBGT@?u+jf|+%xnh1(6cyYhFDNtyzcWEgn@n6Itz$yV z!T^h*gxH&3PDgVUEm|g2q&BfHl}631Y}(Y&vULIE~yne80p#i-MJnK+0tQHKGG9q=T zVmHOrEW-MWU-?jpW$1-i`*im!R$h{swy30C( z=1(;e}DJh=u7}4Mk}NZImlpj%3jyblpJ!mExc^ zQL4lM^D@Lr+(*!iyh|~0m-KVFguKC-C&YCvT8y=I2361|P!(4zgy|Y%NiQXg!n9}1 zC3w}jBGzl1EmW$+FfGhR!7mV@0S;hH)20tClM4}T4@(CW+YGQ_ypwe zMC6il> ztIqEd!Pjr%a~X84XtQvYZD8g-Ykr{nh^GWvoJuJM@MMQhfLoZvt@vTcsd`w26yWL@ z@>`0)Owv3@1&bdi1d7)|vxOZU!G|CXE$$y9n2c{1@$@WqW&Rk3O16#mZe6 zj>BvXi&O)deWQ@SXiueT48~ddpe*S7AKW+(;RP^WgwE+u0`n>g77D=Vh=2n$F$TA! zjd0b`x44MP^(a8Mft$R_QEL=%zV0WmtN_*fmhL8P>byb3g)llEE)W7MAjC%Txi8eh zLsMCFEKwLy$(klCelRRi_?^e?0O9t6>jrBs8V(`ILIse?Q3ao*$Xa4|2k_~p=67}d|-APRkpigmH=GD;5N)5^}>#^kvWH=aff>_kd$ckIG91F$1ccBbW0<1UY;GfqOKdPbG^ zzx0&g$BdPkT6V?Cjjg)Y<)PYe0R%Zuj7#Qajs2`$xXr8qO&EHV3um;9T`>kUJrO(0 zT#>#9;shY2nU%f;0MHIuY!;eeL_Awf!;D}uIF~WEnt{RFQ7;*kd%DT};}m7M5MjIUP)a<#)_{g@k1TE29C4x0secD8>-84IIU7zVLu7CE!4I zO;kWF?ulL&y&@eB%{YI%a@7R#!{1p_rNbD4{9n!KG`Gu@e_u(M-fK$dMGfXGU$)G(vlf zMnywZ67a_AnB!0^C(JVw^DkH-dFB}V6Ach%ob3+t+R0d9yJJ*P7?w`qoY=S)%$3aY z$ngTo?}So1i`d{IFf93i7uqFZzGBetar{@mUq@J%j?0o~-NBBfW@RY@6_%fzmkGXN zqDn$kG<6EWmsJ`YmJmfIk@W@LjZEPU+NhaLmBSTjz)bMQ(DnVISrXcuApFEFUlLQ- z2&tF!lCKrSyWR@iZm!f6!7hfNHv7YELD&I&?mY54zQ%XA#st?bz+YVqA!Il<^EXA+ zz^A&0h*=&~0})n04ARyz$_7;kKo%%(CzwhU3|p1+1Z7_kSTn%J36o=RA(+9y^9Gd* zUsE1>-*AUrseg&%$lu-cj6|n~9bJcMkG>_@Q=I)2sgn?2Loh2-A%iH07FcdaVq7my zlZ!4^;v(zR^SwUB>oPByGh~z}h@BconLQBd+;N ziU{Sy51_?W<}E$Vr@5O|p%jvrGxCT40%pxXxISg&1vg|NY2bt_x^vXAty{TZAwxB( zjFxo5oUc!hAj~6z)m{jI*^P$ND9ylKlLqhmpP(5P4=DPG78E`rrd`W_Jj&o#mp1@` zxL%>#qfaYnw0@2(Zc6<8u z2Nf-7iwDS$A;*Yq%Nc#dT|&klA(jzQH&OEl5m(j~MUsUcEEhZMCQzFLQaAxs$0Axy zZL$Ykwu>PV7qVC&8?C~=16zaOel;s)Fm5a$(WvZ7+U{Z)4kMK|z-3P)WH^bI0HMTG zn6rDBvh{j`FfNgn00Q@@iM&%DWmm$?5NM{JB?=#Pz?QRJ%M@vUhtbqxP8ocJ79ur$ z$-R(pFX-ZD??zG{t_6a&jE9+PLV&a&8PCMHi4Yxn&?qPp3{XsnDgpw}ZX%bWbhIh4pl6%;NBkSm-)TJHCGid!gH zGCj+|D=@?A;##g-74s~P!p}3x36MOacC~hv18fEnW2&j@6mcF?HWZAA%Zw#m=lBF0 zk@h8jXq>Wu=H-lurNy!_G1S}WH#UYIUC#_$SEvb6*ry~ULdY3_6d4g4yb*Hy1?R-( zSyI%@A*F-_7jVoH4201x?hX?UAr&u(Wf8s>0on4wcMP(oz#FKefKiq{U1Q=}=qNd0 zJh$2vtJ=7aqNL|gt0e|THcC%2t7!V0Ri5SoxBM{u7*!2RK)mj?&JYbLNsx0#jPz)t^rjI=*)FjmKJWKLv-QyK9y<>^06z^I=Aeo z#rb$1%9wTF>EuBih+Pu5ri_dg%IFlqYby>sL;WZ50oZ$yP0{WTh_hv1ycGr0304=m zNcmxRi~|8$dz z9n&r^70N|nUl3U@4mAc0p; z0vkQe*N_sGQAW=Sfvtg#2tu@BxUk`euQNF8a~%aj_rfMo2KFXEP~kR2q`+Wx@d;{d;f|pi zJM#w6spAN znOrb2wrUV%ETeIoL61LCH$r^R(-vI$43RDBq+@H}U|dwoMQ7p?0D!+|m~jRvKj;h2UWrrAqGD*#M_ zm1CA70jyQjwGgGOKUGfYfp)6ZyvI}bP>g3FZl#o&yQU*duCZ6A!z&g=#$ktw$}PC8 zO)xo7^h0SJQdM6$pMfxMaSbthgsL58JQi_S2~aGxwc;}hC4)_-;4}vtSjb%gW*}Il z0Ska~nTIChq3k~&M)HYYQMvU)r_SPHwIdJAsTX#Mdcy~GERrB7I;^88si|B`Sw*lR zEo?vsKVc1|`x5oDLn8K@Nr39mV=j7%XD zD;R)P9xz}zR8^aKmm0{Xmdt+X#xjg2!^0Gpe3d^C=);vNq9bH0Zslq;SggaMe5Vs^ zY|dkBae2%c1)Xy$wH^x$bSze1`2f^|o?|9*D+XF@-NCw#seos0{Xa%ix-%b!YmE^g_5(7xm2xPU~P{rN^ht=95{=$x<_!ysP*GV zu*p$2ZD zTMm_DD1qW^db>u+VBjibK2`XPx6R?9mxbLoNnkn4c3b<9OlADF}mC+yGiVKyKCM zRkm{tUBsjYBBWe4uMwk9ECdPEFm{X#B4jS6=A1PxfDER&f{4}ljoKDE-AWZQDe6?t zzMiw>8M7nn2<%Lb=@wr99RtOYi6U?eRcAV0s-;6Vf#AgL) z$KG9CDj5_nmQYd)XNXBf*+Fvu0A1QeYMtJgh;~BDwl<&unC4>D_==AvZ4E800-~_! z%{0r3kwX&F>2knmngZ@LPT%0d6zmkm_XZW#qMTtMl@1FEKGBeHq_FaVG)4M`ubeXz zda;OMuQ=BA152Ra$YAZ{cLKXxy)n!uEO%5QL`5hsh<+em>IMm}Ew7o_k$u8o=b1|B z>f*cAu-2u7-v~14tlg;{>^4j*Wpe@QoiMudp*JiHh?aanRHpD4zXn*;${P4p^}8Zn zMcM3)eWgLD?-GSUpoV^wxVN}sDup#TY9O~f@~^uL>I)YvbO}8|pg`=ocbQZR-w>y; zH8DahG1@e9a^}aN)P9=)LH96ZLULZ1TAp*FGr^s?g{hX^;((0S-X`0XtYRP_$X&RB zKnumc5g~u#U<<5amC(Il#$tN~r!!%BZ*?u$p5h=~=r|x2$itFu3i7Y<43U;kQOELw zZ+%)*%|l8zk|XoEl9fJakLxVphXh(HSKNGLcvZrXT~-VxA1302W}2v_bc;O1of+P) z6w$VCRRG5CiDp16;w4>w%Mbosi3DaK-ONs$TFWlsz?EdX@derUOV~mFcQ^&`f!0(s zu}~1lTQhNFH{-+17>qmw-30+L)u@MTH zxmY2FKQlhC0xDU(le8icW}OpF^Tc)ofq#YyDl*Kn z`G=WZfjTS~WXg*R?ouL)(*;uj z+@=_7uB?#P(EkA9_0BzU%6Wk8Uep*8-PS(v=aWz9{{X3%Kko4hYps<|CF__e7+nfW zpoLXUo6N16_!)Z{d3%)sLSLzXoac<-h?K(6Juw2|*RK&*P_Q4&y%lSQ4--9Zpm?FG zs?NdSrO6arOfH(>guu|Dftiw_1#v(1+5Z5h&+@UcB7x!@{vx-`B~rssF$P#;74;K- zc!6je;-D`Q)p^Ri5o7X1&@SoRM0HZ#3%BL~08EXgQ(Uo-@(bq>$)qkE_e7`Xvh(UBqcU7rH1+7G>O#yk-TPpU!wr7{aHyK|cf{)EWV4Yes3`mz^ zO=0_tra%+OvEf#oUBD2b)T*3C3Rf2>0o-*K35EhK5~@OmnvILcNkMY_UWN+Aw*cFJ zWImPu0L6CELNEK8eQPi7OFuPL)87z1uao+MZ{+^~h(GRssBbv2vcD1J0aX|?8Cad5 zTZpYz!V`dE0b3$V@I-fccQ0qmNGnnR-)tc<7oO1xi73C+0gEOthyhkTGsG(r-T^b; zF`^X}yFTXcRoS@Uyt7!r0<3bxuKxg*2mb(g5B*{yDsOo6E^iTemZ^jYhjlrIWkBk0 zj*4%@P3f2L-}#4RbzRYt7ES0~K(W*XSqL5%GTeEXZQ6e+F{k;c0TsgKamqKSS+Z6| zzp)TDL=jGJm`KnSI<;%_0|yhBAl@>_yD_<73WkU^D;;Uu<#F>cV8z1K0zsNR(yX_HiW%PU;-a0U+) z$rh-#1;E2N+SXwpyKeIjD$@nCI@CbD#6|kbt!?Vg;7B&2C!u7SZs-QGw$FK^P$q(^KQb z1OrPW@VM4}!H+ghqi8DV9woH#{YwtYHifoGre4fMTVm5uR%Wr8+M`c7fohpfAxGXH zL+P2sB?RIyh*rBh{38fuiat!Nd)e*&UERL-vGD*7& zL}*|#9DGBy^b~PL#RD4?IqnceOhE`3)Nvfb7-JBZ2wX=+9Ysz%nPs`G{m z(~6?nj&k%uQzvQ)5RG0dF=0ZU8BlUM%*u9sqMBH0-NCpG@I$zF1!Z0ps>2}02Gd;F6%K=u*Xq0!RpwVd%98C`4}5u_iQ@e?TOo5`-1Fym^oQ5 zd4Y*vM>_hgU&3d)8b0OZv)J-V_I`)%BhBmgPTD+0zh|R_S*4fE05?Ux7=rdQ4* zb+!UO3y$$>)YZq3O2Lgk-u*()^!!1e_WVn{tld72$m{8>R7qHsHu@DS$8VTA!8yqp zEvm5zfB6mD9ZO}FpcQ$SqAk>WblBSsh9Lz{P|1W{63ztKw8VS5N-rsBy}|Vt)OHFi zL1;ZQBwlEkx)nX1q6LjRBZO^=nNOB4!(GP^KXzS*=EdtzHqH`ySh#;=rg96v4CCni z8JZ=RAZR7HR4V%ViBQI{-Nv0mNT@Y@oK&Vkz?iLT2P^?FG?6y^uxcPUVzBs$>m0Gd zgWy6-s>d*JUE7D~#W`UL3!={PsclQ1VTSx>1+f1BUC!0_`$fBQuhqwid0ILlrpQ$v z(IpQ505Awzrq($q4N?Gca0&rd`iNw01xI+7ge3y{{YH=QlHfRq5l90{X{qvtHkpO#yONX^mR~)UZR0) zG>>o~1(2Tvd_40hIhk_;n|_N}iXjE=FtTMx#D;;~N#=1gH!wW8l^)WvOmtf;Z$YB* zh*!~oYT&ZzTA!d}EZ8d#(KqJery9X57G)#kRYfTbiZ>2u04O$4-5J~xoaWfO=mI4N|`bDFe9J5 zM}Ks$EuPhd6-|4Tp+fNtSWE5(ikv%D6w9x0f?6)jJ!Uo%mNeXHvaF^^LA4aFn1HbI zF5pY8^8Wxbv?K*lT)<-tmTF^Z=_gYiZBP9i{{Y%U{=O9fZCdIK9-&T5#gu_iQyTgR zIGA1BDXuZ}M|j<(cPo-#2{?r>NG8lo){SZ}2Ng@GZ0aa3;iO9J<^)t)%uax7g_o!n zZEVRr5U>H*-WmGoFCK4X9ZP^MGd0Ufh4 z;))!&iPz8w1-%glG{@kXKt&6ci>4df=w*ORz#3Gr^9%TvO4`G+-`Nf1D3rh){{RtC z0lM~a4MnD`H7Kv+b-c%#InfU>=&JX4e=w&H?I1c|Ke7Y)U$QzxxVb*aG|$G+OpZSg zF}P~36Z!JpHy$58 zNX6GuxJ}v^W+l2pnZ_fo3+@609>H@SM)Pup?is~C=D~85r!s~{qouHHn?R*vA%|f* z@oXA!%;4K*E;B2dxQOdCMXeIT>D@=h0`kMC54v9{NB0z-{KsmsK@5U^j=ZEPor58_*wYN`$4ZN0O9s6fqtT_z&z zU_@8iVcQ+N1W5S?A}M&_Q*%xx%G|d=slrRPKBmn4Kl+q&@t^i$Z~)l8Wvjq*!>6g0 z18b-t6C(z(P}D-W;g~>Z?YrComSHAuA!1o*vJ}iyHn|ycS7Sy}RSJg6fXV~4KZrzY zOblS;b3W3tOA)0#$CHd52zq~%Ilkr}_A%sKy$)ZWZ&I&h9EJLg9Y)+bi0Ol=O~8mf z((ghqu@#YfMr9=`{?g!rSgxTBU>IUGc`3}pe|c$=;jk;@tW4YagOR@s=grCvBV>x) zKL)Wx2(ZzFp+{lp|xsYOHeJTKo7P8cVL(z8t6<)n1EqH>! z87|ovi-=x?2Ql{`Aw$~|8>`%0p>RRvmo^42Qa*C2yW`BbrskUXfZU`CgZ&~%BSUao z{v8Ozcg^uAO}h^JBM3-?uJA~)K}1401*#QUbIU60#Aqm9CmGEG?{JXh&&5iG7qlL; z2EVc&+({Pr{l#d#%3s_T$hOV9jZ6q#X?`K7Y~wQc7x*KEO}=1OC*~O${u0Anu(0sJ z(UC&nW*kaI!-++YUf{bg6}AluTFkiARpwkmKM|ZwtCv*=(7%ahBUCTiWVQ!YDChB= zPvbd13|hs%5%5*jLr9lP1aYw_z%;?u$!lpI$>xamVFMe&I`l_t+Rhxz#lmqbxR%Qt za|{`5m4FD5?;>b!Ar(tgg-py$o$NK6L#V~pl=5fj04zykRU)yxIR0dDE`J8hKk2F zS3SUpi!D)bDC0#NKm%75O9H?Epz0p5u}3C%WsFpefftfmXe}a^UG7BK0x{(EIxjwA z1%4(PRgIHS;Fts|A`RRpY5WqJg=20M7~b#ac}lU`ZHp>Zx`&p);VAI}$TOncQm zu`P}JYX@J(AKctq;r{?(K=L$=(z7bE)p>>GT|1ejQTdK5w=kz!g4t57N^jIsRBxQ_ zR3Nl(+66WZU~%GFC6FtLS;2eaQUutoSc&v7A{aF7g#HoyMDxB*j6oU6(0KYUhCUdE zoHJ#pp>XtIa)e!Jh~WFn9JGg>^E2%G%eX#f2^ZWI%Y^(0wRXa$TtO-e@hY&uu5Xxd z<5zP~37)zi62|r01Q_R-4FWA=R~$<#scWHCaw_u-1D!w;&pkl594_WV#3`Cp!4xj2 zVm>Mm2JrwxPi`>|g3nuqfGO~b;9pyT@mTpL87FAbiDKDfHws-^hA}q=_YudqSEd^J zX$RQ{*gX=4sh0CFeOz{_iCF`ok9F}`g3yezK)b82GR=V96MR#p#1fpGW+X$&hG1;f z#|v42zI{)`#i(D;D(P~FBZe@t{LdyJRv3UgsFpSXULUk2vn{B}q#-TO%kwnFL0`;P z43}5bM+5B;4LNo*29XMD7ZGLNVeBXX4{DVOZA-$qiZyRpKstg)*M4JUQ!bvR*{2$O zB+oL$00@*sIfvCHyBn8l*pydl!ru%bMFNCNZ7j&s+CP&x#13Cc1-u!S4XlG2lsgm*@rO`^RRs!zfV#1&tj^(#{g;SRhE>afC)LjWw3xR+LR;BqY zDOQ{PGa}D1&^g7RkBU+LsyZ=3*O+!3=z*(OhZ89t!*SOhTdXP82&#^6Sg-C-6}RF9 z!--vc+pK*o;DyQnFu{f)5LN8!=ySxrtF|JzV{FL1&T$$Ww#bl9b!D79vgQkQuMy-{ z1O)han%MFTdL{%+3mTvSM{$zaG%*U;;$m5tDDponbwjcI#d>00<#?lUDETjF;TA0R zyXWQRDcW&+PY{*tt(W+NHhhw<6XwHT{Cz>~WTmN0L!>nW2kjPtt6&We-di9JvXmRm zCZ*F|%~#AyN)0YcpqEj& z`(3{h`WRrjL$})z{TWWa(iVSGBt1bYrXkPJzF~c^u^EY)KUr-x^kR}1%u*)xz5v(S)DjcM(Oshg;5e1;bOH9p5flBoZs8?J{ z(i~nJn>{d%`MJ7WR3phO6uPNWk54cvBHL#H07+L2++kNUhFI2gP}Dl(j7Fzn%k>S4 zuJlV_ILv#Zhu-HA!VHVDY|HnQUYN#X<#OA=3S@(=FM?h^#lkt10)cYKh}SWaegr#4 zu9je9w@)yLPd22X8``B=c2}LjO1aEmANF9S)uwepI3F+utlt&PGa5^aE*rUYs~F>} ze3V>KRWtks9JD=;=z(wKf6)TPKH5KFmv`N8BfG^xLaDyU*<|RvzzTz&X9O%RCAOy! zn}RehK?6;dbn%Fa0jN1o5~P&xxbl_qVSS*xdWk(?;Y92%T_-cYWC+~$1@j$;$tbZc zdB5#IEfkF#!zk0NfVdPy5$1ZBf^qZ-QgJrXL;qTRg|@5k!<|R1&b=4 zV`P|1wVk={`wO=tM8&7b%eZLZxnI(Q6xghh!8JW|UkBl~C$iYm}OtzGuV8 z(bI0Gitv2(qmJwz9M><*i(xAXOJCvjEYRpdh$A;DQG&hfo9nrrbof3`~Fv98BM)CXm1l zXmm9Y^_H?t&xml^M9g-y<_1@>F6(2I90eY~<8+C2pFIB!y_^yuyNCEWiS9?=5L^>6a?1IU+=nW?4gT z0O~SOP(fDipz!wr%NJa0`5?4;Dp3}a&1QB~N}1X!$o(ooAc#)k2uV;Dr-)60@ILc` zUdQ`~0edKL2eJBqK$MBy>Mw9hP%BcV64;4%6v-ghVba*&}cHt*S zsYY|}9lP+-zF;*bq9hlh$mV0HxCz)#^$bFGp_kc}YvMi)%|FU5W7g_ll<#zY=1=KA za`#u;_cP=1e&R;eu8@xkSyW1qVJ=))E(|}uj;+L6K{8NaH)HBLm7ADqAxeP_cPN8B zGV+au#AfCxDr8uw1%Pg|2};{YIMKGac!6nWr6KGTAUaD`q%jC8)iQv!abP1ETYNy~ zsz{IKDVnXVx|9b4S6sd`kcj4+NyrPzw2t8ypl(!n*MiHDoyh}CWa0IL44pr1I_S^ogA6xeWnWc<`+L{|Yxs*X#9Nz9|gk6{2e zYamhigYbJFsnlNo0OEMxZ}kaRIE(y3?txfj^$cqyx-U|=lOP^PLBLR#VkBJ^pi z@d-Yu#(YZP6c?Xtq*&JP47vlAU`DKQBI>5rW5iqe@Gl?7*$Kcf5{BHXDs93Yp`%rd2%I+Kf^8WyEcVXT4`G|IZghfSLjKQj?Bt%k< z%*(#~+^ayf4W+U$Kn19vJ7AjzGEjPr6vbFC#1IF_35}CN7$`w`USI?TEq|zM906Gv zk>UJC7`A{di!lXe7%3rcr$1-=%ma`6?pvSp^Eor#s-`V6bvF7F`I{#bTg-ESI#{*X z;W>eMoS>oAYEqMkQLWs`+ZH+8q0up2OHj!30Hg5{;fl)6O7NA|SPL@4HmzUU1|%0_ z@hnz|3tYkhw-hX4rKDs~(&;1C`^F_Y088@$Cpm!>zyNMr;A>$=h=q)BI+i6%wc(7` zw?^V%PNQRJIZPV^KrU9q3bT3h0W{cUI3*`x(mRS0tpNy^9{a7`{39?`9Cpgf5?DS` zS%AL~L=GCNj6_-G2(ST?B?5C2@`AOgec}wK5CNLkpYB<~bf$vq zDKTpH>Pm;Uh6Q#W7%X>U3^3JyKe)H)e{-|!zq#M`pWN`Zbe5=d6?{Te2T<=RCScjz z1?oPPiy;AI*g?Mi6M(-Ecw2N;#$|^PM=@6)B+F0OjpMRo`@wMtm;9WR86|>Iv0q$F*J=;hls=jYL(0)v|b({JyU~%ElEP1#~Q?+LE2hPlBUu8 z#xNy_ITz&&69*1a4jgZ^ruZ??#S8wWu*%rB2OIEl7$^rzdzXbP8BH*yT+^GmajkGg ztGu#;qgLq{?lYOWUshc~`UP^XQ`d-!J1nX|I81H_3b%fQq7Zx!Hx`qjLu1eeXmsQ?yC zRlqPs^xC;%^`pL{?Gek%EubU<+%VAzVMf@lb7pECzC5r;T31Sw)O5LaP(TGJW5*Mi zQjUi9W)Tp?~?CCIuk*E~FZRCb4t%}#g zGf^p`Bnf39Q%z?)z@^f+C=d%=5T&4_zY)Dy7K?{*g)akXcFIkwXK_KFIqoeYUGN4a0pRU37xiKTWyQ;i9vz=} z&dMwmTPnUsPClV1HeMh&GBm|vgt$gTXD+2!5d#lX675cb%rCikzki664j|55Mi^|s zXUw8q^GEJuo7v=!U;;Ish`=cp*+Lv7w-7L9T$A7nxS;zSe8dE{Ff!-*58Su)AGw3| z{^8|w30s#wnZ0!tu(a3HQDMASm~F%sMr?{T7GN4u4s8CwD z;vJDiHM?^RGLHZ2nv6y%tn#0K|9~&ECTguLc;TdsyVB_NQ7Sgpm7{Zxx^;KI*4BW1NQc;^U1C)wS8GXc-w z_?4}pp})MrfTIbCmOhZng~C$&d6%13&+tZ33VWlvcrjjE%)Y9uyhZ+3p)ivsKVY0xKOCM3&*Hh>Z5YrDgm@Y74LHk zV9I8q@Bu||iY26JfT%Sb5XSDaDiTcx%&6_7Wf_lqX^^kXBG#&)_1rr@6*&uxHw)n@ zsW%hEtvGUj(zTKbSgU81Q+QrU#N-0*^6^Dmgb$AoESRaC(YUHGJvUWN4AD%>Mx7 zQ$bw3uwH@C=i(;lE;79_FjYt~Q8@}SoMkF8o93fo*lCE$cs4NyA7eTr>X>wrl&{i! z&T_!S!|1*JD>;X#mmH(va;}Jwq$WCw8YNe#D^c|X&^TxyU5aLvnCIG0npqc>HHxa0%L?J5uLdzM9xThBZZ ze3QFAp9rG{ARA9aN<=FO2oa>0Wn;KP#Hzjo8S10JnAN-M;~J0nCLu+3tV6G64DW(KeC3meR8-#YUyNFA4m z4C1<}nK*yMQ5|`qkKlA!42a8C(Ic^B;&%5OgJsVaB5bEHC6ebkZsOAAoJ3Px%lG(* zClE53@|G`SJ)>IWxwvJ_zAh9-uBsT@g48<_0*qV@BRU8ku_*cuBp8E~9)bc3n%d$F zORHGZrL;_LDcTO22|~C&CmGu=wA zDvB&w&+eD$ebV?95S+E5S!2{am7?ZpIQq7mnzIr75@rT3xbUjpqTuniZZ-17I!27R z#LiPQr%ZT_BjOa(p_qpG!5g3k))8D`l{TSaYZIst4-;}G>a{Mh#o}L0UJsb!iIKS} zaaQdiL07{L+~=6uHPz-0rG2GIDZMJ1j=e`@e8$w#iF>kGcpB;gJseA0xlv&$GZz~9 zfUX%x<9NA7dg^2+=2)n=0*91E-h;LX(9c#y=(j_OZ3MGpVG-5b45n9HaRE?9^k6xH z*q973twDh)wpzVEiIKNUEt-SS%T3LkuC2>b@`+0m7%kd|F+!q(*)s7eqq0WQ3(4tG zVH}Ik5IL2@EXNChWU7cr1=`8nBC>Z$0t5o?V3iti{vaV6o)g><1>r9v0V^h;jC)Z< z_W*c8un8?OU1=$hfvz60K$m1Pq}58AOQ^P|XWCEv#6kr$T*k~dK0t#o*Vd&>RrHf5 za_NUS66A@;Y;qWA4k7!@$mSi*S&|##4K4srGTJzVU4rtlfEx%B=-wehD*-Q?2BH80 zA9#Bmh&T33jezFi>)b)*f6S_L_nB9WCLmUkgUv^SmKButuPZk$nqeUz8<4#PZU8y- zK?Ufl@!HWtf`S=h_fggL)tRf#^fLA=Iql z!yF9Ro(^L}5yRBLTg0bY>PFLZl*G>)!F)g@3fqwJ2vaC1S-O;XobeG5iF66L<&^*y zDRrH^#Dl9Z)Iq!uYx)V#bHNgeI{8f0Yw;e!OLLQ|h1DoH%P_zc*`J7Fv0xK&`vf}N zXv}igF_|DxR0Cxjiz#l3sDrIr@hVcPp)pa?QEw*MdeNeTsg1A_`#74UG;?`{qCiow zYas!d;JvX254_ETgqIzw4j_c67dn)nHe_{PWx&*|55%g#?0*w^C=TvejRKlM*u^7I zQ-bgyvkwOv#YQIv1?IAeLcB^}pP*`U9}t;|h?dF-un1Tdmn2Z7Oy5u~ZJ~77VRv%e zdyf!R3Y?RPWGl+(UFC@dddM{bs=(a0i%>)$I4s0`IZojaD()d@(26d6L+qr()R_g~ zgB(#Rmza^MNQ5ND{Kv~(V^?0_`l}xW-`*xo9janTvqSR?V*uE1JBiT=PU@xbWKqh+ z7pqm<#Z5+&lV{Meapt{?D?p1PP`g#3NZ2Cj{m^Gg9 zL9|mt_Xw5?OAJW<$!ci%gtpI%oA?YDFX8!vF-~_9mCcYlluCvve2DZf5eprWC~c>x z0$fD#1&YKmS5a@uQn)X~1wh_qxa62tbf%f8>&H-0gamJmOMp-gEpUr_2I5-mDKt$0VZkYP3Q0U->pry0UV3m6xD*m9>h35zH25Co)BXXjn>s>(TLM!w| zrmOKT5h3C_92pn2fFLf)IT!>Cf7vvq-y-5HKo{8(LAs^j3Ie?I2o95FBr)&g6nqV? zRg~J7m=8fXf$)uhOnhLH&zg_&Gp+zhMT3P;<|!5pClbyjw7A#;ARr34d1cQ83I?vi zQcM;W00X*)9AT`+%$eqB4jF>Ei;o>ab{5{*s0TqV3aP^_z#v%!US*j|LRSkH!XH!r z0F1V_Lcyq)nN>NKMBFtUNFiAcBZe^?DTBbv1+7F}^V|TdL-QR1*HiDAh;)DlCR$}b z0v+KSpZhF}Yqgx1R3a+`-;2bsds<%+P|1|yZ?N$MZti6=YTF=3%WPp}OJf ze#t{4yN9y|`G*qQ=X!RDv-2r_lkJvZf#JkWuwLnykN}YF5loKv8wr_f(8ST^H_{oW zf&I>J04_yDsJdt75M;WabRs#{svXb73DA2Y{EO`e0tXNahLpaOE#}p0h?G2BQ7fY9 zO9PnTPDM&B)Jv>c`_wBqF*vs}fii;?tVAvmoE6G30!HAruA)_h_CYT!b20je*W6%x zKY8mrxnJ_7ia%`=-`T^3Ct(*5zO=bsX!(Gaz+YN?$7r83iT5Q&pS(3{@WQGOR5P6Z z=}I(i>zPwHUBJeI#vB2Zmi{b1^F;Rk(vDBW!6JO#HLy2OW>ycQ&(UB86;>?TsF^w= zZllJ}yar1k&Ay|EyKXomHj1G+i5hr`TpgX%5ms9t0t550R1fYFVm4@vz|u7P!_TEe z2DcW9IEd1;CCsrb-;@+Tml6n?EXT3d3jM|uzi0Ov3cO$M1{9;fe=?q_io&i7rDB0P z{-aelqW=KuGyr+1cnv2G7O5_6H458H#4p4}?r7(zVV#(_HBn&Oj}dyVTA8@pDk<{< z^MPVFa`L#k{^N*y*n-d(6=>z5uGVHY3>4yBgXY156ddO^3lv+ZXi#yB#ITLm^_3$L za3YCXMMcEYDSOOtu4W>pI7V5`E2QK4iI!vJv9jI9+((u(1l#Tnw_efM`SSh5$m$eu zg2e^+X88J02G5*x0t`0DtEvWMtZ}NXr{=owN zv4B7&<4k)kjz~e~uuIvbD6+WQA%jJ2i}!`En3oZ1+JpnHCf5tB#xaW+M7kpTm-F{T z%zeqrebJ`M{Kh$7d3&F@?XB}Pa=If~3YW@~qERH_q*yR`WD3S*)j3N5UDxvhs}W-S z&6nKTn8XYS;0~rt-P*^>{!^RLY(g&?W+eP%?doJX9mepLjpjBtsjFcJMxkQk2p4V4 zCuwd_^B7=L{Lu;-KY~!vnBc2E^8m3@>BAnYLsIz%Cd`QbAW);i#Tq2Qf~5#3t!7rI zG3d+`sh%jC?H8Ie8ob`II3~KNope^u)NF9Av;P1i6D^tiN#r?{XjZP=MZ_xloxlKwLs=*@xDpcAe5k8(_7=r3jY^sTcI-m09T36 zgrHqj#CIGU$q-H4D5=cKPYY@%+bgKvQJ9wT8|*SzSVRg!yv)iErYB;1X8`;#5-BTJ z>NgZVf4D#4{{Ym~6rP{^s{v~*8_XC^W}VVpExlv4=0tS zYGFM=E7c)C5i8H}5VyZ9BorKy`q}owV;8tvF9nH}K~%|=+j>OE2XWgiOsa3pC{qNI z$0(>WN5aq~H3}>lc0SRNT2l{w@`mT%VoF=W!3wvlmkMtO&zi{b|Gwig|u z9xVjY$yDbT4=$>`GS(C3e`|kI)3MussFxSc2eHo#7E~W1UL~CE+8MURr3A`Q zpzN7Cr>RBC%&bcKB&_ZW)J$R^xD48kglm~jiB#3Zrllt^SwV@KDvEJ;9b3T^wH9TT zHJgty(U!TEPKb+wCWsJr#>Bsgregi0kfvHTn1yavk#z=%v#5wb(I&uw4)@$zl~FlL zX`C!eMu>=Eg2tc}=AhM-lnh2NM@>Z*`0a|y@#bm;SAsU9Vr+x8K$Qip#b+$5el-g3 zd_;G5;wcnrB{XtCsL_S2IOpbBPjC<)nV(9g#Eaz$D7BmHU>gzL)L-^BzCy zUNgQw?mS@le&S8pT!Z&C=49qt{{YPk1Z{%=WKkSK^ot-g(GFlxa8#^VYrNqX-wQ1J zoE=&|RJFY3))#Op4O;G^9X#sCj^*CO3?ApWWo%&^>FI$AH{%$IVSHwW&lqPPZ!M%B zgbIh_FW`D3N9i@^@eD;%1iaGV(hAImM>NW51*zB5bHv1Q%9WXlpCaIGmGMyCOP0LK zvR!gZ8l=H$0p>cQgZG7SWQV||t3fWbTC)4`1}z>fm&{YDzfy?nxHRK045Q{S6cIqe z>fm4lEl{D1?kZ*(bD1|;s5!9HxwtWEWsL50^6@M^ zC{%MCahMdbP4Vsk%IXVonOGs=A233-XkYVDZ7&ADbJ=*)>E>Ss?m0L1feuSRWqu|D zXSI6bAkv|dkKArwn_2rs27^eGw=uBSO8ZJfU_Roj6^Ir$(lAug53*FFPV8zJOlk}G znN`i|q6BEsVCoweaB_A)0J&Zxv!*#gl$d|aWn-$Hczn!|;AUM~86lE_2XikF-lgjD zLKrI%t8|&x?@U~llNiU)`m*K6Y7CDurU*}#5WVpfDzB^5z}owYD=<0BjP6+Tj#yvQ zb<9TzOt}lxp~Z5ocM|NO0XNaT0oyY-93gCE8iTR7DtU}TFdp#=;@i;WW%~=ju}T)Q zOR>MaHT}ahAD&`i@_%sb!QOQqcol0ZUP~V7bIPn(-{Y;2j>Jt=bYXCtAtZE~u z)X}z?MPjP?YUdXrToV5Pa(ptT;m%W_l>0K0Tm#V%I}S_{DNBhnoqi)@VYhi;O*tUD zK)S`AIE+z%ZI#`j8+s+WhK;0K#5u~yTzuLzJ7)l8d4HxSvn#ZgQiXg<1vy0JqGvNQ zViXIh=)zi70|Dyek`0WXWOt&I8R8^juzxYtm9g#(uxjxXk_%}Sm7OOs2T^X!U@;B% z80CR$g@&^<%r$U&6PN=lrI!b<5S`T>49?x zxCQbeF)5l*YF|f^Ly63&{aCT(6t(jz0Jf_7<^w5`6hyl~O(FM%0iyS+fs78eRd3G` zUV(t>si=umCa>aJGTN%o-XN9el|i%F5ZQ{%dHuORz`2bgRmRx-9F4#z3BOyKghf^j z6C1Vz_?!h`K}&Y%(c2npCGxn}27JJG%o`R&qMTE&a|*D&B}?S~VnzP|b2XIAS}(k{ zqHSGD7^1gvoeT&MN1riCI-w_7g zbj8gL!MSZ^OIxYjw{h8J(F|>d;hfnx!xO$><`cb^8(p4YR%Pdxn3(3atI6UjBtvm>;C{E(w<@{E*EGTj=#~Ete0qwNJ6cF;x6>vS1`_i zknO=0AD{CmdYM&ML01`F#(82ck}Sjv8$kM*e1nE9%Ve|wdkX4Sh6-&aFT|zUgyx-o zAadGE=2but{G+)dSBhW`WI?7l0?}sON=r)vqAApA)VhskzVWOvdchjBM>yx0GEl~) zfE+b)pNAYw7==_cTtH1Od{o~E9QpGOa}3ST>K!NgCvtg|kg~zA7p7a$!2Sj!Lfd(C z%eEp`z9wPbB7DMFmhO6aB}$G?Nl_J<`Z4-5wsS;F4&o>SdzFDIH){)1m*AHdZ-0u9 z;OG$>D4;L)+((ma*5i^V1S$4|K%4u|h2?;eoC?>>ReK~F<6FwWnza=ff*V7l1B0k$ z4g|j960Q?7)qb&TcO4Mo9-sZN-l|r`Z}>A#}}BOJsE+KOE}VDM@SzVQJD*u~p595GUrVFEUr=51ICAcmEvxS%4u zrdG<}w0mLUo&pyC0E9V>q^(w^RXnAaj8wR=@o|`7Wf-RWRH%jS@&021{{ZGC=&CQM z66_WxAvCR8MTb1jRcnigR8efNI=pYpR)NzlWpAl#JH$}Y75kP*24KVr6@cR41&HO8 zO{l!{6Y5o&-e6M@!?>hU@ane`h_6qGB+ygYGl~j$SdI82s3@Rjhk_q+<>i8$`-|jY z0?VfpF@_F1ggzoh5DsaH8!pG`EkWYZa_m~-Fi)Lv;uEyrHw2W4Vl@F&Ri0U0%seI_ z4irC$X)5z@rFX(}5Jjr2#=wD(pjoD~3btk@9_9Gf<%2J&cPIgd6z&71sdu6E1+xx2 zmK37^reLyRD_qP5bq2KNJZu;#v!+|lcoym%L*^EN9E+Uddn!{``5-q-$izzy=P@Xp zM3o&z3yA{v2HNGjg@1Jbv3fG4Z!iF+8CMJjUnHc=`IHVbE|)oN?qHDeKsb0D5N#S2 zPyy|3Nn6;l;w#+2H=reGWNxNOD^xT_Yg2D#4lp9>3JtC*2DuhGX7L2`6nReBny1Th z#n9z*9tj&Hy0)21XgPBeyJOm8>xHG*+RMul1@Ut=W8gf|QLioOD?;hDoDd}A0;!n| zJB8bEBQV+SP}}M>m-mg=u?cNZEMu!T#BV_;kWR@4py9zhMDS4Z;t$@Grg((NJUNFc zd&F%8Ro0;$DCLzr(5B#%_*dU>&h?0j23lRhU2jdaGUj+uZ`^4Pi-!?|uAV*1fXZ7E zg-bGF?jq?2ZIcGV3QUM0v)ru53=Sdy;Ig}n_?KrS^hY>Y>SSPs3u3&Im2XpX=;E!A zQ|f7n#89a(_?;Zn7uaUf<^cl)0Yd}^>MzmyF_oBc7OBLmaB5xlAUTq=shndd;EHXB zJr3bk4ffTT)tC+VMyP5JNUMbZ0E-gzoB*mIp0Z_fn z&^isp*b@~4B@y0%=+iTd^D;BUSZFz6i|}77+#uv+8)XBH0K^1nH&YP_ zY1B{)FkT=7R23M?{vfKMvp;E%!VfFNM9q2lfp51Fzy(iatd1Ip6D{Z^VuDs%Jw#BF zSqcDG2Z>E#V3)Q>sO^f47R|)0D8Cz;1p=X=uP$Z39|4!kL-P!(pq9CoQDiKuE-jxk zXZ{Q`?ImP{R)omFqZaM_#id|SwLvRN%^y)GoI+pPqf6jB4)P{rEg{MjDv}QjqUa+k4W`rQ9A*3xE`t&*th|l)@o2~ zi;C)5s4B6D!D{=KHTy=wOb#GeOEps>zcDZhIVE7F^#~Lw?sgQs65Y);?0iHP8Fw%& zhLeUqVx-i_D-S822~qM*h9PVq#t?}jzBr3aWf!5!WhGEg6>JgVbC)p+s>|4Xjk4 zRePCOd5>>X5zRnx%gh?@0a5S@h@kL(@bc;f-6NW8)=QqxmlF{@*87&t5!2!GhD+UFz1*q+#zlSF)I0$ zT*}qrU_&L2CPz7y_MV_B+(6drFm)47VE2d!eMCa9O|wuLY{Kp`JV4ok*nwi;qjKOp z#tV<49wDfo=A<2*AQe{4Y0737=oiX>St4O z`U;O3NcOp2e$wrvZ*t4Cv#CJBnz){U)kRj+jc&6BZJ_ha2We2+bYSF#_Em#bFZYdN zq3H}}qTaCyQPa_>P)3Y%aNT5v^@)SlNv-ogktmnUIRn`SCul4 zqBkm9?s635?kbP*6E+;C7Ry3hdqHxNz;?x6p{5HP`%D~x>NyL6#B!rSeeoE>;Ea9Z zTDD*tW(MHUJ%T!m>B@0e77&bufvA`>Z8%~T#u8hFMjda%8HHGRK?suNs35c*E)s)M z@js}T6ajK#Rn=&>H6E(g?o(;DVKXAH5{O<}l`_5JXm~8Xc`6`3k|X~BQ0&2wyT0bV zMMHi$nJeH*q8+QqA-!-h)F4%o;E){#B(OTQ4+cvU7wQzNbqTUnYlskW#SBeiaT)3W zo0S=AjVwzdcEdCt*cPf?M~JAQtW?{0;gpL`Vq$D{77(Pjm@zi}tV?4cZF+#hJ5IhL z^t8h-h$u0lt|j^m!jHuheMUQW{!)^Oc_Ps+1qoNGuHp7E=w=QqwDXaOS)>-7R0fN;r4MOxK zdJl+>huSBiU;@DoFCEcP5Gt&`JVKQ7;w6hK0aB*zTCCxPDUn9Y%n7hXR%I%YmvJN1 zBu2QPQYgh{+P^SiMWXHtTbEy%vT!WriQ+H`R<%nDjo92mS8m`d;mETrH75m<6^^9} z@iQr;AZG-lb{az&mu8-bMzRVRr1Fg0aL*9|DQH65ii8RdVnzbUWllboOy}s$ewlQ& z#7NK=s5uXqf`miFriFNxu$EZamg41jQ9)%CjW|p2iWEfwNU=_ zXdH{NmOx9Ka?1ds3Wl)6&mLvza;_6l02WxyMf7Vi$t%Q9rB~66^8F}LF&f;q?7|uS zqmag9Mt8$EtoI34ddwvad5pa^jZ7bC_|f>Ay~6Z_xY-_W49rS`>fpO>XyEnSGdbC~ zb>ee5`jl+bePftf(OLY6Nz)EP%p+i0q)d)qd&IiaY3USJ(zaNPEKH0Sz+xOi#$l-r zlMhT76bS72jV7J9A3n+J(J`Eg4i8Y(lN7rke8yAmn8$=t#g#2#Nu0&dAG#R^)SPv2 z-vXe6*SlUxWf?8@lMSd9dD{@i9rz|aVux3v5i1LGh6Ai1zFwf1HD}=ZvHA+NMRH3j z$-0JB#kZI$hFnt-OJp6w{;QWzgfB^PtYJJ2pw)0`saqpuyE=x7qMGM0YS>%}2@Aop ziiO1xiI1XDxy3_>ttE(D z3w#lFGZ*EpLJg@|ma%V%fR?@`2yQLpv5u?E7PtJVx&g>jdW8lO?l?-KjeXIhjJ32% z_EUYpXglt1LLZl?4B@L8sf!O>71Y(|C`UK}7Htek;m)E8l5E)#xyWq!m1GZX+i6(@ zcxAY_-55lagr((#Q3pbtJu4}Uj=q|XEi22IU0LRBpUZI)-BQ&>hT0XF2q+XyvLjJ- z$tOb|?vDF~NfkR_0(w;HB7uD^#9XWtv#3geMi%8=9BGy%#e(u99Yuj#p)O=)H}MAc zv@_-bNq2_75{GQo4-l4CP6$Ot`HFWN5~}qH8#8yz6geMa3`-79RT|(1)h6aYv{y|MSF-LhrL=!ZDu&I$jESA|vC;QLQtG{idYk ziwSFwFdrm3mC(2I7Yt|}N>z$+Fzg1O69yJj<|eqCnvSDwB}AIseywEU#PiI$Q$oaM zK*LLvwRbWK6h+$`iD0fK1JuOMN_Kw}T(m+d)QS0*A#g?UDoI6er9>z!wZs~zKqJ#(V=L)yOKc*ikd?ZIV8-fG*=8Oh<7&EhD$^$6 zl-Ypt!dV&kN=I~1RlzFfnG|-Kg=L*((&B?*SL?Dojktd?m4YW18wg%O4xwjtOIYA* zh&U%%FyHqsfQvZzMlqE4$MYRd5%*YyyPIcerz-f<5se^lg`RVW_B?eAhNi}>jWO9M zIHn@1)${IV&=Rqh;xz!f63aE+iTRh9dqsP6b21M4ggRkl4ff&>a1mSSZym}zcyb_F1LK&FL0hKc6dK@};B1B{ z9%CPI^%`TTcZsCZxsQE!FW@d^@h%1&E?O>uSKBvu1f^(ri(_0&SV7EU2|*3BZ^9^} z#}UXWf07`@N{Cht0AQ&FVVdqT?%AEdqESQ%7*f2wM0|(5_YZ?uVdG8){-y}ttC$3a zfB>L4`qaH+>ru7I7guSb2tW&>YwXkRDyz5gFUo?BE?!yE{lSoJwzm~F&@L76KG7ehj7uR%IfU#yXC$i=HAryorExAjT^vf32o}qo$4nMX9}$kC!E+Va zX4%XMP$d$`F?mGzMLB&y(n}5^){2GhT=3Y`B&bHtV0X1>E{t0jSF&wrOBI8=W@8c; zHPkm@)9DMhN#(>z!1OWA71_+d3stC#&B9Y2#y%ngd+J^4C7{CskfF^=CbMt=vf)kw z{70O`zY#L#7EubRXg0yTjIrVxlq!xQSg$R{sm7s#FxS!X9cCobbfV?CfjMt7r5Uxt z_b^ZZj8%d4O|u&)d$c@tOGO5VA?I3GY-W#8LZ?9DF7MM&uUhzl zRC54T&8+8|s}NFV^Gkz8Lg zlswllW|VU-rIS_EN;|ktd`q@B=295tlu?SnGYZApPaM*Fk#0y$V`a0$!H%s*a z8kz-oxRnCBL?zd9jOqd05W&7+(ipr#MWgv5FjI>zgOS4l!isc9i1x8p8WCVMX-guY zy}`cRw^@eXn8xBpAmB>w5cNd|h@G%EQvF&g-etv$FIjTd*y1S9@PF8fz{pnTA(RcR zxnn3HXvSaw&ceoH4*}rp$5hXBO!JH8on1QCkp^K=Syi`6qW=Pz|R-XwR+!=(ea1nw54=&dtP~7(b^tA48$OY&<_w^O>RpvUi^N&FnhM;zZ3BdK zYb&VMt*xJkAw(p3E+T|fVK)*i^#fpKd?isqkE^Mnh@$IoGt%{OQsyr8WGJ$4lzb}k7vC!W;f5WSy}ajBX1 zJP*&Yp!~`CPIhoC1ytbU#kpW1Y~VD^aj~vt%3c;R$iTTGD5R-i1XsZ+WXYIRg%w8T z6+8>5MY)N-NbimYllL(C$q?tvHE|6`3eLvZG_|7)8M{|v5o#k+ZX7jPjYS-kuw0Ab t!~o!!DVc`_{*WFK+RUv%H|~i?Vkb_ZuI9HAZf@X;z1SSffdJv3|JlEYevJSC literal 0 HcmV?d00001 diff --git a/Documentation/mainboard/lenovo/t440p_flash_chip.jpg b/Documentation/mainboard/lenovo/t440p_flash_chip.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e041e8d1527bd11dbd98f766435ea7b463f73ee GIT binary patch literal 82250 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 literal 0 HcmV?d00001 diff --git a/src/mainboard/lenovo/t440p/Kconfig b/src/mainboard/lenovo/t440p/Kconfig new file mode 100644 index 0000000000..bf821f3d0c --- /dev/null +++ b/src/mainboard/lenovo/t440p/Kconfig @@ -0,0 +1,54 @@ +if BOARD_LENOVO_THINKPAD_T440P + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select BOARD_ROMSIZE_KB_12288 + select CPU_INTEL_HASWELL + select EC_LENOVO_H8 + select H8_HAS_PRIMARY_FN_KEYS + select EC_LENOVO_PMH7 + select NO_UART_ON_SUPERIO + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select HAVE_OPTION_TABLE + select HAVE_CMOS_DEFAULT + select MAINBOARD_HAS_LPC_TPM + select MAINBOARD_HAS_TPM1 + select INTEL_GMA_HAVE_VBT + select INTEL_INT15 + select MAINBOARD_HAS_LIBGFXINIT + select NORTHBRIDGE_INTEL_HASWELL + select SERIRQ_CONTINUOUS_MODE + select SOUTHBRIDGE_INTEL_LYNXPOINT + select SYSTEM_TYPE_LAPTOP + select MAINBOARD_USES_IFD_GBE_REGION + +config MAINBOARD_DIR + string + default lenovo/t440p + +config MAINBOARD_PART_NUMBER + string + default "ThinkPad T440p" + +config VGA_BIOS_FILE + string + default "pci8086,0416.rom" + +config VGA_BIOS_ID + string + default "8086,0416" + +config MAX_CPUS + int + default 8 + +config USBDEBUG_HCD_INDEX + int + default 2 + +config DRIVER_LENOVO_SERIALS + bool + default n + +endif diff --git a/src/mainboard/lenovo/t440p/Kconfig.name b/src/mainboard/lenovo/t440p/Kconfig.name new file mode 100644 index 0000000000..e90299d930 --- /dev/null +++ b/src/mainboard/lenovo/t440p/Kconfig.name @@ -0,0 +1,2 @@ +config BOARD_LENOVO_THINKPAD_T440P + bool "ThinkPad T440p" diff --git a/src/mainboard/lenovo/t440p/Makefile.inc b/src/mainboard/lenovo/t440p/Makefile.inc new file mode 100644 index 0000000000..fa6e7af202 --- /dev/null +++ b/src/mainboard/lenovo/t440p/Makefile.inc @@ -0,0 +1,3 @@ +romstage-y += gpio.c +ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads +smm-y += smihandler.c diff --git a/src/mainboard/lenovo/t440p/acpi/ec.asl b/src/mainboard/lenovo/t440p/acpi/ec.asl new file mode 100644 index 0000000000..3ff0ff7cbc --- /dev/null +++ b/src/mainboard/lenovo/t440p/acpi/ec.asl @@ -0,0 +1,17 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Iru Cai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include diff --git a/src/mainboard/lenovo/t440p/acpi/platform.asl b/src/mainboard/lenovo/t440p/acpi/platform.asl new file mode 100644 index 0000000000..db142f0e5b --- /dev/null +++ b/src/mainboard/lenovo/t440p/acpi/platform.asl @@ -0,0 +1,28 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Iru Cai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Method(_WAK,1) +{ + /* ME may not be up yet. */ + Store (0, \_TZ.MEB1) + Store (0, \_TZ.MEB2) + Return(Package(){0,0}) +} + +Method(_PTS,1) +{ + \_SB.PCI0.LPCB.EC.RADI(0) +} diff --git a/src/mainboard/lenovo/t440p/acpi/superio.asl b/src/mainboard/lenovo/t440p/acpi/superio.asl new file mode 100644 index 0000000000..3139e35be5 --- /dev/null +++ b/src/mainboard/lenovo/t440p/acpi/superio.asl @@ -0,0 +1,17 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Iru Cai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include diff --git a/src/mainboard/lenovo/t440p/acpi_tables.c b/src/mainboard/lenovo/t440p/acpi_tables.c new file mode 100644 index 0000000000..6012708b28 --- /dev/null +++ b/src/mainboard/lenovo/t440p/acpi_tables.c @@ -0,0 +1,35 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2008-2009 coresystems GmbH + * Copyright (C) 2014 Vladimir Serbinenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include + +void acpi_create_gnvs(global_nvs_t *gnvs) +{ + /* Disable USB ports in S3 by default */ + gnvs->s3u0 = 0; + gnvs->s3u1 = 0; + + /* Disable USB ports in S5 by default */ + gnvs->s5u0 = 0; + gnvs->s5u1 = 0; + + /* the lid is open by default */ + gnvs->lids = 1; + + gnvs->tcrt = 100; + gnvs->tpsv = 90; +} diff --git a/src/mainboard/lenovo/t440p/board_info.txt b/src/mainboard/lenovo/t440p/board_info.txt new file mode 100644 index 0000000000..46461fe7da --- /dev/null +++ b/src/mainboard/lenovo/t440p/board_info.txt @@ -0,0 +1,7 @@ +Category: laptop +Board URL: https://pcsupport.lenovo.com/us/zh/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t440p +ROM package: SOIC-8 +ROM protocol: SPI +ROM socketed: n +Flashrom support: n +Release year: 2013 diff --git a/src/mainboard/lenovo/t440p/cmos.default b/src/mainboard/lenovo/t440p/cmos.default new file mode 100644 index 0000000000..b104ae145c --- /dev/null +++ b/src/mainboard/lenovo/t440p/cmos.default @@ -0,0 +1,13 @@ +boot_option=Fallback +debug_level=Debug +power_on_after_fail=Disable +nmi=Enable +volume=0x3 +first_battery=Primary +wlan=Enable +fn_ctrl_swap=Disable +f1_to_f12_as_primary=Enable +sticky_fn=Disable +trackpoint=Enable +backlight=Both +usb_always_on=Disable diff --git a/src/mainboard/lenovo/t440p/cmos.layout b/src/mainboard/lenovo/t440p/cmos.layout new file mode 100644 index 0000000000..8c5fb0b14b --- /dev/null +++ b/src/mainboard/lenovo/t440p/cmos.layout @@ -0,0 +1,120 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2007-2008 coresystems GmbH +## Copyright (C) 2014 Vladimir Serbinenko +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; version 2 of the License. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## + +# ----------------------------------------------------------------- +entries + +# ----------------------------------------------------------------- +# Status Register A +# ----------------------------------------------------------------- +# Status Register B +# ----------------------------------------------------------------- +# Status Register C +#96 4 r 0 status_c_rsvd +#100 1 r 0 uf_flag +#101 1 r 0 af_flag +#102 1 r 0 pf_flag +#103 1 r 0 irqf_flag +# ----------------------------------------------------------------- +# Status Register D +#104 7 r 0 status_d_rsvd +#111 1 r 0 valid_cmos_ram +# ----------------------------------------------------------------- +# Diagnostic Status Register +#112 8 r 0 diag_rsvd1 + +# ----------------------------------------------------------------- +0 120 r 0 reserved_memory +#120 264 r 0 unused + +# ----------------------------------------------------------------- +# RTC_BOOT_BYTE (coreboot hardcoded) +384 1 e 4 boot_option +388 4 h 0 reboot_counter +#390 2 r 0 unused? + +# ----------------------------------------------------------------- +# coreboot config options: console +#392 3 r 0 unused +395 4 e 6 debug_level +#399 1 r 0 unused + +#400 8 r 0 reserved for century byte + +# coreboot config options: southbridge +408 1 e 1 nmi +409 2 e 7 power_on_after_fail + +# coreboot config options: EC +411 1 e 8 first_battery +415 1 e 1 wlan +416 1 e 1 trackpoint +417 1 e 1 fn_ctrl_swap +418 1 e 1 sticky_fn +419 2 e 13 usb_always_on +422 2 e 10 backlight +424 1 e 1 f1_to_f12_as_primary + +# coreboot config options: northbridge +#435 2 e 12 hybrid_graphics_mode +#437 3 r 0 unused +440 8 h 0 volume + +# coreboot config options: check sums +984 16 h 0 check_sum + +# ----------------------------------------------------------------- + +enumerations + +#ID value text +1 0 Disable +1 1 Enable +2 0 Enable +2 1 Disable +4 0 Fallback +4 1 Normal +6 0 Emergency +6 1 Alert +6 2 Critical +6 3 Error +6 4 Warning +6 5 Notice +6 6 Info +6 7 Debug +6 8 Spew +7 0 Disable +7 1 Enable +7 2 Keep +8 0 Secondary +8 1 Primary +9 0 AHCI +9 1 Compatible +10 0 Both +10 1 Keyboard only +10 2 Thinklight only +10 3 None +#12 0 Integrated Only +#12 1 Discrete Only +#12 2 Dual Graphics +13 0 Disable +13 1 AC and battery +13 2 AC only + +# ----------------------------------------------------------------- +checksums + +checksum 392 447 984 diff --git a/src/mainboard/lenovo/t440p/data.vbt b/src/mainboard/lenovo/t440p/data.vbt new file mode 100644 index 0000000000000000000000000000000000000000..1b2cd875070422f588f9bfcd103d0a444219b966 GIT binary patch literal 4608 zcmds4U2GIp6h5=FKeMwl)9tjvc7=Ki1h=(6(^6_}YMgDib+>HWZMT%Q!E`BI5nZ6P z#nhjKQEP%fk&Ph;hCmaHQ4&dCj4viuW26a$^g)Ow2K!_P56S~kV}SA8nc3y1q}_-l z;F)}L&OLMPnLFp)d+wbz{VjbY9E@*ji$;k>!=OM-;fHu%NG*}>_+Tj57aVMfcDHUI zCtw-q-s_hDh8bp=P+M2KKC*K>l@9cllW=?!>D)E6J)NovrN&+y-!(#Ftq~I3x;2$f zjcyrF4U>5P(?LRgihRqS?df6CwP(jrYP5+^M`%rI>#Nt*6KvMhuB)k2YU@x|nra)G z);}Tgp|;lU&R8TG?2B}Fk?vj+io}EQcw1*n^cfQC?G8s;B7JQkk#mWPN4IZ# zew+ka%SoN0C{^gQmKZ}Ot-D4?s!1@NCcV^VjP$0)Qll@WhO0%M`j`RE&HykDC}4nb zU#kN*2Z9~KDg+pC00aTb073vFKpRE`AOcVh5CvERPzm4#o5;O@ z+A0`ru*3Nzc)d*6Z7N(q-+<(02t&DQ84Oqk9AF#6Dh(Q+z$6YdffjEWu3GthYhrbXujt2oz zf>@2HLOhO$AmWH;5!(>E5w9ZNLhMHzMjS_cj`$Ms4dOK79O4&*a}QkAZ5m+8kTk~P zg(e5D9o{bo?TDp6V(HzN&GhjW_gLI;lE+QgT`st;pY?&Rb5GI{sOSMh#e^(RVT(r% z&ayG9-G`jUH(|AP-JQf{9bWhD&YuQevnN?y*T2?va3pM5X(p?4sSZ=8x<)KXb4^(i z4$UC!dml)iQ&6ViIIML==#Uu4$V$p{q@i@Pfz2_xxIwOGR=C|mR-fZ{Zy*#w2Nn{R zYo06x%{6V`2=M!Uk%d3mS;-BIg;@P8l7(!sFcif{ z!Rcpp&DCgkHLD(&QRa)izHkF1F3{)n$uvHhEu4YcgpZIUed4uz0l1oT;%&lz^<>!w zoGPqQ8#t@VVTqoUaNB5)4aT`3L=SRRJq5>SJ%R`Km?Fo*0@D&SBLD5^42 zWNJ!3t(lnb@vl`Ahq9XRQ>rpFU8kxuS&c6M4SQKLm_ox|2N=5wN=(L>#V9$=Ek`H` zKneVfR|#Yo0_HV~TaJYdkCcT^Dq1(>i1G!IzbFz(l8MAu zNF*l7LlU2s$On@AvBaO0$PbeItHfWH#EQ#y%{I?yg}B&oN^_$EPRWE#F!&Y5i`-H0 zDDI~VbBU|KS{Z~**p~J%RY0)5tRMlc*bGZ)!(JQ43rV2mc4-d_mo;6T=1QcQqaKCTq>x}={&};uu#!DWYkZg z-;qxwpDXJ>(F3JQd&bIz4Etx5Ck zZmd!hRX1|MLV@7{tD1A^T$HPj)SxKo^%l}z<`}S=A_;kJyAO=nW4poG^)s-E6Xw0+ wCi!Ol-N<-ozlACvg16f-m=XNT-3T%KFRo+`!bP@v8em_J9t@FAivJV+16=+yE&u=k literal 0 HcmV?d00001 diff --git a/src/mainboard/lenovo/t440p/devicetree.cb b/src/mainboard/lenovo/t440p/devicetree.cb new file mode 100644 index 0000000000..7e5e616d03 --- /dev/null +++ b/src/mainboard/lenovo/t440p/devicetree.cb @@ -0,0 +1,113 @@ +chip northbridge/intel/haswell + register "gfx.did" = "{ 0x80000100, 0x80000240, 0x80000410 }" + register "gfx.ndid" = "3" + register "gpu_cpu_backlight" = "0x12ba12ba" + register "gpu_ddi_e_connected" = "1" + register "gpu_dp_b_hotplug" = "4" + register "gpu_dp_c_hotplug" = "4" + register "gpu_dp_d_hotplug" = "4" + register "gpu_panel_port_select" = "0" + register "gpu_panel_power_backlight_off_delay" = "1" + register "gpu_panel_power_backlight_on_delay" = "1" + register "gpu_panel_power_cycle_delay" = "6" + register "gpu_panel_power_down_delay" = "500" + register "gpu_panel_power_up_delay" = "2000" + register "gpu_pch_backlight" = "0x12ba12ba" + device cpu_cluster 0x0 on + chip cpu/intel/haswell + register "c1_acpower" = "1" + register "c1_battery" = "1" + register "c2_acpower" = "3" + register "c2_battery" = "3" + register "c3_acpower" = "5" + register "c3_battery" = "5" + device lapic 0x0 on end + device lapic 0xacac off end + end + end + device domain 0x0 on + subsystemid 0x17aa 0x220e inherit + + device pci 00.0 on end # Host bridge Host bridge + device pci 01.0 on end # PCIe Bridge for discrete graphics + device pci 02.0 on end # Internal graphics VGA controller + device pci 03.0 on end # Mini-HD audio Audio controller + + chip southbridge/intel/lynxpoint # Intel Series 8 Lynx Point PCH + register "gen1_dec" = "0x007c1601" + register "gen2_dec" = "0x000c15e1" + register "gen4_dec" = "0x000c06a1" + register "gpi13_routing" = "2" + register "gpi1_routing" = "2" + register "pirqa_routing" = "0x8b" + register "pirqb_routing" = "0x8a" + register "pirqc_routing" = "0x8a" + register "pirqd_routing" = "0x89" + register "pirqe_routing" = "0x86" + register "pirqf_routing" = "0x80" + register "pirqg_routing" = "0x8b" + register "pirqh_routing" = "0x87" + register "sata_ahci" = "1" + # 0(HDD), 1(M.2), 5(ODD) + register "sata_port_map" = "0x23" + device pci 14.0 on end # xHCI Controller + device pci 16.0 on end # Management Engine Interface 1 + device pci 16.1 off end # Management Engine Interface 2 + device pci 16.2 off end # Management Engine IDE-R + device pci 16.3 off end # Management Engine KT + device pci 19.0 on end # Intel Gigabit Ethernet + device pci 1a.0 on end # USB2 EHCI #2 + device pci 1b.0 on end # High Definition Audio Audio controller + device pci 1c.0 on end # PCIe Port #1, Realtek Card Reader + device pci 1c.1 on # PCIe Port #2, WLAN + smbios_slot_desc "0x14" "1" "M.2 2230" "8" + end + device pci 1c.2 off end # PCIe Port #3 + device pci 1c.3 off end # PCIe Port #4 + device pci 1c.4 off end # PCIe Port #5 + device pci 1c.5 off end # PCIe Port #6 + device pci 1c.6 off end # PCIe Port #7 + device pci 1c.7 off end # PCIe Port #8 + device pci 1d.0 on end # USB2 EHCI #1 + device pci 1f.0 on # LPC bridge PCI-LPC bridge + chip ec/lenovo/pmh7 + register "backlight_enable" = "0x01" + register "dock_event_enable" = "0x01" + device pnp ff.1 on # dummy + end + end + chip ec/lenovo/h8 + register "beepmask0" = "0x00" + register "beepmask1" = "0x86" + register "config0" = "0xa6" + register "config1" = "0x0d" + register "config2" = "0xa8" + register "config3" = "0xc4" + register "event2_enable" = "0xff" + register "event3_enable" = "0xff" + register "event4_enable" = "0xd0" + register "event5_enable" = "0x3c" + register "event7_enable" = "0x01" + register "event8_enable" = "0x7b" + register "event9_enable" = "0xff" + register "eventc_enable" = "0xff" + register "eventd_enable" = "0xff" + register "evente_enable" = "0x9d" + device pnp ff.2 on # dummy + io 0x60 = 0x62 + io 0x62 = 0x66 + io 0x64 = 0x1600 + io 0x66 = 0x1604 + end + end + chip drivers/pc80/tpm + device pnp 0c31.0 on end + end + end + device pci 1f.2 on end # SATA Controller 1 + device pci 1f.3 on end # SMBus + device pci 1f.5 off end # SATA Controller 2 + device pci 1f.6 off end # Thermal + end + end +end diff --git a/src/mainboard/lenovo/t440p/dsdt.asl b/src/mainboard/lenovo/t440p/dsdt.asl new file mode 100644 index 0000000000..3014a57444 --- /dev/null +++ b/src/mainboard/lenovo/t440p/dsdt.asl @@ -0,0 +1,46 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Iru Cai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#define BRIGHTNESS_UP \_SB.PCI0.GFX0.INCB +#define BRIGHTNESS_DOWN \_SB.PCI0.GFX0.DECB +#define ACPI_VIDEO_DEVICE \_SB.PCI0.GFX0 +#define EC_LENOVO_H8_ME_WORKAROUND 1 +#define THINKPAD_EC_GPE 17 + +#include +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, // DSDT revision: ACPI 2.0 and up + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20141018 // OEM revision +) +{ + #include "acpi/platform.asl" + #include + #include + /* global NVS and variables. */ + #include + #include + + Device (\_SB.PCI0) + { + #include + #include + #include + } +} diff --git a/src/mainboard/lenovo/t440p/gma-mainboard.ads b/src/mainboard/lenovo/t440p/gma-mainboard.ads new file mode 100644 index 0000000000..d36cb82e3c --- /dev/null +++ b/src/mainboard/lenovo/t440p/gma-mainboard.ads @@ -0,0 +1,30 @@ +-- +-- This file is part of the coreboot project. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- + +with HW.GFX.GMA; +with HW.GFX.GMA.Display_Probing; + +use HW.GFX.GMA; +use HW.GFX.GMA.Display_Probing; + +private package GMA.Mainboard is + + ports : constant Port_List := + (DP1, -- MiniDP + DP2, -- dock, DP2-1 (DP/HDMI) and DP2-2 (DP/DVI) + Analog, + Internal, + others => Disabled); + +end GMA.Mainboard; diff --git a/src/mainboard/lenovo/t440p/gpio.c b/src/mainboard/lenovo/t440p/gpio.c new file mode 100644 index 0000000000..cdb707ac1a --- /dev/null +++ b/src/mainboard/lenovo/t440p/gpio.c @@ -0,0 +1,224 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2008-2009 coresystems GmbH + * Copyright (C) 2014 Vladimir Serbinenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include + +static const struct pch_gpio_set1 pch_gpio_set1_mode = { + .gpio0 = GPIO_MODE_GPIO, + .gpio1 = GPIO_MODE_GPIO, + .gpio2 = GPIO_MODE_GPIO, + .gpio3 = GPIO_MODE_GPIO, + .gpio4 = GPIO_MODE_GPIO, + .gpio5 = GPIO_MODE_GPIO, + .gpio6 = GPIO_MODE_GPIO, + .gpio7 = GPIO_MODE_GPIO, + .gpio8 = GPIO_MODE_GPIO, + .gpio9 = GPIO_MODE_NATIVE, + .gpio10 = GPIO_MODE_GPIO, + .gpio11 = GPIO_MODE_GPIO, + .gpio12 = GPIO_MODE_NATIVE, + .gpio13 = GPIO_MODE_GPIO, + .gpio14 = GPIO_MODE_NATIVE, + .gpio15 = GPIO_MODE_GPIO, + .gpio16 = GPIO_MODE_NATIVE, + .gpio17 = GPIO_MODE_GPIO, + .gpio18 = GPIO_MODE_NATIVE, + .gpio19 = GPIO_MODE_NATIVE, + .gpio20 = GPIO_MODE_NATIVE, + .gpio21 = GPIO_MODE_GPIO, + .gpio22 = GPIO_MODE_GPIO, + .gpio23 = GPIO_MODE_NATIVE, + .gpio24 = GPIO_MODE_GPIO, + .gpio25 = GPIO_MODE_NATIVE, + .gpio26 = GPIO_MODE_NATIVE, + .gpio27 = GPIO_MODE_GPIO, + .gpio28 = GPIO_MODE_GPIO, + .gpio29 = GPIO_MODE_NATIVE, + .gpio30 = GPIO_MODE_NATIVE, + .gpio31 = GPIO_MODE_GPIO, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_direction = { + .gpio0 = GPIO_DIR_INPUT, + .gpio1 = GPIO_DIR_INPUT, + .gpio2 = GPIO_DIR_INPUT, + .gpio3 = GPIO_DIR_OUTPUT, + .gpio4 = GPIO_DIR_OUTPUT, + .gpio5 = GPIO_DIR_INPUT, + .gpio6 = GPIO_DIR_INPUT, + .gpio7 = GPIO_DIR_OUTPUT, + .gpio8 = GPIO_DIR_OUTPUT, + .gpio10 = GPIO_DIR_OUTPUT, + .gpio11 = GPIO_DIR_INPUT, + .gpio13 = GPIO_DIR_INPUT, + .gpio15 = GPIO_DIR_OUTPUT, + .gpio17 = GPIO_DIR_INPUT, + .gpio21 = GPIO_DIR_INPUT, + .gpio22 = GPIO_DIR_OUTPUT, + .gpio24 = GPIO_DIR_OUTPUT, + .gpio27 = GPIO_DIR_INPUT, + .gpio28 = GPIO_DIR_OUTPUT, + .gpio31 = GPIO_DIR_INPUT, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_level = { + .gpio3 = GPIO_LEVEL_LOW, + .gpio4 = GPIO_LEVEL_LOW, + .gpio7 = GPIO_LEVEL_LOW, + .gpio8 = GPIO_LEVEL_HIGH, + .gpio10 = GPIO_LEVEL_HIGH, + .gpio15 = GPIO_LEVEL_LOW, + .gpio22 = GPIO_LEVEL_LOW, + .gpio24 = GPIO_LEVEL_HIGH, + .gpio28 = GPIO_LEVEL_LOW, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_reset = { + .gpio24 = GPIO_RESET_RSMRST, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_invert = { + .gpio0 = GPIO_INVERT, + .gpio1 = GPIO_INVERT, + .gpio11 = GPIO_INVERT, + .gpio13 = GPIO_INVERT, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_blink = { +}; + +static const struct pch_gpio_set2 pch_gpio_set2_mode = { + .gpio32 = GPIO_MODE_NATIVE, + .gpio33 = GPIO_MODE_GPIO, + .gpio34 = GPIO_MODE_GPIO, + .gpio35 = GPIO_MODE_GPIO, + .gpio36 = GPIO_MODE_GPIO, + .gpio37 = GPIO_MODE_GPIO, + .gpio38 = GPIO_MODE_GPIO, + .gpio39 = GPIO_MODE_GPIO, + .gpio40 = GPIO_MODE_NATIVE, + .gpio41 = GPIO_MODE_NATIVE, + .gpio42 = GPIO_MODE_NATIVE, + .gpio43 = GPIO_MODE_GPIO, + .gpio44 = GPIO_MODE_NATIVE, + .gpio45 = GPIO_MODE_NATIVE, + .gpio46 = GPIO_MODE_NATIVE, + .gpio47 = GPIO_MODE_NATIVE, + .gpio48 = GPIO_MODE_GPIO, + .gpio49 = GPIO_MODE_NATIVE, + .gpio50 = GPIO_MODE_GPIO, + .gpio51 = GPIO_MODE_GPIO, + .gpio52 = GPIO_MODE_GPIO, + .gpio53 = GPIO_MODE_GPIO, + .gpio54 = GPIO_MODE_GPIO, + .gpio55 = GPIO_MODE_GPIO, + .gpio56 = GPIO_MODE_NATIVE, + .gpio57 = GPIO_MODE_GPIO, + .gpio58 = GPIO_MODE_NATIVE, + .gpio59 = GPIO_MODE_NATIVE, + .gpio60 = GPIO_MODE_NATIVE, + .gpio61 = GPIO_MODE_NATIVE, + .gpio62 = GPIO_MODE_NATIVE, + .gpio63 = GPIO_MODE_NATIVE, +}; + +static const struct pch_gpio_set2 pch_gpio_set2_direction = { + .gpio33 = GPIO_DIR_OUTPUT, + .gpio34 = GPIO_DIR_INPUT, + .gpio35 = GPIO_DIR_OUTPUT, + .gpio36 = GPIO_DIR_INPUT, + .gpio37 = GPIO_DIR_INPUT, + .gpio38 = GPIO_DIR_INPUT, + .gpio39 = GPIO_DIR_INPUT, + .gpio43 = GPIO_DIR_OUTPUT, + .gpio48 = GPIO_DIR_INPUT, + .gpio50 = GPIO_DIR_INPUT, + .gpio51 = GPIO_DIR_OUTPUT, + .gpio52 = GPIO_DIR_INPUT, + .gpio53 = GPIO_DIR_OUTPUT, + .gpio54 = GPIO_DIR_OUTPUT, + .gpio55 = GPIO_DIR_OUTPUT, + .gpio57 = GPIO_DIR_INPUT, +}; + +static const struct pch_gpio_set2 pch_gpio_set2_level = { + .gpio33 = GPIO_LEVEL_HIGH, + .gpio35 = GPIO_LEVEL_LOW, + .gpio43 = GPIO_LEVEL_HIGH, + .gpio51 = GPIO_LEVEL_HIGH, + .gpio53 = GPIO_LEVEL_HIGH, + .gpio54 = GPIO_LEVEL_LOW, + .gpio55 = GPIO_LEVEL_HIGH, +}; + +static const struct pch_gpio_set2 pch_gpio_set2_reset = { +}; + +static const struct pch_gpio_set3 pch_gpio_set3_mode = { + .gpio64 = GPIO_MODE_GPIO, + .gpio65 = GPIO_MODE_GPIO, + .gpio66 = GPIO_MODE_GPIO, + .gpio67 = GPIO_MODE_GPIO, + .gpio68 = GPIO_MODE_GPIO, + .gpio69 = GPIO_MODE_GPIO, + .gpio70 = GPIO_MODE_GPIO, + .gpio71 = GPIO_MODE_GPIO, + .gpio72 = GPIO_MODE_NATIVE, + .gpio73 = GPIO_MODE_NATIVE, + .gpio74 = GPIO_MODE_NATIVE, + .gpio75 = GPIO_MODE_NATIVE, +}; + +static const struct pch_gpio_set3 pch_gpio_set3_direction = { + .gpio64 = GPIO_DIR_INPUT, + .gpio65 = GPIO_DIR_INPUT, + .gpio66 = GPIO_DIR_INPUT, + .gpio67 = GPIO_DIR_INPUT, + .gpio68 = GPIO_DIR_INPUT, + .gpio69 = GPIO_DIR_INPUT, + .gpio70 = GPIO_DIR_INPUT, + .gpio71 = GPIO_DIR_INPUT, +}; + +static const struct pch_gpio_set3 pch_gpio_set3_level = { +}; + +static const struct pch_gpio_set3 pch_gpio_set3_reset = { +}; + +const struct pch_gpio_map mainboard_gpio_map = { + .set1 = { + .mode = &pch_gpio_set1_mode, + .direction = &pch_gpio_set1_direction, + .level = &pch_gpio_set1_level, + .blink = &pch_gpio_set1_blink, + .invert = &pch_gpio_set1_invert, + .reset = &pch_gpio_set1_reset, + }, + .set2 = { + .mode = &pch_gpio_set2_mode, + .direction = &pch_gpio_set2_direction, + .level = &pch_gpio_set2_level, + .reset = &pch_gpio_set2_reset, + }, + .set3 = { + .mode = &pch_gpio_set3_mode, + .direction = &pch_gpio_set3_direction, + .level = &pch_gpio_set3_level, + .reset = &pch_gpio_set3_reset, + }, +}; diff --git a/src/mainboard/lenovo/t440p/hda_verb.c b/src/mainboard/lenovo/t440p/hda_verb.c new file mode 100644 index 0000000000..9527312340 --- /dev/null +++ b/src/mainboard/lenovo/t440p/hda_verb.c @@ -0,0 +1,40 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2008-2009 coresystems GmbH + * Copyright (C) 2014 Vladimir Serbinenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include + +const u32 cim_verb_data[] = { + 0x10ec0292, /* Codec Vendor / Device ID: Realtek */ + 0x17aa220e, /* Subsystem ID */ + 12, /* Number of 4 dword sets */ + AZALIA_SUBVENDOR(0x0, 0x17aa220e), + AZALIA_PIN_CFG(0x0, 0x12, 0x90a60130), + AZALIA_PIN_CFG(0x0, 0x13, 0x40000000), + AZALIA_PIN_CFG(0x0, 0x14, 0x90170110), + AZALIA_PIN_CFG(0x0, 0x15, 0x0321101f), + AZALIA_PIN_CFG(0x0, 0x16, 0x411111f0), + AZALIA_PIN_CFG(0x0, 0x18, 0x411111f0), + AZALIA_PIN_CFG(0x0, 0x19, 0x411111f0), + AZALIA_PIN_CFG(0x0, 0x1a, 0x03a11020), + AZALIA_PIN_CFG(0x0, 0x1b, 0x411111f0), + AZALIA_PIN_CFG(0x0, 0x1d, 0x40738105), + AZALIA_PIN_CFG(0x0, 0x1e, 0x411111f0), +}; + +const u32 pc_beep_verbs[0] = {}; + +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/lenovo/t440p/mainboard.c b/src/mainboard/lenovo/t440p/mainboard.c new file mode 100644 index 0000000000..dcfd5038fd --- /dev/null +++ b/src/mainboard/lenovo/t440p/mainboard.c @@ -0,0 +1,34 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 Iru Cai + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include + +static void mainboard_enable(struct device *dev) +{ + install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_EDP, + GMA_INT15_PANEL_FIT_DEFAULT, + GMA_INT15_BOOT_DISPLAY_DEFAULT, 0); +} + +void h8_mainboard_init_dock(void) +{ +} + +struct chip_operations mainboard_ops = { + .enable_dev = mainboard_enable, +}; diff --git a/src/mainboard/lenovo/t440p/romstage.c b/src/mainboard/lenovo/t440p/romstage.c new file mode 100644 index 0000000000..c8c630bfde --- /dev/null +++ b/src/mainboard/lenovo/t440p/romstage.c @@ -0,0 +1,103 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2008-2009 coresystems GmbH + * Copyright (C) 2014 Vladimir Serbinenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include + +static const struct rcba_config_instruction rcba_config[] = { + RCBA_SET_REG_16(D31IR, DIR_ROUTE(PIRQA, PIRQD, PIRQC, PIRQA)), + RCBA_SET_REG_16(D29IR, DIR_ROUTE(PIRQH, PIRQD, PIRQA, PIRQC)), + RCBA_SET_REG_16(D28IR, DIR_ROUTE(PIRQA, PIRQA, PIRQA, PIRQA)), + RCBA_SET_REG_16(D27IR, DIR_ROUTE(PIRQG, PIRQB, PIRQC, PIRQD)), + RCBA_SET_REG_16(D26IR, DIR_ROUTE(PIRQA, PIRQF, PIRQC, PIRQD)), + RCBA_SET_REG_16(D25IR, DIR_ROUTE(PIRQE, PIRQF, PIRQG, PIRQH)), + RCBA_SET_REG_16(D22IR, DIR_ROUTE(PIRQA, PIRQB, PIRQC, PIRQD)), + RCBA_SET_REG_16(D20IR, DIR_ROUTE(PIRQA, PIRQB, PIRQC, PIRQD)), + + RCBA_RMW_REG_32(FD, ~0, PCH_DISABLE_ALWAYS), + + RCBA_END_CONFIG, +}; + +void mainboard_config_superio(void) +{ +} + +void mainboard_romstage_entry(void) +{ + struct pei_data pei_data = { + .pei_version = PEI_VERSION, + .mchbar = (uintptr_t)DEFAULT_MCHBAR, + .dmibar = (uintptr_t)DEFAULT_DMIBAR, + .epbar = DEFAULT_EPBAR, + .pciexbar = CONFIG_MMCONF_BASE_ADDRESS, + .smbusbar = SMBUS_IO_BASE, + .wdbbar = 0x4000000, + .wdbsize = 0x1000, + .hpet_address = HPET_ADDR, + .rcba = (uintptr_t)DEFAULT_RCBA, + .pmbase = DEFAULT_PMBASE, + .gpiobase = DEFAULT_GPIOBASE, + .temp_mmio_base = 0xfed08000, + .system_type = 0, /* mobile */ + .tseg_size = CONFIG_SMM_TSEG_SIZE, + .spd_addresses = { 0xa0, 0, 0xa2, 0 }, + .ec_present = 1, + .gbe_enable = 1, + .dimm_channel0_disabled = 2, + .dimm_channel1_disabled = 2, + .max_ddr3_freq = 1600, + .usb2_ports = { + /* Length, Enable, OCn#, Location */ + { 0x0040, 1, 0, USB_PORT_BACK_PANEL }, /* USB3 */ + { 0x0040, 1, 0, USB_PORT_BACK_PANEL }, /* USB3 */ + { 0x0110, 1, 1, USB_PORT_BACK_PANEL }, /* USB2 charge */ + { 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, + { 0x0080, 1, USB_OC_PIN_SKIP, USB_PORT_DOCK }, + { 0x0080, 1, 2, USB_PORT_BACK_PANEL }, /* USB2 */ + { 0x0040, 1, 3, USB_PORT_BACK_PANEL }, + { 0x0040, 1, 3, USB_PORT_BACK_PANEL }, + { 0x0040, 1, 4, USB_PORT_BACK_PANEL }, + { 0x0110, 1, 4, USB_PORT_BACK_PANEL }, /* WWAN */ + { 0x0040, 1, 5, USB_PORT_INTERNAL }, /* WLAN */ + { 0x0040, 1, 5, USB_PORT_BACK_PANEL }, /* webcam */ + { 0x0080, 1, 6, USB_PORT_BACK_PANEL }, + { 0x0040, 1, 6, USB_PORT_BACK_PANEL }, + }, + .usb3_ports = { + { 1, 0 }, + { 1, 0 }, + { 1, USB_OC_PIN_SKIP }, + { 1, USB_OC_PIN_SKIP }, + { 1, 1 }, + { 1, 1 }, /* WWAN */ + }, + }; + + struct romstage_params romstage_params = { + .pei_data = &pei_data, + .gpio_map = &mainboard_gpio_map, + .rcba_config = rcba_config, + }; + + romstage_common(&romstage_params); +} diff --git a/src/mainboard/lenovo/t440p/smihandler.c b/src/mainboard/lenovo/t440p/smihandler.c new file mode 100644 index 0000000000..9f5044a3d5 --- /dev/null +++ b/src/mainboard/lenovo/t440p/smihandler.c @@ -0,0 +1,100 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2008-2009 coresystems GmbH + * Copyright (C) 2014 Vladimir Serbinenko + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define GPE_EC_SCI 1 +#define GPE_EC_WAKE 13 + +static void mainboard_smi_handle_ec_sci(void) +{ + u8 status = inb(EC_SC); + u8 event; + + if (!(status & EC_SCI_EVT)) + return; + + event = ec_query(); + printk(BIOS_DEBUG, "EC event %02x\n", event); +} + +void mainboard_smi_gpi(u32 gpi_sts) +{ + if (gpi_sts & (1 << GPE_EC_SCI)) + mainboard_smi_handle_ec_sci(); +} + +/* lynxpoint doesn't have gpi_route_interrupt, so add it */ +#define GPI_DISABLE 0x00 +#define GPI_IS_SMI 0x01 +#define GPI_IS_SCI 0x02 +#define GPI_IS_NMI 0x03 + +static void gpi_route_interrupt(u8 gpi, u8 mode) +{ + u32 gpi_rout; + + gpi_rout = pci_read_config32(PCI_DEV(0, 0x1f, 0), GPIO_ROUT); + gpi_rout &= ~(3 << (2 * gpi)); + gpi_rout |= ((mode & 3) << (2 * gpi)); + pci_write_config32(PCI_DEV(0, 0x1f, 0), GPIO_ROUT, gpi_rout); +} + +int mainboard_smi_apmc(u8 data) +{ + switch (data) { + case APM_CNT_ACPI_ENABLE: + /* use 0x1600/0x1604 to prevent races with userspace */ + ec_set_ports(0x1604, 0x1600); + /* route EC_SCI to SCI */ + gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SCI); + /* discard all events, and enable attention */ + ec_write(0x80, 0x01); + break; + case APM_CNT_ACPI_DISABLE: + /* we have to use port 0x62/0x66, as 0x1600/0x1604 doesn't + provide a EC query function */ + ec_set_ports(0x66, 0x62); + /* route EC_SCI to SMI */ + gpi_route_interrupt(GPE_EC_SCI, GPI_IS_SMI); + /* discard all events, and enable attention */ + ec_write(0x80, 0x01); + break; + default: + break; + } + return 0; +} + +void mainboard_smi_sleep(u8 slp_typ) +{ + if (slp_typ == 3) { + u8 ec_wake = ec_read(0x32); + /* If EC wake events are enabled, + * enable wake on EC WAKE GPE. */ + if (ec_wake & 0x14) { + /* Redirect EC WAKE GPE to SCI. */ + gpi_route_interrupt(GPE_EC_WAKE, GPI_IS_SCI); + } + } +}