Patchwork seabios: missing DMI type 4 entry if -cpu parameter is used

login
register
mail settings
Submitter Gleb Natapov
Date Nov. 23, 2009, 1 p.m.
Message ID <20091123130043.GN2999@redhat.com>
Download mbox | patch
Permalink /patch/39049/
State New
Headers show

Comments

Gleb Natapov - Nov. 23, 2009, 1 p.m.
On Sun, Nov 22, 2009 at 06:05:02PM +0100, Sebastian Herbszt wrote:
> v0.11.0-rc0-1677:
> use -cpu pentium and check SMBIOS tables. DMI type 4 entry is missing.
> Works with Bochs bios.
> 
See two problems here. First one in seabios (patch attached). And the
second one in QEMU. Why pentium cpu type lacks apic? Specifying 
-cpu pentium,+apic works with current seabios without the patch.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
--
			Gleb.
Sebastian Herbszt - Nov. 23, 2009, 6:33 p.m.
Gleb Natapov wrote:
> On Sun, Nov 22, 2009 at 06:05:02PM +0100, Sebastian Herbszt wrote:
>> v0.11.0-rc0-1677:
>> use -cpu pentium and check SMBIOS tables. DMI type 4 entry is missing.
>> Works with Bochs bios.
>> 
> See two problems here. First one in seabios (patch attached). And the
> second one in QEMU. Why pentium cpu type lacks apic? Specifying 
> -cpu pentium,+apic works with current seabios without the patch.

The "Pentium Processor Family Developer's Manual, Volume 3: Architecture
and Programming Manual" says the following in Chapter 19.3:

"APIC IS SUPPORTED ONLY ON PENTIUM PROCESSOR (735\90, 815\100,
1000\120, 1110\133) AND FUTURE PROLIFERATIONS AND UPGRADES."

So it seems not all pentium cpus have an apic. No clue which model and stepping
those are so can't compare to what qemu claims to provide.

- Sebastian
Kevin O'Connor - Nov. 24, 2009, 2:42 p.m.
On Mon, Nov 23, 2009 at 03:00:43PM +0200, Gleb Natapov wrote:
> On Sun, Nov 22, 2009 at 06:05:02PM +0100, Sebastian Herbszt wrote:
> > v0.11.0-rc0-1677:
> > use -cpu pentium and check SMBIOS tables. DMI type 4 entry is missing.
> > Works with Bochs bios.
> > 
> See two problems here. First one in seabios (patch attached). And the
> second one in QEMU. Why pentium cpu type lacks apic? Specifying 
> -cpu pentium,+apic works with current seabios without the patch.
> 
> Signed-off-by: Gleb Natapov <gleb@redhat.com>

Thanks - commit b49e1e38.

-Kevin

Patch

diff --git a/src/smp.c b/src/smp.c
index 7100476..00cf64b 100644
--- a/src/smp.c
+++ b/src/smp.c
@@ -75,7 +75,9 @@  smp_probe(void)
     cpuid(1, &eax, &ebx, &ecx, &cpuid_features);
     if (! (cpuid_features & CPUID_APIC)) {
         // No apic - only the main cpu is present.
+        dprintf(1, "No apic - only the main cpu is present.\n");
         CountCPUs= 1;
+        MaxCountCPUs = 1;
         return;
     }