The AcpiMadtProcessor structure is :
Code: Select all
AcpiMadtProcessor = packed record
Header: AcpiMadtEntry;
AcpiId: byte;
ApicId: byte;
Flags: dword;
end;
Saludos.
Code: Select all
AcpiMadtProcessor = packed record
Header: AcpiMadtEntry;
AcpiId: byte;
ApicId: byte;
Flags: dword;
end;
Well, this isn't necessarily an error. Are all processors (cores), that you have, reported? (If you have a dual core system, are two enabled processors reported? If you have a quad core system, are four enabled processors reported? ...) If yes, everything is fine.z0rr0 wrote:I am adding multicore support to my Os and when i am reading ACPI table , in the "Acpi Madt Processor" structure , some cores (not all) has the CPU_FLAG_ENABLED down , and the Apicid is zero .
In this case I doubt the APIC (it's not really MADT) tables are truly broken. The ACPI standard allows for a BIOS to contain a statically sized structure that reports the present CPUs as well as contain unused entries. This allows a system that can contain a maximum of 4 processors to always have a table properly sized for those 4 processors, even if only 2 are really present. The other two entries will simply not have the enabled flag set and should be ignored.Hyperdrive wrote:Well, this isn't necessarily an error. Are all processors (cores), that you have, reported? (If you have a dual core system, are two enabled processors reported? If you have a quad core system, are four enabled processors reported? ...) If yes, everything is fine.z0rr0 wrote:I am adding multicore support to my Os and when i am reading ACPI table , in the "Acpi Madt Processor" structure , some cores (not all) has the CPU_FLAG_ENABLED down , and the Apicid is zero .
If not, there are three possibilities:
(1) Some processors are really defective (hardware failure).
(2) The BIOS reports wrong tables.
(3) Your code is broken.
I think (3) is the most likely of these...
--TS
I have a quad core system , 2 cores are repoted fine, and other cores are detected but the apicid is wrong .Hyperdrive wrote:Well, this isn't necessarily an error. Are all processors (cores), that you have, reported? (If you have a dual core system, are two enabled processors reported? If you have a quad core system, are four enabled processors reported? ...) If yes, everything is fine.z0rr0 wrote:I am adding multicore support to my Os and when i am reading ACPI table , in the "Acpi Madt Processor" structure , some cores (not all) has the CPU_FLAG_ENABLED down , and the Apicid is zero .
If not, there are three possibilities:
(1) Some processors are really defective (hardware failure).
(2) The BIOS reports wrong tables.
(3) Your code is broken.
I think (3) is the most likely of these...
--TS