===================================================================
@@ -2,6 +2,7 @@ choice
prompt "Mainboard model"
depends on VENDOR_HP
+source "src/mainboard/hp/dl145_g1/Kconfig"
source "src/mainboard/hp/dl145_g3/Kconfig"
source "src/mainboard/hp/e_vectra_p2706t/Kconfig"
===================================================================
@@ -1,5 +1,5 @@
-config BOARD_TYAN_S2881
- bool "S2881 (Thunder K8SR)"
+config BOARD_HP_DL145_G1
+ bool "ProLiant DL145 G1"
select ARCH_X86
select CPU_AMD_SOCKET_940
select NORTHBRIDGE_AMD_AMDK8
@@ -13,65 +13,68 @@ config BOARD_TYAN_S2881
select HAVE_PIRQ_TABLE
select HAVE_MP_TABLE
select BOARD_ROMSIZE_KB_512
- select SB_HT_CHAIN_UNITID_OFFSET_ONLY
- select DRIVERS_SIL
config MAINBOARD_DIR
string
- default tyan/s2881
- depends on BOARD_TYAN_S2881
+ default hp/dl145_g1
+ depends on BOARD_HP_DL145_G1
config APIC_ID_OFFSET
hex
default 0x0
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config SB_HT_CHAIN_ON_BUS0
int
default 2
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config MAINBOARD_PART_NUMBER
string
- default "S2881"
- depends on BOARD_TYAN_S2881
+ default "ProLiant DL145 G1"
+ depends on BOARD_HP_DL145_G1
+
+config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
+ hex
+ default 0x1022
+ depends on BOARD_HP_DL145_G1
config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
hex
- default 0x2881
- depends on BOARD_TYAN_S2881
+ default 0x1451
+ depends on BOARD_HP_DL145_G1
config HW_MEM_HOLE_SIZEK
hex
default 0x100000
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config MAX_CPUS
int
default 4
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config MAX_PHYSICAL_CPUS
int
default 2
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config HW_MEM_HOLE_SIZE_AUTO_INC
bool
default n
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config HT_CHAIN_UNITID_BASE
hex
- default 0xa
- depends on BOARD_TYAN_S2881
+ default 0x1
+ depends on BOARD_HP_DL145_G1
config HT_CHAIN_END_UNITID_BASE
hex
default 0x6
- depends on BOARD_TYAN_S2881
+ depends on BOARD_HP_DL145_G1
config IRQ_SLOT_COUNT
int
- default 9
- depends on BOARD_TYAN_S2881
+ default 12
+ depends on BOARD_HP_DL145_G1
===================================================================
@@ -11,26 +11,23 @@ chip northbridge/amd/amdk8/root_complex
device pci 18.0 on # link 2
chip southbridge/amd/amd8131
# the on/off keyword is mandatory
- device pci 0.0 on
- device pci 9.0 on end # Broadcom 5704
- device pci 9.1 on end
- device pci a.0 on end # Adaptic
- device pci a.1 on end
- end
+ device pci 0.0 on end
device pci 0.1 on end
device pci 1.0 on end
device pci 1.1 on end
+ device pci 2.0 on end
+ device pci 2.1 on end
+ device pci 3.0 off end
end
chip southbridge/amd/amd8111
# this "device pci 0.0" is the parent the next one
# PCI bridge
device pci 0.0 on
- device pci 0.0 on end
- device pci 0.1 on end
- device pci 0.2 off end
+ device pci 0.0 on end # LPC
+ device pci 0.1 on end # IDE
+ device pci 0.2 on end # SMbus
+ device pci 0.3 on end # ACPI
device pci 1.0 off end
- device pci 5.0 on end # SiI
- device pci 6.0 on end
end
device pci 1.0 on
chip superio/winbond/w83627hf
@@ -57,17 +54,11 @@ chip northbridge/amd/amdk8/root_complex
irq 0x70 = 1
irq 0x72 = 12
end
- device pnp 2e.6 off # CIR
- io 0x60 = 0x100
- end
- device pnp 2e.7 off # GAME_MIDI_GIPO1
- io 0x60 = 0x220
- io 0x62 = 0x300
- irq 0x70 = 9
- end
+ device pnp 2e.6 off end # CIR
+ device pnp 2e.7 off end # GAM_MIDI_GIPO1
device pnp 2e.8 off end # GPIO2
device pnp 2e.9 off end # GPIO3
- device pnp 2e.a off end # ACPI
+ device pnp 2e.a on end # ACPI
device pnp 2e.b on # HW Monitor
io 0x60 = 0x290
irq 0x70 = 5
===================================================================
@@ -123,7 +123,7 @@ void cache_as_ram_main(unsigned long bis
/* Halt if there was a built in self test failure */
report_bist_failure(bist);
- setup_s2881_resource_map();
+ setup_dl145g1_resource_map();
#if 0
dump_pci_device(PCI_DEV(0, 0x18, 0));
dump_pci_device(PCI_DEV(0, 0x19, 0));
===================================================================
@@ -23,8 +23,8 @@ extern unsigned sbdn3;
static void *smp_write_config_table(void *v)
{
static const char sig[4] = "PCMP";
- static const char oem[8] = "COREBOOT";
- static const char productid[12] = "S2881 ";
+ static const char oem[8] = "FOI ";
+ static const char productid[12] = "DL145G1 ";
struct mp_config_table *mc;
unsigned char bus_num;
@@ -62,7 +62,7 @@ static void *smp_write_config_table(void
/*I/O APICs: APIC ID Version State Address*/
- smp_write_ioapic(mc, apicid_8111, 0x11, 0xfec00000);
+ smp_write_ioapic(mc, apicid_8111, 0x20, 0xfec00000);
{
device_t dev;
struct resource *res;
@@ -70,14 +70,14 @@ static void *smp_write_config_table(void
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
- smp_write_ioapic(mc, apicid_8131_1, 0x11, res->base);
+ smp_write_ioapic(mc, apicid_8131_1, 0x20, res->base);
}
}
dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3+1,1));
if (dev) {
res = find_resource(dev, PCI_BASE_ADDRESS_0);
if (res) {
- smp_write_ioapic(mc, apicid_8131_2, 0x11, res->base);
+ smp_write_ioapic(mc, apicid_8131_2, 0x20, res->base);
}
}
@@ -86,41 +86,25 @@ static void *smp_write_config_table(void
mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0);
/*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */
-//8111 LPC ????
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ((sysconf.sbdn+1)<<2)|0, apicid_8111, 0x13);
-
-//On Board AMD USB ???
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, (0<<2)|3, apicid_8111, 0x13);
-
-//On Board ATI Display Adapter
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, (6<<2)|0, apicid_8111, 0x12);
-
-//On Board SI Serial ATA
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, (5<<2)|0, apicid_8111, 0x11);
-
-//Slot 3 PCIX 100/66
- for(i=0;i<4;i++) {
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, (8<<2)|i, apicid_8131_1, (3+i)%4); //27
- }
-
-//On Board NIC and adaptec scsi
- for(i=0;i<2;i++) {
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, (9<<2)|i, apicid_8131_1, (0+i)%4); //24
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, (0xa<<2)|i, apicid_8131_1, (0+i)%4); //24
- }
-
-//Slot 1 PCI-X 133/100/66 or Side 1 on raiser card
- for(i=0;i<4;i++) {
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_2, (3<<2)|i, apicid_8131_2, (0+i)%4); //28
- }
-
- //Slot 1 PCI-X 133/100/66, Side 2 on raiser card
- //Fix ME, IRQ Pins?
- for(i=0;i<4;i++) {
- smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_2, (4<<2)|i, apicid_8131_2, (1+i)%4); //28
- }
-
-
+ // Integrated SMBus 2.0
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ( 0x4 <<2)|3, apicid_8111 , 0x13);
+ // Integrated AMD AC97 Audio
+ //smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ( 0x4 <<2)|1, apicid_8111 , 0x11);
+ // Integrated AMD USB
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, ( 0x0 <<2)|3, apicid_8111 , 0x12);
+ // On board ATI Rage XL
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_1, ( 0x5 <<2)|0, apicid_8111 , 0x10);
+ // On board Broadcom nics
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_2, ( 0x3 <<2)|0, apicid_8131_2, 0x03);
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_2, ( 0x3 <<2)|1, apicid_8131_2, 0x00);
+ // On board LSI SCSI
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_2, ( 0x2 <<2)|0, apicid_8131_2, 0x02);
+
+ // PCIX Slot
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, ( 0x1 <<2)|0, apicid_8131_1, 0x1);
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, ( 0x1 <<2)|1, apicid_8131_1, 0x2);
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, ( 0x1 <<2)|2, apicid_8131_1, 0x3);
+ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8131_1, ( 0x1 <<2)|3, apicid_8131_1, 0x4);
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#*/
smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x0);
===================================================================
@@ -51,7 +51,7 @@ unsigned long write_pirq_routing_table(u
uint8_t sum=0;
int i;
- get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c
+ get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and acpi_tables.c
/* Align the table to be 16 byte aligned. */
addr += 15;
===================================================================
@@ -1,9 +1,9 @@
/*
- * Tyan S2881 needs a different resource map
+ * DL145G1 needs a different resource map
*
*/
-static void setup_s2881_resource_map(void)
+static void setup_dl145g1_resource_map(void)
{
static const unsigned int register_values[] = {
/* Careful set limit registers before base registers which contain the enables */
===================================================================
@@ -24,5 +24,5 @@
#include "chip.h"
struct chip_operations mainboard_ops = {
- CHIP_NAME("Tyan S2881 Mainboard")
+ CHIP_NAME("HP DL145G1 Mainboard")
};