Author: oxygene Date: Tue Mar 23 16:58:29 2010 New Revision: 5277 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5277
Log: Fix reading HT link offsets.
pci_read_config32 overwrites the real value, use another variable for that.
Signed-off-by: Maximilian Thuermer maximilian.thuermer@ziti.uni-heidelberg.de Acked-by: Patrick Georgi patrick.georgi@coresystems.de
Modified: trunk/src/cpu/amd/model_10xxx/init_cpus.c
Modified: trunk/src/cpu/amd/model_10xxx/init_cpus.c ============================================================================== --- trunk/src/cpu/amd/model_10xxx/init_cpus.c Tue Mar 23 16:53:38 2010 (r5276) +++ trunk/src/cpu/amd/model_10xxx/init_cpus.c Tue Mar 23 16:58:29 2010 (r5277) @@ -702,25 +702,27 @@ */ BOOL AMD_CpuFindCapability (u8 node, u8 cap_count, u8 *offset) { + u32 reg; u32 val;
/* get start of CPU HT Host Capabilities */ val = pci_read_config32(NODE_PCI(node, 0), 0x34); - val &= 0xFF; + val &= 0xFF; //reg offset of first link
cap_count++;
/* Traverse through the capabilities. */ do { - val = pci_read_config32(NODE_PCI(node, 0), val); + reg = pci_read_config32(NODE_PCI(node, 0), val); /* Is the capability block a HyperTransport capability block? */ - if ((val & 0xFF) == 0x08) { + if ((reg & 0xFF) == 0x08) { /* Is the HT capability block an HT Host Capability? */ - if ((val & 0xE0000000) == (1 << 29)) + if ((reg & 0xE0000000) == (1 << 29)) cap_count--; } - if (cap_count) - val = (val >> 8) & 0xFF; + + if(cap_count) + val = (reg >> 8) & 0xFF; //update reg offset } while (cap_count && val);
*offset = (u8) val;