Mailing List Archive

How to build Mini-OS for ARM
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
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
> 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
Re: How to build Mini-OS for ARM [ In reply to ]
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 <denisobrezkov@gmail.com>
Sent: 04 June 2019 13:20
To: Julien Grall <julien.grall@arm.com>; iain@hunterembedded.co.uk
Cc: 'Stefano Stabellini' <sstabellini@kernel.org>; 'Hunyue Yau' <hy-gsoc@hy-research.com>; julien.grall@foss.arm.com; xen-users@lists.xenproject.org
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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
Re: How to build Mini-OS for ARM [ In reply to ]
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, iain@hunterembedded.co.uk 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 <denisobrezkov@gmail.com>
> Sent: 04 June 2019 13:20
> To: Julien Grall <julien.grall@arm.com>; iain@hunterembedded.co.uk
> Cc: 'Stefano Stabellini' <sstabellini@kernel.org>; 'Hunyue Yau' <hy-gsoc@hy-research.com>; julien.grall@foss.arm.com; xen-users@lists.xenproject.org
> 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
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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
Re: How to build Mini-OS for ARM [ In reply to ]
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
>
>
>
Re: How to build Mini-OS for ARM [ In reply to ]
(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 <sstabellini@kernel.org>
Sent: Tuesday, June 4, 2019 11:23:04 PM
To: Denis Obrezkov
Cc: Stefano Stabellini; Julien Grall; iain@hunterembedded.co.uk; 'Hunyue Yau'; julien.grall@foss.arm.com; xen-users@lists.xenproject.org
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
>
>
>
Re: How to build Mini-OS for ARM [ In reply to ]
Ok, now that is clear.

??, 5 ???. 2019 ?. ? 00:30, Julien Grall <Julien.Grall@arm.com>:

>
> (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 <sstabellini@kernel.org>
> *Sent:* Tuesday, June 4, 2019 11:23:04 PM
> *To:* Denis Obrezkov
> *Cc:* Stefano Stabellini; Julien Grall; iain@hunterembedded.co.uk;
> 'Hunyue Yau'; julien.grall@foss.arm.com; xen-users@lists.xenproject.org
> *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
> >
> >
> >
>
Re: How to build Mini-OS for ARM [ In reply to ]
Thank you, I'll give it a try today.

??, 5 ???. 2019 ?. ? 00:23, Stefano Stabellini <sstabellini@kernel.org>:

> 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
> >
> >
> >
Re: How to build Mini-OS for ARM [ In reply to ]
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 <sstabellini@kernel.org>:
>
>> 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
>> >
>> >
>> >
>
>
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
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 <julien.grall@arm.com>:

>
>
> 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
>
Re: How to build Mini-OS for ARM [ In reply to ]
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
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
Hm, it seems it works even with Image. Possibly, the problem was that
something overwrote the kernel Image.

??, 6 ???. 2019 ?. ? 10:35, Julien Grall <julien.grall@arm.com>:

> 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
>
Re: How to build Mini-OS for ARM [ In reply to ]
Hi Denis,

On 06/06/2019 09:48, Denis Obrezkov wrote:
> Hm, it seems it works even with Image. Possibly, the problem was that something
> overwrote the kernel Image.

That's quite possible, Xen is not checking the range passed by the user. This
means any mistake in the DT may result to failure you reported.

Cheers,

>
> ??, 6 ???. 2019 ?. ? 10:35, Julien Grall <julien.grall@arm.com
> <mailto:julien.grall@arm.com>>:
>
> 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
>

--
Julien Grall

_______________________________________________
Xen-users mailing list
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
H, I did mistake - Image is not booting:
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) Loading Domd0 kernel from boot module @ 0000000047000000
(XEN) Allocating 1:1 mappings totalling 512MB for dom0:
(XEN) BANK[0] 0x00000060000000-0x00000080000000 (512MB)
(XEN) Grant table range: 0x00000049000000-0x00000049040000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 0000000047000000 to
0000000060080000-00000000608731ce
(XEN) Loading dom0 DTB to 0x0000000068000000-0x0000000068001ccc
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) ***************************************************
(XEN) No support for ARM_SMCCC_ARCH_WORKAROUND_1.
(XEN) Please update your firmware.
(XEN) ***************************************************
(XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW
(XEN) ***************************************************
(XEN) 3... 2... 1...
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 340kB init memory.

but Image.gz does:
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) Loading Domd0 kernel from boot module @ 0000000047000000
(XEN) Allocating 1:1 mappings totalling 512MB for dom0:
(XEN) BANK[0] 0x00000060000000-0x00000080000000 (512MB)
(XEN) Grant table range: 0x00000049000000-0x00000049040000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 0000000138000000 to
0000000060080000-0000000061301a00
(XEN) Loading dom0 DTB to 0x0000000068000000-0x0000000068001ccc
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) ***************************************************
(XEN) No support for ARM_SMCCC_ARCH_WORKAROUND_1.
(XEN) Please update your firmware.
(XEN) ***************************************************
(XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW
(XEN) ***************************************************
(XEN) 3... 2... 1...
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 340kB init memory.
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070]
...

??, 6 ???. 2019 ?. ? 10:50, Julien Grall <julien.grall@arm.com>:

> Hi Denis,
>
> On 06/06/2019 09:48, Denis Obrezkov wrote:
> > Hm, it seems it works even with Image. Possibly, the problem was that
> something
> > overwrote the kernel Image.
>
> That's quite possible, Xen is not checking the range passed by the user.
> This
> means any mistake in the DT may result to failure you reported.
>
> Cheers,
>
> >
> > ??, 6 ???. 2019 ?. ? 10:35, Julien Grall <julien.grall@arm.com
> > <mailto:julien.grall@arm.com>>:
> >
> > 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
> >
>
> --
> Julien Grall
>
Re: How to build Mini-OS for ARM [ In reply to ]
On 06/06/2019 10:12, Denis Obrezkov wrote:
> H, I did mistake - Image is not booting:
> 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) Loading Domd0 kernel from boot module @ 0000000047000000
> (XEN) Allocating 1:1 mappings totalling 512MB for dom0:
> (XEN) BANK[0] 0x00000060000000-0x00000080000000 (512MB)
> (XEN) Grant table range: 0x00000049000000-0x00000049040000
> (XEN) Allocating PPI 16 for event channel interrupt
> (XEN) Loading zImage from 0000000047000000 to 0000000060080000-00000000608731ce
> (XEN) Loading dom0 DTB to 0x0000000068000000-0x0000000068001ccc
> (XEN) Initial low memory virq threshold set at 0x4000 pages.
> (XEN) Scrubbing Free RAM in background
> (XEN) Std. Loglevel: Errors and warnings
> (XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
> (XEN) ***************************************************
> (XEN) No support for ARM_SMCCC_ARCH_WORKAROUND_1.
> (XEN) Please update your firmware.
> (XEN) ***************************************************
> (XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW
> (XEN) ***************************************************
> (XEN) 3... 2... 1...
> (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
> (XEN) Freed 340kB init memory.

I guess Image and Image.gz are both from the same build. I am correct?
My feeling is the Image got overwritten by some other bits.

Could you provide the size of the Image and also the u-boot command your are using?

Cheers,

--
Julien Grall

_______________________________________________
Xen-users mailing list
Xen-users@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-users
Re: How to build Mini-OS for ARM [ In reply to ]
You are right, I again forgot to change the size of the image in the device
tree and used the size of a Image.gz.
When I changed it to the Image's size it started to work.
I think I want to automate it and pass the script to u-boot with
automatically calculated size.

Could you propose what I should do next? I get to the point when Dom0
crashes when trying to mount rootfs because I don't provide it.
Should I investigate how other interrupt controllers are supported in xen?

??, 6 ???. 2019 ?. ? 11:58, Julien Grall <julien.grall@arm.com>:

>
>
> On 06/06/2019 10:12, Denis Obrezkov wrote:
> > H, I did mistake - Image is not booting:
> > 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) Loading Domd0 kernel from boot module @ 0000000047000000
> > (XEN) Allocating 1:1 mappings totalling 512MB for dom0:
> > (XEN) BANK[0] 0x00000060000000-0x00000080000000 (512MB)
> > (XEN) Grant table range: 0x00000049000000-0x00000049040000
> > (XEN) Allocating PPI 16 for event channel interrupt
> > (XEN) Loading zImage from 0000000047000000 to
> 0000000060080000-00000000608731ce
> > (XEN) Loading dom0 DTB to 0x0000000068000000-0x0000000068001ccc
> > (XEN) Initial low memory virq threshold set at 0x4000 pages.
> > (XEN) Scrubbing Free RAM in background
> > (XEN) Std. Loglevel: Errors and warnings
> > (XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
> > (XEN) ***************************************************
> > (XEN) No support for ARM_SMCCC_ARCH_WORKAROUND_1.
> > (XEN) Please update your firmware.
> > (XEN) ***************************************************
> > (XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW
> > (XEN) ***************************************************
> > (XEN) 3... 2... 1...
> > (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch
> input)
> > (XEN) Freed 340kB init memory.
>
> I guess Image and Image.gz are both from the same build. I am correct?
> My feeling is the Image got overwritten by some other bits.
>
> Could you provide the size of the Image and also the u-boot command your
> are using?
>
> Cheers,
>
> --
> Julien Grall
>

1 2  View All