Hi,
I tried to use Nova without Bender with Multiboot2. Basically it works, but when I omit Bender, there's no serial output from either Nova or Genode. I couldn't find out what Bender does different to enable serial on Nova.
My grub2.cfg looks as follows:
set timeout=5 serial --unit=0 --speed=115200 terminal_output serial console terminal_input serial console menuentry 'Genode on NOVA' { multiboot2 /hypervisor hypervisor iommu serial novpid novga module2 /image.elf image.elf }
What is missing to enable serial on Nova alone?
Regards, Johannes
PS: It also seems that Benders Multiboot2-header [1] is not specification conform. The tags type and flags are defined as double word but according to the specification [2] these are u16 so this should be a word only.
[1]: https://github.com/alex-ab/morbo/blob/genode_bender/standalone/start.asm#L15 [2]: http://nongnu.askapache.com/grub/phcoder/multiboot.pdf
Hi,
On 03.08.2017 13:11, Johannes Kliemann wrote:
I tried to use Nova without Bender with Multiboot2. Basically it works, but when I omit Bender, there's no serial output from either Nova or Genode. I couldn't find out what Bender does different to enable serial on Nova.
the task of Bender is to relocate modules to higher physical memory and to detect PCI serial cards and determine the I/O ports to use them actually. Bender writes this information to a area called Bios Data Area (BDA).
The NOVA microhypervisor and 'core' of Genode look into this area and use the information obtained from there to program and to drive the UART/serial device.
By removing Bender, you effectively have no valid information in the BDA anymore, and so you don't get any serial output.
What is missing to enable serial on Nova alone?
If you don't want to use Bender, but want to have serial output, then you have to hardcode the I/O ports for your target machine specifically in the sources of NOVA and 'core', see [0] and [1].
[0] https://github.com/alex-ab/NOVA/blob/r9/src/console_serial.cpp#L35 [1] https://github.com/genodelabs/genode/blob/master/repos/base-nova/src/core/co...
PS: It also seems that Benders Multiboot2-header [1] is not specification conform. The tags type and flags are defined as double word but according to the specification [2] these are u16 so this should be a word only.
You're right, I'm going to change it. Thanks!
Cheers,
Alex.
Hello Johannes,
On 03.08.2017 13:11, Johannes Kliemann wrote:
I tried to use Nova without Bender with Multiboot2. Basically it works, but when I omit Bender, there's no serial output from either Nova or Genode. I couldn't find out what Bender does different to enable serial on Nova.
let me just add to Alex' reply that you can find the role of Bender described in Section 7.8.3. "Log output on modern PC hardware" in the Genode-Foundations document [1].
[1] http://genode.org/documentation/genode-foundations-17-05.pdf
Cheers Norman