Nova without Bender

Alexander Boettcher alexander.boettcher at ...1...
Fri Aug 4 09:06:33 CEST 2017


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/core_log.cc#L25

> 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.

-- 
Alexander Boettcher
Genode Labs

http://www.genode-labs.com - http://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list