From eb2fc04c97c41290678161ca95a9529c5d388189 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Sun, 19 Aug 2018 23:52:45 +0200 Subject: [PATCH] mb/foxconn/d41s: Add mainboard This supports the Foxconn d41s, d42s, d51s, d52s. The following is tested (SeaBIOS 1.12 + Linux 4.9) and works: - COM1 - S3 resume (with SeaBIOS needs sercon disabled) - Native graphic init on VGA output - SATA - USB - Ethernet - PS2 keyboard The base for this mainboard port was the Intel D510MO port. Change-Id: Ie4ec9cbf70adcdddbc2e5d805e4806825c320072 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/28227 Reviewed-by: Felix Held Reviewed-by: Angel Pons Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- Documentation/mainboard/foxconn/d41s.md | 75 ++++++++ .../mainboard/foxconn/d41s_flash.jpg | Bin 0 -> 129035 bytes Documentation/mainboard/index.md | 4 + src/mainboard/foxconn/d41s/Kconfig | 46 +++++ src/mainboard/foxconn/d41s/Kconfig.name | 2 + src/mainboard/foxconn/d41s/Makefile.inc | 2 + src/mainboard/foxconn/d41s/acpi/ec.asl | 1 + .../foxconn/d41s/acpi/ich7_pci_irqs.asl | 36 ++++ src/mainboard/foxconn/d41s/acpi/platform.asl | 28 +++ src/mainboard/foxconn/d41s/acpi/superio.asl | 31 ++++ src/mainboard/foxconn/d41s/acpi_tables.c | 21 +++ src/mainboard/foxconn/d41s/board_info.txt | 6 + src/mainboard/foxconn/d41s/cmos.default | 5 + src/mainboard/foxconn/d41s/cmos.layout | 90 ++++++++++ src/mainboard/foxconn/d41s/cstates.c | 22 +++ src/mainboard/foxconn/d41s/data.vbt | Bin 0 -> 3730 bytes src/mainboard/foxconn/d41s/devicetree.cb | 109 ++++++++++++ src/mainboard/foxconn/d41s/dsdt.asl | 41 +++++ src/mainboard/foxconn/d41s/gpio.c | 163 ++++++++++++++++++ src/mainboard/foxconn/d41s/hda_verb.c | 39 +++++ src/mainboard/foxconn/d41s/mainboard.c | 27 +++ src/mainboard/foxconn/d41s/romstage.c | 147 ++++++++++++++++ 22 files changed, 895 insertions(+) create mode 100644 Documentation/mainboard/foxconn/d41s.md create mode 100644 Documentation/mainboard/foxconn/d41s_flash.jpg create mode 100644 src/mainboard/foxconn/d41s/Kconfig create mode 100644 src/mainboard/foxconn/d41s/Kconfig.name create mode 100644 src/mainboard/foxconn/d41s/Makefile.inc create mode 100644 src/mainboard/foxconn/d41s/acpi/ec.asl create mode 100644 src/mainboard/foxconn/d41s/acpi/ich7_pci_irqs.asl create mode 100644 src/mainboard/foxconn/d41s/acpi/platform.asl create mode 100644 src/mainboard/foxconn/d41s/acpi/superio.asl create mode 100644 src/mainboard/foxconn/d41s/acpi_tables.c create mode 100644 src/mainboard/foxconn/d41s/board_info.txt create mode 100644 src/mainboard/foxconn/d41s/cmos.default create mode 100644 src/mainboard/foxconn/d41s/cmos.layout create mode 100644 src/mainboard/foxconn/d41s/cstates.c create mode 100644 src/mainboard/foxconn/d41s/data.vbt create mode 100644 src/mainboard/foxconn/d41s/devicetree.cb create mode 100644 src/mainboard/foxconn/d41s/dsdt.asl create mode 100644 src/mainboard/foxconn/d41s/gpio.c create mode 100644 src/mainboard/foxconn/d41s/hda_verb.c create mode 100644 src/mainboard/foxconn/d41s/mainboard.c create mode 100644 src/mainboard/foxconn/d41s/romstage.c diff --git a/Documentation/mainboard/foxconn/d41s.md b/Documentation/mainboard/foxconn/d41s.md new file mode 100644 index 0000000000..fe14057d34 --- /dev/null +++ b/Documentation/mainboard/foxconn/d41s.md @@ -0,0 +1,75 @@ +# Foxconn D41S + +This page describes how to run coreboot on the [FOXCONN D41S] desktop from [FOXCONN]. +The D42S, D51S, D52S are compatible boards with the difference being the CPU. + +## Building coreboot + +The default options for this board should result in a fully working image: + + # echo "CONFIG_VENDOR_FOXCONN=y" > .config + # echo "CONFIG_BOARD_FOXCONN_D41S=y" >> .config + # make olddefconfig && make + + +## Flashing coreboot + +```eval_rst ++---------------------+--------+ +| Type | Value | ++=====================+========+ +| Socketed flash | yes | ++---------------------+--------+ +| Model | W25X80 | ++---------------------+--------+ +| Size | 1 MiB | ++---------------------+--------+ +| In circuit flashing | yes | ++---------------------+--------+ +| Package | DIP-8 | ++---------------------+--------+ +| Write protection | No | ++---------------------+--------+ +| Dual BIOS feature | No | ++---------------------+--------+ +| Internal flashing | yes | ++---------------------+--------+ +``` + +### Internal programming + +The SPI flash can be accessed using [flashrom]. + +### External programming + +The easiest to flash externally is to simply extract the SPI flash from its socket. +To do this gently take the SPI flash out of its socket and flash with your programmer. + +**NOTE: Don't forget to set the WP# AND HOLD# to 3V.** + +**NOTE2: Make sure to reinsert it in the right direction afterward** + +**Location and orientation of the SPI flash socket** +![][d41s_flash] + +[d41s_flash]: d41s_flash.jpg + +## Technology + +```eval_rst ++------------------+------------------+ +| Northbridge | Intel Pinevew | ++------------------+------------------+ +| Southbridge | Intel NM10 | ++------------------+------------------+ +| CPU | model_106cx | ++------------------+------------------+ +| SuperIO | ITE IT8721F | ++------------------+------------------+ +| clockgen (CK505) | ICS 9LPRS525AGLF | ++------------------+------------------+ +``` + +[FOXCONN D41S]: http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us0000481 +[FOXCONN]: http://www.foxconnchannel.com +[Flashrom]: https://flashrom.org/Flashrom diff --git a/Documentation/mainboard/foxconn/d41s_flash.jpg b/Documentation/mainboard/foxconn/d41s_flash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79f3b32e9c5699bc19e858fa4789d2e1352b677c GIT binary patch literal 129035 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
~CW_nlO`vX;;)76PZ9Xdj){gPf%%}A*P zt>~F&#vUQHG6acKY0F{YwX-_}Fr9DX``2M`UC#go-$4Ot5T4$+ZCPQC)OQ=Nj6TS+ zUh7dLw5i4d{__B4!<-a|0{OXGR=^OS>JluF7xW5pCpuQ1p)31R8e4Hp$Z4$`HPI;^ zvpC|0TYc``CSuQiUsd9d-4S5lJj56ak467_@lq<5Q$)JK% zb2n?47%Tk{@MsnfnYt7$b3l9=;iLZtaQvXR$gxmnU0rl)TB&tA$HC(K8{xBovJOOj z4pqUzB;|gtQAH1J3C(F7ZsP^7=Bl|iX=`hBG7jbxSbYWhUB|5E%09?0$o={=ds#J! z6D1)>W2`|8=8AnehP|0&dt_rYb8u9`{zPT3MSV2qvrjE}1>k0b()m=Kq#LsK)M(86 z+?S}5{^|idt()F|Ph$e5=G)P>cx~&&?uUMuv}qoB1`%+e`!Dym0Gld{_QxeCqik|y zxGRs|&2ch8nPuxK`nK<*DHPQsE6Rg6L;r9 z<$eyENy!$B_HL-SZM3ubo4?G{9Dvt@43`qeji-M%+Ka+wl;!LC;BvO@Lw%&UrIU3) z^IT&(tMz!i6;XFYwf#M3jx-1V*845>XLUtdW7{q%V6{G*(XN9CV>U=i>*VI#%k|X7 zFm#5l+HW9UuhC;3uV#YkiAkdHLqOU8cy9Wy{hpe>Neusdc-{&qo?wOCUvqcSdcZ!c;9w+O1E4m_cv!x+qvUZSU?UVRM0+2;*uqr4rW zr*RETNNyfTtM;{`V8B}q{U(+EEd)LPELs1^fHm#YB)1kduJ5FKb#yAsY0zo^&*pyH zLDgGIM7@%=IhhX<48;%-ymlFToYHZ*%B44R!@{P6zE_+9;KT@Sk+>?*R;itZzy>s5 zz<{DI4ryoD5CCL>vpc^lg`oQOyPKZciw^pJkx6gDtE=VWh)jrn?tAw~e#SGd-cm$h z5x<}Qbd!3R8vsfl%vUN&&iC^H#0~vI#0Dl{I8Yrtv369PDXWr@3o49ua46Pa^FS&> z-bjQqE$s8HYg+%hN>r0cQ`eC*N;2xv6U$a8!=P=Y-J@wNF@zH@S(T>i%IU_5YY;4d z+Vfq@x+rm^D1Q6N4NiY9)FfrQui)fJlTv{AeZF=^HyB1iv6T$ci%(>gFR2;O#>i0E zt87PZM#QwB!=}hPryx3~|BL8%q*O>- zHxWzU_Lvk(O?HTn=3yKS_BPD`esKFibeFd9ieShK3E_2K=_ApX*>sg*oMUc|>F7!*)K#oWb?QD@jLGb94h~-yhTopYFlP z#3sEQ!-$lGP19s-=PFDuFFk7}_tr-|gyPw7=b<1VVoLFfk6ou>q&*w*JWUYfo_uSk z9`b(LY%7Y_2l-d?$!{KXohMA)POLb?RoBh*{=92`LmF_5ri|7td+;T1N1>1~vXnyi*KIZwp9B+kGjVY;tFUDh1}o^k>v z9|uO+O9w``>#b8BCS&1A65!i8M^=zhY!wl?jpc?Xa@3oZe%KaTn-TK3Et>OOA=h3w zyv)@C`9^d!jdLOxPmK$kJQSL8Lh>qsw0yba+B+D(As!!XqTSbNTjqW){t;uY;AlWe zdYu$#HF3F6NL!*0E9T4C()1B|qR+LH6gwFf#}lHt?`;3A_|V964+0jEy=?cKLREunR-$3yFM3(bn2zRv-zY0=f{s3 z=G8@h{%(_@$7%n7Ge@!wSz}W%MpOOnGRt3pL{{~`?%Ja@Ci#x$?d>f<*1DT* z|9hhEL|uqRLwYXcZ7wl5S;LP?D_ts~G$$$IPL@#(ZaA#3#7sOLcemmIBZvd@^B`Fs zoEIy2#-j}Q>bq}{**}pRQK(d77gwZp?BJC1nTJX_B7=0t9-iiTK$&|!`?`CAQ_;}s zMuvZ9uS9b-c1{4wdK)cXWYCWfYnc^Q5@lY~pAe7jIOGnaf@d$oZtk}KPA2+lTynDC zu-@(BU=KoR^?RlmRX%RT403Bu#4nQ5he}Apm!by(0<;r~n!iwLLAZc)(qQibukOC_ zv}?2)1oo2isq&uUTb1cwm+WdNw@=Hh4>H_C8##v>@Sorm`YT2S(CU$(BVJCFA2$B=N8IK1>ez8DcdmgYK|t!v|F8OdF-#|E*gx38@GaYyZPTOTpIs$LF5l<3&71%ov4s;-aV+T=hqbx=toygr%Im zL?oX2IM((ENuPvD-unb9U(S-4xOg>O$>%dhU}pHr_;Rg4XRbpfyv(oDnK)NXx)JPa zujFVnwc`SnC#Qx)76^!G1%`V8_YaP*K&yMl3ttzI^$M_TgN!3zkp&DghqQ7 z>GHRqWbnn>LiB zCP!3qfA;J7MH0*Iz}Z;qTM@qKhuO48{6nun9&6uhoL!G_ z-x)^Dfvd}hTPElL!nk-D)*m#c3q>7MSXohI?k+Ns5o-Apv_D0IsxN zQr6p204{-w7l>(eGW&JvledRKa{0$Aq6n;b1OVft4^e_uUfMptT2_{wy!7{j9D8|H zR)lxk9O`a`}fs~PnZ{t2}5 zwbnvT?Fe*_&NFD)LpP1F^^*?q^d$?9`wEC%$(Hh1OLzpjUi3ZDq95|;6=g+3$A_~f z>5nBvafu3w|Ec=0d>eNoS{Ulaw{8rMoU<*Yp3;Y>`FyNewlVFY6+@5-%vCjKWHY35 z@wWIqPxEd>(`i%~QS&nTC82C4L+NgAL}?H|bg3SgH?0BBOeSu=wR_6W(ENMft*erP zFo~ng%wj@UKlM?Pz3XTZvvz7)zVfcJ+XbhHbj3Dro1EGqv=6nZ3BY60^Wk&Ky9xa? zHZbN!+(8l;OuTG*LRIT)^6K@<7wBq^EACJw2HLk*QVjz++gT|$h(4$vX}Gz6`CF6T zZ~4G}H;-y=|K7_#J6hI}E4oDTHsPbxF{5;T^Kgc;NoaAK)YespfkqAgX_W`dnFClb zgQ2(ADP;6&CGzrm#y2tUdc-`FO@j|g&!EO{1e86Aj8OYEBygdaoWuSy(7r6|nCjy8 zAa^a_$Nq2HtMAKKRjrDDGH?yV4AmO8Z>(;zvg`!|8*l7=4T=m3#N?>224ALr~BXRomA>6=Y@8 z*P6$MQ^Wc`3-T>mC+`e*hvqL#5RLSskyivp#?z}XBz%lhRaKikU@`yZV^`Nu#)fDw zT)j_lSbBHH;K9HdD+r;p(Wc#$$5_wik>Dd|{OVBRipTK6RA7T;h+xax4C~BVhv`~B zw*)y?{pGG|f>JMK2Q1vmq zX)yYf=*6;d5>fieO5|fBtq4ppj2#`rS!hfCu$L)(F$MSD?;2PLw?i=FZ?Y zaD54t%BdDbWBmGowXAo$-`eGc+Kfbfytt<)76_ajmU1x6LX3FrT)Xbe@Y@z0ZDghCk!c{Gpk$ zsIVgby{Ax`QS(oUFezh)@v{5#L03>F_Hsa5gnkjXo_qDW?UdaHz1 zC$yb$sKs7%d>P18_c=~FUkRO~=y_-yu6{KR2Bk2RPQ3BV<$0E+L})ZvlxJLCMdakf zj>@62rp0}z3JaM6GCVUN*7odG&pmVg_8X}6hsFrPkKodNWu#Yxxa@WQ8Vlmq*QjnH zQzqk8>|SECda`1$x5CsS&;{xjSE4(qhMy3iLay5-%whzTI6F4zh*x}56@^f7Z(U6K zQQ)VN5DRVFl;hhkm7;CshHdFQsbl=&%=EZrOfBl}xtd-ifrW-R6DHy=CYri{Bn$v- z#>B5A)vnJmki|50Pk4kHF<*cnpFOnw9fPqbEX+jLIK+1~`6G4Hvv|5rhn*kG6;FM} zMc}OrMfg)3tw2e|yD}f;)jBOqT|ha}AHqXFE3o9@IeO7$XnJ8^DiIDbmZr2=7@D7W zWO$9vvZc_-J{&hDj(1Cjq5vf&%YD&Sm8w{R%u*Q@*qb==6(P?94u0}#%B$Z`jDEGu zW>dJEi3gs~CE4WzLzc82ffSFyUM?(a#V-`!gue;jNDQ_y!xEiNIIuAawoaBdKp~B% z_{E?#0?5_KBDzg1i8nA%aLzj`FHOjx63bYzTS0CeT5sw#qbXXbLT+nl1ca~0)X-pm zF0PSfa32ycGZF^a{$d-w7WbKT%t{L_kTQ68%G{-+R%`Ia$ycQ3shY3&D&D{As(-eF zxR{>@Ey|F0pc;Q#9$$#0{dlOnAOZapm}VPGmmPY5rS00i}v#d0Ux&aWsaD#V0Q^GcxN=6P2WhIIVu-6J* zt1!A|9pu$unC4ULRnLbqg|BY!cg>vElpljg->%be@FoR;ieGdUm5D4cRM7sOlQ4=f zVI&fI2z0f}Pp}&w>70EHXntyYz+);)CEg*dA)=Cm$Kv zX{?cTP}H#E8`)$a+KwX@+`Cxd1eIL#CyX2!@@m)mCZ9zJ@z6V>8)?)B$#gz;cqrKW z@}}U1E25+WLKqw!556Vt$LiB^L)l|=l!KELAW}OA@JgeSgT0n32P{j2CYcldF~1~q z5p}7~8*BGuo=!iF?T66fiI_?|8o?Uf&l@z#C&06J$rjW9-VD8p&Ux!2rGAuDGHW?4lT zc_9&cLRJMg%{S_E_o3jhKWkiiF6<21H?+Tv&mOKU1ENTi*h<}c%&U2F-4u_is6D!@ z{eQG&Em0|v-E=ReDW9G@*y7>!qf$q1>^)vFU+S2bgC+)1%cRW^j|Baq5ardMeVJp0 zky*s(A;^8a+E2L}bY}Y$?w61Ovg{xe!mF}VVXRwfF&A`t$f2pmF|Cu%YeFsE&XKhp z;lIGzhHqH@l_{sw5JcrkgpaY4ttIjF&0J4Ac-80OtVS)=&R*#QSYhk^fr)l)XJ!G3|vh^hKVa#D2{04a@uBwc*|2v z9_IGITkgZk=oe;FE{D&jmcE1CuKX|9)N6*XInDP80Ni&i+t6o^m+t=niuQN+Jct)0 z^D^?ngFM?XlBhTt-v@`_ob_s*>Up_KLm?^eA2_J%Qk@uLASi!1Nm&RH}pD=`PM zoyhkh{Gp*3p)K!Mls*69+J)-)AE5gV?qhpFzKy7dt@U3$eTxa98~iX>R+K=j3bM;U za-MSpgznkgY>;~*kZxPmmP$coU}cf5=uL`+Jt!9AwrA7-04hA}e^yydq_>YWOHYRq z2G-d-g5~{(HO*=ciE~majiXw$A`hPQp4Yh7_)HUYTu2A8wjUuBk9_4Hy6So;4p_NW zm5CC^DV^41j5(Gq{m6OZX}_7leZxWr6g&*%~{l^k{x#XB`u%$ z5ErGzNK!tb-6QYC7a{T`=<-`Zz%!-vt=&#D_I~~ItC_E}o`j0kJpT*pKoq}_#12UW z1M8EWI4{*q-dm>7SGmrA4OWbwF;UH$O7woeu^IjuyRa==7v$f|N{gUofrcufV!gAt zf0m@TP*ivjjT5j$K|P?(wdPNA2;?!G8AO} z{`zIQzOV*gnQlfn#-5zMNL_n>%2t25&DB_ho{X=iWI6sC==gDV13oHjo^%pzF5Yf)kErKWi`8``fGXT)zYD4KcYBp=uN4(TO)A9llvEkoiLx6|*{ zjUQ80)Kjd6sx;g<4l++aO-mg^Py_z}TBRU%Imhnx<4;asCrZtc{{ScSD$hsUitXD? zkNEHVG>X29x>R_4Q=mi$0GHeF)v@YHJ1tBqbNgP}@akEP2hG!rjOPT5=+l?VA9p9q z{R+7H61G@XW~o(W-~a;vKKzX>`U?l(4)0Y`i{rx0DFbMmx$TbHy_)|3P_jSu%0$`*QPU^4ehxLn z>NVesKJqB=v#>ae0ovtOP)V=rLRlfg^}%K+q@T)N@OLsf;}^i+K@Vmpb&m$nB%@l z$MMp~Q9p;4t3cU20sjDQueX!Qr+X{@Pt_1D-5YYDX`U&li#$yaEZ$Jv$iVNYt-g$y-9L4f z7L8?~h_b49i1Th-dW^TPuB#KM>Q#0M)@CFVh>l0&pIt4wnrSeLahg7Vx)1TwSf}LQ zy_@Cze_^)hs`ik)mGCp3?01rX9BO<$C0wu+`MPc7aB$ckyHS??QP|vMKIBFJ0B)ky z^_o-VK5}^^QQcUswTsOjBy;7@mOH$6_b`^0j_qi_bnF*Piq%q$-!6f8jE(>tcjsSD zbkgpl$=As}5!4g)Csx|2s$?Z#l+74oSey*wUtRR%GQmZfmGFV>yyIN?T-^RM(CMV* zj@qV3t&DGzkN5`uBVCzr?f(ECzx6cjQkQnvHvmLwbu5;*7EzOuiC4-x7lYi%b0#t_k6i8BToUa=pem)?4t3ma+P{BZ@TI9i=b@WyoSe zs9dfOsm`aWdNAsj2qW=2Mwv0CxJ^xSuApcVBf2U~5Yow>8OC`78CCb>_8O@8op`9G zvC-V%qK+36j|JR$<8q|#Bc5@eyFZc2+A3}rsH^K0A*QEO;K8$#A>g}y91p)iKOCtf z{*2PqB-z@Hl2P4%9F7&F(;BqIzT+& zX>|kjt@oWW6y)pOYM8}=lg5;-wSytS8tUPBARaw*-VdSG5G|Oy7C6cF7}q^D!`~WE z;AjEF?VSd~o|_jNL~vBDHv=52oadYnaog1Db(`XKU3GF&JWzP9s6!&SQMr{sJAggd zbK6>*AYgZM!0*qlo0fu_P{K-h95LiHN^|?Qi)oe#T>7%EirG zpJTz+E%7Vj4JTFf^!B--W|3rBVwG3Q8Be}@V4ZIlK8mzgQ&d4R)T}d-(#I6WHFA68 z4i0tm_rxEC;*+S>ho|d6jp6ZjR!M@VBw#QeZ_7HkJaOJmh>~w)Vb`P!A_V|odV1=z zDyd;(wT=&Qof&nPNL>1Tkk*)IQZiZxFSLDl(8Mt&&wDL!9aH zXR2ZX!yzZI3Uuf6dg6cbI)H!T&XunqB9`}CO&uCXF;=3J#in2fk&6a7_Zb>ZZNhox zdG@k167qA#@<}8QL6h6lPadAQ`q0$>0L`5=)_SF4tqg#VLZp7}8+j2M=jQ(YxND~V z`TX?%0O*RG5+RfF*Ba4M4=~C3Y3<}=D{!5AIny;2GEBjlj^!8!>8ItlO%mov-ABID zroLF@f*U^AIw=L7T7qQCnK8GHdCotEmmR{Q5_Y*#dyjn~X|ljBdF*g>>9{HFd-Qzx&c^(-wi(s9&Hw?(+sHb0itAHL zO;-dmGOa)vDmmjkXWNsVM3S7w+g#xL9dpCM;fLN1od}gtaGH6%Mgdr&sS3CUXvTj0 z4s?~Tm<(>?Osr1q0=D9Fz&z`sj$iJP_-LRc8;tA*TeiLWMttXa&)=p+B%O#O?;7Bx zll!Og(LhL&;XIKvd&mTX!S??E>!sZ4(t43CC^4%>n~(wmzA)IyJY;9_)K!Q9&I$YU z;E6HVetM-6T1-ceC-;x%uK4mF+BnmT3Xlk2->(=K8OEzY8c>9qVsNZZxMq}aSn5SP z$xAnhPUbm2&QycnT&QVkTXgPSf$m5h^*TqT42k6QW2yF=g-tZ`$rHB!0GE++2?PST zJ-&xgA`cL64T^)`w>sl^hE8GK;yse*F-IXPv4?|nFZ2VncuvCFNR4zMhp(&`F{O7cD&Tw z>!Ylxl*>`DZ;+BpH@VN#1Mt;%fKNZ?u9%w}ayZeXM76ohs8`BzbCNmIe@RWVXgq2m zg|*)S^iatkJtmwt2@cR(XzibEL|7P}+I1-9f3qBo_bzl$3z~DfaFqqZoFTy*#(VuZ z({WYF5^Yo5wH7Dh# ze?!%<%2Le0_902mibCXSy0hjg5U5ccND*+mOJnwk_ddGvTqj1{ug|8RHY!OxL8;os%-y=^^K+{yDX^qTr_kDEL62p#&xIa&I1ufB4gF=n5 zkwGAlk6nEi@Y?%R)-_T|1<-ut3%tWRmULX>c0SK@j``LhWcYhi4aSUJ>tSj)kSin% z!Q1FEIM>si4bgTRWh+T~l!cd#sQQq|Sm ztK4M61SBkKcm;^hB=#DCXX<{xdMNxmEhc1kk9A0uT}bXoEx_YiT<|0!WREI>DDX0W zzpl)HNabi6?`c60PsG)o~(Lbs%_mb zQRCClsH>6)U*6{?3 zPZ2axK}ogeXyA5vQ*V_RC)y*h&T;H@($sRoq_#3|OARf56D#hCE7HMy6&8wHwIyB3?+jC=E5;Bk zk-UYOc8@S6i03%(#{*RTUtI{YRNKQtG_q618bqg+eBrnNvY$-kmixQoM^Azf$fTkZ zdmlR0zGRfXOBUe!YC4cX_S4m0+ekfk9W)AKZ|9{hS!;m~-atK0lBZsi1+~JKCdUg+&_+$o`2fZ8d~Z~$h=xwx_P1?VdIrqarc9%knMjmuw@65 zryzbKSko%U7-St}zZ15_)mBGviyI`OMkAa6xc%o_4#XpXbO-TMqiQ;q(+xE(K!KKZ zlf)^wfE9)@^~lnkZBr&!Uk@f@aks-BB#vn2+%hn@A9jc2x>D0Kc##!!BkZQ(`0=Yw zpy<2bM_ar~N|n1u_UD7cF}kn1a(81KkIPxz*6U4M61bnjlO9Pk`;MYG;Ca)JP^Y}M z`~sA{(63{#wo^tesnl6arWaezG4_KTmP(q2Y&vEV#Ob_9y)VHMv6M{-=z0IMWY)qDgi%GB>CynIF4T zDPy%s6$Mk%veC1Ms@oYcvoYI&-0(A@KB2Zv1k%q+La* zIHA;kJpTZv`vg#4=%z>6PcSGlPlQMD(@%Y)CAUL9;evA!_53sjv&u39lB9Mg{{H|? zDAY<6fg^Uue@$0n9uAJqPo4gs>>fjSp=gdGD!=lhVgAB z)uRBR=PBFk+f_{!M70xBcwwZD9~qRe8C-58XX(y_t19Xsm62*>@V{V_>FuFngB~d6 ze`;T%G!(kqT#QD8cOxhUe|DP}drL~ult9Bd%wyBOvtf0r3$)C3j^9ml^p#F{l=jCy zntg~HcC!5c0HQRrQEQbM(g>YF!6qfny%Dy}9IlixG9b&J0eBh)q`Z?x%HVj>Hc9n( z&ws=oe&Tdh)4f3*9hUU5#*gzbENqf;RdU{RV56Lv#x%j7r${4Z9^!l8arkI0DyNehFMn@SzCP6RHXOMgWK{NooJ(^x>7+orvgWa$O4=U zj^mT)K_7;#E*6SPXMq4NB@q>U*#6NsV~=Bz_-Q;*Ua#{wrJt!+z$k6qH-Nt>NrAxq zSsM4~uA4EI`C38;eXE@iMQNm&1gqnDx#WZVMw^?aX>lZ>m;$Fecq7;Rv}li)`I-CA zQQ;IaS-NovCWfB?a(ps)8fh(EEaA4&QWXQADd1}9tx>v+u{(;Ua6fCekDxp@J-x=CZa*{p#Jarx5fToZ>G_lxt@Mq%BxgB4QKf%HtVKXJx^6wQ{PlMo zqKCwd874^;ybwcU2WIc#srCz943%ol<5VM4yttk4pcNz@Jx6^m+WDX6X&$RInuBXI6~gGW>#Yy*NfhR74&)QL6~;)}p>jNJbC$F^{H$sYPvFM0D`8Jd$A) zeLw8hr);!PEv(BrRk5c?mNHKhJ0CFmkO<@IG@ckE4ASZ$_GF*n4oydGQMyWKh#X+1 zbsAQ%#6WndLHeN44_rk-V74d}?DYmM#U*wHWIwV;2aNjrYbd0rmoFnRSAJZB&)uP6 zgBBOnP5e?xeZj)i^xEJArDx7ItU&46DlBl1G&JM?08~Ggf>KJ9S5YYn!}g9(9^Tqp z)K)ZP8IF6Be(ZPC_jnyTGW`Dlq75Ufw8(bD6+4_~0yRJ7r|AApcRm#)Km&q&B^>)` zQo~O&fnRWxtupZ#Cmtd9=g@y0Us6_7Tq>iZw?epVnI$KP)70bl4NJuYapd=&=A3fB z!333MrRtjn4KYojnWhQO032uAUqJM@A0v%q{VDM7ve(vh%`MidwuX3^l4-!hV0R-p z{uE4b-r=_P5$!pBpUg zc&)HQyh9m=bu+UBR3ved*aJAnI*k>M!P1p>$*C$TpTdvCd0;^^NHNCXs=+}$j|_Ri z<5j;AJ|@u3cZ#0fNcAyO20>M@Y8oFFDsvJl43J}x z?9Rdf8T(iV1A;Z!vAD%HjP)xjFBe-yOtv49t*EOMay-=%GB6Pqbv$`Nz{efVeNKoj zmrHN-W?EV+gmq6(Opy^WSl!=tP7?}P44!{Hodu<)^=P)-YAC7FD{aC@gza&ORx(%0 z7?wY4xFw6S{v-T!*inp=jdRcKGeyAB@2(H7y^aob^Rpnqx9E_U5Zq;{&xe6 zeKDW~kF&0;?K~YfyUVU;ol+z|>6?pF*(atnKQk3b0m?HYDCa$a9lgeh?ej-N)A3zx zb=Nvt=<7B$9CHx+c8#(OE;HYfq+nz3_rmC8YXmHiPcACevlQMRhlTr0GB*#;MHP)A zQ%u!$$zHivNtUUjF?o=Yf?Lcm*&k$pz;^>$Wl1t(*{J+5>Uy51>GrCxr|_kQV*?Oy zUkVQ5FaSLIarbDQmWnxiLT26dnTY(ejbT+6nXR=Z;Z1c%x0gg}SX{XSXg*L|%)QPq ztOk4c*DHFW@mWcP>D!E1K+Pa$I6k;4KaRO1yc(uz9a{>{47A|1Vm+)ok>8zs!|^ww zD=O+uU5bsQk=&W1MgSf@)(P+TYV>twT`*q~zNR#g;29)h0nRx-pTkc#R@74mO3Gn2 zdpfq${EoTgryq(Ykx`b?0Ic0Ba9d1t*Hw-enqXqegDM;mw?2USjz<9TtIJP8(AB7t zTf4@aJVL@O;dgD%=fRd>>WF5!<09{M8-Ys#jg(WRdgktbW6AbO& zzrVh9JZUVN+l9BTSO!6s_td`z~@gx@V3yOtxlqqK}g&M< z>b2x#X^0;mL|dS(@nXJ6n36^?v?14YSTZTd$;Wat>&Bm`=*vW~80qe71G7W6SmVi3 z{Kt&(hWh*SjTJo&2Z~&ZjF+gB9w!-?VgCRRZ*3)Q_VKp@r;nEZ0EGVl%zcmhee`OX zIv{6vFNT(CspYDQ@|4jql2VBWm3%Xa2pQlh?may?)MN0fgT?U0{dbuXExriO_ZyLW z{?O!WPBwdE#?hCk3dvI$9w6;G%l=2Vww(P9L*t2-N}b|rdH&z+Lc3S+Bfq|lb16n9 zM=!$bYeV9Wq=ZHyX^VIu4T{@YzSm%QKF3}k3@NCjk~sQ~FA=2>_+|i4iMMcHwf2hh z^%~QvI(moXo}5crw9`*Z!;I~f_p$rI?d&x{cuIJ#2BE%aKh8&4jErwc{4hS^JNbmRECa5eC)WIB!Gp8Jq!E#d> z?gu#UjTgyBZ!}*jW~>SFhL1TJ3S{v!_k+jXr<~A=@0sx`cl_H{ZNSFni^D7a9CP>T zJF_ifftR;H&9E}usY(@B4e7Ox6}$E)fPMAj@cOTiE2**z3=z&(?GF9NueOgKmVs!* z0;015mMUG_RGdd9@ZWxT`?c3<6HwBbss`!mC)==N^~trD?j6RTdS!N?0m0BUqCo3# zqYS%9$vp1+KcA<+rlm*Gwd%*ksi2Y_t-`rdF~K?d9{&KpMT-@^V?py%ory@fF%SHm zvJd-Szq?#$ZL&t`^K+9wR^~|St>_$XIc5Xcp53%n0H8{>sTFc=TAEstJRas4_GA67{{T%PX{f(O znlW*ZD^SZryTJ5myinNscE_)MRC7rX@W78l@MiNN7`R)#v6t`YKF@txFTrcpH+sYm?{{R?0e!~~{>AVt|{{W?){+hnGbhACW8g#jWQi_6;afcZ+ zvl%yI{a|sAPWshllQVeIDLQxIt?J!ql9A-K$uN|d*vjApW%Dl!p7=kB)aU4KpmkP| z+MJ*pe_r?icJ7~3q6xY(qG3=L;Ht9zlgH}wkDI|Bzp?)SOX;Vh=_;hSMN)1Gc2-c; zZ1C}sPYH>a{jUE2O)X8BPp5>pV50Ob_A#|%whVd-h6DblyDvoF_cF&FwUqEPQox_X zX0#rgwM}TU(@;w~PVnx`fp&(=vv&0RSo}3EvYJ_`Dk4`!X(M>UWbu_FKfg-ZKIw?e z==u)y^%$#yg&^C>hNQ9Mw*?1p<)^E@AKlU*w(5FGnTv@UYJ!CB+He3<>`&vXdR~vX zLX^sGFtLR#YEHs8e4!=(0OjY8ZE{|Vx=BS*0^HyaEfvC)F++gW6A2Nq{-7IAzMiH( zb;VRs(R3a1NgbG@+s+h@ zGxz9|`Y&)dlUOTb@V`l|cZbe)3Qq%OefN2@_-eWih`Psbf}O5#v&Tn4OkZmZwLM3Q z?e{qHk+1f!ux?ooe`9)U@^SOlc_CE>0e# zVB`=x1MjU0K83rjr6~>010c4g5q*aR#ZQc19>sjV`R7w+=?jzAO*-5nQ1urHf|Vx% zrXYwv*dsqt+fTV5c;eLpYtemFf$>dlRDGqutb8`i<33MJpU+lDplfQWX_n);8MzNg#2 z?CWKprYm0QEm*CLBiGc{1ln>IT44&NebkNF_3fy1y&qQuP$OJnZw)Poe^=k-ShIcG z^T)QIc1Fq(GL-l|)TbjB{`lsn{{ZpP#V^Cll{Kc>OHU26eJ~F0^SRwF;zJBC*NtD) zbZt!36Vn@*VgLj3T8ks|@f3OBI>)%#!^xWU2#c$5Xv|JLq!x8!|FM+c^f15vs zlgTDb@kUCSLq*Y5?+sV!8L3uDm=-Y0kW?J`vY?Z@arWeBKdHVGTEqfUZZF z;Yb3Ks9}kz;3qns>>NCcO?p|F@6tVGNALu-cLFf9|o#P*l(85 z<<&NYZQF>*TziquJL8>eQ*?xHO(ZRGo6k>KPFNtw6%ubJ?_R^{sUM(XTY#$h$u|nf z>o)Be%0b|T`?2Qx^lF+kP>Nd^+I%28H@8vSHtZ5_+DO}-p|hUE@DHiuPB+2G!)%kN zXuu50%CYmgMp$y)z~uXS>r;=U=~mvft#O>H(nCqOfs!Ma#SQn9!TM=+Ryq$FNu;>W z3rklo0B~v(YY+B7<4?ID(vO_}GW5;*8tYV6n{1U<#iWiXWu!vOBLU`Y4C6TjdLK<1 z{5I)2h^^FgVh2ju(ORLT9HGZK_6yq|&qlY~g|>>C3T3EiyaiNH7c9Y79P^Cojy|@j zph*(hPYgx=)Q&eX_8!>Ma&qLAjxlzPnW-pbg(I4udaeisk8m-bH7cAz3?e#YSl2&i zI>0CEd;GaAacI}qVyc1rv>|=#+x1D7n%#4&U;$ZX@h}It2jA}1qKV%Ux{j*%)UpcJ zjh2#GVTu$vL<;PqA5)G=@AqmaNXC^nn3`3E)+G!Ua_ovrh0BEJ199z-O$bXBT0>6K zLo|BCXPv>HljQD*Fp5r%%r2km|Y1F1CE`U|yt zMI8l1X(mNHbgGk;X$Dm?=RL@5dXtY$J=QmyEEN>dM`D#K4Km==OX2u6=B zE*K9&IM%r7$uvx^w=xQY`uRV^bl&1SY08oM_v7}Cn#QzZ z2L~J+gZCYCI%J*49rfoL%Vk;%jOTX z=XMY7IoE03;97GGk|R@ZXt3X7f7-|2>#NPkqrt57r94-=>@w6OFo735SH)ZuUkuZ6?GGqB^Svf zV3N5wA59JTKQ#)MWsXqi5*+Y*oa6Y8+P1gdoJE~IAB2F;Dh(BqEYZ# zk#SE`UlcM_Q_oVSJdnvF6+HINexBOU{{Tx}XrU$VR|t_^5WAA$HxA`gBGf{OFU+8I0)~A+|0NG%C$(DQod*jsS zwyH5nZYet-uInqhP%I+p4iu?TrXMHmO{`#1WdONXi9Ano~L<$In*K6GT?D9{Dl5`*gD2Y zCh3ajj3aF-r0oEMy?>swOBcf`+r6Ha;Z1b1taGN|l2ny-^xDH5AEv4ii{%q3G&gVR z3hLx$rcy%ZA(27A#!r6SjdtbKHw$Tx=AtXVx9XJo1O4w}G(&IrVRxmbmLYPoF)g@a zuwxs0cJ~YUX;;sN*Xq=T60XudDZEr``j zEx-IxxY%xsNp-bT7cuVwAtI78Ks=Mj9sNeDr1;#s4$EQ&^xj;L-K?JO)fYO%m-L;v zltz)Nn#35u0N@S)Et7%or)s)J?@0{u*2e@120TWVp;Rwp>-Ue(TSo*dava&G4~^1e z{{R-!{{Z`M<)zbnX{o81VusgD(y_o*@sIxQu-ee{l?@Z@b^sm7!IXjl1QEgD>dxD6 zN*iTF>qzfXNrcGU#LDV$7<+KTY2owSY}G!V6|xOX+b!P~?lq>QLu#ij2L(@#32ftN z@^{Z1;ADZEk*Le@x$}mgqz9aaX~7@<&q8)7?l&tsH%U{;`a*V;%K0JUT;l|RfS z=OpL0s$}?S)u%1`Jh5U$i9gjS{{T6^_;fip!)~n$kI}?^=O5*$E%58A zvyYG?{iFP~lgEt|n+&4(!&#na=)XDt0G6!jelt}mAJiy6A0PQ^JdfeuRDuu4HV1xB z^3>XYhrLqHH&8aypDN^@+gizo&_Nl@hf0KvEBHBEB(!E~Xm znx0BaX=vL7r97k_GwUcmy^kY7of%$>WK@+RjXZGyksA-f$V(0nVKZdp4%~OpS5RIB zW%lDz%NlsK4&);3RT=aioMTd<8>TB}zKivUuWMk4@DVMv@Wo@H~@CBwk2sDrP`qT5&jUI4_tD#kwJ?kNLsKja)pL|loJNIm z#Cl{e`Rh{nC18f(XPWh21Z0O~rHdX_+xD9t`QUxWUp_%Os4VBok>CaNQLm&v0AA^b zPTVZBxQ^jQWR)Uw%d6v&{ub}_AnPoV(ybQ|VqI>`PvOH1<9aE32Y9__~`jN<@( zcsj-tYE*3~tsvh@Q`RNkl4@8#N2Aro(9Y};5C9l9=Hq}t_WEi^QdLn^)ZMA&r2Q#$ zAFG0*8kTgzhB7|>3C|}u`fA6dXgY(bdU92_blfu0v?814K~-b7ZZWuwfK;9aGRL0d zRM(p=-=?mxEp;rkwWAWos{FG33X|UiV_ngTXy>qpr5^EW>3fw(sz`0{%@L}%%Hla^ zI2hVUEIm7WXkzPC`bP0nQp@2iu3RHFcIVSPWc_iY+RA!Q=%s4Ft1U#42~)&U(*|Z% zz#}7%5CM+()l7d4I<834L21TD;!Q+(Za>A}TJ-W!O0%}MaCq~cKOHxWo^<`n znbPA>r|k(FKc1Ra;DfGQpJ|%IfrcZDXFj>t2Rh;Hr4BjJNS4UbbERRMIP@7hN3MW6 zduzkKz3Hz3ol+Auj)Lil`ij#k#SqxB#tlnK5n*lI0)01Q0Q>jHeK|#8TEEfW4N``< zc+tcplV&B0?Lz!{T>1mS&j(OCHXDSn#MY{bBAN){knIe?zgVDUM{o%TpJSu@Uqy9= z)+VW=th7_S7e=m7(K76ufJt8|@({q|wzbH&vJsm>K_xZL&r?q%bKCCd!($SBHb(O- zgMzFwKD_&DWTNY9EoA0~k^WY$5F<)?@PV<61t-%VkJD5Y9|`)$jZMeABgu1_rVRWeZ2 zI(SkqJ10TeUmW_8xlV9!ayZrx)t1Yp9l?yyG&}fN6oRsFI1D()94{F5)y=P}?w07q zJw-&a(qn3@zGENNN$2p-<)WHok9A74?nw2v`&_cu8AgrB8sLa zjHjJg9!EXTsPCh?o{XeknW4D6&{Ih)->xihNeXa#;EWT<9-1kuw)D-WX)7zGhIyCH zlr*F`-HzuToOUDtbMK%|r>m*I-UPML8gv*`gc3YBy#OAg*FL$_HDxAV)7vbxR*B<= zzG-W!Pz;zzL;(6Xu1B}Fg8HI0h6IkDp{m44RF>h9eUG^I*3H&!L1Dg4Xt)Yyp}AWc zo*A5fXCVsFI-l7+hO<7Ho2G47ipqYgvdvQrpa|vhikR?EEw{MA{56zsmT1Iuo$_>| zN_x{I=#qG1Zcflh01|j3pHrO|?tc^v_x3r})O39WDFBD2%Rv5MQniRbP<^=6ni+aB zmn%R1@S3MI*gLo&{`)bCQsOfFCsi?Yw-t{rEg^s2i?r;fhtTH*t zCnLYErM>FfDhz%DM@q*LlG}`9*^jT^tE!7NwQaJ?bGOvgz((NkPMdan@tpnRP|8fp zYA*D3HO?)Ds6>3hY9M4I=n3znJ#58W3`gCfdYdmnNidbDuIl_8rEWWR)WxLerW{9i zBOLz#SWKVYsUF6A^ODCd{pUTjM>X=pQ%4B6RZB-NK3p?k;C3J!jtAFNT}?!k)oj+W zB-D(2s&LMqel=y%)IBv{ZDhaxm#3}{LGYPTN_r8IocropEiwXEEP%BoLeCgtq1QM# z`}xvpt7pbH5u&ho8pQ5aoCO)KN?V3;j0LxCS%hJo1kIc>ki!f(KAXQG zs~(%KcxjTFD&bJEsAM~X9fyJG+l+o1t*BiRF6bwb$PygqRxcj-*;!SUhBmT-58e-bKTm0*Tot=h zpQnbyR;djd>_J%!j?5GV2a%1s^t&lh}B2>#KIQO1MM&%pJ9x8=zHQXOwOHCBU8K}&VjZ__#?9C zw{F8a66wlUsJO=~AZVgsT(X84JP!U`Sn2 zXelXC<210AnV4?gz%T1$9s85Vd}N%3$*ZKf)>>;O6qA0m7V$q>`nTF}S(~sxd%wBB zF~P<%PHv`PV-%QTq%r!q3<@=!kwS=LtFlIc|(DJZ2@r)ZgAQVN$* zBJ6t z4Pe$PORODBRV2_>Ejg;3seRi@l$!*7GFKmX)vrw@&O2>nazR!kb&Ftp=Y)_S-;c~_ zOidbnNxrRfidbGsMyre$m`AxI&!1=nc`=L@%MN%s;FrT1$*mNZLv*)0K~^J1wU;M2 z8zLf1{l~tO(w57_7kFN(jX}w?H(4) zpToAC0oX$lm09-;uQ|&Rz`-h~ISs~z<+a`x9+^=~SGox$ zH3N`P8P$gFf4iT1tr^`RblA6d_R&YBm&M*f88My9P(xb){2DcaG<8s;QM>q=s3g zs!>oj?7=I*?xX9^8RJ;x9cikqxl~08%N)V;zXNbFF4gRE4&#;MKBtUpSjo{2D6r~i zE%vI}?Uu?a+PDivF3KqPmfw(6$XM;{xcc+QZ2?rGNi6e8PGXU!ebLBr%1a&z^&>?6 zRS~SLWQLyUU*jz?b%vlsj>H`Jhi}>^I6PyMp-7WtMh^@^%IrKX+x8Gh+q>5qcEv%D zMx$J3s;8-^yjRl-aLkkr43YVfLlkZtc3gcy^wBRzO&PaV$h3gVYbGUvvZ11OJg8Ph zQg{pr!Qs6$2h$1-WkO4Dnz6)6V-)qGnp8W~ZbE+1=NozNpG_25FLd_%cTiK-Qb-_~ z@lg#^hnd(m0Cw7Q+s*1o?ar2_Jt%|Kmnp6G+l4FJ=}^o}ax%zSm76XB1xH|T2N=Ni z*Sd-;GyFWJthLh92NH!z<6+_)eZAc0AAhfH5B1d4@-xdv0#hvWqHO~t0UDp~sQ>~1 z1o6)URkY5}YKoDikkbDEXdws7xc4~GZPT!!%N;m1RP{CR_|&Qi@LZmF^8OvQHsK6U zep<>HBZ2^!DH$o2?U9b(o}$+~!)9|6uxQjOoaBHGG5KnalA`G%v%+PSM;!7$%Ulu7 zo^q6wl1a6>_IZ7u?7p5DVLVwUIl?mdU!Ha@YiQ?dVW)w&N#YkIu>rD4z!|{rsPu5t zRCH@p_%Zzb6;W9m8Eu5;A9p{yNVMIinzTbyV*!E27YBE@f4@>_?aM`QsHjS>)y_|e z3jwr)&+hlutE-j?xOETiq|9=A0}r&iX!SnHi{+^)No~afDBc}Q_-*>O>^&H3Ncep{ z9VN=1<8~Wjr5UHk4$asT>Qs6T{{V)D{{TZ!3WFk4?F8jha*z+>sfGv_Ye`zbj>Ni+ zY5YeIrN6-AU*R8UU&W<=)QvXd@fzbiQbkVF#*7G7G62AS13@d|)Ky0{!Kbc8ZN@oW zh;O|2#;X#p8Lw9Op_L>ITRU)lHL&!=J|(7Xk0_1*0P3A`V}^W?StUAe(vj(P{YSC- z9;x)W`c*Wm;_gd(N&R^H%_HD#>|boR4ARF;X{JO8AK2Pcj1Nx7jTl|*7743T?|7!C zGt-3$Q7aYMgU30*E5bR^+=<^Ii(qtd0*^*t;UNw*~)w;yRw_J9m|7q z7?}Cj_iLl2%PC?~e4a12`b=Ffv~u9Wswt{pdQbb8wD!K3uc*ZpzMfE?UlT2kd*h#` zh_Y@_#IBsj(G57tC`}Wq5$mP2{ zhZ;U9>IpVpYZn$Y6faW&B;~Lg{u_2Ou4`Huo z%g(xZ&XPwOq7P?D&bm&LJLmyj@u{|$X{WEJin^fE(!7CXoF?-clgn-O$F`wqYsaps z2>LtWb&c#@Nkee8SJ7RqW;TVVM)27|Q-VS5o;~%k$$Lg$4e8{kn>+?#hWnegu%GmK zjb`d#vM%V&6NXdR{hViCMpIiT;(?(^SHogSR^(~swCRc^4E;tW0-9(hrJSBTTmb(7 z;cmz7)jYjLK~r-|O894?uKN+CQiT%_bbic!oFAr*TF*pjnga^7O`NN9s1o$uxu{JX zkSw(1=VYF2AIDg-%>Mx5Y*aFItx7CQlnldijt&n$e!g_*nmTH;H_k%xY>#r3Qp`N8 zcmvxR{5AB)#2ZW$eKu*JLecZ(W4Mv+tN_~@(rT-zV}=+OLb2hoj5aVpVAuylXHRmP zv{}hT9kQvKo*5yAq6hEBdE)_?5y2etIn`HHvejOadN^uQBNS-p@!+HF^9-pVk5I$7 zI$cD!Da;j+LE%LrI!2+(qXNTr3$Z7WgUI`}Uje(?q^OEWV}W1-IU=egFgyjoCpjT~ zJ+-CTodE7Ye{VQ~il`4O!A&@b_@~+mw@1G}czd@GXl9Q_vJ8*N z>6kBdv(ZE+tSMWA;v`a@{wB@`ags-I@1|wF+^O;XYI46>8$ZWMh@SEWYyH(Ej0~8f^a5|H((p@9A{pxyS2h{^`~>5cb-Z6^>tyo-Y6+dR;t+& z43;q~U;=xe#{)@}h_{Oc!i>kV3W-tBFe?)h53%EdHAy`k&ODEmtONcf{{WVYsyf@K zAS5+?La^=$)N}D3^cM|XK7Rc)m^Oh5I_YWW+b(bp2w~X$+98US?lDa)5tVdM+;O;P z82aj}wx%o1OHRtERNS{15B2->S7que^{UeyG;jS@nS7a0cBwy6?sS;YAuo=McyLG1 z>w>bR4ZEKn+A@>kHQiecBuDRwf0mq&;w^E(XNaF;3V$tHGjtEpvRtT)a>*jp)2Z53 zvAGZN!PAgMAf?~EpJqJA0PQ`A$JZlVsHXrALGZpca~p-ZK=By(k&oG9-|#un1+S`V zXsz_rpD#$_7?pg`sW|L2@7qXzgbEVjfzR*JG;uVs1_XoXM{s@g-7i&7BLLL2W9lGX zSj%;t;PS&x0m1S_0U&y3>#d?>=pF0Ywzyxc*9x_&k)x;Z%PWEdnH3pMRG-=;9P28z z-QL`1r<{1S(r#Qg{2Lq%!|UY$oDv3c$>(S58)Q(3>X0$?YC7zaIJQ-wn+fGaA+=(!SZzf05IMra3kTt!=NC&nDCns6S6i4dbrs}?&7V}Yb zNyTM9%rAymZ5(iNJM*idKUpPpGzoZsthB#2(vsm~Oo7P8Ny+r~I;p-3PghY|R^a!0 zeSH-nr6m=7*J z@^Sa;GPT?+y&$(AmaDI+teT&~5Kl;9Ip-Xn!=81{j+3S>ms@qguQvvkmE)PC6eOu- z!6P~C_0`3Rqei5?^{sW%?Q1u>NN)E2MI$qQy>JL*d}9YAzif=^CEESgmaAP2MaJ(O z7Yf-#P+PLiGcjN}Bg#9Bp2Hw_)eJpJVs5y)bydgbQb@@83RQ`VIT3{3>^K?08%f7G zJ+)oceNAk>C8wyONonsClSU+@CwfS!AZ!No=dr-faCsW0#E^AWbm|&P)S)h)kfx`@n0AR3Q?qBcs|G91M$^QRNmU< zK}kp^sGP*+NhO~FoZ|z5#-YS66t>1?x5^!a&wT zIGtpgU_fPVHu~f5_4eR;=quvID%5l(TpKq`N;0bRj2x5sXIQDU_cd{}eEk%EGevV* zqNfzF#41?F2rcC}3am-noc(n7N&LFJm3JTw4L=4mw6x%yi2crWHq%!flG#%QObb^H z+Jw`%&chd(STZpL76%@f)s;U_(NxfyPdv(#&3(ITaN{s9>OQqrL~zSA9p*>20)B z%N$ZDiep3+mf-ElJBk2%V;%FNUXS>7CEC#owB{B;wbN;0fD#6N{A(FSW8Jco)B{$7 zC8AISDKX(IOZX6Km6yqlA4Vp zrfRv89n&!*dmprM+n+(Hl^rem7W-F2St3h4D{b8w@|=%jrn+9u2T*lAw%t=R#RT#N zc8rB?-h_jLtE-i&3qA6-j+RG~D3~Z`U|8|$M!hBQsz=3So69$nT(@uWDe5iIfr!ML z{XMkh9h>xxN6W0@GqL2{_{Wt=^dC)3axww$?WX8yDXtAw4P!FKwDQWNFjKu3a*lqZ zww9(&g+*6Rd2iG>>>2xihhIf>Vu!Lmdor;7$6q;E*~RvlFJee<%U?)zIR5~7l}}@l zr;~9*X(mhm07s`H(ba>*sznjP*`;05jwIy<4o-|Z-1wgfuP1fdL6zp@yJkLh^uXgm zU+DKCjt;C}5~eg1@iyvZ-5}-pQG=81qh7Ud6X7lFiEh&UpEbocOnmF#lmsyHkJl==c8s!-wko{>T0MYiwSJ&d-*7S=CFMtx@)sy*{T@ zPR9q=of7prf4-Ht&-Sm6uO~x0U&JfU;oKc`&z4FNpG|O_>%-TLagM0W;XLb_@jPpT zoiG#+I#JG%j&!6vjWi}}pARYTR@k7pP%T6f3}QrV2SNr%)E#PZb$3xCsdn0=XBpk? zoRGK!k@sgnoh#H3n+zzll`PSuaqeT=Y7F)ryJJ1L_R$*MBbI23{QMa|t6(F+$rvmN z^JDkt>7|}c$fzxXA=Uj#B`~msTLptNoDe;+8P9RALDm;o<$uysCxRDt>PHekJ&w|V z75amrN9rgcsF@ZD`LJ=ZfB<$G@|=O3kVZS;=wkVNd4nxAuC6Ra;V~*$;2eXFz~|SD z>m5Z_w z($n2O9Ca2a3%OHn*U3nM`$-wXAC_QBjf z&ONcC&x7|G+SuxBwG_%JMY>4haT)HUHVN&{596%v$XHZAVX5z{8NhqbdB3N8EIn6MkmbPVMrP z^NK=zo0u~w`upn6j*`=Iqj_hfubw>MJvK1D`TFX*kEiPCVQ8x(Xy%CF(YvqTrPEn1 zsUuX_(xZ6cj3AJGaB-~JNO8wYq6l7F*M>3zGou0fwE|0TM@u6g9`Fu%AFI=~wwvX2 zs?|0s$fhLjnPVke?;548>8t6fm7=v*?A?%jBcw8}`E8<(rH!&_WT*5JfxLbA)u&6- zS-w%fN>*GTsSH3^qEefE4o|OsHAP)bS4lZanB|6L?yd+UR(5!96%ZGOhH0YC3#=v7 z5#N#b_Rz+HtCc@X)!&&xgcl1JonW*bk|DBg15Vf8RY!3pYzu%taYtR z6p&HYZYVdYfyNux9Cq!h32k?X$s&fd5BP`vS``Db71q`AHH6YmXQ$3%lnfuldL0_{ zv=+%Nu~b!FJUWI_veUE$f^+xtk^FQJC#a{HmQ`Ru!y^o6j@SiEOdg$;Bu^xZ8**|x zagTi_2%THg9X~wG(e((36Og|wNCVg$>9y#)Q5%z})Q@vY-_KMR8cMjPWmu(P587DU z2lr`+d`LA(fIZ|gpf$v;cqVW?Ca>mM0VRPB}E){5?!eyd81sTqi#YE zxZ_mTn#Gk3JyL^=n9F)MwvihUPUE#oji8P*p2JK*bv=%aF^jz;eahOphK`;n_8Pcd zy)m5s01X9EMJ7~$LD5AmJd(mOo!HiqGh{3DLMqy78p>$ph{o<5%2AMSQ-uLee9SY* z82mIZ@Y|zkZWh|Er0R)08zmuQ$skO_zayQXoM3WE0D9{G0IlzJZB=EZbODif8IbH? zQb@v+j`>y~=j-3n=cH^i^;g4-Jw0pN(%DF$#Z6CA{{Yq`0EPL78QF$n#TU(=QLU4t zATIauURqP~-79ILprB8&;>YGA)5?S@{`2+KR6h}^Zy2KMJ540il5z79A>AHN+S*At z`l$!#bW2z8O7S$0C+RynGqG*4M=GGn&H%>)+dsV z{Y0S#T4f)^9+&=()22h<$<>zx+YO4$;cj#w$F=|OoX zk^v^o?Z+4;nTgsIa&wJNnyRv^;k{K0e4Mlv`hZeOi40Xs$T(Pza=vmq_9xq1vPC5) zNLuQntfZnxxxG}9Pf%ko;DuCG+6x>OkmL?CsNT0IAewqwW=c6Eza-Iy@W{2(?Hf}$ zL@$xG4+L|As#~QUL=zZgtd;@5*)^e~VU=N@E=G2%jOVZ;zMqcgRTW5%(6q)jRx$jz z+|JDyKvWpU2qSUW0`r5ZRrR+DYE$}F%G6Oylj21aM5@eOxoyDi1)p(Tj#Y7i#-IvX z`iL5Wg5PGNhErV$W|~-X>ViiAMi`Q#JC1XneKcv&9RimMQ7y$Dnw4CDxczLTa7oYE zT;z7i(2a@|p6wjb0*I4EMMwz%_-MH&*Ou@2oqYviU!9JM2pw3QMp;{S7#}x3O(|@w zsP5<*x_mIQ)KL)}a?!}+^>qi+=J z)V8UqV5Pb&(@b`XwU_-{gxDUgW4Dm^e59Q%Etshi+& zMMF$!Eq2%>akiVpiOPaJ+qZgvdl9S4MfUMXD64I=BYeK^)K4K;q)Zg>1i4-rNIQH$0QcbO6ctxmEvZh+QwnpK4&j z;I*QgWn$Dw%CSTjaS{=n4#Z&aeg3+l>YLY6%RyN6Z%c2UrVo}&YO={VM!{nL0QtOu z>*n;p&UKT^ez-E2Vud0S9I`8qI}XHvd-JAJzP2Q3rdDyV0fqrk?#@O(Eli;w1;$U* zmtRd&Q#~XRK%!HX0c2L(zyf;#gWJAzSSvd)hPQgE2Z{+T_<6*>9(YC1V0<;n#s_c?2Ln|1IIouZqqk62S6%!lhl(JQ zXbck!`6TmsxWOQLV+4Br85|184;a>M@mlRo)3sL0xoMtLGdye~z$a(~6Q7~RmRBmc zt1BLs>P96}UPo&Y;Guq$BM@>5sA&J5_*(ZWV2CS}h6xPel zZ6&z7Q^zLNEaA@s+-j23PiU&UQx2l2crBU4%^5qs$;L1buhUi@EwY|^rJ$VrpNf1V zDZ>@V8Q^QJqvq40Zk}LC?sS?uI!ffNTGuGCQ%O8zI9$5pXy?Cv-nwo|$Z?gHGwZ?5 znuuFxj&X64LHd?za~@CYayI84n9iq3PFoE0^innUnUo!yn{oU#^nXVt+gw@o))CP( zwY4`$1s{wl{Nkjhc9l5B?0RkkzplQ9vP0m~#GcsEA`xBi4g4v(tO;r&QB0?OI`5Hi z&B}}%o_k|P{b2qt!dv4B?zI^M&vB2#l=;`w0|W5TC&0-(3$IlunxYgGg^ZNxzD2~H z)L`WE+XqKoV=$ZHCGnP~=~ck<+#~R%K6UiK!2C7C(f=69N3O-bwk9xw}1ROaUa_Kjz8`+1@JwG$`l?L!~K=?`~JE; zu|DgqP!nF?1o2v%VjgeUM&OETrvLu4F3Sc=ys_HY^cc5H&c)I z{=6Sbi9hQdQ_7ow>;U>}dA-<@D9_VLJ+!PHAotd$B5|*4q-(%)pbm{K0Mlbr?8`>? zI%K*$(a@O`Oz?nRQ#_RixyG6i^glqe^#!Ki1qE4oBBxIzuAz`31vnVbf4mW*nvRV5 zgjp^%jZRp)vLc373_&?L_1ZW9cGXux!9!}KqWukC^>h)Tky&DI5tk?Ju16g5G2cb) zbb6RF738Pgg3+fSk8pX`SzWTDus2cg#bS$_^-6*ORxu;(?Z6C3!Nxfn9KHN7xkoIY zqV9222Z*7Ltu`J=BLzo2y?N)pv^T7)kpW=uMV~7o=NSI-o^=AI^<4vxo1u}Zj|ovr z<^X@Jr;)6vyD__uLf>p}4Rv%-OHC7RWmz|5eMXyAis5Bnmxfh_81~NaC@6l*1}AXu zjP^bCuJv4xRnrwyLRw;CJ2>R}cK6mG&_g9O@YW?#ZV~ znW}VkY?e;4OO&Xh8h;w=*lC>MH0qLvfB)mNEL;h?|4S+WSs02=+gK?W-iOmS~K$^$h8p z60CSW$JqT2n7Z^3uVTx8>1eku*YIj%8~Fz(wI29085)IF*6r-BknSGmol6=j4f;~wsIQhl-M?7DhtQ1asc-e8?A6qR{{R}_&s29i za>aL&dU--p{jjm*mHz;THryGo#{~OnSm={-tdimX0ELk$@42}@o}9DYDlL(` zRFzY~8y&?Fj?#Vp{WkES{gItUnw$}Z7(V(;XepPdE^$Q@y;V}Ik%v-bZb9|bM(XRB z1SNGxKJIl1Xy#fZj%Q2K)OetvI*xOiO~6laohLl+k6uE?9r334>k^l0Wb8jy<}xIQ!akF{{Ss{y0YML zikEDAa@p-;eQVg>CfGMY#)o`?aJ+7GtQt5ia%VbF+=>D9ir>QuLQeTWG723A%={ylG}{JdvP0fZpAcKDccJ^o_stt==dm$%TH_ z4mdu8+fpuerKX)TO!&m(k)K@;85~VBCynY!`8;m!YV=KrR zAAWFn)GNPGRYi8GzS2U3$10Bwp?4$1*^Hwvs9;zfBATnDYvXBYZck#Buv(73H= zkxGD_zQKk@y0PQc9n2>xdjxQNN3FPA5|SjKw^4~PEnQ2nAwO%%GIQSmWcJVx#Ca&v zvSqhTJc~5UL(IEafIP=;PS9NN2_yyQog$88mU^k6si&!um>H2(%xi`0H%YexpVVlS@Tjgy-&pO57MZbv405=5+sy?hgc{+W#$ARi^l1=*cOLU|$H8nwzap64E89Xtb zK*{Zo{=8~8O~fUVSfmT!MH5T*6OS^ESg9a+wCJ%ZB}G#f@jN^VW;s8f(CT%nid%I{ z$xT-n-WnierDj%8RF=j;7$ALeH4dtZL();gvIN^Ba-%B>`mW>u00-QefyO>m{$2HpMW;p|OtE;>^F(&L5rXpI5r@wKJ9$U9E$j)>A+=B-hkXLdjpBng z6+>X)5H|K-QR}U-y0iP;En`1@DgJs#^r}Dq0OYJc`x*Xvoj+0P`WO+XS~;8L91jVk zI3ww$!_?8aAN`cFkGh!u z06kk$UL%n~Juzuf^rmm;r0ud@Txf^`weD2Yu2;fu9C@TtPoMf z3&jWPO0>su%z;4d#~!%tlbvexREDP8EmVCwYgF1u0-3zuhIO2EjbzpK+k{ctZMOda zl~zcao*rjrj1i9b#~A!{NwpA)R%O>3xvH*}GgV5{Hg@l9zHoqXk_j5BtEYx&phTqt z5?N(|iCwDL$pv2o@tzcYbE%QgRa9Iplmeojo#sa-K)zBy2iudVg6Dgz{I zP=(y7=gLnR`}o%cac9RVJZ)2Vy`Nb>XnQBC!G;}Na%#sFABRnC_l#UD^lFkV96l!` zA!!|W0N|0IQ@7XD>ZUsrh@+NjYIl9aGz&C}K=eEEN8ybY)ll53>6xu`L6ynFD}qq_ zdlAUSs?CF`_ajRb(ZmQ0e4~$3t5fQH$MrD3VEmbXIF$bYpp1q_NFk;Qo>XaGUG4Ye zV@^`oox-fm4LB|4WDMjCeNR7juP$9Ve2(c;9SpJ>MRKvcg>px^<5l%kl~($ehUs`p zX%s6c5wwMY&m#lV9OqP@RV|dG`jYZ{20Qlh{&6RCyfRs@bdxmfX<}&vz8NFLQU=gh z*O8na+SQ=z%Tyspg;?13MgIWe)=kqaChBWlGfrx$o_d8W!va+cV$7?9laLQSy3;zs z-!*r`OQj{czM}axMg(%Zsb)Ke8BhiWG{;TY?LW}#m$;&)}&M3YU`v7LqjWNBJ*+wly>dws683hN2(E|N^wrA zK--de`|C(7%TzWipR;l|cSFT_y6(TDzmVP(RRA zCm+9GJ>4j3s!P0;wGymRlOdh84x5DzGTf%VNmp4Q zhB`@~!f&>y=+oq>`p)7Z~~_xR0kP-#*oDPx0-} zq)$IeRZzo0H%`a$u${<@QsW00@7(Zl&Vj$9OX4d-X{*}PGOH|v{hXEnhRHl~a53z4 zVH|T)K?}oAS2~=#w5Zus@_=&3ILi^gka6j(+Kb?J%_5rd3^a%+DaWn|cr0{;4r@q*#Y1N3PhiLT^ zq5cO@(Mgb{xmfAEXictUEHLBddye?+rXslX`iw2Ub@Jnif!p%aR@+?i$5tmumL)*U z9f8Qtq4(8wb)DhcB@&rI?u^(Y>z`dhqMef`n%6VtnF<1a!yJ+L`swJF(vTLZhG|opK6DM8T4dWh2xPtLp)*ooj@& z;x#cSkVprZZtOoD3`n$N({ntoB&$=5gu?#qHdm*{0?AZ9rB_rpDj8{Nh>90~bW@$W zYB;Jt{!V|$X{r;jfhpi(#+ZkX(BoD&C@rEG;;m^>nl0B$R7t&|w#n2djPe?3fsdRtvQk4~~NQJtlEKXJ~h zZLcb*Q%67FfuagaO+{zef<^V@YebO^voH9=TLi5{%Dy8_M^Q9#f-$r%G5D4rmV(~p zYHLh!G_ZWjG)!7w6qO4W(wrf{&#}SAeRN~-KF0Jn`+OA;%psN;!T}RWv=9pbppFSq z&UhKnbXIB^4KlO@c$EzR!aI}!fXVX>=jq0@*BYiIi>h14PgLIN=Z9o*M;pAct1wq2 zarX9tGsXuT0!OuNhN_ke-80vfN^G*bhDXL!k4DMljYexVwAn7KVsYR~(V#H^Fcclc zoUkOEfu1-V>Xs^NV^Y$}E%Aq9*#%fB!b!$=dASOGIpb4sWz#~s!m^4!t*DyN@k>n{ zic!=ZuF3{aeD@vmpRcZoIy0%L>o1k`m-b3Z8?`>G&f&O zN-b5AB??CA8nQ?i1rGHXK6B_#q5c}Iu+T|%sg?+)h89SSyX80-1Pp!WBVCZ3WfKWS zrfWAVJzbuzYFfHhSCMd%Bb8Yf7)D0`f;*lvc^$iIs>r2!mO0^+);v;vp(`b4EV;%Q zag&3{9rYulYI?HYYkGTi?t*)448f^ushW6VD$J+K$aajW`zIQkZn9q~?}DzdT4RLE zB$W_S#wkk$A*2M1HZXq4I6b>+ToAV^I_BjACd->oT~$?5^GzfYq9A`LQ z+z#OAGHI;~g0yw~_x`q@{Jj}mIz~6PK^N%?DoG((q)K$%AS&CN0g2-t83dnwSJw1H zM&>2DQ!_*ul`)Ya!%8u?vHr_F`!M^pqLN4`jbyS=T&O3hhMMZzAHqHq@sL3Za7j+* zJ-w8lO+u=kho`Q!)NMmGO0q0+EVHf%%0F)p9l-CwAAYZ*w5^(ksv5+nst+RoWj+@G zqMQSq+PLZOlYUP11)3} z@T6{yy_k?o7RL+DbKgV~(Oc+*z_d~s_J!VCDnVdyc*)@V3Gk+A^uv&`U<+1iunalRH=$8b4?yHcM=yJz`)LZ zHMBhip@}bcvFF$IvVZXEK!$JKE1qM#f60gWYu~53Py3gQ{{Vs?<*5eOWd8v1YY*cz zpZq%TwOIXbwjcTT{{Z3A0hPb>r}u9k^KkzFEi7NUQ2JfR{;nN7Efz2T02Z-l{yqNy z_;j?iSo8k?jVwq10ABw9%Rt1#d+CBk({~^GxOHbscd}#kQ(Y8&V}to>JXX6ppDoJ7 zfBi#$En3pj(55!k*&KZ*Z~h%LB4kzY$!(v)th=osQ@kp`qZsGYSzlL2W)M?UT2`&1 zWow1Uv#PO5)cGMbPrMsnl zIG&Ck&y6NAA`2sybUYTH(eLYQZ z^&R-%*U)F9EwWYhsg_r!r@sobt>Tq-!lT<*SHrt}a&>Gk zQBwsyMJ%-q94rcW&5*392+lw`#~gjy-Xa)`4_{q#Pm^RAbhG$Z*=ng zrCc15?Tu4)B}lCJNq%u(Uvd3k_O;M>5B8UhyH}6HS+hu${{RF|Xjyjyh8|Eb2jh-T zjx19NFBMDkcZqhBahiF-hHfp zS62qelg;}F13ymuYb<;s<;n72Q(#~21+)JEgh`Hn);g_JX&j$8Cy+6p->Xii2lV~J z7zETw#y{6Ot&vKm6^K5k{{W_|EBKkDR=}y!2;)y~%5CEr&Y6C5uCt6mBO2i6USWVR zb>W<6Kncz`)z44Shb>U!A$VWERQb<+7TIvNs1NtIAIB$634}KLe6c|-RaA8Xod6Rm zN0wAz2x6^`$VaN2j`~$Zamh_AB3MKS%w%B}@^Zs#2k(HNUNAu#fYr4PMzp1v#|svV zB!d|v3>5nxQJ`Dgw`p(N5vn7BNbp2NstkJZ#(w=EG|HG}dO3wUq-vpyNi@DDBLe`I z=W8}Gfx#Z0x)_)gckuTpakYaCYQouesG_83wxo*d*}E%ykH?&Q>z8TPx}?n}! zV?sAplg5zbft+{b=zDSbk}xuP&OLQ%H?UnA+uT{4qtCtf65A#iW-E*gOOD*}_-b_w zuq0u;al-B0^CJO9PVD&oi6jI0=sTk6w@WO$cDRI*wBV02fL<)UQI zr=sde-C3tbfrmLp$U0R)X5CCy*>0qxnpje3(NVD?vS+^xpby+NXHN*8J=>rldibgb z?>YqOn`GBMpGxSYcZla6Q^?LVnu~2pAuyRo+>MXnq%_o;DIGibES?oDgy8siD|+by|8! zib_ICJB9NP%xRh`87@&tB_LN-ZKp05oM*AnD;m|o5=cPwAd#*bnY%vaKR|JzpiI@O z?Uiz@J7ZrhGQ@vayb<{739(mWh(Y_LU+18+ZmyD!DHO;HAYq=&4`L3fCz`$oWG^C+ za6!)+N+WU(D~eIdW2q$^aD7MSHDP9?o~n|0siQJQD(zOtR&<6Dr|%5WE%V8PPzPeRtX_h#-E@{(9iGRs)X({{S)k^`Bf8;YTRn zEVw<6NYgP_*Nz0z{%2I8CnG?1f}FBTCL|mXbKh6jIHaC~Y-sF!IPd`PVWu2L$L ztPH^NBqJmruB|S0veriw^oDKe68N4OILB;}`DmeP52-1UV_o6Y;CdeVa-)0zn7mAZ zp2ToJ+~bb+v2I)m2w~0oaa`N4nVh9)!b*lTFn^2PY{=MS5!Ml$t=Kq zlE4pB^~Qy0{{TzO^l+D_g*;;^mFT!v$}uGPfa5z)U=A32
    PvcIO%c!)^jb&^2q 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 +# +# 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. +# + +if BOARD_FOXCONN_D41S + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select CPU_INTEL_SOCKET_FCBGA559 + select NORTHBRIDGE_INTEL_PINEVIEW + select SOUTHBRIDGE_INTEL_I82801GX + select SUPERIO_ITE_IT8721F + select HAVE_ACPI_TABLES + select HAVE_ACPI_RESUME + select BOARD_ROMSIZE_KB_1024 + select MAINBOARD_HAS_NATIVE_VGA_INIT + select INTEL_INT15 + select HAVE_OPTION_TABLE + select HAVE_CMOS_DEFAULT + select DRIVERS_I2C_CK505 + select INTEL_GMA_HAVE_VBT + +config MAX_CPUS + int + default 4 + +config MAINBOARD_DIR + string + default foxconn/d41s + +config MAINBOARD_PART_NUMBER + string + default "D41S" + +endif # BOARD_FOXCONN_D41S diff --git a/src/mainboard/foxconn/d41s/Kconfig.name b/src/mainboard/foxconn/d41s/Kconfig.name new file mode 100644 index 0000000000..9462f94269 --- /dev/null +++ b/src/mainboard/foxconn/d41s/Kconfig.name @@ -0,0 +1,2 @@ +config BOARD_FOXCONN_D41S + bool "D41S, D42S, D51S, D52S" diff --git a/src/mainboard/foxconn/d41s/Makefile.inc b/src/mainboard/foxconn/d41s/Makefile.inc new file mode 100644 index 0000000000..f3d7e76263 --- /dev/null +++ b/src/mainboard/foxconn/d41s/Makefile.inc @@ -0,0 +1,2 @@ +ramstage-y += cstates.c +romstage-y += gpio.c diff --git a/src/mainboard/foxconn/d41s/acpi/ec.asl b/src/mainboard/foxconn/d41s/acpi/ec.asl new file mode 100644 index 0000000000..31eb392c8a --- /dev/null +++ b/src/mainboard/foxconn/d41s/acpi/ec.asl @@ -0,0 +1 @@ +/* Dummy file - No license required. */ diff --git a/src/mainboard/foxconn/d41s/acpi/ich7_pci_irqs.asl b/src/mainboard/foxconn/d41s/acpi/ich7_pci_irqs.asl new file mode 100644 index 0000000000..23c39ef5f2 --- /dev/null +++ b/src/mainboard/foxconn/d41s/acpi/ich7_pci_irqs.asl @@ -0,0 +1,36 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2017 Arthur Heymans + * + * 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. + */ + +/* This is board specific information: + * IRQ routing for the 0:1e.0 PCI bridge of the ICH7 + */ + +If (PICM) { + Return (Package() { + Package() { 0x0000ffff, 0, 0, 0x15}, + Package() { 0x0000ffff, 1, 0, 0x16}, + Package() { 0x0000ffff, 2, 0, 0x17}, + Package() { 0x0000ffff, 3, 0, 0x14}, + Package() { 0x0001ffff, 0, 0, 0x13}, + }) +} Else { + Return (Package() { + Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKF, 0}, + Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKG, 0}, + Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKH, 0}, + Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKE, 0}, + Package() { 0x0001ffff, 0, \_SB.PCI0.LPCB.LNKD, 0}, + }) +} diff --git a/src/mainboard/foxconn/d41s/acpi/platform.asl b/src/mainboard/foxconn/d41s/acpi/platform.asl new file mode 100644 index 0000000000..6c92a4ed47 --- /dev/null +++ b/src/mainboard/foxconn/d41s/acpi/platform.asl @@ -0,0 +1,28 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2015 Damien Zammit + * + * 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. + */ + +Method(_PIC, 1) +{ + /* Remember the OS' IRQ routing choice. */ + Store(Arg0, PICM) +} + +/* SMI I/O Trap */ +Method(TRAP, 1, Serialized) +{ + Store (Arg0, SMIF) /* SMI Function */ + Store (0, TRP0) /* Generate trap */ + Return (SMIF) /* Return value of SMI handler */ +} diff --git a/src/mainboard/foxconn/d41s/acpi/superio.asl b/src/mainboard/foxconn/d41s/acpi/superio.asl new file mode 100644 index 0000000000..07742e88a2 --- /dev/null +++ b/src/mainboard/foxconn/d41s/acpi/superio.asl @@ -0,0 +1,31 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2016 secunet Security Networks AG + * Copyright (C) 2017 Samuel Holland + * + * 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. + */ + +#undef SUPERIO_DEV +#undef SUPERIO_PNP_BASE +#undef IT8721F_SHOW_SP1 +#undef IT8721F_SHOW_SP2 +#undef IT8721F_SHOW_EC +#undef IT8721F_SHOW_KBCK +#undef IT8721F_SHOW_KBCM +#define SUPERIO_DEV SIO0 +#define SUPERIO_PNP_BASE 0x2e +#define IT8721F_SHOW_SP1 +#define IT8721F_SHOW_SP2 +#define IT8721F_SHOW_EC +#define IT8721F_SHOW_KBCK +#define IT8721F_SHOW_KBCM +#include diff --git a/src/mainboard/foxconn/d41s/acpi_tables.c b/src/mainboard/foxconn/d41s/acpi_tables.c new file mode 100644 index 0000000000..92688bfc3a --- /dev/null +++ b/src/mainboard/foxconn/d41s/acpi_tables.c @@ -0,0 +1,21 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2015 Damien Zammit + * + * 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 + +void acpi_create_gnvs(global_nvs_t *gnvs) +{ +} diff --git a/src/mainboard/foxconn/d41s/board_info.txt b/src/mainboard/foxconn/d41s/board_info.txt new file mode 100644 index 0000000000..965fcdabf9 --- /dev/null +++ b/src/mainboard/foxconn/d41s/board_info.txt @@ -0,0 +1,6 @@ +Category: desktop +Board URL: http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us0000481 +ROM package: DIP-8 +ROM protocol: SPI +ROM socketed: y +Flashrom support: y diff --git a/src/mainboard/foxconn/d41s/cmos.default b/src/mainboard/foxconn/d41s/cmos.default new file mode 100644 index 0000000000..41098be2bb --- /dev/null +++ b/src/mainboard/foxconn/d41s/cmos.default @@ -0,0 +1,5 @@ +boot_option=Fallback +debug_level=Debug +power_on_after_fail=Disable +nmi=Enable +gfx_uma_size=8M diff --git a/src/mainboard/foxconn/d41s/cmos.layout b/src/mainboard/foxconn/d41s/cmos.layout new file mode 100644 index 0000000000..9b9a084fc0 --- /dev/null +++ b/src/mainboard/foxconn/d41s/cmos.layout @@ -0,0 +1,90 @@ +## +## 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 + + +# ----------------------------------------------------------------- +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: bootloader +416 512 s 0 boot_devices + +# coreboot config options: cpu +944 1 e 2 hyper_threading +#945 7 r 0 unused + +# coreboot config options: northbridge +952 3 e 11 gfx_uma_size + +# 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 +11 0 8M +11 1 16M +11 2 32M +11 3 48M +11 4 64M +11 5 128M +11 6 256M + +# ----------------------------------------------------------------- +checksums + +checksum 392 983 984 diff --git a/src/mainboard/foxconn/d41s/cstates.c b/src/mainboard/foxconn/d41s/cstates.c new file mode 100644 index 0000000000..b7eb6df341 --- /dev/null +++ b/src/mainboard/foxconn/d41s/cstates.c @@ -0,0 +1,22 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2015 Damien Zammit + * + * 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 + +int get_cst_entries(acpi_cstate_t **entries) +{ + return 0; +} diff --git a/src/mainboard/foxconn/d41s/data.vbt b/src/mainboard/foxconn/d41s/data.vbt new file mode 100644 index 0000000000000000000000000000000000000000..55707378e3f28265463bd9bda254347b54742ac0 GIT binary patch literal 3730 zcmdT`O>7%Q6n?Wm_IkYQY_@6RSRtK2RW_kb*G-AiD2TQ5gI(OjanfKaq^7Mcnkuv* zO`-fqSs?sKRMhl}rCBP^R9=o?Mo-|7wK3tqAP92;s7TECUBMHWd zG@3j)K2cx;C!ac0oa$oS8b`DEuD14FjK$+S@VC>lb~9#mc0FiySsfbf?duubn@wjD zBk92bHkf0*>EXoiaNpi!=5dzI4W`n`^hjT?MpruzJ;x`Xn;L)e$TTy1S{O20+ws-T zT$fqT@u|r+mYA4eIX>nD%N0))r=BSm+BC}PE{Tdn0Ei4V1PEDV&?^O`5TSx9iA0t) zIZT4`M!8RpNc~bqO4-7B5F~(RfO~bw^k*wBp-%MctfB*0QC(K9tlixKBCbtp1Z(H6 zj?S)bJK5Wx+LOuVMn?1dpKxA!`IXriEFN9y4%Q=t!RBBSd@7o7T@>J!*a>mzGRy=l z_$UyCudw`pjHyBDyof;5$3_=Lk@@W{h&T>Rzg;fVFJb8vmdlmd|F5<1=g_R< zB1BeM$zS052aF->`lew2#Gux~9*{s(x*fcUQ1$_6BAfym2?4n!?}toaJJh@hp{4C} zhuzUvNUn-bp9LNG6-5-D`~p@aTmwkhyuB#5H~Dv6wae2Ps+;bW$u}^lL9hN!>fVJw z%o`BwzTLq8vS(90dL_CSio%bwE7oiTpgskK2Cx&b)r!8+;dMlD z?>MzE6x(X&&s8+3hi&W7g`Kv2siKLR&@m%=u~R!{WWJXGSR*C(qlmQt-&xc(n9u;f z;nM&m!oYhjgY7@t$Z{>lSmLkf~53 zM(Gx6=BQDi^cXegsPQ4CpHTBUHGZX32%A>eNQP-9Y(5`0PKW6`Ve_-FaWzaA!e&G@ zm`Yn!Gp`y)RXVMj@2SSeD!r(hKdHu|N)^rQ(2SHubDHUB##xQdY33K2aZRJG^O7Sh z5QksPBG`%%fGfegpt|@A(GlgE`@upyf=95$kan34NXLdXDlNatore&YxlKat6*O^b~lL%qYr}br~%j7QXj`*Z` zKFO?#({h9F9jmugtA|_rdxzI5kGNdT3C91@lSBE9tkbDnr#wzI9uvOTo&_y7j5)Aj jOxJ6 +# Copyright (C) 2018 Arthur Heymans +# +# 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. +# + +chip northbridge/intel/pineview # Northbridge + register "gfx.use_spread_spectrum_clock" = "0" + register "use_crt" = "1" + register "use_lvds" = "0" + + device cpu_cluster 0 on # APIC cluster + chip cpu/intel/socket_FCBGA559 # CPU + device lapic 0 on end # APIC + end + end + device domain 0 on # PCI domain + device pci 0.0 on end # Host Bridge + device pci 1.0 off end # PEG + device pci 2.0 on end # Integrated graphics controller + device pci 2.1 off end # Integrated graphics controller 2 + chip southbridge/intel/i82801gx # Southbridge + register "pirqa_routing" = "0x0b" + register "pirqb_routing" = "0x0b" + register "pirqc_routing" = "0x0b" + register "pirqd_routing" = "0x0b" + register "pirqe_routing" = "0x0b" + register "pirqf_routing" = "0x0b" + register "pirqg_routing" = "0x0b" + register "pirqh_routing" = "0x0b" + register "sata_ahci" = "0x1" + register "sata_ports_implemented" = "0x3" + register "gpe0_en" = "0x441" + + device pci 1b.0 on end # Audio + device pci 1c.0 on end # PCIe 1 + device pci 1c.1 on end # PCIe 2 (NIC) + device pci 1c.2 off end # PCIe 3 + device pci 1c.3 off end # PCIe 4 + device pci 1d.0 on end # USB + device pci 1d.1 on end # USB + device pci 1d.2 on end # USB + device pci 1d.3 on end # USB + device pci 1d.7 on end # USB + device pci 1e.0 on end # PCI bridge + device pci 1f.0 on # ISA bridge + chip superio/ite/it8721f # Super I/O + device pnp 2e.0 off end # Floppy + device pnp 2e.1 on # COM1 + io 0x60 = 0x3f8 + irq 0x70 = 4 + end + device pnp 2e.2 on # COM2 + io 0x60 = 0x2f8 + irq 0x70 = 3 + end + device pnp 2e.3 on # PP + io 0x60 = 0x378 + io 0x62 = 0 + irq 0x70 = 7 + end + device pnp 2e.4 on # EC + io 0x60 = 0xa10 + io 0x62 = 0xa00 + irq 0x70 = 0 + end + device pnp 2e.5 on # PS/2 keyboard / mouse + io 0x60 = 0x60 + io 0x62 = 0x64 + irq 0x70 = 1 # PS/2 keyboard interrupt + end + device pnp 2e.6 on # PS/2 mouse + irq 0x70 = 12 + end + device pnp 2e.7 off end # GPIO + device pnp 2e.a on # CIR + io 0x60 = 0x3e0 + irq 0x70 = 10 + end + end + end + device pci 1f.1 off end + device pci 1f.2 on end # SATA + device pci 1f.3 on # SMbus + chip drivers/i2c/ck505 + register "mask" = "{ 0x00, 0x80, 0xff, 0xff, + 0xff }" + register "regs" = "{ 0x00, 0x80, 0xfe, 0xff, + 0xfc }" + device i2c 69 on end + end + end + device pci 1f.4 off end + device pci 1f.5 off end + device pci 1f.6 off end + end + end +end diff --git a/src/mainboard/foxconn/d41s/dsdt.asl b/src/mainboard/foxconn/d41s/dsdt.asl new file mode 100644 index 0000000000..621b87dc7a --- /dev/null +++ b/src/mainboard/foxconn/d41s/dsdt.asl @@ -0,0 +1,41 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2007-2009 coresystems GmbH + * Copyright (C) 2015 Damien Zammit + * + * 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. + */ + +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, // DSDT revision: ACPI v2.0 + "COREv4", // OEM id + "COREBOOT", // OEM table id + 0x20090419 // OEM revision +) +{ + #include "acpi/platform.asl" + #include + + #include + + Scope (\_SB) { + Device (PCI0) + { + #include + #include + } + } + + /* Chipset specific sleep states */ + #include +} diff --git a/src/mainboard/foxconn/d41s/gpio.c b/src/mainboard/foxconn/d41s/gpio.c new file mode 100644 index 0000000000..e88e4db0c6 --- /dev/null +++ b/src/mainboard/foxconn/d41s/gpio.c @@ -0,0 +1,163 @@ +/* + * 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_NATIVE, + .gpio2 = GPIO_MODE_NATIVE, + .gpio3 = GPIO_MODE_NATIVE, + .gpio4 = GPIO_MODE_NATIVE, + .gpio5 = GPIO_MODE_NATIVE, + .gpio6 = GPIO_MODE_GPIO, + .gpio7 = GPIO_MODE_GPIO, + .gpio8 = GPIO_MODE_GPIO, + .gpio9 = GPIO_MODE_GPIO, + .gpio10 = GPIO_MODE_GPIO, + .gpio11 = GPIO_MODE_NATIVE, + .gpio12 = GPIO_MODE_GPIO, + .gpio13 = GPIO_MODE_GPIO, + .gpio14 = GPIO_MODE_GPIO, + .gpio15 = GPIO_MODE_GPIO, + .gpio16 = GPIO_MODE_NATIVE, + .gpio17 = GPIO_MODE_NATIVE, + .gpio18 = GPIO_MODE_NATIVE, + .gpio19 = GPIO_MODE_NATIVE, + .gpio20 = GPIO_MODE_NATIVE, + .gpio21 = GPIO_MODE_NATIVE, + .gpio22 = GPIO_MODE_NATIVE, + .gpio23 = GPIO_MODE_NATIVE, + .gpio24 = GPIO_MODE_GPIO, + .gpio25 = GPIO_MODE_GPIO, + .gpio26 = GPIO_MODE_GPIO, + .gpio27 = GPIO_MODE_GPIO, + .gpio28 = GPIO_MODE_GPIO, + .gpio29 = GPIO_MODE_NATIVE, + .gpio30 = GPIO_MODE_NATIVE, + .gpio31 = GPIO_MODE_NATIVE, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_direction = { + .gpio0 = GPIO_DIR_OUTPUT, + .gpio6 = GPIO_DIR_OUTPUT, + .gpio7 = GPIO_DIR_OUTPUT, + .gpio8 = GPIO_DIR_OUTPUT, + .gpio9 = GPIO_DIR_OUTPUT, + .gpio10 = GPIO_DIR_OUTPUT, + .gpio12 = GPIO_DIR_OUTPUT, + .gpio13 = GPIO_DIR_OUTPUT, + .gpio14 = GPIO_DIR_OUTPUT, + .gpio15 = GPIO_DIR_OUTPUT, + .gpio24 = GPIO_DIR_OUTPUT, + .gpio25 = GPIO_DIR_OUTPUT, + .gpio26 = GPIO_DIR_OUTPUT, + .gpio27 = GPIO_DIR_OUTPUT, + .gpio28 = GPIO_DIR_OUTPUT, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_level = { + .gpio0 = GPIO_LEVEL_LOW, + .gpio6 = GPIO_LEVEL_LOW, + .gpio7 = GPIO_LEVEL_LOW, + .gpio8 = GPIO_LEVEL_LOW, + .gpio9 = GPIO_LEVEL_LOW, + .gpio10 = GPIO_LEVEL_LOW, + .gpio12 = GPIO_LEVEL_LOW, + .gpio13 = GPIO_LEVEL_LOW, + .gpio14 = GPIO_LEVEL_LOW, + .gpio15 = GPIO_LEVEL_LOW, + .gpio24 = GPIO_LEVEL_LOW, + .gpio25 = GPIO_LEVEL_LOW, + .gpio26 = GPIO_LEVEL_LOW, + .gpio27 = GPIO_LEVEL_LOW, + .gpio28 = GPIO_LEVEL_LOW, +}; + +static const struct pch_gpio_set1 pch_gpio_set1_reset = { +}; + +static const struct pch_gpio_set1 pch_gpio_set1_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_NATIVE, + .gpio36 = GPIO_MODE_NATIVE, + .gpio37 = GPIO_MODE_NATIVE, + .gpio38 = GPIO_MODE_GPIO, + .gpio39 = GPIO_MODE_GPIO, + .gpio40 = GPIO_MODE_NATIVE, + .gpio41 = GPIO_MODE_NATIVE, + .gpio42 = GPIO_MODE_NATIVE, + .gpio43 = GPIO_MODE_NATIVE, + .gpio44 = GPIO_MODE_NATIVE, + .gpio45 = GPIO_MODE_NATIVE, + .gpio46 = GPIO_MODE_NATIVE, + .gpio47 = GPIO_MODE_NATIVE, + .gpio48 = GPIO_MODE_NATIVE, + .gpio49 = GPIO_MODE_NATIVE, + .gpio50 = GPIO_MODE_NATIVE, + .gpio51 = GPIO_MODE_NATIVE, + .gpio52 = GPIO_MODE_NATIVE, + .gpio53 = GPIO_MODE_NATIVE, + .gpio54 = GPIO_MODE_NATIVE, + .gpio55 = GPIO_MODE_NATIVE, + .gpio56 = GPIO_MODE_NATIVE, + .gpio57 = GPIO_MODE_NATIVE, + .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_INPUT, + .gpio34 = GPIO_DIR_INPUT, + .gpio38 = GPIO_DIR_INPUT, + .gpio39 = GPIO_DIR_INPUT, +}; + +static const struct pch_gpio_set2 pch_gpio_set2_level = { +}; + +static const struct pch_gpio_set2 pch_gpio_set2_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, + }, +}; diff --git a/src/mainboard/foxconn/d41s/hda_verb.c b/src/mainboard/foxconn/d41s/hda_verb.c new file mode 100644 index 0000000000..dbe383e6f3 --- /dev/null +++ b/src/mainboard/foxconn/d41s/hda_verb.c @@ -0,0 +1,39 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2018 Arthur Heymans + * + * 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[] = { + /* coreboot specific header */ + 0x10ec0662, + 0x105b0d55, // Subsystem ID + 0x0000000a, // Number of entries + + /* Pin Widget Verb Table */ + AZALIA_PIN_CFG(0, 0x14, 0x01014c10), + AZALIA_PIN_CFG(0, 0x15, 0x411111f0), + AZALIA_PIN_CFG(0, 0x16, 0x411111f0), + AZALIA_PIN_CFG(0, 0x18, 0x01a19c30), + AZALIA_PIN_CFG(0, 0x19, 0x02a19c31), + AZALIA_PIN_CFG(0, 0x1a, 0x0181343f), + AZALIA_PIN_CFG(0, 0x1b, 0x02214c1f), + AZALIA_PIN_CFG(0, 0x1c, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1d, 0x4005c603), + AZALIA_PIN_CFG(0, 0x1e, 0x99430120), +}; + +const u32 pc_beep_verbs[] = { +}; +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/foxconn/d41s/mainboard.c b/src/mainboard/foxconn/d41s/mainboard.c new file mode 100644 index 0000000000..3263f9a065 --- /dev/null +++ b/src/mainboard/foxconn/d41s/mainboard.c @@ -0,0 +1,27 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2015 Damien Zammit + * + * 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 + +static void mainboard_enable(struct device *dev) +{ + install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_NONE, + GMA_INT15_PANEL_FIT_DEFAULT, GMA_INT15_BOOT_DISPLAY_CRT, 0); +} + +struct chip_operations mainboard_ops = { + .enable_dev = mainboard_enable, +}; diff --git a/src/mainboard/foxconn/d41s/romstage.c b/src/mainboard/foxconn/d41s/romstage.c new file mode 100644 index 0000000000..3f81e6765b --- /dev/null +++ b/src/mainboard/foxconn/d41s/romstage.c @@ -0,0 +1,147 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2015 Damien Zammit + * Copyright (C) 2018 Arthur Heymans + * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define SERIAL_DEV PNP_DEV(0x2e, IT8721F_SP1) + +/* Early mainboard specific GPIO setup */ +static void mb_gpio_init(void) +{ + pci_devfn_t dev; + + /* Southbridge GPIOs. */ + dev = PCI_DEV(0x0, 0x1f, 0x0); + + /* Set the value for GPIO base address register and enable GPIO. */ + pci_write_config32(dev, GPIO_BASE, (DEFAULT_GPIOBASE | 1)); + pci_write_config8(dev, GPIO_CNTL, 0x10); + + setup_pch_gpios(&mainboard_gpio_map); +} + +static void nm10_enable_lpc(void) +{ + /* Disable Serial IRQ */ + pci_write_config8(PCI_DEV(0, 0x1f, 0), SERIRQ_CNTL, 0xd0); + /* Decode range */ + pci_write_config16(PCI_DEV(0, 0x1f, 0), LPC_IO_DEC, + pci_read_config16(PCI_DEV(0, 0x1f, 0), LPC_IO_DEC) | 0x0010); + pci_write_config16(PCI_DEV(0, 0x1f, 0), LPC_EN, CNF1_LPC_EN | KBC_LPC_EN + | FDD_LPC_EN | LPT_LPC_EN | COMB_LPC_EN + | COMA_LPC_EN); + + /* Environment Controller */ + pci_write_config32(PCI_DEV(0, 0x1f, 0), GEN1_DEC, 0x00fc0a01); +} + +static void rcba_config(void) +{ + /* Set up virtual channel 0 */ + RCBA32(0x0014) = 0x80000001; + RCBA32(0x001c) = 0x03128010; + + /* Enable IOAPIC */ + RCBA8(OIC) = 0x03; + + RCBA32(FD) = FD_PCIE6 | FD_PCIE5 | FD_PCIE4 | FD_PCIE3 | FD_ACMOD + | FD_ACAUD | FD_PATA; + RCBA32(FD) |= 1; +} + +void mainboard_romstage_entry(unsigned long bist) +{ + const u8 spd_addrmap[4] = { 0x50, 0x51, 0, 0 }; + int cbmem_was_initted; + int s3resume = 0; + int boot_path; + + timestamp_init(get_initial_timestamp()); + timestamp_add_now(TS_START_ROMSTAGE); + + if (bist == 0) + enable_lapic(); + + /* Disable watchdog timer */ + RCBA32(GCS) = RCBA32(GCS) | 0x20; + + /* Set southbridge and Super I/O GPIOs. */ + mb_gpio_init(); + + nm10_enable_lpc(); + ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE); + console_init(); + + report_bist_failure(bist); + enable_smbus(); + + pineview_early_initialization(); + + post_code(0x30); + + s3resume = southbridge_detect_s3_resume(); + + if (s3resume) { + boot_path = BOOT_PATH_RESUME; + } else { + if (MCHBAR32(0xf14) & (1 << 8)) /* HOT RESET */ + boot_path = BOOT_PATH_RESET; + else + boot_path = BOOT_PATH_NORMAL; + } + + printk(BIOS_DEBUG, "Initializing memory\n"); + timestamp_add_now(TS_BEFORE_INITRAM); + sdram_initialize(boot_path, spd_addrmap); + timestamp_add_now(TS_AFTER_INITRAM); + printk(BIOS_DEBUG, "Memory initialized\n"); + + post_code(0x31); + + quick_ram_check(); + + rcba_config(); + + cbmem_was_initted = !cbmem_recovery(s3resume); + + if (!cbmem_was_initted && s3resume) { + /* Failed S3 resume, reset to come up cleanly */ + outb(0x6, 0xcf9); + halt(); + } + + romstage_handoff_init(s3resume); +}