Author: stuge Date: Sat Jun 4 17:43:15 2011 New Revision: 6621 URL: https://tracker.coreboot.org/trac/coreboot/changeset/6621
Log: Port persimmon r6572 to e350m1: I/O APIC ID
1) Set I/O APIC ID according to BKDG recommendation 2) Correct I/O APIC ID reported by mptable
Signed-off-by: Marshall Buschman mbuschman@lucidmachines.com Acked-by: Peter Stuge peter@stuge.se
Modified: trunk/src/mainboard/asrock/e350m1/acpi_tables.c trunk/src/mainboard/asrock/e350m1/get_bus_conf.c trunk/src/mainboard/asrock/e350m1/mptable.c
Modified: trunk/src/mainboard/asrock/e350m1/acpi_tables.c ============================================================================== --- trunk/src/mainboard/asrock/e350m1/acpi_tables.c Sat Jun 4 17:40:12 2011 (r6620) +++ trunk/src/mainboard/asrock/e350m1/acpi_tables.c Sat Jun 4 17:43:15 2011 (r6621) @@ -64,7 +64,7 @@ current = acpi_create_madt_lapics(current);
/* Write SB800 IOAPIC, only one */ - current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current, 2, + current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current, CONFIG_MAX_CPUS, IO_APIC_ADDR, 0);
current += acpi_create_madt_irqoverride((acpi_madt_irqoverride_t *)
Modified: trunk/src/mainboard/asrock/e350m1/get_bus_conf.c ============================================================================== --- trunk/src/mainboard/asrock/e350m1/get_bus_conf.c Sat Jun 4 17:40:12 2011 (r6620) +++ trunk/src/mainboard/asrock/e350m1/get_bus_conf.c Sat Jun 4 17:43:15 2011 (r6621) @@ -138,7 +138,7 @@
/* I/O APICs: APIC ID Version State Address */ bus_isa = 10; - apicid_base = CONFIG_MAX_PHYSICAL_CPUS; + apicid_base = CONFIG_MAX_CPUS; //#if CONFIG_LOGICAL_CPUS==1 // apicid_base = get_apicid_base(1); //#endif
Modified: trunk/src/mainboard/asrock/e350m1/mptable.c ============================================================================== --- trunk/src/mainboard/asrock/e350m1/mptable.c Sat Jun 4 17:40:12 2011 (r6620) +++ trunk/src/mainboard/asrock/e350m1/mptable.c Sat Jun 4 17:43:15 2011 (r6621) @@ -69,7 +69,7 @@ dword |= (pm_ioread(0x35) & 0xFF) << 8; dword |= (pm_ioread(0x36) & 0xFF) << 16; dword |= (pm_ioread(0x37) & 0xFF) << 24; - smp_write_ioapic(mc, apicid_sb800, 0x11, dword); + smp_write_ioapic(mc, apicid_sb800, 0x21, dword);
for (byte = 0x0; byte < sizeof(intr_data); byte ++) { outb(byte | 0x80, 0xC00);