coreboot-kgpe-d16/src/southbridge/intel
Uwe Hermann 77180546c8 Add IOAPIC support for Intel 82371EB and fixup SMP on ASUS P2B-D.
- Add enable_intel_82093aa_ioapic() which enables IOAPIC usage in the
   Intel 82371EB southbridge (sets the proper chip-select) and sets an
   IOAPIC ID.

 - We only call enable_intel_82093aa_ioapic() if a board does "select IOAPIC"
   as on 82371EB-based boards the IOAPIC is an external chip (not integrated
   in the southbridge) and it's only populated on multi-CPU boards.
   That is, we cannot unconditionally enable it, only on SMP-capable boards.

 - Due to the reason explained above, remove "select IOAPIC" from
   src/southbridge/intel/i82371eb/Kconfig, and add it to
   src/mainboard/asus/p2b-d/Kconfig.

 - Also set CONFIG_MAX_PHYSICAL_CPUS to 2 on ASUS P2B-D. There are two
   CPU sockets (Slot 1) and each CPU can only have one core, multi-core CPUs
   didn't exist in that era (CONFIG_MAX_CPUS was set to 2 already).

 - Drop useless/duplicated enable_lapic() call from ASUS P2B-D's romstage.c,
   that function is always called if either CONFIG_SMP and/or CONFIG_IOAPIC
   are set.

 - Rework ASUS P2B-D mptable.c to fix a number of things:

   - Convert it to use mptable_write_buses() as all mptable.c files should do.

   - Fix incorrect IOAPICID (it's 0x11 for the external 82093AA IOAPIC).

   - Fix a bunch of hardcoded bus IDs, remove incorrect entries, etc.

This is build-tested on ASUS P2B-D, and also boot-tested successfully there.
On Linux I now get two entries in /proc/cpuinfo (where only one appeared
before this patch), i.e. both populated CPUs are found.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5998 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2010-10-28 08:19:22 +00:00
..
esb6300 Copy ICH4 hard_reset() for 6300ESB. 2010-10-19 14:02:10 +00:00
i3100 We define IO_APIC_ADDR in <arch/ioapic.h>, let's use it. 2010-10-12 17:34:08 +00:00
i82371eb Add IOAPIC support for Intel 82371EB and fixup SMP on ASUS P2B-D. 2010-10-28 08:19:22 +00:00
i82801ax Remove various .c #includes from Intel i810/i82801ax/i82801bx boards. 2010-10-13 23:00:41 +00:00
i82801bx Remove various .c #includes from Intel i810/i82801ax/i82801bx boards. 2010-10-13 23:00:41 +00:00
i82801cx Convert some comments to proper Doxygen syntax. 2010-10-26 22:46:43 +00:00
i82801dx We define IO_APIC_ADDR in <arch/ioapic.h>, let's use it. 2010-10-12 17:34:08 +00:00
i82801ex We define IO_APIC_ADDR in <arch/ioapic.h>, let's use it. 2010-10-12 17:34:08 +00:00
i82801gx We define IO_APIC_ADDR in <arch/ioapic.h>, let's use it. 2010-10-12 17:34:08 +00:00
i82870 Convert some comments to proper Doxygen syntax. 2010-10-26 22:46:43 +00:00
pxhd Rename build system variables to be more intuitive, and 2010-09-30 16:55:02 +00:00
Kconfig This does the following: 2010-02-27 01:50:21 +00:00
Makefile.inc This does the following: 2010-02-27 01:50:21 +00:00