qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] fixup! pc: add 'etc/boot-cpus' fw_cfg file for mach


From: Eduardo Habkost
Subject: [Qemu-devel] [PATCH] fixup! pc: add 'etc/boot-cpus' fw_cfg file for machine with more than 255 CPUs
Date: Thu, 20 Oct 2016 16:51:48 -0200
User-agent: Mutt/1.7.0 (2016-08-17)

On Thu, Oct 20, 2016 at 04:58:42PM +0200, Igor Mammedov wrote:
> Currently firmware uses 1 byte at 0x5F offset in RTC CMOS
> to get number of CPUs present at boot. However 1 byte is
> not enough to handle more than 255 CPUs.  So add a new
> fw_cfg file that would allow QEMU to tell it.
> For compat reasons add file only for machine types that
> support more than 255 CPUs.
> 
> Signed-off-by: Igor Mammedov <address@hidden>

I suggest squashing this into the patch, to clarify why we are
setting it to 0.

Signed-off-by: Eduardo Habkost <address@hidden>
---
 hw/i386/pc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index c6f6747..a03b384 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1225,6 +1225,10 @@ static void pc_build_feature_control_file(PCMachineState 
*pcms)
 static void rtc_set_cpus_count(ISADevice *rtc, uint16_t cpus_count)
 {
     if (cpus_count > 0xff) {
+        /* If the number of CPUs can't be represented in 8 bits, the
+         * BIOS must use "etc/boot-cpus". Set RTC field to 0 just
+         * to make old BIOSes fail more predictably.
+         */
         rtc_set_memory(rtc, 0x5f, 0);
     } else {
         rtc_set_memory(rtc, 0x5f, cpus_count - 1);
-- 
2.7.4

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]