summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYinghai Lu <yinghailu@gmail.com>2006-05-18 17:09:14 +0000
committerYinghai Lu <yinghailu@gmail.com>2006-05-18 17:09:14 +0000
commit9dd8d56192f617bb0afd20a59622f69b92353b2d (patch)
treeaace2113b21e9e8b0d5171e79172080ae43f4582
parent9a8e36da2dcb67062c442795482095002587763f (diff)
downloadcoreboot-9dd8d56192f617bb0afd20a59622f69b92353b2d.tar.xz
co processor support with s2891
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2310 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/mainboard/tyan/s2891/get_bus_conf.c16
-rw-r--r--src/mainboard/tyan/s2891/irq_tables.c8
2 files changed, 20 insertions, 4 deletions
diff --git a/src/mainboard/tyan/s2891/get_bus_conf.c b/src/mainboard/tyan/s2891/get_bus_conf.c
index 3462a5f557..aeb1ef4473 100644
--- a/src/mainboard/tyan/s2891/get_bus_conf.c
+++ b/src/mainboard/tyan/s2891/get_bus_conf.c
@@ -20,6 +20,7 @@
unsigned char bus_8131_0; //7
unsigned char bus_8131_1; //8
unsigned char bus_8131_2; //9
+ unsigned char bus_coproc_0;
unsigned apicid_ck804;
unsigned apicid_8131_1;
unsigned apicid_8131_2;
@@ -28,9 +29,9 @@ unsigned sblk;
unsigned pci1234[] =
{ //Here you only need to set value in pci1234 for HT-IO that could be installed or not
//You may need to preset pci1234 for HTIO board, please refer to src/northbridge/amd/amdk8/get_sblk_pci1234.c for detail
- 0x0000ff0,
- 0x0000ff0,
-// 0x0000ff0,
+ 0x0000000,
+ 0x0000200,
+ 0x0000100,
// 0x0000ff0,
// 0x0000ff0,
// 0x0000ff0,
@@ -43,7 +44,7 @@ unsigned hcdn[] =
{ //HT Chain device num, actually it is unit id base of every ht device in chain, assume every chain only have 4 ht device at most
0x20202020,
0x20202020,
-// 0x20202020,
+ 0x20202020,
// 0x20202020,
// 0x20202020,
// 0x20202020,
@@ -52,6 +53,7 @@ unsigned hcdn[] =
};
unsigned sbdn3;
+unsigned coprocdn;
extern void get_sblk_pci1234(void);
@@ -79,6 +81,12 @@ void get_bus_conf(void)
// bus_ck804_0 = node_link_to_bus(0, sblk);
bus_ck804_0 = (pci1234[0] >> 16) & 0xff;
+ if(pci1234[2] & 1) {
+ bus_coproc_0 = (pci1234[2] >> 16) & 0xff;
+ coprocdn = (hcdn[2] & 0xff);
+ }
+
+
/* CK804 */
dev = dev_find_slot(bus_ck804_0, PCI_DEVFN(sbdn + 0x09,0));
diff --git a/src/mainboard/tyan/s2891/irq_tables.c b/src/mainboard/tyan/s2891/irq_tables.c
index b4d61aaaea..922dced7c9 100644
--- a/src/mainboard/tyan/s2891/irq_tables.c
+++ b/src/mainboard/tyan/s2891/irq_tables.c
@@ -38,10 +38,12 @@ extern unsigned char bus_ck804_5; //6
extern unsigned char bus_8131_0;//7
extern unsigned char bus_8131_1;//8
extern unsigned char bus_8131_2;//9
+extern unsigned char bus_coproc_0;
extern unsigned sbdn;
extern unsigned hcdn[];
extern unsigned sbdn3;
+extern unsigned coprocdn;
extern void get_bus_conf(void);
@@ -91,6 +93,12 @@ unsigned long write_pirq_routing_table(unsigned long addr)
//pcix bridge
write_pirq_info(pirq_info, bus_8131_0, (sbdn3<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0);
pirq_info++; slot_num++;
+
+//co processor
+ if(pci1234[2] & 1) {
+ write_pirq_info(pirq_info, bus_coproc_0, (coprocdn<<3)|0, 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0, 0);
+ pirq_info++; slot_num++;
+ }
#if 0
//smbus