From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko =?ISO-8859-1?Q?St=FCbner?= Date: Tue, 22 Oct 2019 22:02:49 +0200 Subject: [U-Boot] [PATCH 3/3] image: fdt: copy possible optee nodes to a loaded devicetree In-Reply-To: <1910701.y9Z3IgaMsc@diego> References: <20191008002207.14396-1-heiko@sntech.de> <1910701.y9Z3IgaMsc@diego> Message-ID: <4214277.TVXEG5jCzj@diego> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: u-boot@lists.denx.de Hi Simon, Am Dienstag, 22. Oktober 2019, 14:08:04 CEST schrieb Heiko St=C3=BCbner: > Am Dienstag, 22. Oktober 2019, 02:17:00 CEST schrieb Simon Glass: > > On Mon, 7 Oct 2019 at 18:22, Heiko Stuebner wrote: > > > > > > The loading convention for optee or any other tee on arm64 is as bl32 > > > parameter to the trusted-firmware. So TF-A gets invoked with the TEE = as > > > bl32 and main u-boot as bl33. Once it has done its startup TF-A jumps > > > into the bl32 for the TEE startup, returns to TF-A and then jumps to = bl33. > > > > > > All of them get passed a devicetree as parameter and all components o= ften > > > get loaded from a FIT image. > > > > > > OP-TEE will create additional nodes in that devicetree namely a firmw= are > > > node and possibly multiple reserved-memory nodes. > > > > > > While this devicetree is used in main u-boot, in most cases it won't = be > > > the one passed to the actual kernel. Instead most boot commands will = load > > > a new devicetree from somewhere like mass storage of the network, so = if > > > that happens u-boot should transfer the optee nodes to that new devic= etree. > > > > > > To make that happen introduce optee_copy_fdt_nodes() called from the = dt > > > setup function in image-fdt which after checking for the optee presen= ce > > > in the u-boot dt will make sure a optee node is present in the kernel= dt > > > and transfer any reserved-memory regions it can find. > > > > > > Signed-off-by: Heiko Stuebner > > > --- > > > This goes together with my bl32 work for the spl_atf loader in > > > https://patchwork.ozlabs.org/patch/1172565/ > > > > > > common/image-fdt.c | 8 ++++ > > > include/tee/optee.h | 9 ++++ > > > lib/optee/optee.c | 112 ++++++++++++++++++++++++++++++++++++++++++= ++ > > > 3 files changed, 129 insertions(+) > >=20 > > Could we please get a test for this new functionality? >=20 > We can try ;-) , but I think I'll need some pointers how this should be d= one. >=20 > On first glance, test/overlay/* seems to be a good inspiration. Aka the n= ew > function relies on an opaque OP-TEE binary modifying the .itb's dt-blob > between SPL and main-U-Boot, so working with stub devicetrees for > testing seems reasonable. >=20 > Aka checking cases of optee-nodes in old_fdt and not having them. I just did go ahead and implemented a test like that, see v2 series. Is this what you had in mind? Heiko