Hi Nico,
Cool that you've found a way to make it work :)
Regarding the Systemd-problem: Its only a guess but Systemd might simply disable the UART with its default log_target/log_level values. I had it several times that Linux disabled things that UART needs. Unfortunately we have only one UART that is shared between secure/nonsecure mode by now. E.g. the Linux console driver tried to let UART clocks be enabled only on demand (commit "disable clock gating" was motivated by this). You may check wether Genode is merely silented via an HW-debugger with breakpoints set to the secure world entries (see 'Cpu::mon_exception_entry_at' in 'base-hw/src/core/spec/imx53/trustzone/platform_support.cc') or by SW-tracing the IO-access of the nonsecure world (as mentioned in my last mail).
Cheers, Martin
On 06.02.2015 15:29, Nico Weichbrodt wrote:
Hi again,
my system works now, but I have no clue why. I wanted to debug the hang in systemd so I added systemd.log_level=debug systemd.log_target=console to my bootargs. And then it booted to the login prompt with the ping. If I remove those args again, the system hangs as soon as the first ping after systemd took over would be printed. If I add them again, it all works again. It also works with systemd.log_level=info systemd.log_target=console I have no idea why.
But I am very happy that it finally works, thank you so much for your help.
Cheers, Nico ________________________________________ Von: Nico Weichbrodt Gesendet: Freitag, 6. Februar 2015 12:48 An: Genode OS Framework Mailing List Betreff: AW: AW: AW: AW: AW: Running Linux 3.14 as a Genode VM
Hi,
I first applied your patches to my 3.14 kernel but I also tried your 3.18 kernel with the same result. The system hangs as soon as a ping should be printed after systemd took over, everything seems fine before that.
I tried editing the run file, but we have our own which looks like the tz_vmm.run file but it lacks everything after build_boot_image, so no run_genode_until. If I add run_genode_until forever then during build I get: Error: Can't execute automatically on target 'uboot' This is our trustinit.run: http://pastebin.com/QF62kxzpa (with the added run_genode_until forever) And this is our build.conf: http://pastebin.com/i1Xzm6M4
I will look further into this, Cheers, Nico ________________________________________ Von: Martin Stein Gesendet: Donnerstag, 5. Februar 2015 12:13 An: Genode OS Framework Mailing List Betreff: Re: AW: AW: AW: AW: Running Linux 3.14 as a Genode VM
Hey Nico,
Cool that you're still on it and got so far already. I've applied your "ping"-snippet to my branches. Then in 'os/run/tz_vmm.run' replaced 'run_genode_until STUFF' by 'run_genode_until forever' and outcommented everything after that line. Now I'm getting a working prompt and proper pings at both our imx53-qsb and our imx53-usb-armory.
Are you still targeting Linux 3.14? If your kernel uses the EPIT timer it may interfere with Genodes userland timer-driver (os/src/drivers/timer/hw/epit) that provides the 'Timer::Connection' to you.
You may instrument 'Kernel::Vm::exception(...)' in 'base-hw/src/core/include/kernel/vm.h' or even 'kernel()' in 'base-hw/src/core/kernel/kernel.cc' to see if the context switch really might be problem. If the problem is caused by bad Linux-IO, my IO-tracing/filter tool for Linux may help you debugging/solving it. The initial commit is https://github.com/m-stein/linux/commit/579c91d159905eb61aed9e8e36748069fbbf... and I enhanced it yesterday on the https://github.com/m-stein/linux/tree/usb_armory_genode_esdhc branch.
Cheers, Martin