mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-21 23:21:58 +00:00
x86: Correct handling of MADT table CPUs
At present if hyperthreading is disabled the CPU numbering is not sequential. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
26c3d3d7d5
commit
4ff3591988
1 changed files with 6 additions and 3 deletions
|
@ -66,14 +66,17 @@ int acpi_create_madt_lapics(u32 current)
|
||||||
{
|
{
|
||||||
struct udevice *dev;
|
struct udevice *dev;
|
||||||
int total_length = 0;
|
int total_length = 0;
|
||||||
|
int cpu_num = 0;
|
||||||
|
|
||||||
for (uclass_find_first_device(UCLASS_CPU, &dev);
|
for (uclass_find_first_device(UCLASS_CPU, &dev);
|
||||||
dev;
|
dev;
|
||||||
uclass_find_next_device(&dev)) {
|
uclass_find_next_device(&dev)) {
|
||||||
struct cpu_platdata *plat = dev_get_parent_platdata(dev);
|
struct cpu_platdata *plat = dev_get_parent_platdata(dev);
|
||||||
int length = acpi_create_madt_lapic(
|
int length;
|
||||||
(struct acpi_madt_lapic *)current,
|
|
||||||
plat->cpu_id, plat->cpu_id);
|
length = acpi_create_madt_lapic(
|
||||||
|
(struct acpi_madt_lapic *)current, cpu_num++,
|
||||||
|
plat->cpu_id);
|
||||||
current += length;
|
current += length;
|
||||||
total_length += length;
|
total_length += length;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue