===================================================================
@@ -2,6 +2,7 @@
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,77 @@
select HAVE_PIRQ_TABLE
select HAVE_MP_TABLE
select BOARD_ROMSIZE_KB_512
- select SB_HT_CHAIN_UNITID_OFFSET_ONLY
- select DRIVERS_SIL
+# select SB_HT_CHAIN_UNITID_OFFSET_ONLY
+
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 TTYS0_LCS
+# hex
+# default 0x3
+# 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 0xa
+ default 0x1
+ depends on BOARD_HP_DL145_G1
config HT_CHAIN_END_UNITID_BASE
hex
default 0x6
- depends on BOARD_TYAN_S2881
+# default 0x20
+ 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
===================================================================
@@ -1,82 +1,67 @@
chip northbridge/amd/amdk8/root_complex
- device lapic_cluster 0 on
- chip cpu/amd/socket_940
- device lapic 0 on end
- end
- end
- device pci_domain 0 on
- chip northbridge/amd/amdk8
- device pci 18.0 on end # LDT0
- device pci 18.0 on end # LDT1
- device pci 18.0 on # northbridge
- # devices on link 2, link 2 == LDT 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.1 on end
+ device pci_domain 0 on
+ chip northbridge/amd/amdk8 # mc
+ device pci 18.0 on end # LDT0
+ device pci 18.0 on end # LDT1
+ device pci 18.0 on # LDT2
+ chip southbridge/amd/amd8131
+ # the on/off keyword is mandatory
+ device pci 0.0 on end
+ device pci 0.1 on end
device pci 1.0 on end
device pci 1.1 on 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 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
- device pnp 2e.0 on # Floppy
- io 0x60 = 0x3f0
- irq 0x70 = 6
- drq 0x74 = 2
- end
- device pnp 2e.1 off # Parallel Port
- io 0x60 = 0x378
- irq 0x70 = 7
- end
- device pnp 2e.2 on # Com1
- io 0x60 = 0x3f8
- irq 0x70 = 4
- end
- device pnp 2e.3 off # Com2
- io 0x60 = 0x2f8
- irq 0x70 = 3
- end
- device pnp 2e.5 on # Keyboard
- io 0x60 = 0x60
- io 0x62 = 0x64
- 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.8 off end # GPIO2
- device pnp 2e.9 off end # GPIO3
- device pnp 2e.a off end # ACPI
- device pnp 2e.b on # HW Monitor
- io 0x60 = 0x290
+ 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 # 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
+ end
+ device pci 1.0 on
+ chip superio/winbond/w83627hf
+ device pnp 2e.0 on # Floppy
+ io 0x60 = 0x3f0
+ irq 0x70 = 6
+ drq 0x74 = 2
+ end
+ device pnp 2e.1 off # Parallel Port
+ io 0x60 = 0x378
+ irq 0x70 = 7
+ end
+ device pnp 2e.2 on # Com 1
+ io 0x60 = 0x3f8
+ irq 0x70 = 4
+ end
+ device pnp 2e.3 off # Com 2
+ io 0x60 = 0x2f8
+ irq 0x70 = 3
+ end
+ device pnp 2e.5 on # Keyboard
+ io 0x60 = 0x60
+ io 0x62 = 0x64
+ irq 0x70 = 1
+ irq 0x72 = 12
+ 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 on end # ACPI
+ device pnp 2e.b on # HW Monitor
+ io 0x60 = 0x290
irq 0x70 = 5
- end
- end
- end
- device pci 1.1 on end
- device pci 1.2 on end
+ end
+ end
+ end
+ device pci 1.1 on end
+ device pci 1.2 on end
device pci 1.3 on
chip drivers/generic/generic #dimm 0-0-0
device i2c 50 on end
@@ -115,17 +100,33 @@
device i2c 4a on end
end
end # acpi
- device pci 1.5 off end
- device pci 1.6 off end
+ device pci 1.5 off end
+ device pci 1.6 off end
register "ide0_enable" = "1"
register "ide1_enable" = "1"
- end
- end # device pci 18.0
-
- device pci 18.1 on end
- device pci 18.2 on end
- device pci 18.3 on end
- end
- end
+ end
+ end # device pci 18.0
+
+ device pci 18.1 on end
+ device pci 18.2 on end
+ device pci 18.3 on end
+ end
+ chip northbridge/amd/amdk8
+ device pci 19.0 on end
+ device pci 19.0 on end
+ device pci 19.0 on end
+ device pci 19.1 on end
+ device pci 19.2 on end
+ device pci 19.3 on end
+ end
+ end
+ device lapic_cluster 0 on
+ chip cpu/amd/socket_940
+ device lapic 0 on end
+ end
+ chip cpu/amd/socket_940
+ device lapic 1 on end
+ end
+ end
end
===================================================================
@@ -123,7 +123,8 @@
/* Halt if there was a built in self test failure */
report_bist_failure(bist);
- setup_s2881_resource_map();
+ setup_dl145g1_resource_map();
+ //setup_default_resource_map();
#if 0
dump_pci_device(PCI_DEV(0, 0x18, 0));
dump_pci_device(PCI_DEV(0, 0x19, 0));
===================================================================
@@ -23,8 +23,8 @@
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 @@
/*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 @@
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,42 +86,26 @@
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);
+ // 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);
-//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);
+ // 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);
-//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
- }
-
-
-
/*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);
smp_write_intsrc(mc, mp_NMI, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x1);
===================================================================
@@ -51,7 +51,7 @@
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")
};