On Tue, Mar 29, 2022 at 08:54:36AM +0200, Corvin Köhne wrote: > Hi, > > I'm going to add QemuFwCfg support to bhyve. See > https://reviews.freebsd.org/D31578. Therefore, this patch for OVMF is > neccessary to work properly. > > There's one open point on that patch and hopefully one of you has more > insights. Qemu has an item called FW_CFG_MAX_CPUS. It looks very similar to > what we need here, but I'm not sure if we can use it safely as Qemu has a > comment about it: > > https://github.com/qemu/qemu/blob/0021c4765a6b83e5b09409b75d50c6caaa6971b9/hw/i386/fw_cfg.c#L110-L121 > > /* FW_CFG_MAX_CPUS is a bit confusing/problematic on x86: > * > * For machine types prior to 1.8, SeaBIOS needs FW_CFG_MAX_CPUS for > * building MPTable, ACPI MADT, ACPI CPU hotplug and ACPI SRAT table, > * that tables are based on xAPIC ID and QEMU<->SeaBIOS interface > * for CPU hotplug also uses APIC ID and not "CPU index". > * This means that FW_CFG_MAX_CPUS is not the "maximum number of CPUs", > * but the "limit to the APIC ID values SeaBIOS may see". > * > * So for compatibility reasons with old BIOSes we are stuck with > * "etc/max-cpus" actually being apic_id_limit > */
There is FW_CFG_NB_CPUS + FW_CFG_MAX_CPUS. ovmf uses different names, see OvmfPkg/Include/IndustryStandard/QemuFwCfg.h PlatformPei for qemu uses QemuFwCfgItemSmpCpuCount aka FW_CFG_NB_CPUS, which is the number of cpus which are online. I think FW_CFG_MAX_CPUS is basically unused these days. It played a role back when seabios created the acpi tables for cpu hotplug as described in the comment above. In qemu 2.0 & newer the acpi tables are generated by qemu instead. The firmware just downloads them from fw_cfg and installs them for the OS, it doesn't need to know virtual machine configuration details any more. HTH, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88164): https://edk2.groups.io/g/devel/message/88164 Mute This Topic: https://groups.io/mt/90103180/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-