On Wed, Sep 15, 2010 at 4:53 AM, Peter Stuge peter@stuge.se wrote:
Scott Duplichan wrote:
Assigning a unique id to the SB ioapic is not as simple as choosing the next biggest available value, because the ioapic is traditionally a 4-bit value.
Did you look at how the K8 support does this? I think this may already be handled there, maybe it's a useful reference.
K8 and Fa10 have the same option to lift the BSP APIC ID, The code looks stale and I don't think that it would be enough for FAM10. For K8 you only need to move one ID to make room for the SB (2*8). For FAM10, you need to lift more than just the BSP.
+++ src/southbridge/amd/sb700/sb700_sm.c (working copy)
- #if (CONFIG_APIC_ID_OFFSET == 0 && CONFIG_MAX_CPUS * CONFIG_MAX_PHYSICAL_CPUS < 16)
..
Have you tried setting CONFIG_APIC_ID_OFFSET?
+++ src/mainboard/asus/m4a785-m/acpi_tables.c (working copy)
- #if (CONFIG_APIC_ID_OFFSET == 0 && CONFIG_MAX_CPUS * CONFIG_MAX_PHYSICAL_CPUS < 16)
- #define IO_APIC_ID (CONFIG_MAX_CPUS * CONFIG_MAX_PHYSICAL_CPUS)
- #else
- #define IO_APIC_ID 0
- #endif
Is there a header file in north or southbridge that could be used to store the logic?
I agree, this doesn't belong in acpi code. IO_APIC_ID could be used in the sb700_sm.c as well.
Marc