How to build Mini-OS for ARM

classic Classic list List threaded Threaded
30 messages Options
12
Reply | Threaded
Open this post in threaded view
|

How to build Mini-OS for ARM

Denis Obrezkov
Hi,

I was trying to build Mini-OS:

make build-stubdom XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabi-

but I got the error:

~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/Config.mk:86:
~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/arch/arm32/arch.mk:
No such file or directory
make[1]: *** No rule to make target
'~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/arch/arm32/arch.mk'. 
Stop.

When I am trying to run

make testbuild XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabi-

I get:

make: *** No rule to make target 'testbuild'.  Stop.

How can I build mini-os for arm?

--

Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3
On 03/06/2019 14:49, Denis Obrezkov wrote:
> Hi,

Hi,

> I was trying to build Mini-OS:
>
> make build-stubdom XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabi-
>
> but I got the error:
>
> ~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/Config.mk:86:
> ~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/arch/arm32/arch.mk:
> No such file or directory
> make[1]: *** No rule to make target
> '~/Projects/xenonarm/xen-4.12.0/stubdom/../extras/mini-os/arch/arm32/arch.mk'.
> Stop.

Stubdomain are only useful is you want to run a device model. We don't have
device model on Arm and therefore they are not supported.

>
> When I am trying to run
>
> make testbuild XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabi-

testbuild target is only to be called from the Mini-OS repo.

>  > I get:
>
> make: *** No rule to make target 'testbuild'.  Stop.
>
> How can I build mini-os for arm?

Support for Arm in Mini-OS is in particularly bad step and I don't expect any
update there are as we are focusing to Unikraft.

Why are you looking at Mini-OS?

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
Hi,

On 6/3/19 3:53 PM, Julien Grall wrote:
>
> Support for Arm in Mini-OS is in particularly bad step and I don't
> expect any update there are as we are focusing to Unikraft.
>
> Why are you looking at Mini-OS?
>
I thought that there might be a problem(which I showed in another
thread) in a Linux Dom0 configuration , so, I tried to test a more
simple virtual machine for Dom0. I assumed mini-os would fit well.

--
Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3


On 6/3/19 8:09 PM, Denis Obrezkov wrote:
> Hi,

Hi Denis,


> On 6/3/19 3:53 PM, Julien Grall wrote:
>>
>> Support for Arm in Mini-OS is in particularly bad step and I don't
>> expect any update there are as we are focusing to Unikraft.
>>
>> Why are you looking at Mini-OS?
>>
> I thought that there might be a problem(which I showed in another
> thread) in a Linux Dom0 configuration , so, I tried to test a more
> simple virtual machine for Dom0. I assumed mini-os would fit well.

Mini-OS is unlikely going to run in Dom0 (even on x86) because it lacks
of the drivers for the host devices.

If you want to use QEMU, may I recommend to use Xen arm64? I know this
should work on QEMU and the setup is pretty much the same (the only
difference is pretty much the compiler).

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov

> If you want to use QEMU, may I recommend to use Xen arm64? I know this
> should work on QEMU and the setup is pretty much the same (the only
> difference is pretty much the compiler).
>
> Cheers,
>
Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or,
can I use qemu-arm64 and xen along with u-boot?

--
Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

iain
Hi Denis,
Is there another reason you want to use QEMU to start with apart from missing power supply preventing you from going straight to X15?
Iain

-----Original Message-----
From: Denis Obrezkov <[hidden email]>
Sent: 04 June 2019 13:20
To: Julien Grall <[hidden email]>; [hidden email]
Cc: 'Stefano Stabellini' <[hidden email]>; 'Hunyue Yau' <[hidden email]>; [hidden email]; [hidden email]
Subject: Re: How to build Mini-OS for ARM


> If you want to use QEMU, may I recommend to use Xen arm64? I know this
> should work on QEMU and the setup is pretty much the same (the only
> difference is pretty much the compiler).
>
> Cheers,
>
Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or, can I use qemu-arm64 and xen along with u-boot?

--
Regards, Denis Obrezkov




_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3
In reply to this post by Denis Obrezkov
Hi Denis,

On 6/4/19 1:19 PM, Denis Obrezkov wrote:

>
>> If you want to use QEMU, may I recommend to use Xen arm64? I know this
>> should work on QEMU and the setup is pretty much the same (the only
>> difference is pretty much the compiler).
>>
>> Cheers,
>>
> Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
> And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or,
> can I use qemu-arm64 and xen along with u-boot?

 From [1], it seems to be possible to use U-boot on QEMU arm64.

Cheers,

[1] https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Stefano Stabellini-4
On Tue, 4 Jun 2019, Julien Grall wrote:

> Hi Denis,
>
> On 6/4/19 1:19 PM, Denis Obrezkov wrote:
> >
> > > If you want to use QEMU, may I recommend to use Xen arm64? I know this
> > > should work on QEMU and the setup is pretty much the same (the only
> > > difference is pretty much the compiler).
> > >
> > > Cheers,
> > >
> > Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
> > And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or,
> > can I use qemu-arm64 and xen along with u-boot?
>
> From [1], it seems to be possible to use U-boot on QEMU arm64.
>
> Cheers,
>
> [1] https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm

QEMU aarch64 works fine with u-boot. QEMU needs to be version 2.11 or
older. I use it like this:

qemu-system-aarch64.2.11 \
    -machine virt,gic_version=3 \
    -machine virtualization=true \
    -cpu cortex-a57 -machine type=virt \
    -smp 4 -m 4096 \
    -serial mon:stdio \
    -bios /local/arm-vm/u-boot.bin \
    -netdev user,id=hostnet0,hostfwd=tcp::2223-:22 -device virtio-net-device,netdev=hostnet0,mac=52:54:00:e5:cc:31 \
    -drive if=none,file=/local/xenial-server-cloudimg-arm64-uefi1.img,id=hd0 -device virtio-blk-device,drive=hd0 \
    -device loader,file=/local/arm-vm/Image,force-raw=on,addr=0x45000000 \
    -device loader,file=/local/arm-vm/xen,force-raw=on,addr=0x49000000 \
    -device loader,file=/local/arm-vm/virt-gicv3.dtb,force-raw=on,addr=0x44000000

where u-boot.bin is the u-boot binary I compiled by myself out of the
upstream u-boot repository. In u-boot, I chose the following kconfig
options:

CONFIG_ARCH_QEMU=y
CONFIG_TARGET_QEMU_ARM_64BIT=y

You can use the -device loader,file options to load files into memory at
the specified address, so that at the u-boot prompt you only have to
provide the boot command, such as:

booti 0x49000000 - 0x44000000

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov

On 6/4/19 6:51 PM, Stefano Stabellini wrote:

> On Tue, 4 Jun 2019, Julien Grall wrote:
>> Hi Denis,
>>
>> On 6/4/19 1:19 PM, Denis Obrezkov wrote:
>>>> If you want to use QEMU, may I recommend to use Xen arm64? I know this
>>>> should work on QEMU and the setup is pretty much the same (the only
>>>> difference is pretty much the compiler).
>>>>
>>>> Cheers,
>>>>
>>> Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
>>> And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or,
>>> can I use qemu-arm64 and xen along with u-boot?
>> From [1], it seems to be possible to use U-boot on QEMU arm64.
>>
>> Cheers,
>>
>> [1] https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm
> QEMU aarch64 works fine with u-boot. QEMU needs to be version 2.11 or
> older. I use it like this:
>
> qemu-system-aarch64.2.11 \
>     -machine virt,gic_version=3 \
>     -machine virtualization=true \
>     -cpu cortex-a57 -machine type=virt \
>     -smp 4 -m 4096 \
>     -serial mon:stdio \
>     -bios /local/arm-vm/u-boot.bin \
>     -netdev user,id=hostnet0,hostfwd=tcp::2223-:22 -device virtio-net-device,netdev=hostnet0,mac=52:54:00:e5:cc:31 \
>     -drive if=none,file=/local/xenial-server-cloudimg-arm64-uefi1.img,id=hd0 -device virtio-blk-device,drive=hd0 \
>     -device loader,file=/local/arm-vm/Image,force-raw=on,addr=0x45000000 \
>     -device loader,file=/local/arm-vm/xen,force-raw=on,addr=0x49000000 \
>     -device loader,file=/local/arm-vm/virt-gicv3.dtb,force-raw=on,addr=0x44000000
>
> where u-boot.bin is the u-boot binary I compiled by myself out of the
> upstream u-boot repository. In u-boot, I chose the following kconfig
> options:
>
> CONFIG_ARCH_QEMU=y
> CONFIG_TARGET_QEMU_ARM_64BIT=y
>
> You can use the -device loader,file options to load files into memory at
> the specified address, so that at the u-boot prompt you only have to
> provide the boot command, such as:
>
> booti 0x49000000 - 0x44000000
Ok, but I want to boot Linux built by me. To understand what is
happening. Also, how can I debug the existing problem with hanging in
qemu-arm - because this is very similar to what I have to solve during
gsoc?

--
Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
In reply to this post by iain
Hi Iain,

no, the only reason is to find out how it works and maybe how to debug xen.

On 6/4/19 2:39 PM, [hidden email] wrote:

> Hi Denis,
> Is there another reason you want to use QEMU to start with apart from missing power supply preventing you from going straight to X15?
> Iain
>
> -----Original Message-----
> From: Denis Obrezkov <[hidden email]>
> Sent: 04 June 2019 13:20
> To: Julien Grall <[hidden email]>; [hidden email]
> Cc: 'Stefano Stabellini' <[hidden email]>; 'Hunyue Yau' <[hidden email]>; [hidden email]; [hidden email]
> Subject: Re: How to build Mini-OS for ARM
>
>
>> If you want to use QEMU, may I recommend to use Xen arm64? I know this
>> should work on QEMU and the setup is pretty much the same (the only
>> difference is pretty much the compiler).
>>
>> Cheers,
>>
> Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
> And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or, can I use qemu-arm64 and xen along with u-boot?
>
> --
> Regards, Denis Obrezkov
>
>
>
--
Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Stefano Stabellini-4
In reply to this post by Denis Obrezkov
On Tue, 4 Jun 2019, Denis Obrezkov wrote:

> On 6/4/19 6:51 PM, Stefano Stabellini wrote:
> > On Tue, 4 Jun 2019, Julien Grall wrote:
> >> Hi Denis,
> >>
> >> On 6/4/19 1:19 PM, Denis Obrezkov wrote:
> >>>> If you want to use QEMU, may I recommend to use Xen arm64? I know this
> >>>> should work on QEMU and the setup is pretty much the same (the only
> >>>> difference is pretty much the compiler).
> >>>>
> >>>> Cheers,
> >>>>
> >>> Maybe I should. I wanted to try qemu-arm because bb-x15 has arm32 cores.
> >>> And also on arm64 I would need to use efi while on bb-x15 - u-boot. Or,
> >>> can I use qemu-arm64 and xen along with u-boot?
> >> From [1], it seems to be possible to use U-boot on QEMU arm64.
> >>
> >> Cheers,
> >>
> >> [1] https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm
> > QEMU aarch64 works fine with u-boot. QEMU needs to be version 2.11 or
> > older. I use it like this:
> >
> > qemu-system-aarch64.2.11 \
> >     -machine virt,gic_version=3 \
> >     -machine virtualization=true \
> >     -cpu cortex-a57 -machine type=virt \
> >     -smp 4 -m 4096 \
> >     -serial mon:stdio \
> >     -bios /local/arm-vm/u-boot.bin \
> >     -netdev user,id=hostnet0,hostfwd=tcp::2223-:22 -device virtio-net-device,netdev=hostnet0,mac=52:54:00:e5:cc:31 \
> >     -drive if=none,file=/local/xenial-server-cloudimg-arm64-uefi1.img,id=hd0 -device virtio-blk-device,drive=hd0 \
> >     -device loader,file=/local/arm-vm/Image,force-raw=on,addr=0x45000000 \
> >     -device loader,file=/local/arm-vm/xen,force-raw=on,addr=0x49000000 \
> >     -device loader,file=/local/arm-vm/virt-gicv3.dtb,force-raw=on,addr=0x44000000
> >
> > where u-boot.bin is the u-boot binary I compiled by myself out of the
> > upstream u-boot repository. In u-boot, I chose the following kconfig
> > options:
> >
> > CONFIG_ARCH_QEMU=y
> > CONFIG_TARGET_QEMU_ARM_64BIT=y
> >
> > You can use the -device loader,file options to load files into memory at
> > the specified address, so that at the u-boot prompt you only have to
> > provide the boot command, such as:
> >
> > booti 0x49000000 - 0x44000000
> Ok, but I want to boot Linux built by me. To understand what is
> happening.

Sure. I don't think anything written above assumes you are using a Linux
kernel binary from a distro.


> Also, how can I debug the existing problem with hanging in
> qemu-arm - because this is very similar to what I have to solve during
> gsoc?

Where does it hang exactly? I don't use QEMU with a debugger often, but
you can connect gdb to QEMU if that's what you'd like to do. Normally, I
just add enough printks to Xen to figure out where it gets stuck. It is
pretty easy because if it's an early boot hang, then it is still all
single threaded and easy to follow.

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
Hi,

> Where does it hang exactly? I don't use QEMU with a debugger often, but
> you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> just add enough printks to Xen to figure out where it gets stuck. It is
> pretty easy because if it's an early boot hang, then it is still all
> single threaded and easy to follow.

I wrote it in another thread. When I launch it with the command:

~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
-machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
-bios u-boot.bin -device
loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
-mon qemu-monitor,mode=readline

I got:

Starting kernel ...

- UART enabled -
- CPU 00000000 booting -
- Xen starting in Hyp mode -
- Zero BSS -
- Setting up control registers -
- Turning on paging -
- Ready -
(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000040000000 - 000000005fffffff
(XEN)
(XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
(XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
(XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
(XEN)
(XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
console=ttyAMA0,115200n8 earlycon=xenboot
(XEN)
(XEN) Command line: console=dtuart dtuart=/pl011@9000000
(XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
(XEN) Dom heap: 122880 pages
(XEN) Domain heap initialised
(XEN) Booting using Device Tree
(XEN) Looking for dtuart at "/pl011@9000000", options ""
 Xen 4.12.0
(XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
(XEN) Latest ChangeSet:
(XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00001131:00011001
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
(XEN)     Extensions: GenericTimer
(XEN)   Debug Features: 02010555
(XEN)   Auxiliary Features: 00000000
(XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
(XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
(XEN) GICv2m extension register frame:
(XEN)         gic_v2m_addr=0000000008020000
(XEN)         gic_v2m_size=0000000000001000
(XEN)         gic_v2m_spi_base=80
(XEN)         gic_v2m_num_spis=64
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=0000000008000000
(XEN)         gic_cpu_addr=0000000008010000
(XEN)         gic_hyp_addr=0000000008030000
(XEN)         gic_vcpu_addr=0000000008040000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler

--
Regards, Denis Obrezkov



_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users

signature.asc (235 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Stefano Stabellini-4
On Tue, 4 Jun 2019, Denis Obrezkov wrote:

> Hi,
>
> > Where does it hang exactly? I don't use QEMU with a debugger often, but
> > you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> > just add enough printks to Xen to figure out where it gets stuck. It is
> > pretty easy because if it's an early boot hang, then it is still all
> > single threaded and easy to follow.
>
> I wrote it in another thread. When I launch it with the command:
>
> ~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
> -machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
> -bios u-boot.bin -device
> loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
> loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
> socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
> -mon qemu-monitor,mode=readline
You need gic_version=3, version 2 doesn't have support for
virtualization in QEMU.
Please give a try to the command I posted in my previous email.


> I got:
>
> Starting kernel ...
>
> - UART enabled -
> - CPU 00000000 booting -
> - Xen starting in Hyp mode -
> - Zero BSS -
> - Setting up control registers -
> - Turning on paging -
> - Ready -
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000040000000 - 000000005fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
> (XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
> (XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
> (XEN)
> (XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
> console=ttyAMA0,115200n8 earlycon=xenboot
> (XEN)
> (XEN) Command line: console=dtuart dtuart=/pl011@9000000
> (XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
> (XEN) Dom heap: 122880 pages
> (XEN) Domain heap initialised
> (XEN) Booting using Device Tree
> (XEN) Looking for dtuart at "/pl011@9000000", options ""
>  Xen 4.12.0
> (XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
> 8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00001131:00011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 02010555
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv2m extension register frame:
> (XEN)         gic_v2m_addr=0000000008020000
> (XEN)         gic_v2m_size=0000000000001000
> (XEN)         gic_v2m_spi_base=80
> (XEN)         gic_v2m_num_spis=64
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000008000000
> (XEN)         gic_cpu_addr=0000000008010000
> (XEN)         gic_hyp_addr=0000000008030000
> (XEN)         gic_vcpu_addr=0000000008040000
> (XEN)         gic_maintenance_irq=25
> (XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
>
> --
> Regards, Denis Obrezkov
>
>
>
_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3

(Sorry for the formatting)

As said before, there are no point to try this because Xen does not support GICv3 for Arm32.

Cheers
From: Stefano Stabellini <[hidden email]>
Sent: Tuesday, June 4, 2019 11:23:04 PM
To: Denis Obrezkov
Cc: Stefano Stabellini; Julien Grall; [hidden email]; 'Hunyue Yau'; [hidden email]; [hidden email]
Subject: Re: How to build Mini-OS for ARM
 
On Tue, 4 Jun 2019, Denis Obrezkov wrote:
> Hi,
>
> > Where does it hang exactly? I don't use QEMU with a debugger often, but
> > you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> > just add enough printks to Xen to figure out where it gets stuck. It is
> > pretty easy because if it's an early boot hang, then it is still all
> > single threaded and easy to follow.
>
> I wrote it in another thread. When I launch it with the command:
>
> ~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
> -machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
> -bios u-boot.bin -device
> loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
> loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
> socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
> -mon qemu-monitor,mode=readline

You need gic_version=3, version 2 doesn't have support for
virtualization in QEMU.
Please give a try to the command I posted in my previous email.


> I got:
>
> Starting kernel ...
>
> - UART enabled -
> - CPU 00000000 booting -
> - Xen starting in Hyp mode -
> - Zero BSS -
> - Setting up control registers -
> - Turning on paging -
> - Ready -
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000040000000 - 000000005fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
> (XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
> (XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
> (XEN)
> (XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
> console=ttyAMA0,115200n8 earlycon=xenboot
> (XEN)
> (XEN) Command line: console=dtuart dtuart=/pl011@9000000
> (XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
> (XEN) Dom heap: 122880 pages
> (XEN) Domain heap initialised
> (XEN) Booting using Device Tree
> (XEN) Looking for dtuart at "/pl011@9000000", options ""
>  Xen 4.12.0
> (XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
> 8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00001131:00011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 02010555
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv2m extension register frame:
> (XEN)         gic_v2m_addr=0000000008020000
> (XEN)         gic_v2m_size=0000000000001000
> (XEN)         gic_v2m_spi_base=80
> (XEN)         gic_v2m_num_spis=64
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000008000000
> (XEN)         gic_cpu_addr=0000000008010000
> (XEN)         gic_hyp_addr=0000000008030000
> (XEN)         gic_vcpu_addr=0000000008040000
> (XEN)         gic_maintenance_irq=25
> (XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
>
> --
> Regards, Denis Obrezkov
>
>
>

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
Ok, now that is clear.

ср, 5 июн. 2019 г. в 00:30, Julien Grall <[hidden email]>:

(Sorry for the formatting)

As said before, there are no point to try this because Xen does not support GICv3 for Arm32.

Cheers
From: Stefano Stabellini <[hidden email]>
Sent: Tuesday, June 4, 2019 11:23:04 PM
To: Denis Obrezkov
Cc: Stefano Stabellini; Julien Grall; [hidden email]; 'Hunyue Yau'; [hidden email]; [hidden email]
Subject: Re: How to build Mini-OS for ARM
 
On Tue, 4 Jun 2019, Denis Obrezkov wrote:
> Hi,
>
> > Where does it hang exactly? I don't use QEMU with a debugger often, but
> > you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> > just add enough printks to Xen to figure out where it gets stuck. It is
> > pretty easy because if it's an early boot hang, then it is still all
> > single threaded and easy to follow.
>
> I wrote it in another thread. When I launch it with the command:
>
> ~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
> -machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
> -bios u-boot.bin -device
> loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
> loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
> socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
> -mon qemu-monitor,mode=readline

You need gic_version=3, version 2 doesn't have support for
virtualization in QEMU.
Please give a try to the command I posted in my previous email.


> I got:
>
> Starting kernel ...
>
> - UART enabled -
> - CPU 00000000 booting -
> - Xen starting in Hyp mode -
> - Zero BSS -
> - Setting up control registers -
> - Turning on paging -
> - Ready -
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000040000000 - 000000005fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
> (XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
> (XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
> (XEN)
> (XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
> console=ttyAMA0,115200n8 earlycon=xenboot
> (XEN)
> (XEN) Command line: console=dtuart dtuart=/pl011@9000000
> (XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
> (XEN) Dom heap: 122880 pages
> (XEN) Domain heap initialised
> (XEN) Booting using Device Tree
> (XEN) Looking for dtuart at "/pl011@9000000", options ""
>  Xen 4.12.0
> (XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
> 8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00001131:00011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 02010555
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv2m extension register frame:
> (XEN)         gic_v2m_addr=0000000008020000
> (XEN)         gic_v2m_size=0000000000001000
> (XEN)         gic_v2m_spi_base=80
> (XEN)         gic_v2m_num_spis=64
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000008000000
> (XEN)         gic_cpu_addr=0000000008010000
> (XEN)         gic_hyp_addr=0000000008030000
> (XEN)         gic_vcpu_addr=0000000008040000
> (XEN)         gic_maintenance_irq=25
> (XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
>
> --
> Regards, Denis Obrezkov
>
>
>

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
In reply to this post by Stefano Stabellini-4
Thank you, I'll give it a try today.

ср, 5 июн. 2019 г. в 00:23, Stefano Stabellini <[hidden email]>:
On Tue, 4 Jun 2019, Denis Obrezkov wrote:
> Hi,
>
> > Where does it hang exactly? I don't use QEMU with a debugger often, but
> > you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> > just add enough printks to Xen to figure out where it gets stuck. It is
> > pretty easy because if it's an early boot hang, then it is still all
> > single threaded and easy to follow.
>
> I wrote it in another thread. When I launch it with the command:
>
> ~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
> -machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
> -bios u-boot.bin -device
> loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
> loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
> socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
> -mon qemu-monitor,mode=readline

You need gic_version=3, version 2 doesn't have support for
virtualization in QEMU.
Please give a try to the command I posted in my previous email.


> I got:
>
> Starting kernel ...
>
> - UART enabled -
> - CPU 00000000 booting -
> - Xen starting in Hyp mode -
> - Zero BSS -
> - Setting up control registers -
> - Turning on paging -
> - Ready -
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000040000000 - 000000005fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
> (XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
> (XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
> (XEN)
> (XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
> console=ttyAMA0,115200n8 earlycon=xenboot
> (XEN)
> (XEN) Command line: console=dtuart dtuart=/pl011@9000000
> (XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
> (XEN) Dom heap: 122880 pages
> (XEN) Domain heap initialised
> (XEN) Booting using Device Tree
> (XEN) Looking for dtuart at "/pl011@9000000", options ""
>  Xen 4.12.0
> (XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
> 8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00001131:00011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 02010555
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv2m extension register frame:
> (XEN)         gic_v2m_addr=0000000008020000
> (XEN)         gic_v2m_size=0000000000001000
> (XEN)         gic_v2m_spi_base=80
> (XEN)         gic_v2m_num_spis=64
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000008000000
> (XEN)         gic_cpu_addr=0000000008010000
> (XEN)         gic_hyp_addr=0000000008030000
> (XEN)         gic_vcpu_addr=0000000008040000
> (XEN)         gic_maintenance_irq=25
> (XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
>
> --
> Regards, Denis Obrezkov
>
>
>

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
Hi,

I got an error:
Starting kernel ...

 Xen 4.12.0
(XEN) Xen version 4.12.0 (denis@) (aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04) 7.4.0) debug=n  Wed Jun  5 14:57:33 CEST 2019
(XEN) Latest ChangeSet:
(XEN) Processor: 411fd070: "ARM Limited", variant: 0x1, part 0xd07, rev 0x0
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000001000222 0000000000000000
(XEN)     Exception Levels: EL3:No EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD GICv3-SysReg
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001124 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:10011001
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer
(XEN)   Debug Features: 03010066
(XEN)   Auxiliary Features: 00000000
(XEN)   Memory Model Features: 10101105 40000000 01260000 02102211
(XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
(XEN) GICv3 initialization:
(XEN)       gic_dist_addr=0x00000008000000
(XEN)       gic_maintenance_irq=25
(XEN)       gic_rdist_stride=0
(XEN)       gic_rdist_regions=1
(XEN)       redistributor regions:
(XEN)         - region 0: 0x000000080a0000 - 0x00000009000000
(XEN) GICv3: 256 lines, (IID 0000043b).
(XEN) GICv3: CPU0: Found redistributor in region 0 @000000004001c000
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN) Allocated console ring of 16 KiB.
(XEN) Bringing up CPU1
(XEN) GICv3: CPU1: Found redistributor in region 0 @000000004003c000
(XEN) Bringing up CPU2
(XEN) GICv3: CPU2: Found redistributor in region 0 @000000004005c000
(XEN) Bringing up CPU3
(XEN) GICv3: CPU3: Found redistributor in region 0 @000000004007c000
(XEN) Brought up 4 CPUs
(XEN) P2M: 44-bit IPA with 44-bit PA and 8-bit VMID
(XEN) P2M: 4 levels with order-0 root, VTCR 0x80043594
(XEN) I/O virtualisation disabled
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Missing kernel boot module?
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Could not set up DOM0 guest OS
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

I configured Linux with defconfig and on wiki-page I can see:

In general the same kernel configuration as used to boot natively, plus turning on the Xen specific options should work. A good starting point is often the "multi_v7_defconfig" + Xen options.

but what are those Xen options?



Thank you, I'll give it a try today.

ср, 5 июн. 2019 г. в 00:23, Stefano Stabellini <[hidden email]>:
On Tue, 4 Jun 2019, Denis Obrezkov wrote:
> Hi,
>
> > Where does it hang exactly? I don't use QEMU with a debugger often, but
> > you can connect gdb to QEMU if that's what you'd like to do. Normally, I
> > just add enough printks to Xen to figure out where it gets stuck. It is
> > pretty easy because if it's an early boot hang, then it is still all
> > single threaded and easy to follow.
>
> I wrote it in another thread. When I launch it with the command:
>
> ~/bin/qemu-3.1.0/arm-softmmu/qemu-system-arm -machine virt,gic_version=2
> -machine virtualization=true  -cpu cortex-a15 -machine virt -m 512M
> -bios u-boot.bin -device
> loader,file=xen-uImage,force-raw=on,addr=0x46000000 -device
> loader,file=zImage,addr=0x45000000 -nographic -no-reboot -chardev
> socket,id=qemu-monitor,host=localhost,port=7777,server,nowait,telnet
> -mon qemu-monitor,mode=readline

You need gic_version=3, version 2 doesn't have support for
virtualization in QEMU.
Please give a try to the command I posted in my previous email.


> I got:
>
> Starting kernel ...
>
> - UART enabled -
> - CPU 00000000 booting -
> - Xen starting in Hyp mode -
> - Zero BSS -
> - Setting up control registers -
> - Turning on paging -
> - Ready -
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000040000000 - 000000005fffffff
> (XEN)
> (XEN) MODULE[0]: 0000000040000000 - 0000000040002000 Device Tree
> (XEN) MODULE[1]: 0000000045000000 - 0000000045853200 Kernel     
> (XEN)  RESVD[0]: 0000000040000000 - 0000000040002000
> (XEN)
> (XEN) CMDLINE[0000000045000000]:chosen earlyprintk=serial,ttyAMA0
> console=ttyAMA0,115200n8 earlycon=xenboot
> (XEN)
> (XEN) Command line: console=dtuart dtuart=/pl011@9000000
> (XEN) Xen heap: 000000005e000000-0000000060000000 (8192 pages)
> (XEN) Dom heap: 122880 pages
> (XEN) Domain heap initialised
> (XEN) Booting using Device Tree
> (XEN) Looking for dtuart at "/pl011@9000000", options ""
>  Xen 4.12.0
> (XEN) Xen version 4.12.0 (reprofy@local) (arm-linux-gnueabi-gcc (Debian
> 8.2.0-20) 8.2.0) debug=n  Mon Jun  3 13:25:10 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 412fc0f1: "ARM Limited", variant: 0x2, part 0xc0f, rev 0x1
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00001131:00011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 ThumbEE Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 02010555
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10201105 20000000 01240000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232041 11112131 10011142 00000000
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv2m extension register frame:
> (XEN)         gic_v2m_addr=0000000008020000
> (XEN)         gic_v2m_size=0000000000001000
> (XEN)         gic_v2m_spi_base=80
> (XEN)         gic_v2m_num_spis=64
> (XEN) GICv2 initialization:
> (XEN)         gic_dist_addr=0000000008000000
> (XEN)         gic_cpu_addr=0000000008010000
> (XEN)         gic_hyp_addr=0000000008030000
> (XEN)         gic_vcpu_addr=0000000008040000
> (XEN)         gic_maintenance_irq=25
> (XEN) GICv2: 288 lines, 1 cpu (IID 00000000).
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
>
> --
> Regards, Denis Obrezkov
>
>
>

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3


On 05/06/2019 14:18, Denis Obrezkov wrote:
> Hi,

Hi,

> I got an error:
> Starting kernel ...
>
>   Xen 4.12.0
> (XEN) Xen version 4.12.0 (denis@) (aarch64-linux-gnu-gcc (Ubuntu/Linaro
> 7.4.0-1ubuntu1~18.04) 7.4.0) debug=n  Wed Jun  5 14:57:33 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 411fd070: "ARM Limited", variant: 0x1, part 0xd07, rev 0x0
> (XEN) 64-bit Execution:
> (XEN)   Processor Features: 0000000001000222 0000000000000000
> (XEN)     Exception Levels: EL3:No EL2:64+32 EL1:64+32 EL0:64+32
> (XEN)     Extensions: FloatingPoint AdvancedSIMD GICv3-SysReg
> (XEN)   Debug Features: 0000000010305106 0000000000000000
> (XEN)   Auxiliary Features: 0000000000000000 0000000000000000
> (XEN)   Memory Model Features: 0000000000001124 0000000000000000
> (XEN)   ISA Features:  0000000000011120 0000000000000000
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00000131:10011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 03010066
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10101105 40000000 01260000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv3 initialization:
> (XEN)       gic_dist_addr=0x00000008000000
> (XEN)       gic_maintenance_irq=25
> (XEN)       gic_rdist_stride=0
> (XEN)       gic_rdist_regions=1
> (XEN)       redistributor regions:
> (XEN)         - region 0: 0x000000080a0000 - 0x00000009000000
> (XEN) GICv3: 256 lines, (IID 0000043b).
> (XEN) GICv3: CPU0: Found redistributor in region 0 @000000004001c000
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
> (XEN) Allocated console ring of 16 KiB.
> (XEN) Bringing up CPU1
> (XEN) GICv3: CPU1: Found redistributor in region 0 @000000004003c000
> (XEN) Bringing up CPU2
> (XEN) GICv3: CPU2: Found redistributor in region 0 @000000004005c000
> (XEN) Bringing up CPU3
> (XEN) GICv3: CPU3: Found redistributor in region 0 @000000004007c000
> (XEN) Brought up 4 CPUs
> (XEN) P2M: 44-bit IPA with 44-bit PA and 8-bit VMID
> (XEN) P2M: 4 levels with order-0 root, VTCR 0x80043594
> (XEN) I/O virtualisation disabled
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Missing kernel boot module?
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Could not set up DOM0 guest OS
> (XEN) ****************************************
> (XEN)
> (XEN) Reboot in five seconds...
>
> I configured Linux with defconfig and on wiki-page I can see:
>
> In general the same kernel configuration as used to boot natively, plus turning
> on the Xen specific options should work. A good starting point is often the
> "multi_v7_defconfig" + Xen options.
>
> but what are those Xen options?

The Xen options are most of the one following the pattern CONFIG_*XEN*. But not
having those options in the kernel should still allow you to boot.

The problem here is you haven't specified to Xen where the kernel is loaded.
This should be done in the Device-Tree. How do you boot Xen? Are you using
U-boot? If so, what's your commands?

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Denis Obrezkov
Oh, my mistake was that I was loading Image instead of Image.gz.
And the latter didn't work because I specified a wrong load address.
So, now it works (loads the kernel and hangs on VFS because no disk is provided)

ср, 5 июн. 2019 г. в 15:24, Julien Grall <[hidden email]>:


On 05/06/2019 14:18, Denis Obrezkov wrote:
> Hi,

Hi,

> I got an error:
> Starting kernel ...
>
>   Xen 4.12.0
> (XEN) Xen version 4.12.0 (denis@) (aarch64-linux-gnu-gcc (Ubuntu/Linaro
> 7.4.0-1ubuntu1~18.04) 7.4.0) debug=n  Wed Jun  5 14:57:33 CEST 2019
> (XEN) Latest ChangeSet:
> (XEN) Processor: 411fd070: "ARM Limited", variant: 0x1, part 0xd07, rev 0x0
> (XEN) 64-bit Execution:
> (XEN)   Processor Features: 0000000001000222 0000000000000000
> (XEN)     Exception Levels: EL3:No EL2:64+32 EL1:64+32 EL0:64+32
> (XEN)     Extensions: FloatingPoint AdvancedSIMD GICv3-SysReg
> (XEN)   Debug Features: 0000000010305106 0000000000000000
> (XEN)   Auxiliary Features: 0000000000000000 0000000000000000
> (XEN)   Memory Model Features: 0000000000001124 0000000000000000
> (XEN)   ISA Features:  0000000000011120 0000000000000000
> (XEN) 32-bit Execution:
> (XEN)   Processor Features: 00000131:10011001
> (XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
> (XEN)     Extensions: GenericTimer
> (XEN)   Debug Features: 03010066
> (XEN)   Auxiliary Features: 00000000
> (XEN)   Memory Model Features: 10101105 40000000 01260000 02102211
> (XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
> (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 62500 KHz
> (XEN) GICv3 initialization:
> (XEN)       gic_dist_addr=0x00000008000000
> (XEN)       gic_maintenance_irq=25
> (XEN)       gic_rdist_stride=0
> (XEN)       gic_rdist_regions=1
> (XEN)       redistributor regions:
> (XEN)         - region 0: 0x000000080a0000 - 0x00000009000000
> (XEN) GICv3: 256 lines, (IID 0000043b).
> (XEN) GICv3: CPU0: Found redistributor in region 0 @000000004001c000
> (XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
> (XEN) Initializing Credit2 scheduler
> (XEN) Allocated console ring of 16 KiB.
> (XEN) Bringing up CPU1
> (XEN) GICv3: CPU1: Found redistributor in region 0 @000000004003c000
> (XEN) Bringing up CPU2
> (XEN) GICv3: CPU2: Found redistributor in region 0 @000000004005c000
> (XEN) Bringing up CPU3
> (XEN) GICv3: CPU3: Found redistributor in region 0 @000000004007c000
> (XEN) Brought up 4 CPUs
> (XEN) P2M: 44-bit IPA with 44-bit PA and 8-bit VMID
> (XEN) P2M: 4 levels with order-0 root, VTCR 0x80043594
> (XEN) I/O virtualisation disabled
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Missing kernel boot module?
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Could not set up DOM0 guest OS
> (XEN) ****************************************
> (XEN)
> (XEN) Reboot in five seconds...
>
> I configured Linux with defconfig and on wiki-page I can see:
>
> In general the same kernel configuration as used to boot natively, plus turning
> on the Xen specific options should work. A good starting point is often the
> "multi_v7_defconfig" + Xen options.
>
> but what are those Xen options?

The Xen options are most of the one following the pattern CONFIG_*XEN*. But not
having those options in the kernel should still allow you to boot.

The problem here is you haven't specified to Xen where the kernel is loaded.
This should be done in the Device-Tree. How do you boot Xen? Are you using
U-boot? If so, what's your commands?

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
Reply | Threaded
Open this post in threaded view
|

Re: How to build Mini-OS for ARM

Julien Grall-3
Hi Denis,

On 05/06/2019 18:54, Denis Obrezkov wrote:
> Oh, my mistake was that I was loading Image instead of Image.gz.

You should be able to load both Image and Image.gz. What was the error with Image?

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
[hidden email]
https://lists.xenproject.org/mailman/listinfo/xen-users
12