AW: AW: AW: AW: AW: Running Linux 3.14 as a Genode VM

Martin Stein martin.stein at ...1...
Fri Feb 6 17:35:55 CET 2015


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/579c91d159905eb61aed9e8e36748069fbbf1722
> and I enhanced it yesterday on the
> https://github.com/m-stein/linux/tree/usb_armory_genode_esdhc branch.
>
> Cheers,
> Martin
>
>





More information about the users mailing list