[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [QEMU RFC PATCH 4/7] i386: create apic_id_for_cpu() functio
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [QEMU RFC PATCH 4/7] i386: create apic_id_for_cpu() function |
Date: |
Tue, 10 Jul 2012 17:22:19 -0300 |
Currently we need a way to calculate the Initial APIC ID using only the
CPU index, as the CPU hotplug interface doesn't have a method to send
the correct APIC ID to the ACPI hotplug code at hotplug-time.
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/cpu.c | 2 +-
target-i386/cpu.h | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index b257241..c54619a 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1770,7 +1770,7 @@ static void x86_cpu_initfn(Object *obj)
x86_cpuid_get_tsc_freq,
x86_cpuid_set_tsc_freq, NULL, NULL, NULL);
- env->cpuid_apic_id = env->cpu_index;
+ env->cpuid_apic_id = apic_id_for_cpu(env->cpu_index);
/* init various static tables used in TCG mode */
if (tcg_enabled() && !inited) {
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 6924c7f..e983c10 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -908,6 +908,23 @@ void cpu_clear_apic_feature(CPUX86State *env);
void host_cpuid(uint32_t function, uint32_t count,
uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
+
+/* Calculate initial APIC ID for a specific CPU index
+ *
+ * Currently we need to be able to calculate the APIC ID from the CPU index
+ * only, as the QEMU<->Seabios(ACPI) interface for CPU hotplug isn't able
+ * to let the ACPI CPU hotplug code to retrivew the APIC ID at hotplug
+ * time.
+ */
+static inline uint8_t apic_id_for_cpu(int cpu_index)
+{
+ /* right now APIC ID == CPU index. this will eventually change to use
+ * the CPU topology configuration properly
+ */
+ return cpu_index;
+}
+
+
/* helper.c */
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
int is_write, int mmu_idx);
--
1.7.10.4
[Qemu-devel] [Seabios RFC PATCH 1/1] get lapic IDs from fw_cfg, Eduardo Habkost, 2012/07/10
[Qemu-devel] [QEMU RFC PATCH 4/7] i386: create apic_id_for_cpu() function,
Eduardo Habkost <=
[Qemu-devel] [QEMU RFC PATCH 7/7] generate APIC IDs according to CPU topology, Eduardo Habkost, 2012/07/10
[Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Eduardo Habkost, 2012/07/10
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Blue Swirl, 2012/07/12
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Eduardo Habkost, 2012/07/13
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Blue Swirl, 2012/07/14
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Eduardo Habkost, 2012/07/16
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Blue Swirl, 2012/07/23
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Eduardo Habkost, 2012/07/23
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Blue Swirl, 2012/07/23
- Re: [Qemu-devel] [QEMU RFC PATCH 6/7] i386: topology & APIC ID utility functions, Eduardo Habkost, 2012/07/23