Attached are the outputs of:
lspci -tvnn, - (from ubuntu repository)
superiotool -dV, - (from ubuntu repository)
flashrom -V, - (from ubuntu repository)
getpir output (itq_tables.c), - (from svn)
mptable output - (from svn)
Calibrating delay loop... 597M loops per second, 100 myus = 199 us. OK.
No coreboot table found.
Found chipset "NVIDIA CK804", enabling flash write... OK.
Probing for AMD Am29F002(N)BB, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for AMD Am29F002(N)BT, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for AMD Am29F016D, 2048 KB: probe_29f040b: id1 0xff, id2 0xff
Probing for AMD Am29F040B, 512 KB: probe_29f040b: id1 0x21, id2 0x30
Probing for AMD Am29LV040B, 512 KB: probe_29f040b: id1 0x21, id2 0x30
Probing for ASD AE49F2008, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Atmel AT25DF021, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF041A, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF081, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF161, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF321, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF321A, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25DF641, 8192 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25F512B, 64 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25FS010, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT25FS040, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT26DF041, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT26DF081A, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT26DF161, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT26DF161A, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT26F004, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT29C020, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Atmel AT29C040A, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Atmel AT45CS1282, 16896 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB011D, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB021D, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB041D, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB081D, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB161D, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB321C, 4224 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB321D, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT45DB642D, 8192 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Atmel AT49F002(N), 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Atmel AT49F002(N)T, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for AMIC A25L40P, 512 KB: 4b ID not supported on this SPI controller
Probing for AMIC A29002B, 256 KB: probe_29f002: id1 0xbf, id2 0x60
Probing for AMIC A29002T, 256 KB: probe_29f002: id1 0xbf, id2 0x60
Probing for AMIC A29040B, 512 KB: probe_29f040b: id1 0x21, id2 0x30
Probing for AMIC A49LF040A, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for EMST F49B002UA, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for EON EN29F002(A)(N)B, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for EON EN29F002(A)(N)T, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Fujitsu MBM29F004BC, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Fujitsu MBM29F004TC, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Fujitsu MBM29F400BC, 512 KB: probe_m29f400bt: id1 0x21, id2 0x2d
Probing for Fujitsu MBM29F400TC, 512 KB: probe_m29f400bt: id1 0x21, id2 0x2d
Probing for Intel 82802AB, 512 KB: probe_82802ab: id1 0x21, id2 0x30
Probing for Intel 82802AC, 1024 KB: probe_82802ab: id1 0xff, id2 0xff
Probing for Macronix MX25L512, 64 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L1005, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L2005, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L4005, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L8005, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L1605, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L3205, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX25L6405, 8192 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix MX29F002B, 256 KB: probe_29f002: id1 0xbf, id2 0x60
Probing for Macronix MX29F002T, 256 KB: probe_29f002: id1 0xbf, id2 0x60
Probing for Macronix MX29LV040C, 512 KB: probe_29f002: id1 0xbf, id2 0x60
Probing for Numonyx M25PE10, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Numonyx M25PE20, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Numonyx M25PE40, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Numonyx M25PE80, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Numonyx M25PE16, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV010, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV016B, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV020, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV040, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV080B, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm25LV512, 64 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC Pm49FL002, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for PMC Pm49FL004, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Sharp LHF00L04, 1024 KB: probe_lhf00l04: id1 0xff, id2 0xff
Probing for Spansion S25FL016A, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST SST25VF016B, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST SST25VF032B, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST SST25VF040B, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST SST25VF080B, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST SST28SF040A, 512 KB: probe_28sf040: id1 0x21, id2 0x30
Probing for SST SST29EE010, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST29LE010, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST29EE020A, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST29LE020, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39SF010A, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39SF020A, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39SF040, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39VF512, 64 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39VF010, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39VF020, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST39VF040, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF002A/B, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF003A/B, 384 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF004A/B, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Found chip "SST SST49LF004A/B" (512 KB) at physical address 0xfff80000.
Probing for SST SST49LF004C, 512 KB: probe_49lfxxxc: id1 0x21, id2 0x30
Probing for SST SST49LF008A, 1024 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF008C, 1024 KB: probe_49lfxxxc: id1 0x21, id2 0x30
Probing for SST SST49LF016C, 2048 KB: probe_49lfxxxc: id1 0x21, id2 0x30
Probing for SST SST49LF020A, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF040, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF040B, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF080A, 1024 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SST SST49LF160C, 2048 KB: probe_49lfxxxc: id1 0x21, id2 0x30
Probing for ST M25P05-A, 64 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P10-A, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P20, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P40, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P40-old, 512 KB: spi_command called, but no SPI chipset/strapping detected
spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P80, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P16, 2048 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P32, 4096 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P64, 8192 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M25P128, 16384 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST M29F002B, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for ST M29F002T/NT, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for ST M29F040B, 512 KB: probe_29f040b: id1 0x21, id2 0x30
Probing for ST M29F400BT, 512 KB: probe_m29f400bt: id1 0x21, id2 0x2d
Probing for ST M29W010B, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for ST M29W040B, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for ST M50FLW040A, 512 KB: probe_stm50flw0x0x: id1 0xbf, id2 0x60
Probing for ST M50FLW040B, 512 KB: probe_stm50flw0x0x: id1 0xbf, id2 0x60
Probing for ST M50FLW080A, 1024 KB: probe_stm50flw0x0x: id1 0xbf, id2 0x60
Probing for ST M50FLW080B, 1024 KB: probe_stm50flw0x0x: id1 0xbf, id2 0x60
Probing for ST M50FW002, 256 KB: probe_49lfxxxc: id1 0x21, id2 0x30
Probing for ST M50FW016, 2048 KB: probe_82802ab: id1 0x21, id2 0x30
Probing for ST M50FW040, 512 KB: probe_82802ab: id1 0x21, id2 0x30
Probing for ST M50FW080, 1024 KB: probe_82802ab: id1 0x21, id2 0x30
Probing for ST M50LPW116, 2048 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SyncMOS S29C31004T, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SyncMOS S29C51001T, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SyncMOS S29C51002T, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for SyncMOS S29C51004T, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W25x10, 128 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Winbond W25x20, 256 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Winbond W25x40, 512 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Winbond W25x80, 1024 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Winbond W29C011, 128 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W29C020C, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W29C040P, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W29EE011, 128 KB:
===
Probing disabled for Winbond W29EE011 because the probing sequence puts the
AMIC A49LF040A in a funky state.
Use 'flashrom -c W29EE011' if you have a board with this chip.
===
Probing for Winbond W39V040A, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W39V040B, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W39V040C, 512 KB: probe_w39v040c: id1 0xbf, id2 0x60
Probing for Winbond W39V040FA, 512 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W39V080A, 1024 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W49F002U, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W49V002A, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W49V002FA, 256 KB: probe_jedec: id1 0xbf, id2 0x60
Probing for Winbond W39V080FA, 1024 KB: probe_winbond_fwhub: vid 0xbf, did 0x60
Probing for Winbond W39V080FA (dual mode), 512 KB: probe_winbond_fwhub: vid 0xbf, did 0x60
Probing for Atmel unknown Atmel SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
Probing for EON unknown EON SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
Probing for Macronix unknown Macronix SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
Probing for PMC unknown PMC SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
Probing for SST unknown SST SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
Probing for ST unknown ST SPI chip, 0 KB: spi_command called, but no SPI chipset/strapping detected
No operations were specified.
-[0000:00]-+-00.0 nVidia Corporation CK804 Memory Controller [10de:005e]
+-01.0 nVidia Corporation CK804 ISA Bridge [10de:0050]
+-01.1 nVidia Corporation CK804 SMBus [10de:0052]
+-02.0 nVidia Corporation CK804 USB Controller [10de:005a]
+-02.1 nVidia Corporation CK804 USB Controller [10de:005b]
+-04.0 nVidia Corporation CK804 AC'97 Audio Controller [10de:0059]
+-06.0 nVidia Corporation CK804 IDE [10de:0053]
+-08.0 nVidia Corporation CK804 Serial ATA Controller [10de:0055]
+-09.0-[0000:05]--+-06.0 Creative Labs SB Audigy [1102:0004]
| +-06.1 Creative Labs SB Audigy Game Port [1102:7003]
| +-06.2 Creative Labs SB Audigy FireWire Port [1102:4001]
| \-0b.0 Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) [104c:8023]
+-0a.0 nVidia Corporation CK804 Ethernet Controller [10de:0057]
+-0b.0-[0000:04]--
+-0c.0-[0000:03]--
+-0d.0-[0000:02]--
+-0e.0-[0000:01]----00.0 nVidia Corporation D9M-20 [GeForce 9400 GT] [10de:0641]
+-18.0 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration [1022:1100]
+-18.1 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map [1022:1101]
+-18.2 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller [1022:1102]
\-18.3 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control [1022:1103]
/* generated by MPTable, version 2.0.15*/
/* as modified by RGM for coreboot */
#include <console/console.h>
#include <arch/smp/mpspec.h>
#include <device/pci.h>
#include <string.h>
#include <stdint.h>
void *smp_write_config_table(void *v)
{
static const char sig[4] = "PCMP";
static const char oem[8] = "LNXI ";
static const char productid[12] = "P4DPE ";
struct mp_config_table *mc;
mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN);
memset(mc, 0, sizeof(*mc));
memcpy(mc->mpc_signature, sig, sizeof(sig));
mc->mpc_length = sizeof(*mc); /* initially just the header */
mc->mpc_spec = 0x04;
mc->mpc_checksum = 0; /* not yet computed */
memcpy(mc->mpc_oem, oem, sizeof(oem));
memcpy(mc->mpc_productid, productid, sizeof(productid));
mc->mpc_oemptr = 0;
mc->mpc_oemsize = 0;
mc->mpc_entry_count = 0; /* No entries yet... */
mc->mpc_lapic = LAPIC_ADDR;
mc->mpe_length = 0;
mc->mpe_checksum = 0;
mc->reserved = 0;
smp_write_processors(mc);
/*Bus: Bus ID Type*/
smp_write_bus(mc, 0, "PCI ");
smp_write_bus(mc, 1, "PCI ");
smp_write_bus(mc, 2, "PCI ");
smp_write_bus(mc, 3, "PCI ");
smp_write_bus(mc, 4, "PCI ");
smp_write_bus(mc, 5, "PCI ");
smp_write_bus(mc, 6, "ISA ");
/*I/O APICs: APIC ID Version State Address*/
smp_write_ioapic(mc, 2, 0x20, 0xfec00000);
{
device_t dev;
struct resource *res;
dev = dev_find_slot(1, PCI_DEVFN(0x1e,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 3, 0x20, res->base);
}
}
dev = dev_find_slot(1, PCI_DEVFN(0x1c,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 4, 0x20, res->base);
}
}
dev = dev_find_slot(4, PCI_DEVFN(0x1e,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 5, 0x20, res->base);
}
}
dev = dev_find_slot(4, PCI_DEVFN(0x1c,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 8, 0x20, res->base);
}
}
}
/*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
*/ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x4, 0x2, 0xb);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x9, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x5);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x2c, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x19, 0x2, 0xc);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x28, 0x2, 0xb);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x10, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x18, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0xc);
smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x0, 0x2, 0x0);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x1, 0x2, 0x1);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x0, 0x2, 0x2);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x4, 0x2, 0x4);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x6, 0x2, 0x6);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x7, 0x2, 0x7);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x6, 0x8, 0x2, 0x8);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x9, 0x2, 0x9);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xa, 0x2, 0xa);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xd, 0x2, 0xd);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xe, 0x2, 0xe);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xf, 0x2, 0xf);
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#*/
smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0);
smp_write_intsrc(mc, mp_NMI, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x1);
/* There is no extension information... */
/* Compute the checksums */
mc->mpe_checksum = smp_compute_checksum(smp_next_mpc_entry(mc), mc->mpe_length);
mc->mpc_checksum = smp_compute_checksum(mc, mc->mpc_length);
printk_debug("Wrote the mp table end at: %p - %p\n",
mc, smp_next_mpe_entry(mc));
return smp_next_mpe_entry(mc);
}
unsigned long write_smp_table(unsigned long addr)
{
void *v;
v = smp_write_floating_table(addr);
return (unsigned long)smp_write_config_table(v);
}
/* generated by MPTable, version 2.0.15*/
/* as modified by RGM for coreboot */
#include <console/console.h>
#include <arch/smp/mpspec.h>
#include <device/pci.h>
#include <string.h>
#include <stdint.h>
void *smp_write_config_table(void *v)
{
static const char sig[4] = "PCMP";
static const char oem[8] = "LNXI ";
static const char productid[12] = "P4DPE ";
struct mp_config_table *mc;
mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN);
memset(mc, 0, sizeof(*mc));
memcpy(mc->mpc_signature, sig, sizeof(sig));
mc->mpc_length = sizeof(*mc); /* initially just the header */
mc->mpc_spec = 0x04;
mc->mpc_checksum = 0; /* not yet computed */
memcpy(mc->mpc_oem, oem, sizeof(oem));
memcpy(mc->mpc_productid, productid, sizeof(productid));
mc->mpc_oemptr = 0;
mc->mpc_oemsize = 0;
mc->mpc_entry_count = 0; /* No entries yet... */
mc->mpc_lapic = LAPIC_ADDR;
mc->mpe_length = 0;
mc->mpe_checksum = 0;
mc->reserved = 0;
smp_write_processors(mc);
looking for EBDA pointer @ 0x040e, found, searching EBDA @ 0x0009f400
searching for coreboot MP table @ 0x00000000 (0K)
searching CMOS 'top of mem' @ 0x0009f000 (636K)
searching default 'top of mem' @ 0x0009fc00 (639K)
searching BIOS @ 0x000f0000
MP FPS found in BIOS @ physical addr: 0x000f5500
-------------------------------------------------------------------------------
MP Floating Pointer Structure:
location: BIOS
physical address: 0x000f5500
signature: '_MP_'
length: 16 bytes
version: 1.4
checksum: 0x7d
mode: Virtual Wire
-------------------------------------------------------------------------------
MP Config Table Header:
physical address: 0x000f1400
signature: 'PCMP'
base table length: 332
version: 1.4
checksum: 0xd2
OEM ID: 'OEM00000'
Product ID: 'PROD00000000'
OEM table pointer: 0x00000000
OEM table size: 0
entry count: 33
local APIC address: 0xfee00000
extended table length: 0
extended table checksum: 0
-------------------------------------------------------------------------------
MP Config Base Table Entries:
--
Processors: APIC ID Version State Family Model Step Flags
/*Bus: Bus ID Type*/
0 PCI
smp_write_bus(mc, 0, "PCI ");
1 PCI
smp_write_bus(mc, 1, "PCI ");
2 PCI
smp_write_bus(mc, 2, "PCI ");
3 PCI
smp_write_bus(mc, 3, "PCI ");
4 PCI
smp_write_bus(mc, 4, "PCI ");
5 PCI
smp_write_bus(mc, 5, "PCI ");
6 ISA
smp_write_bus(mc, 6, "ISA ");
/*I/O APICs: APIC ID Version State Address*/
smp_write_ioapic(mc, 2, 0x20, 0xfec00000);
{
device_t dev;
struct resource *res;
dev = dev_find_slot(1, PCI_DEVFN(0x1e,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 3, 0x20, res->base);
}
}
dev = dev_find_slot(1, PCI_DEVFN(0x1c,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 4, 0x20, res->base);
}
}
dev = dev_find_slot(4, PCI_DEVFN(0x1e,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 5, 0x20, res->base);
}
}
dev = dev_find_slot(4, PCI_DEVFN(0x1c,0));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
smp_write_ioapic(mc, 8, 0x20, res->base);
}
}
}
/*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#
*/ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x4, 0x2, 0xb);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x9, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x5);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x2c, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x19, 0x2, 0xc);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x28, 0x2, 0xb);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x10, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x5, 0x18, 0x2, 0x3);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0xc);
smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x0, 0x2, 0x0);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x1, 0x2, 0x1);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x0, 0x2, 0x2);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x4, 0x2, 0x4);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x6, 0x2, 0x6);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x7, 0x2, 0x7);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x6, 0x8, 0x2, 0x8);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0x9, 0x2, 0x9);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xa, 0x2, 0xa);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xd, 0x2, 0xd);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xe, 0x2, 0xe);
smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x6, 0xf, 0x2, 0xf);
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#*/
smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0);
smp_write_intsrc(mc, mp_NMI, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x1);
/* There is no extension information... */
/* Compute the checksums */
mc->mpe_checksum = smp_compute_checksum(smp_next_mpc_entry(mc), mc->mpe_length);
mc->mpc_checksum = smp_compute_checksum(mc, mc->mpc_length);
printk_debug("Wrote the mp table end at: %p - %p\n",
mc, smp_next_mpe_entry(mc));
return smp_next_mpe_entry(mc);
}
unsigned long write_smp_table(unsigned long addr)
{
void *v;
v = smp_write_floating_table(addr);
return (unsigned long)smp_write_config_table(v);
}
===============================================================================
superiotool r3695
Probing for ALi Super I/O at 0x3f0...
Failed. Returned data: id=0xffff, rev=0xff
Probing for ALi Super I/O at 0x370...
Failed. Returned data: id=0xffff, rev=0xff
Probing for Fintek Super I/O at 0x2e...
Failed. Returned data: vid=0xffff, id=0xffff
Probing for Fintek Super I/O at 0x4e...
Failed. Returned data: vid=0xffff, id=0xffff
Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x2e...
Found ITE IT8712F (id=0x8712, rev=0x7) at 0x2e
Register dump:
idx 20 21 22 23 24 2b
val 87 12 07 01 00 00
def 87 12 08 00 00 00
LDN 0x00 (Floppy)
idx 30 60 61 70 74 f0 f1
val 00 00 00 00 04 00 00
def 00 03 f0 06 02 00 00
LDN 0x01 (COM1)
idx 30 60 61 70 f0 f1 f2 f3
val 01 03 f8 04 00 50 00 7f
def 00 03 f8 04 00 50 00 7f
LDN 0x02 (COM2)
idx 30 60 61 70 f0 f1 f2 f3
val 00 00 00 00 00 50 00 7f
def 00 02 f8 03 00 50 00 7f
LDN 0x03 (Parallel port)
idx 30 60 61 62 63 70 74 f0
val 01 03 78 07 78 07 03 0b
def 00 03 78 07 78 07 03 03
LDN 0x04 (Environment controller)
idx 30 60 61 62 63 70 f0 f1 f2 f3 f4 f5 f6
val 01 02 90 00 00 00 80 00 0a 00 80 00 bf
def 00 02 90 02 30 09 00 00 00 00 00 NA NA
LDN 0x05 (Keyboard)
idx 30 60 61 62 63 70 71 f0
val 01 00 60 00 64 01 02 68
def 01 00 60 00 64 01 02 08
LDN 0x06 (Mouse)
idx 30 70 71 f0
val 00 00 02 00
def 00 0c 02 00
LDN 0x07 (GPIO)
idx 25 26 27 28 29 2a 2c 60 61 62 63 64 65 70 71 72 73 74 b0 b1 b2 b3 b4 b5 b8 b9 ba bb bc bd c0 c1 c2 c3 c4 c8 c9 ca cb cc e0 e1 e2 e3 e4 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd
val 06 00 21 40 00 06 1f 00 00 08 00 00 00 00 00 00 00 04 06 00 21 00 00 00 00 00 01 00 00 00 06 00 21 40 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 00
def 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 40 00 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 NA 00
LDN 0x08 (MIDI port)
idx 30 60 61 70 f0
val 01 03 30 0a 00
def 00 03 00 0a 00
LDN 0x09 (Game port)
idx 30 60 61
val 01 02 01
def 00 02 01
LDN 0x0a (Consumer IR)
idx 30 60 61 70 f0
val 00 03 10 0b 06
def 00 03 10 0b 00
Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8661f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8671f) at 0x370...
Failed. Returned data: id=0xffff, rev=0xf
Probing for NSC Super I/O at 0x2e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x4e...
Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x15c...
Failed. Returned data: port=0xff, port+1=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
Failed. Returned data: id=0xff, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff