diff options
author | Tom Rini <trini@konsulko.com> | 2024-02-20 08:02:49 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-02-20 08:02:49 -0500 |
commit | bebf916f9eb13aaf5bbf83fbd33204df5c6c9f8e (patch) | |
tree | ce68a4801a1f9c82516aec08e641c3d29cb45c2e /doc | |
parent | 3e6f2a94bfc25f1782ce2d45db27f47ec781feb1 (diff) | |
parent | 1e81d12e34e874319e041652198a4ba561d751ab (diff) |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-samsung
Diffstat (limited to 'doc')
-rw-r--r-- | doc/board/samsung/e850-96.rst | 87 | ||||
-rw-r--r-- | doc/board/samsung/img/exynos850-boot-architecture.svg | 1283 | ||||
-rw-r--r-- | doc/board/samsung/index.rst | 1 | ||||
-rw-r--r-- | doc/device-tree-bindings/clock/samsung,exynos850-clock.yaml | 307 | ||||
-rw-r--r-- | doc/device-tree-bindings/soc/samsung/exynos-pmu.yaml | 85 | ||||
-rw-r--r-- | doc/device-tree-bindings/soc/samsung/exynos-usi.yaml | 162 |
6 files changed, 1925 insertions, 0 deletions
diff --git a/doc/board/samsung/e850-96.rst b/doc/board/samsung/e850-96.rst new file mode 100644 index 0000000000..0cb95473e5 --- /dev/null +++ b/doc/board/samsung/e850-96.rst @@ -0,0 +1,87 @@ +.. SPDX-License-Identifier: GPL-2.0+ +.. sectionauthor:: Sam Protsenko <semen.protsenko@linaro.org> + +WinLink E850-96 board +===================== + +Overview +-------- + +WinLink's E850-96 board [1]_ is based on Samsung Exynos850 SoC and follows +96Boards Consumer Edition specification [2]_. That makes it possible to use +96Boards mezzanine boards [3]_ along with it. It's an open-hardware board and +the hardware design files [4]_ were published, along with the supported +software [5]_ and related documentation. + +U-Boot can be used on E850-96 instead of the original Samsung LittleKernel based +bootloader [6]_. Because FWBL1 [7]_ doesn't verify bootloader's signature, there +is no need to sign a U-Boot binary. That means U-Boot binary can be flashed into +``bootloader`` partition (instead of LittleKernel bootloader) and it will just +work. + +Because BL2 bootloader already sets up DRAM and runs the final bootloader +(U-Boot) from DRAM, there is no need in U-Boot SPL. It's enough to have only +U-Boot proper (``u-boot.bin``). + +Boot Flow +--------- + +The boot path for Exynos850 is shown on the figure below. + +.. image:: img/exynos850-boot-architecture.svg + :alt: Exynos850 SoC boot flow + +Legend: + +* ``BL0``: Boot ROM code +* ``BL1``: Software part of Boot ROM +* ``EPBL``: Exynos Primary Boot Loader +* ``BL2``: Initializes CMU and DRAM and runs the final bootloader +* ``Bootloader``: Final bootloader (e.g. U-Boot); also called BL33 in terms of + ARM boot flow +* ``EL3_MON``: EL3 monitor (trusted firmware, handles SMC calls); also called + BL31 in terms of ARM boot flow +* ``LDFW``: Loadable Firmware + +Build Procedure +--------------- + +.. warning:: + At the moment both eMMC and USB features are not enabled in U-Boot. Flashing + U-Boot binary **WILL** effectively brick your board. The ``dltool`` [8]_ can + be used then to perform USB boot and flash LittleKernel bootloader binary [7]_ + to unbrick and revive the board. Flashing U-Boot binary might be helpful for + developers or anybody who want to check current state of U-Boot enablement on + E850-96 (which is mostly serial console and related blocks). + +Build U-Boot binary from source code (using AArch64 baremetal GCC toolchain): + +.. prompt:: bash $ + + export PATH=<toolchain path>/bin:$PATH + export CROSS_COMPILE=<toolchain prefix> + make e850-96_defconfig + make + +Boot E850-96 board into fastboot mode as described in board software doc [9]_, +and flash U-Boot binary into ``bootloader`` eMMC partition: + +.. prompt:: bash $ + + fastboot flash bootloader u-boot.bin + fastboot reboot + +U-Boot will boot up to the shell. + +References +---------- + +.. [1] https://www.96boards.org/product/e850-96b/ +.. [2] https://www.96boards.org/products/ce/ +.. [3] https://www.96boards.org/products/mezzanine/ +.. [4] https://www.96boards.org/documentation/consumer/e850-96b/hardware-docs/ +.. [5] https://gitlab.com/Linaro/96boards/e850-96/ +.. [6] https://gitlab.com/Linaro/96boards/e850-96/lk +.. [7] https://gitlab.com/Linaro/96boards/e850-96/images +.. [8] https://gitlab.com/Linaro/96boards/e850-96/tools/dltool +.. [9] https://gitlab.com/Linaro/96boards/e850-96/doc diff --git a/doc/board/samsung/img/exynos850-boot-architecture.svg b/doc/board/samsung/img/exynos850-boot-architecture.svg new file mode 100644 index 0000000000..c6e850407b --- /dev/null +++ b/doc/board/samsung/img/exynos850-boot-architecture.svg @@ -0,0 +1,1283 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Do not edit this file with editors other than draw.io --> + +<svg + version="1.1" + width="611px" + height="327px" + viewBox="-0.5 -0.5 611 327" + content="<mxfile host="app.diagrams.net" modified="2023-12-13T00:04:32.824Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0" etag="21pvX7xTZUZ4TDUqmo5l" version="22.1.8" type="device"> + <diagram name="Page-1" id="F-97ItDN78I3cBfC3uC2"> + <mxGraphModel dx="987" dy="663" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="azJPLbs4vMiacVWs4TNu-47" value="Secure World" style="shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=#f8cecc;fontFamily=Helvetica;fontSize=11;strokeColor=#b85450;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="430" y="160" width="140" height="200" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-48" value="" style="shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=#f8cecc;fontFamily=Helvetica;fontSize=11;strokeColor=#b85450;" vertex="1" parent="1"> + <mxGeometry x="340" y="360" width="230" height="60" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-49" value="" style="shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=#f8cecc;fontFamily=Helvetica;fontSize=11;strokeColor=#b85450;" vertex="1" parent="1"> + <mxGeometry x="340" y="340" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-50" value="" style="shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=#f8cecc;fontFamily=Helvetica;fontSize=11;rotation=-90;strokeColor=#b85450;" vertex="1" parent="1"> + <mxGeometry x="465.71" y="255.7" width="199.53" height="9.06" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-43" value="Non-Secure World" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fillColor=#d5e8d4;strokeColor=#82b366;align=center;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="340" y="160" width="80" height="170" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-42" value="&lt;span style=&quot;white-space: pre;&quot;&gt;&#x9;&lt;/span&gt;Booting Period" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;align=left;verticalAlign=top;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> + <mxGeometry x="30" y="270" width="300" height="150" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-4" value="" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-1" target="azJPLbs4vMiacVWs4TNu-2"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-1" value="BL0" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="40" y="360" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-5" value="" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-2" target="azJPLbs4vMiacVWs4TNu-3"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-2" value="BL1" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="100" y="360" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-9" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-3" target="azJPLbs4vMiacVWs4TNu-6"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="180" y="350" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-26" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-3" target="azJPLbs4vMiacVWs4TNu-13"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-3" value="EPBL" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="160" y="360" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-10" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-6"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="270" y="310" as="sourcePoint" /> + <mxPoint x="200" y="370" as="targetPoint" /> + <Array as="points"> + <mxPoint x="220" y="340" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-12" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-6" target="azJPLbs4vMiacVWs4TNu-11"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-6" value="BL2" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="200" y="280" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-16" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-11" target="azJPLbs4vMiacVWs4TNu-14"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-27" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="289.5" y="320" as="sourcePoint" /> + <mxPoint x="289.5000000000009" y="360" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-11" value="Bootloader" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="260" y="280" width="60" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-23" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-13" target="azJPLbs4vMiacVWs4TNu-20"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-24" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-13" target="azJPLbs4vMiacVWs4TNu-21"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-13" value="EL3_MON" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="260" y="360" width="300" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-17" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-14" target="azJPLbs4vMiacVWs4TNu-15"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-14" value="Linux" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="360" y="280" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-15" value="&lt;div&gt;Android&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="360" y="200" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-19" value="Secure App" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="440" y="200" width="60" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-22" style="edgeStyle=elbowEdgeStyle;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" edge="1" parent="1" source="azJPLbs4vMiacVWs4TNu-20" target="azJPLbs4vMiacVWs4TNu-19"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-20" value="Secure OS" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="440" y="280" width="60" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-21" value="LDFW" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="520" y="280" width="40" height="40" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-32" value="&lt;div&gt;iROM&lt;/div&gt;" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fillColor=none;endSize=3;width=30;startSize=3;strokeWidth=1;targetPerimeterSpacing=0;sourcePerimeterSpacing=0;" edge="1" parent="1"> + <mxGeometry width="100" height="100" relative="1" as="geometry"> + <mxPoint x="40" y="460" as="sourcePoint" /> + <mxPoint x="80" y="460" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-33" value="&lt;div&gt;iRAM&lt;/div&gt;" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fillColor=none;endSize=6;width=30;startSize=6;strokeWidth=1;targetPerimeterSpacing=0;sourcePerimeterSpacing=0;" edge="1" parent="1"> + <mxGeometry width="100" height="100" relative="1" as="geometry"> + <mxPoint x="100" y="460" as="sourcePoint" /> + <mxPoint x="240" y="460" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-34" value="&lt;div&gt;DRAM&lt;/div&gt;" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;fillColor=none;endSize=6;width=30;startSize=6;strokeWidth=1;targetPerimeterSpacing=0;sourcePerimeterSpacing=0;" edge="1" parent="1"> + <mxGeometry width="100" height="100" relative="1" as="geometry"> + <mxPoint x="260" y="460" as="sourcePoint" /> + <mxPoint x="560" y="460" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-35" value="" style="endArrow=none;dashed=1;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;shape=connector;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="20" y="260" as="sourcePoint" /> + <mxPoint x="610" y="260" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-36" value="" style="endArrow=none;dashed=1;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;shape=connector;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="20" y="340" as="sourcePoint" /> + <mxPoint x="610" y="340" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-38" value="" style="endArrow=none;dashed=1;html=1;rounded=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;shape=connector;" edge="1" parent="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="20" y="410" as="sourcePoint" /> + <mxPoint x="610" y="410" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-39" value="EL0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontFamily=Helvetica;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="570" y="205" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-40" value="EL1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontFamily=Helvetica;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="570" y="285" width="60" height="30" as="geometry" /> + </mxCell> + <mxCell id="azJPLbs4vMiacVWs4TNu-41" value="EL3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontFamily=Helvetica;fontColor=default;" vertex="1" parent="1"> + <mxGeometry x="570" y="365" width="60" height="30" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> +" + id="svg242" + sodipodi:docname="Untitled Diagram.drawio(1).svg" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + <sodipodi:namedview + id="namedview244" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + showgrid="false" + inkscape:zoom="1.4211573" + inkscape:cx="171.69105" + inkscape:cy="123.84273" + inkscape:window-width="1916" + inkscape:window-height="1053" + inkscape:window-x="0" + inkscape:window-y="23" + inkscape:window-maximized="1" + inkscape:current-layer="switch30" /> + <defs + id="defs2" /> + <g + id="g232"> + <rect + x="410" + y="0" + width="140" + height="200" + fill="#f8cecc" + stroke="none" + pointer-events="all" + id="rect4" /> + <path + d="M 410 0 L 550 0 M 550 200 M 410 200 L 410 0" + fill="none" + stroke="#b85450" + stroke-linecap="square" + stroke-miterlimit="10" + pointer-events="all" + id="path6" /> + <g + transform="translate(-0.5 -0.5)" + id="g12"> + <switch + id="switch10"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 7px; margin-left: 411px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Secure World</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="480" + y="18" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text8">Secure World</text> + </switch> + </g> + <rect + x="320" + y="200" + width="230" + height="60" + fill="#f8cecc" + stroke="none" + pointer-events="all" + id="rect14" /> + <path + d="M 320 200 M 550 200 L 550 260 L 320 260" + fill="none" + stroke="#b85450" + stroke-linecap="square" + stroke-miterlimit="10" + pointer-events="all" + id="path16" /> + <rect + x="320" + y="180" + width="160" + height="80" + fill="#f8cecc" + stroke="none" + pointer-events="all" + id="rect18" /> + <path + d="M 320 180 L 480 180 M 480 260 M 320 260 L 320 180" + fill="none" + stroke="#b85450" + stroke-linecap="square" + stroke-miterlimit="10" + pointer-events="all" + id="path20" /> + <rect + x="445.71" + y="95.7" + width="199.53" + height="9.06" + fill="#f8cecc" + stroke="none" + transform="rotate(-90,545.48,100.23)" + pointer-events="all" + id="rect22" /> + <path + d="M 445.71 95.7 M 645.24 95.7 L 645.24 104.76 L 445.71 104.76" + fill="none" + stroke="#b85450" + stroke-linecap="square" + stroke-miterlimit="10" + transform="rotate(-90,545.48,100.23)" + pointer-events="all" + id="path24" /> + <rect + x="320" + y="0" + width="80" + height="170" + fill="#d5e8d4" + stroke="#82b366" + pointer-events="all" + id="rect26" /> + <g + transform="translate(-0.5 -0.5)" + id="g32"> + <switch + id="switch30"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 7px; margin-left: 321px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Non-Secure World</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="360" + y="18" + fill="#000000" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text28"><tspan + sodipodi:role="line" + id="tspan629" + x="360" + y="18">Non-Secure</tspan><tspan + sodipodi:role="line" + id="tspan631" + x="360" + y="31.75">World</tspan></text> + </switch> + </g> + <rect + x="10" + y="110" + width="300" + height="150" + fill="#dae8fc" + stroke="#6c8ebf" + pointer-events="all" + id="rect34" /> + <g + transform="translate(-0.5 -0.5)" + id="g40"> + <switch + id="switch38"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 298px; height: 1px; padding-top: 117px; margin-left: 12px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: left;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><xhtml:span + style="white-space: pre;" /> +Booting Period</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="12" + y="128" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + id="text36"> Booting Period</text> + </switch> + </g> + <path + d="M 60 220 L 73.63 220" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path42" /> + <path + d="M 78.88 220 L 71.88 223.5 L 73.63 220 L 71.88 216.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path44" /> + <rect + x="20" + y="200" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect46" /> + <g + transform="translate(-0.5 -0.5)" + id="g52"> + <switch + id="switch50"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 220px; margin-left: 21px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BL0</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="40" + y="224" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="12px" + text-anchor="middle" + id="text48">BL0</text> + </switch> + </g> + <path + d="M 120 220 L 133.63 220" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path54" /> + <path + d="M 138.88 220 L 131.88 223.5 L 133.63 220 L 131.88 216.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path56" /> + <rect + x="80" + y="200" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect58" /> + <g + transform="translate(-0.5 -0.5)" + id="g64"> + <switch + id="switch62"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 220px; margin-left: 81px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BL1</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="100" + y="224" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="12px" + text-anchor="middle" + id="text60">BL1</text> + </switch> + </g> + <path + d="M 160 200 L 160 140 L 173.63 140" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path66" /> + <path + d="M 178.88 140 L 171.88 143.5 L 173.63 140 L 171.88 136.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path68" /> + <path + d="M 180 220 L 209.67 220 L 233.63 220" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path70" /> + <path + d="M 238.88 220 L 231.88 223.5 L 233.63 220 L 231.88 216.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path72" /> + <rect + x="140" + y="200" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect74" /> + <g + transform="translate(-0.5 -0.5)" + id="g80"> + <switch + id="switch78"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 220px; margin-left: 141px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">EPBL</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="160" + y="224" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="12px" + text-anchor="middle" + id="text76">EPBL</text> + </switch> + </g> + <path + d="M 200 160 L 200 210 L 186.37 210" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path82" /> + <path + d="M 181.12 210 L 188.12 206.5 L 186.37 210 L 188.12 213.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path84" /> + <path + d="M 220 140 L 229.67 140 L 233.63 140" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path86" /> + <path + d="M 238.88 140 L 231.88 143.5 L 233.63 140 L 231.88 136.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path88" /> + <rect + x="180" + y="120" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect90" /> + <g + transform="translate(-0.5 -0.5)" + id="g96"> + <switch + id="switch94"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 140px; margin-left: 181px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">BL2</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="200" + y="144" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="12px" + text-anchor="middle" + id="text92">BL2</text> + </switch> + </g> + <path + d="M 300 140 L 319.67 140 L 333.63 140" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path98" /> + <path + d="M 338.88 140 L 331.88 143.5 L 333.63 140 L 331.88 136.5 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path100" /> + <path + d="M 269.5 160 L 269.64 193.63" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path102" /> + <path + d="M 269.66 198.88 L 266.13 191.9 L 269.64 193.63 L 273.13 191.87 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path104" /> + <rect + x="240" + y="120" + width="60" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect106" /> + <g + transform="translate(-0.5 -0.5)" + id="g112"> + <switch + id="switch110"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 140px; margin-left: 241px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Bootloader</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="270" + y="143" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text108">Bootloader</text> + </switch> + </g> + <path + d="M 449.67 200 L 449.67 166.37" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path114" /> + <path + d="M 449.67 161.12 L 453.17 168.12 L 449.67 166.37 L 446.17 168.12 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path116" /> + <path + d="M 519.67 200 L 519.67 166.37" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path118" /> + <path + d="M 519.67 161.12 L 523.17 168.12 L 519.67 166.37 L 516.17 168.12 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path120" /> + <rect + x="240" + y="200" + width="300" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect122" /> + <g + transform="translate(-0.5 -0.5)" + id="g128"> + <switch + id="switch126"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 220px; margin-left: 241px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">EL3_MON</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="390" + y="223" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text124">EL3_MON</text> + </switch> + </g> + <path + d="M 359.67 120 L 359.67 86.37" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path130" /> + <path + d="M 359.67 81.12 L 363.17 88.12 L 359.67 86.37 L 356.17 88.12 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path132" /> + <rect + x="340" + y="120" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect134" /> + <g + transform="translate(-0.5 -0.5)" + id="g140"> + <switch + id="switch138"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 140px; margin-left: 341px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Linux</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="360" + y="143" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text136">Linux</text> + </switch> + </g> + <rect + x="340" + y="40" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect142" /> + <g + transform="translate(-0.5 -0.5)" + id="g148"> + <switch + id="switch146"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 60px; margin-left: 341px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"> + <xhtml:div>Android</xhtml:div> + </xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="360" + y="63" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text144">Android</text> + </switch> + </g> + <rect + x="420" + y="40" + width="60" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect150" /> + <g + transform="translate(-0.5 -0.5)" + id="g156"> + <switch + id="switch154"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 60px; margin-left: 421px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Secure App</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="450" + y="63" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text152">Secure App</text> + </switch> + </g> + <path + d="M 449.67 120 L 449.67 86.37" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path158" /> + <path + d="M 449.67 81.12 L 453.17 88.12 L 449.67 86.37 L 446.17 88.12 Z" + fill="rgb(0, 0, 0)" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path160" /> + <rect + x="420" + y="120" + width="60" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect162" /> + <g + transform="translate(-0.5 -0.5)" + id="g168"> + <switch + id="switch166"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 140px; margin-left: 421px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Secure OS</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="450" + y="143" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text164">Secure OS</text> + </switch> + </g> + <rect + x="500" + y="120" + width="40" + height="40" + fill="rgb(255, 255, 255)" + stroke="rgb(0, 0, 0)" + pointer-events="all" + id="rect170" /> + <g + transform="translate(-0.5 -0.5)" + id="g176"> + <switch + id="switch174"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 140px; margin-left: 501px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">LDFW</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="520" + y="143" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text172">LDFW</text> + </switch> + </g> + <path + d="M 30.5 315 L 30.5 325.5 L 20.5 300 L 30.5 274.5 L 30.5 285 L 49.5 285 L 49.5 274.5 L 59.5 300 L 49.5 325.5 L 49.5 315 Z" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path178" /> + <g + transform="translate(-0.5 -0.5)" + id="g184"> + <switch + id="switch182"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 300px; margin-left: 40px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> + <xhtml:div>iROM</xhtml:div> + </xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="40" + y="303" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text180">iROM</text> + </switch> + </g> + <path + d="M 99.5 315 L 99.5 325.5 L 80.5 300 L 99.5 274.5 L 99.5 285 L 200.5 285 L 200.5 274.5 L 219.5 300 L 200.5 325.5 L 200.5 315 Z" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path186" /> + <g + transform="translate(-0.5 -0.5)" + id="g192"> + <switch + id="switch190"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 300px; margin-left: 150px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> + <xhtml:div>iRAM</xhtml:div> + </xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="150" + y="303" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text188">iRAM</text> + </switch> + </g> + <path + d="M 259.5 315 L 259.5 325.5 L 240.5 300 L 259.5 274.5 L 259.5 285 L 520.5 285 L 520.5 274.5 L 539.5 300 L 520.5 325.5 L 520.5 315 Z" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="all" + id="path194" /> + <g + transform="translate(-0.5 -0.5)" + id="g200"> + <switch + id="switch198"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 300px; margin-left: 390px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"> + <xhtml:div>DRAM</xhtml:div> + </xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="390" + y="303" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text196">DRAM</text> + </switch> + </g> + <path + d="M 0 100 L 590 100" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + stroke-dasharray="3 3" + pointer-events="stroke" + id="path202" /> + <path + d="M 0 180 L 590 180" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + stroke-dasharray="3 3" + pointer-events="stroke" + id="path204" /> + <path + d="M 0 250 L 590 250" + fill="none" + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + stroke-dasharray="3 3" + pointer-events="stroke" + id="path206" /> + <rect + x="550" + y="45" + width="60" + height="30" + fill="none" + stroke="none" + pointer-events="all" + id="rect208" /> + <g + transform="translate(-0.5 -0.5)" + id="g214"> + <switch + id="switch212"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 60px; margin-left: 551px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">EL0</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="580" + y="63" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text210">EL0</text> + </switch> + </g> + <rect + x="550" + y="125" + width="60" + height="30" + fill="none" + stroke="none" + pointer-events="all" + id="rect216" /> + <g + transform="translate(-0.5 -0.5)" + id="g222"> + <switch + id="switch220"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 140px; margin-left: 551px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">EL1</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="580" + y="143" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text218">EL1</text> + </switch> + </g> + <rect + x="550" + y="205" + width="60" + height="30" + fill="none" + stroke="none" + pointer-events="all" + id="rect224" /> + <g + transform="translate(-0.5 -0.5)" + id="g230"> + <switch + id="switch228"> + <foreignObject + style="overflow: visible; text-align: left;" + pointer-events="none" + width="100%" + height="100%" + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> + <xhtml:div + style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 220px; margin-left: 551px;"> + <xhtml:div + style="box-sizing: border-box; font-size: 0px; text-align: center;" + data-drawio-colors="color: rgb(0, 0, 0); "> + <xhtml:div + style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">EL3</xhtml:div> + </xhtml:div> + </xhtml:div> + </foreignObject> + <text + x="580" + y="223" + fill="rgb(0, 0, 0)" + font-family="Helvetica" + font-size="11px" + text-anchor="middle" + id="text226">EL3</text> + </switch> + </g> + </g> + <switch + id="switch240"> + <g + requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" + id="g234" /> + <a + transform="translate(0,-5)" + xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" + target="_blank" + id="a238"> + <text + text-anchor="middle" + font-size="10px" + x="50%" + y="100%" + id="text236">Text is not SVG - cannot display</text> + </a> + </switch> +</svg> diff --git a/doc/board/samsung/index.rst b/doc/board/samsung/index.rst index 971805e201..a1c9636b05 100644 --- a/doc/board/samsung/index.rst +++ b/doc/board/samsung/index.rst @@ -7,3 +7,4 @@ Samsung :maxdepth: 2 axy17lte + e850-96 diff --git a/doc/device-tree-bindings/clock/samsung,exynos850-clock.yaml b/doc/device-tree-bindings/clock/samsung,exynos850-clock.yaml new file mode 100644 index 0000000000..a0906efe12 --- /dev/null +++ b/doc/device-tree-bindings/clock/samsung,exynos850-clock.yaml @@ -0,0 +1,307 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/samsung,exynos850-clock.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Samsung Exynos850 SoC clock controller + +maintainers: + - Sam Protsenko <semen.protsenko@linaro.org> + +description: | + Exynos850 clock controller is comprised of several CMU units, generating + clocks for different domains. Those CMU units are modeled as separate device + tree nodes, and might depend on each other. Root clocks in that clock tree are + two external clocks:: OSCCLK (26 MHz) and RTCCLK (32768 Hz). Those external + clocks must be defined as fixed-rate clocks in dts. + + CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and + dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP. + + Each clock is assigned an identifier and client nodes can use this identifier + to specify the clock which they consume. All clocks available for usage + in clock consumer nodes are defined as preprocessor macros in + 'dt-bindings/clock/exynos850.h' header. + +properties: + compatible: + enum: + - samsung,exynos850-cmu-top + - samsung,exynos850-cmu-apm + - samsung,exynos850-cmu-aud + - samsung,exynos850-cmu-cmgp + - samsung,exynos850-cmu-core + - samsung,exynos850-cmu-dpu + - samsung,exynos850-cmu-g3d + - samsung,exynos850-cmu-hsi + - samsung,exynos850-cmu-is + - samsung,exynos850-cmu-mfcmscl + - samsung,exynos850-cmu-peri + + clocks: + minItems: 1 + maxItems: 5 + + clock-names: + minItems: 1 + maxItems: 5 + + "#clock-cells": + const: 1 + + reg: + maxItems: 1 + +allOf: + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-top + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + + clock-names: + items: + - const: oscclk + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-apm + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: CMU_APM bus clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_clkcmu_apm_bus + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-aud + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: AUD clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_aud + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-cmgp + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: CMU_CMGP bus clock (from CMU_APM) + + clock-names: + items: + - const: oscclk + - const: gout_clkcmu_cmgp_bus + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-core + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: CMU_CORE bus clock (from CMU_TOP) + - description: CCI clock (from CMU_TOP) + - description: eMMC clock (from CMU_TOP) + - description: SSS clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_core_bus + - const: dout_core_cci + - const: dout_core_mmc_embd + - const: dout_core_sss + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-dpu + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: DPU clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_dpu + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-g3d + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: G3D clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_g3d_switch + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-hsi + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: External RTC clock (32768 Hz) + - description: CMU_HSI bus clock (from CMU_TOP) + - description: SD card clock (from CMU_TOP) + - description: USB 2.0 DRD clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: rtcclk + - const: dout_hsi_bus + - const: dout_hsi_mmc_card + - const: dout_hsi_usb20drd + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-is + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: CMU_IS bus clock (from CMU_TOP) + - description: Image Texture Processing core clock (from CMU_TOP) + - description: Visual Recognition Accelerator clock (from CMU_TOP) + - description: Geometric Distortion Correction clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_is_bus + - const: dout_is_itp + - const: dout_is_vra + - const: dout_is_gdc + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-mfcmscl + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: Multi-Format Codec clock (from CMU_TOP) + - description: Memory to Memory Scaler clock (from CMU_TOP) + - description: Multi-Channel Scaler clock (from CMU_TOP) + - description: JPEG codec clock (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_mfcmscl_mfc + - const: dout_mfcmscl_m2m + - const: dout_mfcmscl_mcsc + - const: dout_mfcmscl_jpeg + + - if: + properties: + compatible: + contains: + const: samsung,exynos850-cmu-peri + + then: + properties: + clocks: + items: + - description: External reference clock (26 MHz) + - description: CMU_PERI bus clock (from CMU_TOP) + - description: UART clock (from CMU_TOP) + - description: Parent clock for HSI2C and SPI (from CMU_TOP) + + clock-names: + items: + - const: oscclk + - const: dout_peri_bus + - const: dout_peri_uart + - const: dout_peri_ip + +required: + - compatible + - "#clock-cells" + - clocks + - clock-names + - reg + +additionalProperties: false + +examples: + # Clock controller node for CMU_PERI + - | + #include <dt-bindings/clock/exynos850.h> + + cmu_peri: clock-controller@10030000 { + compatible = "samsung,exynos850-cmu-peri"; + reg = <0x10030000 0x8000>; + #clock-cells = <1>; + + clocks = <&oscclk>, <&cmu_top CLK_DOUT_PERI_BUS>, + <&cmu_top CLK_DOUT_PERI_UART>, + <&cmu_top CLK_DOUT_PERI_IP>; + clock-names = "oscclk", "dout_peri_bus", + "dout_peri_uart", "dout_peri_ip"; + }; + +... diff --git a/doc/device-tree-bindings/soc/samsung/exynos-pmu.yaml b/doc/device-tree-bindings/soc/samsung/exynos-pmu.yaml new file mode 100644 index 0000000000..c3e95c33b0 --- /dev/null +++ b/doc/device-tree-bindings/soc/samsung/exynos-pmu.yaml @@ -0,0 +1,85 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/samsung/exynos-pmu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Samsung Exynos SoC series Power Management Unit (PMU) + +maintainers: + - Sam Protsenko <semen.protsenko@linaro.org> + +description: |+ + PMU block controls the power and operation states of Exynos SoC. It contains + registers for changing the state of next features:: + + - Local power control. Exynos SoCs have various power domains, and it's + possible to turn them on and off independently, using corresponding + registers in PMU block + - System-level power control. That allows putting the system into power-down + modes (sleep) by turning off the power for most of the domains + - Miscellaneous PMU related features + +# Custom select to avoid matching all nodes with 'syscon' +select: + properties: + compatible: + contains: + enum: + - samsung,exynos850-pmu + required: + - compatible + +properties: + compatible: + oneOf: + - items: + - enum: + - samsung,exynos850-pmu + - const: syscon + + reg: + maxItems: 1 + + samsung,uart-debug-1: + type: boolean + description: + Enable this property if AP UART lines (Application Processor UART) must be + connected to UART_DEBUG_1 path in PMU block. That's usually needed when + the serial console is provided by uart1_pins. If this property is not + specified, the default behavior will be used (AP UART lines connected to + UART_DEBUG_0 path, which usually means uart0_pins are used for the serial + console). + + syscon-poweroff: + $ref: /schemas/power/reset/syscon-poweroff.yaml# + type: object + description: + Node for power off method + + syscon-reboot: + $ref: /schemas/power/reset/syscon-reboot.yaml# + type: object + description: + Node for reboot method + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + pmu_system_controller: system-controller@11860000 { + compatible = "samsung,exynos850-pmu", "syscon"; + reg = <0x11860000 0x10000>; + + reboot: syscon-reboot { + compatible = "syscon-reboot"; + regmap = <&pmu_system_controller>; + offset = <0x3a00>; /* SYSTEM_CONFIGURATION */ + mask = <0x2>; /* SWRESET_SYSTEM */ + value = <0x2>; /* reset value */ + }; + }; diff --git a/doc/device-tree-bindings/soc/samsung/exynos-usi.yaml b/doc/device-tree-bindings/soc/samsung/exynos-usi.yaml new file mode 100644 index 0000000000..8e6423f115 --- /dev/null +++ b/doc/device-tree-bindings/soc/samsung/exynos-usi.yaml @@ -0,0 +1,162 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/samsung/exynos-usi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Samsung's Exynos USI (Universal Serial Interface) + +maintainers: + - Sam Protsenko <semen.protsenko@linaro.org> + +description: | + USI IP-core provides selectable serial protocol (UART, SPI or High-Speed I2C). + USI shares almost all internal circuits within each protocol, so only one + protocol can be chosen at a time. USI is modeled as a node with zero or more + child nodes, each representing a serial sub-node device. The mode setting + selects which particular function will be used. + +properties: + $nodename: + pattern: "^usi@[0-9a-f]+$" + + compatible: + enum: + - samsung,exynos850-usi + + reg: true + + clocks: true + + clock-names: true + + ranges: true + + "#address-cells": + const: 1 + + "#size-cells": + const: 1 + + samsung,sysreg: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: phandle to System Register syscon node + - description: offset of SW_CONF register for this USI controller + description: + Should be phandle/offset pair. The phandle to System Register syscon node + (for the same domain where this USI controller resides) and the offset + of SW_CONF register for this USI controller. + + samsung,mode: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Selects USI function (which serial protocol to use). Refer to + <include/dt-bindings/soc/samsung,exynos-usi.h> for valid USI mode values. + + samsung,clkreq-on: + type: boolean + description: + Enable this property if underlying protocol requires the clock to be + continuously provided without automatic gating. As suggested by SoC + manual, it should be set in case of SPI/I2C slave, UART Rx and I2C + multi-master mode. Usually this property is needed if USI mode is set + to "UART". + + This property is optional. + +patternProperties: + "^i2c@[0-9a-f]+$": + $ref: /schemas/i2c/i2c-exynos5.yaml + description: Child node describing underlying I2C + + "^serial@[0-9a-f]+$": + $ref: /schemas/serial/samsung_uart.yaml + description: Child node describing underlying UART/serial + + "^spi@[0-9a-f]+$": + $ref: /schemas/spi/samsung,spi.yaml + description: Child node describing underlying SPI + +required: + - compatible + - ranges + - "#address-cells" + - "#size-cells" + - samsung,sysreg + - samsung,mode + +if: + properties: + compatible: + contains: + enum: + - samsung,exynos850-usi + +then: + properties: + reg: + maxItems: 1 + + clocks: + items: + - description: Bus (APB) clock + - description: Operating clock for UART/SPI/I2C protocol + + clock-names: + items: + - const: pclk + - const: ipclk + + required: + - reg + - clocks + - clock-names + +else: + properties: + reg: false + clocks: false + clock-names: false + samsung,clkreq-on: false + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/soc/samsung,exynos-usi.h> + + usi0: usi@138200c0 { + compatible = "samsung,exynos850-usi"; + reg = <0x138200c0 0x20>; + samsung,sysreg = <&sysreg_peri 0x1010>; + samsung,mode = <USI_V2_UART>; + samsung,clkreq-on; /* needed for UART mode */ + #address-cells = <1>; + #size-cells = <1>; + ranges; + clocks = <&cmu_peri 32>, <&cmu_peri 31>; + clock-names = "pclk", "ipclk"; + + serial_0: serial@13820000 { + compatible = "samsung,exynos850-uart"; + reg = <0x13820000 0xc0>; + interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&cmu_peri 32>, <&cmu_peri 31>; + clock-names = "uart", "clk_uart_baud0"; + status = "disabled"; + }; + + hsi2c_0: i2c@13820000 { + compatible = "samsung,exynosautov9-hsi2c"; + reg = <0x13820000 0xc0>; + interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&cmu_peri 31>, <&cmu_peri 32>; + clock-names = "hsi2c", "hsi2c_pclk"; + status = "disabled"; + }; + }; |