From 6feb9e8854cbe551113d167cda5a275663196e0a Mon Sep 17 00:00:00 2001 From: Antonio Nino Diaz Date: Tue, 23 May 2017 11:49:22 +0100 Subject: [PATCH] Add documentation of the xlat tables library V2 The documentation describes the design of the translation tables library version 2 used by the ARM Trusted Firmware. The diagram file has been created with Dia version 0.97.2. This tool can be obtained from: https://wiki.gnome.org/Apps/Dia/Download Inkscape has been used to generate the *.png file from the *.dia file to work around a bug in the generation of *.png files in some versions of Dia. Change-Id: Ie67d9998d4ae881b2c060200a318ad3ac2fa5e91 Signed-off-by: Antonio Nino Diaz Signed-off-by: Sandrine Bailleux --- docs/diagrams/generate_xlat_images.sh | 26 ++ docs/diagrams/xlat_align.dia | Bin 0 -> 2346 bytes docs/diagrams/xlat_align.png | Bin 0 -> 46712 bytes docs/firmware-design.rst | 7 +- docs/user-guide.rst | 5 + docs/xlat-tables-lib-v2-design.rst | 370 ++++++++++++++++++++++++++ 6 files changed, 407 insertions(+), 1 deletion(-) create mode 100755 docs/diagrams/generate_xlat_images.sh create mode 100644 docs/diagrams/xlat_align.dia create mode 100644 docs/diagrams/xlat_align.png create mode 100644 docs/xlat-tables-lib-v2-design.rst diff --git a/docs/diagrams/generate_xlat_images.sh b/docs/diagrams/generate_xlat_images.sh new file mode 100755 index 000000000..9daef5f4c --- /dev/null +++ b/docs/diagrams/generate_xlat_images.sh @@ -0,0 +1,26 @@ +#! /bin/bash + +# +# This script generates the image file used in the ARM Trusted Firmware +# Translation Tables Library V2 Design document from the 'xlat_align.dia' file. +# + +set -e + +# Usage: generate_image +function generate_image +{ + dia \ + --show-layers=$2 \ + --filter=svg \ + --export=$3 \ + $1 + +} + +generate_image \ + xlat_align.dia \ + bg,translations \ + xlat_align.svg + +inkscape -z xlat_align.svg -e xlat_align.png -d 45 diff --git a/docs/diagrams/xlat_align.dia b/docs/diagrams/xlat_align.dia new file mode 100644 index 0000000000000000000000000000000000000000..bd88c0cc9c349eb71dd03b28e95d49e974c1fa0e GIT binary patch literal 2346 zcmV+_3Dx!=iwFP!000021MQt%bDKsKhVSz$80FTM*aPCDsgp@&`f<@|JJYnc9we|# zgFpk=j&Azfy9n7rU&a=DHYR?Ru_lsNyDVbgXZQ6v?2jM5&J*J{%8NKlF9u?04vZ+B zW?`JpE(U*p{`uS+e0cxn$1o0lkUz6Lm>cpFX;Hnp7+ja-;)l`b?(S}wEQ_Gb@?jF+ z42x*=UyvlhNER9m-oG)7W(8qT2Gx7(cZ0Ibh#*P#PF+DJJM@>!hjwp?+(d74iQeXNz0JkNFpHLAd#2YW8Lb| zi>tUSvzFt(3X~4A;vW)r?m)BIfo2W;d!BjhJhQ;o0h$7ib=U2A~0G0GcYG2@^!qM>MND(N5L2XCO_82GbmNrgZ`j zpa!S`YJl1{)NDXaAJl9GP;>a9Hr_yuOn#_2fEu6%r~zuqpymN;`k*%M4mIMB4iSC> zYW(3Lg!m9Z4NwEr)WwG&Ktv@XBAm;q)kDN?FqR$q}^e%ITWj9>?sna&Nqsvl!8;4NDM7k(1SS1`L;t|U*ze} z>t!J&0Q&ST^l9hPgh2ICpgJf0pIf{;(pr@iIUbGQRgy$!a$@cFV3lPWzr>$jr4X4z zU${ghJjW-?B$t1|wS5hK4?<+VIwA5E2$9VzMAp!f+OyUnyB|6vphH@9$c7H}T8GF~ zphF(74!KPo^7^4e1Rc_{tuGsYTQi%X$ng(yB!S&${PYWUJ63 zX49IsTx;ryZS6pd^lA}&>z-@TScMib8`reuTvJc1YZqFiSBv0X_gsq{1zKb=d)L;M zcWw2=yY`?(TD8c6cl}bdsD7OU%P3#He0X&~40Cy*CP68sNM5hEaS>0FXr1n51k*CU zy?=Fj1|@Zl=jPoasj)*+z3m_O{cd=xJ@%x)FJ|)@oi}6!h z=F3-?NvWN{&TxE2Ln6!bk!YajCIQr|Z2;*z*ai@kdm`ng)2l1r1m(2EjGq}FD=CXY zqs)xo1X#zOP6ycOhn?SjJ;(Y7yvB{*>IEJ9joz5=^9I;qN%yjrbYy%ECP@UqX<5uU z72v=(O?=j7-n@>=^`NWEFmWItI$N}Q8o_jUxxz%#+_pCGmEa~(w={z8h<6dxo zX327vrH823Id@JFtA)ARL~w0klIUh(F63#rTpjw;JJe=zwrv}Ku>KR#l*DQD(!dm% z)xQ@3CUt{?6buShucICnmDypr?s{BQlR<|p=Al7$%e7BVO99Jl86BsFR$_SQSSDHB zZ9s?H1srcoKw+|*fLI{G1B3^N6%m66=;3c%T0KA&+Zpj&fDH#wXm9|*HyD600D(IV z1|WE+-2fab@H!lJt7C<{+UMwiyeGRHZ5~G3??s!(AxwB2FW2L6x_cbL<2E^j+X!_c zc9%nVmJOwTX>yoavIjS|?CZeNa9)CoK@Y*6e+QOZvE#8R;ZpX`YI}{{#vEDtuo(qab zOozkob`Yk5a653X4$K0%JP%=G5~$JhuvMgY3I5m)(FpD!4Z$4((H-zSaJvrRj@$GQ z$nDZ>de|y*yI5CtYtutMlO^s=4+%Zj@wrV8YK!1-I=LcM6Anxd4W`G|y-w>F@@JL@ Q^Y?H52f4i?pUM0H0P3K06#xJL literal 0 HcmV?d00001 diff --git a/docs/diagrams/xlat_align.png b/docs/diagrams/xlat_align.png new file mode 100644 index 0000000000000000000000000000000000000000..cffd3c19181ca820083f3833b256772ee99fec98 GIT binary patch literal 46712 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