diff options
author | Stefan Reinauer <stepan@openbios.org> | 2005-12-04 21:52:58 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2005-12-04 21:52:58 +0000 |
commit | bbdd8f4a9f206ca40dea2b15d9458ac048de6c64 (patch) | |
tree | b384ee864e61387679ce31c484090d641d225e30 /src/northbridge/amd/amdk8/get_sblk_pci1234.c | |
parent | e38a19372009f39a8814cdee05faf0251640489c (diff) |
1203_hcdn.diff:
store every HT device unit id base and pass those info to acpi
https://openbios.org/roundup/linuxbios/issue46
Note: This version drops the two scripts a and c and creates the dsdt on
the fly from Config.lb using makerule
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2134 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/northbridge/amd/amdk8/get_sblk_pci1234.c')
-rw-r--r-- | src/northbridge/amd/amdk8/get_sblk_pci1234.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/northbridge/amd/amdk8/get_sblk_pci1234.c b/src/northbridge/amd/amdk8/get_sblk_pci1234.c index d52a7f761a..eff6ca1c62 100644 --- a/src/northbridge/amd/amdk8/get_sblk_pci1234.c +++ b/src/northbridge/amd/amdk8/get_sblk_pci1234.c @@ -78,9 +78,12 @@ unsigned node_link_to_bus(unsigned node, unsigned link) extern unsigned pci1234[]; +extern unsigned hcdn[]; extern unsigned hc_possible_num; extern unsigned sblk; +unsigned hcdn_reg[4]; // defined in northbridge.c + /* why we need pci1234 array final result for pci1234 will be pci1234[0] will record sblink and bus range @@ -176,6 +179,10 @@ void get_sblk_pci1234(void) set the node_id and link_id that could have ht chain in the one array, then check if is enabled.... then update final value */ + //here we need to set hcdn + //1. hypertransport.c need to record hcdn_reg together with 0xe0, 0xe4, 0xe8, 0xec when are set + //2. so at the same time we need update hsdn with hcdn_reg here + dev = dev_find_slot(0, PCI_DEVFN(0x18, 1)); for(j=0;j<4;j++) { uint32_t dwordx; @@ -183,6 +190,7 @@ void get_sblk_pci1234(void) dwordx &=0xffff0ff1; //keep bus num, node_id, link_num, enable bits if((dwordx & 0xff1) == dword) { //SBLINK pci1234[0] = dwordx; + hcdn[0] = hcdn_reg[j]; continue; } if((dwordx & 1) == 1) { @@ -191,6 +199,7 @@ void get_sblk_pci1234(void) for(i=1;i<hc_possible_num;i++) { if((dwordx & 0xff0) == (pci1234[i] & 0xff0)) { pci1234[i] = dwordx; + hcdn[i] = hcdn_reg[j]; break; } } @@ -198,6 +207,7 @@ void get_sblk_pci1234(void) for(i=1;i<hc_possible_num;i++) { if((dwordx & 0xff0) == (dwordx & pci1234[i] & 0xff0)) { pci1234[i] = dwordx; + hcdn[i] = hcdn_reg[j]; break; } } @@ -207,6 +217,7 @@ void get_sblk_pci1234(void) for(i=1;i<hc_possible_num;i++) { if((pci1234[i] & 1) != 1) { pci1234[i] = 0; + hcdn[i] = 0x20202020; } } |