Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Fri Oct 2 16:18:39 BST 2020 (XEN) Latest ChangeSet: Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd (XEN) build-id: 05ec585524e05f933d11662012b43576ab57eb63 (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 11 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 10 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Data Abort Trap. Syndrome=0x5 (XEN) Walking Hypervisor VA 0x800440000000 on CPU0 via TTBR 0x00000000aac72000 (XEN) 0TH[0x100] = 0x00400000aac70f7f (XEN) 1ST[0x11] = 0x0000000000000000 (XEN) CPU0: Unexpected Trap: Data Abort (XEN) ----[ Xen-4.15-unstable arm64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) PC: 000000000025ed4c strlen+0x10/0x84 (XEN) LR: 00000000002030f8 (XEN) SP: 00000000002ffcf0 (XEN) CPSR: 60000249 MODE:64-bit EL2h (Hypervisor, handler) (XEN) X0: 000080043ee00000 X1: 0000800440000000 X2: ffffffffffffffff (XEN) X3: ffffffffffffffff X4: 0000000000000001 X5: 0000000000000000 (XEN) X6: 0000000000000000 X7: fefefefefefefefe X8: ffffffffffffffff (XEN) X9: fefefefefefefefe X10: ffffffffffffffff X11: 0101010101010101 (XEN) X12: 0000000000000038 X13: 00000000002883b8 X14: 00000000002ffb48 (XEN) X15: 0000000000000020 X16: 0000000000000000 X17: 00000000002b1000 (XEN) X18: 00000000002b2000 X19: 000080043ee00000 X20: 000000000029cb40 (XEN) X21: 000080042ffde5d0 X22: 0000000000000001 X23: 0000000000000000 (XEN) X24: 00000000002a23d0 X25: 0000000440000000 X26: 000000000000002d (XEN) X27: 00000000002e0910 X28: 00000000003fe440 FP: 00000000002ffcf0 (XEN) (XEN) VTCR_EL2: 80000000 (XEN) VTTBR_EL2: 0000000000000000 (XEN) (XEN) SCTLR_EL2: 30cd183d (XEN) HCR_EL2: 0000000000000038 (XEN) TTBR0_EL2: 00000000aac72000 (XEN) (XEN) ESR_EL2: 96000005 (XEN) HPFAR_EL2: 0000000000000000 (XEN) FAR_EL2: 0000800440000000 (XEN) (XEN) Xen stack trace from sp=00000000002ffcf0: (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 (XEN) Xen call trace: (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c (XEN) [<00000000002c417c>] device_init+0x90/0xdc (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 (XEN) (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) CPU0: Unexpected Trap: Data Abort (XEN) **************************************** (XEN) (XEN) Reboot in five seconds...
On the real HW it does actually reboot ;-)
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Fri Oct 2 16:18:39 BST 2020 (XEN) Latest ChangeSet: Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd (XEN) build-id: 05ec585524e05f933d11662012b43576ab57eb63 (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 11 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 10 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Data Abort Trap. Syndrome=0x5 (XEN) Walking Hypervisor VA 0x800440000000 on CPU0 via TTBR 0x00000000aac72000 (XEN) 0TH[0x100] = 0x00400000aac70f7f (XEN) 1ST[0x11] = 0x0000000000000000 (XEN) CPU0: Unexpected Trap: Data Abort (XEN) ----[ Xen-4.15-unstable arm64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) PC: 000000000025ed4c strlen+0x10/0x84 (XEN) LR: 00000000002030f8 (XEN) SP: 00000000002ffcf0 (XEN) CPSR: 60000249 MODE:64-bit EL2h (Hypervisor, handler) (XEN) X0: 000080043ee00000 X1: 0000800440000000 X2: ffffffffffffffff (XEN) X3: ffffffffffffffff X4: 0000000000000001 X5: 0000000000000000 (XEN) X6: 0000000000000000 X7: fefefefefefefefe X8: ffffffffffffffff (XEN) X9: fefefefefefefefe X10: ffffffffffffffff X11: 0101010101010101 (XEN) X12: 0000000000000038 X13: 00000000002883b8 X14: 00000000002ffb48 (XEN) X15: 0000000000000020 X16: 0000000000000000 X17: 00000000002b1000 (XEN) X18: 00000000002b2000 X19: 000080043ee00000 X20: 000000000029cb40 (XEN) X21: 000080042ffde5d0 X22: 0000000000000001 X23: 0000000000000000 (XEN) X24: 00000000002a23d0 X25: 0000000440000000 X26: 000000000000002d (XEN) X27: 00000000002e0910 X28: 00000000003fe440 FP: 00000000002ffcf0 (XEN) (XEN) VTCR_EL2: 80000000 (XEN) VTTBR_EL2: 0000000000000000 (XEN) (XEN) SCTLR_EL2: 30cd183d (XEN) HCR_EL2: 0000000000000038 (XEN) TTBR0_EL2: 00000000aac72000 (XEN) (XEN) ESR_EL2: 96000005 (XEN) HPFAR_EL2: 0000000000000000 (XEN) FAR_EL2: 0000800440000000 (XEN) (XEN) Xen stack trace from sp=00000000002ffcf0: (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 (XEN) Xen call trace: (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c (XEN) [<00000000002c417c>] device_init+0x90/0xdc (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30
This seems to be the same bug in GRUB noticed by Masami, where GRUB is adding strings to device tree at runtime without '\0' at the end. Julien posted a potential (untested) fix for GRUB:
diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c index 22cc25eccd9d..c9f017525465 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -211,7 +211,7 @@ finalize_params_xen_boot (void) additional_size += FDT_NODE_NAME_MAX_SIZE + xen_hypervisor->cmdline_size; FOR_LIST_ELEMENTS (module, module_head) { - additional_size += 6 * FDT_NODE_NAME_MAX_SIZE + sizeof(MODULE_CUSTOM_COMPATIBLE) - 1 + additional_size += 6 * FDT_NODE_NAME_MAX_SIZE + sizeof(MODULE_CUSTOM_COMPATIBLE) + module->cmdline_size; }
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip>
(XEN) (XEN) Xen stack trace from sp=00000000002ffcf0: (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 (XEN) Xen call trace: (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c (XEN) [<00000000002c417c>] device_init+0x90/0xdc (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30
This seems to be the same bug in GRUB noticed by Masami, where GRUB is adding strings to device tree at runtime without '\0' at the end. Julien posted a potential (untested) fix for GRUB:
diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c index 22cc25eccd9d..c9f017525465 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -211,7 +211,7 @@ finalize_params_xen_boot (void) additional_size += FDT_NODE_NAME_MAX_SIZE + xen_hypervisor->cmdline_size; FOR_LIST_ELEMENTS (module, module_head) {
- additional_size += 6 * FDT_NODE_NAME_MAX_SIZE + sizeof(MODULE_CUSTOM_COMPATIBLE) - 1
- additional_size += 6 * FDT_NODE_NAME_MAX_SIZE + sizeof(MODULE_CUSTOM_COMPATIBLE)
}
- module->cmdline_size;
I'm still seeing the same backtrace with that patch applied:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Fri Oct 2 16:18:39 BST 2020 (XEN) Latest ChangeSet: Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd (XEN) build-id: 05ec585524e05f933d11662012b43576ab57eb63 (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 11 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 10 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Data Abort Trap. Syndrome=0x5 (XEN) Walking Hypervisor VA 0x800440000000 on CPU0 via TTBR 0x00000000aac72000 (XEN) 0TH[0x100] = 0x00400000aac70f7f (XEN) 1ST[0x11] = 0x0000000000000000 (XEN) CPU0: Unexpected Trap: Data Abort (XEN) ----[ Xen-4.15-unstable arm64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) PC: 000000000025ed4c strlen+0x10/0x84 (XEN) LR: 00000000002030f8 (XEN) SP: 00000000002ffcf0 (XEN) CPSR: 60000249 MODE:64-bit EL2h (Hypervisor, handler) (XEN) X0: 000080043ee00000 X1: 0000800440000000 X2: ffffffffffffffff (XEN) X3: ffffffffffffffff X4: 0000000000000001 X5: 0000000000000000 (XEN) X6: 0000000000000000 X7: fefefefefefefefe X8: ffffffffffffffff (XEN) X9: fefefefefefefefe X10: ffffffffffffffff X11: 0101010101010101 (XEN) X12: 0000000000000038 X13: 00000000002883b8 X14: 00000000002ffb48 (XEN) X15: 0000000000000020 X16: 0000000000000000 X17: 00000000002b1000 (XEN) X18: 00000000002b2000 X19: 000080043ee00000 X20: 000000000029cb40 (XEN) X21: 000080042ffde5d0 X22: 0000000000000001 X23: 0000000000000000 (XEN) X24: 00000000002a23d0 X25: 0000000440000000 X26: 000000000000002d (XEN) X27: 00000000002e0910 X28: 00000000003fe440 FP: 00000000002ffcf0 (XEN) (XEN) VTCR_EL2: 80000000 (XEN) VTTBR_EL2: 0000000000000000 (XEN) (XEN) SCTLR_EL2: 30cd183d (XEN) HCR_EL2: 0000000000000038 (XEN) TTBR0_EL2: 00000000aac72000 (XEN) (XEN) ESR_EL2: 96000005 (XEN) HPFAR_EL2: 0000000000000000 (XEN) FAR_EL2: 0000800440000000 (XEN) (XEN) Xen stack trace from sp=00000000002ffcf0: (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 (XEN) Xen call trace: (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c (XEN) [<00000000002c417c>] device_init+0x90/0xdc (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 (XEN) (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) CPU0: Unexpected Trap: Data Abort (XEN) **************************************** (XEN) (XEN) Reboot in five seconds...
Grub does flash up some errors at the beginning but I'm having trouble making sense of any of them:
remove-symbol-file /home/steven/mcbin/Build/Armada80x0McBin-AARCH64/RELEASE_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/DEBUG/UiApp.dll 0xB2261000 error: failure reading sector 0x1dacbf0 from `hd2'. error: failure reading sector 0x1dacb80 from `hd2'. error: failure reading sector 0x0 from `hd2'. error: failure reading sector 0xe8fff0 from `hd3'. error: failure reading sector 0xe8ff80 from `hd3'. error: failure reading sector 0x0 from `hd3'. error: failure reading sector 0x1ff0 from `hd4'. error: failure reading sector 0x1f80 from `hd4'. error: failure reading sector 0x0 from `hd4'. error: failure reading sector 0x1ff0 from `hd5'. error: failure reading sector 0x1f80 from `hd5'. error: failure reading sector 0x0 from `hd5'. Using modules provided by bootloader in FDT
I only have the one disk in the system.
I guess I need to tweak xen to emit more information about what was failing. Should I just work of the master branch? Are Julien's patches to date going to get merged?
Hi Alex,
On 08/10/2020 11:54, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip> >> (XEN) >> (XEN) Xen stack trace from sp=00000000002ffcf0: >> (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 >> (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c >> (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 >> (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 >> (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 >> (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 >> (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 >> (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 >> (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 >> (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 >> (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 >> (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 >> (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 >> (XEN) Xen call trace: >> (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) >> (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) >> (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c >> (XEN) [<00000000002c417c>] device_init+0x90/0xdc >> (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 >> (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 >> (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 >> (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 > > This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
[...]
I guess I need to tweak xen to emit more information about what was failing. Should I just work of the master branch? Are Julien's patches to date going to get merged?
My patches are not yet merged. I need to respin them. Although it is unlikely to happen until mid next-week as I am away from tomorrow.
Cheers,
Julien Grall julien@xen.org writes:
Hi Alex,
On 08/10/2020 11:54, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip> >> (XEN) >> (XEN) Xen stack trace from sp=00000000002ffcf0: >> (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 >> (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c >> (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 >> (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 >> (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 >> (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 >> (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 >> (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 >> (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 >> (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 >> (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 >> (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 >> (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 >> (XEN) Xen call trace: >> (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) >> (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) >> (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c >> (XEN) [<00000000002c417c>] device_init+0x90/0xdc >> (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 >> (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 >> (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 >> (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 > > This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
[...]
I guess I need to tweak xen to emit more information about what was failing. Should I just work of the master branch? Are Julien's patches to date going to get merged?
My patches are not yet merged. I need to respin them. Although it is unlikely to happen until mid next-week as I am away from tomorrow.
Cheers,
On Thu, 8 Oct 2020, Alex Bennée wrote:
Hi Alex,
On 08/10/2020 11:54, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip> >> (XEN) >> (XEN) Xen stack trace from sp=00000000002ffcf0: >> (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 >> (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c >> (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 >> (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 >> (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 >> (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 >> (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 >> (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 >> (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 >> (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 >> (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 >> (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 >> (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 >> (XEN) Xen call trace: >> (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) >> (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) >> (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c >> (XEN) [<00000000002c417c>] device_init+0x90/0xdc >> (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 >> (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 >> (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 >> (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 > > This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
I tried to repro the issue but I cannot see any problems with the EFI+Grub+DeviceTree setup that I have here.
My suggestion would be to rebuild Grub and play around with the finalize_params_xen_boot function Julien patched. I would try increasing additional_size to 0x2000 to see if it helps.
I would also add a printk to dt_device_is_compatible: it would be very verbose, but it would tell you exactly which one is the offending string. However, if it is a DTB size miscalculation by Grub, that is not going to help much.
Hi Alex,
On 08/10/2020 20:52, Alex Bennée wrote:
Julien Grall julien@xen.org writes:
Hi Alex,
On 08/10/2020 11:54, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Hi Julian,
Another data point, this time on real HW:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip> >> (XEN) >> (XEN) Xen stack trace from sp=00000000002ffcf0: >> (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 >> (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c >> (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 >> (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 >> (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 >> (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 >> (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 >> (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 >> (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 >> (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 >> (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 >> (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 >> (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 >> (XEN) Xen call trace: >> (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) >> (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) >> (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c >> (XEN) [<00000000002c417c>] device_init+0x90/0xdc >> (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 >> (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 >> (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 >> (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 > > This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
That's understandable. Before switching to GRUB upstream, I would like to understand which compatible is likely not NUL-terminated.
Would you mind to apply this patch in Xen and post the full log?
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index e107c6f89f1b..1c88fef4d3af 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -212,11 +212,28 @@ bool_t dt_device_is_compatible(const struct dt_device_node *device, const char *compat) { const char* cp; - u32 cplen, l; + u32 cplen, l, i; + + printk("Check compatible for node %s\n", + device->full_name);
cp = dt_get_property(device, "compatible", &cplen); + if ( cp == NULL ) return 0; + + printk("cplen %u\n", cplen); + for ( i = 0; i < cplen; i++ ) + { + if ( cp[i] == '\0' ) + printk("\n"); + else + printk("%c", cp[i]); + } + + if ( cp[cplen - 1] != '\0') + printk("\n /!\ The compatible property is not NULL terminated\n"); + while ( cplen > 0 ) { if ( dt_compat_cmp(cp, compat) == 0 )
This patch will printk the compatible for each call to dt_device_is_compatible() and print a message if one property is not NUL-terminated.
Cheers,
Julien Grall julien@xen.org writes:
Hi Alex,
On 08/10/2020 20:52, Alex Bennée wrote:
Julien Grall julien@xen.org writes:
On 08/10/2020 11:54, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 2 Oct 2020, Alex Bennée wrote:
Xen 4.15-unstable (c/s Wed Sep 30 12:25:05 2020 +0100 git:e680dde6fd) EFI loader
<snip> >> (XEN) >> (XEN) Xen stack trace from sp=00000000002ffcf0: >> (XEN) 00000000002ffd20 000000000020404c 00000000002a5448 0000000000000001 >> (XEN) 00000000002ffd40 f11e576000204150 00000000002ffd50 00000000002c417c >> (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 >> (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 >> (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 >> (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 >> (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 >> (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 >> (XEN) 000000003f8790a0 00000000002001b8 00000000aab35000 00000000aa935000 >> (XEN) 00000000b2273000 0000000000000000 0000000000400000 00000000b22ad018 >> (XEN) 00000000aabe7138 0000000000000001 0000000000000001 8000000000000002 >> (XEN) 0000000000000000 00000000002e1948 00000000b2273000 0000000000009000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 >> (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 >> (XEN) 0000000000000000 0000000000000000 >> (XEN) Xen call trace: >> (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) >> (XEN) [<00000000002030f8>] dt_device_is_compatible+0x48/0x84 (LR) >> (XEN) [<000000000020404c>] dt_match_node+0x70/0x10c >> (XEN) [<00000000002c417c>] device_init+0x90/0xdc >> (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 >> (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 >> (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 >> (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 > > This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
That's understandable. Before switching to GRUB upstream, I would like to understand which compatible is likely not NUL-terminated.
Would you mind to apply this patch in Xen and post the full log?
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index e107c6f89f1b..1c88fef4d3af 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -212,11 +212,28 @@ bool_t dt_device_is_compatible(const struct dt_device_node *device, const char *compat) { const char* cp;
- u32 cplen, l;
u32 cplen, l, i;
printk("Check compatible for node %s\n",
device->full_name); cp = dt_get_property(device, "compatible", &cplen);
if ( cp == NULL ) return 0;
printk("cplen %u\n", cplen);
for ( i = 0; i < cplen; i++ )
{
if ( cp[i] == '\0' )
printk("\n");
else
printk("%c", cp[i]);
}
if ( cp[cplen - 1] != '\0')
printk("\n /!\\ The compatible property is not NULL terminated\n");
while ( cplen > 0 ) { if ( dt_compat_cmp(cp, compat) == 0 )
This patch will printk the compatible for each call to dt_device_is_compatible() and print a message if one property is not NUL-terminated.
Full log further bellow but it looks like it crashes while going through the a806 config space. Is this something that grub is likely to mess with or does it point to a problem with the EDK2 build? Does the build have the tables embedded in it or does it extract it from some ROM device on the board?
(XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /a(XEN) Data Abort Trap. Syndrome=0x5
Here is the full log:
remove-symbol-file /home/steven/mcbin/Build/Armada80x0McBin-AARCH64/RELEASE_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/DEBUG/UiApp.dll 0xB2261000 error: failure reading sector 0x1dacbf0 from `hd2'. error: failure reading sector 0x1dacb80 from `hd2'. error: failure reading sector 0x0 from `hd2'. error: failure reading sector 0xe8fff0 from `hd3'. error: failure reading sector 0xe8ff80 from `hd3'. error: failure reading sector 0x0 from `hd3'. error: failure reading sector 0x1ff0 from `hd4'. error: failure reading sector 0x1f80 from `hd4'. error: failure reading sector 0x0 from `hd4'. error: failure reading sector 0x1ff0 from `hd5'. error: failure reading sector 0x1f80 from `hd5'. error: failure reading sector 0x0 from `hd5'. Using modules provided by bootloader in FDT Xen 4.15-unstable (c/s Fri Oct 9 10:19:33 2020 +0100 git:5becf66d00) EFI loader Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Mon Oct 12 17:24:57 BST 2020 (XEN) Latest ChangeSet: Fri Oct 9 10:19:33 2020 +0100 git:5becf66d00 (XEN) build-id: bb9b985e0f43ad69dccc57d6535772c998659a04 (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 11 times before pausing the domain (XEN) CPU 1 booted. (XEN) Bringing up CPU2 (XEN) CPU2: Guest atomics will try 5 times before pausing the domain (XEN) CPU 2 booted. (XEN) Bringing up CPU3 (XEN) CPU3: Guest atomics will try 9 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /a(XEN) Data Abort Trap. Syndrome=0x5 (XEN) Walking Hypervisor VA 0x800440000000 on CPU0 via TTBR 0x00000000aac70000 (XEN) 0TH[0x100] = 0x00400000aac6ef7f (XEN) 1ST[0x11] = 0x0000000000000000 (XEN) CPU0: Unexpected Trap: Data Abort (XEN) ----[ Xen-4.15-unstable arm64 debug=y Not tainted ]---- (XEN) CPU: 0 (XEN) PC: 000000000025ed4c strlen+0x10/0x84 (XEN) LR: 0000000000203184 (XEN) SP: 00000000002ffcd0 (XEN) CPSR: 60000249 MODE:64-bit EL2h (Hypervisor, handler) (XEN) X0: 000080043ee00000 X1: 0000800440000000 X2: ffffffffffffffff (XEN) X3: ffffffffffffffff X4: 0000000000000001 X5: 0000000000000000 (XEN) X6: 0000000000000000 X7: fefefefefefefefe X8: ffffffffffffffff (XEN) X9: fefefefefefefefe X10: ffffffffffffffff X11: 0101010101010101 (XEN) X12: 0000000000000038 X13: 00000000002883b8 X14: 00000000002ffa28 (XEN) X15: 0000000000000020 X16: 0000000000000000 X17: 00000000002b1000 (XEN) X18: 00000000002b2000 X19: 000080043ee00000 X20: 0000000000000010 (XEN) X21: 000000000029cbb0 X22: 000000000029aa58 X23: 0000000000000000 (XEN) X24: 00000000002a2440 X25: 0000000440000000 X26: 000000000000002d (XEN) X27: 00000000002e0910 X28: 00000000003fe440 FP: 00000000002ffcd0 (XEN) (XEN) VTCR_EL2: 80000000 (XEN) VTTBR_EL2: 0000000000000000 (XEN) (XEN) SCTLR_EL2: 30cd183d (XEN) HCR_EL2: 0000000000000038 (XEN) TTBR0_EL2: 00000000aac70000 (XEN) (XEN) ESR_EL2: 96000005 (XEN) HPFAR_EL2: 0000000000000000 (XEN) FAR_EL2: 0000800440000000 (XEN) (XEN) Xen stack trace from sp=00000000002ffcd0: (XEN) 00000000002ffd20 0000000000204104 00000000002a54b0 0000000000000001 (XEN) 000080042ffde5d0 0000000000000001 0000000000000000 00000000002a2440 (XEN) 00000000002ffd40 f11e576000204208 00000000002ffd50 00000000002c417c (XEN) 00000000002b25c0 0000000000000001 00000000002b2620 000080042ffde5d0 (XEN) 00000000002ffd90 00000000002bdbe0 000080042ffde5d0 0000000000000001 (XEN) 00000000002ddc68 0000000000000000 0000000000000004 00000000ffffffc8 (XEN) 00000000002ffdd0 00000000002bf09c 0000000000000004 0000000000000004 (XEN) 00000000002b0580 000000000033e430 0101010101010101 0000000000000000 (XEN) 00000000002ffdf0 00000000002cbaec 0000000000000004 0000000000000004 (XEN) 000000003f8790a0 00000000002001b8 00000000aab33000 00000000aa933000 (XEN) 00000000b2271000 0000000000000000 0000000000400000 00000000b22aa018 (XEN) 00000000aabe5138 0000000000000001 0000000000000001 8000000000000002 (XEN) 0000000000000000 00000000002e1948 00000000b2271000 0000000000009000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000300000000 (XEN) 0000000000000000 00000040ffffffff 00000000ffffffff 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 0000000000000000 0000000000000000 (XEN) 0000000000000000 0000000000000000 (XEN) Xen call trace: (XEN) [<000000000025ed4c>] strlen+0x10/0x84 (PC) (XEN) [<0000000000203184>] dt_device_is_compatible+0xd4/0x13c (LR) (XEN) [<0000000000204104>] dt_match_node+0x70/0x10c (XEN) [<00000000002c417c>] device_init+0x90/0xdc (XEN) [<00000000002bdbe0>] iommu_hardware_setup+0x5c/0x188 (XEN) [<00000000002bf09c>] iommu_setup+0x30/0x188 (XEN) [<00000000002cbaec>] start_xen+0xac4/0xc88 (XEN) [<00000000002001b8>] arm64/head.o#primary_switched+0x10/0x30 (XEN) (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) CPU0: Unexpected Trap: Data Abort (XEN) **************************************** (XEN) (XEN) Reboot in five seconds...
On Tue, 13 Oct 2020, Alex Bennée wrote:
This seems to be the same bug in GRUB noticed by Masami, where GRUB is adding strings to device tree at runtime without '\0' at the end. Julien posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
That's understandable. Before switching to GRUB upstream, I would like to understand which compatible is likely not NUL-terminated.
Would you mind to apply this patch in Xen and post the full log?
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index e107c6f89f1b..1c88fef4d3af 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -212,11 +212,28 @@ bool_t dt_device_is_compatible(const struct dt_device_node *device, const char *compat) { const char* cp;
- u32 cplen, l;
u32 cplen, l, i;
printk("Check compatible for node %s\n",
device->full_name); cp = dt_get_property(device, "compatible", &cplen);
if ( cp == NULL ) return 0;
printk("cplen %u\n", cplen);
for ( i = 0; i < cplen; i++ )
{
if ( cp[i] == '\0' )
printk("\n");
else
printk("%c", cp[i]);
}
if ( cp[cplen - 1] != '\0')
printk("\n /!\\ The compatible property is not NULL terminated\n");
while ( cplen > 0 ) { if ( dt_compat_cmp(cp, compat) == 0 )
This patch will printk the compatible for each call to dt_device_is_compatible() and print a message if one property is not NUL-terminated.
Full log further bellow but it looks like it crashes while going through the a806 config space. Is this something that grub is likely to mess with or does it point to a problem with the EDK2 build? Does the build have the tables embedded in it or does it extract it from some ROM device on the board?
(XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /a(XEN) Data Abort Trap. Syndrome=0x5
This is interesting: it doesn't look like the string is not NULL terminated. It looks like the FDT size wasn't reported correctly. Otherwise it would have at least printed "cplen XX" for the last node. (It might be worth re-running the same experiment passing sync_console on the Xen command line to be extra safe we aren't missing any console output.)
Basically, there is a dt_for_each_device_node loop which is iterating for each device node:
for ( dn = dt_host; dn != NULL; dn = dn->allnext )
For the node following /ap806/config-space@f0000000/system-controller@6f4000/pinctrl Xen crashes trying to access dn->full_name.
dn->full_name is set by unflatten_dt_node when unflattening the FDT.
I am guessing Grub is modifying the FDT incorrectly or doesn't update the FDT size correctly.
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Tue, 13 Oct 2020, Alex Bennée wrote:
> This seems to be the same bug in GRUB noticed by Masami, where GRUB is > adding strings to device tree at runtime without '\0' at the end. Julien > posted a potential (untested) fix for GRUB:
What version of GRUB are you using?
2.04-11 - so The current Debian Testing package with your patch applied. I'd avoided build grub from scratch to avoid screwing up the system but if it's just a drop in .efi binary then I can build from the vanilla tree.
That's understandable. Before switching to GRUB upstream, I would like to understand which compatible is likely not NUL-terminated.
Would you mind to apply this patch in Xen and post the full log?
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index e107c6f89f1b..1c88fef4d3af 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -212,11 +212,28 @@ bool_t dt_device_is_compatible(const struct dt_device_node *device, const char *compat) { const char* cp;
- u32 cplen, l;
u32 cplen, l, i;
printk("Check compatible for node %s\n",
device->full_name); cp = dt_get_property(device, "compatible", &cplen);
if ( cp == NULL ) return 0;
printk("cplen %u\n", cplen);
for ( i = 0; i < cplen; i++ )
{
if ( cp[i] == '\0' )
printk("\n");
else
printk("%c", cp[i]);
}
if ( cp[cplen - 1] != '\0')
printk("\n /!\\ The compatible property is not NULL terminated\n");
while ( cplen > 0 ) { if ( dt_compat_cmp(cp, compat) == 0 )
This patch will printk the compatible for each call to dt_device_is_compatible() and print a message if one property is not NUL-terminated.
Full log further bellow but it looks like it crashes while going through the a806 config space. Is this something that grub is likely to mess with or does it point to a problem with the EDK2 build? Does the build have the tables embedded in it or does it extract it from some ROM device on the board?
(XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /a(XEN) Data Abort Trap. Syndrome=0x5
This is interesting: it doesn't look like the string is not NULL terminated. It looks like the FDT size wasn't reported correctly. Otherwise it would have at least printed "cplen XX" for the last node. (It might be worth re-running the same experiment passing sync_console on the Xen command line to be extra safe we aren't missing any console output.)
Basically, there is a dt_for_each_device_node loop which is iterating for each device node:
for ( dn = dt_host; dn != NULL; dn = dn->allnext )
For the node following /ap806/config-space@f0000000/system-controller@6f4000/pinctrl Xen crashes trying to access dn->full_name.
dn->full_name is set by unflatten_dt_node when unflattening the FDT.
I am guessing Grub is modifying the FDT incorrectly or doesn't update the FDT size correctly.
Well it looks like I can confirm that upstream grub fixes whatever the Debian stable and testing grubs have broken. However I still run into a problem once we get to the kernel:
Welcome to GRUB!
error: failure reading sector 0x0 from `hd2'. error: failure reading sector 0x0 from `hd3'. error: failure reading sector 0x0 from `hd4'. error: failure reading sector 0x0 from `hd5'. Using modules provided by bootloader in FDT Xen 4.15-unstable (c/s Fri Oct 9 10:19:33 2020 +0100 git:5becf66d00) EFI loader Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Mon Oct 12 17:24:57 BST 2020 (XEN) Latest ChangeSet: Fri Oct 9 10:19:33 2020 +0100 git:5becf66d00 (XEN) build-id: bb9b985e0f43ad69dccc57d6535772c998659a04 (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 12 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 10 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /(XEN) BANK[0] 0x00000040000000-0x00000080000000 (1024MB) (XEN) Grant table range: 0x000000aafb0000-0x000000aaff0000 (XEN) GICv2: Mapping v2m frame to d0: addr=0x00000000f0280000 size=0x0000000000001000 spi_base=160 num_spis=32 (XEN) GICv2: Mapping v2m frame to d0: addr=0x00000000f0290000 size=0x0000000000001000 spi_base=192 num_spis=32 (XEN) GICv2: Mapping v2m frame to d0: addr=0x00000000f02a0000 size=0x0000000000001000 spi_base=224 num_spis=32 (XEN) GICv2: Mapping v2m frame to d0: addr=0x00000000f02b0000 size=0x0000000000001000 spi_base=256 num_spis=32 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /ali(XEN) Loading d0 DTB to 0x0000000048000000-0x0000000048005ef5 (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) Check compatible for node /chosen/module@b0c7f000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Check compatible for node /chosen/module@ab0f4000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Freed 340kB 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 ICACTIVER20 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER24 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER28 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER32 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER36 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER40 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd081] [ 0.000000] Linux version 5.6.0-0.bpo.2-arm64 (debian-kernel@lists.debian.org) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 5.6.14-2~bpo10+1 (2020-06-09) [ 0.000000] Machine model: Marvell 8040 MACCHIATOBin [ 0.000000] Xen 4.15 support found [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.000000] cma: Reserved 64 MiB at 0x000000007c000000 [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] NUMA: NODE_DATA [mem 0x7bdde0c0-0x7bddffff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff] [ 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] percpu: Embedded 32 pages/cpu s93976 r8192 d28904 u131072 [ 0.000000] Detected PIPT I-cache on CPU0 [ 0.000000] CPU features: detected: EL2 vector hardening [ 0.000000] Speculative Store Bypass Disable mitigation not required [ 0.000000] CPU features: detected: ARM erratum 1319367 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258048 [ 0.000000] Policy zone: DMA [ 0.000000] Kernel command line: placeholder root=/dev/mapper/vg0-root ro console=hvc0 earlyprintk=xen [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 847164K/1048576K available (10108K kernel code, 1838K rwdata, 3740K rodata, 5184K init, 555K bss, 135876K reserved, 65536K cma-reserved) [ 0.000000] random: get_random_u64 called from __kmem_cache_create+0x48/0x5d0 with crng_init=0 [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] ftrace: allocating 36430 entries in 143 pages [ 0.000000] ftrace: allocated 143 pages with 5 groups [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:160, num:32) [ 0.000000] GICv2m: range[mem 0xf0280000-0xf0280fff], SPI[160:191] [ 0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:192, num:32) [ 0.000000] GICv2m: range[mem 0xf0290000-0xf0290fff], SPI[192:223] [ 0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:224, num:32) [ 0.000000] GICv2m: range[mem 0xf02a0000-0xf02a0fff], SPI[224:255] [ 0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:256, num:32) [ 0.000000] GICv2m: range[mem 0xf02b0000-0xf02b0fff], SPI[256:287] [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000004] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.000288] Console: colour dummy device 80x25 [ 0.001386] printk: console [hvc0] enabled [ 0.001530] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=100000) [ 0.001572] pid_max: default: 32768 minimum: 301 [ 0.001696] LSM: Security Framework initializing [ 0.001742] Yama: disabled by default; enable with sysctl kernel.yama.* [ 0.001850] AppArmor: AppArmor initialized [ 0.001872] TOMOYO Linux initialized [ 0.001947] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.001986] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.004540] xen:grant_table: Grant tables using version 1 layout [ 0.004603] Grant table initialized [ 0.004663] xen:events: Using FIFO-based ABI [ 0.004757] Xen: initializing cpu0 [ 0.005125] rcu: Hierarchical SRCU implementation. [ 0.006863] EFI services will not be available. [ 0.007443] smp: Bringing up secondary CPUs ... (XEN) d0v1: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v2: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v3: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 [ 0.008033] Detected PIPT I-cache on CPU1 [ 0.008149] Xen: initializing cpu1 [ 0.008182] CPU1: Booted secondary processor 0x0000000001 [0x410fd081] [ 0.008991] Detected PIPT I-cache on CPU2 [ 0.009135] Xen: initializing cpu2 [ 0.009170] CPU2: Booted secondary processor 0x0000000002 [0x410fd081] [ 0.009988] Detected PIPT I-cache on CPU3 [ 0.010074] Xen: initializing cpu3 [ 0.010099] CPU3: Booted secondary processor 0x0000000003 [0x410fd081] [ 0.010249] smp: Brought up 1 node, 4 CPUs [ 0.010412] SMP: Total of 4 processors activated. [ 0.010433] CPU features: detected: 32-bit EL0 Support [ 0.010454] CPU features: detected: CRC32 instructions [ 0.036527] CPU: All CPU(s) started at EL1 [ 0.036722] alternatives: patching kernel code [ 0.038435] devtmpfs: initialized [ 0.038706] Duplicate name in interrupt-controller, renamed to "v2m#1" [ 0.038745] Duplicate name in interrupt-controller, renamed to "v2m#2" [ 0.038789] Duplicate name in interrupt-controller, renamed to "v2m#3" [ 0.041858] Registered cp15_barrier emulation handler [ 0.041927] Registered setend emulation handler [ 0.041951] KASLR disabled due to lack of seed [ 0.042359] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.042407] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.044047] pinctrl core: initialized pinctrl subsystem [ 0.044819] thermal_sys: Registered thermal governor 'fair_share' [ 0.044823] thermal_sys: Registered thermal governor 'step_wise' [ 0.044950] DMI not present or invalid. [ 0.045523] NET: Registered protocol family 16 [ 0.046920] DMA: preallocated 256 KiB pool for atomic allocations [ 0.046979] audit: initializing netlink subsys (disabled) [ 0.047310] audit: type=2000 audit(0.044:1): state=initialized audit_enabled=0 res=1 [ 0.048925] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.049350] ASID allocator initialised with 65536 entries [ 0.049434] xen:swiotlb_xen: Warning: only able to allocate 4 MB for software IO TLB [ 0.050165] software IO TLB: mapped [mem 0x79800000-0x79c00000] (4MB) [ 0.050474] Serial: AMBA PL011 UART driver [ 0.061907] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.061945] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.061968] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.061992] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 0.380142] ACPI: Interpreter disabled. [ 0.380310] xen:balloon: Initialising balloon driver [ 0.380485] iommu: Default domain type: Translated [ 0.380810] vgaarb: loaded [ 0.381183] EDAC MC: Ver: 3.0.0 [ 0.382605] NetLabel: Initializing [ 0.382637] NetLabel: domain hash size = 128 [ 0.382655] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO [ 0.382721] NetLabel: unlabeled traffic allowed by default [ 0.382927] clocksource: Switched to clocksource arch_sys_counter [ 0.419716] VFS: Disk quotas dquot_6.6.0 [ 0.419806] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.420458] AppArmor: AppArmor Filesystem Enabled [ 0.420818] pnp: PnP ACPI: disabled [ 0.430333] NET: Registered protocol family 2 [ 0.430875] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 0.430972] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.431047] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) [ 0.431186] TCP: Hash tables configured (established 8192 bind 8192) [ 0.431400] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.431450] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.431706] NET: Registered protocol family 1 [ 0.431751] NET: Registered protocol family 44 [ 0.431781] PCI: CLS 0 bytes, default 64 [ 0.431979] Trying to unpack rootfs image as initramfs... [ 0.627291] Freeing initrd memory: 93736K [ 0.627848] hw perfevents: no irqs for PMU, sampling events not supported [ 0.628112] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 1 counters available [ 0.628345] kvm [1]: HYP mode not available [ 0.629082] Initialise system trusted keyrings [ 0.629134] Key type blacklist registered [ 0.629362] workingset: timestamp_bits=44 max_order=18 bucket_order=0 [ 0.632347] zbud: loaded [ 0.632794] Platform Keyring initialized [ 0.632821] Key type asymmetric registered [ 0.632837] Asymmetric key parser 'x509' registered [ 0.632873] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) [ 0.633126] io scheduler mq-deadline registered [ 0.635802] armada-ap806-pinctrl f06f4000.system-controller:pinctrl: registered pinctrl driver [ 0.636287] armada-cp110-pinctrl f2440000.system-controller:pinctrl: registered pinctrl driver [ 0.636415] debugfs: Directory 'dummy-system-controller@440000' with parent 'regmap' already present! [ 0.636668] armada-cp110-pinctrl f4440000.system-controller:pinctrl: registered pinctrl driver (XEN) d0v2: vGICD: unhandled word write 0x00000000000001 to ICPENDR8 (XEN) traps.c:1983:d0v2 HSR=0x93810047 pc=0xffff800010545b84 gva=0xffff800010020288 gpa=0x000000f0210288 [ 0.638071] Unhandled fault at 0xffff800010020288 [ 0.638092] Mem abort info: [ 0.638103] ESR = 0x96000000 [ 0.638118] EC = 0x25: DABT (current EL), IL = 32 bits [ 0.638136] SET = 0, FnV = 0 [ 0.638150] EA = 0, S1PTW = 0 [ 0.638164] Data abort info: [ 0.638178] ISV = 0, ISS = 0x00000000 [ 0.638192] CM = 0, WnR = 0 [ 0.638208] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000040e0b000 [ 0.638229] [ffff800010020288] pgd=000000007bfff003, pud=000000007bffe003, pmd=000000007bffd003, pte=00680000f0210707 [ 0.638268] Internal error: ttbr address size fault: 96000000 [#1] SMP [ 0.638291] Modules linked in: [ 0.638310] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.6.0-0.bpo.2-arm64 #1 Debian 5.6.14-2~bpo10+1 [ 0.638339] Hardware name: Marvell 8040 MACCHIATOBin (DT) [ 0.638359] pstate: 60000085 (nZCv daIf -PAN -UAO) [ 0.638387] pc : gic_irq_set_irqchip_state+0x54/0x90 [ 0.638408] lr : irq_set_irqchip_state+0x74/0xc0 [ 0.638426] sp : ffff8000115838a0 [ 0.638440] x29: ffff8000115838a0 x28: 0000000000000000 [ 0.638460] x27: ffff800011583a38 x26: ffff0000331c8580 [ 0.638480] x25: ffff0000331c8180 x24: 0000000000000001 [ 0.638499] x23: 0000000000000007 x22: 0000000000000000 [ 0.638518] x21: 0000000000000000 x20: ffff000033211000 [ 0.638537] x19: ffff800011329948 x18: 0000000000000001 [ 0.638556] x17: 00000000e5effa7d x16: 00000000deadbeef [ 0.638576] x15: ffffffffffffffff x14: ffff800011329948 [ 0.638595] x13: ffff0000331e1402 x12: 0000000000000038 [ 0.638614] x11: 0101010101010101 x10: 0000000000000040 [ 0.638633] x9 : ffff80001016d534 x8 : ffff800011351140 [ 0.638652] x7 : ffff00003b000738 x6 : 0000000000000000 [ 0.638671] x5 : ffff00003b0006d8 x4 : ffff80001132d390 [ 0.638690] x3 : 0000000000000280 x2 : ffff800010020000 [ 0.638709] x1 : 0000000000000001 x0 : ffff800010020288 [ 0.638728] Call trace: [ 0.638742] gic_irq_set_irqchip_state+0x54/0x90 [ 0.638763] mvebu_icu_irq_domain_alloc+0xc8/0x1c0 [ 0.638783] irq_domain_alloc_irqs_hierarchy+0x20/0x58 [ 0.638804] __irq_domain_alloc_irqs+0x12c/0x2e0 [ 0.638823] irq_create_fwspec_mapping+0x114/0x310 [ 0.638843] irq_create_of_mapping+0x70/0x90 [ 0.638886] of_irq_get+0x64/0x78 [ 0.638904] platform_get_irq_optional+0x2c/0x1c0 [ 0.638929] platform_irq_count+0x30/0x50 [ 0.638947] mvebu_gpio_probe+0x68/0x688 [ 0.638965] platform_drv_probe+0x58/0xa8 [ 0.638982] really_probe+0xe0/0x440 [ 0.638999] driver_probe_device+0xe4/0x138 [ 0.639016] device_driver_attach+0x74/0x80 [ 0.639033] __driver_attach+0xa4/0x170 [ 0.639049] bus_for_each_dev+0x78/0xc8 [ 0.639066] driver_attach+0x28/0x30 [ 0.639082] bus_add_driver+0x1a4/0x238 [ 0.639099] driver_register+0x68/0x118 [ 0.639116] __platform_driver_register+0x4c/0x58 [ 0.639143] mvebu_gpio_driver_init+0x20/0x28 [ 0.639164] do_one_initcall+0x50/0x218 [ 0.639182] kernel_init_freeable+0x228/0x2c8 [ 0.639203] kernel_init+0x18/0x108 [ 0.639221] ret_from_fork+0x10/0x18 [ 0.639241] Code: f9409082 d37e6800 8b030000 8b000040 (b9000001) [ 0.639273] ---[ end trace 7ac32e91fdfa32a9 ]--- [ 0.639297] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b [ 0.639326] SMP: stopping secondary CPUs [ 0.639378] Kernel Offset: disabled [ 0.639395] CPU features: 0x10002,21006000 [ 0.639411] Memory Limit: none [ 0.639429] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
I'm going to try with a 5.9 kernel and see how far I can get.
On Fri, 16 Oct 2020, Alex Bennée wrote:
Basically, there is a dt_for_each_device_node loop which is iterating for each device node:
for ( dn = dt_host; dn != NULL; dn = dn->allnext )
For the node following /ap806/config-space@f0000000/system-controller@6f4000/pinctrl Xen crashes trying to access dn->full_name.
dn->full_name is set by unflatten_dt_node when unflattening the FDT.
I am guessing Grub is modifying the FDT incorrectly or doesn't update the FDT size correctly.
Well it looks like I can confirm that upstream grub fixes whatever the Debian stable and testing grubs have broken.
Very good! :-)
[ 0.636668] armada-cp110-pinctrl f4440000.system-controller:pinctrl: registered pinctrl driver (XEN) d0v2: vGICD: unhandled word write 0x00000000000001 to ICPENDR8 (XEN) traps.c:1983:d0v2 HSR=0x93810047 pc=0xffff800010545b84 gva=0xffff800010020288 gpa=0x000000f0210288 [ 0.638071] Unhandled fault at 0xffff800010020288 [ 0.638092] Mem abort info: [ 0.638103] ESR = 0x96000000 [ 0.638118] EC = 0x25: DABT (current EL), IL = 32 bits [ 0.638136] SET = 0, FnV = 0 [ 0.638150] EA = 0, S1PTW = 0 [ 0.638164] Data abort info: [ 0.638178] ISV = 0, ISS = 0x00000000 [ 0.638192] CM = 0, WnR = 0 [ 0.638208] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000040e0b000 [ 0.638229] [ffff800010020288] pgd=000000007bfff003, pud=000000007bffe003, pmd=000000007bffd003, pte=00680000f0210707 [ 0.638268] Internal error: ttbr address size fault: 96000000 [#1] SMP [ 0.638291] Modules linked in: [ 0.638310] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.6.0-0.bpo.2-arm64 #1 Debian 5.6.14-2~bpo10+1 [ 0.638339] Hardware name: Marvell 8040 MACCHIATOBin (DT) [ 0.638359] pstate: 60000085 (nZCv daIf -PAN -UAO) [ 0.638387] pc : gic_irq_set_irqchip_state+0x54/0x90 [ 0.638408] lr : irq_set_irqchip_state+0x74/0xc0
I know this one, let me explain.
It is difficult to implement ICPENDR/ISPENDR (and also ISACTIVER/ICACTIVER) in Xen. Currently we don't implement them at all. In the case of writing to ICPENDR, we return error causing the "Unhandled fault" strack trace you are seeing.
Looking at Linux mvebu_icu_irq_domain_alloc:
/* Make sure there is no interrupt left pending by the firmware */ err = irq_set_irqchip_state(virq, IRQCHIP_STATE_PENDING, false); if (err) goto free_msi;
In this case it would seem reasonably safe to ignore the ICPENDR request and continue. So, please try with the appended patch for Xen. We started ignoring writes to ICACTIVER for similar reasons. But a generic solution requires a proper implementation of these operations.
diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 64b141fea5..e30be2b5c5 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -482,7 +482,7 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info, printk(XENLOG_G_ERR "%pv: vGICD: unhandled word write %#"PRIregister" to ICPENDR%d\n", v, r, gicd_reg - GICD_ICPENDR); - return 0; + goto write_ignore_32;
case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN): if ( dabt.size != DABT_WORD ) goto bad_width; diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index fd8cfc156d..6ae291aa38 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -818,7 +818,7 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v, printk(XENLOG_G_ERR "%pv: %s: unhandled word write %#"PRIregister" to ICPENDR%d\n", v, name, r, reg - GICD_ICPENDR); - return 0; + goto write_ignore_32;
case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN): if ( dabt.size != DABT_WORD ) goto bad_width;
Stefano Stabellini stefano.stabellini@xilinx.com writes:
On Fri, 16 Oct 2020, Alex Bennée wrote:
Basically, there is a dt_for_each_device_node loop which is iterating for each device node:
for ( dn = dt_host; dn != NULL; dn = dn->allnext )
For the node following /ap806/config-space@f0000000/system-controller@6f4000/pinctrl Xen crashes trying to access dn->full_name.
dn->full_name is set by unflatten_dt_node when unflattening the FDT.
I am guessing Grub is modifying the FDT incorrectly or doesn't update the FDT size correctly.
Well it looks like I can confirm that upstream grub fixes whatever the Debian stable and testing grubs have broken.
Very good! :-)
[ 0.636668] armada-cp110-pinctrl f4440000.system-controller:pinctrl: registered pinctrl driver (XEN) d0v2: vGICD: unhandled word write 0x00000000000001 to ICPENDR8 (XEN) traps.c:1983:d0v2 HSR=0x93810047 pc=0xffff800010545b84 gva=0xffff800010020288 gpa=0x000000f0210288 [ 0.638071] Unhandled fault at 0xffff800010020288 [ 0.638092] Mem abort info: [ 0.638103] ESR = 0x96000000 [ 0.638118] EC = 0x25: DABT (current EL), IL = 32 bits [ 0.638136] SET = 0, FnV = 0 [ 0.638150] EA = 0, S1PTW = 0 [ 0.638164] Data abort info: [ 0.638178] ISV = 0, ISS = 0x00000000 [ 0.638192] CM = 0, WnR = 0 [ 0.638208] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000040e0b000 [ 0.638229] [ffff800010020288] pgd=000000007bfff003, pud=000000007bffe003, pmd=000000007bffd003, pte=00680000f0210707 [ 0.638268] Internal error: ttbr address size fault: 96000000 [#1] SMP [ 0.638291] Modules linked in: [ 0.638310] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.6.0-0.bpo.2-arm64 #1 Debian 5.6.14-2~bpo10+1 [ 0.638339] Hardware name: Marvell 8040 MACCHIATOBin (DT) [ 0.638359] pstate: 60000085 (nZCv daIf -PAN -UAO) [ 0.638387] pc : gic_irq_set_irqchip_state+0x54/0x90 [ 0.638408] lr : irq_set_irqchip_state+0x74/0xc0
I know this one, let me explain.
It is difficult to implement ICPENDR/ISPENDR (and also ISACTIVER/ICACTIVER) in Xen. Currently we don't implement them at all. In the case of writing to ICPENDR, we return error causing the "Unhandled fault" strack trace you are seeing.
Looking at Linux mvebu_icu_irq_domain_alloc:
/* Make sure there is no interrupt left pending by the firmware */ err = irq_set_irqchip_state(virq, IRQCHIP_STATE_PENDING, false); if (err) goto free_msi;
In this case it would seem reasonably safe to ignore the ICPENDR request and continue. So, please try with the appended patch for Xen. We started ignoring writes to ICACTIVER for similar reasons. But a generic solution requires a proper implementation of these operations.
diff --git a/xen/arch/arm/vgic-v2.c b/xen/arch/arm/vgic-v2.c index 64b141fea5..e30be2b5c5 100644 --- a/xen/arch/arm/vgic-v2.c +++ b/xen/arch/arm/vgic-v2.c @@ -482,7 +482,7 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info, printk(XENLOG_G_ERR "%pv: vGICD: unhandled word write %#"PRIregister" to ICPENDR%d\n", v, r, gicd_reg - GICD_ICPENDR);
return 0;
goto write_ignore_32;
case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN): if ( dabt.size != DABT_WORD ) goto bad_width; diff --git a/xen/arch/arm/vgic-v3.c b/xen/arch/arm/vgic-v3.c index fd8cfc156d..6ae291aa38 100644 --- a/xen/arch/arm/vgic-v3.c +++ b/xen/arch/arm/vgic-v3.c @@ -818,7 +818,7 @@ static int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu *v, printk(XENLOG_G_ERR "%pv: %s: unhandled word write %#"PRIregister" to ICPENDR%d\n", v, name, r, reg - GICD_ICPENDR);
return 0;
goto write_ignore_32;
case VRANGE32(GICD_ISACTIVER, GICD_ISACTIVERN): if ( dabt.size != DABT_WORD ) goto bad_width;
Hmm this didn't fare so well:
remove-symbol-file /home/steven/mcbin/Build/Armada80x0McBin-AARCH64/RELEASE_GCC5/AARCH64/MdeModulePkg/Application/UiApp/UiApp/DEBUG/UiApp.dll 0xB2261000 Welcome to GRUB!
error: failure reading sector 0x0 from `hd2'. error: failure reading sector 0x0 from `hd3'. error: failure reading sector 0x0 from `hd4'. error: failure reading sector 0x0 from `hd5'. Using modules provided by bootloader in FDT Xen 4.15-unstable (c/s Mon Oct 19 10:57:08 2020 -0700 git:76ccdcd6b2) EFI loader
Xen 4.15-unstable (XEN) Xen version 4.15-unstable (alex@lan) (gcc (Debian 8.3.0-6) 8.3.0) debug=y Thu Oct 22 13:39:01 BST 2020 (XEN) Latest ChangeSet: Mon Oct 19 10:57:08 2020 -0700 git:76ccdcd6b2 (XEN) build-id: 3e37b5073e3bc95f9785bf6d607ff31444ea6b0f (XEN) Processor: 410fd081: "ARM Limited", variant: 0x0, part 0xd08, rev 0x1 (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: 0000000000001124 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: 10201105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Using SMC Calling Convention v1.1 (XEN) Using PSCI v1.1 (XEN) SMP: Allowing 4 CPUs (XEN) enabled workaround for: ARM erratum 1319537 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 25000 KHz (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:160, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0280000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=160 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:192, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f0290000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=192 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:224, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02a0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=224 (XEN) gic_v2m_num_spis=32 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) GICv2: DT overriding v2m hardware setting (base:256, num:32) (XEN) GICv2m extension register frame: (XEN) gic_v2m_addr=00000000f02b0000 (XEN) gic_v2m_size=0000000000001000 (XEN) gic_v2m_spi_base=256 (XEN) gic_v2m_num_spis=32 (XEN) GICv2 initialization: (XEN) gic_dist_addr=00000000f0210000 (XEN) gic_cpu_addr=00000000f0220000 (XEN) gic_hyp_addr=00000000f0240000 (XEN) gic_vcpu_addr=00000000f0260000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: Adjusting CPU interface base to 0xf022f000 (XEN) GICv2: 352 lines, 4 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 32 KiB. (XEN) CPU0: Guest atomics will try 12 times before pausing the domain (XEN) Bringing up CPU1 (XEN) CPU1: Guest atomics will try 12 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 9 times before pausing the domain (XEN) Brought up 4 CPUs (XEN) CPU 3 booted. (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node / (XEN) cplen 91 (XEN) marvell,armada8040-mcbin (XEN) marvell,armada8040 (XEN) marvell,armada-ap806-quad (XEN) marvell,armada-ap806 (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /aliases (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock32 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock33 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock34 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /clock35 (XEN) cplen 12 (XEN) fixed-clock (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /psci (XEN) cplen 13 (XEN) arm,psci-0.2 (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000 (XEN) cplen 11 (XEN) simple-bus (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000 (XEN) cplen 12 (XEN) arm,gic-400 (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@280000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@290000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2a0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@210000/v2m@2b0000 (XEN) cplen 18 (XEN) arm,gic-v2m-frame (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/timer (XEN) cplen 16 (XEN) arm,armv8-timer (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/pmu (XEN) cplen 19 (XEN) arm,cortex-a72-pmu (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/odmi@300000 (XEN) cplen 24 (XEN) marvell,odmi-controller (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/gicp@3f0040 (XEN) cplen 19 (XEN) marvell,ap806-gicp (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/interrupt-controller@3f0100 (XEN) cplen 22 (XEN) marvell,armada-8k-pic (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@400000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@420000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@440000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/xor@460000 (XEN) cplen 37 (XEN) marvell,armada-7k-xor (XEN) marvell,xor-v2 (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/serial@512000 (XEN) cplen 17 (XEN) snps,dw-apb-uart (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/watchdog@610000 (XEN) cplen 14 (XEN) arm,sbsa-gwdt (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/sdhci@6e0000 (XEN) cplen 27 (XEN) marvell,armada-ap806-sdhci (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000 (XEN) cplen 18 (XEN) syscon (XEN) simple-mfd (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/clock (XEN) cplen 20 (XEN) marvell,ap806-clock (XEN) Check compatible for node /ap806/config-space@f0000000/system-controller@6f4000/pinctrl (XEN) cplen 22 (XEN) marvell,ap806-pinctrl (XEN) Check compatible for node /a(XEN) Loading d0 initrd from 00000000aefac000 to 0x0000000028200000-0x0000000029eedb66 (XEN) Loading d0 DTB to 0x0000000028000000-0x0000000028005ed9 (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) *************************************************** (XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW (XEN) *************************************************** (XEN) 3... 2... 1... (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input) (XEN) Check compatible for node /chosen/module@b0c9b000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Check compatible for node /chosen/module@aefac000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Freed 340kB 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 ICACTIVER20 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER24 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER28 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER32 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER36 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER40 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v1: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v2: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v3: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v0: vGICD: unhandled word write 0x00000000000001 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000002 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000004 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000008 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000010 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000020 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000040 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000080 to ICPENDR8 (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=25: not implemented (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=15: not implemented (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=15: not implemented (XEN) d0v0: vGICD: unhandled word write 0x00000000000100 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000200 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000000400 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000800 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000001000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000002000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000004000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000008000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000010000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000020000 to ICPENDR8 (XEN) d0v2 Unhandled SMC/HVC: 0x82000001 (XEN) d0v3: vGICD: unhandled word write 0x00000000040000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000080000 to ICPENDR8 (XEN) d0v2 Unhandled SMC/HVC: 0x82000002 (XEN) d0v3: vGICD: unhandled word write 0x00000000100000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000200000 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000400000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000000800000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000001000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000002000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000004000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000008000000 to ICPENDR8 (XEN) d0v1 Unhandled SMC/HVC: 0x82000001 (XEN) d0v3 Unhandled SMC/HVC: 0x82000002 (XEN) d0v3: vGICD: unhandled word write 0x00000010000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000020000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000040000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000080000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000000001 to ICPENDR12 (XEN) d0v3 Unhandled SMC/HVC: 0x82000001 (XEN) d0v1 Unhandled SMC/HVC: 0x82000002 (XEN) d0v1: vGICD: unhandled word write 0x00000000000002 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000004 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000008 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000010 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000020 to ICPENDR12 (XEN) d0v1 Unhandled SMC/HVC: 0x82000001 (XEN) d0v1 Unhandled SMC/HVC: 0x82000002
On Thu, 22 Oct 2020, Alex Bennée wrote:
Stefano Stabellini stefano.stabellini@xilinx.com writes: (XEN) Check compatible for node /a(XEN) Loading d0 initrd from 00000000aefac000 to 0x0000000028200000-0x0000000029eedb66 (XEN) Loading d0 DTB to 0x0000000028000000-0x0000000028005ed9 (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) *************************************************** (XEN) PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW (XEN) ***************************************************
This is a problem, especially if you are booting Debian 512MB are not going to be enough. It might also be the reason for the hang below.
Try to add something like: dom0_mem=2G to the Xen command line.
(XEN) 3... 2... 1... (XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input) (XEN) Check compatible for node /chosen/module@b0c9b000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Check compatible for node /chosen/module@aefac000 (XEN) cplen 17 (XEN) multiboot,module (XEN) Freed 340kB 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 ICACTIVER20 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER24 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER28 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER32 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER36 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER40 (XEN) d0v0: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v1: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v2: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v3: vGICD: unhandled word write 0x000000ffffffff to ICACTIVER0 (XEN) d0v0: vGICD: unhandled word write 0x00000000000001 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000002 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000004 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000008 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000010 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000020 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000040 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000080 to ICPENDR8 (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=25: not implemented (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=15: not implemented (XEN) physdev.c:16:d0v0 PHYSDEVOP cmd=15: not implemented (XEN) d0v0: vGICD: unhandled word write 0x00000000000100 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000200 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000000400 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000000800 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000001000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000002000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000004000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000008000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000010000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000020000 to ICPENDR8 (XEN) d0v2 Unhandled SMC/HVC: 0x82000001 (XEN) d0v3: vGICD: unhandled word write 0x00000000040000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000080000 to ICPENDR8 (XEN) d0v2 Unhandled SMC/HVC: 0x82000002 (XEN) d0v3: vGICD: unhandled word write 0x00000000100000 to ICPENDR8 (XEN) d0v2: vGICD: unhandled word write 0x00000000200000 to ICPENDR8 (XEN) d0v0: vGICD: unhandled word write 0x00000000400000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000000800000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000001000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000002000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000004000000 to ICPENDR8 (XEN) d0v1: vGICD: unhandled word write 0x00000008000000 to ICPENDR8 (XEN) d0v1 Unhandled SMC/HVC: 0x82000001 (XEN) d0v3 Unhandled SMC/HVC: 0x82000002 (XEN) d0v3: vGICD: unhandled word write 0x00000010000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000020000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000040000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000080000000 to ICPENDR8 (XEN) d0v3: vGICD: unhandled word write 0x00000000000001 to ICPENDR12 (XEN) d0v3 Unhandled SMC/HVC: 0x82000001 (XEN) d0v1 Unhandled SMC/HVC: 0x82000002 (XEN) d0v1: vGICD: unhandled word write 0x00000000000002 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000004 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000008 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000010 to ICPENDR12 (XEN) d0v1: vGICD: unhandled word write 0x00000000000020 to ICPENDR12 (XEN) d0v1 Unhandled SMC/HVC: 0x82000001 (XEN) d0v1 Unhandled SMC/HVC: 0x82000002
I suspect the ICPENDR problem is not an issue anymore. We are seeing another hang, maybe due to the lack of dom0_mem or something else.
The "Unhandled SMC/HVC" messages are interesting: Xen blocks SMC calls by default. The dom0 kernel here is trying to make two SiP calls, Xen blocks them and returns "unimplemented". I don't know if it causes any issues to the kernel but I can imagine that the kernel driver might refuse to continue. It is typically a firmware driver (drivers/firmware).
If the two calls are actually required to boot, then Xen should have a 'mediator' driver to filter the calls allowed from the ones that are not allowed. See for instance xen/arch/arm/platforms/xilinx-zynqmp-eemi.c. As a test, the appended patch allows all SMC calls for dom0:
diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c index a36db15fff..821c15852a 100644 --- a/xen/arch/arm/vsmc.c +++ b/xen/arch/arm/vsmc.c @@ -286,10 +286,32 @@ static bool vsmccc_handle_call(struct cpu_user_regs *regs)
if ( !handled ) { - gprintk(XENLOG_INFO, "Unhandled SMC/HVC: %#x\n", funcid); + if ( is_hardware_domain(current->domain) ) + { + struct arm_smccc_res res; + + arm_smccc_1_1_smc(get_user_reg(regs, 0), + get_user_reg(regs, 1), + get_user_reg(regs, 2), + get_user_reg(regs, 3), + get_user_reg(regs, 4), + get_user_reg(regs, 5), + get_user_reg(regs, 6), + get_user_reg(regs, 7), + &res); + + set_user_reg(regs, 0, res.a0); + set_user_reg(regs, 1, res.a1); + set_user_reg(regs, 2, res.a2); + set_user_reg(regs, 3, res.a3); + } + else + { + gprintk(XENLOG_INFO, "Unhandled SMC/HVC: %#x\n", funcid);
- /* Inform caller that function is not supported. */ - set_user_reg(regs, 0, ARM_SMCCC_ERR_UNKNOWN_FUNCTION); + /* Inform caller that function is not supported. */ + set_user_reg(regs, 0, ARM_SMCCC_ERR_UNKNOWN_FUNCTION); + } }
return true;
stratos-dev@op-lists.linaro.org