Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jun 2015 22:56:44 +0300
From:      Mihai Carabas <mihai.carabas@gmail.com>
To:        soc-status@freebsd.org
Subject:   Re: [GSOC] bhyve port on ARM - weekly status report
Message-ID:  <CANg1yUvyjTezxURAJi2EnYh6WLGVwSJbMSQNUEV0A2Un7kKNjA@mail.gmail.com>
In-Reply-To: <CANg1yUsT=RRiNffq6cEXZArR4dYg9RiRc3dgc%2BCXMaY8JYir2Q@mail.gmail.com>
References:  <CANg1yUspT8uHtX4bu0kO5dWLssvv-5457kSBovdyNKpi-OQ1kw@mail.gmail.com> <CANg1yUvgvtp5asPXLmtjwkROZ4Kf=mrOxXFcwvwdseYoQkcivA@mail.gmail.com> <CANg1yUsT=RRiNffq6cEXZArR4dYg9RiRc3dgc%2BCXMaY8JYir2Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi everyone,

Here is the last week status report.


> Right now I've managed to finally get to the mount root part [5].
>
After this part, I've created a ramdisk filesystem using makefs and a mtree
file format with a minimal number of files (hardlinks to the rescue binary,
running in single-user mode). I've pushed a script for makefs and the mtree
file to the repo [1].

Further I've modified the conf file to include the ramdisk in the kernel
image and I got to the shell. But at this point, I had no input. It seems
that the interrupts were not delivered (the input worked on kernel KDB
though). First I thought that the console is working in polling mode (which
Peter said that is not supported by the tty I was using). After a day of
debugging I've noticed that no interrupts were coming. There would have
been multiple causes: the GIC was missconfigured, the interrupts numbers
for the serial input weren't parsed correctly. I assumed that the problem
is at the DTB parsing. In order to eliminate all the problems with FreeBSD
DTB parsing, I've created a simple DTB from scratch, adding only the cpu,
gic, timers and console devices, all with absolute addresses (no addresses
relative to a bus, or interrupt number relative to a bank). After this step
all worked like a charm.

Further I've written an initialization code for HYP mode, installing a stub
handler for HYP exception for platforms that have support for this. The
stub handler permits changing the exception vectors. Later, when the vmm
module will be loaded, the handler will be replaced by a fully fledged one
which will take care of VM context switch and various exceptions. [2]


> PS: This week I will try to create a tutorial on the wiki on how to run
> the FreeBSD on FastModel FVP_VE-CortexA15x1.
>
> I've postponed the tutorial due to the work on hypervisor initialization.
I will try to make it until next week.

Thank you,
Mihai

[1] https://svnweb.freebsd.org/socsvn/soc2015/mihai/ramdisk/
[2]
https://svnweb.freebsd.org/socsvn/soc2015/mihai/bhyve-on-arm-head/sys/arm/arm/hypervisor-stub.S?revision=287374&view=markup



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANg1yUvyjTezxURAJi2EnYh6WLGVwSJbMSQNUEV0A2Un7kKNjA>