From e4438e4220234c445bea897f48061786ce402240 Mon Sep 17 00:00:00 2001 From: Andre Richter Date: Fri, 15 Feb 2019 20:27:32 +0100 Subject: [PATCH] Add 4 KiB page table image for virtual memory lesson --- 0C_virtual_memory/README.md | 7 + doc/page_tables_4KiB.png | Bin 0 -> 89192 bytes doc/page_tables_4KiB.svg | 1556 +++++++++++++++++++++++++++++++++++ 3 files changed, 1563 insertions(+) create mode 100644 doc/page_tables_4KiB.png create mode 100644 doc/page_tables_4KiB.svg diff --git a/0C_virtual_memory/README.md b/0C_virtual_memory/README.md index 2d713220..c06ef170 100644 --- a/0C_virtual_memory/README.md +++ b/0C_virtual_memory/README.md @@ -27,6 +27,13 @@ Hopefully, in a later tutorial, we will write or use (e.g. from the `cortex-a` crate) proper modules for page table handling, that, among others, cover topics such as using recursive mapping for maintenace. +## Adress translation with the 4 KiB LVL3 table + +The following block diagram shows address translation by example of the UART's +Control Register (CR). + +![4 KiB translation block diagram](../doc/page_tables_4KiB.png) + ## Zero-cost abstraction The MMU init code is a good example to see the great potential of Rust's diff --git a/doc/page_tables_4KiB.png b/doc/page_tables_4KiB.png new file mode 100644 index 0000000000000000000000000000000000000000..a06e7929ba1355a31cd8082514b830aedc9ccaa1 GIT binary patch literal 89192 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

wX8B`xmPlZkR(;v} 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%0DxGZ zWqIfy&K8w)CW*a@!P%Xbok4V6a*BZe&VIX#ozB<9L2EPsY8msIIsPv-aTeur!tU10@a?SXLzG8?B- z2_>*ibaiogH@O|9lG?Fzr}<8{`N!Wf9yc9~2V)L8ym(=(wpuk(HiL^7iJAr(@y&i& zSy>fBRvqs@{130-b}5bU#hzlyab$PoAgz6wK*h4bclXS65&jbj-}Yh7B9Ic6tSjpu}!} z{W_8PV%?>sH)jR*PRxSW1wk)FdYGB@8=8usxS(-LJ`3W*c_2LDj-NbfKuahJ{PF$3 zUN8uL6niKxZUD?#Jl|YC+o6+&7ccS~eS(VT7B{yQRPVF;7a}mH3ZiM?uu|^YHMlB* z6;bWdpUcBY)3->0gOk1DqXkTWznG+Hf##_mtTu?&ZRFzupmo(1C-ndN)Y2j>An#x6G6c60MTWW(t3 z#U{!?mE;28LnsNLJcF+C6IrWqt{6j&j_HmLQD7lZn8fHVR1xr778cHG!$j#Gb@8s} zy^wPyDhMF!X8$~~i8R5vwZcJ0rtH%vsUe|?USi+^+DEag=D?&v=@76PAinNgJ1?r3 z)YKB(GTw=$_=TNs|Mn1Yicw7ZMr${2IRaXKNY*<;gzaBOqD>WiRYFo4CB4B;e-e@)Q%Zv(VA^#BuSPpa}c_4l+mc@9Dp7c>Xik3HH1>>FG@Tm+@PhV1)q6=eV!90M7ESZnF}q7y*VTd+wZJ zfrB*&b>4xnq2PADv9A>r68a9oO~a%oo;cLd#0BFPH9ZuSfYgKu z+p_w7q}b_Oc3x5O>iR%wqLK(o;R&&0r%%5kljJMw9#H%j~?oy4u?2fTekP!_isZG#U5(>`rH^_udaeHj^0ceXMZ6 z7+pX(0BRw-zz=gge!UQD*5t&6MX}XpsJ~@+5;h0=&nYJIXB>X z*-Jysyz8C%?WvkCYJ+x~DR}=5t*|6_(N5^d(7nIeKQc_^k8ATneR!#`Yec=I6Jhl42 z1H}r>#W+7$6hP6}^}3r}fUTxyWDM^x1RKHES%rDE@fd<|=^c=theXpwv z6cH1$FGTN6tc`+#f-r-cpj9hBE$wqmaL1D;2rD1?B_F}m?Tf{oD;;@Dnc zis#{zcXf=Moln_^pYB#YsQK#uK!Yv)17hOxqTM?ObM+7y^g8?}9xOnq z6ivp2K;gWhVI&nii-MF-bo5UYq)XtNa8QQcNu!DZ2MU`P9UJ?3!v2SeF8kZOsLcOmKz13x9v*U%c|G@<)Ytr(I3--+gUlw`*VCL<` zw5h{~6=5SW zVfQ{@&0*dLP;@zRy8F<Jsm%gF#1o}Qj)X>McV zJ~MR5BHpdHC7PCx(}zvS4K?#v=z?)_zD76%b&2I=SBnJ%WlWnv9xgLEH70}*1(Owv z#e?FYS*N9~4cMIL&>;~~QJ904l>`)K5sWnPOTu-64%WPq04N*}05O1h;U^eS#Cd@H zzkUBMgvrl3(3zGeCnraN178zNcZlVT4%;5);rRl({p#-9x0gVT5X^d6W6G!XKFa;v zVXgO`7UPIYV7(4Pqkxwe)yDAr`$`m5x8zO81mJRS)gP5e0uAS#mXpcbVS&%ZJGkC#ziAA>jtWDz5>^Hy50@` z*B&yG|AH`6xl%Cbl1LNd97fO`LLe?Cllf#E{n z*O7OrcuIV(sDSW&Ju(7{v#>4eGUg6=ItWZrJ-cpoEfE!Sw0bq}-6E$&u+`LYszXA~ zIkK};&CbpOY<>|91_&}OJPG_)RCEb%#WuuAM)VOAoY4jn>s|~2h0%bwLR<_8xT>My zIEW#53!XE)+vs(!kgNLqR3wu0XAmwRCRYrT0Hto2(4n>b0u-l42qpImuWq4=eCt;H z+VH5V@NaiAb}<0Kp#Ni9ATg{36;N#LKmKxuvnKA|0kDLe${Wb0Sb6_oPdzrWlT- zf2Xhw;&SXqj?_$S-ZxW%64K)x-?Swx3sFo(Eg6xG9;_KoF{=vqZ)ezu2y00DTy0{aOyEZ4|~yJwDS}O3gwql@0vHlkWZaB zXfMH<>y=Zhp4~b;co!cGxA1n9iGcxg>l;_NBw}VpyO!{z0ICD(JSHRr+vo_!?{CUS zKZ)#*|DuAg0;*0bdK<3{Vj?(H{E2WDKKE`FgXCExf$Z)V^)^aKnmn$%d>B~x7fHLV z61-8z?~6VwK}ycJCxk>ndB`~I?j${lRDbu^ZW2@UaajrC+L;WG6iCu6hm7Ybk-kfu z{i6DxtBOpO4CMs4^Il> z^GPJ?%JsjEufNfg{%g`>$tsGqU07p)ZTIAftM1>v{x|Q3$DSW!sQ$A4HAqz2(;DSb z%QAP@-zd>pe~Hm+l72v9{i3}O%}sWw%0^4A|BdR{J6!aOGV%3EB-V$TCOgWHXOq@1 zDnaFqo13IBrq;8AO?Y_su9TYNowmBAE9ClQq+8Tx#B~g^Vsc|w7d~b02{|buLPk!$ z3svJ@{mVkr#jTRy8Wf>$2z~hSxhe*A#kF&Sz6zj|sp{!rJpJd1qx{S+hJT}~NuCZd z+KikR4!(Xt7qW~oTcAeUhud7If3dTO&!NtQ#J)}X{c%}u)pCtJA&8}KB6*0>)027? z!*If4Pes88tKV*EUPm{Pf*N2Q5bf5YdW>TT;rL8FfjG+3#*AQh-KX5EgOD39l%+u@ z($hPP^M}X)g>iz25U=G(*gm`@CGP~J24Te3zN_dvJd)qF4Gb`lW>_$xtD<0MrXcH( z&=I6EAlJ&=v_7&wS9p`!?MR2;>A^9M^qWY~j9{{CFq!E_&Bf%Db7=44w8-rWhe4A|zI$(l&ZnFgd^kWOtzJk| z<9J(Fqq#ieF+<}K9)>;pEC2P(KkQYNm6Ysy!*!N;2P28(c#?hFXM}}Fn30;F>fU1d zub)U{1Rme!joC!RXp^#EPXB(Aq#CIz9v-AndZQaNqUXve^LLOuMgK3(>H~Y$iN3F@ z>FUo9k4S$zyg%ziO{NEftdRYI?d?xb$o4HKuC+(%N)Dv2_LTe*!}uaMufMmrefNAh z(+(u$ooYsSbkzkJz4!T_uC{MoC=qb(3hlSf1(}HxD z9$jg$C96;42<7{7?}T*Mvy-(ebIN26SKI5?bgCRV{_5OtIGDzI{(dqieq-U1bhGCU zgL3PF$VRzo?n(Z?C4IX|5@JL-HZDGSpYU9ek)?d3JSLl*^3&@%i+34{2eRcqRndJo zyitlGFE2!|O={yR_qN2(Cfy|gS&R3@isZV*7i_I>Z2SBn!V8@x z$b^gZ51Q}Jc=e1nFmLcnZNx_RNfPPqJ+`%W=o}u{A72~cFQlHH%Uv*l#r)eRwh|;^)jYSn3>Y3&J>#tUfb>WtutGJ zBJ@_^*VE?&6&F_ZHjun`V33OE!ENHyQa_}xh>0=e+0C@gSaf z>JHn7ZbiQ5N*;0EzQ5byh+UXWev2smJa@#`r5@@A>tl=s!)w;V7kCz4ULfPMHZ35L z6k(1@FYeZGdsET*el3x1&5DhgUt6)i!J}<^A^mCP?5;K2Jah3$w~fwAfqFU$?FR$x zZm;UwTvj$^U7O2}SzNpQrL?!Nb6fiFZ7Sa_+;Pdrp6kmXVnHJ%Cn@x&F6fKnVo#-b zvd3E3D*Zt|4%G&(iRHE1>Y`h&w0h-!JMcRDX$QHS^-M{1f8WEDnv%6=S!9*Sq) z1lG*19cf$ik7vBueRLn!0{5x$64me(&aM0UBrXYPA0&CoeG1x6Vvs(6|8d8Z;nwYM zGHBWiS9|o)$98$7Bt(yO^DK#W888D7zh|<)`L9>Byz&x(4pOe%)L3oEKqb&BRg1 zBYqF^m3(t^PfAf3x&#I!S?oPi%viVd>CREhgY}(8<{q3|!~QY6^{zS4wg!c9%jV6Q zztRxddsB63oDQzDp9ukSm!h4)4M;jTxg~*(#FrD^TrNO|iy!s_WJdAfbaY zxWSgJ^3MuDxJKsx*}~(4fCe<4Xbp?Vc&ykQEI`LT`Y%hp`;Ff<#$&-jw){NjpZv?r zM#%&opWHcgbU))iPM4&!x#HYvE~Yjjt<1?0{x5#i?BHXQzHrP*LXH{tpN5)iXZi6* zkH{j0=jVfX{^fGbs8!?{*A|EQK-k2%&APga7L~|c0g3>-0yPn!gtV>Ghu2`F!@mu$ zziMBJhD5RLm%Vi>^WD3@NWdue0XZI8YeXX`oiAEbYb&ZLi%AE8}SkMI|6 z9?j+W9RE4;Z7$^I%g$A#nE-y*kEttfK6Vs0x2Km-_{qgSM$W+|WYr2CfSwW$<$lKX zkzTdBXjR&R zXEJw*$dr-JgE9pMD54E?jqXwWVoglo0ulO<9IgSL`sAwCol$lcapf|7FU}o?<0c;F zh0NI(bZ6;}c0YV(2jV=iUIqcv$C;V8x}-w@7t)-qnzxBtEl{XVMts>TKhTacXpB=-2!ZbNRdO%k(`$}0}K4Ga5 zcbbK+$)+aEfG~ed<)o>h;Q&?^sP~vj22qWR+v@|qW@D%e;zDqe1y>u<7=U;bc@)QT zJcBI^42l~pYX~YcfWm)!am=gS36s5mbh%CqC;EtDj7St%9=u@_mx_ zsDe1DxtSS6!-04vp+tenfk~svsOYTCPrOEE2q9YHTjUs(Vm9*`X<1n!fE*2Bn&$M{ zf8YRt3Ikd9Tbo8o3`iciDuwtV`QR5Xe*gSwhsi2Lg3i1(yhiB633QyqynLzW%W7t2 zg`|`icZJhY8!B)PNTmdI_LlIPZ(qMokB?u}&;WpJQ+82E@-MsI8RfD)A=pOzmp!Nt z33WxBaRYN!zRMkw+lYjj1%3SeF;kV^MX!z<16_etTEE}C@duN zATkMn9CC7B0Eg-1-^a{As0^A}EZI%#ifBp4V49P;Xw5(V**I>+RnvO7@uN4~w{ zS4|x^@*=Z@Vr%5_7NIgb@^ zxDJ}jJ9qB1wH^EVRdM>YbXs$adit2zvk9lMI`dwvZ_pk!N z!7!MxQ!tZw;lAscYatg3swUdJ0406_TbwRA8A}9D1RxQmvW;6q*wDH|%({Ty4!#r+ z;>_uv8`~wBJR*+EdT}Z;Pr&FbXWM3Bmls<0YRl@aK$w-}xo~|35CLk{hl%*U@X+DI z%UFP1z73?yT(OTou*IBuxJM52zaQhG+fq*VW6hvJ^RpP)b`anM53s$_2cLzh6{8Xo zQiu;gYBjh%5`6@Ktn^J;8`2NtBR>LAVYzB*3UOadYrQ+F<#`9?0ob-zFJEHJ_cL_F zqFgdKc#a|u6*L?$fW-yqr$W+)UI4WaE{MZrqR|F&D=5$O6y0vIS}Mo1<3AWv2y_rn z4~0vdo;hp*n@=I-3XoX%jyayNzGzDTEsPjho}Ukv_8N?%cOZa&6xPtN(ppn9f&;m8 zblcA@u`M|7c1P(XI*}Z#UQ|=-fVeb-KDZTM{1_OJbyM6pUj2~f0C?^6Y-}YkR{%DJ z=Z8@vf|`R6YGnu;wvdtSmI7xU-76EgQ$V`tPR(qa^;=mSP8GK41cUb{Iuv%((Z#)a zV-HnksHCWQSQm0($PqR*LL6XO+ji|rO-U&RAd3TueXdNgFh608si3%b%o6|k_iyKq zqilve)M)Kk06K&TfUP|}B?yQ>d5sd~Abt;?4nQG)Re<=amWGC`ja)2>L)^%YND4Z(ru%0O=ZR zvx;)!UydCMJ$2I*l1BixFi~&|6EhzMRLx@*&;#Z_D&e{BTf}K*I=b&E`l9)psIfgi z;Jyx`_J&;#6AzaQ>xOf8i+sxtq~};oH>ocG+EB$nX$V!PA>oVa>Q;fbRq`( zJha`w+z}&puv-DpB7ngo*h@tfm6W7F@dv~STn^i5*!@1x*nCI=0-Jj}f-e)Tc%9 z98MSU`7zu1EG~NHE*vV{u2i=fDiTIU(TI4^w}wMiQ&Y2bACzer&N0Q!S|I(|tmi?pmGy+;*x37c+pb@lB19l&39b)|Vq7eG(^dCmq8xDVM&mrg*E z{lI~9XnKOBA82p_(;tr|wEzxQS5=i`o+12McsMM0H##I#jd@R>K1~dDzI=InpoW?0 z^{)alz5;1TcKF}D`w5fla6{gCT?pG{ok9B&woS#Re4qxHut%Zdh}e6C8!V$Ql?K8PQQ?^`{-B2#mHhGBu^!ySK=q zIT58Lbp66aK{vyv+EKtrs*1uDWFsR>OJ-_nBWyAY3lWp5JqHgKW|0{7!-DMFcPA{x zP)8?!w9yVdmMk5<>dn;<^8^`(Y!@pkki^gXCu-8` zty%y%F=*P%$Ow7Q9GDwWjH38;Fq6U1eJ}Y#)coB*(tsHyCrWK^pkgK}S^yhUx0jwY z9*PP*z)GBH1Ra=h3(J{s=ONTPI@#ti-tgKrOuM#-_HK)X>^(&33lVJ~Jwe=tKr2R= zRgxws#SL;eV$P>K^n^yrYOKKf$uu5iil7*?MfLY!v^u)Z7nDaa&zYF zlJt3r4Kahw42BjuoHR8ZvGRyO#n+YvD#}4sX>Mp3YR?+R8ipsjL>FJ*cG7|yEot9? zwr01%7NC^$U>6&1&p4Z65A#+ffU(xr$$`QmMxVS15>r=x^XJcfuw6I<)~PwK(>vf9 z;9QxRnD894^Y6zU#73?~%n3<9xD;JIy{|=z)nt3!Q@0HU~PdCeKO#n_aT)zy{TIL<(v(M=Q5o0pQ$_Y%uPtM`@I z6N!nt-OqnKSEw$5C{;&IO#t$Un0X;2B!nEhZ-4dG`>3VQ4K)v=@-stE*nJ?+be*z9 z?H715wiBXVc$;*scgUlr>{bxuq2h^@r>|F}4V4Niu#O1W#oBr=9bI|<#U+@8{5%qh z{Mg3`7060;d+~VSPv9v#=lMA@`Cg)_68DaVCd;c= zxw85Yy5RHfwg$7~{DAM%*WaIvih#EEDIOjl;|yet5HUoW57HbaGvl!$(mIzL)L@FI z4<%Y6EjXa~VjL^v&@qtvvkTum$Er=L3sb|5P-(>2ly9le)k4aDETs;~G4`82k@*iU zz#Ut6DA_`3e!};DI9j+;csO%~DMD|!5Y$c4iAH_Hds+lVM=;w^8nw5dA)tEXh*VS%g%5;r z+ivEIXb3qXhFT0@J!WQRhPh|np(U^@sx;1Bi~ci@;@4^lq^mW|a5XsAkV_<{*ngyX4IGD+a*w%AZRZ(o%8U{@EIw(Io}!@CK1NFKI9h> zS;RK9cNDg2eGg?g>@KwQt)ZtJQJadodSCT@oy66bhe2B^6!Q+*_8V?$=5N~+%Je8c zqYFI{UC$M{%TkH8e8c!fDvpm81J;49LJkCL2fcsQUc$}!gU{y z0Wky?n-}5k482Wz<{t$4uG>OA=0ghawuT=!sX{1^NCH808W@;I4L=VDSf}bjf0@j~ zV{NgO3~2$x_kHUqlf>d)dKVmDyyrJ27+k-CS5mT@|DSc-~0Dv z5$SZ4e);-U9fy&hpJLlK7qN7fUuPsL|FTs#Vw2 zg!i>}cVERkFZabi2Zk!NK9w1hyxvQqCDhv&9%)@6Ad@Cq^KCoZr z-|0H_r||&Dph(w{aA00%WqbP~P$-sgJH^c~3+Me}6H2QCxk*7@&(batRs}fANH4N- zz&G${e&N6q5Cp}=#$vQRWUmw>&lEw9V1oXehA3uCU>F3d{{Tf0It^1^K|lO7rIFR2 zmxsj+Y$mXzMA6wM5=_5O-dmTqYwsAJIPX@7w*B9*IbO;l#Z=#R4HMoSk*Oe1SGarx zmq?*(i57gw@*XoLtFXNw#*NT94;r5|1D2a7aHm;tUn0(veE^c6XxXy1HKrIA3%aAJ zIE$cEcuf4d7ZG8AVt+5+OBN(2L`+{;@e~LMqUM2tY|KJOf1l~KJ5=$LlQ+5tul`IM zy0=nttRL|xEXOe96d*cr$g@?3iLX)vW|=?;%XdBxA=s^eEeDZ!S?kgEW1oUbmnc5+ zfrul3NJ#D}zKCF&4Kkqv;Im@VF4{K7>R(qN{sB3MfGKOZ+a)rLJBVr6IEsm$+~VSF zQz!1ekgRHzQg7ZKUUQU}cl*|@p^!jD7L_OdxuwMspbC}}XruTTbBwG4v9n|bx1*67 z5B67Yud@e5PxF3qv2T^1jGMRP-uU1XmO&?hnpEl7hcdFct3dQDp;&6&`57&aP&reo z$u5F)MRv=4j*H8(1`7JFkVDKOlq0nmK>PF1+C3*d4u}&r7XO~ata=k~2f^ZF*^Up& za*VoWAkOK<(VJhNjv^q|Z{J2SOvduh<>&BGV6YrKbjYT=FtqnwU`&GKjrZ4TSrJPd z9$x;*aZv|6=E3C z0ij4Z$r%xuOdrQ1Oj>vkKSaIC0>&W)G9ouq}WUVcTWoT?nW(lw*vZ(NX`X$rkdn56**G&@2#G6|$vp z7bm!R*h^k7GAhB?$71n@e=FY%nII0w)T)_~%uI&;=r$h}IflM_adBe$8IVE*to^M9 zpKl%*jCP!o^hDcqYvoRbjc*aB*b%CX&pNliYkadW$ zL9*A~*}07T5a|*k6oANgyG2xG&3H#?U6YxaZz25w7WOqbO}u;lb0YXtU<9hp#vx0#v=O_qFrj1YAr*x$_^9YUPB5{M;qW4#hOkUn1ok+-gnV#kg>_m-n% za_J+~oFY?$oMBp&ed-3r z{h$dT56}WK{zZ6Zq$Ci-{b@yikaJu~P4m*An^hggegS*m%ff=6U&G*;%U39>ki6o0 z$R8G1PLr@x`*zN`Q2Nu~w7iEF287%AiG^S_Y%JoHVPU7)zo8EwRw9r?%!M8RG+aO= zXboZkf4d5Db}C$<;yYk@^+kL4*=Fgl!EdE4k~t7v-k#3{e>}n4!k)q z`_jV0cU_Riexw+I+6trO4<|-ub>R@c@ESa|Sqw$XbG1G%C-)ne1TZV;!)@6kAThkp zq>pjV#h(l}nzhIlkKlOM&Yj?4$HrbQy}uKzS-kfR(;5h7aA8)}viBZ`R3FjM)Vzl9 zAT%}TW4t6Ka%61UoU}AXOin}07H$FP*#f*WxQT6VcW6Hb^=HE(wlIQRr@}zZ4DkfP z>ySel>f7vT21l{GbNJMd;n(Dmry1P^jFGb=fh*dGNR&%T&Z7SUAJiKhPVaEs5M+r88rL%ThO3?kA( zvqmnmK6pkbTXbkSa0=S@A%cnQ?xN-pq)_(R@9#i(c2n%3 z6KsyArsmMBp~uP_5KA3i>ue!E$Vs7roZQ#98pks?^Jo77TA{ZGcX9Rc9`|94eSCLc z6z?EPW&eAe^8Wory`#cqfaBy@%f77kgug{o3Bq5TBcSIvAuQEAP_2PBI*5P}a3RDo zD;Gv0=&cnQ-%v=<2-$YC(9zA}DIjG86iOV{W{5a7LQHw6DS;?-pg#fb6b`K=S6f#0 zK7wt;?g+yZ68=0ps1_SLPPsX74>Gp9T7-rzB5U`#QT?4e{a`9l`?W{VjZE!sD_svQ zJw0M%828;$M9UBZLp)-_G<;>>f`S5karpEAmQ!%`oSky!vPI4iQ7D1GCKR+lfNxH` zgj$`SZnkC1C;})z;P6MF)rN~Yrqp?v9Cp3D=^Fek{1hTPf}nK#svP1r0BI+)J9BI! zQ8&QDM|qLJ(UA%xauGH|&yM)b0Y%ivkkLW=KoMRE3|H)|YiU{=J-A69%plN2JVf|# zq%(sx;d4N6G0d@U@19hr<>GaCwhfUGW>SGLjXK`n;bGpsi{?S7xWT!?ka!q@Fa`j? zvB#|?cLlI?%-grZ_Cx9j1OZa{TSql(SqX)YGDtjzEV-7ht~g>&&~HKSC%{$Am;`p$ z8;k^^rJ-SQb!iMmmzU3;2}0%sz}YtO%bo)=WK>dLayCrMZa6ZD1O+o4Pl<{?@b>nZ zcdQ2_if02DJqwg8DilmvnV5izK&0aoI${=&prr=1Gz8bf;+#U^`WhN2$n*Wp{Zoer z2^kek4z8}MLP|`DlZM(Eph+yUpR&$6u~oF9yu27RPXtdmj~IRV0C>ugAm6xmo+K$B z8wrVF)}um(WfEp5S!2T*e&h^bE5Pam8&|`i;Gy>vIt!dU`J!jvCQmLxG6N1w)P5)v zcoUw^0dDSwz0}H>7S_eSGwk$jp^80#3i{FT#Uk$Rdj0yi4>c#nK7`|#mkv{zQujKp zLRowz6QzyTRxLVT6C;zVPd^aT5W)Oq6Ev&C*TLY?jEoGhPxH~NhL*s^ z8muKsz>RMdQ0Rz6Q5!i2qkyU4YBCHR#Lkq#+}pK%JIW&-h}xo~jSvIgoA)N^@buH| z^VZ63VBT^)Qg}(_ysk!ntOHj00(C$%fWc_xSa(2-i9Vl$J`Vhg(6BJzBRX1Ih&qp8;yp4TsL~#$ zOIqFD|MTZD)ZL*%btMhe1hfunVb~S$ibA)g@6d`bpO;aqPuBIO+OOH7aVEl}l9yj{ zJt*447jnC@s)|X>>3!X%%~WD9P48q&X zB@GQzND%+{K}AI+Q6tgR^mu~BgN}%C&`NV}Z|2Dl+Oj|1!g3HHP;G6%VtO|WmC9>b zgs3NM(B8O*h6Zfsmyj5xr$0wg-`HqbXNv0s=o5qJFHSuGKB`~jKQ`f3oMBW@REHnk z8xna^S`S$gJTzd_B6L@Xyja9D0;bi0j0}&p<@WPA3T2 zz%HTtAC{U*99|WbpwLk5m0;ZX)ZAQ4U0oEflgf8c3gchgU&93Fwx*_OU}!7{3KDJ6 z-HF7t#s2xiHj1m z*4a}_y>;FcHzn$goJ$ZI3Jki|&bfXIt#@8JUHy^}iMWjB1cUA zhvM`KjU@&hW4}IZ_xjS>u%C+y1znU#Ktgz%nJLK5&d$wkiY5|x?xeKSOS*ihVu2<@ zP7T4n44lOi*?m(BSer;tIpF-@hFbbk1UGt?C-|@BTIY8=559sGtbtWSni1(bDQ{<& zmcV=b4&Vu-iIb>kAYLo7>%E^)y@5lzobCejePJqKw~@MsRQKOk7lx1)lLspf)&qd@ z#ZD6(0TmfJIpUZ?AcXxy>|d?%!RB&5V4(xX>-D zng(QN>SGcZt1wX@LqCT<&;7QO&RdUhi4M*&o& zSKKB%)6}EAsF;Y(0fVV&ZjknQe54bMeqD-fSw zLipP~Ybz;2MM~-u;-FgGj-}-i&K2B@9!JoN{P_DVf0YZ)Hs1Tv8Y9p31jeQU(RO(` zGOEm7Eg4}$PR>LzeZkco(`?|Ay`_F4te)^WOmdPXq6Yw0=p{zk5LAMqD`k%?#6uda zt{bRPUf%6=lv7;iQL? z)sMXs5zF-@*FFwT>Fen+y+2Db+XoyKm7GE#EC{!VE-h>xA|`vQY@3qP*gP>HMWXq1 z09^n~udrv&$;wvsPr?(=;E5m$#DG^b)11ajZiiDIJRo;pA~BtkCb~jyVUryLtcjhj zhekn;Am~wn#3B5)<4@vgI!DN55;xU%{Rl)61VwNmeVA)%ba0bz*@6Jp8by?vKMwg8 z0cA6DbDD>qv$;(NB@Azjr{!3G!#{X)35rdqJ%g(h7#2npH*iuz^HazK0EQw;#11A1 z1-ZEl%1QUjcO8g>@K60h-&18+D58o66b|K1cM!_(tjsUq%g&|clDHpy0j1OL8;V>A zxd@~VNE21PFjP3(EmK3Wj|MU52UZ>J@7SU!gSR&IlNh{c2o)3t#)$LKu2fT3Z+bjN zVLo2*YopjM2BOVIwx*|N4Qp02Gq^!}=c<;TCt1tOwapL>5@3IRUP*r==`tadKqBR` zqwfSSa$+6Pd*Mmk4vEA<1>GW0P&N?@Kq6h2xJrl|kSKlDyP`g92wH#h$^Y@qb<5^# zVpKZ1;xj}4{CW+`>qc5>X&y34*CEz_E*zHExmT2Hq(kAfSVTU#(I$;e#O3|`igV}P z<>Z!1A4I;PdAxpSg4gB-YSbuM4^Pc`1Yh7^7g?yYGC@=HpE6&A!CG-+@qc}aTKDRT z_HfJXh*PB@)sbnuFCp84y>b7B92|NeR8mc~FVtKbZ%vbw@AuZ$PS$kh%wL!O){uAlJT{OMhkbCN+TmFVA z4x{x&jAFceE1#TMNUXK6tv{po-Rev#*%;gU5=EKwKJ+URzUE)|Ev2--dZ%cv**_~> zr*58+ArQ>R=kw@BcV?x<^88@VK0VNTC8lRiwhKp|pJENyp7e3olQ7&NprS+~mH&S9 z=s1jQceIy8^zRoh=Jo#hcu$}Bsf+EWpZ?kv)cL5%L|S^{L3|%I?de#%$gupAB+rW9 z)zukr;vette6(Rx;ZcKUndVa)g{q7h2DVs{k)l)@pVi+snEq`rv!HQw&y82HbaC-p zNl_yD?(VbnhGL!hmsTgM{n=bE5A;rb67nNfLYhP1#*lictEh6H49RSVAS2@+gRL?>^&-5=+*hyv&8L~vy1|w|)SluugE!}%_&MQ&T z&t+|2Uz)cU%H@Jz^@DAfZT-2Tcz(>O`{Yl@a$xXVT*_9G&ZCCvkeiMp7^AJ+P+ZjC znx^rTduwvCl75poY#Ql@t;0xVXa4cyVY-~~XE)!r&{ur!V-tDi_?ya*J0n7@ZTOc= zny+s{b>aq`9SPdhuTh(P|EQP4B0Z-x7ZOi9VOznYwmZzi)~FCp=1eMSPIWS zYD|1U)T8u`I^AIm_s`_YKhlUxAtQy++PkEjpDclQ(_OEGuZ4&_7NnR$kV!1w3irY-&B58pB_tP5oy|gSn;Z@?NGxI`D;9v zfC6Xil|F&iCVP^ETA5kan-D(wbLZ$^iCl7>eV1u`u0Klh(Vb2GUHQ}{31{Ast?%U@ z+Q*obD$9H^drRi6a>(+;15mU$`0K>@>tbvTqn|%dNU|jTa~74)hKK9kSaq#jnA-2L zta4+uFxKt%)CURQ4-!)bMNG|8c1)W&I3*MiXyau(bSUcBc_pR&9KyoFG%YI11hJqk z<84Bc=RiQcMfL98=fAz;J>{6vx9qH>5xo2+q_3->+R(ji`MKuiL(dboyZT>W+Ag6$ zh*Tql?B%74*h5V%DUJUZw%<2H1q-R8^QcxpY}aF1wTNfxO!S&eY=$liH?&;~TWgfS zXLG(BwUTaPiegKbCC%{mAnK@lLp>#HfDCPMZ}pgUzLDCxGq=9!Uel&Cm35xCWMoXX zZhd2CXEHJIW@4gWUjB-(aA<1kJ4?;x_eSZSq&xTSC0GjXT(>A@(F|GnVyE)Nj-~xw zoSFRmxxssL&B~JLnKS7r`X*iZ#HRe7K+^+BQxlkC-Nfj0PlVVh^rD>W=Jz&$&R zge`WTwhI?B?e12!wXL@6WodaA(0lM{(ShWNe6tga5ZSh~PfrS8pcm?~j|7p`_$Ech39)C7q+82~zKz87hV$@-?wM_}7W326Y+LVcb94@hYu8*Kb>g2o0V1DRkZXmPN~1LlH>O6q>0|WEy>1%Ejep0>M6~1(y{|< z^RGKbyBJav`P{TakMb!m{SF$f=NthhzP0Q1xv&SjvfA2EO)q|@XlBWqo<)1=B!#v0 zz3l85jbyIVF7IiiL`8#=k0^5-o9UJ)!X}cSxz)Exq~H~|4d)fJ+QUy0%*=e!W@*cs zj73hdMf+d{ncv7uOR77mm0uFcd}-CLI;Q>HS1-SzX>85>U5s4J*-D& z%F2Wq-zpRpRi_x#Xcg;qW+#ul(^jtc(0^85A-+7{8zXQ{a2K17KciQnoOEo<@V0H4 z3k!>%r1VvSQr=(G)Qaaj{Em)%Cm&;xftktv%=F#r3ng_`=l}k?Vs!05dIk+P$={JJ z!NGCe$DEF0OGYKs5C5Lycd_1YA1NpOEd2Zd;YQ0O9zMVCx1xiF<7@ReVtR5^uksW{ z%H81I_EJADWsdY{Ep&8cLD}}osk~ds#Sfo{Jmh<4RUML>qe6Y_fEajGe2R+L47GU?o4N49)QWP%*@Y6^M4_R8((ok4k(=6tL$DZ_9&6}({^59h0*ojROM~H*fgJA*nAk zI=gA_jz(iaCO5mZl-w68N%mNh$s5=ZDN&v(Ni#As`FA&V_1IlB)QacjiGNudSK6R@ z=luSQhqi3H_u-RN)WvbyZFf`;swa30390T1sA!0Ov)}Nj@XYAlgT$6ld+O$U{zk%C z@kRGT=2d1Nc8e?@HR<8Ly=$>Wqg}vPY%x$v_CavtbQf37;x!prWnuT%)4WX{)D_(G zmsV}Q)<#jToXQrpW2UZOvD{gl>UXg$S+~7YPo~5jB$}b>s=pzJ^VUWSXme~44eDjv z6bV}fJ4c>z4LxkUFewBANAkO>r%x>{4clHD7|wUtnrNo9^66YHT+63V;Nz`cny7dX z>5)?NrS7W9F_$8vpbrhIeLw1=9>gBq^2dJ57U@{t!&h&KxM?%08GJL#%8%jTXy_lL zDgCXW5c+7F?CW}3dYYi4d;vbU%E}(gzOJslcIeRb{{8vCuEfPiX`yDA2MyfXRdv|SZR$~G- z37Wv3*EQ`q!_J|a8FS82UhTs92UVf7tkaWw&ih2!9ti9V6Dhe+%(4rifbtb z`g`^!^Bpy98alwtFC)V^R;bo7WEGoKd|o@WxbWpG)5Zv+u$%7v`L4wh30xd^q(0J6 zIH?}&`TF<(6}~ISZl33#2d7MqM@WC7*|vp_PMYgtf=>m_DbcC2D|b{YpUTY-3~ao4 zGeYa|#f16w_vxn{eX!+6+xmto(b(t{>0p^-FT{FHj0-1 z&$m+|g-^I{xESB;ccnL6oJ*-PzZqVkaVp1`@^GAUQ0)7`ZX4f^{5z;8oC+Nt?0RZY zOZkv7*L|k>#IAtJzP@kf=Jw{c-Du1ArC0d&s#+`W313KoRku~)=>tl#vSnQbu^Iwl zIw`!g4*u##JDr%05YPlc4$fL*&t=rl!3b zlq62AGHcC|sAw;JYwq}SdTK)nJMy)>ihDj>H!McZC9nAKMHNk%{jGR@Ewb$Rjp+m< z-a(HjHq%C3^2#F3SJ@p`d~~unIN<-j_C)#|vgzUGh<59@W?)>QvYLorFodUed? zSa$?pNcHmaRd;tTs@R(FK~S&CJ8r5{GRCkRmwp;FG49JZIXl+U-=7x3&oo~1RR^?* zuMajvm3{OSA_<h-Kws>I&|jGj$y4Xp z-tZad*$w(n%wC$1=9p!%+}pu?05sHXJ7@Bo8&4mqvRHO{n3VK0zv#eOE>hDLS;EZz z+#X-c@@U6?1$vJA{_b*{=rqr;*{yM;&%G-w=x;DswA+X6AbsoB-nP7_osU>MV||+Y zL?_dj^&<9UMd)q%5_jZHndUdUaqj5c@95pU_|5QnufMjux{6+@erwGZW%l>41P%xY zs{j2Zwd3i`&j+)<^ce?kHqsw?;^LC-m?qX1r%VTi znu9sdrPp3hNnTMy7@o6r*EPYgyPW4(-51TvUWta0?>gS{&JI&leo}6g@FkKrrMkMg z_;;SOs}C6N8-z-p?cUFkzxQm&tjd?Hs&k`$J?Aam{*=p4{#BSuZ5%UFf2OoebaJl@ zr+DA*wbA`9*Pni0Tot(1Wq5T&W6I$n&w}IPQl%b@^|;bdJJH#gr45t$U*64OrqnK5Ze72mPF(e&E( zk-zG%Wly=yM+dD&Zc*k^^<#);IwpngnW>ezE!5PX`JDtgC5pydxBG2~l5s}mdgmH> zd?Gku(!}r!gx+lPVw(y{xrE>ciS$3G_x~?!Ai8b!+9oKNv&` z5DmQk-{3>tUCf4+#<-x!SWw`ln`lEV0M~=J_G=HLgNFN+UK&XoUzWO_zEDLar zL7G%Ps)Hh-$J&zN^Yb&mlJ3%T^6$MDC8QX3frrYYG~Z~siGDXE?hWc_e&ZR6rcKn%#J#2I^a@zL)sT8X?B8>N6@oT za|q23ep|t>2xWROPub~wmGrku+`O+M>p3unHAVv@nkA@e> zcfFR<4!I!6Ed3lET`k=uehWnn{aYZ=fnyh*Eyn+lsPbW9K!b`q+80XbDRDm?K{kk< z+Kk#Ww|o7B|Gk3$tG2U^sxe*TIK~W86d}EFww9MpDoJk=vZZN|I$J6uN=4gHQlcUT zDcVdzl1S-g?>(VZW-{rRC}~iWeHxLs@=|t)Bn-~)IkV2!bJm)*W`D4JVE6Pq_j6s> zeP6%-|H@iYvAMizpy6?QABYZo83Fdr$wW|7^jG z+gq?XbC>KGz`AP}*4m~Ky?a?3lSK_#HLGMQu4JyMFuj?ZvAa=Zli*q6l7bRWakyZ8qe}(DL-} z3p9&fB~d0TXv!>|HgE1+L(b8mhoAa&fSND~`Pg;Ng;BKtpDk%_EJ$^E`AicI8UmmG z%XM#;<+&;;%G|crR+D5`2js6W?#*oJcpWWFRpCuq17om!`B2(!BS(gKHz^h>^*_~t zudku~hrrM+=cQ`VQrVt8Cu4fUMtPYY;9WhU)H_vhK1QR?)3VpZJ7_!;pGb$ni!U?~ zAYGdD$8ARF>Dh7o99@7^Apm*^X%ZaR zK&zY8qvF1P-7Jq!aQe{I@XlN+d361lyEy#E+tt-OwKjsNTAp{KXNsPbDH*698i9_ay=W|8ja)av!eW8Yj>0uL|IrBjq<; zSGyPH^_s|$+KiyU*l?%xLT^>TMM4&e&tV!nzBZ3*%Slyi&Tf75=v`0G_ycaqu7L3+ zv^}KF|FYe$J8T#&%}#>A5pKC^0Tzz0!H^969PI33UtH+t^3FeM1szRwEy@}Z-RVP} z(}F6Rlp2EuJ^CK7UO*+|Qw5-@fB$8Af&!K{I7=p=@CO=gu(gxa+1_S;g#kPK53s4h z@-!9T%D1lf+Q;5O>3V*AqX(QAue{2x9?Wo8KYlC2N z5qNw+p`E$;o(#E{l3s-r-U~qrSe@d>y2}FE3PgUZv9S?V^=R#UiK&frvgWJisJnEP zeaut2zj0XM#uqeh2(ue8NfT9r;SOj24Fi*Cj1Jv>X-J}py?vVhA+n23Jw}rBvo|<0 zaCRL7WGXE^JUqm$_wQeb??EqC?swfX$?p{C(il-?eem=}^oLY7#n2n;b6v7KU%eWW zMf+srgf0GuXr1nGo+&1KNdv8mb|p6@o%+0P-~Ef$GYWJyW<#a$0c222bck%<|FyZ` zs)vAkqL~>=?ak-|*C)H>_!b7tM#%>p`sw+nkD;*9e6D*|;gyJd_T{yy&n4-1p?AQ? zn7=ioo(4Gambc5V+G(Ht?_FcFzU9Jpr99b&j5YU>diZzvShU1+cvc=Dls&ZtWlFA6LXWE1Z&4^U}j zxonGX0dB6#X}mz|YxT>!a5s~DO$A_j;0m%<8mEPmX@-vilj5oc4v%%R@Rotk{)~)r zn!JeTNcHdOu|l?L(hbd`vJij?s69t09qNQT(N8B_LAwgZiHALK&>%t^`F>wbpx7j}cCXRY zZaPdc8#kik+C$6~2w+=lhRk$No}k@-gQKxdNk~JLYj3ehN)7Q(+t}Ez<6XZoNR&Ey#1)#1KCbn0%6pp)s{BxEV)l$%id1+RcnwtSKcTQRJwC3>ZXrWHw z&PF<9bUGZ1-PS(!3LfO+h9ol4Xk`3=fddg87*$%r^Ee+5LrxGM-1TNbR`P7kO2Vn6 zc`Zo$Nmr95pd|lm)F$-${yE>k-mYrz;)sYYC{DC-3sRfu)Q;0(@r81X<7jMQZq8i9 ztqE8+Owrdec-d6C`YW-}-7I^+QVi)S6EvVOR8v3I)IU`;x;}|0qrI1sz%=hE`m)YG znyYBsCn%Dv!cTfGUmbZRN#s_dv zo8LZ6%~Q%6C{RVZ8oY@gKRk~UBvmLaRQkmn$cmEnTvh;1Vk&Y|=PC?`Th6bz!>spk zbxrU#V=`tsoB&c6JKGG{zJmvCV0vr}7d31N)z-l%G?ThfJ)xe4rqIymX9L-B%_L~| zQrn_@goJPNT(XfG=XQlMX!sk&*zA7QJ!_wm!|_PX$XHU|ZEIrEN&>|wAxJMifiSgT zyyoD+NY$`i!G6&l_iI&mX!&ceKWqpPSLquWEmhjFnSPz)GAF}lC^WIabYJVLqmmEgS7!))G41$Q9E(@TujJ!x|z<{@87ulOO zwfdK5AuLCl956nPxZAeGyo*?RkoeGC6ttVcjbUN=lgf0GC8nyC*6L!n9Q`TM8-%Xm zX5L}A7-nXUo)y26!Wql}(3xsd=nA7`|Jc>w9vKM*U2UT7e6UPh;X}hGlqI(x|i1{&SjGQDby9ZWV{n zM&6&2k}Wa4X@oh5pvKG+l2&eR*|~FzmMjt__q>14eT_lVL{d_ett7~(`{!)+QW_B} zh<)f#2OBvAhJ^T}_BopMs7V^LORIOWHVx@}%-vMp`Nsb?C3hZqhetvoh|}U?v*C+Y zA@B2pHBLS0N8UPd!ld%I$24+an{jDoCM@O{(a~kZkK@khmn&UY7=>8tm-{V^oG**H za_8a|zXd*QOI_K0rl;B$80u4Atg;6PzB$VR--onj#Gm|)Yl z&Y7P5mh_5>IOe4ZyE4#UFC}&IsuOF;tUp&)B02@MAP%XdktJX7Yc>Iy4xauyH~3^j zn_woic#&JqzG*Ero^r{M#EZ4HyED4qyor0$92I1hcIM10K$Ojt4rPw@4nz^iwsGSg z?;N$+4zz-hRrzBc$Rr>n2xN4*Uv_<%@zy-x;JsuscLpl@A5y&e@|)W~B$xlg+dLJ_ zQ(EHNJ;1DlAl@nXFraE7H!=&r-ob$fW~B)^vGPImw)T(Dv^}`tIQjs*XpPC>i3lOK z(vocQ9{puvK9L0cFn%FSjC8St?NmDXa>w@V6n3Z)y_xRL6j(}Wb%TGBp0On89H|E z=`&}BYV4qxxOHnPUm*=8W1TARJ}ed$78eJ`D6^$!D+JA`;N7wA#JO{VsdVSLY3Q=q zdjDqNK{WRxz6*8@>)d^)>0r-9$(N~km=Sp-$BRqYn%q*gDW-D zqZVShQ;w5(fEg2$k^*n(`AAwiEWSs8@e>u$kVLUu0w@E^7G}(2l5M(tE#>SC6)i{$ zpP~~yQ&Dn0|4u#n8Q+_D88@*HYT>J{KdycFl2?bR=r)bJ#G)O}o$bm~MeY#+s-EvM zn)(zc_wiPz=qmTsK6LS#dI;0bih%^hmntJm1IP_{UHbGjjD8*)!#uJUm!Aj7g~ zPJPgBP;V0#d0k9jih9jhzKt`!T=3fI8(u6+o7-Jw5PG`eEGJPijrq9I@#*I%Osx8| m=VO1>zMBjBFSS$o=`)=!ub>E@aDU-Cznnc^eA0Q@xBmu4jouUh literal 0 HcmV?d00001 diff --git a/doc/page_tables_4KiB.svg b/doc/page_tables_4KiB.svg new file mode 100644 index 00000000..4d61d43e --- /dev/null +++ b/doc/page_tables_4KiB.svg @@ -0,0 +1,1556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + ... + 0 + 127 + Stack + Stack + + + + + ... + Code + RO data + Code + RO data + 128 + + + + + ... + Data and BSS + Data and BSS + + + + ... + Remapped UART + 511 + + + + 0 + + ... + Device MMIO + + + + ... + 511 + 504 + Device MMIO + + REMAPPED_UART_BASE + CR_Offset =0x001F_F000 + 0x30 = 0x001F_F030 =0b000000000_111111111_000000110000 + + TTBR_EL1 + + LVL2 tablebase address + LVL3 Table base addr + static mut LVL2_TABLE + static mut LVL3_TABLE + } + + Select entry 0 ofLVL2 table + + } + Virtual Address: + + 0b1_1111_1111 = 511Select entry 511 ofLVL3 table + + APAccessPermissions + 53 + 12 + 47 + 9 + 10 + 8 + 6 + 7 + 4 + 1 + 2 + 0 + + + MAIR_EL1index + + TYPE + VALID + + + + SHShareability + AFAccessFlag + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PXNPrivilegedexecutenever + 63 + + + + + + Final 48 Bit Physical Address: 0x3F201030 + + + 0x3F201 + + 0x030 + + 0x3F201 + } + + + 0 + 11 + 47 + 12 + Entry contains baseaddress of follow-upLVL3 Table. + The LVL3 PT entry pointsto the start address ofa 4KiB frame. The last12 Bit of the VA are theindex into the frame. + output address + +