/* Protect the PCI config register pairs used for DF indirect access. */ static DEFINE_MUTEX(df_indirect_mutex);
/* * Data Fabric Indirect Access uses FICAA/FICAD. * * Fabric Indirect Configuration Access Address (FICAA): constructed based * on the device's Instance Id and the PCI function and register offset of * the desired register. * * Fabric Indirect Configuration Access Data (FICAD): there are FICAD * low and high registers but so far only the low register is needed. * * Use Instance Id 0xFF to indicate a broadcast read.
*/ #define DF_BROADCAST 0xFF
static u16 get_accessible_node(u16 node)
{ /* * On heterogeneous systems, not all AMD Nodes are accessible * through software-visible registers. The Node ID needs to be * adjusted for register accesses. But its value should not be * changed for the translation methods.
*/ if (df_cfg.flags.heterogeneous) { /* Only Node 0 is accessible on DF3.5 systems. */ if (df_cfg.rev == DF3p5)
node = 0;
/* * Only the first Node in each Socket is accessible on * DF4.5 systems, and this is visible to software as one * Fabric per Socket. The Socket ID can be derived from * the Node ID and global shift values.
*/ if (df_cfg.rev == DF4p5)
node >>= df_cfg.socket_id_shift - df_cfg.node_id_shift;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.