[TZ_VMM] - libpng on the i.MX53 QSB

Tiago Brito tb.genode at ...9...
Wed Jun 1 15:11:02 CEST 2016


I actually solved this, it looks like the image is to big after adding the
binaries. So the solution was setting the bootload to load the image to a
higher address:
    before - ext2load mmc 0:1 0x70200000 uImage; bootm 0x70200000
    after - ext2load mmc 0:1 0x70400000 uImage; bootm 0x70400000

But although this is solved it looks like the example still cannot run.
This is the output:

## Booting kernel from Legacy Image at 70400000 ...
   Image Name:
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    8523403 Bytes = 8.1 MiB
   Load Address: 70010000
   Entry Point:  70010000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

kernel initialized
Genode 16.02
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 241 MB to init
int main(): --- init created, waiting for exit condition ---
[init] parent provides
[init]   service "ROM"
[init]   service "RAM"
[init]   service "IRQ"
[init]   service "IO_MEM"
[init]   service "IO_PORT"
[init]   service "CAP"
[init]   service "PD"
[init]   service "RM"
[init]   service "CPU"
[init]   service "LOG"
[init]   service "SIGNAL"
[init]   service "VM"
[init] child "tz_vmm"
[init]   RAM quota:  10203136
[init]   ELF binary: tz_vmm
[init]   priority:   0
[init -> tz_vmm] Could not open ROM session for module "config"
[init -> tz_vmm] Could not obtain config file
[init -> tz_vmm] Could not open ROM session for module "libm.lib.so"
[init -> tz_vmm] abort called - thread: 'main'
[init] virtual void Genode::Child_policy::exit(int): child "tz_vmm" exited
with exit value 1

It looks like the output mentions libm, do I need math lib in order to run
libpng?
I don't see libm inside $(GENODE_DIR)/repos/libports/ports

Thanks, Tiago

2016-06-01 12:50 GMT+01:00 Tiago Brito <tb.genode at ...9...>:

>
>
> 2016-06-01 12:31 GMT+01:00 Stefan Kalkowski <
> stefan.kalkowski at ...1...>:
>
>> Hello Tiago,
>>
>> On 06/01/2016 01:07 PM, Tiago Brito wrote:
>> > Hi, I've been trying to use libpng inside the secure world of i.MX53 QSB
>> > TrustZone aware TZ_VMM example.
>> >
>> > I want to receive an image from the normal world (running Linux) and do
>> > some process the image in some way inside the secure world.
>> >
>> > I understand the flow of genode and tz_vmm in particular and there are
>> some
>> > examples on how to communicate data between the normal and secure
>> world, so
>> > that's not my problem right now. My problem is that I cannot run tz_vmm
>> > after adding libpng as a lib.
>> >
>> > In order to use libpng inside tz_vmm I did the following:
>> >     1) in $(BUILDDIR)/etc/build.conf uncommented this line
>> >         REPOSITORIES += $(GENODE_DIR)/repos/libports
>> >
>> >     2) inside $(GENODE_DIR)/repos/libports I did:
>> >         make prepare PKG="libc zlib libpng"
>> >
>> >     3) inside $(BUILDDIR)/repos/os/src/server/tz_vmm/spec/imx53 I added
>> the
>> > following to target.inc
>> >         LIBS     += libc
>> >         LIBS     += zlib
>> >         LIBS     += libpng
>> >
>> >     4) then I added #include <png.h> inside main.cc
>> >
>> >     5) finally inside $(BUILDDIR) I did
>> >         make run/tz_vmm
>> >
>> > All these steps compiled fine, but when I run this on my board the
>> > following message comes up:
>> >
>> > ## Booting kernel from Legacy Image at 70200000 ...
>> >    Image Name:
>> >    Image Type:   ARM Linux Kernel Image (gzip compressed)
>> >    Data Size:    7888432 Bytes = 7.5 MiB
>> >    Load Address: 70010000
>> >    Entry Point:  70010000
>> >    Verifying Checksum ... OK
>> >    Uncompressing Kernel Image ... OK
>> >
>> > Starting kernel ...
>> >
>> > kernel initialized
>> > Genode 16.02
>> > int main(): --- create local services ---
>> > int main(): --- start init ---
>> > int main(): transferred 242 MB to init
>> > int main(): --- init created, waiting for exit condition ---
>> > [init] Could not open ROM session for module "ld.lib.so"
>> > [init] parent provides
>> > [init]   service "ROM"
>> > [init]   service "RAM"
>> > [init]   service "IRQ"
>> > [init]   service "IO_MEM"
>> > [init]   service "IO_PORT"
>> > [init]   service "CAP"
>> > [init]   service "PD"
>> > [init]   service "RM"
>> > [init]   service "CPU"
>> > [init]   service "LOG"
>> > [init]   service "SIGNAL"
>> > [init]   service "VM"
>> > [init] Dynamically linked file found, but no dynamic linker binary
>> present
>> > [init] unknown exception?
>> > [init] child "tz_vmm"
>> > [init]   RAM quota:  10203136
>> > [init]   ELF binary: tz_vmm
>> > [init]   priority:   0
>> >
>> > What have I done wrong? It seems I need to add a binary somewhere, but I
>> > don't know where. Do I need to compile anything else in order to libpng
>> to
>> > be usable inside genode?
>> >
>> > Thanks in advance!
>>
>> You missed to add the dynamic linker itself to the files to be loaded.
>> It is called ld.lib.so and can be found in your build-directory under
>> bin/. PLease also add all other *.lib.so files to your bootloader
>> configuration resp. the run-script.
>>
>
> Thanks Stefan, I did what you say and it compiled without any problem, but
> I still cannot run the example.
> I changed the tz_vmm run script like so:
>     set boot_modules { core init ld.lib.so libc.lib.so zlib.lib.so
> libpng.lib.so tz_vmm linux }
>
> It now fails even before launching Genode. This is the output:
>
> ## Booting kernel from Legacy Image at 70200000 ...
>    Image Name:
>    Image Type:   ARM Linux Kernel Image (gzip compressed)
>    Data Size:    8523403 Bytes = 8.1 MiB
>    Load Address: 70010000
>    Entry Point:  70010000
>    Verifying Checksum ... OK
>    Uncompressing Kernel Image ... Error: inflate() returned -3
> gzip compressed: uncompress error -1
> Must RESET board to recover
> resetting ...
>
>
> Does this mean the image is corrupted in any way and thus it cannot be
> uncompressed?
>
> Thanks, Tiago
>
>
>> Regards
>> Stefan
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20160601/e0d81136/attachment.html>


More information about the users mailing list