Package: xen-hypervisor-4.4-amd64
Version: 4.4.1-8
Severity: normal
Tags: patch

The Xen hypervisor in Debian Jessie does not boot on recent HP server hardware (e.g. the current dl360 gen9 series) when using normal "legacy" boot.

During boot, it panics with the message "System without CMOS RTC must be booted from EFI".

This message was introduced in upstream commit f745566, "x86: honor ACPI indicating absence of CMOS RTC". After reports that this breaks booting on HP servers, because the hardware incorrectly sets the CMOS RTC Not Present flag, a workaround was made in e9425f05, "x86/ACPI: allow CMOS RTC use even when ACPI says there is none".

The Xen version that the debian packages are based on is created from a release in between these two commits.

For our own use, I rebuilt the packages including a patch that reverts f745566, instead of applying the solution in e9425f05, because that solution already depends on other new commits.

Please consider doing a similar thing in the Debian packages for Jessie, as it will help to prevent scaring people away from choosing Debian to run Xen on their servers for the next few years. :-)

The simple revert-patch I'm using is attached.

Thanks,

--
Hans van Kranenburg - System / Network Engineer
T +31 (0)10 2760434 | [email protected] | www.mendix.com
>From 92b0fdd4e6afaaba31e55cd6e89c79949a515ec3 Mon Sep 17 00:00:00 2001
From: Hans van Kranenburg <[email protected]>
Date: Tue, 17 Mar 2015 15:06:09 +0100
Subject: [PATCH] Revert "x86: honor ACPI indicating absence of CMOS RTC"

This reverts commit f74556693bca2ff61e3e0c103f90e1d552d795b6.

Also see e9425f05: "HP is setting the ACPI_FADT_NO_CMOS_RTC flag on
newer systems, regardless of whether they're being booted from UEFI."

Instead of trying to pick e9425f05 and its dependencies, we simply
revert the check for now, since we're only using this on the HP
servers.
---
 xen/arch/x86/time.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c
index f80d661..08eff8f 100644
--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -690,9 +690,6 @@ static unsigned long get_cmos_time(void)
             return res;
     }
 
-    if ( unlikely(acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) )
-        panic("System without CMOS RTC must be booted from EFI");
-
     spin_lock_irqsave(&rtc_lock, flags);
 
     /* read RTC exactly on falling edge of update flag */
-- 
2.1.4

Reply via email to