xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien@xen.org>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: xen-devel@lists.xenproject.org, masami.hiramatsu@linaro.org,
	ehem+xen@m5p.com, bertrand.marquis@arm.com,
	andre.przywara@arm.com, Julien Grall <jgrall@amazon.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH 0/4] xen/arm: Unbreak ACPI
Date: Wed, 30 Sep 2020 12:10:05 +0100	[thread overview]
Message-ID: <5afcd9d2-aa6f-9901-bd2c-b53c5649e498@xen.org> (raw)
In-Reply-To: <874knfpn0n.fsf@linaro.org>

Hi Alex,

On 30/09/2020 11:38, Alex Bennée wrote:
> 
> Julien Grall <julien@xen.org> writes:
> 
>> Hi Alex,
>>
>> On 29/09/2020 22:11, Alex Bennée wrote:
>>>
>>> Julien Grall <julien@xen.org> writes:
>>>
>>>> Hi Alex,
>>>>
>>>> On 29/09/2020 16:29, Alex Bennée wrote:
>>>>>
>>>>> Julien Grall <julien@xen.org> writes:
>>>>>
>>>>>> From: Julien Grall <jgrall@amazon.com>
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Xen on ARM has been broken for quite a while on ACPI systems. This
>>>>>> series aims to fix it.
>>>>>>
>>>>>> Unfortunately I don't have a system with ACPI v6.0 or later (QEMU seems
>>>>>> to only support 5.1). So I did only some light testing.
>>>>>
>>>>> I was hoping to get more diagnostics out to get it working under QEMU
>>>>> TCG so I think must of missed a step:
>>>>>
>>>>>      Loading Xen 4.15-unstable ...
>>>>>      Loading Linux 4.19.0-11-arm64 ...
>>>>>      Loading initial ramdisk ...
>>>>>      Using modules provided by bootloader in FDT
>>>>>      Xen 4.15-unstable (c/s Sat Sep 26 21:55:42 2020 +0100 git:72f3d495d0) EFI loader
>>>>>      ...silence...
>>>>>
>>>>> I have a grub installed from testing on a buster base:
>>>>>
>>>>>      dpkg --status grub-arm64-efi
>>>>>      Version: 2.04-8
>>>>>
>>>>> With:
>>>>>
>>>>>      GRUB_CMDLINE_LINUX_DEFAULT=""
>>>>>      GRUB_CMDLINE_LINUX="console=ttyAMA0"
>>>>>      GRUB_CMDLINE_LINUX_XEN_REPLACE="console=hvc0 earlyprintk=xen"
>>>>>      GRUB_CMDLINE_XEN="loglvl=all guest_loglvl=all com1=115200,8n1,0x3e8,5console=com1,vg"
>>>>>
>>>>> And I built Xen with --enable-systemd and tweaked the hypervisor .config:
>>>>>
>>>>>      CONFIG_EXPERT=y
>>>>>      CONFIG_ACPI=y
>>>>>
>>>>> So any pointers to make it more verbose would be helpful.
>>>>
>>>> The error is hapenning before Xen setup the console. You can get early
>>>> output on QEMU if you rebuild Xen with the following .config options:
>>>>
>>>> CONFIG_DEBUG=y
>>>> CONFIG_EARLY_UART_CHOICE_PL011=y
>>>> CONFIG_EARLY_UART_PL011=y
>>>> CONFIG_EARLY_PRINTK=y
>>>> CONFIG_EARLY_UART_BASE_ADDRESS=0x09000000
>>>> CONFIG_EARLY_UART_PL011_BAUD_RATE=0
>>>> CONFIG_EARLY_PRINTK_INC="debug-pl011.inc"
>>>
>>> OK I can see it fails on the ACPI and then tries to fall back to FDT and
>>> then fails to find the GIC:
>>>
>>>     (XEN) CMDLINE[00000000f7bbe000]:chosen placeholder root=UUID=cf00cd3a-066b-4146-bedf-f811d3343077 ro console=hvc0 earlyprintk=xen
>>>     (XEN)
>>>     (XEN) Command line: placeholder loglvl=all guest_loglvl=all com1=115200,8n1,0x3e8,5console=com1,vg no-real-mode edd=off
>>>     (XEN) parameter "placeholder" unknown!
>>>     (XEN) parameter "no-real-mode" unknown!
>>>     (XEN) parameter "edd" unknown!
>>>     (XEN) ACPI: RSDP 138560000, 0024 (r2 BOCHS )
>>>     (XEN) ACPI: XSDT 138550000, 004C (r1 BOCHS  BXPCFACP        1       1000013)
>>>     (XEN) ACPI: FACP 138510000, 010C (r5 BOCHS  BXPCFACP        1 BXPC        1)
>>>     (XEN) ACPI: DSDT 138520000, 14A6 (r2 BOCHS  BXPCDSDT        1 BXPC        1)
>>>     (XEN) ACPI: APIC 138500000, 018C (r3 BOCHS  BXPCAPIC        1 BXPC        1)
>>>     (XEN) ACPI: GTDT 1384F0000, 0060 (r2 BOCHS  BXPCGTDT        1 BXPC        1)
>>>     (XEN) ACPI: MCFG 1384E0000, 003C (r1 BOCHS  BXPCMCFG        1 BXPC        1)
>>>     (XEN) ACPI: SPCR 1384D0000, 0050 (r2 BOCHS  BXPCSPCR        1 BXPC        1)
>>>     (XEN) Unsupported FADT revision 5.1, should be 6.0+, will disable ACPI
>>>     (XEN) acpi_boot_table_init: FADT not found (-22)
>>>     (XEN) Domain heap initialised
>>>     (XEN) Booting using Device Tree
>>>     (XEN) Platform: Generic System
>>>     (XEN)
>>>     (XEN) ****************************************
>>>     (XEN) Panic on CPU 0:
>>>     (XEN) Unable to find compatible GIC in the device tree
>>>     (XEN) ****************************************
>>>     (XEN)
>>>     (XEN) Reboot in five seconds...
>>>
>>> Despite saying it is going to reboot it never manages to. Any idea how
>>> it is trying to reset the system?
>>
>> This is a bit of chicken and eggs problem. To know the reset method, you
>> need to parse the ACPI tables. As we can't parse then we don't know the
>> reset method. So, Xen will just do an infinite loop.
> 
> Well you do get some ACPI tables - downgrading the minimum at least
> restores the reset method detection. I wonder if it would be worth
> defaulting to PSCI if you don't know rather than hang indefinitely?

The risk is probably low enough to try to use PSCI even on platform not 
supporting it.

Although, it might be worth to check if EL3 is present to avoid 
panicking again and again on XGene.

> 
> FWIW the failure after that is failing to find the GIC - I'm just
> looking at the MADT table parsing now. Why am I getting a sense of
> DejaVu?

The ACPI code in Xen is based on the first ACPI implementation in Linux. 
So it is quite possible you encountered the bug there :).

>> It would probably be good to be more forthcoming with the users and say
>> it will not reboot.
>>
>> Also, IIRC, the time subsystem is not yet initialized. So it might be
>> possible to mdelay() doesn't work properly.
> 
> Surely that's an architectural subsystem so there is no reason that
> couldn't be up and running.

In theory yes, but the code is also catering some interesting/weird 
platforms behavior:
    1) There are (were?) platform where CNTFREQ was not set correctly
    2) Some platforms, such as the one with Exynos 5, (used to?) require 
specific code to enable the arch timer.

We are still using the Arndale for automated testing. So we would need 
to keep the hacks.

But it would be possible to rework the code and try to make the timer 
available earlier for well-behaved platforms.

Cheers,

-- 
Julien Grall


      reply	other threads:[~2020-09-30 11:10 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-26 20:55 [PATCH 0/4] xen/arm: Unbreak ACPI Julien Grall
2020-09-26 20:55 ` [PATCH 1/4] xen/acpi: Rework acpi_os_map_memory() and acpi_os_unmap_memory() Julien Grall
2020-09-28  8:18   ` Jan Beulich
2020-09-28  9:58     ` Julien Grall
2020-09-28 10:09       ` Jan Beulich
2020-09-28 10:39         ` Julien Grall
2020-10-10  9:49           ` Julien Grall
2020-10-10 10:04             ` Julien Grall
2020-09-29 11:10   ` Rahul Singh
2020-10-01  0:06   ` Stefano Stabellini
2020-10-01 15:09     ` Julien Grall
2020-09-26 20:55 ` [PATCH 2/4] xen/arm: acpi: The fixmap area should always be cleared during failure/unmap Julien Grall
2020-09-29 11:13   ` Rahul Singh
2020-10-01  0:30   ` Stefano Stabellini
2020-10-01 15:14     ` Julien Grall
2020-09-26 20:55 ` [PATCH 3/4] xen/arm: Check if the platform is not using ACPI before initializing Dom0less Julien Grall
2020-09-29 11:17   ` Rahul Singh
2020-09-30 23:26   ` Stefano Stabellini
2020-09-26 20:55 ` [PATCH 4/4] xen/arm: Introduce fw_unreserved_regions() and use it Julien Grall
2020-09-30 23:40   ` Stefano Stabellini
2020-10-01 15:34     ` Julien Grall
2020-09-27  1:47 ` [PATCH 0/4] xen/arm: Unbreak ACPI Elliott Mitchell
2020-09-29 15:28   ` Elliott Mitchell
2020-09-28  6:47 ` Masami Hiramatsu
2020-09-28 12:41   ` [PATCH] xen: acpi: Hide UART address only if SPCR exists Masami Hiramatsu
2020-09-28 12:42     ` Masami Hiramatsu
2021-01-19  7:25     ` Elliott Mitchell
2021-01-20 18:05       ` Julien Grall
2020-09-28 13:00   ` [PATCH 0/4] xen/arm: Unbreak ACPI Masami Hiramatsu
2020-10-16 22:33     ` Xen-ARM EFI/ACPI problems (was: Re: [PATCH 0/4] xen/arm: Unbreak ACPI) Elliott Mitchell
2020-10-17  5:12       ` Elliott Mitchell
2020-10-08 18:39   ` [PATCH 0/4] xen/arm: Unbreak ACPI Elliott Mitchell
2020-10-09  9:39     ` Julien Grall
2020-10-09 14:22       ` Elliott Mitchell
2020-10-09 18:15         ` Julien Grall
2020-10-09 22:36           ` Elliott Mitchell
2020-10-09 21:49   ` Elliott Mitchell
2020-10-10 11:02   ` Julien Grall
2020-10-12 19:02     ` Stefano Stabellini
2020-10-12 21:34       ` Elliott Mitchell
2020-10-14  1:06         ` Stefano Stabellini
2020-10-14  1:37           ` Elliott Mitchell
2020-10-14 17:47             ` Julien Grall
2020-10-15 18:00               ` Stefano Stabellini
2020-10-14 17:44       ` Julien Grall
2020-09-29 11:10 ` Rahul Singh
2020-09-29 15:29 ` Alex Bennée
2020-09-29 17:07   ` Julien Grall
2020-09-29 21:11     ` Alex Bennée
2020-09-29 23:39       ` André Przywara
2020-09-30  8:51         ` Alex Bennée
2020-09-30 10:35         ` Julien Grall
2020-09-30  9:42       ` Julien Grall
2020-09-30 10:38         ` Alex Bennée
2020-09-30 11:10           ` Julien Grall [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5afcd9d2-aa6f-9901-bd2c-b53c5649e498@xen.org \
    --to=julien@xen.org \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=alex.bennee@linaro.org \
    --cc=andre.przywara@arm.com \
    --cc=bertrand.marquis@arm.com \
    --cc=ehem+xen@m5p.com \
    --cc=jgrall@amazon.com \
    --cc=masami.hiramatsu@linaro.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).