u64 RamSizeOver4G;
// Type of emulator platform.
int PlatformRunningOn VARFSEG;
+// cfg enabled
+int cfg_enabled = 0;
// cfg_dma enabled
int cfg_dma_enabled = 0;
+inline int qemu_cfg_enabled(void)
+{
+ return cfg_enabled;
+}
+
inline int qemu_cfg_dma_enabled(void)
{
return cfg_dma_enabled;
qemu_get_present_cpus_count(void)
{
u16 smp_count = 0;
- qemu_cfg_read_entry(&smp_count, QEMU_CFG_NB_CPUS, sizeof(smp_count));
+ if (qemu_cfg_enabled()) {
+ 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;
dprintf(1, "Found QEMU fw_cfg\n");
+ cfg_enabled = 1;
// Detect DMA interface.
u32 id;
// QEMU_CFG_DMA ID bit
#define QEMU_CFG_VERSION_DMA 2
+int qemu_cfg_enabled(void);
int qemu_cfg_dma_enabled(void);
void qemu_preinit(void);
void qemu_platform_setup(void);