diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c
index 125066d..6de70f6 100644
--- a/src/fw/paravirt.c
+++ b/src/fw/paravirt.c
@@ -205,6 +205,7 @@
 #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 @@
     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;
 }
diff --git a/src/fw/paravirt.h b/src/fw/paravirt.h
index 6f26fd0..d8eb7c4 100644
--- a/src/fw/paravirt.h
+++ b/src/fw/paravirt.h
@@ -52,7 +52,6 @@
 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
diff --git a/src/fw/smp.c b/src/fw/smp.c
index bcbad69..46d1da1 100644
--- a/src/fw/smp.c
+++ b/src/fw/smp.c
@@ -176,7 +176,7 @@
         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;
 
