[PATCH] acpi: reboot: log reset parameters
[email protected] Wed, 29 Jul 2026 17:18:55 -0700
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <[email protected]> |
From: Denis Mukhin <[email protected]> Xen does not provide much details for system reset debugging in case system reset happens via ACPI subsystem. Log reset I/O address and reset value. While here, fix the missing default case, guard it with ASSERT_UNREACHABLE() and drop full stops in the loglines. Signed-off-by: Denis Mukhin <[email protected]> --- CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2716843348 --- xen/drivers/acpi/reboot.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/xen/drivers/acpi/reboot.c b/xen/drivers/acpi/reboot.c index f6345be8749f..3b0437395674 100644 --- a/xen/drivers/acpi/reboot.c +++ b/xen/drivers/acpi/reboot.c @@ -6,6 +6,7 @@ void acpi_reboot(void) { struct acpi_generic_address *rr; u8 reset_value; + pci_sbdf_t sbdf; rr = &acpi_gbl_FADT.reset_register; @@ -21,17 +22,24 @@ void acpi_reboot(void) * on a device on bus 0. */ switch (rr->space_id) { case ACPI_ADR_SPACE_PCI_CONFIG: - printk("Resetting with ACPI PCI RESET_REG.\n"); + sbdf = PCI_SBDF(0, 0, rr->address >> 32, rr->address >> 16); + printk("Resetting with ACPI PCI %pp RESET_REG at 0x%"PRIx64" (0x%x)\n", + &sbdf, rr->address & 0xffu, reset_value); /* Write the value that resets us. */ - pci_conf_write8(PCI_SBDF(0, 0, rr->address >> 32, - rr->address >> 16), - (rr->address & 255), - reset_value); + pci_conf_write8(sbdf, rr->address & 0xffu, reset_value); break; case ACPI_ADR_SPACE_SYSTEM_MEMORY: - case ACPI_ADR_SPACE_SYSTEM_IO: - printk("Resetting with ACPI MEMORY or I/O RESET_REG.\n"); + printk("Resetting with ACPI MEMORY at 0x%"PRIx64" (0x%x)\n", + rr->address, reset_value); acpi_hw_low_level_write(8, reset_value, rr); break; + case ACPI_ADR_SPACE_SYSTEM_IO: + printk("Resetting with I/O RESET_REG at 0x%"PRIx64" (0x%x)\n", + rr->address, reset_value); + acpi_hw_low_level_write(8, reset_value, rr); + break; + default: + ASSERT_UNREACHABLE(); + break; } } -- 2.54.0