Weekly Progress Report Thread: Xen on Beagleboard-x15

Hello,

this is a week #0 status update for the GSoC 2019 project Xen on Beagleboard-x15:

  • Accomplishments:
  • I made an introductory youtube video
  • Purchased hardware (power adapters and a debugger)
  • Downloaded and structured documentation on ARM and Beagleboard- Resolutions to blockers:
  • No blockers- On-going blockers:
  • Lack of the hardware- Plans for the next week:
  • To run Xen on qemu-arm and document the process
  • To set up the development environment (define a workflow and choose a toolchain and software versions).
    This thread will be used for weekly progress updates of the project.

Hello,

this is a week #0 status update for the GSoC 2019 project Xen on Beagleboard-x15:

  • Accomplishments:
  • I made an introductory youtube video
  • Purchased hardware (power adapters and a debugger)
  • Downloaded and structured documentation on ARM and Beagleboard- Resolutions to blockers:
  • No blockers- On-going blockers:
  • Lack of the hardware

There’s a lack of hardware?

I have a hardware order of Arrow WEB-SO17644708.

Hello,

this is a week #0 status update for the GSoC 2019 project Xen on Beagleboard-x15:

  • Accomplishments:
  • I made an introductory youtube video
  • Purchased hardware (power adapters and a debugger)
  • Downloaded and structured documentation on ARM and Beagleboard- Resolutions to blockers:
  • No blockers- On-going blockers:
  • Lack of the hardware

There’s a lack of hardware?

I am talking about power adapters and a debugger. I purchased them and they should come soon (don’t know when exactly).

This is a week #1 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I am in the process of making xen run on qemu-arm.
Currently, there is xen output, it hangs on starting Credit2 scheduler (perhaps during bad interrupt controller)
Resolutions to blockers:
Not Resolved - hardware haven’t arrived yet
On-going blockers:
Lack of the hardware (adapters and debuggers haven’t arrived yet)
Non-starting xen scheduler
Plans for the next week:
To run Xen on qemu-arm and document the process
To set up the development environment (define a workflow and choose a toolchain and software versions).
To buy hardware in a local store if it doesn’t arrive in two or three days.
To start implementing interrupt controller support for Xen.

This thread is used for weekly progress updates of the project.

This is a week #2 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to run xen dom0 and domU simultaneously on qemu-arm64.
Currently, I need to figure out how to deal with their consoles
The description of the process of installing xen on qemu is almost ready

Resolutions to blockers:
I bought a power supply
I asked a secretary of my lab to repurchase the debugger from another place (from mouser.de)

On-going blockers:
Lack of the hardware (the debugger hasn’t arrived yet)
Not-known how to deal with consoles
Plans for the next week:
To check the board with u-boot+Linux+busybox
To buy also a usb-ttl adapter and electrostatic bracelet
Try to understand how interrupt controller works
If hardware arrives to start implementing interrupt controller

Hi,

This is a week #2 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to run xen dom0 and domU simultaneously on qemu-arm64.
Currently, I need to figure out how to deal with their consoles
The description of the process of installing xen on qemu is almost ready
Resolutions to blockers:
I bought a power supply
I asked a secretary of my lab to repurchase the debugger from another place (from mouser.de)
On-going blockers:
Lack of the hardware (the debugger hasn't arrived yet)
Not-known how to deal with consoles

I guess this is related to the post on xen-users today?

Plans for the next week:
To check the board with u-boot+Linux+busybox
To buy also a usb-ttl adapter and electrostatic bracelet
Try to understand how interrupt controller works
If hardware arrives to start implementing interrupt controller

By hardware, do you mean the debugger? If so, I don't think it is
required for starting to implement the interrupt controller.

Cheers,

Hi,

Hi,

>
> This is a week #2 status update for the GSoC 2019 project Xen on Beagleboard-x15:
>
> Accomplishments:
> I was able to run xen dom0 and domU simultaneously on qemu-arm64.
> Currently, I need to figure out how to deal with their consoles
> The description of the process of installing xen on qemu is almost ready
> Resolutions to blockers:
> I bought a power supply
> I asked a secretary of my lab to repurchase the debugger from another place (from mouser.de)
> On-going blockers:
> Lack of the hardware (the debugger hasn't arrived yet)
> Not-known how to deal with consoles

I guess this is related to the post on xen-users today?

Yes, it was.

> Plans for the next week:
> To check the board with u-boot+Linux+busybox
> To buy also a usb-ttl adapter and electrostatic bracelet
> Try to understand how interrupt controller works
> If hardware arrives to start implementing interrupt controller

By hardware, do you mean the debugger? If so, I don't think it is
required for starting to implement the interrupt controller.

Oh, great, then I will start to do it without it. I also thought about
this today.

Another accomplishment:
The description of how to install Xen on Qemu for arm64 platform is ready:
https://medium.com/@denisobrezkov/xen-on-arm-and-qemu-1654f24dea75?postPublishedType=repub

Another accomplishment:
The description of how to install Xen on Qemu for arm64 platform is ready:
Xen On Arm64 and Qemu. In this post I want to show you how to… | by Denis Obrezkov | Medium

Thank you for the post. May I ask if you can update the wiki page with
your fixes? :slight_smile:

For the rootfs part, we may want to provide different alternatives so
the user can decide what is the most suitable way for him.

Cheers,

> Another accomplishment:
> The description of how to install Xen on Qemu for arm64 platform is ready:
> Xen On Arm64 and Qemu. In this post I want to show you how to… | by Denis Obrezkov | Medium

Thank you for the post. May I ask if you can update the wiki page with
your fixes? :slight_smile:

Do you mean this wiki-page:
https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Building_Xen_on_ARM
The main question is what to update?
Because the wiki pages shows another example where uefi and a
ready-to-use image are used along with xl.

(+ Stefano)

Hi,

>
> > Another accomplishment:
> > The description of how to install Xen on Qemu for arm64 platform is ready:
> > Xen On Arm64 and Qemu. In this post I want to show you how to… | by Denis Obrezkov | Medium
>
> Thank you for the post. May I ask if you can update the wiki page with
> your fixes? :slight_smile:
Do you mean this wiki-page:
Xen ARM with Virtualization Extensions - Xen
The main question is what to update?
Because the wiki pages shows another example where uefi and a
ready-to-use image are used along with xl.

I think anything "board" specific (e.g U-boot configuration) should go
in QEMU page.

For the rest, it depends on your suggestion. For the rootfs, we may
want to create a new page.

Stefano any opinion?

Cheers,

This is a week #3 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to run u-boot+Linux+busybox on bb-x15
I’ve tried to boot Xen and got to the booting problem

Resolutions to blockers:
I found usb-ttl, sd card and ethernet cable last week

The debugger should arrive approx. in 10 days

On-going blockers:
I wait for the debugger
I don’t really understand how to debug the hardware via a serial port
I don’t have clear understanding on where the problem with booting is located

Plans for the next week:
To try to understand what is a booting order and how configuration should be done
To try to understand how an interrupt controller works
To test the previous Iain’s work
To try to boot further
To start implementing interrupt controller support.

Hi Denis,

Thank you for the update.

This is a week #3 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to run u-boot+Linux+busybox on bb-x15
I’ve tried to boot Xen and got to the booting problem

Resolutions to blockers:
I found usb-ttl, sd card and ethernet cable last week

The debugger should arrive approx. in 10 days

On-going blockers:
I wait for the debugger
I don’t really understand how to debug the hardware via a serial port

Hmm, in which way? With GDB?

In general, when I only have the serial port in hand, I will just print characters in key place to see how far it goes.

I don’t have clear understanding on where the problem with booting is located

We can have an IRC chat about this tomorrow.

Plans for the next week:
To try to understand what is a booting order and how configuration should be done

Could you expand about the booting order?

To try to understand how an interrupt controller works
To test the previous Iain’s work

From the thread today, I am not sure this is going to be useful. We already know that lain didn’t face the SMP issue because he removed the secondary CPU from the DT. It would be more interesting to understand whether Linux is able to bring-up the secondary CPU in Hyp mode.

To try to boot further

Have you tried removing the CPU from the DT?

To start implementing interrupt controller support.

Cheers,

A small update:
When we tried to cancel our order digi-key started to work:
https://wwwapps.ups.com/tracking/tracking.cgi?tracknum=1ZWA47976618658824

This is a week #4 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to send the first patch for a review
I wrote a small function that switches the secondary core to HYP mode

Resolutions to blockers:
The debugger and power supplies have arrived
I use print functions to debug code

On-going blockers:
I don’t understand how Linux sets up the master clock on OMAP5
I have an error when I trying to boot, I need to investigate its nature
(https://pastebin.com/MskyW7ym)

Plans for the next week:
To start working with the arrived debugger
To initialize all the required clocks
To understand how interrupt controller functions on BB-x15.

This is a week #4 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:
I was able to send the first patch for a review
I wrote a small function that switches the secondary core to HYP mode

Resolutions to blockers:
The debugger and power supplies have arrived
I use print functions to debug code

On-going blockers:
I don’t understand how Linux sets up the master clock on OMAP5

The only clock issue I had was solved by adding clock-frequency element to armv7-timer entry in the device tree. See patches/kernel/0008-set-armv7-time-to-6-14-MHz-rate-in-DT.patch

The kernel takes almost all its configurations/settings from the device tree file.

This is a week #5 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:

I fixed clock frequency and add memory mapping (more in resolution to blockers)
I started to work with the debugger

Resolutions to blockers:
I was able to fix clock frequency via setting up a constant value in a device tree

An additional memory-mapping was adding as it was done in Iain’s patch

On-going blockers:
I stuck when xen is trying to deal with the secondary IRQ controller called crossbar (https://pastebin.com/U0gch9us)

Plans for the next week:
To work with the debugger
To understand how interrupt controllers function on BB-x15
To try to integrate the “crossbar” IRQ controller into Xen.

This is a week #6 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:

I understood how the crossbar works and started to implement its support in xen

Resolutions to blockers:

I’m implementing the crossbar support

On-going blockers:
I still need to implement the crossbar support and understand how xen deals with interrupts and a console

Plans for the next week:

To work with the debugger
To implement the crossbar support (make_crossbar_node)

To allow xen to receive uart interrupts.

This is a week #7 status update for the GSoC 2019 project Xen on Beagleboard-x15:

Accomplishments:

I added the crossbar node and started to work on routing interrupts to GIC

Resolutions to blockers:

The crossbar node is added
The naive implementation of the irq number translation function is added
(https://github.com/embeddedden/xen/commit/5a4f3d488a38f70bc9f63886f33ce7a00c03c5e6)

On-going blockers:
I’m trying to add the irq number translation function for the crossbar (it is not working correctly for now)

Plans for the next week:
To implement the crossbar support (route interrupts to GIC)

To allow xen to receive uart interrupts.

Hello dear mentors,

Just three days ago my ssd has died. I notified Julien about this
unlucky incident. Fortunately, all my GSoC-related data was either on
Github or in other places. So, right now everything is working - I
purchased a new SSD and installed an operating system and tools.

And now I am on the same point as before the ssd - crossbar is working
to some extent, uart interrupts are going to xen, Linux feils with:
[ 0.000000] random: get_random_bytes called from
start_kernel+0x2fc/0x4b4 with c0
[ 0.000000] irq: no irq domain found for crossbar !

[ 0.000000] Internal error: Oops - undefined instruction: 0 [#1] SMP
ARM
[ 0.000000] Modules linked in:

[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
5.2.0-07109-gd7d170a8e357 4
[ 0.000000] Hardware name: Generic DRA74X (Flattened Device Tree)

[ 0.000000] PC is at __omap_sync32k_timer_init+0x1f0/0x34c

[ 0.000000] LR is at irq_create_fwspec_mapping+0x1d8/0x330

[ 0.000000] pc : [<c0c0c570>] lr : [<c01a00c0>] psr: a