diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-04-16 09:43:40 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-04-20 20:03:55 +0200 |
commit | a6c525a7d5ad0dedc31dcc9719be6bc5fbc743dd (patch) | |
tree | e789fe63a0581050c35f07806d6854ed7f82d08d /src/mainboard/supermicro/h8scm | |
parent | 35546deba642d3bb341d329fc1b9711727a5c50e (diff) |
AMD AGESA cimx/sb700: Drop APIC_ID_OFFSET and MAX_PHYSICAL_CPUS
Following boards use cimx/sb700:
amd/dinar
supermicro/h8qgi
supermicro/h8scm
tyan/s8226
Only amd/dinar had APIC_ID_OFFSET defined, thus all had 0x0.
There was a nonsense preprocessor directive (MAX_CPUS * MAX_PHYSICAL_CPUS >= 1).
Except for tyan, (MAX_CPUS * MAX_PHYSICAL_CPUS) % 256 == 0.
Together with documented 4-bit restriction for APIC ID field, this APIC ID
programming matches with MP tables and ACPI tables.
I believe this would also fix cases of cimx/sb700 with MAX_CPUS<16, which
we do not have in the tree.
Change-Id: If8d65e95788ba02fc8d331a7af03a4d0d8cf5c69
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5539
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Diffstat (limited to 'src/mainboard/supermicro/h8scm')
-rw-r--r-- | src/mainboard/supermicro/h8scm/Kconfig | 4 | ||||
-rw-r--r-- | src/mainboard/supermicro/h8scm/acpi_tables.c | 11 | ||||
-rw-r--r-- | src/mainboard/supermicro/h8scm/mptable.c | 9 |
3 files changed, 9 insertions, 15 deletions
diff --git a/src/mainboard/supermicro/h8scm/Kconfig b/src/mainboard/supermicro/h8scm/Kconfig index 86395e4ebf..7260f998cf 100644 --- a/src/mainboard/supermicro/h8scm/Kconfig +++ b/src/mainboard/supermicro/h8scm/Kconfig @@ -53,10 +53,6 @@ config MAX_CPUS int default 64 -config MAX_PHYSICAL_CPUS - int - default 16 - config CPU_ADDR_BITS int default 36 # TODO: Set it conservatively to match both fam10 & 15 diff --git a/src/mainboard/supermicro/h8scm/acpi_tables.c b/src/mainboard/supermicro/h8scm/acpi_tables.c index 05c99950ca..ffcdf1cadd 100644 --- a/src/mainboard/supermicro/h8scm/acpi_tables.c +++ b/src/mainboard/supermicro/h8scm/acpi_tables.c @@ -72,12 +72,11 @@ unsigned long acpi_fill_madt(unsigned long current) * For systems with < 16 APICs, put the Local-APICs at 0..n and * put the IO-APICs at (n + 1)..z */ -#if CONFIG_MAX_CPUS >= 16 - apicid_sp5100 = 0x0; -#else - apicid_sp5100 = CONFIG_MAX_CPUS + 1 -#endif - apicid_sr5650 = apicid_sp5100 + 1; + if (CONFIG_MAX_CPUS >= 16) + apicid_sp5100 = 0x0; + else + apicid_sp5100 = CONFIG_MAX_CPUS + 1; + apicid_sr5650 = apicid_sp5100 + 1; /* create all subtables for processors */ current = acpi_create_madt_lapics(current); diff --git a/src/mainboard/supermicro/h8scm/mptable.c b/src/mainboard/supermicro/h8scm/mptable.c index c10a21950d..0365ae6611 100644 --- a/src/mainboard/supermicro/h8scm/mptable.c +++ b/src/mainboard/supermicro/h8scm/mptable.c @@ -58,11 +58,10 @@ static void *smp_write_config_table(void *v) * For systems with < 16 APICs, put the Local-APICs at 0..n and * put the IO-APICs at (n + 1)..z */ -#if CONFIG_MAX_CPUS >= 16 - apicid_sp5100 = 0x0; -#else - apicid_sp5100 = CONFIG_MAX_CPUS + 1 -#endif + if (CONFIG_MAX_CPUS >= 16) + apicid_sp5100 = 0x0; + else + apicid_sp5100 = CONFIG_MAX_CPUS + 1; apicid_sr5650 = apicid_sp5100 + 1; dev = dev_find_slot(0, PCI_DEVFN(sbdn_sp5100 + 0x14, 0)); |