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!
Best regards, Tiago