northbridge/amd/amdfam10: Properly indicate node and channel in SMBIOS tables
Change-Id: Ie7278745358daf0c78cdb9c579db5291a1a2a0cb Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-on: http://review.coreboot.org/12004 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
92bcaa2226
commit
0e545c66a3
|
@ -1203,7 +1203,12 @@ static int amdfam10_get_smbios_data17(int* count, int handle, int parent_handle,
|
|||
t->attributes = 0;
|
||||
t->attributes |= ranks & 0xf; /* rank number is stored in the lowest 4 bits of the attributes field */
|
||||
t->form_factor = MEMORY_FORMFACTOR_DIMM;
|
||||
snprintf(string_buffer, sizeof (string_buffer), "NODE %d DIMM_%s%d", node, (slot & 0x1)?"B":"A", (slot >> 1) + 1);
|
||||
if (mem_info->dct_stat[node].Dual_Node_Package) {
|
||||
snprintf(string_buffer, sizeof (string_buffer), "NODE %d DIMM_%s%d", node >> 1,
|
||||
(mem_info->dct_stat[node].Internal_Node_ID)?((slot & 0x1)?"D":"C"):((slot & 0x1)?"B":"A"), (slot >> 1) + 1);
|
||||
} else {
|
||||
snprintf(string_buffer, sizeof (string_buffer), "NODE %d DIMM_%s%d", node, (slot & 0x1)?"B":"A", (slot >> 1) + 1);
|
||||
}
|
||||
t->device_locator = smbios_add_string(t->eos, string_buffer);
|
||||
if (IS_ENABLED(CONFIG_DIMM_DDR2))
|
||||
t->memory_type = MEMORY_TYPE_DDR2;
|
||||
|
|
|
@ -232,6 +232,18 @@ restartinit:
|
|||
pDCTstat->dev_nbmisc = PA_NBMISC(Node);
|
||||
pDCTstat->NodeSysBase = node_sys_base;
|
||||
|
||||
if (mctGet_NVbits(NV_PACK_TYPE) == PT_GR) {
|
||||
uint32_t dword;
|
||||
pDCTstat->Dual_Node_Package = 1;
|
||||
|
||||
/* Get the internal node number */
|
||||
dword = Get_NB32(pDCTstat->dev_nbmisc, 0xe8);
|
||||
dword = (dword >> 30) & 0x3;
|
||||
pDCTstat->Internal_Node_ID = dword;
|
||||
} else {
|
||||
pDCTstat->Dual_Node_Package = 0;
|
||||
}
|
||||
|
||||
print_tx("mctAutoInitMCT_D: mct_init Node ", Node);
|
||||
mct_init(pMCTstat, pDCTstat);
|
||||
mctNodeIDDebugPort_D();
|
||||
|
|
|
@ -287,8 +287,11 @@ struct MCTStatStruc {
|
|||
|
||||
struct DCTStatStruc { /* A per Node structure*/
|
||||
/* DCTStatStruct_F - start */
|
||||
u8 Node_ID; /* Node ID of current controller*/
|
||||
u8 ErrCode; /* Current error condition of Node
|
||||
u8 Node_ID; /* Node ID of current controller*/
|
||||
uint8_t Internal_Node_ID; /* Internal Node ID of the current controller */
|
||||
uint8_t Dual_Node_Package; /* 1=Dual node package (G34) */
|
||||
uint8_t stopDCT; /* Set if the DCT will be stopped */
|
||||
u8 ErrCode; /* Current error condition of Node
|
||||
0= no error
|
||||
1= Variance Error, DCT is running but not in an optimal configuration.
|
||||
2= Stop Error, DCT is NOT running
|
||||
|
|
|
@ -1396,6 +1396,18 @@ restartinit:
|
|||
pDCTstat->dev_nbctl = PA_NBCTL(Node);
|
||||
pDCTstat->NodeSysBase = node_sys_base;
|
||||
|
||||
if (mctGet_NVbits(NV_PACK_TYPE) == PT_GR) {
|
||||
uint32_t dword;
|
||||
pDCTstat->Dual_Node_Package = 1;
|
||||
|
||||
/* Get the internal node number */
|
||||
dword = Get_NB32(pDCTstat->dev_nbmisc, 0xe8);
|
||||
dword = (dword >> 30) & 0x3;
|
||||
pDCTstat->Internal_Node_ID = dword;
|
||||
} else {
|
||||
pDCTstat->Dual_Node_Package = 0;
|
||||
}
|
||||
|
||||
printk(BIOS_DEBUG, "%s: mct_init Node %d\n", __func__, Node);
|
||||
mct_init(pMCTstat, pDCTstat);
|
||||
mctNodeIDDebugPort_D();
|
||||
|
|
|
@ -331,9 +331,11 @@ struct amd_spd_node_data {
|
|||
|
||||
struct DCTStatStruc { /* A per Node structure*/
|
||||
/* DCTStatStruct_F - start */
|
||||
u8 Node_ID; /* Node ID of current controller */
|
||||
uint8_t stopDCT; /* Set if the DCT will be stopped */
|
||||
u8 ErrCode; /* Current error condition of Node
|
||||
u8 Node_ID; /* Node ID of current controller */
|
||||
uint8_t Internal_Node_ID; /* Internal Node ID of the current controller */
|
||||
uint8_t Dual_Node_Package; /* 1=Dual node package (G34) */
|
||||
uint8_t stopDCT; /* Set if the DCT will be stopped */
|
||||
u8 ErrCode; /* Current error condition of Node
|
||||
0= no error
|
||||
1= Variance Error, DCT is running but not in an optimal configuration.
|
||||
2= Stop Error, DCT is NOT running
|
||||
|
|
Loading…
Reference in New Issue