All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
@ 2019-12-16 20:12 Roman Shaposhnik
  2019-12-16 22:43 ` Stefano Stabellini
  2019-12-17  2:55 ` Stefano Stabellini
  0 siblings, 2 replies; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-16 20:12 UTC (permalink / raw)
  To: xen-devel; +Cc: Stefano Stabellini, Stefano Stabellini

[-- Attachment #1: Type: text/plain, Size: 686 bytes --]

Hi!

it appears that something has broken in 4.13 RC5 so that
I'm now getting the following on ARM (full logs are attached).

(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Failed to allocate requested dom0 memory. 672MB unallocated
(XEN) ****************************************

My GRUB boot sequence hasn't changed:

xen_hypervisor /boot/xen.efi console=dtuart   dom0_mem=1024M,max:1024M
dom0_max_vcpus=1 dom0_vcpus_pin
xen_module /boot/kernel console=hvc0 root=(hd1,gpt1)/rootfs.img text
devicetree (hd1,gpt4)/eve.dtb
xen_module (hd1,gpt1)/initrd.img

In fact, if I use Xen 4.12 instead of 4.13 -- everything seems to work
as it used to.

Thanks,
Roman.

[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 3886 bytes --]

Using modules provided by bootloader in FDT
Xen 4.13.0-rc (c/s ) EFI loader
 Xen 4.13.0-rc
(XEN) Xen version 4.13.0-rc (@) (gcc (Alpine 6.4.0) 6.4.0) debug=y  Fri Dec  16 07:29:10 UTC 2019
(XEN) Latest ChangeSet:
(XEN) build-id: bf2e5dde8df8199230a1b0a25fb8f220be3714a0
(XEN) Processor: 410fd033: "ARM Limited", variant: 0x0, part 0xd03, rev 0x3
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(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) Using SMC Calling Convention v1.0
(XEN) Using PSCI v1.0
(XEN) SMP: Allowing 8 CPUs
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 1200 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f6801000
(XEN)         gic_cpu_addr=00000000f6802000
(XEN)         gic_hyp_addr=00000000f6804000
(XEN)         gic_vcpu_addr=00000000f6806000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: 160 lines, 8 cpus, secure (IID 0200143b).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN)  load_precision_shift: 18
(XEN)  load_window_shift: 30
(XEN)  underload_balance_tolerance: 0
(XEN)  overload_balance_tolerance: -3
(XEN)  runqueues arrangement: socket
(XEN)  cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Allocated console ring of 64 KiB.
(XEN) CPU0: Guest atomics will try 10 times before pausing the domain
(XEN) Bringing up CPU1
(XEN) CPU1: Guest atomics will try 23 times before pausing the domain
(XEN) CPU 1 booted.
(XEN) Bringing up CPU2
(XEN) CPU2: Guest atomics will try 22 times before pausing the domain
(XEN) CPU 2 booted.
(XEN) Bringing up CPU3
(XEN) CPU3: Guest atomics will try 18 times before pausing the domain
(XEN) CPU 3 booted.
(XEN) Bringing up CPU4
(XEN) CPU4: Guest atomics will try 21 times before pausing the domain
(XEN) CPU 4 booted.
(XEN) Bringing up CPU5
(XEN) CPU5: Guest atomics will try 20 times before pausing the domain
(XEN) CPU 5 booted.
(XEN) Bringing up CPU6
(XEN) CPU6: Guest atomics will try 18 times before pausing the domain
(XEN) CPU 6 booted.
(XEN) Bringing up CPU7
(XEN) CPU7: Guest atomics will try 17 times before pausing the domain
(XEN) Brought up 8 CPUs
(XEN) CPU 7 booted.
(XEN) I/O virtualisation disabled
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) Adding cpu 0 to runqueue 0
(XEN)  First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 0
(XEN) Adding cpu 3 to runqueue 0
(XEN) Adding cpu 4 to runqueue 0
(XEN) Adding cpu 5 to runqueue 0
(XEN) Adding cpu 6 to runqueue 0
(XEN) Adding cpu 7 to runqueue 0
(XEN) alternatives: Patching with alt table 00000000002cc068 -> 00000000002cc77c
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 0000000048d09000
(XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Failed to allocate requested dom0 memory. 672MB unallocated
(XEN) ****************************************
(XEN)
(XEN) Reboot in five seconds...

[-- Attachment #3: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-16 20:12 [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM Roman Shaposhnik
@ 2019-12-16 22:43 ` Stefano Stabellini
  2019-12-17  2:55 ` Stefano Stabellini
  1 sibling, 0 replies; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-16 22:43 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Thanks for the report, I'll give it a look!

On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> Hi!
> 
> it appears that something has broken in 4.13 RC5 so that
> I'm now getting the following on ARM (full logs are attached).
> 
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Failed to allocate requested dom0 memory. 672MB unallocated
> (XEN) ****************************************
> 
> My GRUB boot sequence hasn't changed:
> 
> xen_hypervisor /boot/xen.efi console=dtuart   dom0_mem=1024M,max:1024M
> dom0_max_vcpus=1 dom0_vcpus_pin
> xen_module /boot/kernel console=hvc0 root=(hd1,gpt1)/rootfs.img text
> devicetree (hd1,gpt4)/eve.dtb
> xen_module (hd1,gpt1)/initrd.img
> 
> In fact, if I use Xen 4.12 instead of 4.13 -- everything seems to work
> as it used to.
> 
> Thanks,
> Roman.
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-16 20:12 [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM Roman Shaposhnik
  2019-12-16 22:43 ` Stefano Stabellini
@ 2019-12-17  2:55 ` Stefano Stabellini
  2019-12-17  4:39   ` Roman Shaposhnik
  1 sibling, 1 reply; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-17  2:55 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> Hi!
> 
> it appears that something has broken in 4.13 RC5 so that
> I'm now getting the following on ARM (full logs are attached).
> 
> (XEN) ****************************************
> (XEN) Panic on CPU 0:
> (XEN) Failed to allocate requested dom0 memory. 672MB unallocated
> (XEN) ****************************************
> 
> My GRUB boot sequence hasn't changed:
> 
> xen_hypervisor /boot/xen.efi console=dtuart   dom0_mem=1024M,max:1024M
> dom0_max_vcpus=1 dom0_vcpus_pin

FYI we don't actually support the ",max:1024M" part of the dom0_mem
argument on ARM. On ARM, it should just be:

  dom0_mem=1024M


> xen_module /boot/kernel console=hvc0 root=(hd1,gpt1)/rootfs.img text
> devicetree (hd1,gpt4)/eve.dtb
> xen_module (hd1,gpt1)/initrd.img
> 
> In fact, if I use Xen 4.12 instead of 4.13 -- everything seems to work
> as it used to.

I spoke too early: I am unable to reproduce it on my end. On what
platforms did you see this error? Was it the HiKey? Could you please
post the devicetree that you are using (eve.dtb from this example)?

If the dts is this one: https://github.com/lf-edge/eve/blob/master/conf/eve.dts
then I might have an idea. In Xen 4.13 we introduced support for
reserved-memory. It looks like the HiKey has a few reserved-memory
regions and I wonder if that is the problem. Could you please remove the
whole "reserved-memory" node and try again to see if that is the issue?

Also looking at eve.dts above, I am a bit puzzled because the memory
node is:

    memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000 0x0 0x1aaf0000 0x0 0x22000000 0x0 0x1c000000>;
	};

If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
If so, I wonder how you could boot succesfully with dom0_mem=1024M even
on Xen 4.12... :-?

If we look at ramoops@21f00000 under reserved-memory:

		ramoops@21f00000 {
			record-size = <0x20000>;
			compatible = "ramoops";
			console-size = <0x20000>;
			reg = <0x0 0x21f00000 0x0 0x100000>;
			ftrace-size = <0x20000>;
		};

the memory range "0x0 0x21f00000 0x0 0x100000" is supposed to fall in
any of the memory ranges of the memory node (the ones I copy/pasted
above). But actually it doesn't. That is a device tree error.

Maybe you could try booting on the HiKey changing the device tree so that the
memory node includes the ramoops range, like this: 

    memory@0 {
		device_type = "memory";
		reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0 0x1c000000>;
	};

(Note that I added "0x0 0x21f00000 0x0 0x100000" to the list of ranges in order.)

Let me know!

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17  2:55 ` Stefano Stabellini
@ 2019-12-17  4:39   ` Roman Shaposhnik
  2019-12-17 11:30     ` Julien Grall
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-17  4:39 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini

On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > Hi!
> >
> > it appears that something has broken in 4.13 RC5 so that
> > I'm now getting the following on ARM (full logs are attached).
> >
> > (XEN) ****************************************
> > (XEN) Panic on CPU 0:
> > (XEN) Failed to allocate requested dom0 memory. 672MB unallocated
> > (XEN) ****************************************
> >
> > My GRUB boot sequence hasn't changed:
> >
> > xen_hypervisor /boot/xen.efi console=dtuart   dom0_mem=1024M,max:1024M
> > dom0_max_vcpus=1 dom0_vcpus_pin
>
> FYI we don't actually support the ",max:1024M" part of the dom0_mem
> argument on ARM. On ARM, it should just be:
>
>   dom0_mem=1024M

I tried with just dom0_mem=1024M and it is the same result -- can't boot.

> > xen_module /boot/kernel console=hvc0 root=(hd1,gpt1)/rootfs.img text
> > devicetree (hd1,gpt4)/eve.dtb
> > xen_module (hd1,gpt1)/initrd.img
> >
> > In fact, if I use Xen 4.12 instead of 4.13 -- everything seems to work
> > as it used to.
>
> I spoke too early: I am unable to reproduce it on my end. On what
> platforms did you see this error? Was it the HiKey?

Yup. It is HiKey.

> Could you please
> post the devicetree that you are using (eve.dtb from this example)?

Looks like you've found it ;-) Btw, can you please send me the device
tree with which you're booting fine? I can try that very quickly.

> If the dts is this one: https://github.com/lf-edge/eve/blob/master/conf/eve.dts
> then I might have an idea.

Yup. That's the one.

> In Xen 4.13 we introduced support for
> reserved-memory. It looks like the HiKey has a few reserved-memory
> regions and I wonder if that is the problem. Could you please remove the
> whole "reserved-memory" node and try again to see if that is the issue?

Will do tomorrow (but I'd also appreciate getting your devicetree).

> Also looking at eve.dts above, I am a bit puzzled because the memory
> node is:
>
>     memory@0 {
>                 device_type = "memory";
>                 reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000 0x0 0x1aaf0000 0x0 0x22000000 0x0 0x1c000000>;
>         };
>
> If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> on Xen 4.12... :-?

That is a very interesting observation indeed! I actually don't
remember where that device tree came from, but I think it was from one
of the Linaro sites.

> If we look at ramoops@21f00000 under reserved-memory:
>
>                 ramoops@21f00000 {
>                         record-size = <0x20000>;
>                         compatible = "ramoops";
>                         console-size = <0x20000>;
>                         reg = <0x0 0x21f00000 0x0 0x100000>;
>                         ftrace-size = <0x20000>;
>                 };
>
> the memory range "0x0 0x21f00000 0x0 0x100000" is supposed to fall in
> any of the memory ranges of the memory node (the ones I copy/pasted
> above). But actually it doesn't. That is a device tree error.
>
> Maybe you could try booting on the HiKey changing

Btw, speaking of which: silly question -- it seems I can boot Linux just
fine with this device tree and it appears functional with one caveat: try
as hard as I may I can't get the console output (note that Xen has no
problem outputting to the console -- well at least until it crashes and
with Xen 4.12 Linux is very happy using hvc0).

Any chance you can suggest what would be a reasonable setting
for booting a pure Linux kernel when it comes to console output?
That way, at least, I can do some additional experimenting.

> the device tree so that the
> memory node includes the ramoops range, like this:
>
>     memory@0 {
>                 device_type = "memory";
>                 reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0 0x1c000000>;
>         };
>
> (Note that I added "0x0 0x21f00000 0x0 0x100000" to the list of ranges in order.)
>
> Let me know!

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17  4:39   ` Roman Shaposhnik
@ 2019-12-17 11:30     ` Julien Grall
  2019-12-17 18:30       ` Stefano Stabellini
  2019-12-17 18:31       ` Roman Shaposhnik
  0 siblings, 2 replies; 30+ messages in thread
From: Julien Grall @ 2019-12-17 11:30 UTC (permalink / raw)
  To: Roman Shaposhnik, Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini

Hi,

On 17/12/2019 04:39, Roman Shaposhnik wrote:
> On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>> On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
>> If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
>> If so, I wonder how you could boot succesfully with dom0_mem=1024M even
>> on Xen 4.12... :-?
> 
> That is a very interesting observation indeed! I actually don't
> remember where that device tree came from, but I think it was from one
> of the Linaro sites.

This is mostly likely because of:

commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
Author: Julien Grall <julien.grall@arm.com>
Date:   Wed Aug 21 22:42:31 2019 +0100

     xen/arm: domain_build: Don't continue if unable to allocate all 
dom0 banks

     Xen will only print a warning if there are memory unallocated when 
using
     1:1 mapping (only used by dom0). This also includes the case where no
     memory has been allocated.

     It will bring to all sort of issues that can be hard to diagnostic for
     users (the warning can be difficult to spot or disregard).

     If the users request 1GB of memory, then most likely they want the 
exact
     amount and not 512MB. So panic if all the memory has not been 
allocated.

     After this change, the behavior is the same as for non-1:1 memory
     allocation (used by domU).

     At the same time, reflow the message to have the format on a single
     line.

     Signed-off-by: Julien Grall <julien.grall@arm.com>
     Acked-by: Stefano Stabellini <sstabellini@kernel.org>

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17 11:30     ` Julien Grall
@ 2019-12-17 18:30       ` Stefano Stabellini
  2019-12-17 18:33         ` Roman Shaposhnik
  2019-12-17 18:31       ` Roman Shaposhnik
  1 sibling, 1 reply; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-17 18:30 UTC (permalink / raw)
  To: roman; +Cc: xen-devel, Stefano Stabellini, julien, Stefano Stabellini

On Tue, 17 Dec 2019, Julien Grall wrote:
> Hi,
> 
> On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > <sstabellini@kernel.org> wrote:
> > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > on Xen 4.12... :-?
> > 
> > That is a very interesting observation indeed! I actually don't
> > remember where that device tree came from, but I think it was from one
> > of the Linaro sites.
> 
> This is mostly likely because of:
> 
> commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> Author: Julien Grall <julien.grall@arm.com>
> Date:   Wed Aug 21 22:42:31 2019 +0100
> 
>     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> 
>     Xen will only print a warning if there are memory unallocated when using
>     1:1 mapping (only used by dom0). This also includes the case where no
>     memory has been allocated.
> 
>     It will bring to all sort of issues that can be hard to diagnostic for
>     users (the warning can be difficult to spot or disregard).
> 
>     If the users request 1GB of memory, then most likely they want the exact
>     amount and not 512MB. So panic if all the memory has not been allocated.
> 
>     After this change, the behavior is the same as for non-1:1 memory
>     allocation (used by domU).
> 
>     At the same time, reflow the message to have the format on a single
>     line.
> 
>     Signed-off-by: Julien Grall <julien.grall@arm.com>
>     Acked-by: Stefano Stabellini <sstabellini@kernel.org>

Ah! Roman, could you please post the full boot log of a successful 4.12
boot?

If it has a "Failed to allocate requested dom0 memory" message, then we
know what the issue is.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17 11:30     ` Julien Grall
  2019-12-17 18:30       ` Stefano Stabellini
@ 2019-12-17 18:31       ` Roman Shaposhnik
  1 sibling, 0 replies; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-17 18:31 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi Julien,

On Tue, Dec 17, 2019 at 3:30 AM Julien Grall <julien@xen.org> wrote:
>
> Hi,
>
> On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > <sstabellini@kernel.org> wrote:
> >> On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> >> If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> >> If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> >> on Xen 4.12... :-?
> >
> > That is a very interesting observation indeed! I actually don't
> > remember where that device tree came from, but I think it was from one
> > of the Linaro sites.
>
> This is mostly likely because of:
>
> commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> Author: Julien Grall <julien.grall@arm.com>
> Date:   Wed Aug 21 22:42:31 2019 +0100
>
>      xen/arm: domain_build: Don't continue if unable to allocate all
> dom0 banks
>
>      Xen will only print a warning if there are memory unallocated when
> using
>      1:1 mapping (only used by dom0). This also includes the case where no
>      memory has been allocated.
>
>      It will bring to all sort of issues that can be hard to diagnostic for
>      users (the warning can be difficult to spot or disregard).
>
>      If the users request 1GB of memory, then most likely they want the
> exact
>      amount and not 512MB. So panic if all the memory has not been
> allocated.
>
>      After this change, the behavior is the same as for non-1:1 memory
>      allocation (used by domU).
>
>      At the same time, reflow the message to have the format on a single
>      line.
>
>      Signed-off-by: Julien Grall <julien.grall@arm.com>
>      Acked-by: Stefano Stabellini <sstabellini@kernel.org>

It seems you're absolutely right. Looking at the logs from Xen 4.12 I'm seeing:

(XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
(XEN) WARNING: Failed to allocate requested dom0 memory. 624MB unallocated
(XEN) BANK[0] 0x00000008000000-0x00000010000000 (128MB)
(XEN) BANK[1] 0x00000036000000-0x0000003e000000 (128MB)
(XEN) BANK[2] 0x00000040000000-0x00000047000000 (112MB)
(XEN) BANK[3] 0x0000007b000000-0x0000007c000000 (16MB)
(XEN) BANK[4] 0x0000007e000000-0x0000007f000000 (16MB)
(XEN) Grant table range: 0x00000047998000-0x000000479d8000
(XEN) Allocating PPI 16 for event channel interrupt

So yes -- it was a warning that now turned an ERROR. So at least that
part is clear now.

What isn't clear still is the interplay between device trees and Xen
memory allocation -- I'll reply to Stefano on that.

Thanks,
Roman.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17 18:30       ` Stefano Stabellini
@ 2019-12-17 18:33         ` Roman Shaposhnik
  2019-12-17 19:25           ` Stefano Stabellini
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-17 18:33 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini, Julien Grall

[-- Attachment #1: Type: text/plain, Size: 2337 bytes --]

On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Tue, 17 Dec 2019, Julien Grall wrote:
> > Hi,
> >
> > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > <sstabellini@kernel.org> wrote:
> > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > on Xen 4.12... :-?
> > >
> > > That is a very interesting observation indeed! I actually don't
> > > remember where that device tree came from, but I think it was from one
> > > of the Linaro sites.
> >
> > This is mostly likely because of:
> >
> > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > Author: Julien Grall <julien.grall@arm.com>
> > Date:   Wed Aug 21 22:42:31 2019 +0100
> >
> >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> >
> >     Xen will only print a warning if there are memory unallocated when using
> >     1:1 mapping (only used by dom0). This also includes the case where no
> >     memory has been allocated.
> >
> >     It will bring to all sort of issues that can be hard to diagnostic for
> >     users (the warning can be difficult to spot or disregard).
> >
> >     If the users request 1GB of memory, then most likely they want the exact
> >     amount and not 512MB. So panic if all the memory has not been allocated.
> >
> >     After this change, the behavior is the same as for non-1:1 memory
> >     allocation (used by domU).
> >
> >     At the same time, reflow the message to have the format on a single
> >     line.
> >
> >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
>
> Ah! Roman, could you please post the full boot log of a successful 4.12
> boot?
>
> If it has a "Failed to allocate requested dom0 memory" message, then we
> know what the issue is.

Aha! Our messages seems to have crossed ;-) Full log is attached and
yes -- that's
the problem indeed.

So at least that mystery is solved. But I'm still not able to get to a
full 1G of memory
even with your update to the device tree file. Any chance you can send me the
device tree file that works for you?

Thanks,
Roman.

[-- Attachment #2: log2.txt --]
[-- Type: text/plain, Size: 23595 bytes --]

Using modules provided by bootloader in FDT
Xen 4.12.0 (c/s ) EFI loader
 Xen 4.12.0
(XEN) Xen version 4.12.0 (@) (gcc (Alpine 6.4.0) 6.4.0) debug=n  Fri Jun  7 17:32:08 UTC 2019
(XEN) Latest ChangeSet:
(XEN) Processor: 410fd033: "ARM Limited", variant: 0x0, part 0xd03, rev 0x3
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(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: 1200 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f6801000
(XEN)         gic_cpu_addr=00000000f6802000
(XEN)         gic_hyp_addr=00000000f6804000
(XEN)         gic_vcpu_addr=00000000f6806000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: 160 lines, 8 cpus, secure (IID 0200143b).
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN) Allocated console ring of 16 KiB.
(XEN) Bringing up CPU1
(XEN) Bringing up CPU2
(XEN) Bringing up CPU3
(XEN) Bringing up CPU4
(XEN) Bringing up CPU5
(XEN) Bringing up CPU6
(XEN) Bringing up CPU7
(XEN) Brought up 8 CPUs
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) I/O virtualisation disabled
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading Domd0 kernel from boot module @ 0000000048d38000
(XEN) Loading ramdisk from boot module @ 0000000047aa6000
(XEN) Allocating 1:1 mappings totalling 1024MB for dom0:
(XEN) WARNING: Failed to allocate requested dom0 memory. 624MB unallocated
(XEN) BANK[0] 0x00000008000000-0x00000010000000 (128MB)
(XEN) BANK[1] 0x00000036000000-0x0000003e000000 (128MB)
(XEN) BANK[2] 0x00000040000000-0x00000047000000 (112MB)
(XEN) BANK[3] 0x0000007b000000-0x0000007c000000 (16MB)
(XEN) BANK[4] 0x0000007e000000-0x0000007f000000 (16MB)
(XEN) Grant table range: 0x00000047998000-0x000000479d8000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 0000000048d38000 to 0000000008080000-0000000009233200
(XEN) Loading dom0 initrd from 0000000047aa6000 to 0x000000000ec00000-0x000000000fe90104
(XEN) Loading dom0 DTB to 0x000000000ea00000-0x000000000ea08b89
(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) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 308kB init memory.
(XEN) d0v0: vGICD: unhandled word write 0xffffffff to ICACTIVER4
(XEN) d0v0: vGICD: unhandled word write 0xffffffff to ICACTIVER8
(XEN) d0v0: vGICD: unhandled word write 0xffffffff to ICACTIVER12
(XEN) d0v0: vGICD: unhandled word write 0xffffffff to ICACTIVER16
(XEN) d0v0: vGICD: unhandled word write 0xffffffff to ICACTIVER0
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd033]
[    0.000000] Linux version 4.19.5 (root@350845ae5335) (gcc version 6.3.0 (Alpine 6.3.0)) #1 SMP PREEMPT Sat Sep 7 06:30:56 UTC 2019
[    0.000000] Machine model: HiKey Development Board
[    0.000000] Xen 4.12 support found
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000036000000, size 128 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000007effffff]
[    0.000000] NUMA: NODE_DATA [mem 0x7efc29c0-0x7efc417f]
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000008000000-0x000000007effffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000008000000-0x000000000fffffff]
[    0.000000]   node   0: [mem 0x0000000036000000-0x000000003dffffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000046ffffff]
[    0.000000]   node   0: [mem 0x000000007b000000-0x000000007bffffff]
[    0.000000]   node   0: [mem 0x000000007e000000-0x000000007effffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000008000000-0x000000007effffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x414 with crng_init=0
[    0.000000] percpu: Embedded 23 pages/cpu @(____ptrval____) s56664 r8192 d29352 u94208
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 843419
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] CPU features: enabling workaround for Speculative Store Bypass Disable
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 100800
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: console=hvc0 root=(hd1,gpt1)/rootfs.img rootdelay=3 setup_loops eve_installer
[    0.000000] Memory: 207828K/409600K available (10108K kernel code, 1676K rwdata, 5016K rodata, 1280K init, 376K bss, 70700K reserved, 131072K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
[    0.000000] 	Tasks RCU enabled.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 99544814920 ns
[    0.000005] sched_clock: 32 bits at 19MHz, resolution 52ns, wraps every 111848106981ns
[    0.000358] arch_timer: cp15 timer(s) running at 1.20MHz (virt).
[    0.000367] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x11b661f8e, max_idle_ns: 1763180809113 ns
[    0.000523] Console: colour dummy device 80x25
[    0.306059] console [hvc0] enabled
[    0.309582] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.40 BogoMIPS (lpj=4800)
[    0.319680] pid_max: default: 32768 minimum: 301
[    0.324415] Security Framework initialized
[    0.328704] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.335655] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.342531] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.349190] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.380581] ASID allocator initialised with 32768 entries
[    0.386508] xen:grant_table: Grant tables using version 1 layout
[    0.392443] Grant table initialized
[    0.395984] xen:events: Using FIFO-based ABI
[    0.400359] Xen: initializing cpu0
[    0.408456] rcu: Hierarchical SRCU implementation.
[    0.425167] EFI services will not be available.
[    0.437814] smp: Bringing up secondary CPUs ...
[    0.442266] smp: Brought up 1 node, 1 CPU
[    0.446328] SMP: Total of 1 processors activated.
[    0.451105] CPU features: detected: 32-bit EL0 Support
[    0.459388] CPU: All CPU(s) started at EL1
[    0.463399] alternatives: patching kernel code
[    0.468730] devtmpfs: initialized
[    0.480343] Registered cp15_barrier emulation handler
[    0.485337] Registered setend emulation handler
[    0.490186] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.499875] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.509160] pinctrl core: initialized pinctrl subsystem
[    0.517095] DMI not present or invalid.
[    0.522736] NET: Registered protocol family 16
[    0.527768] audit: initializing netlink subsys (disabled)
[    0.534948] audit: type=2000 audit(0.332:1): state=initialized audit_enabled=0 res=1
[    0.544301] vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
[    0.552939] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.560673] DMA: preallocated 256 KiB pool for atomic allocations
[    0.566899] xen:swiotlb_xen: Warning: only able to allocate 4 MB for software IO TLB
[    0.575303] software IO TLB: mapped [mem 0x7e000000-0x7e400000] (4MB)
[    0.583694] Serial: AMBA PL011 UART driver
[    0.593263] hi6220-mbox f7510000.mailbox: Mailbox enabled
[    0.611068] OF: amba_device_add() failed (-19) for /soc/uart@f7111000
[    0.619809] f8015000.uart: ttyAMA0 at MMIO 0xf8015000 (irq = 39, base_baud = 0) is a PL011 rev2
[    0.673852] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.684674] cryptd: max_cpu_qlen set to 1000
[    0.697459] ACPI: Interpreter disabled.
[    0.702722] xen:balloon: Initialising balloon driver
[    0.709715] vgaarb: loaded
[    0.713670] SCSI subsystem initialized
[    0.722333] usbcore: registered new interface driver usbfs
[    0.728422] usbcore: registered new interface driver hub
[    0.733778] usbcore: registered new device driver usb
[    0.740408] pps_core: LinuxPPS API ver. 1 registered
[    0.746193] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.755357] PTP clock support registered
[    0.759712] EDAC MC: Ver: 3.0.0
[    0.768915] clocksource: Switched to clocksource arch_sys_counter
[    0.775550] VFS: Disk quotas dquot_6.6.0
[    0.779514] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.786570] pnp: PnP ACPI: disabled
[    0.801949] OF: /soc/thermal-zones/cls0/cooling-maps/map0: could not find phandle
[    0.811432] missing cooling_device property
[    0.815652] failed to build thermal zone cls0: -22
[    0.820716] NET: Registered protocol family 2
[    0.825476] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes)
[    0.833170] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.840220] TCP bind hash table entries: 4096 (order: 4, 65536 bytes)
[    0.846707] TCP: Hash tables configured (established 4096 bind 4096)
[    0.853159] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.858982] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.865396] NET: Registered protocol family 1
[    0.869900] Unpacking initramfs...
[    1.034611] Freeing initrd memory: 19008K
[    1.039139] kvm [1]: HYP mode not available
[    1.046148] Initialise system trusted keyrings
[    1.051849] workingset: timestamp_bits=44 max_order=17 bucket_order=0
[    1.072372] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.079690] 9p: Installing v9fs 9p2000 file system support
[    1.085867] pstore: using deflate compression
[    1.093311] Key type asymmetric registered
[    1.097480] Asymmetric key parser 'x509' registered
[    1.102370] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    1.113992] io scheduler noop registered
[    1.117863] io scheduler deadline registered
[    1.122351] io scheduler cfq registered (default)
[    1.127024] io scheduler mq-deadline registered
[    1.131575] io scheduler kyber registered
[    1.143303] pinctrl-single f7010000.pinmux: 159 pins, size 636
[    1.150169] pinctrl-single f8001800.pinmux: 30 pins, size 120
[    1.156764] pinctrl-single f7010800.pinmux: 163 pins, size 652
[    1.166503] pl061_gpio f702f000.gpio: PL061 GPIO chip @0x00000000f702f000 registered
[    1.176446] pl061_gpio f702c000.gpio: PL061 GPIO chip @0x00000000f702c000 registered
[    1.184926] pl061_gpio f7029000.gpio: PL061 GPIO chip @0x00000000f7029000 registered
[    1.193548] pl061_gpio f7026000.gpio: PL061 GPIO chip @0x00000000f7026000 registered
[    1.201829] pl061_gpio f7023000.gpio: PL061 GPIO chip @0x00000000f7023000 registered
[    1.210189] pl061_gpio f8013000.gpio: PL061 GPIO chip @0x00000000f8013000 registered
[    1.218526] pl061_gpio f7020000.gpio: PL061 GPIO chip @0x00000000f7020000 registered
[    1.226872] pl061_gpio f702e000.gpio: PL061 GPIO chip @0x00000000f702e000 registered
[    1.235228] pl061_gpio f702b000.gpio: PL061 GPIO chip @0x00000000f702b000 registered
[    1.243555] pl061_gpio f7028000.gpio: PL061 GPIO chip @0x00000000f7028000 registered
[    1.251892] pl061_gpio f7025000.gpio: PL061 GPIO chip @0x00000000f7025000 registered
[    1.260227] pl061_gpio f7022000.gpio: PL061 GPIO chip @0x00000000f7022000 registered
[    1.268581] pl061_gpio f8012000.gpio: PL061 GPIO chip @0x00000000f8012000 registered
[    1.277012] pl061_gpio f702d000.gpio: PL061 GPIO chip @0x00000000f702d000 registered
[    1.285344] pl061_gpio f702a000.gpio: PL061 GPIO chip @0x00000000f702a000 registered
[    1.293629] pl061_gpio f7027000.gpio: PL061 GPIO chip @0x00000000f7027000 registered
[    1.301650] gpio gpiochip16: names 9 do not match number of GPIOs 8
[    1.308161] pl061_gpio f7024000.gpio: PL061 GPIO chip @0x00000000f7024000 registered
[    1.316065] gpio gpiochip17: names 9 do not match number of GPIOs 8
[    1.322530] pl061_gpio f8014000.gpio: PL061 GPIO chip @0x00000000f8014000 registered
[    1.330721] pl061_gpio f7021000.gpio: PL061 GPIO chip @0x00000000f7021000 registered
[    1.339059] pl061_gpio f8011000.gpio: PL061 GPIO chip @0x00000000f8011000 registered
[    1.352186] EINJ: ACPI disabled.
[    1.365062] k3-dma f7370000.dma: initialized
[    1.376473] xen:xen_evtchn: Event-channel device installed
[    1.393374] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.403639] SuperH (H)SCI(F) driver initialized
[    1.410430] msm_serial: driver initialized
[    1.416034] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.428708] loop: module loaded
[    1.433170] Invalid max_queues (4), will use default max: 1.
[    1.441835] VDD_3V3: supplied by SYS_5V
[    1.451934] libphy: Fixed MDIO Bus: probed
[    1.461380] tun: Universal TUN/TAP device driver, 1.6
[    1.468800] xen_netfront: Initialising Xen virtual ethernet driver
[    1.475644] usbcore: registered new interface driver asix
[    1.481393] usbcore: registered new interface driver ax88179_178a
[    1.487737] VFIO - User Level meta-driver version: 0.3
[    1.498275] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.505125] ehci-pci: EHCI PCI platform driver
[    1.509602] ehci-platform: EHCI generic platform driver
[    1.515023] ehci-orion: EHCI orion driver
[    1.519204] ehci-exynos: EHCI EXYNOS driver
[    1.523487] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.529664] ohci-pci: OHCI PCI platform driver
[    1.534185] ohci-platform: OHCI generic platform driver
[    1.539599] ohci-exynos: OHCI EXYNOS driver
[    1.544422] usbcore: registered new interface driver usb-storage
[    1.550767] usbcore: registered new interface driver usbserial_generic
[    1.557369] usbserial: USB Serial support registered for generic
[    1.564597] input: HISI 65xx PowerOn Key as /devices/platform/f8000000.pmic/hi65xx-powerkey.0.auto/input/input0
[    1.577217] rtc-pl031 f8004000.rtc: rtc core: registered pl031 as rtc0
[    1.585069] rtc-pl031 f8003000.rtc: rtc core: registered pl031 as rtc1
[    1.592854] i2c /dev entries driver
[    1.603297] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    1.610923] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    1.619986] sp805-wdt f8005000.watchdog: registration successful
[    1.628262] sdhci: Secure Digital Host Controller Interface driver
[    1.635317] sdhci: Copyright(c) Pierre Ossman
[    1.640194] Synopsys Designware Multimedia Card Interface Driver
[    1.647426] dwmmc_k3 f723f000.dwmmc2: fifo-depth property not found, using value of FIFOTH register as default
[    1.657792] dwmmc_k3 f723f000.dwmmc2: IDMAC supports 32-bit address mode.
[    1.664820] dwmmc_k3 f723f000.dwmmc2: Using internal DMA controller.
[    1.671144] dwmmc_k3 f723f000.dwmmc2: Version ID is 250a
[    1.676535] dwmmc_k3 f723f000.dwmmc2: DW MMC controller at irq 11,32 bit host data width,128 deep fifo
[    1.685919] dwmmc_k3 f723f000.dwmmc2: Linked as a consumer to regulator.1
[    1.692756] dwmmc_k3 f723f000.dwmmc2: allocated mmc-pwrseq
[    1.698234] mmc_host mmc0: card is non-removable.
[    1.715886] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.738334] dwmmc_k3 f723e000.dwmmc1: fifo-depth property not found, using value of FIFOTH register as default
[    1.748623] dwmmc_k3 f723e000.dwmmc1: IDMAC supports 32-bit address mode.
[    1.759678] dwmmc_k3 f723e000.dwmmc1: Using internal DMA controller.
[    1.766000] dwmmc_k3 f723e000.dwmmc1: Version ID is 250a
[    1.771353] dwmmc_k3 f723f000.dwmmc2: card claims to support voltages below defined range
[    1.779627] dwmmc_k3 f723e000.dwmmc1: DW MMC controller at irq 19,32 bit host data width,128 deep fifo
[    1.789015] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.5
[    1.795855] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.4
[    1.802701] dwmmc_k3 f723e000.dwmmc1: Got CD GPIO
[    1.815650] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    1.825351] mmc_host mmc1: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.837386] mmc0: new SDIO card at address 0001
[    1.848301] dwmmc_k3 f723d000.dwmmc0: fifo-depth property not found, using value of FIFOTH register as default
[    1.858520] dwmmc_k3 f723d000.dwmmc0: IDMAC supports 32-bit address mode.
[    1.865442] dwmmc_k3 f723d000.dwmmc0: Using internal DMA controller.
[    1.871792] dwmmc_k3 f723d000.dwmmc0: Version ID is 250a
[    1.877156] dwmmc_k3 f723d000.dwmmc0: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    1.886580] dwmmc_k3 f723d000.dwmmc0: Linked as a consumer to regulator.10
[    1.893489] mmc_host mmc2: card is non-removable.
[    1.908924] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.930257] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.939572] ledtrig-cpu: registered to indicate activity on CPUs
[    1.949125] usbcore: registered new interface driver usbhid
[    1.955897] usbhid: USB HID core driver
[    1.959805] mmc_host mmc1: Bus speed (slot 0) = 99200000Hz (slot req 100000000Hz, actual 99200000HZ div = 0)
[    1.972557] optee: probing for conduit method from DT.
[    1.978784] mmc1: new ultra high speed SDR50 SDHC card at address 0007
[    1.985336] optee: api uid mismatch
[    1.989914] NET: Registered protocol family 10
[    1.995351] mmcblk1: mmc1:0007 APUSD 14.9 GiB
[    2.004480] Segment Routing with IPv6
[    2.008362] NET: Registered protocol family 17
[    2.013048] 9pnet: Installing 9P2000 support
[    2.017391] Initialising Xen transport for 9pfs
[    2.022295] Key type dns_resolver registered
[    2.027894] registered taskstats version 1
[    2.032485] Loading compiled-in X.509 certificates
[    2.037322] mmc_host mmc2: Bus speed (slot 0) = 198400000Hz (slot req 200000000Hz, actual 198400000HZ div = 0)
[    2.047721] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    2.060365] mmc2: new HS200 MMC card at address 0001
[    2.065292] GPT:716799 != 31293439
[    2.068712] GPT:Alternate GPT header not at the end of the disk.
[    2.075792] mmcblk2: mmc2:0001 8GND3R 7.28 GiB
[    2.081014] mmcblk2boot0: mmc2:0001 8GND3R partition 1 4.00 MiB
[    2.086860] GPT:716799 != 31293439
[    2.090340] GPT: Use GNU Parted to correct GPT errors.
[    2.096117] mmcblk2boot1: mmc2:0001 8GND3R partition 2 4.00 MiB
[    2.101987]  mmcblk1: p1 p4 p5
[    2.105288] mmcblk2rpmb: mmc2:0001 8GND3R partition 3 512 KiB, chardev (239:0)
[    2.114352] random: fast init done
[    2.118162] f7112000.uart: ttyAMA2 at MMIO 0xf7112000 (irq = 22, base_baud = 0) is a PL011 rev2
[    2.129039]  mmcblk2: p1 p2 p3 p4 p5 p6 p7 p8 p11 p12 p13 p14 p19
[    2.135215] 5V_HUB: supplied by SYS_5V
[    2.140858] ssp-pl022 f7106000.spi: ARM PL022 driver, device ID: 0x00041022
[    2.151031] ssp-pl022 f7106000.spi: mapped registers from 0x00000000f7106000 to (____ptrval____)
[    2.159970] ssp-pl022 f7106000.spi: setup for DMA on RX dma0chan0, TX dma0chan1
[    2.171888] phy phy-soc:usbphy.0: Linked as a consumer to regulator.13
[    2.180180] dwc2 f72c0000.usb: f72c0000.usb supply vusb_d not found, using dummy regulator
[    2.188677] dwc2 f72c0000.usb: Linked as a consumer to regulator.0
[    2.194927] dwc2 f72c0000.usb: f72c0000.usb supply vusb_a not found, using dummy regulator
[    2.412917] dwc2 f72c0000.usb: EPs: 16, dedicated fifos, 1920 entries in SPRAM
[    2.420855] dwc2 f72c0000.usb: DWC OTG Controller
[    2.425628] dwc2 f72c0000.usb: new USB bus registered, assigned bus number 1
[    2.432644] dwc2 f72c0000.usb: irq 13, io mem 0xf72c0000
[    2.438650] hub 1-0:1.0: USB hub found
[    2.442445] hub 1-0:1.0: 1 port detected
[    2.448536] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    2.456035] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    2.464950] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    2.472222] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    2.480287] rtc-pl031 f8004000.rtc: setting system clock to 1970-01-01 00:03:20 UTC (200)
[    2.489072] LDO2_2V8: disabling
[    2.492121] LDO13_1V8: disabling
[    2.495455] LDO14_2V8: disabling
[    2.498774] LDO17_2V5: disabling
[    2.503100] Freeing unused kernel memory: 1280K
[    2.507711] Run /init as init process
Alpine Init 3.3.0-EVE
 * Loading boot drivers: ok.
 * Mounting boot media: [    2.840976] dwc2 f72c0000.usb: Set speed to high-speed
[    2.847639] usb 1-1: new high-speed USB device number 2 using dwc2
[    3.040905] dwc2 f72c0000.usb: Set speed to high-speed
[    3.065802] hub 1-1:1.0: USB hub found
[    3.070089] hub 1-1:1.0: 3 ports detected
[    3.077528] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    3.086064] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    3.292586] EXT4-fs (mmcblk2p19): mounting ext3 file system using the ext4 subsystem
[    3.307573] EXT4-fs (mmcblk2p19): mounted filesystem with ordered data mode. Opts: (null)
ok.
 * Setting up loopback block devices: ok.
 * Launching EVE installer.: WARNING: found multiple free disks mmcblk2 mmcblk2boot0 mmcblk2boot1, installing on the first one
[    4.243686] random: rngd: uninitialized urandom read (8 bytes read)
[    4.250044] random: rngd: uninitialized urandom read (8 bytes read)
[    4.256402] random: crng init done
1970/01/01 00:03:22 Wrote 224 bytes of entropy, exiting as oneshot
Found Android GPT partition table on /dev/mmcblk2
[    5.366744]  mmcblk2: p1 p2 p3 p4 p5 p6 p7 p8 p12 p13 p14 p19

[-- Attachment #3: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17 18:33         ` Roman Shaposhnik
@ 2019-12-17 19:25           ` Stefano Stabellini
  2019-12-18  0:04             ` Roman Shaposhnik
  0 siblings, 1 reply; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-17 19:25 UTC (permalink / raw)
  To: Roman Shaposhnik
  Cc: xen-devel, Stefano Stabellini, Julien Grall, Stefano Stabellini

On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
> >
> > On Tue, 17 Dec 2019, Julien Grall wrote:
> > > Hi,
> > >
> > > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > > <sstabellini@kernel.org> wrote:
> > > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > > on Xen 4.12... :-?
> > > >
> > > > That is a very interesting observation indeed! I actually don't
> > > > remember where that device tree came from, but I think it was from one
> > > > of the Linaro sites.
> > >
> > > This is mostly likely because of:
> > >
> > > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > > Author: Julien Grall <julien.grall@arm.com>
> > > Date:   Wed Aug 21 22:42:31 2019 +0100
> > >
> > >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> > >
> > >     Xen will only print a warning if there are memory unallocated when using
> > >     1:1 mapping (only used by dom0). This also includes the case where no
> > >     memory has been allocated.
> > >
> > >     It will bring to all sort of issues that can be hard to diagnostic for
> > >     users (the warning can be difficult to spot or disregard).
> > >
> > >     If the users request 1GB of memory, then most likely they want the exact
> > >     amount and not 512MB. So panic if all the memory has not been allocated.
> > >
> > >     After this change, the behavior is the same as for non-1:1 memory
> > >     allocation (used by domU).
> > >
> > >     At the same time, reflow the message to have the format on a single
> > >     line.
> > >
> > >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> > >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> >
> > Ah! Roman, could you please post the full boot log of a successful 4.12
> > boot?
> >
> > If it has a "Failed to allocate requested dom0 memory" message, then we
> > know what the issue is.
> 
> Aha! Our messages seems to have crossed ;-) Full log is attached and
> yes -- that's
> the problem indeed.
> 
> So at least that mystery is solved. But I'm still not able to get to a
> full 1G of memory
> even with your update to the device tree file. Any chance you can send me the
> device tree file that works for you?

I didn't try on real hardware, I only tried on QEMU with a similar
configuration. I went back and check the HiKey device tree I used and it
is the same as yours (including the ramoops reserved-memory error).

Apparently there are 1G and 2G variants of the HiKey, obviously both
yours and my device tree are for the 1G variant. I try to dig through
the docs but couldn't find the details of the 2G variant. I cannot find
anywhere the memory range for the top 1G of memory not even on the
LeMaker docs! :-/

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-17 19:25           ` Stefano Stabellini
@ 2019-12-18  0:04             ` Roman Shaposhnik
  2019-12-18  1:51               ` Stefano Stabellini
  2019-12-18 12:56               ` Julien Grall
  0 siblings, 2 replies; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-18  0:04 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini, Julien Grall

[-- Attachment #1: Type: text/plain, Size: 6741 bytes --]

On Tue, Dec 17, 2019 at 11:26 AM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
> > <sstabellini@kernel.org> wrote:
> > >
> > > On Tue, 17 Dec 2019, Julien Grall wrote:
> > > > Hi,
> > > >
> > > > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > > > <sstabellini@kernel.org> wrote:
> > > > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > > > on Xen 4.12... :-?
> > > > >
> > > > > That is a very interesting observation indeed! I actually don't
> > > > > remember where that device tree came from, but I think it was from one
> > > > > of the Linaro sites.
> > > >
> > > > This is mostly likely because of:
> > > >
> > > > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > > > Author: Julien Grall <julien.grall@arm.com>
> > > > Date:   Wed Aug 21 22:42:31 2019 +0100
> > > >
> > > >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> > > >
> > > >     Xen will only print a warning if there are memory unallocated when using
> > > >     1:1 mapping (only used by dom0). This also includes the case where no
> > > >     memory has been allocated.
> > > >
> > > >     It will bring to all sort of issues that can be hard to diagnostic for
> > > >     users (the warning can be difficult to spot or disregard).
> > > >
> > > >     If the users request 1GB of memory, then most likely they want the exact
> > > >     amount and not 512MB. So panic if all the memory has not been allocated.
> > > >
> > > >     After this change, the behavior is the same as for non-1:1 memory
> > > >     allocation (used by domU).
> > > >
> > > >     At the same time, reflow the message to have the format on a single
> > > >     line.
> > > >
> > > >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> > > >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> > >
> > > Ah! Roman, could you please post the full boot log of a successful 4.12
> > > boot?
> > >
> > > If it has a "Failed to allocate requested dom0 memory" message, then we
> > > know what the issue is.
> >
> > Aha! Our messages seems to have crossed ;-) Full log is attached and
> > yes -- that's
> > the problem indeed.
> >
> > So at least that mystery is solved. But I'm still not able to get to a
> > full 1G of memory
> > even with your update to the device tree file. Any chance you can send me the
> > device tree file that works for you?
>
> I didn't try on real hardware, I only tried on QEMU with a similar
> configuration. I went back and check the HiKey device tree I used and it
> is the same as yours (including the ramoops reserved-memory error).
>
> Apparently there are 1G and 2G variants of the HiKey, obviously both
> yours and my device tree are for the 1G variant. I try to dig through
> the docs but couldn't find the details of the 2G variant. I cannot find
> anywhere the memory range for the top 1G of memory not even on the
> LeMaker docs! :-/

Yup. That's exactly the issue on my end as well - can't seem to find an
authoritative source for that devicetree.

I did find this, though:
     https://releases.linaro.org/96boards/hikey/linaro/debian/15.11/
which looks like it has the latest (at least file timestamp-wise) devicetree.

If you look at the memory and reserved memory nodes there, they
are actually much simpler than what we've got:

        memory {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };

        reserved-memory {
                #address-cells = <0x2>;
                #size-cells = <0x2>;
                ranges;

                mcu-buf@05e00000 {
                        no-map;
                        reg = <0x0 0x5e00000 0x0 0x100000 0x0
0x740f000 0x0 0x1000>;
                };

                mbox-buf@06dff000 {
                        no-map;
                        reg = <0x0 0x6dff000 0x0 0x1000>;
                };
        };

So -- just on a whim -- I changed it to:
    reg = <0x0 0x0 0x0 0x80000000>;

Interestingly enough, Xen booted, and complained about only 192MB
unallocated this time.
So, I dropped the size of Dom0 to 640M and I got it boot and here's
what I'm seeing as
an output of xl info:
   total_memory           : 1120
   free_memory            : 390
It still nowhere close to 2G.

Then I booted the Linux kernel without Xen and it correctly identified
all 2G worth of RAM, and in fact,
when I converted /sys/firmware/devicetree/base back into dts, here's
what I've got:

        memory {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
0x1c000000>;
        };

        reserved-memory {
                ranges;
                #size-cells = <0x2>;
                #address-cells = <0x2>;

                ramoops@21f00000 {
                        ftrace-size = <0x20000>;
                        console-size = <0x20000>;
                        reg = <0x0 0x21f00000 0x0 0x100000>;
                        record-size = <0x20000>;
                        compatible = "ramoops";
                };

                linux,cma {
                        linux,cma-default;
                        reusable;
                        size = <0x0 0x8000000>;
                        compatible = "shared-dma-pool";
                };
        };

If you look at the REG -- it does now add up to 2Gb, but booting Xen
with it has exactly the
same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;

I am attaching a full log, and I see the following in the logs:

(XEN) Allocating 1:1 mappings totalling 720MB for dom0:
(XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
(XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
(XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)

Which sort of makes sense, I guess -- but I still don't understand
where all these ranges
are coming from and how come Xen doesn't see the full 2Gb even with various
devicetrees I tried.

Any ideas here would be greatly apprecaited!

Thanks,
Roman.

P.S. Any guess at what these mean?

(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff87355558
gva=0xffff872f2000 gpa=0x000000000f0000
(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffffb734e558
gva=0xffffb72eb000 gpa=0x000000000f0000
(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff8f9d2558
gva=0xffff8f96f000 gpa=0x000000000f0000

[-- Attachment #2: xen4.log --]
[-- Type: application/octet-stream, Size: 6358 bytes --]

(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000000000000 - 0000000005dfffff
(XEN) RAM: 0000000005f00000 - 0000000006dfefff
(XEN) RAM: 0000000006e00000 - 000000000740efff
(XEN) RAM: 0000000007410000 - 000000001db8dfff
(XEN) RAM: 00000000350f0000 - 000000003dbd2fff
(XEN) RAM: 000000003dbd3000 - 000000003dffffff
(XEN) RAM: 0000000040000000 - 000000005a653fff
(XEN) RAM: 000000007ada0000 - 000000007ada3fff
(XEN) RAM: 000000007aea8000 - 000000007afa9fff
(XEN) RAM: 000000007afaa000 - 000000007ec73fff
(XEN) RAM: 000000007ec74000 - 000000007fdddfff
(XEN) RAM: 000000007fdde000 - 000000007fea5fff
(XEN) RAM: 000000007fea6000 - 000000007ff6dfff
(XEN) RAM: 000000007ffff000 - 000000007fffffff
(XEN)
(XEN) MODULE[0]: 000000005a660000 - 000000005a79b900 Xen
(XEN) MODULE[1]: 000000005a654000 - 000000005a660000 Device Tree
(XEN) MODULE[2]: 000000005a7a7000 - 000000005b95a200 Kernel
(XEN)  RESVD[0]: 0000000021f00000 - 0000000021ffffff
(XEN)
(XEN) CMDLINE[000000005a7a7000]:chosen console=hvc0 root=PARTUUID=f71bd987-d99a-4c88-9781-cf4c26cae55e rootdelay=3
(XEN)
(XEN) Command line: console=dtuart dom0_mem=720M dom0_max_vcpus=1 dom0_vcpus_pin
(XEN) Domain heap initialised
(XEN) Booting using Device Tree
(XEN) Platform: Generic System
(XEN) Taking dtuart configuration from /chosen/stdout-path
(XEN) Looking for dtuart at "serial3", options "115200n8"
(XEN) WARNING: UART configuration is not supported
 Xen 4.13.0-rc
(XEN) Xen version 4.13.0-rc (@) (gcc (Alpine 6.4.0) 6.4.0) debug=y  Fri Dec  6 07:29:10 UTC 2019
(XEN) Latest ChangeSet:
(XEN) build-id: bf2e5dde8df8199230a1b0a25fb8f220be3714a0
(XEN) Processor: 410fd033: "ARM Limited", variant: 0x0, part 0xd03, rev 0x3
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(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) Using SMC Calling Convention v1.0
(XEN) Using PSCI v1.0
(XEN) SMP: Allowing 8 CPUs
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 1200 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f6801000
(XEN)         gic_cpu_addr=00000000f6802000
(XEN)         gic_hyp_addr=00000000f6804000
(XEN)         gic_vcpu_addr=00000000f6806000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: 160 lines, 8 cpus, secure (IID 0200143b).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN)  load_precision_shift: 18
(XEN)  load_window_shift: 30
(XEN)  underload_balance_tolerance: 0
(XEN)  overload_balance_tolerance: -3
(XEN)  runqueues arrangement: socket
(XEN)  cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Allocated console ring of 64 KiB.
(XEN) CPU0: Guest atomics will try 8 times before pausing the domain
(XEN) Bringing up CPU1
(XEN) CPU1: Guest atomics will try 17 times before pausing the domain
(XEN) CPU 1 booted.
(XEN) Bringing up CPU2
(XEN) CPU2: Guest atomics will try 10 times before pausing the domain
(XEN) CPU 2 booted.
(XEN) Bringing up CPU3
(XEN) CPU3: Guest atomics will try 22 times before pausing the domain
(XEN) CPU 3 booted.
(XEN) Bringing up CPU4
(XEN) CPU4: Guest atomics will try 22 times before pausing the domain
(XEN) CPU 4 booted.
(XEN) Bringing up CPU5
(XEN) CPU5: Guest atomics will try 13 times before pausing the domain
(XEN) CPU 5 booted.
(XEN) Bringing up CPU6
(XEN) CPU6: Guest atomics will try 20 times before pausing the domain
(XEN) CPU 6 booted.
(XEN) Bringing up CPU7
(XEN) CPU7: Guest atomics will try 12 times before pausing the domain
(XEN) Brought up 8 CPUs
(XEN) CPU 7 booted.
(XEN) I/O virtualisation disabled
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) Adding cpu 0 to runqueue 0
(XEN)  First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 0
(XEN) Adding cpu 3 to runqueue 0
(XEN) Adding cpu 4 to runqueue 0
(XEN) Adding cpu 5 to runqueue 0
(XEN) Adding cpu 6 to runqueue 0
(XEN) Adding cpu 7 to runqueue 0
(XEN) alternatives: Patching with alt table 00000000002cc068 -> 00000000002cc77c
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 000000005a7a7000
(XEN) Allocating 1:1 mappings totalling 720MB for dom0:
(XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
(XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
(XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
(XEN) Grant table range: 0x0000005a660000-0x0000005a6a0000
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading zImage from 000000005a7a7000 to 0000000008080000-0000000009233200
(XEN) Loading d0 DTB to 0x0000000010000000-0x0000000010008b69
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 344kB init memory.
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER12
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER16
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
(XEN) d0v0 Unhandled SMC/HVC: 0xbf00ff01
(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff87355558 gva=0xffff872f2000 gpa=0x000000000f0000
(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffffb734e558 gva=0xffffb72eb000 gpa=0x000000000f0000
(XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff8f9d2558 gva=0xffff8f96f000 gpa=0x000000000f0000

[-- Attachment #3: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  0:04             ` Roman Shaposhnik
@ 2019-12-18  1:51               ` Stefano Stabellini
  2019-12-18  2:56                 ` Roman Shaposhnik
  2019-12-18 12:56               ` Julien Grall
  1 sibling, 1 reply; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-18  1:51 UTC (permalink / raw)
  To: Roman Shaposhnik
  Cc: xen-devel, Stefano Stabellini, Julien Grall, Stefano Stabellini

On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> On Tue, Dec 17, 2019 at 11:26 AM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
> >
> > On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > > On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
> > > <sstabellini@kernel.org> wrote:
> > > >
> > > > On Tue, 17 Dec 2019, Julien Grall wrote:
> > > > > Hi,
> > > > >
> > > > > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > > > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > > > > <sstabellini@kernel.org> wrote:
> > > > > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > > > > on Xen 4.12... :-?
> > > > > >
> > > > > > That is a very interesting observation indeed! I actually don't
> > > > > > remember where that device tree came from, but I think it was from one
> > > > > > of the Linaro sites.
> > > > >
> > > > > This is mostly likely because of:
> > > > >
> > > > > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > > > > Author: Julien Grall <julien.grall@arm.com>
> > > > > Date:   Wed Aug 21 22:42:31 2019 +0100
> > > > >
> > > > >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> > > > >
> > > > >     Xen will only print a warning if there are memory unallocated when using
> > > > >     1:1 mapping (only used by dom0). This also includes the case where no
> > > > >     memory has been allocated.
> > > > >
> > > > >     It will bring to all sort of issues that can be hard to diagnostic for
> > > > >     users (the warning can be difficult to spot or disregard).
> > > > >
> > > > >     If the users request 1GB of memory, then most likely they want the exact
> > > > >     amount and not 512MB. So panic if all the memory has not been allocated.
> > > > >
> > > > >     After this change, the behavior is the same as for non-1:1 memory
> > > > >     allocation (used by domU).
> > > > >
> > > > >     At the same time, reflow the message to have the format on a single
> > > > >     line.
> > > > >
> > > > >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> > > > >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> > > >
> > > > Ah! Roman, could you please post the full boot log of a successful 4.12
> > > > boot?
> > > >
> > > > If it has a "Failed to allocate requested dom0 memory" message, then we
> > > > know what the issue is.
> > >
> > > Aha! Our messages seems to have crossed ;-) Full log is attached and
> > > yes -- that's
> > > the problem indeed.
> > >
> > > So at least that mystery is solved. But I'm still not able to get to a
> > > full 1G of memory
> > > even with your update to the device tree file. Any chance you can send me the
> > > device tree file that works for you?
> >
> > I didn't try on real hardware, I only tried on QEMU with a similar
> > configuration. I went back and check the HiKey device tree I used and it
> > is the same as yours (including the ramoops reserved-memory error).
> >
> > Apparently there are 1G and 2G variants of the HiKey, obviously both
> > yours and my device tree are for the 1G variant. I try to dig through
> > the docs but couldn't find the details of the 2G variant. I cannot find
> > anywhere the memory range for the top 1G of memory not even on the
> > LeMaker docs! :-/
> 
> Yup. That's exactly the issue on my end as well - can't seem to find an
> authoritative source for that devicetree.
> 
> I did find this, though:
>      https://releases.linaro.org/96boards/hikey/linaro/debian/15.11/
> which looks like it has the latest (at least file timestamp-wise) devicetree.
> 
> If you look at the memory and reserved memory nodes there, they
> are actually much simpler than what we've got:
> 
>         memory {
>                 device_type = "memory";
>                 reg = <0x0 0x0 0x0 0x40000000>;
>         };

Which is still 1G, but it is surprisingly simpler.


>         reserved-memory {
>                 #address-cells = <0x2>;
>                 #size-cells = <0x2>;
>                 ranges;
> 
>                 mcu-buf@05e00000 {
>                         no-map;
>                         reg = <0x0 0x5e00000 0x0 0x100000 0x0
> 0x740f000 0x0 0x1000>;
>                 };
> 
>                 mbox-buf@06dff000 {
>                         no-map;
>                         reg = <0x0 0x6dff000 0x0 0x1000>;
>                 };
>         };
> 
> So -- just on a whim -- I changed it to:
>     reg = <0x0 0x0 0x0 0x80000000>;

I would have tried that too :-)


> Interestingly enough, Xen booted, and complained about only 192MB
> unallocated this time.
> So, I dropped the size of Dom0 to 640M and I got it boot and here's
> what I'm seeing as
> an output of xl info:
>    total_memory           : 1120
>    free_memory            : 390
> It still nowhere close to 2G.
> 
> Then I booted the Linux kernel without Xen and it correctly identified
> all 2G worth of RAM, and in fact,

Good! We can work with that.



> when I converted /sys/firmware/devicetree/base back into dts, here's
> what I've got:
> 
>         memory {
>                 device_type = "memory";
>                 reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
> 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
> 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
> 0x1c000000>;
>         };
> 
>         reserved-memory {
>                 ranges;
>                 #size-cells = <0x2>;
>                 #address-cells = <0x2>;
> 
>                 ramoops@21f00000 {
>                         ftrace-size = <0x20000>;
>                         console-size = <0x20000>;
>                         reg = <0x0 0x21f00000 0x0 0x100000>;
>                         record-size = <0x20000>;
>                         compatible = "ramoops";
>                 };
> 
>                 linux,cma {
>                         linux,cma-default;
>                         reusable;
>                         size = <0x0 0x8000000>;
>                         compatible = "shared-dma-pool";
>                 };
>         };
> 
> If you look at the REG -- it does now add up to 2Gb,

I am a bit confused by this. I did the calculation twice and it is still
only 990MB. In fact, what you pasted here really looks like the old
device tree. Is it possible that you run the test with the old device
tree?


> but booting Xen
> with it has exactly theo
> same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;
> 
> I am attaching a full log, and I see the following in the logs:
> 
> (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
> (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
> (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
> (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
> 
> Which sort of makes sense, I guess -- but I still don't understand
> where all these ranges
> are coming from and how come Xen doesn't see the full 2Gb even with various
> devicetrees I tried.
> 
> Any ideas here would be greatly apprecaited!

I think you might have run the test with the old device tree by mistake?
If you are sure that Linux can boot OK with memory as:

  reg = <0x0 0x0 0x0 0x80000000>;

and correctly sees 2GB, then it should work with Xen too. In fact,
looking at the logs you pasted, the choice of memory for dom0:

  0x40000000-0x58000000
  0x7b000000-0x7c000000

means that Xen was succesfully able to see the RAM above 0x40000000!
So, it looked like it already worked some extent!

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  1:51               ` Stefano Stabellini
@ 2019-12-18  2:56                 ` Roman Shaposhnik
  2019-12-18  7:36                   ` Roman Shaposhnik
  2019-12-18 13:02                   ` Julien Grall
  0 siblings, 2 replies; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-18  2:56 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini, Julien Grall

[-- Attachment #1: Type: text/plain, Size: 8900 bytes --]

On Tue, Dec 17, 2019 at 5:51 PM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > On Tue, Dec 17, 2019 at 11:26 AM Stefano Stabellini
> > <sstabellini@kernel.org> wrote:
> > >
> > > On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > > > On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
> > > > <sstabellini@kernel.org> wrote:
> > > > >
> > > > > On Tue, 17 Dec 2019, Julien Grall wrote:
> > > > > > Hi,
> > > > > >
> > > > > > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > > > > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > > > > > <sstabellini@kernel.org> wrote:
> > > > > > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > > > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > > > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > > > > > on Xen 4.12... :-?
> > > > > > >
> > > > > > > That is a very interesting observation indeed! I actually don't
> > > > > > > remember where that device tree came from, but I think it was from one
> > > > > > > of the Linaro sites.
> > > > > >
> > > > > > This is mostly likely because of:
> > > > > >
> > > > > > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > > > > > Author: Julien Grall <julien.grall@arm.com>
> > > > > > Date:   Wed Aug 21 22:42:31 2019 +0100
> > > > > >
> > > > > >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> > > > > >
> > > > > >     Xen will only print a warning if there are memory unallocated when using
> > > > > >     1:1 mapping (only used by dom0). This also includes the case where no
> > > > > >     memory has been allocated.
> > > > > >
> > > > > >     It will bring to all sort of issues that can be hard to diagnostic for
> > > > > >     users (the warning can be difficult to spot or disregard).
> > > > > >
> > > > > >     If the users request 1GB of memory, then most likely they want the exact
> > > > > >     amount and not 512MB. So panic if all the memory has not been allocated.
> > > > > >
> > > > > >     After this change, the behavior is the same as for non-1:1 memory
> > > > > >     allocation (used by domU).
> > > > > >
> > > > > >     At the same time, reflow the message to have the format on a single
> > > > > >     line.
> > > > > >
> > > > > >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> > > > > >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> > > > >
> > > > > Ah! Roman, could you please post the full boot log of a successful 4.12
> > > > > boot?
> > > > >
> > > > > If it has a "Failed to allocate requested dom0 memory" message, then we
> > > > > know what the issue is.
> > > >
> > > > Aha! Our messages seems to have crossed ;-) Full log is attached and
> > > > yes -- that's
> > > > the problem indeed.
> > > >
> > > > So at least that mystery is solved. But I'm still not able to get to a
> > > > full 1G of memory
> > > > even with your update to the device tree file. Any chance you can send me the
> > > > device tree file that works for you?
> > >
> > > I didn't try on real hardware, I only tried on QEMU with a similar
> > > configuration. I went back and check the HiKey device tree I used and it
> > > is the same as yours (including the ramoops reserved-memory error).
> > >
> > > Apparently there are 1G and 2G variants of the HiKey, obviously both
> > > yours and my device tree are for the 1G variant. I try to dig through
> > > the docs but couldn't find the details of the 2G variant. I cannot find
> > > anywhere the memory range for the top 1G of memory not even on the
> > > LeMaker docs! :-/
> >
> > Yup. That's exactly the issue on my end as well - can't seem to find an
> > authoritative source for that devicetree.
> >
> > I did find this, though:
> >      https://releases.linaro.org/96boards/hikey/linaro/debian/15.11/
> > which looks like it has the latest (at least file timestamp-wise) devicetree.
> >
> > If you look at the memory and reserved memory nodes there, they
> > are actually much simpler than what we've got:
> >
> >         memory {
> >                 device_type = "memory";
> >                 reg = <0x0 0x0 0x0 0x40000000>;
> >         };
>
> Which is still 1G, but it is surprisingly simpler.
>
>
> >         reserved-memory {
> >                 #address-cells = <0x2>;
> >                 #size-cells = <0x2>;
> >                 ranges;
> >
> >                 mcu-buf@05e00000 {
> >                         no-map;
> >                         reg = <0x0 0x5e00000 0x0 0x100000 0x0
> > 0x740f000 0x0 0x1000>;
> >                 };
> >
> >                 mbox-buf@06dff000 {
> >                         no-map;
> >                         reg = <0x0 0x6dff000 0x0 0x1000>;
> >                 };
> >         };
> >
> > So -- just on a whim -- I changed it to:
> >     reg = <0x0 0x0 0x0 0x80000000>;
>
> I would have tried that too :-)
>
>
> > Interestingly enough, Xen booted, and complained about only 192MB
> > unallocated this time.
> > So, I dropped the size of Dom0 to 640M and I got it boot and here's
> > what I'm seeing as
> > an output of xl info:
> >    total_memory           : 1120
> >    free_memory            : 390
> > It still nowhere close to 2G.
> >
> > Then I booted the Linux kernel without Xen and it correctly identified
> > all 2G worth of RAM, and in fact,
>
> Good! We can work with that.

So that is, in fact, my first question -- why is Xen not showing
available memory in xl info?

> > when I converted /sys/firmware/devicetree/base back into dts, here's
> > what I've got:
> >
> >         memory {
> >                 device_type = "memory";
> >                 reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
> > 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
> > 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
> > 0x1c000000>;
> >         };
> >
> >         reserved-memory {
> >                 ranges;
> >                 #size-cells = <0x2>;
> >                 #address-cells = <0x2>;
> >
> >                 ramoops@21f00000 {
> >                         ftrace-size = <0x20000>;
> >                         console-size = <0x20000>;
> >                         reg = <0x0 0x21f00000 0x0 0x100000>;
> >                         record-size = <0x20000>;
> >                         compatible = "ramoops";
> >                 };
> >
> >                 linux,cma {
> >                         linux,cma-default;
> >                         reusable;
> >                         size = <0x0 0x8000000>;
> >                         compatible = "shared-dma-pool";
> >                 };
> >         };
> >
> > If you look at the REG -- it does now add up to 2Gb,
>
> I am a bit confused by this. I did the calculation twice and it is still
> only 990MB. In fact, what you pasted here really looks like the old
> device tree. Is it possible that you run the test with the old device
> tree?

There's something weird going on when it comes to Linux on this
box. Basically, it seems that regardless of what devicetree I pass,
Linux kernel seems to successfully discover all of 2G of memory.

For example, I'm attaching a Linux boot log that clearly shows:
   Memory: 1877336K/2062392K available
Even though I double checked that devicetree is only advertising 1G.

But see below for more on this:

> > but booting Xen
> > with it has exactly theo
> > same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;
> >
> > I am attaching a full log, and I see the following in the logs:
> >
> > (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
> > (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
> > (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
> > (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
> >
> > Which sort of makes sense, I guess -- but I still don't understand
> > where all these ranges
> > are coming from and how come Xen doesn't see the full 2Gb even with various
> > devicetrees I tried.
> >
> > Any ideas here would be greatly apprecaited!
>
> I think you might have run the test with the old device tree by mistake?
> If you are sure that Linux can boot OK with memory as:
>
>   reg = <0x0 0x0 0x0 0x80000000>;
>
> and correctly sees 2GB, then it should work with Xen too.

Well, that's the issue -- it seems that Linux somehow doesn't depend *at all*
on what I put in devicetrees -- it always detects full 2G.

> In fact, looking at the logs you pasted, the choice of memory for dom0:
>
>   0x40000000-0x58000000
>   0x7b000000-0x7c000000
>
> means that Xen was succesfully able to see the RAM above 0x40000000!
> So, it looked like it already worked some extent!

Exactly! That's the other surprising bit -- I noticed that too -- its not like
Xen doesn't see any of the memory above 1G -- it just doesn't see enough of it.

So the question is -- what is Linux doing that Xen doesn't?

Thanks,
Roman.

[-- Attachment #2: linux.log --]
[-- Type: application/octet-stream, Size: 24830 bytes --]

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd033]
[    0.000000] Linux version 4.19.5 (root@350845ae5335) (gcc version 6.3.0 (Alpine 6.3.0)) #1 SMP PREEMPT Sat Sep 7 06:30:56 UTC 2019
[    0.000000] Machine model: HiKey Development Board
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: EFI v2.40 by Linaro HiKey EFI Nov 28 2015 10:50:07
[    0.000000] efi:
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000072c00000, size 128 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x7ff28680-0x7ff29e3f]
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000005dfffff]
[    0.000000]   node   0: [mem 0x0000000005f00000-0x0000000006dfefff]
[    0.000000]   node   0: [mem 0x0000000006e00000-0x000000000740efff]
[    0.000000]   node   0: [mem 0x0000000007410000-0x0000000034ffffff]
[    0.000000]   node   0: [mem 0x00000000350f0000-0x000000003dffffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000007ff6dfff]
[    0.000000]   node   0: [mem 0x000000007ff6e000-0x000000007fffefff]
[    0.000000]   node   0: [mem 0x000000007ffff000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000007fffffff]
[    0.000000] On node 0 totalpages: 515598
[    0.000000]   DMA32 zone: 8192 pages used for memmap
[    0.000000]   DMA32 zone: 0 pages reserved
[    0.000000]   DMA32 zone: 515598 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x414 with crng_init=0
[    0.000000] percpu: Embedded 23 pages/cpu @(____ptrval____) s56664 r8192 d29352 u94208
[    0.000000] pcpu-alloc: s56664 r8192 d29352 u94208 alloc=23*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 843419
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 507406
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/kernel console=ttyAMA0 console=ttyAMA1 console=ttyAMA2 console=ttyAMA3 root=PARTUUID=f71bd987-d99a-4c88-9781-cf4c26cae55e rootdelay=3
[    0.000000] Memory: 1877336K/2062392K available (10108K kernel code, 1676K rwdata, 5016K rodata, 1280K init, 376K bss, 53984K reserved, 131072K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=8.
[    0.000000] 	Tasks RCU enabled.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 99544814920 ns
[    0.000005] sched_clock: 32 bits at 19MHz, resolution 52ns, wraps every 111848106981ns
[    0.000365] arch_timer: cp15 timer(s) running at 1.20MHz (phys).
[    0.000373] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x11b661f8e, max_idle_ns: 1763180809113 ns
[    0.000589] Console: colour dummy device 80x25
[    0.000666] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.40 BogoMIPS (lpj=4800)
[    0.000676] pid_max: default: 32768 minimum: 301
[    0.000743] Security Framework initialized
[    0.001397] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.001724] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.001759] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.001775] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.024371] ASID allocator initialised with 32768 entries
[    0.032370] rcu: Hierarchical SRCU implementation.
[    0.044499] Remapping and enabling EFI services.
[    0.052444] smp: Bringing up secondary CPUs ...
[    0.084735] Detected VIPT I-cache on CPU1
[    0.084789] CPU1: Booted secondary processor 0x0000000001 [0x410fd033]
[    0.116824] Detected VIPT I-cache on CPU2
[    0.116871] CPU2: Booted secondary processor 0x0000000103 [0x410fd033]
[    0.148820] Detected VIPT I-cache on CPU3
[    0.148845] CPU3: Booted secondary processor 0x0000000101 [0x410fd033]
[    0.180884] Detected VIPT I-cache on CPU4
[    0.180913] CPU4: Booted secondary processor 0x0000000002 [0x410fd033]
[    0.212960] Detected VIPT I-cache on CPU5
[    0.212986] CPU5: Booted secondary processor 0x0000000102 [0x410fd033]
[    0.245027] Detected VIPT I-cache on CPU6
[    0.245051] CPU6: Booted secondary processor 0x0000000100 [0x410fd033]
[    0.277091] Detected VIPT I-cache on CPU7
[    0.277119] CPU7: Booted secondary processor 0x0000000003 [0x410fd033]
[    0.277190] smp: Brought up 1 node, 8 CPUs
[    0.277225] SMP: Total of 8 processors activated.
[    0.277232] CPU features: detected: 32-bit EL0 Support
[    0.281383] CPU: All CPU(s) started at EL2
[    0.281422] alternatives: patching kernel code
[    0.282605] devtmpfs: initialized
[    0.288321] Registered cp15_barrier emulation handler
[    0.288338] Registered setend emulation handler
[    0.288643] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.288701] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    0.292354] pinctrl core: initialized pinctrl subsystem
[    0.294174] DMI not present or invalid.
[    0.294548] NET: Registered protocol family 16
[    0.295000] audit: initializing netlink subsys (disabled)
[    0.295106] audit: type=2000 audit(0.292:1): state=initialized audit_enabled=0 res=1
[    0.296670] cpuidle: using governor menu
[    0.297005] vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
[    0.297015] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.305904] DMA: preallocated 256 KiB pool for atomic allocations
[    0.307316] Serial: AMBA PL011 UART driver
[    0.310141] hi6220-mbox f7510000.mailbox: Mailbox enabled
[    0.316955] OF: amba_device_add() failed (-19) for /soc/uart@f7111000
[    0.318179] f8015000.uart: ttyAMA0 at MMIO 0xf8015000 (irq = 41, base_baud = 0) is a PL011 rev2
[    0.911656] console [ttyAMA0] enabled
[    0.927357] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.934505] cryptd: max_cpu_qlen set to 1000
[    0.939719] ACPI: Interpreter disabled.
[    0.945182] vgaarb: loaded
[    0.948474] SCSI subsystem initialized
[    0.952483] libata version 3.00 loaded.
[    0.952837] usbcore: registered new interface driver usbfs
[    0.958386] usbcore: registered new interface driver hub
[    0.963795] usbcore: registered new device driver usb
[    0.969888] pps_core: LinuxPPS API ver. 1 registered
[    0.974876] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.984037] PTP clock support registered
[    0.988108] EDAC MC: Ver: 3.0.0
[    0.991578] Registered efivars operations
[    0.997298] clocksource: Switched to clocksource arch_sys_counter
[    1.003598] VFS: Disk quotas dquot_6.6.0
[    1.007576] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.014599] pnp: PnP ACPI: disabled
[    1.024490] NET: Registered protocol family 2
[    1.029356] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes)
[    1.037311] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    1.044687] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    1.051517] TCP: Hash tables configured (established 16384 bind 16384)
[    1.058157] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    1.064234] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    1.070843] NET: Registered protocol family 1
[    1.075237] PCI: CLS 0 bytes, default 64
[    1.076152] kvm [1]: 8-bit VMID
[    1.080050] kvm [1]: vgic interrupt IRQ1
[    1.084184] kvm [1]: Hyp mode initialized successfully
[    1.092769] Initialise system trusted keyrings
[    1.097385] workingset: timestamp_bits=44 max_order=19 bucket_order=0
[    1.109696] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.116049] 9p: Installing v9fs 9p2000 file system support
[    1.121626] pstore: using deflate compression
[    1.128782] Key type asymmetric registered
[    1.132900] Asymmetric key parser 'x509' registered
[    1.137838] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    1.145400] io scheduler noop registered
[    1.149332] io scheduler deadline registered
[    1.153749] io scheduler cfq registered (default)
[    1.158463] io scheduler mq-deadline registered
[    1.163006] io scheduler kyber registered
[    1.170982] pinctrl-single f7010000.pinmux: 159 pins, size 636
[    1.177206] pinctrl-single f8001800.pinmux: 30 pins, size 120
[    1.183389] pinctrl-single f7010800.pinmux: 163 pins, size 652
[    1.191439] pl061_gpio f702f000.gpio: PL061 GPIO chip @0x00000000f702f000 registered
[    1.199463] pl061_gpio f702c000.gpio: PL061 GPIO chip @0x00000000f702c000 registered
[    1.207475] pl061_gpio f7029000.gpio: PL061 GPIO chip @0x00000000f7029000 registered
[    1.215467] pl061_gpio f7026000.gpio: PL061 GPIO chip @0x00000000f7026000 registered
[    1.223474] pl061_gpio f7023000.gpio: PL061 GPIO chip @0x00000000f7023000 registered
[    1.231456] pl061_gpio f8013000.gpio: PL061 GPIO chip @0x00000000f8013000 registered
[    1.239453] pl061_gpio f7020000.gpio: PL061 GPIO chip @0x00000000f7020000 registered
[    1.247444] pl061_gpio f702e000.gpio: PL061 GPIO chip @0x00000000f702e000 registered
[    1.255448] pl061_gpio f702b000.gpio: PL061 GPIO chip @0x00000000f702b000 registered
[    1.263437] pl061_gpio f7028000.gpio: PL061 GPIO chip @0x00000000f7028000 registered
[    1.271433] pl061_gpio f7025000.gpio: PL061 GPIO chip @0x00000000f7025000 registered
[    1.279436] pl061_gpio f7022000.gpio: PL061 GPIO chip @0x00000000f7022000 registered
[    1.287441] pl061_gpio f8012000.gpio: PL061 GPIO chip @0x00000000f8012000 registered
[    1.295437] pl061_gpio f702d000.gpio: PL061 GPIO chip @0x00000000f702d000 registered
[    1.303449] pl061_gpio f702a000.gpio: PL061 GPIO chip @0x00000000f702a000 registered
[    1.311441] pl061_gpio f7027000.gpio: PL061 GPIO chip @0x00000000f7027000 registered
[    1.319311] gpio gpiochip16: names 9 do not match number of GPIOs 8
[    1.325747] pl061_gpio f7024000.gpio: PL061 GPIO chip @0x00000000f7024000 registered
[    1.333606] gpio gpiochip17: names 9 do not match number of GPIOs 8
[    1.340029] pl061_gpio f8014000.gpio: PL061 GPIO chip @0x00000000f8014000 registered
[    1.348046] pl061_gpio f7021000.gpio: PL061 GPIO chip @0x00000000f7021000 registered
[    1.356041] pl061_gpio f8011000.gpio: PL061 GPIO chip @0x00000000f8011000 registered
[    1.366324] EINJ: ACPI disabled.
[    1.373767] k3-dma f7370000.dma: initialized
[    1.383969] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.392344] SuperH (H)SCI(F) driver initialized
[    1.397313] msm_serial: driver initialized
[    1.409695] loop: module loaded
[    1.414718] VDD_3V3: supplied by SYS_5V
[    1.424184] libphy: Fixed MDIO Bus: probed
[    1.428758] tun: Universal TUN/TAP device driver, 1.6
[    1.434565] usbcore: registered new interface driver asix
[    1.440032] usbcore: registered new interface driver ax88179_178a
[    1.446288] VFIO - User Level meta-driver version: 0.3
[    1.452172] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.458741] ehci-pci: EHCI PCI platform driver
[    1.463245] ehci-platform: EHCI generic platform driver
[    1.468603] ehci-orion: EHCI orion driver
[    1.472705] ehci-exynos: EHCI EXYNOS driver
[    1.476968] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.483167] ohci-pci: OHCI PCI platform driver
[    1.487670] ohci-platform: OHCI generic platform driver
[    1.492999] ohci-exynos: OHCI EXYNOS driver
[    1.497646] usbcore: registered new interface driver usb-storage
[    1.503761] usbcore: registered new interface driver usbserial_generic
[    1.510324] usbserial: USB Serial support registered for generic
[    1.517162] input: HISI 65xx PowerOn Key as /devices/platform/f8000000.pmic/hi65xx-powerkey.0.auto/input/input0
[    1.528754] rtc-pl031 f8004000.rtc: rtc core: registered pl031 as rtc0
[    1.535614] rtc-pl031 f8003000.rtc: rtc core: registered pl031 as rtc1
[    1.542760] i2c /dev entries driver
[    1.548155] WARNING: CPU: 1 PID: 1 at arch/arm64/mm/ioremap.c:58 __ioremap_caller+0xd0/0xe0
[    1.556510] Modules linked in:
[    1.559567] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.19.5 #1
[    1.565482] Hardware name: HiKey Development Board (DT)
[    1.570704] pstate: 80000005 (Nzcv daif -PAN -UAO)
[    1.575494] pc : __ioremap_caller+0xd0/0xe0
[    1.579676] lr : __ioremap_caller+0x54/0xe0
[    1.583853] sp : ffff0000080639c0
[    1.587162] x29: ffff0000080639c0 x28: 0000000000000000
[    1.592474] x27: ffff000009002068 x26: ffff000008f426b0
[    1.597787] x25: ffff000008f50630 x24: 0000000000000000
[    1.603098] x23: 00e8000000000f07 x22: ffff00000865ea08
[    1.608409] x21: 0000000000000000 x20: 0000000005f01000
[    1.613719] x19: 0000000000001000 x18: ffffffffffffffff
[    1.619029] x17: 0000000000000000 x16: 0000000000000016
[    1.624342] x15: ffff0000090996c8 x14: ffff80007cf94d0a
[    1.629654] x13: ffff80007cf94d09 x12: 0000000000000030
[    1.634965] x11: 0000000000000018 x10: 0101010101010101
[    1.640274] x9 : 0000000000000003 x8 : 0000000000eff000
[    1.645585] x7 : 0000000000000018 x6 : ffff000009267f90
[    1.650897] x5 : 0000000000000002 x4 : 0000000000000002
[    1.656210] x3 : 0000000006dff000 x2 : ffff000009267fa8
[    1.661522] x1 : 0000000000000001 x0 : 0000000000000001
[    1.666832] Call trace:
[    1.669276]  __ioremap_caller+0xd0/0xe0
[    1.673108]  __ioremap+0x10/0x18
[    1.676335]  of_syscon_register+0xe0/0x2f0
[    1.680428]  syscon_node_to_regmap+0x74/0xc0
[    1.684697]  syscon_reboot_mode_probe+0x58/0x118
[    1.689312]  platform_drv_probe+0x50/0xb0
[    1.693319]  really_probe+0x1ec/0x3c0
[    1.696980]  driver_probe_device+0x124/0x148
[    1.701249]  __driver_attach+0x134/0x138
[    1.705172]  bus_for_each_dev+0x68/0xc8
[    1.709002]  driver_attach+0x20/0x28
[    1.712575]  bus_add_driver+0x1b8/0x298
[    1.716408]  driver_register+0x60/0x110
[    1.720239]  __platform_driver_register+0x44/0x50
[    1.724944]  syscon_reboot_mode_driver_init+0x18/0x20
[    1.729993]  do_one_initcall+0x58/0x170
[    1.733828]  kernel_init_freeable+0x194/0x23c
[    1.738185]  kernel_init+0x10/0x108
[    1.741673]  ret_from_fork+0x10/0x18
[    1.745250] ---[ end trace f40323267650f3ae ]---
[    1.749904] syscon-reboot-mode: probe of 5f01000.reboot-mode-syscon:reboot-mode failed with error -12
[    1.761192] sp805-wdt f8005000.watchdog: registration successful
[    1.770600] sdhci: Secure Digital Host Controller Interface driver
[    1.776812] sdhci: Copyright(c) Pierre Ossman
[    1.781520] Synopsys Designware Multimedia Card Interface Driver
[    1.788277] dwmmc_k3 f723f000.dwmmc2: fifo-depth property not found, using value of FIFOTH register as default
[    1.798409] dwmmc_k3 f723f000.dwmmc2: IDMAC supports 32-bit address mode.
[    1.806281] dwmmc_k3 f723f000.dwmmc2: Using internal DMA controller.
[    1.812655] dwmmc_k3 f723f000.dwmmc2: Version ID is 250a
[    1.818023] dwmmc_k3 f723f000.dwmmc2: DW MMC controller at irq 13,32 bit host data width,128 deep fifo
[    1.827444] dwmmc_k3 f723f000.dwmmc2: Linked as a consumer to regulator.1
[    1.834312] dwmmc_k3 f723f000.dwmmc2: allocated mmc-pwrseq
[    1.839835] mmc_host mmc0: card is non-removable.
[    1.857829] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.881539] dwmmc_k3 f723e000.dwmmc1: fifo-depth property not found, using value of FIFOTH register as default
[    1.893123] dwmmc_k3 f723e000.dwmmc1: IDMAC supports 32-bit address mode.
[    1.898754] dwmmc_k3 f723f000.dwmmc2: card claims to support voltages below defined range
[    1.908499] dwmmc_k3 f723e000.dwmmc1: Using internal DMA controller.
[    1.914889] dwmmc_k3 f723e000.dwmmc1: Version ID is 250a
[    1.920281] dwmmc_k3 f723e000.dwmmc1: DW MMC controller at irq 21,32 bit host data width,128 deep fifo
[    1.929703] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.5
[    1.936563] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.4
[    1.937214] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    1.943442] dwmmc_k3 f723e000.dwmmc1: Got CD GPIO
[    1.959235] mmc0: new SDIO card at address 0001
[    1.970930] mmc_host mmc1: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.995834] dwmmc_k3 f723d000.dwmmc0: fifo-depth property not found, using value of FIFOTH register as default
[    2.008126] dwmmc_k3 f723d000.dwmmc0: IDMAC supports 32-bit address mode.
[    2.015965] dwmmc_k3 f723d000.dwmmc0: Using internal DMA controller.
[    2.022377] dwmmc_k3 f723d000.dwmmc0: Version ID is 250a
[    2.027768] dwmmc_k3 f723d000.dwmmc0: DW MMC controller at irq 22,32 bit host data width,256 deep fifo
[    2.037331] dwmmc_k3 f723d000.dwmmc0: Linked as a consumer to regulator.10
[    2.044312] mmc_host mmc2: card is non-removable.
[    2.064352] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    2.090718] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.100496] ledtrig-cpu: registered to indicate activity on CPUs
[    2.107761] usbcore: registered new interface driver usbhid
[    2.113377] usbhid: USB HID core driver
[    2.119035] optee: probing for conduit method from DT.
[    2.124226] optee: revision 1.0
[    2.124232] optee: api revision mismatch
[    2.132026] NET: Registered protocol family 10
[    2.137595] Segment Routing with IPv6
[    2.141397] NET: Registered protocol family 17
[    2.145885] 9pnet: Installing 9P2000 support
[    2.150249] Key type dns_resolver registered
[    2.155863] registered taskstats version 1
[    2.159987] Loading compiled-in X.509 certificates
[    2.170338] f7113000.uart: ttyAMA3 at MMIO 0xf7113000 (irq = 9, base_baud = 0) is a PL011 rev2
[    2.179853] f7112000.uart: ttyAMA2 at MMIO 0xf7112000 (irq = 24, base_baud = 0) is a PL011 rev2
[    2.189395] 5V_HUB: supplied by SYS_5V
[    2.193570] ssp-pl022 f7106000.spi: ARM PL022 driver, device ID: 0x00041022
[    2.200685] ssp-pl022 f7106000.spi: mapped registers from 0x00000000f7106000 to (____ptrval____)
[    2.209551] ssp-pl022 f7106000.spi: setup for DMA on RX dma0chan0, TX dma0chan1
[    2.220803] phy phy-soc:usbphy.0: Linked as a consumer to regulator.13
[    2.228104] mmc_host mmc2: Bus speed (slot 0) = 198400000Hz (slot req 200000000Hz, actual 198400000HZ div = 0)
[    2.238625] dwc2 f72c0000.usb: f72c0000.usb supply vusb_d not found, using dummy regulator
[    2.246963] dwc2 f72c0000.usb: Linked as a consumer to regulator.0
[    2.253175] dwc2 f72c0000.usb: f72c0000.usb supply vusb_a not found, using dummy regulator
[    2.261696] mmc2: new HS200 MMC card at address 0001
[    2.267511] mmcblk2: mmc2:0001 8GND3R 7.28 GiB
[    2.272675] mmcblk2boot0: mmc2:0001 8GND3R partition 1 4.00 MiB
[    2.279225] mmcblk2boot1: mmc2:0001 8GND3R partition 2 4.00 MiB
[    2.285497] mmcblk2rpmb: mmc2:0001 8GND3R partition 3 512 KiB, chardev (239:0)
[    2.298967] random: fast init done
[    2.303494]  mmcblk2: p1 p2 p3 p4 p5 p6 p7 p8 p11 p12 p13 p14 p19
[    2.470369] dwc2 f72c0000.usb: EPs: 16, dedicated fifos, 1920 entries in SPRAM
[    2.481583] dwc2 f72c0000.usb: DWC OTG Controller
[    2.486389] dwc2 f72c0000.usb: new USB bus registered, assigned bus number 1
[    2.493526] dwc2 f72c0000.usb: irq 15, io mem 0xf72c0000
[    2.500614] hub 1-0:1.0: USB hub found
[    2.504430] hub 1-0:1.0: 1 port detected
[    2.510923] rtc-pl031 f8004000.rtc: setting system clock to 1970-01-01 00:01:06 UTC (66)
[    2.519517] LDO2_2V8: disabling
[    2.522687] LDO7_SDIO: disabling
[    2.525953] LDO10_2V85: disabling
[    2.529270] LDO13_1V8: disabling
[    2.532510] LDO14_2V8: disabling
[    2.535749] LDO17_2V5: disabling
[    2.539410] uart-pl011 f8015000.uart: no DMA platform data
[    2.544975] Waiting 3 sec before mounting root device...
[    2.902164] dwc2 f72c0000.usb: Set speed to high-speed
[    2.907463] usb 1-1: new high-speed USB device number 2 using dwc2
[    3.102147] dwc2 f72c0000.usb: Set speed to high-speed
[    3.134486] hub 1-1:1.0: USB hub found
[    3.138621] hub 1-1:1.0: 3 ports detected
[    5.629170] VFS: Mounted root (squashfs filesystem) readonly on device 179:12.
[    5.640112] devtmpfs: mounted
[    5.643658] Freeing unused kernel memory: 1280K
[    5.648346] Run /sbin/init as init process
[    6.867253] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    6.963597] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    6.992755] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    7.094372] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    8.002589] uart-pl011 f7112000.uart: no DMA platform data
[    8.520368] uart-pl011 f7113000.uart: no DMA platform data
[   10.687626] FAT-fs (mmcblk2p14): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   12.191251] EXT4-fs (mmcblk2p19): mounted filesystem with ordered data mode. Opts: (null)
[   12.915328] random: rngd: uninitialized urandom read (8 bytes read)
[   12.921729] random: crng init done
[   13.493090] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   13.532140] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   13.539541] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   13.548225] cfg80211: failed to load regulatory.db
[   14.643845] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[   14.737903] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[   14.798563] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[   14.871919] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[   15.093055] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[   15.094361] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   15.101167] wlcore: WARNING Detected unconfigured mac address in nvs, derive from fuse instead.
[   15.120605] wlcore: WARNING This default nvs file can be removed from the file system
[   15.140956] Bridge firewalling registered
[   15.171440] wlcore: loaded
[   24.274274] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[   24.343979] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[   24.855506] wlcore: PHY firmware version: Rev 8.2.0.0.240
[   24.966927] wlcore: firmware booted (Rev 8.9.0.0.76)
[   25.026727] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   25.273553] usbcore: registered new interface driver qcserial
[   25.279451] usbserial: USB Serial support registered for Qualcomm USB modem
[   25.298713] usbcore: registered new interface driver cdc_wdm
[   26.069991] wlan0: authenticate with 7c:57:3c:d3:9b:41
[   26.079766] wlan0: send auth to 7c:57:3c:d3:9b:41 (try 1/3)
[   26.100015] wlan0: authenticated
[   26.105618] wlan0: associate with 7c:57:3c:d3:9b:41 (try 1/3)
[   26.116812] wlan0: RX AssocResp from 7c:57:3c:d3:9b:41 (capab=0x431 status=0 aid=1)
[   26.157936] wlcore: Association completed.
[   26.176111] wlan0: associated
[   26.193151] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

[-- Attachment #3: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  2:56                 ` Roman Shaposhnik
@ 2019-12-18  7:36                   ` Roman Shaposhnik
  2019-12-18 11:50                     ` Julien Grall
  2019-12-18 13:02                   ` Julien Grall
  1 sibling, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-18  7:36 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini, Julien Grall

On Tue, Dec 17, 2019 at 6:56 PM Roman Shaposhnik <roman@zededa.com> wrote:
>
> On Tue, Dec 17, 2019 at 5:51 PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
> >
> > On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > > On Tue, Dec 17, 2019 at 11:26 AM Stefano Stabellini
> > > <sstabellini@kernel.org> wrote:
> > > >
> > > > On Tue, 17 Dec 2019, Roman Shaposhnik wrote:
> > > > > On Tue, Dec 17, 2019 at 10:30 AM Stefano Stabellini
> > > > > <sstabellini@kernel.org> wrote:
> > > > > >
> > > > > > On Tue, 17 Dec 2019, Julien Grall wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > On 17/12/2019 04:39, Roman Shaposhnik wrote:
> > > > > > > > On Mon, Dec 16, 2019 at 6:55 PM Stefano Stabellini
> > > > > > > > <sstabellini@kernel.org> wrote:
> > > > > > > > > On Mon, 16 Dec 2019, Roman Shaposhnik wrote:
> > > > > > > > > If I sum all the memory sizes together I get 0x3ddfd000 which is 990M.
> > > > > > > > > If so, I wonder how you could boot succesfully with dom0_mem=1024M even
> > > > > > > > > on Xen 4.12... :-?
> > > > > > > >
> > > > > > > > That is a very interesting observation indeed! I actually don't
> > > > > > > > remember where that device tree came from, but I think it was from one
> > > > > > > > of the Linaro sites.
> > > > > > >
> > > > > > > This is mostly likely because of:
> > > > > > >
> > > > > > > commit 6341a674573f1834f083f0ab0f5b36b075f9e02e
> > > > > > > Author: Julien Grall <julien.grall@arm.com>
> > > > > > > Date:   Wed Aug 21 22:42:31 2019 +0100
> > > > > > >
> > > > > > >     xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
> > > > > > >
> > > > > > >     Xen will only print a warning if there are memory unallocated when using
> > > > > > >     1:1 mapping (only used by dom0). This also includes the case where no
> > > > > > >     memory has been allocated.
> > > > > > >
> > > > > > >     It will bring to all sort of issues that can be hard to diagnostic for
> > > > > > >     users (the warning can be difficult to spot or disregard).
> > > > > > >
> > > > > > >     If the users request 1GB of memory, then most likely they want the exact
> > > > > > >     amount and not 512MB. So panic if all the memory has not been allocated.
> > > > > > >
> > > > > > >     After this change, the behavior is the same as for non-1:1 memory
> > > > > > >     allocation (used by domU).
> > > > > > >
> > > > > > >     At the same time, reflow the message to have the format on a single
> > > > > > >     line.
> > > > > > >
> > > > > > >     Signed-off-by: Julien Grall <julien.grall@arm.com>
> > > > > > >     Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> > > > > >
> > > > > > Ah! Roman, could you please post the full boot log of a successful 4.12
> > > > > > boot?
> > > > > >
> > > > > > If it has a "Failed to allocate requested dom0 memory" message, then we
> > > > > > know what the issue is.
> > > > >
> > > > > Aha! Our messages seems to have crossed ;-) Full log is attached and
> > > > > yes -- that's
> > > > > the problem indeed.
> > > > >
> > > > > So at least that mystery is solved. But I'm still not able to get to a
> > > > > full 1G of memory
> > > > > even with your update to the device tree file. Any chance you can send me the
> > > > > device tree file that works for you?
> > > >
> > > > I didn't try on real hardware, I only tried on QEMU with a similar
> > > > configuration. I went back and check the HiKey device tree I used and it
> > > > is the same as yours (including the ramoops reserved-memory error).
> > > >
> > > > Apparently there are 1G and 2G variants of the HiKey, obviously both
> > > > yours and my device tree are for the 1G variant. I try to dig through
> > > > the docs but couldn't find the details of the 2G variant. I cannot find
> > > > anywhere the memory range for the top 1G of memory not even on the
> > > > LeMaker docs! :-/
> > >
> > > Yup. That's exactly the issue on my end as well - can't seem to find an
> > > authoritative source for that devicetree.
> > >
> > > I did find this, though:
> > >      https://releases.linaro.org/96boards/hikey/linaro/debian/15.11/
> > > which looks like it has the latest (at least file timestamp-wise) devicetree.
> > >
> > > If you look at the memory and reserved memory nodes there, they
> > > are actually much simpler than what we've got:
> > >
> > >         memory {
> > >                 device_type = "memory";
> > >                 reg = <0x0 0x0 0x0 0x40000000>;
> > >         };
> >
> > Which is still 1G, but it is surprisingly simpler.
> >
> >
> > >         reserved-memory {
> > >                 #address-cells = <0x2>;
> > >                 #size-cells = <0x2>;
> > >                 ranges;
> > >
> > >                 mcu-buf@05e00000 {
> > >                         no-map;
> > >                         reg = <0x0 0x5e00000 0x0 0x100000 0x0
> > > 0x740f000 0x0 0x1000>;
> > >                 };
> > >
> > >                 mbox-buf@06dff000 {
> > >                         no-map;
> > >                         reg = <0x0 0x6dff000 0x0 0x1000>;
> > >                 };
> > >         };
> > >
> > > So -- just on a whim -- I changed it to:
> > >     reg = <0x0 0x0 0x0 0x80000000>;
> >
> > I would have tried that too :-)
> >
> >
> > > Interestingly enough, Xen booted, and complained about only 192MB
> > > unallocated this time.
> > > So, I dropped the size of Dom0 to 640M and I got it boot and here's
> > > what I'm seeing as
> > > an output of xl info:
> > >    total_memory           : 1120
> > >    free_memory            : 390
> > > It still nowhere close to 2G.
> > >
> > > Then I booted the Linux kernel without Xen and it correctly identified
> > > all 2G worth of RAM, and in fact,
> >
> > Good! We can work with that.
>
> So that is, in fact, my first question -- why is Xen not showing
> available memory in xl info?
>
> > > when I converted /sys/firmware/devicetree/base back into dts, here's
> > > what I've got:
> > >
> > >         memory {
> > >                 device_type = "memory";
> > >                 reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
> > > 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
> > > 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
> > > 0x1c000000>;
> > >         };
> > >
> > >         reserved-memory {
> > >                 ranges;
> > >                 #size-cells = <0x2>;
> > >                 #address-cells = <0x2>;
> > >
> > >                 ramoops@21f00000 {
> > >                         ftrace-size = <0x20000>;
> > >                         console-size = <0x20000>;
> > >                         reg = <0x0 0x21f00000 0x0 0x100000>;
> > >                         record-size = <0x20000>;
> > >                         compatible = "ramoops";
> > >                 };
> > >
> > >                 linux,cma {
> > >                         linux,cma-default;
> > >                         reusable;
> > >                         size = <0x0 0x8000000>;
> > >                         compatible = "shared-dma-pool";
> > >                 };
> > >         };
> > >
> > > If you look at the REG -- it does now add up to 2Gb,
> >
> > I am a bit confused by this. I did the calculation twice and it is still
> > only 990MB. In fact, what you pasted here really looks like the old
> > device tree. Is it possible that you run the test with the old device
> > tree?
>
> There's something weird going on when it comes to Linux on this
> box. Basically, it seems that regardless of what devicetree I pass,
> Linux kernel seems to successfully discover all of 2G of memory.
>
> For example, I'm attaching a Linux boot log that clearly shows:
>    Memory: 1877336K/2062392K available
> Even though I double checked that devicetree is only advertising 1G.
>
> But see below for more on this:
>
> > > but booting Xen
> > > with it has exactly theo
> > > same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;
> > >
> > > I am attaching a full log, and I see the following in the logs:
> > >
> > > (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
> > > (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
> > > (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
> > > (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
> > >
> > > Which sort of makes sense, I guess -- but I still don't understand
> > > where all these ranges
> > > are coming from and how come Xen doesn't see the full 2Gb even with various
> > > devicetrees I tried.
> > >
> > > Any ideas here would be greatly apprecaited!
> >
> > I think you might have run the test with the old device tree by mistake?
> > If you are sure that Linux can boot OK with memory as:
> >
> >   reg = <0x0 0x0 0x0 0x80000000>;
> >
> > and correctly sees 2GB, then it should work with Xen too.
>
> Well, that's the issue -- it seems that Linux somehow doesn't depend *at all*
> on what I put in devicetrees -- it always detects full 2G.
>
> > In fact, looking at the logs you pasted, the choice of memory for dom0:
> >
> >   0x40000000-0x58000000
> >   0x7b000000-0x7c000000
> >
> > means that Xen was succesfully able to see the RAM above 0x40000000!
> > So, it looked like it already worked some extent!
>
> Exactly! That's the other surprising bit -- I noticed that too -- its not like
> Xen doesn't see any of the memory above 1G -- it just doesn't see enough of it.
>
> So the question is -- what is Linux doing that Xen doesn't?

By the way, speaking of running Xen under ARM/qemu -- here's an interesting
observation: when I run qemu-system-aarch64 with -m 4096 option it seems
that, again, Linux kernel is perfectly content with having access to 4G of RAM,
while Xen only sees about 2G.

This may actually have something to do with UEFI I guess.

Would be great to get to the bottom of this.

Thanks,
Roman.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  7:36                   ` Roman Shaposhnik
@ 2019-12-18 11:50                     ` Julien Grall
  2019-12-18 17:03                       ` Roman Shaposhnik
  0 siblings, 1 reply; 30+ messages in thread
From: Julien Grall @ 2019-12-18 11:50 UTC (permalink / raw)
  To: Roman Shaposhnik, Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini

Hi,

On 18/12/2019 07:36, Roman Shaposhnik wrote:
> On Tue, Dec 17, 2019 at 6:56 PM Roman Shaposhnik <roman@zededa.com> wrote:
>> Exactly! That's the other surprising bit -- I noticed that too -- its not like
>> Xen doesn't see any of the memory above 1G -- it just doesn't see enough of it.
>>
>> So the question is -- what is Linux doing that Xen doesn't?
> 
> By the way, speaking of running Xen under ARM/qemu -- here's an interesting
> observation: when I run qemu-system-aarch64 with -m 4096 option it seems
> that, again, Linux kernel is perfectly content with having access to 4G of RAM,
> while Xen only sees about 2G.

Linux and Xen should see close to the same amount as memory as long as 
you are using the same bootloader...

> 
> This may actually have something to do with UEFI I guess.

...  could you confirm whether you are booting Linux using UEFI or not?

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  0:04             ` Roman Shaposhnik
  2019-12-18  1:51               ` Stefano Stabellini
@ 2019-12-18 12:56               ` Julien Grall
  2019-12-18 17:09                 ` Roman Shaposhnik
  1 sibling, 1 reply; 30+ messages in thread
From: Julien Grall @ 2019-12-18 12:56 UTC (permalink / raw)
  To: Roman Shaposhnik, Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini

Hi,

On 18/12/2019 00:04, Roman Shaposhnik wrote:
>          memory {
>                  device_type = "memory";
>                  reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
> 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
> 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
> 0x1c000000>;
>          };
> 
>          reserved-memory {
>                  ranges;
>                  #size-cells = <0x2>;
>                  #address-cells = <0x2>;
> 
>                  ramoops@21f00000 {
>                          ftrace-size = <0x20000>;
>                          console-size = <0x20000>;
>                          reg = <0x0 0x21f00000 0x0 0x100000>;
>                          record-size = <0x20000>;
>                          compatible = "ramoops";
>                  };
> 
>                  linux,cma {
>                          linux,cma-default;
>                          reusable;
>                          size = <0x0 0x8000000>;
>                          compatible = "shared-dma-pool";
>                  };
>          };
> 
> If you look at the REG -- it does now add up to 2Gb, but booting Xen
> with it has exactly the
> same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;\

If you boot Xen using EFI, the memory information wil come from EFI and 
the DT node will be ignored. So unless UEFI is able to pick up the 
modification of the DT memory node, modifying the DT is not going to 
affect anything.

> 
> I am attaching a full log, and I see the following in the logs:
> 
> (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
> (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
> (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
> (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
> 
> Which sort of makes sense, I guess -- but I still don't understand
> where all these ranges
> are coming from and how come Xen doesn't see the full 2Gb even with various
> devicetrees I tried.

The range aboves describe the memory range given to Dom0. For all the 
memory given to Xen,m you want to look at the top of your log:

(XEN) Checking for initrd in /chosen
(XEN) RAM: 0000000000000000 - 0000000005dfffff
(XEN) RAM: 0000000005f00000 - 0000000006dfefff
(XEN) RAM: 0000000006e00000 - 000000000740efff
(XEN) RAM: 0000000007410000 - 000000001db8dfff
(XEN) RAM: 00000000350f0000 - 000000003dbd2fff
(XEN) RAM: 000000003dbd3000 - 000000003dffffff
(XEN) RAM: 0000000040000000 - 000000005a653fff
(XEN) RAM: 000000007ada0000 - 000000007ada3fff
(XEN) RAM: 000000007aea8000 - 000000007afa9fff
(XEN) RAM: 000000007afaa000 - 000000007ec73fff
(XEN) RAM: 000000007ec74000 - 000000007fdddfff
(XEN) RAM: 000000007fdde000 - 000000007fea5fff
(XEN) RAM: 000000007fea6000 - 000000007ff6dfff
(XEN) RAM: 000000007ffff000 - 000000007fffffff

Looking at the differences with the Linux logs, there is indeed some 
memory not detected by Xen.

On Xen, we only consider usuable memory any EFI description with 
EfiConventionalMemory, EfiBootServicesCode and EfiBootServicesData.

Linux include more type here, so this may explain why we see a difference.

While Looking at it, I have also noticed that we don't seem to care 
about the memory attribute. I suspect this could be another latent issue 
in Xen if the attribute does not match.

> 
> Any ideas here would be greatly apprecaited!
> 
> Thanks,
> Roman.
> 
> P.S. Any guess at what these mean?
> 
> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff87355558
> gva=0xffff872f2000 gpa=0x000000000f0000
> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffffb734e558
> gva=0xffffb72eb000 gpa=0x000000000f0000
> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff8f9d2558
> gva=0xffff8f96f000 gpa=0x000000000f0000

It means that Linux has tried to access something that has not been 
mapped in stage-2. As Dom0 is mapped 1:1, the GPA also give you the host 
physical address. In this case, it is trying to access 0xf0000.

This seems to belong to the RAM, but this part has not been allocated to 
Dom0.

You may get more information from Dom0 if you add earlycon=xenboot on 
your linux command line. This will give you some output using the 
earlyconsole before the console subsytem is actually initialize.

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18  2:56                 ` Roman Shaposhnik
  2019-12-18  7:36                   ` Roman Shaposhnik
@ 2019-12-18 13:02                   ` Julien Grall
  1 sibling, 0 replies; 30+ messages in thread
From: Julien Grall @ 2019-12-18 13:02 UTC (permalink / raw)
  To: Roman Shaposhnik, Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini



On 18/12/2019 02:56, Roman Shaposhnik wrote:
> On Tue, Dec 17, 2019 at 5:51 PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>>> Interestingly enough, Xen booted, and complained about only 192MB
>>> unallocated this time.
>>> So, I dropped the size of Dom0 to 640M and I got it boot and here's
>>> what I'm seeing as
>>> an output of xl info:
>>>     total_memory           : 1120
>>>     free_memory            : 390
>>> It still nowhere close to 2G.
>>>
>>> Then I booted the Linux kernel without Xen and it correctly identified
>>> all 2G worth of RAM, and in fact,
>>
>> Good! We can work with that.
> 
> So that is, in fact, my first question -- why is Xen not showing
> available memory in xl info?

I am not entirely sure what exact information you want.

The output you dumped above contain the available memory for the memory 
(see "free_memory").

Are you looking from something different?

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18 11:50                     ` Julien Grall
@ 2019-12-18 17:03                       ` Roman Shaposhnik
  2019-12-18 22:17                         ` Julien Grall
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-18 17:03 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

On Wed, Dec 18, 2019 at 3:50 AM Julien Grall <julien@xen.org> wrote:
>
> Hi,
>
> On 18/12/2019 07:36, Roman Shaposhnik wrote:
> > On Tue, Dec 17, 2019 at 6:56 PM Roman Shaposhnik <roman@zededa.com> wrote:
> >> Exactly! That's the other surprising bit -- I noticed that too -- its not like
> >> Xen doesn't see any of the memory above 1G -- it just doesn't see enough of it.
> >>
> >> So the question is -- what is Linux doing that Xen doesn't?
> >
> > By the way, speaking of running Xen under ARM/qemu -- here's an interesting
> > observation: when I run qemu-system-aarch64 with -m 4096 option it seems
> > that, again, Linux kernel is perfectly content with having access to 4G of RAM,
> > while Xen only sees about 2G.
>
> Linux and Xen should see close to the same amount as memory as long as
> you are using the same bootloader...

Thanks for confirming. This is what I'm trying to get to on this
thread. Any help
would be greatly appreciated!

> > This may actually have something to do with UEFI I guess.
>
> ...  could you confirm whether you are booting Linux using UEFI or not?

The boot sequence in both cases is:
   HiKey l-loader
   HiKey Tianocore EDK2 – UEFI
   GRUB (as a UEFI payload)
   Xen | Linux

GRUB's commands for booting Xen + Dom0:
    xen_hypervisor /boot/xen.efi console=dtuart   dom0_mem=640M
dom0_max_vcpus=1 dom0_vcpus_pin
    xen_module /boot/kernel console=hvc0 root=(hd1,gpt1)/rootfs.img text
    devicetree (hd1,gpt4)/eve.dtb
    xen_module (hd1,gpt1)/initrd.img

GRUB's commands for booting Linux only:
    linux /boot/kernel  console=ttyAMA0 console=ttyAMA1
console=ttyAMA2 console=ttyAMA3
root=PARTUUID=f71bd987-d99a-4c88-9781-cf4c26cae55e rootdelay=3
    devicetree (hd1,gpt4)/eve.dtb

So -- nothing boots directly by UEFI -- everything goes through GRUB.

However, my understanding is that GRUB will detect devicetree
information provided by UEFI (even though devicetree command is
supposed to completely replace that). Hence it is possible that Linux
relies on some residuals left in memory by GRUB that Xen doesn't pay
attention to (but this is a pretty wild speculation only).

Thanks,
Roman.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18 12:56               ` Julien Grall
@ 2019-12-18 17:09                 ` Roman Shaposhnik
  2019-12-18 22:40                   ` Julien Grall
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-18 17:09 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi,

On Wed, Dec 18, 2019 at 4:56 AM Julien Grall <julien@xen.org> wrote:
> > So that is, in fact, my first question -- why is Xen not showing
> > available memory in xl info?
>
> I am not entirely sure what exact information you want.
>
> The output you dumped above contain the available memory for the memory
> (see "free_memory").
>
> Are you looking from something different?

Just to be clear: I was giving 2G via devicetrees (the same device
trees that would
make Linux detect 2G of RAM) hence I was expecting xl info to show that. Instead
I only got 1120M shown by xl info.

> On 18/12/2019 00:04, Roman Shaposhnik wrote:
> >          memory {
> >                  device_type = "memory";
> >                  reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
> > 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
> > 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
> > 0x1c000000>;
> >          };
> >
> >          reserved-memory {
> >                  ranges;
> >                  #size-cells = <0x2>;
> >                  #address-cells = <0x2>;
> >
> >                  ramoops@21f00000 {
> >                          ftrace-size = <0x20000>;
> >                          console-size = <0x20000>;
> >                          reg = <0x0 0x21f00000 0x0 0x100000>;
> >                          record-size = <0x20000>;
> >                          compatible = "ramoops";
> >                  };
> >
> >                  linux,cma {
> >                          linux,cma-default;
> >                          reusable;
> >                          size = <0x0 0x8000000>;
> >                          compatible = "shared-dma-pool";
> >                  };
> >          };
> >
> > If you look at the REG -- it does now add up to 2Gb, but booting Xen
> > with it has exactly the
> > same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;\
>
> If you boot Xen using EFI, the memory information wil come from EFI and
> the DT node will be ignored. So unless UEFI is able to pick up the
> modification of the DT memory node, modifying the DT is not going to
> affect anything.

That's a good point, but given that I always go through GRUB, I was
expecting devicetree command to completely overshadow whatever
information UEFI may have. Am I wrong?

> > I am attaching a full log, and I see the following in the logs:
> >
> > (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
> > (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
> > (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
> > (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
> >
> > Which sort of makes sense, I guess -- but I still don't understand
> > where all these ranges
> > are coming from and how come Xen doesn't see the full 2Gb even with various
> > devicetrees I tried.
>
> The range aboves describe the memory range given to Dom0. For all the
> memory given to Xen,m you want to look at the top of your log:
>
> (XEN) Checking for initrd in /chosen
> (XEN) RAM: 0000000000000000 - 0000000005dfffff
> (XEN) RAM: 0000000005f00000 - 0000000006dfefff
> (XEN) RAM: 0000000006e00000 - 000000000740efff
> (XEN) RAM: 0000000007410000 - 000000001db8dfff
> (XEN) RAM: 00000000350f0000 - 000000003dbd2fff
> (XEN) RAM: 000000003dbd3000 - 000000003dffffff
> (XEN) RAM: 0000000040000000 - 000000005a653fff
> (XEN) RAM: 000000007ada0000 - 000000007ada3fff
> (XEN) RAM: 000000007aea8000 - 000000007afa9fff
> (XEN) RAM: 000000007afaa000 - 000000007ec73fff
> (XEN) RAM: 000000007ec74000 - 000000007fdddfff
> (XEN) RAM: 000000007fdde000 - 000000007fea5fff
> (XEN) RAM: 000000007fea6000 - 000000007ff6dfff
> (XEN) RAM: 000000007ffff000 - 000000007fffffff
>
> Looking at the differences with the Linux logs, there is indeed some
> memory not detected by Xen.
>
> On Xen, we only consider usuable memory any EFI description with
> EfiConventionalMemory, EfiBootServicesCode and EfiBootServicesData.
>
> Linux include more type here, so this may explain why we see a difference.
>
> While Looking at it, I have also noticed that we don't seem to care
> about the memory attribute. I suspect this could be another latent issue
> in Xen if the attribute does not match.

Anything I can do to help debug this? I can run any kind of debug builds, etc.
if needed.

I mean -- at this point it would be really great to get HiKey back to the status
of Xen-on-ARM developer board.

> > Any ideas here would be greatly apprecaited!
> >
> > Thanks,
> > Roman.
> >
> > P.S. Any guess at what these mean?
> >
> > (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff87355558
> > gva=0xffff872f2000 gpa=0x000000000f0000
> > (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffffb734e558
> > gva=0xffffb72eb000 gpa=0x000000000f0000
> > (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff8f9d2558
> > gva=0xffff8f96f000 gpa=0x000000000f0000
>
> It means that Linux has tried to access something that has not been
> mapped in stage-2. As Dom0 is mapped 1:1, the GPA also give you the host
> physical address. In this case, it is trying to access 0xf0000.
>
> This seems to belong to the RAM, but this part has not been allocated to
> Dom0.

Got it! Thank you! Am I correct in guessing that this can only come from
a driver of some sorts trying to tickle the hardware? IOW, I should be
looking for some abnormalities in my linux kernel messages to try and
see what this could be.

> You may get more information from Dom0 if you add earlycon=xenboot on
> your linux command line. This will give you some output using the
> earlyconsole before the console subsytem is actually initialize.

Will do!

Thanks,
Roman.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18 17:03                       ` Roman Shaposhnik
@ 2019-12-18 22:17                         ` Julien Grall
  2019-12-19  0:28                           ` Roman Shaposhnik
  0 siblings, 1 reply; 30+ messages in thread
From: Julien Grall @ 2019-12-18 22:17 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi Roman,

On 18/12/2019 17:03, Roman Shaposhnik wrote:
> On Wed, Dec 18, 2019 at 3:50 AM Julien Grall <julien@xen.org> wrote:
> So -- nothing boots directly by UEFI -- everything goes through GRUB.
> 
> However, my understanding is that GRUB will detect devicetree
> information provided by UEFI (even though devicetree command is
> supposed to completely replace that). Hence it is possible that Linux
> relies on some residuals left in memory by GRUB that Xen doesn't pay
> attention to (but this is a pretty wild speculation only).

While it goes through GRUB, it is a bootloader and will just act as a 
proxy for EFI. So EFI application such as Xen/Linux can still be loaded 
and take advantage of runtime servies if present/implemented.

In fact most of people on Arm are using GRUB rather than EFI directly as 
this is more friendly to use.

Regarding the devicetree, Xen and Linux will completely ignore the 
memory nodes in Xen if using EFI. This because the EFI memory map will 
give you an overview of the platform with the EFI regions included.

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18 17:09                 ` Roman Shaposhnik
@ 2019-12-18 22:40                   ` Julien Grall
  0 siblings, 0 replies; 30+ messages in thread
From: Julien Grall @ 2019-12-18 22:40 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi,

On 18/12/2019 17:09, Roman Shaposhnik wrote:
> Hi,
> 
> On Wed, Dec 18, 2019 at 4:56 AM Julien Grall <julien@xen.org> wrote:
>>> So that is, in fact, my first question -- why is Xen not showing
>>> available memory in xl info?
>>
>> I am not entirely sure what exact information you want.
>>
>> The output you dumped above contain the available memory for the memory
>> (see "free_memory").
>>
>> Are you looking from something different?
> 
> Just to be clear: I was giving 2G via devicetrees (the same device
> trees that would
> make Linux detect 2G of RAM) hence I was expecting xl info to show that. Instead
> I only got 1120M shown by xl info.
> 
>> On 18/12/2019 00:04, Roman Shaposhnik wrote:
>>>           memory {
>>>                   device_type = "memory";
>>>                   reg = <0x0 0x0 0x0 0x5e00000 0x0 0x5f00000 0x0 0x1000
>>> 0x0 0x5f02000 0x0 0xefd000 0x0 0x6e00000 0x0 0x60f000 0x0 0x7410000
>>> 0x0 0x1aaf0000 0x0 0x21f00000 0x0 0x100000 0x0 0x22000000 0x0
>>> 0x1c000000>;
>>>           };
>>>
>>>           reserved-memory {
>>>                   ranges;
>>>                   #size-cells = <0x2>;
>>>                   #address-cells = <0x2>;
>>>
>>>                   ramoops@21f00000 {
>>>                           ftrace-size = <0x20000>;
>>>                           console-size = <0x20000>;
>>>                           reg = <0x0 0x21f00000 0x0 0x100000>;
>>>                           record-size = <0x20000>;
>>>                           compatible = "ramoops";
>>>                   };
>>>
>>>                   linux,cma {
>>>                           linux,cma-default;
>>>                           reusable;
>>>                           size = <0x0 0x8000000>;
>>>                           compatible = "shared-dma-pool";
>>>                   };
>>>           };
>>>
>>> If you look at the REG -- it does now add up to 2Gb, but booting Xen
>>> with it has exactly the
>>> same effect as booting it with: reg = <0x0 0x0 0x0 0x80000000>;\
>>
>> If you boot Xen using EFI, the memory information wil come from EFI and
>> the DT node will be ignored. So unless UEFI is able to pick up the
>> modification of the DT memory node, modifying the DT is not going to
>> affect anything.
> 
> That's a good point, but given that I always go through GRUB, I was
> expecting devicetree command to completely overshadow whatever
> information UEFI may have. Am I wrong?

GRUB will load Xen/Linux as an EFI application. Both of them will ignore 
the memory nodes when booting using EFI. For more details, see the 
answer I wrote separately.


> 
>>> I am attaching a full log, and I see the following in the logs:
>>>
>>> (XEN) Allocating 1:1 mappings totalling 720MB for dom0:
>>> (XEN) BANK[0] 0x00000008000000-0x0000001c000000 (320MB)
>>> (XEN) BANK[1] 0x00000040000000-0x00000058000000 (384MB)
>>> (XEN) BANK[2] 0x0000007b000000-0x0000007c000000 (16MB)
>>>
>>> Which sort of makes sense, I guess -- but I still don't understand
>>> where all these ranges
>>> are coming from and how come Xen doesn't see the full 2Gb even with various
>>> devicetrees I tried.
>>
>> The range aboves describe the memory range given to Dom0. For all the
>> memory given to Xen,m you want to look at the top of your log:
>>
>> (XEN) Checking for initrd in /chosen
>> (XEN) RAM: 0000000000000000 - 0000000005dfffff
>> (XEN) RAM: 0000000005f00000 - 0000000006dfefff
>> (XEN) RAM: 0000000006e00000 - 000000000740efff
>> (XEN) RAM: 0000000007410000 - 000000001db8dfff
>> (XEN) RAM: 00000000350f0000 - 000000003dbd2fff
>> (XEN) RAM: 000000003dbd3000 - 000000003dffffff
>> (XEN) RAM: 0000000040000000 - 000000005a653fff
>> (XEN) RAM: 000000007ada0000 - 000000007ada3fff
>> (XEN) RAM: 000000007aea8000 - 000000007afa9fff
>> (XEN) RAM: 000000007afaa000 - 000000007ec73fff
>> (XEN) RAM: 000000007ec74000 - 000000007fdddfff
>> (XEN) RAM: 000000007fdde000 - 000000007fea5fff
>> (XEN) RAM: 000000007fea6000 - 000000007ff6dfff
>> (XEN) RAM: 000000007ffff000 - 000000007fffffff
>>
>> Looking at the differences with the Linux logs, there is indeed some
>> memory not detected by Xen.
>>
>> On Xen, we only consider usuable memory any EFI description with
>> EfiConventionalMemory, EfiBootServicesCode and EfiBootServicesData.
>>
>> Linux include more type here, so this may explain why we see a difference.
>>
>> While Looking at it, I have also noticed that we don't seem to care
>> about the memory attribute. I suspect this could be another latent issue
>> in Xen if the attribute does not match.
> 
> Anything I can do to help debug this? I can run any kind of debug builds, etc.
> if needed.

Thank you for the offer, I think I have a good understanding of the 
problem now. So debug should not be necessary.

However, I would appreciate if anyone could help to write a patch for it.

> 
> I mean -- at this point it would be really great to get HiKey back to the status
> of Xen-on-ARM developer board.
> 
>>> Any ideas here would be greatly apprecaited!
>>>
>>> Thanks,
>>> Roman.
>>>
>>> P.S. Any guess at what these mean?
>>>
>>> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff87355558
>>> gva=0xffff872f2000 gpa=0x000000000f0000
>>> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffffb734e558
>>> gva=0xffffb72eb000 gpa=0x000000000f0000
>>> (XEN) traps.c:1973:d0v0 HSR=0x93880006 pc=0x00ffff8f9d2558
>>> gva=0xffff8f96f000 gpa=0x000000000f0000
>>
>> It means that Linux has tried to access something that has not been
>> mapped in stage-2. As Dom0 is mapped 1:1, the GPA also give you the host
>> physical address. In this case, it is trying to access 0xf0000.
>>
>> This seems to belong to the RAM, but this part has not been allocated to
>> Dom0.
> 
> Got it! Thank you! Am I correct in guessing that this can only come from
> a driver of some sorts trying to tickle the hardware? IOW, I should be
> looking for some abnormalities in my linux kernel messages to try and
> see what this could be.

Xen will inject a data abort to the guest. So you should get a stack 
trace from Linux.

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-18 22:17                         ` Julien Grall
@ 2019-12-19  0:28                           ` Roman Shaposhnik
  2019-12-19  7:58                             ` Julien Grall
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-19  0:28 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi Julien! First of all -- thank you so much for detailed explanations
-- this is very much appreciated.

A few questions still (if you don't mind):

On Wed, Dec 18, 2019 at 2:17 PM Julien Grall <julien@xen.org> wrote:
>
> Hi Roman,
>
> On 18/12/2019 17:03, Roman Shaposhnik wrote:
> > On Wed, Dec 18, 2019 at 3:50 AM Julien Grall <julien@xen.org> wrote:
> > So -- nothing boots directly by UEFI -- everything goes through GRUB.
> >
> > However, my understanding is that GRUB will detect devicetree
> > information provided by UEFI (even though devicetree command is
> > supposed to completely replace that). Hence it is possible that Linux
> > relies on some residuals left in memory by GRUB that Xen doesn't pay
> > attention to (but this is a pretty wild speculation only).
>
> While it goes through GRUB, it is a bootloader and will just act as a
> proxy for EFI. So EFI application such as Xen/Linux can still be loaded
> and take advantage of runtime servies if present/implemented.

Aha! So then it depends on Xen actually using those EFI services. Which
leads to my first question:
   1. would it be possible to stay completely with just devicetrees information
       by passing efi=no-rs to Xen?

> In fact most of people on Arm are using GRUB rather than EFI directly as
> this is more friendly to use.
>
> Regarding the devicetree, Xen and Linux will completely ignore the
> memory nodes in Xen if using EFI. This because the EFI memory map will
> give you an overview of the platform with the EFI regions included.

Aha! So in that sense it is a bug in Xen after all, right? (that's what you're
referring to when you say you now understand what needs to get fixed).

Thanks,
Roman.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-19  0:28                           ` Roman Shaposhnik
@ 2019-12-19  7:58                             ` Julien Grall
  2019-12-20  0:01                               ` Stefano Stabellini
  0 siblings, 1 reply; 30+ messages in thread
From: Julien Grall @ 2019-12-19  7:58 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi Roman,

On 19/12/2019 00:28, Roman Shaposhnik wrote:
> On Wed, Dec 18, 2019 at 2:17 PM Julien Grall <julien@xen.org> wrote:
>>
>> Hi Roman,
>>
>> On 18/12/2019 17:03, Roman Shaposhnik wrote:
>>> On Wed, Dec 18, 2019 at 3:50 AM Julien Grall <julien@xen.org> wrote:
>>> So -- nothing boots directly by UEFI -- everything goes through GRUB.
>>>
>>> However, my understanding is that GRUB will detect devicetree
>>> information provided by UEFI (even though devicetree command is
>>> supposed to completely replace that). Hence it is possible that Linux
>>> relies on some residuals left in memory by GRUB that Xen doesn't pay
>>> attention to (but this is a pretty wild speculation only).
>>
>> While it goes through GRUB, it is a bootloader and will just act as a
>> proxy for EFI. So EFI application such as Xen/Linux can still be loaded
>> and take advantage of runtime servies if present/implemented.
> 
> Aha! So then it depends on Xen actually using those EFI services. Which
> leads to my first question:
>     1. would it be possible to stay completely with just devicetrees information
>         by passing efi=no-rs to Xen?
This will only disabled the runtime services (note that they are not 
supported on Xen on Arm today). What I described above is part of the 
boot services and can't be disabled.

Also, I am not entirely sure GRUB/EFI will update you device-tree to 
point out the memory that was carved out for things like ATF.

Looking at the DTS memory node you provided in another e-mail, it seems 
the memory map is slightly different.

> 
>> In fact most of people on Arm are using GRUB rather than EFI directly as
>> this is more friendly to use.
>>
>> Regarding the devicetree, Xen and Linux will completely ignore the
>> memory nodes in Xen if using EFI. This because the EFI memory map will
>> give you an overview of the platform with the EFI regions included.
> 
> Aha! So in that sense it is a bug in Xen after all, right? (that's what you're
> referring to when you say you now understand what needs to get fixed).

Yes. The EFI memory map is a list of existing memory with a type 
associated to it (Conventional, BootServiceCodes, MemoryMappedIO...).

The OS/Hypervisor will have to go through them and check which regions 
are usuable. Compare to Linux, Xen has limited itself to only a few types.

However, I think we can be on a par with Linux here.

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-19  7:58                             ` Julien Grall
@ 2019-12-20  0:01                               ` Stefano Stabellini
  2019-12-20  8:21                                 ` Julien Grall
  2019-12-21  1:37                                 ` Roman Shaposhnik
  0 siblings, 2 replies; 30+ messages in thread
From: Stefano Stabellini @ 2019-12-20  0:01 UTC (permalink / raw)
  To: Julien Grall
  Cc: xen-devel, Roman Shaposhnik, Stefano Stabellini, Stefano Stabellini

On Thu, 19 Dec 2019, Julien Grall wrote:
> > > In fact most of people on Arm are using GRUB rather than EFI directly as
> > > this is more friendly to use.
> > > 
> > > Regarding the devicetree, Xen and Linux will completely ignore the
> > > memory nodes in Xen if using EFI. This because the EFI memory map will
> > > give you an overview of the platform with the EFI regions included.
> > 
> > Aha! So in that sense it is a bug in Xen after all, right? (that's what
> > you're
> > referring to when you say you now understand what needs to get fixed).
> 
> Yes. The EFI memory map is a list of existing memory with a type associated to
> it (Conventional, BootServiceCodes, MemoryMappedIO...).
> 
> The OS/Hypervisor will have to go through them and check which regions are
> usuable. Compare to Linux, Xen has limited itself to only a few types.
> 
> However, I think we can be on a par with Linux here.

I gave a look at the Linux implementation, the interesting bit is
drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
I also gave a look at the Xen side, which is
xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
the two are not quite the same.

One of the main differences is that Linux uses as "System RAM" even
regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
do that unless map_bs is set.

I wrote a quick patch to implement the Linux behavior on Xen, only
lightly tested. I can confirm that I see more memory this way. However,
I am not sure we actually want to import the Linux behavior wholesale.

Anyway, Roman, could you please let me know if this patch solves the
issue?



diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
index ca655ff003..ad18ff3669 100644
--- a/xen/arch/arm/efi/efi-boot.h
+++ b/xen/arch/arm/efi/efi-boot.h
@@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
 
     for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
     {
-        if ( desc_ptr->Type == EfiConventionalMemory ||
-             (!map_bs &&
-              (desc_ptr->Type == EfiBootServicesCode ||
-               desc_ptr->Type == EfiBootServicesData)) )
+        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&
+             (desc_ptr->Type == EfiConventionalMemory ||
+              desc_ptr->Type == EfiLoaderCode ||
+              desc_ptr->Type == EfiLoaderData ||
+              desc_ptr->Type == EfiACPIReclaimMemory ||
+              desc_ptr->Type == EfiPersistentMemory ||
+              desc_ptr->Type == EfiBootServicesCode ||
+              desc_ptr->Type == EfiBootServicesData) )
         {
             if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
             {
diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
index 86a7e111bf..f46207840f 100644
--- a/xen/include/efi/efidef.h
+++ b/xen/include/efi/efidef.h
@@ -147,6 +147,7 @@ typedef enum {
     EfiMemoryMappedIO,
     EfiMemoryMappedIOPortSpace,
     EfiPalCode,
+    EfiPersistentMemory,
     EfiMaxMemoryType
 } EFI_MEMORY_TYPE;
 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-20  0:01                               ` Stefano Stabellini
@ 2019-12-20  8:21                                 ` Julien Grall
  2019-12-21  1:37                                 ` Roman Shaposhnik
  1 sibling, 0 replies; 30+ messages in thread
From: Julien Grall @ 2019-12-20  8:21 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Roman Shaposhnik, Stefano Stabellini

Hi,

On 20/12/2019 00:01, Stefano Stabellini wrote:
> On Thu, 19 Dec 2019, Julien Grall wrote:
>>>> In fact most of people on Arm are using GRUB rather than EFI directly as
>>>> this is more friendly to use.
>>>>
>>>> Regarding the devicetree, Xen and Linux will completely ignore the
>>>> memory nodes in Xen if using EFI. This because the EFI memory map will
>>>> give you an overview of the platform with the EFI regions included.
>>>
>>> Aha! So in that sense it is a bug in Xen after all, right? (that's what
>>> you're
>>> referring to when you say you now understand what needs to get fixed).
>>
>> Yes. The EFI memory map is a list of existing memory with a type associated to
>> it (Conventional, BootServiceCodes, MemoryMappedIO...).
>>
>> The OS/Hypervisor will have to go through them and check which regions are
>> usuable. Compare to Linux, Xen has limited itself to only a few types.
>>
>> However, I think we can be on a par with Linux here.
> 
> I gave a look at the Linux implementation, the interesting bit is
> drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
> I also gave a look at the Xen side, which is
> xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
> the two are not quite the same.
> 
> One of the main differences is that Linux uses as "System RAM" even
> regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
> EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
> do that unless map_bs is set.

Well, map_bs is used to request to map the boot services into Xen PT. In 
other words, you can't consider them as usuable if that option is set.

> 
> I wrote a quick patch to implement the Linux behavior on Xen, only
> lightly tested. I can confirm that I see more memory this way. However,
> I am not sure we actually want to import the Linux behavior wholesale.

This is not what I had in mind, we still need to keep Xen behavior for 
boot services and ensure the region are recorded/skipped as expected 
(see more below).

> 
> Anyway, Roman, could you please let me know if this patch solves the
> issue?
> 

Please see a couple of comments below.

> 
> 
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index ca655ff003..ad18ff3669 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
>   
>       for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
>       {
> -        if ( desc_ptr->Type == EfiConventionalMemory ||
> -             (!map_bs &&
> -              (desc_ptr->Type == EfiBootServicesCode ||
> -               desc_ptr->Type == EfiBootServicesData)) )
> +        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&

This is not quite the same as Linux. They use:

desc_ptr->Attribute & EFI_MEMORY_WB

But I don't see why Attribute should be strictly equal to EFI_MEMORY_WB.

> +             (desc_ptr->Type == EfiConventionalMemory ||
> +              desc_ptr->Type == EfiLoaderCode ||
> +              desc_ptr->Type == EfiLoaderData ||
> +              desc_ptr->Type == EfiACPIReclaimMemory ||

Linux will explictly reserve the ACPI region (see the caller of 
is_usable_memory()). For us this is done in the "else if" part.

> +              desc_ptr->Type == EfiPersistentMemory ||
> +              desc_ptr->Type == EfiBootServicesCode ||
> +              desc_ptr->Type == EfiBootServicesData) )
>           {
>               if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
>               {
> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
> index 86a7e111bf..f46207840f 100644
> --- a/xen/include/efi/efidef.h
> +++ b/xen/include/efi/efidef.h
> @@ -147,6 +147,7 @@ typedef enum {
>       EfiMemoryMappedIO,
>       EfiMemoryMappedIOPortSpace,
>       EfiPalCode,
> +    EfiPersistentMemory,
>       EfiMaxMemoryType
>   } EFI_MEMORY_TYPE;
>   
> 

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-20  0:01                               ` Stefano Stabellini
  2019-12-20  8:21                                 ` Julien Grall
@ 2019-12-21  1:37                                 ` Roman Shaposhnik
  2019-12-29 18:01                                   ` Julien Grall
  1 sibling, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-21  1:37 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini, Julien Grall

On Thu, Dec 19, 2019 at 4:01 PM Stefano Stabellini
<sstabellini@kernel.org> wrote:
>
> On Thu, 19 Dec 2019, Julien Grall wrote:
> > > > In fact most of people on Arm are using GRUB rather than EFI directly as
> > > > this is more friendly to use.
> > > >
> > > > Regarding the devicetree, Xen and Linux will completely ignore the
> > > > memory nodes in Xen if using EFI. This because the EFI memory map will
> > > > give you an overview of the platform with the EFI regions included.
> > >
> > > Aha! So in that sense it is a bug in Xen after all, right? (that's what
> > > you're
> > > referring to when you say you now understand what needs to get fixed).
> >
> > Yes. The EFI memory map is a list of existing memory with a type associated to
> > it (Conventional, BootServiceCodes, MemoryMappedIO...).
> >
> > The OS/Hypervisor will have to go through them and check which regions are
> > usuable. Compare to Linux, Xen has limited itself to only a few types.
> >
> > However, I think we can be on a par with Linux here.
>
> I gave a look at the Linux implementation, the interesting bit is
> drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
> I also gave a look at the Xen side, which is
> xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
> the two are not quite the same.
>
> One of the main differences is that Linux uses as "System RAM" even
> regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
> EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
> do that unless map_bs is set.
>
> I wrote a quick patch to implement the Linux behavior on Xen, only
> lightly tested. I can confirm that I see more memory this way. However,
> I am not sure we actually want to import the Linux behavior wholesale.
>
> Anyway, Roman, could you please let me know if this patch solves the
> issue?

Tried the attached patch -- but it seems I can't boot at all with this. Xen
doesn't print anything on the console either.

To Julien's point -- should I reduce the # of types and try again?

Thanks,
Roman.

>
>
>
> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> index ca655ff003..ad18ff3669 100644
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
>
>      for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
>      {
> -        if ( desc_ptr->Type == EfiConventionalMemory ||
> -             (!map_bs &&
> -              (desc_ptr->Type == EfiBootServicesCode ||
> -               desc_ptr->Type == EfiBootServicesData)) )
> +        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&
> +             (desc_ptr->Type == EfiConventionalMemory ||
> +              desc_ptr->Type == EfiLoaderCode ||
> +              desc_ptr->Type == EfiLoaderData ||
> +              desc_ptr->Type == EfiACPIReclaimMemory ||
> +              desc_ptr->Type == EfiPersistentMemory ||
> +              desc_ptr->Type == EfiBootServicesCode ||
> +              desc_ptr->Type == EfiBootServicesData) )
>          {
>              if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
>              {
> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
> index 86a7e111bf..f46207840f 100644
> --- a/xen/include/efi/efidef.h
> +++ b/xen/include/efi/efidef.h
> @@ -147,6 +147,7 @@ typedef enum {
>      EfiMemoryMappedIO,
>      EfiMemoryMappedIOPortSpace,
>      EfiPalCode,
> +    EfiPersistentMemory,
>      EfiMaxMemoryType
>  } EFI_MEMORY_TYPE;
>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-21  1:37                                 ` Roman Shaposhnik
@ 2019-12-29 18:01                                   ` Julien Grall
  2019-12-31  5:14                                     ` Roman Shaposhnik
  0 siblings, 1 reply; 30+ messages in thread
From: Julien Grall @ 2019-12-29 18:01 UTC (permalink / raw)
  To: Roman Shaposhnik, Stefano Stabellini; +Cc: xen-devel, Stefano Stabellini

Hi,

On 21/12/2019 01:37, Roman Shaposhnik wrote:
> On Thu, Dec 19, 2019 at 4:01 PM Stefano Stabellini
> <sstabellini@kernel.org> wrote:
>>
>> On Thu, 19 Dec 2019, Julien Grall wrote:
>>>>> In fact most of people on Arm are using GRUB rather than EFI directly as
>>>>> this is more friendly to use.
>>>>>
>>>>> Regarding the devicetree, Xen and Linux will completely ignore the
>>>>> memory nodes in Xen if using EFI. This because the EFI memory map will
>>>>> give you an overview of the platform with the EFI regions included.
>>>>
>>>> Aha! So in that sense it is a bug in Xen after all, right? (that's what
>>>> you're
>>>> referring to when you say you now understand what needs to get fixed).
>>>
>>> Yes. The EFI memory map is a list of existing memory with a type associated to
>>> it (Conventional, BootServiceCodes, MemoryMappedIO...).
>>>
>>> The OS/Hypervisor will have to go through them and check which regions are
>>> usuable. Compare to Linux, Xen has limited itself to only a few types.
>>>
>>> However, I think we can be on a par with Linux here.
>>
>> I gave a look at the Linux implementation, the interesting bit is
>> drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
>> I also gave a look at the Xen side, which is
>> xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
>> the two are not quite the same.
>>
>> One of the main differences is that Linux uses as "System RAM" even
>> regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
>> EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
>> do that unless map_bs is set.
>>
>> I wrote a quick patch to implement the Linux behavior on Xen, only
>> lightly tested. I can confirm that I see more memory this way. However,
>> I am not sure we actually want to import the Linux behavior wholesale.
>>
>> Anyway, Roman, could you please let me know if this patch solves the
>> issue?
> 
> Tried the attached patch -- but it seems I can't boot at all with this. Xen
> doesn't print anything on the console either.

Thank you for trying the patch. Do you have earlyprintk enabled for the 
hikey board?

> 
> To Julien's point -- should I reduce the # of types and try again?

 From my understanding, the field Attribute is a series of flag telling 
what the region can support.

So it would be possible to have other flags set at the same time as 
EFI_MEMORY_WC. However, the check in the patch below is an == equal and 
would potentially discard a lot of regions (if not all regions).

In other words...

>>
>>
>> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
>> index ca655ff003..ad18ff3669 100644
>> --- a/xen/arch/arm/efi/efi-boot.h
>> +++ b/xen/arch/arm/efi/efi-boot.h
>> @@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
>>
>>       for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
>>       {
>> -        if ( desc_ptr->Type == EfiConventionalMemory ||
>> -             (!map_bs &&
>> -              (desc_ptr->Type == EfiBootServicesCode ||
>> -               desc_ptr->Type == EfiBootServicesData)) )
>> +        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&

... this should be desc_ptr->Attribute & EFI_MEMORY_WB.

Can you give a spin with this change and see how far you can go?

>> +             (desc_ptr->Type == EfiConventionalMemory ||
>> +              desc_ptr->Type == EfiLoaderCode ||
>> +              desc_ptr->Type == EfiLoaderData ||
>> +              desc_ptr->Type == EfiACPIReclaimMemory ||
>> +              desc_ptr->Type == EfiPersistentMemory ||
>> +              desc_ptr->Type == EfiBootServicesCode ||
>> +              desc_ptr->Type == EfiBootServicesData) )
>>           {
>>               if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
>>               {
>> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
>> index 86a7e111bf..f46207840f 100644
>> --- a/xen/include/efi/efidef.h
>> +++ b/xen/include/efi/efidef.h
>> @@ -147,6 +147,7 @@ typedef enum {
>>       EfiMemoryMappedIO,
>>       EfiMemoryMappedIOPortSpace,
>>       EfiPalCode,
>> +    EfiPersistentMemory,
>>       EfiMaxMemoryType
>>   } EFI_MEMORY_TYPE;
>>

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-29 18:01                                   ` Julien Grall
@ 2019-12-31  5:14                                     ` Roman Shaposhnik
  2019-12-31 22:48                                       ` Roman Shaposhnik
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-31  5:14 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

Hi Julien,

On Sun, Dec 29, 2019 at 10:01 AM Julien Grall <julien@xen.org> wrote:
>
> Hi,
>
> On 21/12/2019 01:37, Roman Shaposhnik wrote:
> > On Thu, Dec 19, 2019 at 4:01 PM Stefano Stabellini
> > <sstabellini@kernel.org> wrote:
> >>
> >> On Thu, 19 Dec 2019, Julien Grall wrote:
> >>>>> In fact most of people on Arm are using GRUB rather than EFI directly as
> >>>>> this is more friendly to use.
> >>>>>
> >>>>> Regarding the devicetree, Xen and Linux will completely ignore the
> >>>>> memory nodes in Xen if using EFI. This because the EFI memory map will
> >>>>> give you an overview of the platform with the EFI regions included.
> >>>>
> >>>> Aha! So in that sense it is a bug in Xen after all, right? (that's what
> >>>> you're
> >>>> referring to when you say you now understand what needs to get fixed).
> >>>
> >>> Yes. The EFI memory map is a list of existing memory with a type associated to
> >>> it (Conventional, BootServiceCodes, MemoryMappedIO...).
> >>>
> >>> The OS/Hypervisor will have to go through them and check which regions are
> >>> usuable. Compare to Linux, Xen has limited itself to only a few types.
> >>>
> >>> However, I think we can be on a par with Linux here.
> >>
> >> I gave a look at the Linux implementation, the interesting bit is
> >> drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
> >> I also gave a look at the Xen side, which is
> >> xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
> >> the two are not quite the same.
> >>
> >> One of the main differences is that Linux uses as "System RAM" even
> >> regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
> >> EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
> >> do that unless map_bs is set.
> >>
> >> I wrote a quick patch to implement the Linux behavior on Xen, only
> >> lightly tested. I can confirm that I see more memory this way. However,
> >> I am not sure we actually want to import the Linux behavior wholesale.
> >>
> >> Anyway, Roman, could you please let me know if this patch solves the
> >> issue?
> >
> > Tried the attached patch -- but it seems I can't boot at all with this. Xen
> > doesn't print anything on the console either.
>
> Thank you for trying the patch. Do you have earlyprintk enabled for the
> hikey board?

No (since I thought it wasn't possible on ARM :-)) but now that you
mentioned it,
I've found this:
     http://xenbits.xenproject.org/docs/4.13-testing/misc/arm/early-printk.txt
and I'd be more than happy to try (hopefully CONFIG_EARLY_PRINTK= hikey960
will do the trick).

> > To Julien's point -- should I reduce the # of types and try again?
>
>  From my understanding, the field Attribute is a series of flag telling
> what the region can support.
>
> So it would be possible to have other flags set at the same time as
> EFI_MEMORY_WC. However, the check in the patch below is an == equal and
> would potentially discard a lot of regions (if not all regions).
>
> In other words...
>
> >>
> >>
> >> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> >> index ca655ff003..ad18ff3669 100644
> >> --- a/xen/arch/arm/efi/efi-boot.h
> >> +++ b/xen/arch/arm/efi/efi-boot.h
> >> @@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
> >>
> >>       for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
> >>       {
> >> -        if ( desc_ptr->Type == EfiConventionalMemory ||
> >> -             (!map_bs &&
> >> -              (desc_ptr->Type == EfiBootServicesCode ||
> >> -               desc_ptr->Type == EfiBootServicesData)) )
> >> +        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&
>
> ... this should be desc_ptr->Attribute & EFI_MEMORY_WB.
>
> Can you give a spin with this change and see how far you can go?

Aha! That makes much more sense -- will give it a try tomorrow
(in conjunction with earlyprintk)

Thanks,
Roman.

> >> +             (desc_ptr->Type == EfiConventionalMemory ||
> >> +              desc_ptr->Type == EfiLoaderCode ||
> >> +              desc_ptr->Type == EfiLoaderData ||
> >> +              desc_ptr->Type == EfiACPIReclaimMemory ||
> >> +              desc_ptr->Type == EfiPersistentMemory ||
> >> +              desc_ptr->Type == EfiBootServicesCode ||
> >> +              desc_ptr->Type == EfiBootServicesData) )
> >>           {
> >>               if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
> >>               {
> >> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
> >> index 86a7e111bf..f46207840f 100644
> >> --- a/xen/include/efi/efidef.h
> >> +++ b/xen/include/efi/efidef.h
> >> @@ -147,6 +147,7 @@ typedef enum {
> >>       EfiMemoryMappedIO,
> >>       EfiMemoryMappedIOPortSpace,
> >>       EfiPalCode,
> >> +    EfiPersistentMemory,
> >>       EfiMaxMemoryType
> >>   } EFI_MEMORY_TYPE;
> >>
>
> Cheers,
>
> --
> Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-31  5:14                                     ` Roman Shaposhnik
@ 2019-12-31 22:48                                       ` Roman Shaposhnik
  2020-01-01 13:26                                         ` Julien Grall
  0 siblings, 1 reply; 30+ messages in thread
From: Roman Shaposhnik @ 2019-12-31 22:48 UTC (permalink / raw)
  To: Julien Grall; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini

[-- Attachment #1: Type: text/plain, Size: 5397 bytes --]

Hi!

Good news: one that type was fixed Xen booted just fine and detected
all the available 2G of memory.

I am attaching the log if anyone needs to sleuth through it.

Thanks,
Roman.


On Mon, Dec 30, 2019 at 9:14 PM Roman Shaposhnik <roman@zededa.com> wrote:
>
> Hi Julien,
>
> On Sun, Dec 29, 2019 at 10:01 AM Julien Grall <julien@xen.org> wrote:
> >
> > Hi,
> >
> > On 21/12/2019 01:37, Roman Shaposhnik wrote:
> > > On Thu, Dec 19, 2019 at 4:01 PM Stefano Stabellini
> > > <sstabellini@kernel.org> wrote:
> > >>
> > >> On Thu, 19 Dec 2019, Julien Grall wrote:
> > >>>>> In fact most of people on Arm are using GRUB rather than EFI directly as
> > >>>>> this is more friendly to use.
> > >>>>>
> > >>>>> Regarding the devicetree, Xen and Linux will completely ignore the
> > >>>>> memory nodes in Xen if using EFI. This because the EFI memory map will
> > >>>>> give you an overview of the platform with the EFI regions included.
> > >>>>
> > >>>> Aha! So in that sense it is a bug in Xen after all, right? (that's what
> > >>>> you're
> > >>>> referring to when you say you now understand what needs to get fixed).
> > >>>
> > >>> Yes. The EFI memory map is a list of existing memory with a type associated to
> > >>> it (Conventional, BootServiceCodes, MemoryMappedIO...).
> > >>>
> > >>> The OS/Hypervisor will have to go through them and check which regions are
> > >>> usuable. Compare to Linux, Xen has limited itself to only a few types.
> > >>>
> > >>> However, I think we can be on a par with Linux here.
> > >>
> > >> I gave a look at the Linux implementation, the interesting bit is
> > >> drivers/firmware/efi/arm-init.c:is_usable_memory as far as I can tell.
> > >> I also gave a look at the Xen side, which is
> > >> xen/arch/arm/efi/efi-boot.h:efi_process_memory_map_bootinfo. As guessed,
> > >> the two are not quite the same.
> > >>
> > >> One of the main differences is that Linux uses as "System RAM" even
> > >> regions that were marked as EFI_BOOT_SERVICES_CODE/DATA and
> > >> EFI_LOADER_CODE/DATA because they will get freed anyway. Xen doesn't
> > >> do that unless map_bs is set.
> > >>
> > >> I wrote a quick patch to implement the Linux behavior on Xen, only
> > >> lightly tested. I can confirm that I see more memory this way. However,
> > >> I am not sure we actually want to import the Linux behavior wholesale.
> > >>
> > >> Anyway, Roman, could you please let me know if this patch solves the
> > >> issue?
> > >
> > > Tried the attached patch -- but it seems I can't boot at all with this. Xen
> > > doesn't print anything on the console either.
> >
> > Thank you for trying the patch. Do you have earlyprintk enabled for the
> > hikey board?
>
> No (since I thought it wasn't possible on ARM :-)) but now that you
> mentioned it,
> I've found this:
>      http://xenbits.xenproject.org/docs/4.13-testing/misc/arm/early-printk.txt
> and I'd be more than happy to try (hopefully CONFIG_EARLY_PRINTK= hikey960
> will do the trick).
>
> > > To Julien's point -- should I reduce the # of types and try again?
> >
> >  From my understanding, the field Attribute is a series of flag telling
> > what the region can support.
> >
> > So it would be possible to have other flags set at the same time as
> > EFI_MEMORY_WC. However, the check in the patch below is an == equal and
> > would potentially discard a lot of regions (if not all regions).
> >
> > In other words...
> >
> > >>
> > >>
> > >> diff --git a/xen/arch/arm/efi/efi-boot.h b/xen/arch/arm/efi/efi-boot.h
> > >> index ca655ff003..ad18ff3669 100644
> > >> --- a/xen/arch/arm/efi/efi-boot.h
> > >> +++ b/xen/arch/arm/efi/efi-boot.h
> > >> @@ -149,10 +149,14 @@ static EFI_STATUS __init efi_process_memory_map_bootinfo(EFI_MEMORY_DESCRIPTOR *
> > >>
> > >>       for ( Index = 0; Index < (mmap_size / desc_size); Index++ )
> > >>       {
> > >> -        if ( desc_ptr->Type == EfiConventionalMemory ||
> > >> -             (!map_bs &&
> > >> -              (desc_ptr->Type == EfiBootServicesCode ||
> > >> -               desc_ptr->Type == EfiBootServicesData)) )
> > >> +        if ( desc_ptr->Attribute == EFI_MEMORY_WB &&
> >
> > ... this should be desc_ptr->Attribute & EFI_MEMORY_WB.
> >
> > Can you give a spin with this change and see how far you can go?
>
> Aha! That makes much more sense -- will give it a try tomorrow
> (in conjunction with earlyprintk)
>
> Thanks,
> Roman.
>
> > >> +             (desc_ptr->Type == EfiConventionalMemory ||
> > >> +              desc_ptr->Type == EfiLoaderCode ||
> > >> +              desc_ptr->Type == EfiLoaderData ||
> > >> +              desc_ptr->Type == EfiACPIReclaimMemory ||
> > >> +              desc_ptr->Type == EfiPersistentMemory ||
> > >> +              desc_ptr->Type == EfiBootServicesCode ||
> > >> +              desc_ptr->Type == EfiBootServicesData) )
> > >>           {
> > >>               if ( !meminfo_add_bank(&bootinfo.mem, desc_ptr) )
> > >>               {
> > >> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
> > >> index 86a7e111bf..f46207840f 100644
> > >> --- a/xen/include/efi/efidef.h
> > >> +++ b/xen/include/efi/efidef.h
> > >> @@ -147,6 +147,7 @@ typedef enum {
> > >>       EfiMemoryMappedIO,
> > >>       EfiMemoryMappedIOPortSpace,
> > >>       EfiPalCode,
> > >> +    EfiPersistentMemory,
> > >>       EfiMaxMemoryType
> > >>   } EFI_MEMORY_TYPE;
> > >>
> >
> > Cheers,
> >
> > --
> > Julien Grall

[-- Attachment #2: xen.log --]
[-- Type: application/octet-stream, Size: 196391 bytes --]

Using modules provided by bootloader in FDT
Xen 4.13.0 (c/s ) EFI loader
 Xen 4.13.0
(XEN) Xen version 4.13.0 (@) (gcc (Alpine 6.4.0) 6.4.0) debug=y  Tue Dec 31 22:38:25 UTC 2019
(XEN) Latest ChangeSet:
(XEN) build-id: c814e38e4139904c263c9a1244a987efa2091ea9
(XEN) Processor: 410fd033: "ARM Limited", variant: 0x0, part 0xd03, rev 0x3
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(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) Using SMC Calling Convention v1.0
(XEN) Using PSCI v1.0
(XEN) SMP: Allowing 8 CPUs
(XEN) dt_device_get_raw_irq: dev=/timer, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=12
(XEN)  intsize=3 intlen=12
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000001 0x0000000d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/timer, index=1
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=12
(XEN)  intsize=3 intlen=12
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000001 0x0000000e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/timer, index=2
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=12
(XEN)  intsize=3 intlen=12
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000001 0x0000000b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/timer, index=3
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=12
(XEN)  intsize=3 intlen=12
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000001 0x0000000a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 1200 KHz
(XEN) DT: ** translation for device /interrupt-controller@f6801000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> f6801000<3>
(XEN) DT: reached root node
(XEN) DT: ** translation for device /interrupt-controller@f6801000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> f6802000<3>
(XEN) DT: reached root node
(XEN) DT: ** translation for device /interrupt-controller@f6801000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> f6804000<3>
(XEN) DT: reached root node
(XEN) DT: ** translation for device /interrupt-controller@f6801000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> f6806000<3>
(XEN) DT: reached root node
(XEN) dt_device_get_raw_irq: dev=/interrupt-controller@f6801000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000001 0x00000009...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f6801000
(XEN)         gic_cpu_addr=00000000f6802000
(XEN)         gic_hyp_addr=00000000f6804000
(XEN)         gic_vcpu_addr=00000000f6806000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: 160 lines, 8 cpus, secure (IID 0200143b).
(XEN) XSM Framework v1.0.0 initialized
(XEN) Initialising XSM SILO mode
(XEN) Using scheduler: SMP Credit Scheduler rev2 (credit2)
(XEN) Initializing Credit2 scheduler
(XEN)  load_precision_shift: 18
(XEN)  load_window_shift: 30
(XEN)  underload_balance_tolerance: 0
(XEN)  overload_balance_tolerance: -3
(XEN)  runqueues arrangement: socket
(XEN)  cap enforcement granularity: 10ms
(XEN) load tracking window length 1073741824 ns
(XEN) Allocated console ring of 64 KiB.
(XEN) CPU0: Guest atomics will try 19 times before pausing the domain
(XEN) Bringing up CPU1
(XEN) CPU1: Guest atomics will try 18 times before pausing the domain
(XEN) CPU 1 booted.
(XEN) Bringing up CPU2
(XEN) CPU2: Guest atomics will try 15 times before pausing the domain
(XEN) CPU 2 booted.
(XEN) Bringing up CPU3
(XEN) CPU3: Guest atomics will try 15 times before pausing the domain
(XEN) CPU 3 booted.
(XEN) Bringing up CPU4
(XEN) CPU4: Guest atomics will try 18 times before pausing the domain
(XEN) CPU 4 booted.
(XEN) Bringing up CPU5
(XEN) CPU5: Guest atomics will try 15 times before pausing the domain
(XEN) CPU 5 booted.
(XEN) Bringing up CPU6
(XEN) CPU6: Guest atomics will try 17 times before pausing the domain
(XEN) CPU 6 booted.
(XEN) Bringing up CPU7
(XEN) CPU7: Guest atomics will try 13 times before pausing the domain
(XEN) Brought up 8 CPUs
(XEN) CPU 7 booted.
(XEN) I/O virtualisation disabled
(XEN) P2M: 40-bit IPA with 40-bit PA and 8-bit VMID
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) Adding cpu 0 to runqueue 0
(XEN)  First cpu on runqueue, activating
(XEN) Adding cpu 1 to runqueue 0
(XEN) Adding cpu 2 to runqueue 0
(XEN) Adding cpu 3 to runqueue 0
(XEN) Adding cpu 4 to runqueue 0
(XEN) Adding cpu 5 to runqueue 0
(XEN) Adding cpu 6 to runqueue 0
(XEN) Adding cpu 7 to runqueue 0
(XEN) alternatives: Patching with alt table 00000000002cc400 -> 00000000002ccb14
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading d0 kernel from boot module @ 000000005a627000
(XEN) Allocating 1:1 mappings totalling 720MB for dom0:
(XEN) BANK[0] 0x00000040000000-0x00000058000000 (384MB)
(XEN) BANK[1] 0x00000060000000-0x00000070000000 (256MB)
(XEN) BANK[2] 0x00000078000000-0x0000007c000000 (64MB)
(XEN) BANK[3] 0x0000007e000000-0x0000007f000000 (16MB)
(XEN) Grant table range: 0x0000005a4df000-0x0000005a51f000
(XEN) handle /
(XEN) dt_irq_number: dev=/
(XEN) / passthrough = 1 naddr = 0
(XEN) Check if / is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/
(XEN) handle /regulator@1
(XEN) dt_irq_number: dev=/regulator@1
(XEN) /regulator@1 passthrough = 1 naddr = 0
(XEN) Check if /regulator@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/regulator@1
(XEN) handle /wl1835-pwrseq
(XEN) dt_irq_number: dev=/wl1835-pwrseq
(XEN) /wl1835-pwrseq passthrough = 1 naddr = 0
(XEN) Check if /wl1835-pwrseq is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/wl1835-pwrseq
(XEN) handle /soc
(XEN) dt_irq_number: dev=/soc
(XEN) /soc passthrough = 1 naddr = 0
(XEN) Check if /soc is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc
(XEN) handle /soc/debug@f6594000
(XEN) dt_irq_number: dev=/soc/debug@f6594000
(XEN) /soc/debug@f6594000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f6594000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f6594000
(XEN) DT: ** translation for device /soc/debug@f6594000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6594000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6594000
(XEN) DT: one level translation:<3> 00000000<3> f6594000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6594000 - 00f6595000 P2MType=5
(XEN) handle /soc/watchdog@f8005000
(XEN) dt_irq_number: dev=/soc/watchdog@f8005000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/watchdog@f8005000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/watchdog@f8005000 passthrough = 1 naddr = 1
(XEN) Check if /soc/watchdog@f8005000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/watchdog@f8005000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/watchdog@f8005000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/watchdog@f8005000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 45
(XEN) DT: ** translation for device /soc/watchdog@f8005000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8005000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8005000
(XEN) DT: one level translation:<3> 00000000<3> f8005000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8005000 - 00f8006000 P2MType=5
(XEN) handle /soc/media_ctrl@f4410000
(XEN) dt_irq_number: dev=/soc/media_ctrl@f4410000
(XEN) /soc/media_ctrl@f4410000 passthrough = 1 naddr = 1
(XEN) Check if /soc/media_ctrl@f4410000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/media_ctrl@f4410000
(XEN) DT: ** translation for device /soc/media_ctrl@f4410000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f4410000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f4410000
(XEN) DT: one level translation:<3> 00000000<3> f4410000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f4410000 - 00f4411000 P2MType=5
(XEN) handle /soc/gpio@f702f000
(XEN) dt_irq_number: dev=/soc/gpio@f702f000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000047...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702f000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702f000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702f000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000047...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000047...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 103
(XEN) DT: ** translation for device /soc/gpio@f702f000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702f000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702f000
(XEN) DT: one level translation:<3> 00000000<3> f702f000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702f000 - 00f7030000 P2MType=5
(XEN) handle /soc/uart@f7113000
(XEN)   Skip it (used by Xen)
(XEN) handle /soc/gpio@f702c000
(XEN) dt_irq_number: dev=/soc/gpio@f702c000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702c000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000044...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702c000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702c000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702c000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702c000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000044...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702c000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000044...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 100
(XEN) DT: ** translation for device /soc/gpio@f702c000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702c000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702c000
(XEN) DT: one level translation:<3> 00000000<3> f702c000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702c000 - 00f702d000 P2MType=5
(XEN) handle /soc/pm_ctrl@f7032000
(XEN) dt_irq_number: dev=/soc/pm_ctrl@f7032000
(XEN) /soc/pm_ctrl@f7032000 passthrough = 1 naddr = 1
(XEN) Check if /soc/pm_ctrl@f7032000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pm_ctrl@f7032000
(XEN) DT: ** translation for device /soc/pm_ctrl@f7032000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7032000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7032000
(XEN) DT: one level translation:<3> 00000000<3> f7032000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7032000 - 00f7033000 P2MType=5
(XEN) handle /soc/pinmux@f7010000
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000
(XEN) /soc/pinmux@f7010000 passthrough = 1 naddr = 1
(XEN) Check if /soc/pinmux@f7010000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000
(XEN) DT: ** translation for device /soc/pinmux@f7010000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7010000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7010000
(XEN) DT: one level translation:<3> 00000000<3> f7010000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7010000 - 00f701027c P2MType=5
(XEN) handle /soc/pinmux@f7010000/sd_pmx_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sd_pmx_idle
(XEN) /soc/pinmux@f7010000/sd_pmx_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/sd_pmx_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sd_pmx_idle
(XEN) handle /soc/pinmux@f7010000/hkadc_ssi_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/hkadc_ssi_pmx_func
(XEN) /soc/pinmux@f7010000/hkadc_ssi_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/hkadc_ssi_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/hkadc_ssi_pmx_func
(XEN) handle /soc/pinmux@f7010000/uart3_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart3_pmx_func
(XEN) /soc/pinmux@f7010000/uart3_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart3_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart3_pmx_func
(XEN) handle /soc/pinmux@f7010000/i2c1_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c1_pmx_func
(XEN) /soc/pinmux@f7010000/i2c1_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/i2c1_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c1_pmx_func
(XEN) handle /soc/pinmux@f7010000/isp_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/isp_pmx_func
(XEN) /soc/pinmux@f7010000/isp_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/isp_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/isp_pmx_func
(XEN) handle /soc/pinmux@f7010000/gpio-range
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/gpio-range
(XEN) /soc/pinmux@f7010000/gpio-range passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/gpio-range is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/gpio-range
(XEN) handle /soc/pinmux@f7010000/boot_sel_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/boot_sel_pmx_func
(XEN) /soc/pinmux@f7010000/boot_sel_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/boot_sel_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/boot_sel_pmx_func
(XEN) handle /soc/pinmux@f7010000/sdio_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sdio_pmx_func
(XEN) /soc/pinmux@f7010000/sdio_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/sdio_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sdio_pmx_func
(XEN) handle /soc/pinmux@f7010000/spi0_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/spi0_pmx_func
(XEN) /soc/pinmux@f7010000/spi0_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/spi0_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/spi0_pmx_func
(XEN) handle /soc/pinmux@f7010000/uart4_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart4_pmx_func
(XEN) /soc/pinmux@f7010000/uart4_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart4_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart4_pmx_func
(XEN) handle /soc/pinmux@f7010000/i2c2_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c2_pmx_func
(XEN) /soc/pinmux@f7010000/i2c2_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/i2c2_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c2_pmx_func
(XEN) handle /soc/pinmux@f7010000/emmc_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/emmc_pmx_func
(XEN) /soc/pinmux@f7010000/emmc_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/emmc_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/emmc_pmx_func
(XEN) handle /soc/pinmux@f7010000/uart0_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart0_pmx_func
(XEN) /soc/pinmux@f7010000/uart0_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart0_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart0_pmx_func
(XEN) handle /soc/pinmux@f7010000/uart5_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart5_pmx_func
(XEN) /soc/pinmux@f7010000/uart5_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart5_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart5_pmx_func
(XEN) handle /soc/pinmux@f7010000/bt_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/bt_pmx_func
(XEN) /soc/pinmux@f7010000/bt_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/bt_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/bt_pmx_func
(XEN) handle /soc/pinmux@f7010000/sdio_pmx_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sdio_pmx_idle
(XEN) /soc/pinmux@f7010000/sdio_pmx_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/sdio_pmx_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sdio_pmx_idle
(XEN) handle /soc/pinmux@f7010000/uart1_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart1_pmx_func
(XEN) /soc/pinmux@f7010000/uart1_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart1_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart1_pmx_func
(XEN) handle /soc/pinmux@f7010000/fm_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/fm_pmx_func
(XEN) /soc/pinmux@f7010000/fm_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/fm_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/fm_pmx_func
(XEN) handle /soc/pinmux@f7010000/sd_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sd_pmx_func
(XEN) /soc/pinmux@f7010000/sd_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/sd_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/sd_pmx_func
(XEN) handle /soc/pinmux@f7010000/codec_clk_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/codec_clk_pmx_func
(XEN) /soc/pinmux@f7010000/codec_clk_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/codec_clk_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/codec_clk_pmx_func
(XEN) handle /soc/pinmux@f7010000/codec_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/codec_pmx_func
(XEN) /soc/pinmux@f7010000/codec_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/codec_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/codec_pmx_func
(XEN) handle /soc/pinmux@f7010000/pwm_in_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/pwm_in_pmx_func
(XEN) /soc/pinmux@f7010000/pwm_in_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/pwm_in_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/pwm_in_pmx_func
(XEN) handle /soc/pinmux@f7010000/uart2_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart2_pmx_func
(XEN) /soc/pinmux@f7010000/uart2_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/uart2_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/uart2_pmx_func
(XEN) handle /soc/pinmux@f7010000/bl_pwm_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/bl_pwm_pmx_func
(XEN) /soc/pinmux@f7010000/bl_pwm_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/bl_pwm_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/bl_pwm_pmx_func
(XEN) handle /soc/pinmux@f7010000/i2c0_pmx_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c0_pmx_func
(XEN) /soc/pinmux@f7010000/i2c0_pmx_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010000/i2c0_pmx_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010000/i2c0_pmx_func
(XEN) handle /soc/ao_ctrl@f7800000
(XEN) dt_irq_number: dev=/soc/ao_ctrl@f7800000
(XEN) /soc/ao_ctrl@f7800000 passthrough = 1 naddr = 1
(XEN) Check if /soc/ao_ctrl@f7800000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/ao_ctrl@f7800000
(XEN) DT: ** translation for device /soc/ao_ctrl@f7800000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7800000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7800000
(XEN) DT: one level translation:<3> 00000000<3> f7800000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7800000 - 00f7802000 P2MType=5
(XEN) handle /soc/mailbox@f7510000
(XEN) dt_irq_number: dev=/soc/mailbox@f7510000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/mailbox@f7510000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000005e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/mailbox@f7510000 passthrough = 1 naddr = 2
(XEN) Check if /soc/mailbox@f7510000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/mailbox@f7510000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/mailbox@f7510000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000005e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/mailbox@f7510000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000005e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 126
(XEN) DT: ** translation for device /soc/mailbox@f7510000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7510000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7510000
(XEN) DT: one level translation:<3> 00000000<3> f7510000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7510000 - 00f7511000 P2MType=5
(XEN) DT: ** translation for device /soc/mailbox@f7510000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> 06dff800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: 6dff800
(XEN) DT: one level translation:<3> 00000000<3> 06dff800<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 0006dff800 - 0006e00000 P2MType=5
(XEN) handle /soc/i2c@f7102000
(XEN) dt_irq_number: dev=/soc/i2c@f7102000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7102000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/i2c@f7102000 passthrough = 1 naddr = 1
(XEN) Check if /soc/i2c@f7102000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7102000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7102000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 78
(XEN) DT: ** translation for device /soc/i2c@f7102000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7102000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7102000
(XEN) DT: one level translation:<3> 00000000<3> f7102000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7102000 - 00f7103000 P2MType=5
(XEN) handle /soc/i2c@f7102000/adv7533@39
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7102000/adv7533@39, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_irq_map_raw: par=/soc/gpio@f8012000,intspec=[0x00000001 0x00000002...],ointsize=2
(XEN) dt_irq_map_raw: ipar=/soc/gpio@f8012000, size=2
(XEN)  -> addrsize=2
(XEN)  -> got it !
(XEN) /soc/i2c@f7102000/adv7533@39 passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7102000/adv7533@39, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=1 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_irq_map_raw: par=/soc/gpio@f8012000,intspec=[0x00000001 0x00000002...],ointsize=2
(XEN) dt_irq_map_raw: ipar=/soc/gpio@f8012000, size=2
(XEN)  -> addrsize=2
(XEN)  -> got it !
(XEN) irq 0 not connected to primary controller. Connected to /soc/gpio@f8012000
(XEN) handle /soc/i2c@f7102000/adv7533@39/ports
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports
(XEN) /soc/i2c@f7102000/adv7533@39/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports
(XEN) handle /soc/i2c@f7102000/adv7533@39/ports/port@0
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@0
(XEN) /soc/i2c@f7102000/adv7533@39/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@0
(XEN) handle /soc/i2c@f7102000/adv7533@39/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@0/endpoint
(XEN) /soc/i2c@f7102000/adv7533@39/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@0/endpoint
(XEN) handle /soc/i2c@f7102000/adv7533@39/ports/port@2
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@2
(XEN) /soc/i2c@f7102000/adv7533@39/ports/port@2 passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39/ports/port@2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@2
(XEN) handle /soc/i2c@f7102000/adv7533@39/ports/port@2/endpoint
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@2/endpoint
(XEN) /soc/i2c@f7102000/adv7533@39/ports/port@2/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/i2c@f7102000/adv7533@39/ports/port@2/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7102000/adv7533@39/ports/port@2/endpoint
(XEN) handle /soc/stub_clock
(XEN) dt_irq_number: dev=/soc/stub_clock
(XEN) /soc/stub_clock passthrough = 1 naddr = 0
(XEN) Check if /soc/stub_clock is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/stub_clock
(XEN) handle /soc/etm@f659f000
(XEN) dt_irq_number: dev=/soc/etm@f659f000
(XEN) /soc/etm@f659f000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f659f000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659f000
(XEN) DT: ** translation for device /soc/etm@f659f000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f659f000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f659f000
(XEN) DT: one level translation:<3> 00000000<3> f659f000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f659f000 - 00f65a0000 P2MType=5
(XEN) handle /soc/etm@f659f000/port
(XEN) dt_irq_number: dev=/soc/etm@f659f000/port
(XEN) /soc/etm@f659f000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659f000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659f000/port
(XEN) handle /soc/etm@f659f000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f659f000/port/endpoint
(XEN) /soc/etm@f659f000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659f000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659f000/port/endpoint
(XEN) handle /soc/dwmmc2@f723f000
(XEN) dt_irq_number: dev=/soc/dwmmc2@f723f000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc2@f723f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/dwmmc2@f723f000 passthrough = 1 naddr = 1
(XEN) Check if /soc/dwmmc2@f723f000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dwmmc2@f723f000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc2@f723f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc2@f723f000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 106
(XEN) DT: ** translation for device /soc/dwmmc2@f723f000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f723f000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f723f000
(XEN) DT: one level translation:<3> 00000000<3> f723f000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f723f000 - 00f7240000 P2MType=5
(XEN) handle /soc/dwmmc2@f723f000/wlcore@2
(XEN) dt_irq_number: dev=/soc/dwmmc2@f723f000/wlcore@2
(XEN)  using 'interrupts' property
(XEN)  intspec=3 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc2@f723f000/wlcore@2, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=3 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_irq_map_raw: par=/soc/gpio@f8012000,intspec=[0x00000003 0x00000001...],ointsize=2
(XEN) dt_irq_map_raw: ipar=/soc/gpio@f8012000, size=2
(XEN)  -> addrsize=2
(XEN)  -> got it !
(XEN) /soc/dwmmc2@f723f000/wlcore@2 passthrough = 1 naddr = 0
(XEN) Check if /soc/dwmmc2@f723f000/wlcore@2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dwmmc2@f723f000/wlcore@2
(XEN)  using 'interrupts' property
(XEN)  intspec=3 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc2@f723f000/wlcore@2, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=3 intlen=2
(XEN)  intsize=2 intlen=2
(XEN) dt_irq_map_raw: par=/soc/gpio@f8012000,intspec=[0x00000003 0x00000001...],ointsize=2
(XEN) dt_irq_map_raw: ipar=/soc/gpio@f8012000, size=2
(XEN)  -> addrsize=2
(XEN)  -> got it !
(XEN) irq 0 not connected to primary controller. Connected to /soc/gpio@f8012000
(XEN) handle /soc/etm@f659c000
(XEN) dt_irq_number: dev=/soc/etm@f659c000
(XEN) /soc/etm@f659c000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f659c000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659c000
(XEN) DT: ** translation for device /soc/etm@f659c000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f659c000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f659c000
(XEN) DT: one level translation:<3> 00000000<3> f659c000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f659c000 - 00f659d000 P2MType=5
(XEN) handle /soc/etm@f659c000/port
(XEN) dt_irq_number: dev=/soc/etm@f659c000/port
(XEN) /soc/etm@f659c000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659c000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659c000/port
(XEN) handle /soc/etm@f659c000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f659c000/port/endpoint
(XEN) /soc/etm@f659c000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659c000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659c000/port/endpoint
(XEN) handle /soc/debug@f65d4000
(XEN) dt_irq_number: dev=/soc/debug@f65d4000
(XEN) /soc/debug@f65d4000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f65d4000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f65d4000
(XEN) DT: ** translation for device /soc/debug@f65d4000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65d4000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65d4000
(XEN) DT: one level translation:<3> 00000000<3> f65d4000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65d4000 - 00f65d5000 P2MType=5
(XEN) handle /soc/gpio@f7029000
(XEN) dt_irq_number: dev=/soc/gpio@f7029000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7029000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000041...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7029000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7029000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7029000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7029000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000041...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7029000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000041...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 97
(XEN) DT: ** translation for device /soc/gpio@f7029000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7029000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7029000
(XEN) DT: one level translation:<3> 00000000<3> f7029000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7029000 - 00f702a000 P2MType=5
(XEN) handle /soc/usb@f72c0000
(XEN) dt_irq_number: dev=/soc/usb@f72c0000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/usb@f72c0000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/usb@f72c0000 passthrough = 1 naddr = 1
(XEN) Check if /soc/usb@f72c0000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/usb@f72c0000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/usb@f72c0000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/usb@f72c0000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000004d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 109
(XEN) DT: ** translation for device /soc/usb@f72c0000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f72c0000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f72c0000
(XEN) DT: one level translation:<3> 00000000<3> f72c0000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f72c0000 - 00f7300000 P2MType=5
(XEN) handle /soc/gpio@f7026000
(XEN) dt_irq_number: dev=/soc/gpio@f7026000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7026000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7026000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7026000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7026000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7026000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7026000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 94
(XEN) DT: ** translation for device /soc/gpio@f7026000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7026000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7026000
(XEN) DT: one level translation:<3> 00000000<3> f7026000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7026000 - 00f7027000 P2MType=5
(XEN) handle /soc/gpio@f7023000
(XEN) dt_irq_number: dev=/soc/gpio@f7023000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7023000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7023000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7023000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7023000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7023000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7023000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 91
(XEN) DT: ** translation for device /soc/gpio@f7023000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7023000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7023000
(XEN) DT: one level translation:<3> 00000000<3> f7023000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7023000 - 00f7024000 P2MType=5
(XEN) handle /soc/tsensor@0,f7030700
(XEN) dt_irq_number: dev=/soc/tsensor@0,f7030700
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/tsensor@0,f7030700, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000007...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/tsensor@0,f7030700 passthrough = 1 naddr = 1
(XEN) Check if /soc/tsensor@0,f7030700 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/tsensor@0,f7030700
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/tsensor@0,f7030700, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000007...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/tsensor@0,f7030700, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000007...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 39
(XEN) DT: ** translation for device /soc/tsensor@0,f7030700 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7030700<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7030700
(XEN) DT: one level translation:<3> 00000000<3> f7030700<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7030700 - 00f7031700 P2MType=5
(XEN) handle /soc/gpio@f8013000
(XEN) dt_irq_number: dev=/soc/gpio@f8013000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8013000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000036...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f8013000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f8013000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f8013000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8013000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000036...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8013000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000036...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 86
(XEN) DT: ** translation for device /soc/gpio@f8013000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8013000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8013000
(XEN) DT: one level translation:<3> 00000000<3> f8013000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8013000 - 00f8014000 P2MType=5
(XEN) handle /soc/gpio@f7020000
(XEN) dt_irq_number: dev=/soc/gpio@f7020000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7020000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000038...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7020000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7020000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7020000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7020000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000038...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7020000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000038...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 88
(XEN) DT: ** translation for device /soc/gpio@f7020000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7020000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7020000
(XEN) DT: one level translation:<3> 00000000<3> f7020000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7020000 - 00f7021000 P2MType=5
(XEN) handle /soc/dwmmc1@f723e000
(XEN) dt_irq_number: dev=/soc/dwmmc1@f723e000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc1@f723e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000049...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/dwmmc1@f723e000 passthrough = 1 naddr = 1
(XEN) Check if /soc/dwmmc1@f723e000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dwmmc1@f723e000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc1@f723e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000049...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc1@f723e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000049...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 105
(XEN) DT: ** translation for device /soc/dwmmc1@f723e000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f723e000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f723e000
(XEN) DT: one level translation:<3> 00000000<3> f723e000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f723e000 - 00f723f000 P2MType=5
(XEN) handle /soc/replicator
(XEN) dt_irq_number: dev=/soc/replicator
(XEN) /soc/replicator passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator
(XEN) handle /soc/replicator/ports
(XEN) dt_irq_number: dev=/soc/replicator/ports
(XEN) /soc/replicator/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports
(XEN) handle /soc/replicator/ports/port@0
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@0
(XEN) /soc/replicator/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@0
(XEN) handle /soc/replicator/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@0/endpoint
(XEN) /soc/replicator/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@0/endpoint
(XEN) handle /soc/replicator/ports/port@1
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@1
(XEN) /soc/replicator/ports/port@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@1
(XEN) handle /soc/replicator/ports/port@1/endpoint
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@1/endpoint
(XEN) /soc/replicator/ports/port@1/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@1/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@1/endpoint
(XEN) handle /soc/replicator/ports/port@2
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@2
(XEN) /soc/replicator/ports/port@2 passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@2
(XEN) handle /soc/replicator/ports/port@2/endpoint
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@2/endpoint
(XEN) /soc/replicator/ports/port@2/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/replicator/ports/port@2/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/replicator/ports/port@2/endpoint
(XEN) handle /soc/etm@f65df000
(XEN) dt_irq_number: dev=/soc/etm@f65df000
(XEN) /soc/etm@f65df000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f65df000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65df000
(XEN) DT: ** translation for device /soc/etm@f65df000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65df000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65df000
(XEN) DT: one level translation:<3> 00000000<3> f65df000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65df000 - 00f65e0000 P2MType=5
(XEN) handle /soc/etm@f65df000/port
(XEN) dt_irq_number: dev=/soc/etm@f65df000/port
(XEN) /soc/etm@f65df000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65df000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65df000/port
(XEN) handle /soc/etm@f65df000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f65df000/port/endpoint
(XEN) /soc/etm@f65df000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65df000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65df000/port/endpoint
(XEN) handle /soc/thermal-zones
(XEN) dt_irq_number: dev=/soc/thermal-zones
(XEN) /soc/thermal-zones passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones
(XEN) handle /soc/thermal-zones/cls0
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0
(XEN) /soc/thermal-zones/cls0 passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0
(XEN) handle /soc/thermal-zones/cls0/trips
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips
(XEN) /soc/thermal-zones/cls0/trips passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0/trips is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips
(XEN) handle /soc/thermal-zones/cls0/trips/trip-point@0
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips/trip-point@0
(XEN) /soc/thermal-zones/cls0/trips/trip-point@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0/trips/trip-point@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips/trip-point@0
(XEN) handle /soc/thermal-zones/cls0/trips/trip-point@1
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips/trip-point@1
(XEN) /soc/thermal-zones/cls0/trips/trip-point@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0/trips/trip-point@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/trips/trip-point@1
(XEN) handle /soc/thermal-zones/cls0/cooling-maps
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/cooling-maps
(XEN) /soc/thermal-zones/cls0/cooling-maps passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0/cooling-maps is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/cooling-maps
(XEN) handle /soc/thermal-zones/cls0/cooling-maps/map0
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/cooling-maps/map0
(XEN) /soc/thermal-zones/cls0/cooling-maps/map0 passthrough = 1 naddr = 0
(XEN) Check if /soc/thermal-zones/cls0/cooling-maps/map0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/thermal-zones/cls0/cooling-maps/map0
(XEN) handle /soc/etm@f65dc000
(XEN) dt_irq_number: dev=/soc/etm@f65dc000
(XEN) /soc/etm@f65dc000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f65dc000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dc000
(XEN) DT: ** translation for device /soc/etm@f65dc000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65dc000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65dc000
(XEN) DT: one level translation:<3> 00000000<3> f65dc000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65dc000 - 00f65dd000 P2MType=5
(XEN) handle /soc/etm@f65dc000/port
(XEN) dt_irq_number: dev=/soc/etm@f65dc000/port
(XEN) /soc/etm@f65dc000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65dc000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dc000/port
(XEN) handle /soc/etm@f65dc000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f65dc000/port/endpoint
(XEN) /soc/etm@f65dc000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65dc000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dc000/port/endpoint
(XEN) handle /soc/debug@f6596000
(XEN) dt_irq_number: dev=/soc/debug@f6596000
(XEN) /soc/debug@f6596000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f6596000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f6596000
(XEN) DT: ** translation for device /soc/debug@f6596000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6596000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6596000
(XEN) DT: one level translation:<3> 00000000<3> f6596000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6596000 - 00f6597000 P2MType=5
(XEN) handle /soc/pinmux@f8001800
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800
(XEN) /soc/pinmux@f8001800 passthrough = 1 naddr = 1
(XEN) Check if /soc/pinmux@f8001800 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800
(XEN) DT: ** translation for device /soc/pinmux@f8001800 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8001800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8001800
(XEN) DT: one level translation:<3> 00000000<3> f8001800<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8001800 - 00f8001878 P2MType=5
(XEN) handle /soc/pinmux@f8001800/rstout_n_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/rstout_n_cfg_func
(XEN) /soc/pinmux@f8001800/rstout_n_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f8001800/rstout_n_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/rstout_n_cfg_func
(XEN) handle /soc/pinmux@f8001800/rf_reset_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/rf_reset_cfg_func
(XEN) /soc/pinmux@f8001800/rf_reset_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f8001800/rf_reset_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/rf_reset_cfg_func
(XEN) handle /soc/pinmux@f8001800/sysclk0_en_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/sysclk0_en_cfg_func
(XEN) /soc/pinmux@f8001800/sysclk0_en_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f8001800/sysclk0_en_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/sysclk0_en_cfg_func
(XEN) handle /soc/pinmux@f8001800/jtag_tdo_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/jtag_tdo_cfg_func
(XEN) /soc/pinmux@f8001800/jtag_tdo_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f8001800/jtag_tdo_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/jtag_tdo_cfg_func
(XEN) handle /soc/pinmux@f8001800/pmu_peri_en_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/pmu_peri_en_cfg_func
(XEN) /soc/pinmux@f8001800/pmu_peri_en_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f8001800/pmu_peri_en_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f8001800/pmu_peri_en_cfg_func
(XEN) handle /soc/debug@f6590000
(XEN) dt_irq_number: dev=/soc/debug@f6590000
(XEN) /soc/debug@f6590000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f6590000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f6590000
(XEN) DT: ** translation for device /soc/debug@f6590000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6590000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6590000
(XEN) DT: one level translation:<3> 00000000<3> f6590000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6590000 - 00f6591000 P2MType=5
(XEN) handle /soc/dwmmc0@f723d000
(XEN) dt_irq_number: dev=/soc/dwmmc0@f723d000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc0@f723d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000048...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/dwmmc0@f723d000 passthrough = 1 naddr = 1
(XEN) Check if /soc/dwmmc0@f723d000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dwmmc0@f723d000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc0@f723d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000048...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/dwmmc0@f723d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000048...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 104
(XEN) DT: ** translation for device /soc/dwmmc0@f723d000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f723d000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f723d000
(XEN) DT: one level translation:<3> 00000000<3> f723d000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f723d000 - 00f723e000 P2MType=5
(XEN) handle /soc/tpiu@f6405000
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000
(XEN) /soc/tpiu@f6405000 passthrough = 1 naddr = 1
(XEN) Check if /soc/tpiu@f6405000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000
(XEN) DT: ** translation for device /soc/tpiu@f6405000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6405000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6405000
(XEN) DT: one level translation:<3> 00000000<3> f6405000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6405000 - 00f6406000 P2MType=5
(XEN) handle /soc/tpiu@f6405000/ports
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports
(XEN) /soc/tpiu@f6405000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/tpiu@f6405000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports
(XEN) handle /soc/tpiu@f6405000/ports/port@0
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports/port@0
(XEN) /soc/tpiu@f6405000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/tpiu@f6405000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports/port@0
(XEN) handle /soc/tpiu@f6405000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports/port@0/endpoint
(XEN) /soc/tpiu@f6405000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/tpiu@f6405000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/tpiu@f6405000/ports/port@0/endpoint
(XEN) handle /soc/gpio@f702e000
(XEN) dt_irq_number: dev=/soc/gpio@f702e000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000046...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702e000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702e000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702e000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000046...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702e000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000046...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 102
(XEN) DT: ** translation for device /soc/gpio@f702e000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702e000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702e000
(XEN) DT: one level translation:<3> 00000000<3> f702e000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702e000 - 00f702f000 P2MType=5
(XEN) handle /soc/uart@f7112000
(XEN) dt_irq_number: dev=/soc/uart@f7112000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7112000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000026...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/uart@f7112000 passthrough = 1 naddr = 1
(XEN) Check if /soc/uart@f7112000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/uart@f7112000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7112000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000026...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7112000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000026...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 70
(XEN) DT: ** translation for device /soc/uart@f7112000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7112000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7112000
(XEN) DT: one level translation:<3> 00000000<3> f7112000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7112000 - 00f7113000 P2MType=5
(XEN) handle /soc/gpio@f702b000
(XEN) dt_irq_number: dev=/soc/gpio@f702b000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702b000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000043...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702b000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702b000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702b000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702b000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000043...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702b000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000043...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 99
(XEN) DT: ** translation for device /soc/gpio@f702b000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702b000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702b000
(XEN) DT: one level translation:<3> 00000000<3> f702b000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702b000 - 00f702c000 P2MType=5
(XEN) handle /soc/i2c@f7101000
(XEN) dt_irq_number: dev=/soc/i2c@f7101000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7101000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/i2c@f7101000 passthrough = 1 naddr = 1
(XEN) Check if /soc/i2c@f7101000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7101000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7101000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7101000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 77
(XEN) DT: ** translation for device /soc/i2c@f7101000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7101000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7101000
(XEN) DT: one level translation:<3> 00000000<3> f7101000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7101000 - 00f7102000 P2MType=5
(XEN) handle /soc/etm@f659e000
(XEN) dt_irq_number: dev=/soc/etm@f659e000
(XEN) /soc/etm@f659e000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f659e000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659e000
(XEN) DT: ** translation for device /soc/etm@f659e000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f659e000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f659e000
(XEN) DT: one level translation:<3> 00000000<3> f659e000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f659e000 - 00f659f000 P2MType=5
(XEN) handle /soc/etm@f659e000/port
(XEN) dt_irq_number: dev=/soc/etm@f659e000/port
(XEN) /soc/etm@f659e000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659e000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659e000/port
(XEN) handle /soc/etm@f659e000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f659e000/port/endpoint
(XEN) /soc/etm@f659e000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659e000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659e000/port/endpoint
(XEN) handle /soc/ade@f4100000
(XEN) dt_irq_number: dev=/soc/ade@f4100000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/ade@f4100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000073...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/ade@f4100000 passthrough = 1 naddr = 1
(XEN) Check if /soc/ade@f4100000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/ade@f4100000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/ade@f4100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000073...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/ade@f4100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000073...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 147
(XEN) DT: ** translation for device /soc/ade@f4100000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f4100000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f4100000
(XEN) DT: one level translation:<3> 00000000<3> f4100000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f4100000 - 00f4107800 P2MType=5
(XEN) handle /soc/ade@f4100000/port
(XEN) dt_irq_number: dev=/soc/ade@f4100000/port
(XEN) /soc/ade@f4100000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/ade@f4100000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/ade@f4100000/port
(XEN) handle /soc/ade@f4100000/port/endpoint
(XEN) dt_irq_number: dev=/soc/ade@f4100000/port/endpoint
(XEN) /soc/ade@f4100000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/ade@f4100000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/ade@f4100000/port/endpoint
(XEN) handle /soc/debug@f65d6000
(XEN) dt_irq_number: dev=/soc/debug@f65d6000
(XEN) /soc/debug@f65d6000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f65d6000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f65d6000
(XEN) DT: ** translation for device /soc/debug@f65d6000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65d6000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65d6000
(XEN) DT: one level translation:<3> 00000000<3> f65d6000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65d6000 - 00f65d7000 P2MType=5
(XEN) handle /soc/sram@fff80000
(XEN) dt_irq_number: dev=/soc/sram@fff80000
(XEN) /soc/sram@fff80000 passthrough = 1 naddr = 1
(XEN) Check if /soc/sram@fff80000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/sram@fff80000
(XEN) DT: ** translation for device /soc/sram@fff80000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> fff80000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: fff80000
(XEN) DT: one level translation:<3> 00000000<3> fff80000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00fff80000 - 00fff92000 P2MType=5
(XEN) handle /soc/gpio@f7028000
(XEN) dt_irq_number: dev=/soc/gpio@f7028000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7028000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000040...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7028000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7028000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7028000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7028000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000040...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7028000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000040...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 96
(XEN) DT: ** translation for device /soc/gpio@f7028000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7028000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7028000
(XEN) DT: one level translation:<3> 00000000<3> f7028000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7028000 - 00f7029000 P2MType=5
(XEN) handle /soc/debug@f65d0000
(XEN) dt_irq_number: dev=/soc/debug@f65d0000
(XEN) /soc/debug@f65d0000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f65d0000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f65d0000
(XEN) DT: ** translation for device /soc/debug@f65d0000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65d0000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65d0000
(XEN) DT: one level translation:<3> 00000000<3> f65d0000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65d0000 - 00f65d1000 P2MType=5
(XEN) handle /soc/medianoc_ade@f4520000
(XEN) dt_irq_number: dev=/soc/medianoc_ade@f4520000
(XEN) /soc/medianoc_ade@f4520000 passthrough = 1 naddr = 1
(XEN) Check if /soc/medianoc_ade@f4520000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/medianoc_ade@f4520000
(XEN) DT: ** translation for device /soc/medianoc_ade@f4520000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f4520000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f4520000
(XEN) DT: one level translation:<3> 00000000<3> f4520000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f4520000 - 00f4524000 P2MType=5
(XEN) handle /soc/gpio@f7025000
(XEN) dt_irq_number: dev=/soc/gpio@f7025000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7025000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7025000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7025000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7025000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7025000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7025000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003d...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 93
(XEN) DT: ** translation for device /soc/gpio@f7025000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7025000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7025000
(XEN) DT: one level translation:<3> 00000000<3> f7025000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7025000 - 00f7026000 P2MType=5
(XEN) handle /soc/dsi@f4107800
(XEN) dt_irq_number: dev=/soc/dsi@f4107800
(XEN) /soc/dsi@f4107800 passthrough = 1 naddr = 1
(XEN) Check if /soc/dsi@f4107800 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800
(XEN) DT: ** translation for device /soc/dsi@f4107800 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f4107800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f4107800
(XEN) DT: one level translation:<3> 00000000<3> f4107800<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f4107800 - 00f4107900 P2MType=5
(XEN) handle /soc/dsi@f4107800/ports
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports
(XEN) /soc/dsi@f4107800/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/dsi@f4107800/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports
(XEN) handle /soc/dsi@f4107800/ports/port@0
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@0
(XEN) /soc/dsi@f4107800/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/dsi@f4107800/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@0
(XEN) handle /soc/dsi@f4107800/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@0/endpoint
(XEN) /soc/dsi@f4107800/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/dsi@f4107800/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@0/endpoint
(XEN) handle /soc/dsi@f4107800/ports/port@1
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@1
(XEN) /soc/dsi@f4107800/ports/port@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/dsi@f4107800/ports/port@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@1
(XEN) handle /soc/dsi@f4107800/ports/port@1/endpoint@0
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@1/endpoint@0
(XEN) /soc/dsi@f4107800/ports/port@1/endpoint@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/dsi@f4107800/ports/port@1/endpoint@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dsi@f4107800/ports/port@1/endpoint@0
(XEN) handle /soc/gpio@f7022000
(XEN) dt_irq_number: dev=/soc/gpio@f7022000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7022000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7022000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7022000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7022000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7022000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7022000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003a...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 90
(XEN) DT: ** translation for device /soc/gpio@f7022000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7022000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7022000
(XEN) DT: one level translation:<3> 00000000<3> f7022000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7022000 - 00f7023000 P2MType=5
(XEN) handle /soc/usbphy
(XEN) dt_irq_number: dev=/soc/usbphy
(XEN) /soc/usbphy passthrough = 1 naddr = 0
(XEN) Check if /soc/usbphy is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/usbphy
(XEN) handle /soc/gpio@f8012000
(XEN) dt_irq_number: dev=/soc/gpio@f8012000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8012000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000035...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f8012000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f8012000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f8012000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8012000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000035...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8012000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000035...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 85
(XEN) DT: ** translation for device /soc/gpio@f8012000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8012000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8012000
(XEN) DT: one level translation:<3> 00000000<3> f8012000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8012000 - 00f8013000 P2MType=5
(XEN) handle /soc/spi@f7106000
(XEN) dt_irq_number: dev=/soc/spi@f7106000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/spi@f7106000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000032...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/spi@f7106000 passthrough = 1 naddr = 1
(XEN) Check if /soc/spi@f7106000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/spi@f7106000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/spi@f7106000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000032...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/spi@f7106000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000032...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 82
(XEN) DT: ** translation for device /soc/spi@f7106000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7106000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7106000
(XEN) DT: one level translation:<3> 00000000<3> f7106000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7106000 - 00f7107000 P2MType=5
(XEN) handle /soc/rtc@f8004000
(XEN) dt_irq_number: dev=/soc/rtc@f8004000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8004000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000008...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/rtc@f8004000 passthrough = 1 naddr = 1
(XEN) Check if /soc/rtc@f8004000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/rtc@f8004000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8004000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000008...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8004000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000008...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 40
(XEN) DT: ** translation for device /soc/rtc@f8004000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8004000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8004000
(XEN) DT: one level translation:<3> 00000000<3> f8004000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8004000 - 00f8005000 P2MType=5
(XEN) handle /soc/etm@f65de000
(XEN) dt_irq_number: dev=/soc/etm@f65de000
(XEN) /soc/etm@f65de000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f65de000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65de000
(XEN) DT: ** translation for device /soc/etm@f65de000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65de000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65de000
(XEN) DT: one level translation:<3> 00000000<3> f65de000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65de000 - 00f65df000 P2MType=5
(XEN) handle /soc/etm@f65de000/port
(XEN) dt_irq_number: dev=/soc/etm@f65de000/port
(XEN) /soc/etm@f65de000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65de000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65de000/port
(XEN) handle /soc/etm@f65de000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f65de000/port/endpoint
(XEN) /soc/etm@f65de000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65de000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65de000/port/endpoint
(XEN) handle /soc/pinmux@f7010800
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800
(XEN) /soc/pinmux@f7010800 passthrough = 1 naddr = 1
(XEN) Check if /soc/pinmux@f7010800 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800
(XEN) DT: ** translation for device /soc/pinmux@f7010800 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7010800<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7010800
(XEN) DT: one level translation:<3> 00000000<3> f7010800<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7010800 - 00f7010a8c P2MType=5
(XEN) handle /soc/pinmux@f7010800/sdio_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_cfg_idle
(XEN) /soc/pinmux@f7010800/sdio_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sdio_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_cfg_idle
(XEN) handle /soc/pinmux@f7010800/uart0_cfg_func1
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart0_cfg_func1
(XEN) /soc/pinmux@f7010800/uart0_cfg_func1 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart0_cfg_func1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart0_cfg_func1
(XEN) handle /soc/pinmux@f7010800/fm_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/fm_cfg_func
(XEN) /soc/pinmux@f7010800/fm_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/fm_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/fm_cfg_func
(XEN) handle /soc/pinmux@f7010800/codec_cfg_func2
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_func2
(XEN) /soc/pinmux@f7010800/codec_cfg_func2 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/codec_cfg_func2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_func2
(XEN) handle /soc/pinmux@f7010800/sd_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_cfg_func
(XEN) /soc/pinmux@f7010800/sd_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sd_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_cfg_func
(XEN) handle /soc/pinmux@f7010800/codec_clk_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_clk_cfg_func
(XEN) /soc/pinmux@f7010800/codec_clk_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/codec_clk_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_clk_cfg_func
(XEN) handle /soc/pinmux@f7010800/sd_clk_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_clk_cfg_func
(XEN) /soc/pinmux@f7010800/sd_clk_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sd_clk_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_clk_cfg_func
(XEN) handle /soc/pinmux@f7010800/sdio_clk_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_clk_cfg_idle
(XEN) /soc/pinmux@f7010800/sdio_clk_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sdio_clk_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_clk_cfg_idle
(XEN) handle /soc/pinmux@f7010800/pwm_in_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/pwm_in_cfg_func
(XEN) /soc/pinmux@f7010800/pwm_in_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/pwm_in_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/pwm_in_cfg_func
(XEN) handle /soc/pinmux@f7010800/bt_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bt_cfg_idle
(XEN) /soc/pinmux@f7010800/bt_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/bt_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bt_cfg_idle
(XEN) handle /soc/pinmux@f7010800/uart2_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart2_cfg_func
(XEN) /soc/pinmux@f7010800/uart2_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart2_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart2_cfg_func
(XEN) handle /soc/pinmux@f7010800/bl_pwm_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bl_pwm_cfg_func
(XEN) /soc/pinmux@f7010800/bl_pwm_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/bl_pwm_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bl_pwm_cfg_func
(XEN) handle /soc/pinmux@f7010800/i2c0_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c0_cfg_func
(XEN) /soc/pinmux@f7010800/i2c0_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/i2c0_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c0_cfg_func
(XEN) handle /soc/pinmux@f7010800/emmc_clk_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_clk_cfg_func
(XEN) /soc/pinmux@f7010800/emmc_clk_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/emmc_clk_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_clk_cfg_func
(XEN) handle /soc/pinmux@f7010800/uart1_cfg_func1
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart1_cfg_func1
(XEN) /soc/pinmux@f7010800/uart1_cfg_func1 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart1_cfg_func1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart1_cfg_func1
(XEN) handle /soc/pinmux@f7010800/emmc_rst_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_rst_cfg_func
(XEN) /soc/pinmux@f7010800/emmc_rst_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/emmc_rst_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_rst_cfg_func
(XEN) handle /soc/pinmux@f7010800/uart0_cfg_func2
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart0_cfg_func2
(XEN) /soc/pinmux@f7010800/uart0_cfg_func2 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart0_cfg_func2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart0_cfg_func2
(XEN) handle /soc/pinmux@f7010800/sd_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_cfg_idle
(XEN) /soc/pinmux@f7010800/sd_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sd_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_cfg_idle
(XEN) handle /soc/pinmux@f7010800/codec_clk_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_clk_cfg_idle
(XEN) /soc/pinmux@f7010800/codec_clk_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/codec_clk_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_clk_cfg_idle
(XEN) handle /soc/pinmux@f7010800/hkadc_ssi_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/hkadc_ssi_cfg_func
(XEN) /soc/pinmux@f7010800/hkadc_ssi_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/hkadc_ssi_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/hkadc_ssi_cfg_func
(XEN) handle /soc/pinmux@f7010800/sd_clk_cfg_idle
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_clk_cfg_idle
(XEN) /soc/pinmux@f7010800/sd_clk_cfg_idle passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sd_clk_cfg_idle is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sd_clk_cfg_idle
(XEN) handle /soc/pinmux@f7010800/isp_cfg_func1
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_func1
(XEN) /soc/pinmux@f7010800/isp_cfg_func1 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/isp_cfg_func1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_func1
(XEN) handle /soc/pinmux@f7010800/uart3_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart3_cfg_func
(XEN) /soc/pinmux@f7010800/uart3_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart3_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart3_cfg_func
(XEN) handle /soc/pinmux@f7010800/i2c1_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c1_cfg_func
(XEN) /soc/pinmux@f7010800/i2c1_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/i2c1_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c1_cfg_func
(XEN) handle /soc/pinmux@f7010800/codec_cfg_idle2
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_idle2
(XEN) /soc/pinmux@f7010800/codec_cfg_idle2 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/codec_cfg_idle2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_idle2
(XEN) handle /soc/pinmux@f7010800/boot_sel_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/boot_sel_cfg_func
(XEN) /soc/pinmux@f7010800/boot_sel_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/boot_sel_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/boot_sel_cfg_func
(XEN) handle /soc/pinmux@f7010800/sdio_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_cfg_func
(XEN) /soc/pinmux@f7010800/sdio_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sdio_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_cfg_func
(XEN) handle /soc/pinmux@f7010800/spi0_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/spi0_cfg_func
(XEN) /soc/pinmux@f7010800/spi0_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/spi0_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/spi0_cfg_func
(XEN) handle /soc/pinmux@f7010800/codec_cfg_func1
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_func1
(XEN) /soc/pinmux@f7010800/codec_cfg_func1 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/codec_cfg_func1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/codec_cfg_func1
(XEN) handle /soc/pinmux@f7010800/uart4_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart4_cfg_func
(XEN) /soc/pinmux@f7010800/uart4_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart4_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart4_cfg_func
(XEN) handle /soc/pinmux@f7010800/i2c2_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c2_cfg_func
(XEN) /soc/pinmux@f7010800/i2c2_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/i2c2_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/i2c2_cfg_func
(XEN) handle /soc/pinmux@f7010800/emmc_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_cfg_func
(XEN) /soc/pinmux@f7010800/emmc_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/emmc_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/emmc_cfg_func
(XEN) handle /soc/pinmux@f7010800/uart1_cfg_func2
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart1_cfg_func2
(XEN) /soc/pinmux@f7010800/uart1_cfg_func2 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart1_cfg_func2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart1_cfg_func2
(XEN) handle /soc/pinmux@f7010800/isp_cfg_idle1
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_idle1
(XEN) /soc/pinmux@f7010800/isp_cfg_idle1 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/isp_cfg_idle1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_idle1
(XEN) handle /soc/pinmux@f7010800/sdio_clk_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_clk_cfg_func
(XEN) /soc/pinmux@f7010800/sdio_clk_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/sdio_clk_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/sdio_clk_cfg_func
(XEN) handle /soc/pinmux@f7010800/uart5_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart5_cfg_func
(XEN) /soc/pinmux@f7010800/uart5_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/uart5_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/uart5_cfg_func
(XEN) handle /soc/pinmux@f7010800/isp_cfg_func2
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_func2
(XEN) /soc/pinmux@f7010800/isp_cfg_func2 passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/isp_cfg_func2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/isp_cfg_func2
(XEN) handle /soc/pinmux@f7010800/bt_cfg_func
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bt_cfg_func
(XEN) /soc/pinmux@f7010800/bt_cfg_func passthrough = 1 naddr = 0
(XEN) Check if /soc/pinmux@f7010800/bt_cfg_func is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/pinmux@f7010800/bt_cfg_func
(XEN) handle /soc/debug@f6592000
(XEN) dt_irq_number: dev=/soc/debug@f6592000
(XEN) /soc/debug@f6592000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f6592000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f6592000
(XEN) DT: ** translation for device /soc/debug@f6592000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6592000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6592000
(XEN) DT: one level translation:<3> 00000000<3> f6592000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6592000 - 00f6593000 P2MType=5
(XEN) handle /soc/i2s@f7118000
(XEN) dt_irq_number: dev=/soc/i2s@f7118000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2s@f7118000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000007b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/i2s@f7118000 passthrough = 1 naddr = 1
(XEN) Check if /soc/i2s@f7118000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2s@f7118000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2s@f7118000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000007b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/i2s@f7118000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000007b...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 155
(XEN) DT: ** translation for device /soc/i2s@f7118000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7118000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7118000
(XEN) DT: one level translation:<3> 00000000<3> f7118000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7118000 - 00f7120000 P2MType=5
(XEN) handle /soc/i2s@f7118000/ports
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports
(XEN) /soc/i2s@f7118000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/i2s@f7118000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports
(XEN) handle /soc/i2s@f7118000/ports/port@0
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports/port@0
(XEN) /soc/i2s@f7118000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/i2s@f7118000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports/port@0
(XEN) handle /soc/i2s@f7118000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports/port@0/endpoint
(XEN) /soc/i2s@f7118000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/i2s@f7118000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2s@f7118000/ports/port@0/endpoint
(XEN) handle /soc/funnel@f6501000
(XEN) dt_irq_number: dev=/soc/funnel@f6501000
(XEN) /soc/funnel@f6501000 passthrough = 1 naddr = 1
(XEN) Check if /soc/funnel@f6501000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000
(XEN) DT: ** translation for device /soc/funnel@f6501000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6501000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6501000
(XEN) DT: one level translation:<3> 00000000<3> f6501000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6501000 - 00f6502000 P2MType=5
(XEN) handle /soc/funnel@f6501000/ports
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports
(XEN) /soc/funnel@f6501000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports
(XEN) handle /soc/funnel@f6501000/ports/port@0
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@0
(XEN) /soc/funnel@f6501000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@0
(XEN) handle /soc/funnel@f6501000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@0/endpoint
(XEN) /soc/funnel@f6501000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@0/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@7
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@7
(XEN) /soc/funnel@f6501000/ports/port@7 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@7 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@7
(XEN) handle /soc/funnel@f6501000/ports/port@7/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@7/endpoint
(XEN) /soc/funnel@f6501000/ports/port@7/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@7/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@7/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@5
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@5
(XEN) /soc/funnel@f6501000/ports/port@5 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@5 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@5
(XEN) handle /soc/funnel@f6501000/ports/port@5/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@5/endpoint
(XEN) /soc/funnel@f6501000/ports/port@5/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@5/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@5/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@3
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@3
(XEN) /soc/funnel@f6501000/ports/port@3 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@3 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@3
(XEN) handle /soc/funnel@f6501000/ports/port@3/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@3/endpoint
(XEN) /soc/funnel@f6501000/ports/port@3/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@3/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@3/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@1
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@1
(XEN) /soc/funnel@f6501000/ports/port@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@1
(XEN) handle /soc/funnel@f6501000/ports/port@1/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@1/endpoint
(XEN) /soc/funnel@f6501000/ports/port@1/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@1/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@1/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@8
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@8
(XEN) /soc/funnel@f6501000/ports/port@8 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@8 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@8
(XEN) handle /soc/funnel@f6501000/ports/port@8/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@8/endpoint
(XEN) /soc/funnel@f6501000/ports/port@8/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@8/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@8/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@6
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@6
(XEN) /soc/funnel@f6501000/ports/port@6 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@6 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@6
(XEN) handle /soc/funnel@f6501000/ports/port@6/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@6/endpoint
(XEN) /soc/funnel@f6501000/ports/port@6/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@6/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@6/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@4
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@4
(XEN) /soc/funnel@f6501000/ports/port@4 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@4 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@4
(XEN) handle /soc/funnel@f6501000/ports/port@4/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@4/endpoint
(XEN) /soc/funnel@f6501000/ports/port@4/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@4/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@4/endpoint
(XEN) handle /soc/funnel@f6501000/ports/port@2
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@2
(XEN) /soc/funnel@f6501000/ports/port@2 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@2
(XEN) handle /soc/funnel@f6501000/ports/port@2/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@2/endpoint
(XEN) /soc/funnel@f6501000/ports/port@2/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6501000/ports/port@2/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6501000/ports/port@2/endpoint
(XEN) handle /soc/uart@f7114000
(XEN) dt_irq_number: dev=/soc/uart@f7114000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7114000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000028...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/uart@f7114000 passthrough = 1 naddr = 1
(XEN) Check if /soc/uart@f7114000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/uart@f7114000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7114000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000028...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7114000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000028...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 72
(XEN) DT: ** translation for device /soc/uart@f7114000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7114000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7114000
(XEN) DT: one level translation:<3> 00000000<3> f7114000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7114000 - 00f7115000 P2MType=5
(XEN) handle /soc/gpio@f702d000
(XEN) dt_irq_number: dev=/soc/gpio@f702d000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000045...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702d000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702d000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702d000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000045...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702d000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000045...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 101
(XEN) DT: ** translation for device /soc/gpio@f702d000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702d000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702d000
(XEN) DT: one level translation:<3> 00000000<3> f702d000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702d000 - 00f702e000 P2MType=5
(XEN) handle /soc/uart@f7111000
(XEN) dt_irq_number: dev=/soc/uart@f7111000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7111000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000025...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/uart@f7111000 passthrough = 1 naddr = 1
(XEN) Check if /soc/uart@f7111000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/uart@f7111000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7111000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000025...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f7111000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000025...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 69
(XEN) DT: ** translation for device /soc/uart@f7111000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7111000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7111000
(XEN) DT: one level translation:<3> 00000000<3> f7111000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7111000 - 00f7112000 P2MType=5
(XEN) handle /soc/uart@f7111000/bluetooth
(XEN) dt_irq_number: dev=/soc/uart@f7111000/bluetooth
(XEN) /soc/uart@f7111000/bluetooth passthrough = 1 naddr = 0
(XEN) Check if /soc/uart@f7111000/bluetooth is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/uart@f7111000/bluetooth
(XEN) handle /soc/etr@f6404000
(XEN) dt_irq_number: dev=/soc/etr@f6404000
(XEN) /soc/etr@f6404000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etr@f6404000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etr@f6404000
(XEN) DT: ** translation for device /soc/etr@f6404000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6404000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6404000
(XEN) DT: one level translation:<3> 00000000<3> f6404000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6404000 - 00f6405000 P2MType=5
(XEN) handle /soc/etr@f6404000/ports
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports
(XEN) /soc/etr@f6404000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/etr@f6404000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports
(XEN) handle /soc/etr@f6404000/ports/port@0
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports/port@0
(XEN) /soc/etr@f6404000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/etr@f6404000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports/port@0
(XEN) handle /soc/etr@f6404000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports/port@0/endpoint
(XEN) /soc/etr@f6404000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etr@f6404000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etr@f6404000/ports/port@0/endpoint
(XEN) handle /soc/timer@f8008000
(XEN) dt_irq_number: dev=/soc/timer@f8008000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=1
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/timer@f8008000 passthrough = 1 naddr = 1
(XEN) Check if /soc/timer@f8008000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/timer@f8008000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000e...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 46
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=1
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/timer@f8008000, index=1
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=6
(XEN)  intsize=3 intlen=6
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 47
(XEN) DT: ** translation for device /soc/timer@f8008000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8008000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8008000
(XEN) DT: one level translation:<3> 00000000<3> f8008000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8008000 - 00f8009000 P2MType=5
(XEN) handle /soc/gpio@f702a000
(XEN) dt_irq_number: dev=/soc/gpio@f702a000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702a000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000042...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f702a000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f702a000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f702a000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702a000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000042...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f702a000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000042...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 98
(XEN) DT: ** translation for device /soc/gpio@f702a000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f702a000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f702a000
(XEN) DT: one level translation:<3> 00000000<3> f702a000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f702a000 - 00f702b000 P2MType=5
(XEN) handle /soc/dma@f7370000
(XEN) dt_irq_number: dev=/soc/dma@f7370000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dma@f7370000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000054...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/dma@f7370000 passthrough = 1 naddr = 1
(XEN) Check if /soc/dma@f7370000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/dma@f7370000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/dma@f7370000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000054...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/dma@f7370000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000054...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 116
(XEN) DT: ** translation for device /soc/dma@f7370000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7370000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7370000
(XEN) DT: one level translation:<3> 00000000<3> f7370000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7370000 - 00f7371000 P2MType=5
(XEN) handle /soc/i2c@f7100000
(XEN) dt_irq_number: dev=/soc/i2c@f7100000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/i2c@f7100000 passthrough = 1 naddr = 1
(XEN) Check if /soc/i2c@f7100000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/i2c@f7100000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/i2c@f7100000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000002c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 76
(XEN) DT: ** translation for device /soc/i2c@f7100000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7100000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7100000
(XEN) DT: one level translation:<3> 00000000<3> f7100000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7100000 - 00f7101000 P2MType=5
(XEN) handle /soc/etm@f659d000
(XEN) dt_irq_number: dev=/soc/etm@f659d000
(XEN) /soc/etm@f659d000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f659d000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659d000
(XEN) DT: ** translation for device /soc/etm@f659d000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f659d000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f659d000
(XEN) DT: one level translation:<3> 00000000<3> f659d000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f659d000 - 00f659e000 P2MType=5
(XEN) handle /soc/etm@f659d000/port
(XEN) dt_irq_number: dev=/soc/etm@f659d000/port
(XEN) /soc/etm@f659d000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659d000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659d000/port
(XEN) handle /soc/etm@f659d000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f659d000/port/endpoint
(XEN) /soc/etm@f659d000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f659d000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f659d000/port/endpoint
(XEN) handle /soc/uart@f8015000
(XEN) dt_irq_number: dev=/soc/uart@f8015000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f8015000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000024...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/uart@f8015000 passthrough = 1 naddr = 1
(XEN) Check if /soc/uart@f8015000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/uart@f8015000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f8015000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000024...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/uart@f8015000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000024...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 68
(XEN) DT: ** translation for device /soc/uart@f8015000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8015000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8015000
(XEN) DT: one level translation:<3> 00000000<3> f8015000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8015000 - 00f8016000 P2MType=5
(XEN) handle /soc/debug@f65d2000
(XEN) dt_irq_number: dev=/soc/debug@f65d2000
(XEN) /soc/debug@f65d2000 passthrough = 1 naddr = 1
(XEN) Check if /soc/debug@f65d2000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/debug@f65d2000
(XEN) DT: ** translation for device /soc/debug@f65d2000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65d2000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65d2000
(XEN) DT: one level translation:<3> 00000000<3> f65d2000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65d2000 - 00f65d3000 P2MType=5
(XEN) handle /soc/gpio@f7027000
(XEN) dt_irq_number: dev=/soc/gpio@f7027000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7027000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7027000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7027000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7027000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7027000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7027000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003f...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 95
(XEN) DT: ** translation for device /soc/gpio@f7027000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7027000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7027000
(XEN) DT: one level translation:<3> 00000000<3> f7027000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7027000 - 00f7028000 P2MType=5
(XEN) handle /soc/funnel@f6401000
(XEN) dt_irq_number: dev=/soc/funnel@f6401000
(XEN) /soc/funnel@f6401000 passthrough = 1 naddr = 1
(XEN) Check if /soc/funnel@f6401000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000
(XEN) DT: ** translation for device /soc/funnel@f6401000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6401000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6401000
(XEN) DT: one level translation:<3> 00000000<3> f6401000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6401000 - 00f6402000 P2MType=5
(XEN) handle /soc/funnel@f6401000/ports
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports
(XEN) /soc/funnel@f6401000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6401000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports
(XEN) handle /soc/funnel@f6401000/ports/port@0
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@0
(XEN) /soc/funnel@f6401000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6401000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@0
(XEN) handle /soc/funnel@f6401000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@0/endpoint
(XEN) /soc/funnel@f6401000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6401000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@0/endpoint
(XEN) handle /soc/funnel@f6401000/ports/port@1
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@1
(XEN) /soc/funnel@f6401000/ports/port@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6401000/ports/port@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@1
(XEN) handle /soc/funnel@f6401000/ports/port@1/endpoint
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@1/endpoint
(XEN) /soc/funnel@f6401000/ports/port@1/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/funnel@f6401000/ports/port@1/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/funnel@f6401000/ports/port@1/endpoint
(XEN) handle /soc/gpio@f7024000
(XEN) dt_irq_number: dev=/soc/gpio@f7024000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7024000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7024000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7024000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7024000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7024000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7024000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000003c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 92
(XEN) DT: ** translation for device /soc/gpio@f7024000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7024000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7024000
(XEN) DT: one level translation:<3> 00000000<3> f7024000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7024000 - 00f7025000 P2MType=5
(XEN) handle /soc/gpio@f8014000
(XEN) dt_irq_number: dev=/soc/gpio@f8014000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8014000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000037...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f8014000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f8014000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f8014000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8014000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000037...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8014000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000037...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 87
(XEN) DT: ** translation for device /soc/gpio@f8014000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8014000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8014000
(XEN) DT: one level translation:<3> 00000000<3> f8014000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8014000 - 00f8015000 P2MType=5
(XEN) handle /soc/gpio@f7021000
(XEN) dt_irq_number: dev=/soc/gpio@f7021000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7021000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000039...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f7021000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f7021000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f7021000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7021000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000039...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f7021000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000039...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 89
(XEN) DT: ** translation for device /soc/gpio@f7021000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7021000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7021000
(XEN) DT: one level translation:<3> 00000000<3> f7021000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7021000 - 00f7022000 P2MType=5
(XEN) handle /soc/gpio@f8011000
(XEN) dt_irq_number: dev=/soc/gpio@f8011000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8011000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000034...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/gpio@f8011000 passthrough = 1 naddr = 1
(XEN) Check if /soc/gpio@f8011000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/gpio@f8011000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8011000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000034...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/gpio@f8011000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x00000034...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 84
(XEN) DT: ** translation for device /soc/gpio@f8011000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8011000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8011000
(XEN) DT: one level translation:<3> 00000000<3> f8011000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8011000 - 00f8012000 P2MType=5
(XEN) handle /soc/etf@f6402000
(XEN) dt_irq_number: dev=/soc/etf@f6402000
(XEN) /soc/etf@f6402000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etf@f6402000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000
(XEN) DT: ** translation for device /soc/etf@f6402000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6402000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6402000
(XEN) DT: one level translation:<3> 00000000<3> f6402000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6402000 - 00f6403000 P2MType=5
(XEN) handle /soc/etf@f6402000/ports
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports
(XEN) /soc/etf@f6402000/ports passthrough = 1 naddr = 0
(XEN) Check if /soc/etf@f6402000/ports is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports
(XEN) handle /soc/etf@f6402000/ports/port@0
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@0
(XEN) /soc/etf@f6402000/ports/port@0 passthrough = 1 naddr = 0
(XEN) Check if /soc/etf@f6402000/ports/port@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@0
(XEN) handle /soc/etf@f6402000/ports/port@0/endpoint
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@0/endpoint
(XEN) /soc/etf@f6402000/ports/port@0/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etf@f6402000/ports/port@0/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@0/endpoint
(XEN) handle /soc/etf@f6402000/ports/port@1
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@1
(XEN) /soc/etf@f6402000/ports/port@1 passthrough = 1 naddr = 0
(XEN) Check if /soc/etf@f6402000/ports/port@1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@1
(XEN) handle /soc/etf@f6402000/ports/port@1/endpoint
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@1/endpoint
(XEN) /soc/etf@f6402000/ports/port@1/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etf@f6402000/ports/port@1/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etf@f6402000/ports/port@1/endpoint
(XEN) handle /soc/rtc@f8003000
(XEN) dt_irq_number: dev=/soc/rtc@f8003000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8003000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) /soc/rtc@f8003000 passthrough = 1 naddr = 1
(XEN) Check if /soc/rtc@f8003000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/rtc@f8003000
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8003000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN) dt_device_get_raw_irq: dev=/soc/rtc@f8003000, index=0
(XEN)  using 'interrupts' property
(XEN)  intspec=0 intlen=3
(XEN)  intsize=3 intlen=3
(XEN) dt_irq_map_raw: par=/interrupt-controller@f6801000,intspec=[0x00000000 0x0000000c...],ointsize=3
(XEN) dt_irq_map_raw: ipar=/interrupt-controller@f6801000, size=3
(XEN)  -> addrsize=0
(XEN)  -> got it !
(XEN)   - IRQ: 44
(XEN) DT: ** translation for device /soc/rtc@f8003000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f8003000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f8003000
(XEN) DT: one level translation:<3> 00000000<3> f8003000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8003000 - 00f8004000 P2MType=5
(XEN) handle /soc/sys_ctrl@f7030000
(XEN) dt_irq_number: dev=/soc/sys_ctrl@f7030000
(XEN) /soc/sys_ctrl@f7030000 passthrough = 1 naddr = 1
(XEN) Check if /soc/sys_ctrl@f7030000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/sys_ctrl@f7030000
(XEN) DT: ** translation for device /soc/sys_ctrl@f7030000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f7030000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f7030000
(XEN) DT: one level translation:<3> 00000000<3> f7030000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f7030000 - 00f7032000 P2MType=5
(XEN) handle /soc/acpu_sctrl@f6504000
(XEN) dt_irq_number: dev=/soc/acpu_sctrl@f6504000
(XEN) /soc/acpu_sctrl@f6504000 passthrough = 1 naddr = 1
(XEN) Check if /soc/acpu_sctrl@f6504000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/acpu_sctrl@f6504000
(XEN) DT: ** translation for device /soc/acpu_sctrl@f6504000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f6504000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f6504000
(XEN) DT: one level translation:<3> 00000000<3> f6504000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f6504000 - 00f6505000 P2MType=5
(XEN) handle /soc/etm@f65dd000
(XEN) dt_irq_number: dev=/soc/etm@f65dd000
(XEN) /soc/etm@f65dd000 passthrough = 1 naddr = 1
(XEN) Check if /soc/etm@f65dd000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dd000
(XEN) DT: ** translation for device /soc/etm@f65dd000 **
(XEN) DT: bus is default (na=2, ns=2) on /soc
(XEN) DT: translating address:<3> 00000000<3> f65dd000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: f65dd000
(XEN) DT: one level translation:<3> 00000000<3> f65dd000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f65dd000 - 00f65de000 P2MType=5
(XEN) handle /soc/etm@f65dd000/port
(XEN) dt_irq_number: dev=/soc/etm@f65dd000/port
(XEN) /soc/etm@f65dd000/port passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65dd000/port is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dd000/port
(XEN) handle /soc/etm@f65dd000/port/endpoint
(XEN) dt_irq_number: dev=/soc/etm@f65dd000/port/endpoint
(XEN) /soc/etm@f65dd000/port/endpoint passthrough = 1 naddr = 0
(XEN) Check if /soc/etm@f65dd000/port/endpoint is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/soc/etm@f65dd000/port/endpoint
(XEN) handle /leds
(XEN) dt_irq_number: dev=/leds
(XEN) /leds passthrough = 1 naddr = 0
(XEN) Check if /leds is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds
(XEN) handle /leds/user_led1
(XEN) dt_irq_number: dev=/leds/user_led1
(XEN) /leds/user_led1 passthrough = 1 naddr = 0
(XEN) Check if /leds/user_led1 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/user_led1
(XEN) handle /leds/wlan_active_led
(XEN) dt_irq_number: dev=/leds/wlan_active_led
(XEN) /leds/wlan_active_led passthrough = 1 naddr = 0
(XEN) Check if /leds/wlan_active_led is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/wlan_active_led
(XEN) handle /leds/user_led4
(XEN) dt_irq_number: dev=/leds/user_led4
(XEN) /leds/user_led4 passthrough = 1 naddr = 0
(XEN) Check if /leds/user_led4 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/user_led4
(XEN) handle /leds/user_led2
(XEN) dt_irq_number: dev=/leds/user_led2
(XEN) /leds/user_led2 passthrough = 1 naddr = 0
(XEN) Check if /leds/user_led2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/user_led2
(XEN) handle /leds/bt_active_led
(XEN) dt_irq_number: dev=/leds/bt_active_led
(XEN) /leds/bt_active_led passthrough = 1 naddr = 0
(XEN) Check if /leds/bt_active_led is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/bt_active_led
(XEN) handle /leds/user_led3
(XEN) dt_irq_number: dev=/leds/user_led3
(XEN) /leds/user_led3 passthrough = 1 naddr = 0
(XEN) Check if /leds/user_led3 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/leds/user_led3
(XEN) handle /psci
(XEN)   Skip it (matched)
(XEN) handle /regulator@2
(XEN) dt_irq_number: dev=/regulator@2
(XEN) /regulator@2 passthrough = 1 naddr = 0
(XEN) Check if /regulator@2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/regulator@2
(XEN) handle /cpu_opp_table
(XEN) dt_irq_number: dev=/cpu_opp_table
(XEN) /cpu_opp_table passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table
(XEN) handle /cpu_opp_table/opp04
(XEN) dt_irq_number: dev=/cpu_opp_table/opp04
(XEN) /cpu_opp_table/opp04 passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table/opp04 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table/opp04
(XEN) handle /cpu_opp_table/opp02
(XEN) dt_irq_number: dev=/cpu_opp_table/opp02
(XEN) /cpu_opp_table/opp02 passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table/opp02 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table/opp02
(XEN) handle /cpu_opp_table/opp00
(XEN) dt_irq_number: dev=/cpu_opp_table/opp00
(XEN) /cpu_opp_table/opp00 passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table/opp00 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table/opp00
(XEN) handle /cpu_opp_table/opp03
(XEN) dt_irq_number: dev=/cpu_opp_table/opp03
(XEN) /cpu_opp_table/opp03 passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table/opp03 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table/opp03
(XEN) handle /cpu_opp_table/opp01
(XEN) dt_irq_number: dev=/cpu_opp_table/opp01
(XEN) /cpu_opp_table/opp01 passthrough = 1 naddr = 0
(XEN) Check if /cpu_opp_table/opp01 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/cpu_opp_table/opp01
(XEN) handle /interrupt-controller@f6801000
(XEN) Create gic node
(XEN)   Set phandle = 0x1
(XEN) handle /regulator@0
(XEN) dt_irq_number: dev=/regulator@0
(XEN) /regulator@0 passthrough = 1 naddr = 0
(XEN) Check if /regulator@0 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/regulator@0
(XEN) handle /reboot-mode-syscon@5f01000
(XEN) dt_irq_number: dev=/reboot-mode-syscon@5f01000
(XEN) /reboot-mode-syscon@5f01000 passthrough = 1 naddr = 1
(XEN) Check if /reboot-mode-syscon@5f01000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/reboot-mode-syscon@5f01000
(XEN) DT: ** translation for device /reboot-mode-syscon@5f01000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> 05f01000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 0005f01000 - 0005f02000 P2MType=5
(XEN) handle /reboot-mode-syscon@5f01000/reboot-mode
(XEN) dt_irq_number: dev=/reboot-mode-syscon@5f01000/reboot-mode
(XEN) /reboot-mode-syscon@5f01000/reboot-mode passthrough = 1 naddr = 0
(XEN) Check if /reboot-mode-syscon@5f01000/reboot-mode is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/reboot-mode-syscon@5f01000/reboot-mode
(XEN) handle /timer
(XEN) Create timer node
(XEN)   Secure interrupt 29
(XEN)   Non secure interrupt 30
(XEN)   Virt interrupt 27
(XEN) handle /sound_card
(XEN) dt_irq_number: dev=/sound_card
(XEN) /sound_card passthrough = 1 naddr = 0
(XEN) Check if /sound_card is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/sound_card
(XEN) handle /aliases
(XEN) dt_irq_number: dev=/aliases
(XEN) /aliases passthrough = 1 naddr = 0
(XEN) Check if /aliases is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/aliases
(XEN) handle /chosen
(XEN) dt_irq_number: dev=/chosen
(XEN) /chosen passthrough = 1 naddr = 0
(XEN) Check if /chosen is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/chosen
(XEN) handle /chosen/module@5a627000
(XEN)   Skip it (matched)
(XEN) handle /firmware
(XEN) dt_irq_number: dev=/firmware
(XEN) /firmware passthrough = 1 naddr = 0
(XEN) Check if /firmware is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/firmware
(XEN) handle /firmware/optee
(XEN) dt_irq_number: dev=/firmware/optee
(XEN) /firmware/optee passthrough = 1 naddr = 0
(XEN) Check if /firmware/optee is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/firmware/optee
(XEN) handle /pmic@f8000000
(XEN) dt_irq_number: dev=/pmic@f8000000
(XEN) /pmic@f8000000 passthrough = 1 naddr = 1
(XEN) Check if /pmic@f8000000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000
(XEN) DT: ** translation for device /pmic@f8000000 **
(XEN) DT: bus is default (na=2, ns=2) on /
(XEN) DT: translating address:<3> 00000000<3> f8000000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 00f8000000 - 00f8001000 P2MType=5
(XEN) handle /pmic@f8000000/regulators
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators
(XEN) /pmic@f8000000/regulators passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators
(XEN) handle /pmic@f8000000/regulators/LDO7
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO7
(XEN) /pmic@f8000000/regulators/LDO7 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO7 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO7
(XEN) handle /pmic@f8000000/regulators/LDO14
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO14
(XEN) /pmic@f8000000/regulators/LDO14 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO14 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO14
(XEN) handle /pmic@f8000000/regulators/LDO22
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO22
(XEN) /pmic@f8000000/regulators/LDO22 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO22 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO22
(XEN) handle /pmic@f8000000/regulators/LDO10
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO10
(XEN) /pmic@f8000000/regulators/LDO10 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO10 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO10
(XEN) handle /pmic@f8000000/regulators/LDO19
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO19
(XEN) /pmic@f8000000/regulators/LDO19 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO19 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO19
(XEN) handle /pmic@f8000000/regulators/LDO17
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO17
(XEN) /pmic@f8000000/regulators/LDO17 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO17 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO17
(XEN) handle /pmic@f8000000/regulators/LDO15
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO15
(XEN) /pmic@f8000000/regulators/LDO15 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO15 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO15
(XEN) handle /pmic@f8000000/regulators/LDO13
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO13
(XEN) /pmic@f8000000/regulators/LDO13 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO13 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO13
(XEN) handle /pmic@f8000000/regulators/LDO2
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO2
(XEN) /pmic@f8000000/regulators/LDO2 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO2 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO2
(XEN) handle /pmic@f8000000/regulators/LDO21
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO21
(XEN) /pmic@f8000000/regulators/LDO21 passthrough = 1 naddr = 0
(XEN) Check if /pmic@f8000000/regulators/LDO21 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/pmic@f8000000/regulators/LDO21
(XEN) handle /cpus
(XEN)   Skip it (matched)
(XEN) handle /reserved-memory
(XEN) dt_irq_number: dev=/reserved-memory
(XEN) /reserved-memory passthrough = 1 naddr = 0
(XEN) Check if /reserved-memory is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/reserved-memory
(XEN) handle /reserved-memory/linux,cma
(XEN) dt_irq_number: dev=/reserved-memory/linux,cma
(XEN) /reserved-memory/linux,cma passthrough = 1 naddr = 0
(XEN) Check if /reserved-memory/linux,cma is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/reserved-memory/linux,cma
(XEN) handle /reserved-memory/ramoops@21f00000
(XEN) dt_irq_number: dev=/reserved-memory/ramoops@21f00000
(XEN) /reserved-memory/ramoops@21f00000 passthrough = 1 naddr = 1
(XEN) Check if /reserved-memory/ramoops@21f00000 is behind the IOMMU and add it
(XEN) dt_irq_number: dev=/reserved-memory/ramoops@21f00000
(XEN) DT: ** translation for device /reserved-memory/ramoops@21f00000 **
(XEN) DT: bus is default (na=2, ns=2) on /reserved-memory
(XEN) DT: translating address:<3> 00000000<3> 21f00000<3>
(XEN) DT: parent bus is default (na=2, ns=2) on /
(XEN) DT: empty ranges; 1:1 translation
(XEN) DT: parent translation for:<3> 00000000<3> 00000000<3>
(XEN) DT: with offset: 21f00000
(XEN) DT: one level translation:<3> 00000000<3> 21f00000<3>
(XEN) DT: reached root node
(XEN)   - MMIO: 0021f00000 - 0022000000 P2MType=5
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Create hypervisor node
(XEN) Create PSCI node
(XEN) Create cpus node
(XEN) Create cpu@0 (logical CPUID: 0) node
(XEN) Create memory node (reg size 4, nr cells 16)
(XEN)   Bank 0: 0x40000000->0x58000000
(XEN)   Bank 1: 0x60000000->0x70000000
(XEN)   Bank 2: 0x78000000->0x7c000000
(XEN)   Bank 3: 0x7e000000->0x7f000000
(XEN) Create memory node (reg size 4, nr cells 4)
(XEN)   Bank 0: 0x21f00000->0x22000000
(XEN) Loading zImage from 000000005a627000 to 0000000040080000-00000000413b3200
(XEN) Loading d0 DTB to 0x0000000048000000-0x0000000048008b79
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM in background
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 336kB init memory.
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER4
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER8
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER12
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER16
(XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd033]
[    0.000000] Linux version 4.19.5 (root@6e1e30ef4c47) (gcc version 6.3.0 (Alpine 6.3.0)) #1 SMP PREEMPT Wed Dec 25 07:33:39 UTC 2019
[    0.000000] Machine model: HiKey Development Board
[    0.000000] Xen 4.13 support found
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000068000000, size 128 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000007effffff]
[    0.000000] NUMA: NODE_DATA [mem 0x7efc2880-0x7efc403f]
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000021f00000-0x000000007effffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000021f00000-0x0000000021ffffff]
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000057ffffff]
[    0.000000]   node   0: [mem 0x0000000060000000-0x000000006fffffff]
[    0.000000]   node   0: [mem 0x0000000078000000-0x000000007bffffff]
[    0.000000]   node   0: [mem 0x000000007e000000-0x000000007effffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000021f00000-0x000000007effffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x414 with crng_init=0
[    0.000000] percpu: Embedded 23 pages/cpu @(____ptrval____) s56664 r8192 d29352 u94208
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 843419
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] CPU features: enabling workaround for Speculative Store Bypass Disable
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 181692
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: console=hvc0 root=PARTUUID=59b48ce2-0859-4fb8-a31c-cbe6724a3656 rootdelay=3
[    0.000000] Memory: 552972K/738304K available (11132K kernel code, 1804K rwdata, 5312K rodata, 1344K init, 390K bss, 54260K reserved, 131072K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
[    0.000000] 	Tasks RCU enabled.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 99544814920 ns
[    0.000005] sched_clock: 32 bits at 19MHz, resolution 52ns, wraps every 111848106981ns
[    0.000361] arch_timer: cp15 timer(s) running at 1.20MHz (virt).
[    0.000369] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x11b661f8e, max_idle_ns: 1763180809113 ns
[    0.000528] Console: colour dummy device 80x25
[    0.305979] console [hvc0] enabled
[    0.309513] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.40 BogoMIPS (lpj=4800)
[    0.319599] pid_max: default: 32768 minimum: 301
[    0.324337] Security Framework initialized
[    0.328777] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.335974] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.342776] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.349523] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.381073] ASID allocator initialised with 32768 entries
[    0.387040] xen:grant_table: Grant tables using version 1 layout
[    0.392978] Grant table initialized
[    0.396517] xen:events: Using FIFO-based ABI
[    0.400892] Xen: initializing cpu0
[    0.408995] rcu: Hierarchical SRCU implementation.
[    0.426021] EFI services will not be available.
[    0.438596] smp: Bringing up secondary CPUs ...
[    0.443045] smp: Brought up 1 node, 1 CPU
[    0.447114] SMP: Total of 1 processors activated.
[    0.451887] CPU features: detected: 32-bit EL0 Support
[    0.460155] CPU: All CPU(s) started at EL1
[    0.464169] alternatives: patching kernel code
[    0.469460] devtmpfs: initialized
[    0.481124] Registered cp15_barrier emulation handler
[    0.486116] Registered setend emulation handler
[    0.490951] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.500641] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.509681] pinctrl core: initialized pinctrl subsystem
[    0.517709] DMI not present or invalid.
[    0.523395] NET: Registered protocol family 16
[    0.528412] audit: initializing netlink subsys (disabled)
[    0.535604] audit: type=2000 audit(0.336:1): state=initialized audit_enabled=0 res=1
[    0.544977] vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
[    0.553642] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.561339] DMA: preallocated 256 KiB pool for atomic allocations
[    0.567571] xen:swiotlb_xen: Warning: only able to allocate 4 MB for software IO TLB
[    0.575978] software IO TLB: mapped [mem 0x79c00000-0x7a000000] (4MB)
[    0.584419] Serial: AMBA PL011 UART driver
[    0.594072] hi6220-mbox f7510000.mailbox: Mailbox enabled
[    0.612021] OF: amba_device_add() failed (-19) for /soc/uart@f7111000
[    0.620786] f8015000.uart: ttyAMA0 at MMIO 0xf8015000 (irq = 39, base_baud = 0) is a PL011 rev2
[    0.679043] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.689847] cryptd: max_cpu_qlen set to 1000
[    0.702650] ACPI: Interpreter disabled.
[    0.707945] xen:balloon: Initialising balloon driver
[    0.714979] vgaarb: loaded
[    0.718978] SCSI subsystem initialized
[    0.727667] usbcore: registered new interface driver usbfs
[    0.733759] usbcore: registered new interface driver hub
[    0.739138] usbcore: registered new device driver usb
[    0.745801] pps_core: LinuxPPS API ver. 1 registered
[    0.751499] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.760672] PTP clock support registered
[    0.764913] EDAC MC: Ver: 3.0.0
[    0.773221] NetLabel: Initializing
[    0.776534] NetLabel:  domain hash size = 128
[    0.781669] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.787384] NetLabel:  unlabeled traffic allowed by default
[    0.793491] clocksource: Switched to clocksource arch_sys_counter
[    0.799835] VFS: Disk quotas dquot_6.6.0
[    0.803734] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.810814] pnp: PnP ACPI: disabled
[    0.826475] OF: /soc/thermal-zones/cls0/cooling-maps/map0: could not find phandle
[    0.835962] missing cooling_device property
[    0.840188] failed to build thermal zone cls0: -22
[    0.845237] NET: Registered protocol family 2
[    0.850028] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
[    0.857741] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.864809] TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
[    0.871403] TCP: Hash tables configured (established 8192 bind 8192)
[    0.877829] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.883757] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.890240] NET: Registered protocol family 1
[    0.895251] kvm [1]: HYP mode not available
[    0.902171] Initialise system trusted keyrings
[    0.907662] workingset: timestamp_bits=44 max_order=18 bucket_order=0
[    0.928333] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.935630] 9p: Installing v9fs 9p2000 file system support
[    0.941825] pstore: using deflate compression
[    0.949309] Key type asymmetric registered
[    0.953451] Asymmetric key parser 'x509' registered
[    0.958492] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    0.969979] io scheduler noop registered
[    0.973851] io scheduler deadline registered
[    0.978343] io scheduler cfq registered (default)
[    0.983015] io scheduler mq-deadline registered
[    0.987566] io scheduler kyber registered
[    0.999340] pinctrl-single f7010000.pinmux: 159 pins, size 636
[    1.006655] pinctrl-single f8001800.pinmux: 30 pins, size 120
[    1.012965] pinctrl-single f7010800.pinmux: 163 pins, size 652
[    1.022624] pl061_gpio f702f000.gpio: PL061 GPIO chip @0x00000000f702f000 registered
[    1.032604] pl061_gpio f702c000.gpio: PL061 GPIO chip @0x00000000f702c000 registered
[    1.041052] pl061_gpio f7029000.gpio: PL061 GPIO chip @0x00000000f7029000 registered
[    1.049351] pl061_gpio f7026000.gpio: PL061 GPIO chip @0x00000000f7026000 registered
[    1.058086] pl061_gpio f7023000.gpio: PL061 GPIO chip @0x00000000f7023000 registered
[    1.066414] pl061_gpio f8013000.gpio: PL061 GPIO chip @0x00000000f8013000 registered
[    1.074687] pl061_gpio f7020000.gpio: PL061 GPIO chip @0x00000000f7020000 registered
[    1.082988] pl061_gpio f702e000.gpio: PL061 GPIO chip @0x00000000f702e000 registered
[    1.091369] pl061_gpio f702b000.gpio: PL061 GPIO chip @0x00000000f702b000 registered
[    1.099714] pl061_gpio f7028000.gpio: PL061 GPIO chip @0x00000000f7028000 registered
[    1.108080] pl061_gpio f7025000.gpio: PL061 GPIO chip @0x00000000f7025000 registered
[    1.116411] pl061_gpio f7022000.gpio: PL061 GPIO chip @0x00000000f7022000 registered
[    1.124735] pl061_gpio f8012000.gpio: PL061 GPIO chip @0x00000000f8012000 registered
[    1.133101] pl061_gpio f702d000.gpio: PL061 GPIO chip @0x00000000f702d000 registered
[    1.141451] pl061_gpio f702a000.gpio: PL061 GPIO chip @0x00000000f702a000 registered
[    1.149898] pl061_gpio f7027000.gpio: PL061 GPIO chip @0x00000000f7027000 registered
[    1.157902] gpio gpiochip16: names 9 do not match number of GPIOs 8
[    1.164368] pl061_gpio f7024000.gpio: PL061 GPIO chip @0x00000000f7024000 registered
[    1.172236] gpio gpiochip17: names 9 do not match number of GPIOs 8
[    1.178743] pl061_gpio f8014000.gpio: PL061 GPIO chip @0x00000000f8014000 registered
[    1.186992] pl061_gpio f7021000.gpio: PL061 GPIO chip @0x00000000f7021000 registered
[    1.195327] pl061_gpio f8011000.gpio: PL061 GPIO chip @0x00000000f8011000 registered
[    1.208498] EINJ: ACPI disabled.
[    1.221236] k3-dma f7370000.dma: initialized
[    1.232733] xen:xen_evtchn: Event-channel device installed
[    1.249203] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.259838] SuperH (H)SCI(F) driver initialized
[    1.266667] msm_serial: driver initialized
[    1.272285] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.285050] loop: module loaded
[    1.289429] Invalid max_queues (4), will use default max: 1.
[    1.298353] VDD_3V3: supplied by SYS_5V
[    1.308372] libphy: Fixed MDIO Bus: probed
[    1.317832] tun: Universal TUN/TAP device driver, 1.6
[    1.325259] xen_netfront: Initialising Xen virtual ethernet driver
[    1.332105] usbcore: registered new interface driver asix
[    1.337877] usbcore: registered new interface driver ax88179_178a
[    1.344223] VFIO - User Level meta-driver version: 0.3
[    1.354813] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.361650] ehci-pci: EHCI PCI platform driver
[    1.366134] ehci-platform: EHCI generic platform driver
[    1.371601] ehci-orion: EHCI orion driver
[    1.375715] ehci-exynos: EHCI EXYNOS driver
[    1.380003] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.386167] ohci-pci: OHCI PCI platform driver
[    1.390703] ohci-platform: OHCI generic platform driver
[    1.396099] ohci-exynos: OHCI EXYNOS driver
[    1.400925] usbcore: registered new interface driver usb-storage
[    1.407288] usbcore: registered new interface driver usbserial_generic
[    1.413890] usbserial: USB Serial support registered for generic
[    1.421097] input: HISI 65xx PowerOn Key as /devices/platform/f8000000.pmic/hi65xx-powerkey.0.auto/input/input0
[    1.433733] rtc-pl031 f8004000.rtc: rtc core: registered pl031 as rtc0
[    1.441653] rtc-pl031 f8003000.rtc: rtc core: registered pl031 as rtc1
[    1.449690] i2c /dev entries driver
[    1.460080] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    1.467716] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    1.476653] sp805-wdt f8005000.watchdog: registration successful
[    1.484874] sdhci: Secure Digital Host Controller Interface driver
[    1.491958] sdhci: Copyright(c) Pierre Ossman
[    1.496848] Synopsys Designware Multimedia Card Interface Driver
[    1.504080] dwmmc_k3 f723f000.dwmmc2: fifo-depth property not found, using value of FIFOTH register as default
[    1.514396] dwmmc_k3 f723f000.dwmmc2: IDMAC supports 32-bit address mode.
[    1.521410] dwmmc_k3 f723f000.dwmmc2: Using internal DMA controller.
[    1.527736] dwmmc_k3 f723f000.dwmmc2: Version ID is 250a
[    1.533127] dwmmc_k3 f723f000.dwmmc2: DW MMC controller at irq 11,32 bit host data width,128 deep fifo
[    1.542533] dwmmc_k3 f723f000.dwmmc2: Linked as a consumer to regulator.1
[    1.549353] dwmmc_k3 f723f000.dwmmc2: allocated mmc-pwrseq
[    1.554818] mmc_host mmc0: card is non-removable.
[    1.572474] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.594948] dwmmc_k3 f723e000.dwmmc1: fifo-depth property not found, using value of FIFOTH register as default
[    1.605387] dwmmc_k3 f723e000.dwmmc1: IDMAC supports 32-bit address mode.
[    1.616485] dwmmc_k3 f723e000.dwmmc1: Using internal DMA controller.
[    1.622815] dwmmc_k3 f723e000.dwmmc1: Version ID is 250a
[    1.628162] dwmmc_k3 f723f000.dwmmc2: card claims to support voltages below defined range
[    1.636438] dwmmc_k3 f723e000.dwmmc1: DW MMC controller at irq 19,32 bit host data width,128 deep fifo
[    1.645818] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.5
[    1.652668] dwmmc_k3 f723e000.dwmmc1: Linked as a consumer to regulator.4
[    1.659504] dwmmc_k3 f723e000.dwmmc1: Got CD GPIO
[    1.672580] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    1.682278] mmc_host mmc1: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.694556] mmc0: new SDIO card at address 0001
[    1.705202] dwmmc_k3 f723d000.dwmmc0: fifo-depth property not found, using value of FIFOTH register as default
[    1.715435] dwmmc_k3 f723d000.dwmmc0: IDMAC supports 32-bit address mode.
[    1.722370] dwmmc_k3 f723d000.dwmmc0: Using internal DMA controller.
[    1.728722] dwmmc_k3 f723d000.dwmmc0: Version ID is 250a
[    1.734091] dwmmc_k3 f723d000.dwmmc0: DW MMC controller at irq 20,32 bit host data width,256 deep fifo
[    1.743486] dwmmc_k3 f723d000.dwmmc0: Linked as a consumer to regulator.10
[    1.750438] mmc_host mmc2: card is non-removable.
[    1.765592] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    1.788951] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.798269] ledtrig-cpu: registered to indicate activity on CPUs
[    1.807950] usbcore: registered new interface driver usbhid
[    1.813858] mmc_host mmc1: Bus speed (slot 0) = 99200000Hz (slot req 100000000Hz, actual 99200000HZ div = 0)
[    1.824452] usbhid: USB HID core driver
[    1.828339] mmc1: new ultra high speed SDR50 SDHC card at address 0007
[    1.837944] optee: probing for conduit method from DT.
[    1.844894] mmcblk1: mmc1:0007 APUSD 14.9 GiB
(XEN) d0v0 Unhandled SMC/HVC: 0xbf00ff01
[    1.854103] optee: api uid mismatch
[    1.859087] xt_time: kernel timezone is -0000
[    1.864102] IPVS: Registered protocols ()
[    1.868652] IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
[    1.876383] IPVS: ipvs loaded.
[    1.879640] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    1.886424] gre: GRE over IPv4 demultiplexor driver
[    1.891761] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    1.899327] ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
[    1.905699] mmc_host mmc2: Bus speed (slot 0) = 198400000Hz (slot req 200000000Hz, actual 198400000HZ div = 0)
[    1.915709] GPT:716799 != 31293439
[    1.919160] Initializing XFRM netlink socket
[    1.923467] GPT:Alternate GPT header not at the end of the disk.
[    1.930335] NET: Registered protocol family 10
[    1.934813] mmc2: new HS200 MMC card at address 0001
[    1.939977] GPT:716799 != 31293439
[    1.944599] mmcblk2: mmc2:0001 8GND3R 7.28 GiB
[    1.949096] GPT: Use GNU Parted to correct GPT errors.
[    1.955057] mmcblk2boot0: mmc2:0001 8GND3R partition 1 4.00 MiB
[    1.961180] Segment Routing with IPv6
[    1.964821]  mmcblk1: p1 p4 p5
[    1.968736] NET: Registered protocol family 17
[    1.975231] mmcblk2boot1: mmc2:0001 8GND3R partition 2 4.00 MiB
[    1.981233] NET: Registered protocol family 15
[    1.985717] Bridge firewalling registered
[    1.989855] mmcblk2rpmb: mmc2:0001 8GND3R partition 3 512 KiB, chardev (239:0)
[    1.997172] 8021q: 802.1Q VLAN Support v1.8
[    2.001325] 9pnet: Installing 9P2000 support
[    2.006278] random: fast init done
[    2.010039] Initialising Xen transport for 9pfs
[    2.015107] Key type dns_resolver registered
[    2.020206]  mmcblk2: p1 p2 p3 p4 p5 p6 p7 p8 p11 p12 p13 p14 p19
[    2.027079] registered taskstats version 1
[    2.034649] Loading compiled-in X.509 certificates
[    2.046667] f7112000.uart: ttyAMA2 at MMIO 0xf7112000 (irq = 22, base_baud = 0) is a PL011 rev2
[    2.056501] 5V_HUB: supplied by SYS_5V
[    2.060837] ssp-pl022 f7106000.spi: ARM PL022 driver, device ID: 0x00041022
[    2.067959] ssp-pl022 f7106000.spi: mapped registers from 0x00000000f7106000 to (____ptrval____)
[    2.076798] ssp-pl022 f7106000.spi: setup for DMA on RX dma0chan0, TX dma0chan1
[    2.088419] phy phy-soc:usbphy.0: Linked as a consumer to regulator.13
[    2.096710] dwc2 f72c0000.usb: f72c0000.usb supply vusb_d not found, using dummy regulator
[    2.105134] dwc2 f72c0000.usb: Linked as a consumer to regulator.0
[    2.111251] dwc2 f72c0000.usb: f72c0000.usb supply vusb_a not found, using dummy regulator
[    2.325587] dwc2 f72c0000.usb: EPs: 16, dedicated fifos, 1920 entries in SPRAM
[    2.333544] dwc2 f72c0000.usb: DWC OTG Controller
[    2.338303] dwc2 f72c0000.usb: new USB bus registered, assigned bus number 1
[    2.345327] dwc2 f72c0000.usb: irq 13, io mem 0xf72c0000
[    2.351349] hub 1-0:1.0: USB hub found
[    2.355141] hub 1-0:1.0: 1 port detected
[    2.361269] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    2.368775] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    2.377679] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    2.384949] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    2.393025] rtc-pl031 f8004000.rtc: setting system clock to 1970-01-01 00:01:22 UTC (82)
[    2.401699] LDO2_2V8: disabling
[    2.404750] LDO13_1V8: disabling
[    2.408084] LDO14_2V8: disabling
[    2.411404] LDO17_2V5: disabling
[    2.415178] Waiting 3 sec before mounting root device...
[    2.753555] dwc2 f72c0000.usb: Set speed to high-speed
[    2.758612] usb 1-1: new high-speed USB device number 2 using dwc2
[    2.949547] dwc2 f72c0000.usb: Set speed to high-speed
[    2.974342] hub 1-1:1.0: USB hub found
[    2.978213] hub 1-1:1.0: 3 ports detected
[    2.984078] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    2.991531] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517
[    5.616318] VFS: Mounted root (squashfs filesystem) readonly on device 179:44.
[    5.625041] devtmpfs: mounted
[    5.628620] Freeing unused kernel memory: 1344K
[    5.633247] Run /sbin/init as init process
1970/01/01 00:01:25 error mounting dev to /dev: device or resource busy
[    6.645214] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    6.709347] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    6.733200] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 400000Hz, actual 400000HZ div = 31)
[    6.797214] mmc_host mmc0: Bus speed (slot 0) = 24800000Hz (slot req 25000000Hz, actual 24800000HZ div = 0)
[    6.809018] hisi_thermal f7030700.tsensor: failed to register sensor id 2: -517
[    6.829660] hisi_thermal f7030700.tsensor: failed to register thermal sensor: -517

[-- Attachment #3: Type: text/plain, Size: 157 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2019-12-31 22:48                                       ` Roman Shaposhnik
@ 2020-01-01 13:26                                         ` Julien Grall
  2020-01-06 18:13                                           ` Stefano Stabellini
  0 siblings, 1 reply; 30+ messages in thread
From: Julien Grall @ 2020-01-01 13:26 UTC (permalink / raw)
  To: Roman Shaposhnik; +Cc: xen-devel, Stefano Stabellini, Stefano Stabellini



On 31/12/2019 22:48, Roman Shaposhnik wrote:
> Hi!

Hi,

> 
> Good news: one that type was fixed Xen booted just fine and detected
> all the available 2G of memory.

Thank you for testing. @Stefano are you going to prepare and submit the 
patch?

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM
  2020-01-01 13:26                                         ` Julien Grall
@ 2020-01-06 18:13                                           ` Stefano Stabellini
  0 siblings, 0 replies; 30+ messages in thread
From: Stefano Stabellini @ 2020-01-06 18:13 UTC (permalink / raw)
  To: Julien Grall
  Cc: xen-devel, Roman Shaposhnik, Stefano Stabellini, Stefano Stabellini

On Wed, 1 Jan 2020, Julien Grall wrote:
> On 31/12/2019 22:48, Roman Shaposhnik wrote:
> > Hi!
> 
> Hi,
> 
> > 
> > Good news: one that type was fixed Xen booted just fine and detected
> > all the available 2G of memory.
> 
> Thank you for testing. @Stefano are you going to prepare and submit the patch?

yes, I will, thank you for spotting a bug in the patch

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2020-01-06 18:19 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-16 20:12 [Xen-devel] REGRESSION: Xen 4.13 RC5 fails to bootstrap Dom0 on ARM Roman Shaposhnik
2019-12-16 22:43 ` Stefano Stabellini
2019-12-17  2:55 ` Stefano Stabellini
2019-12-17  4:39   ` Roman Shaposhnik
2019-12-17 11:30     ` Julien Grall
2019-12-17 18:30       ` Stefano Stabellini
2019-12-17 18:33         ` Roman Shaposhnik
2019-12-17 19:25           ` Stefano Stabellini
2019-12-18  0:04             ` Roman Shaposhnik
2019-12-18  1:51               ` Stefano Stabellini
2019-12-18  2:56                 ` Roman Shaposhnik
2019-12-18  7:36                   ` Roman Shaposhnik
2019-12-18 11:50                     ` Julien Grall
2019-12-18 17:03                       ` Roman Shaposhnik
2019-12-18 22:17                         ` Julien Grall
2019-12-19  0:28                           ` Roman Shaposhnik
2019-12-19  7:58                             ` Julien Grall
2019-12-20  0:01                               ` Stefano Stabellini
2019-12-20  8:21                                 ` Julien Grall
2019-12-21  1:37                                 ` Roman Shaposhnik
2019-12-29 18:01                                   ` Julien Grall
2019-12-31  5:14                                     ` Roman Shaposhnik
2019-12-31 22:48                                       ` Roman Shaposhnik
2020-01-01 13:26                                         ` Julien Grall
2020-01-06 18:13                                           ` Stefano Stabellini
2019-12-18 13:02                   ` Julien Grall
2019-12-18 12:56               ` Julien Grall
2019-12-18 17:09                 ` Roman Shaposhnik
2019-12-18 22:40                   ` Julien Grall
2019-12-17 18:31       ` Roman Shaposhnik

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.