]> xenbits.xensource.com Git - seabios.git/commitdiff
drop "etc/boot-cpus" fw_cfg file and reuse legacy QEMU_CFG_NB_CPUS
authorIgor Mammedov <imammedo@redhat.com>
Fri, 11 Nov 2016 15:35:15 +0000 (16:35 +0100)
committerKevin O'Connor <kevin@koconnor.net>
Mon, 21 Nov 2016 15:08:14 +0000 (10:08 -0500)
since QEMU_CFG_NB_CPUS not going away anytime soon
and serves the same purpose as just added "etc/boot-cpus" fw_cfg
drop support for "etc/boot-cpus" while this code is not
in use yet (i.e. QEMU with "etc/boot-cpus" hasn't been released)
and reuse QEMU_CFG_NB_CPUS instead of it.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
src/fw/paravirt.c
src/fw/paravirt.h
src/fw/smp.c

index 125066ddc6329c875fb050ecfbc29b4947afed05..6de70f611e046ddf41d24765825490e968130303 100644 (file)
@@ -205,6 +205,7 @@ qemu_platform_setup(void)
 #define QEMU_CFG_UUID                   0x02
 #define QEMU_CFG_NUMA                   0x0d
 #define QEMU_CFG_BOOT_MENU              0x0e
+#define QEMU_CFG_NB_CPUS                0x05
 #define QEMU_CFG_MAX_CPUS               0x0f
 #define QEMU_CFG_FILE_DIR               0x19
 #define QEMU_CFG_ARCH_LOCAL             0x8000
@@ -319,40 +320,14 @@ qemu_romfile_add(char *name, int select, int skip, int size)
     romfile_add(&qfile->file);
 }
 
-static int
-qemu_romfile_get_fwcfg_entry(char *name, int *select)
-{
-    struct romfile_s *file = romfile_find(name);
-    if (!file)
-        return 0;
-    struct qemu_romfile_s *qfile;
-    qfile = container_of(file, struct qemu_romfile_s, file);
-    if (select)
-        *select = qfile->select;
-    return file->size;
-}
-
-static int boot_cpus_sel;
-static int boot_cpus_file_sz;
-
-u16
-qemu_init_present_cpus_count(void)
-{
-    u16 smp_count = romfile_loadint("etc/boot-cpus",
-                                    rtc_read(CMOS_BIOS_SMP_COUNT) + 1);
-    boot_cpus_file_sz =
-        qemu_romfile_get_fwcfg_entry("etc/boot-cpus", &boot_cpus_sel);
-    return smp_count;
-}
-
 u16
 qemu_get_present_cpus_count(void)
 {
-    u16 smp_count;
-    if (!boot_cpus_file_sz) {
-        smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
-    } else {
-        qemu_cfg_read_entry(&smp_count, boot_cpus_sel, boot_cpus_file_sz);
+    u16 smp_count = 0;
+    qemu_cfg_read_entry(&smp_count, QEMU_CFG_NB_CPUS, sizeof(smp_count));
+    u16 cmos_cpu_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
+    if (smp_count < cmos_cpu_count) {
+        smp_count = cmos_cpu_count;
     }
     return smp_count;
 }
index 6f26fd089f7ebcd07d0bd264a66a0dfe1aa097aa..d8eb7c45bacf505a72f234b07a3c2a31f1281906 100644 (file)
@@ -52,7 +52,6 @@ void qemu_preinit(void);
 void qemu_platform_setup(void);
 void qemu_cfg_init(void);
 
-u16 qemu_init_present_cpus_count(void);
 u16 qemu_get_present_cpus_count(void);
 
 #endif
index bcbad69408a1f55b9cd6e9ef857d06f2f655be2c..46d1da1784cf97942838c2ced56e3223bda15811 100644 (file)
@@ -176,7 +176,7 @@ smp_setup(void)
         return;
 
     MaxCountCPUs = romfile_loadint("etc/max-cpus", 0);
-    u16 smp_count = qemu_init_present_cpus_count();
+    u16 smp_count = qemu_get_present_cpus_count();
     if (MaxCountCPUs < smp_count)
         MaxCountCPUs = smp_count;