@@ -1176,10 +1176,6 @@ int load_events(const std::string &fn, std::map<std::string, uint32_t> &ofm,
1176
1176
1177
1177
bool get_cpu_bus (uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc, uint32 &cpuBusValid, std::vector<uint32> &cpuBusNo, int &cpuPackageId)
1178
1178
{
1179
- int cpuBusNo0 = 0x0 ;
1180
- uint32 sadControlCfg = 0x0 ;
1181
- uint32 busNo = 0x0 ;
1182
-
1183
1179
// std::cout << "get_cpu_bus: d=" << std::hex << msmDomain << ",b=" << msmBus << ",d=" << msmDev << ",f=" << msmFunc << std::dec << " \n";
1184
1180
try {
1185
1181
PciHandleType h (msmDomain, msmBus, msmDev, msmFunc);
@@ -1190,24 +1186,19 @@ bool get_cpu_bus(uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc,
1190
1186
return false ;
1191
1187
}
1192
1188
1193
- for (int i = 0 ; i < 8 ; ++i)
1189
+ cpuBusNo.resize (8 );
1190
+ for (int i = 0 ; i < 4 ; ++i)
1194
1191
{
1195
- busNo = 0x00 ;
1196
- if (i <= 3 )
1197
- {
1198
- h.read32 (SPR_MSM_REG_CPUBUSNO0_OFFSET + i*4 , &busNo);
1199
- }
1200
- else
1201
- {
1202
- h.read32 (SPR_MSM_REG_CPUBUSNO4_OFFSET + (i-4 )*4 , &busNo);
1203
- }
1204
- if (busNo == (std::numeric_limits<uint32>::max)())
1192
+ h.read32 (SPR_MSM_REG_CPUBUSNO0_OFFSET + i * 4 , &cpuBusNo[i]);
1193
+
1194
+ h.read32 (SPR_MSM_REG_CPUBUSNO4_OFFSET + i * 4 , &cpuBusNo[i + 4 ]);
1195
+
1196
+ if (cpuBusNo[i] == (std::numeric_limits<uint32>::max)() ||
1197
+ cpuBusNo[i + 4 ] == (std::numeric_limits<uint32>::max)())
1205
1198
{
1206
- std::cerr << " Failed to read CPUBUSNO" << std::endl;
1199
+ std::cerr << " Failed to read CPUBUSNO registers " << std::endl;
1207
1200
return false ;
1208
1201
}
1209
- cpuBusNo.push_back (busNo);
1210
- // std::cout << std::hex << "get_cpu_bus: busNo=0x" << busNo << std::dec << "\n";
1211
1202
}
1212
1203
1213
1204
/*
@@ -1217,8 +1208,9 @@ bool get_cpu_bus(uint32 msmDomain, uint32 msmBus, uint32 msmDev, uint32 msmFunc,
1217
1208
int firstValidBusId = 0 ;
1218
1209
while (!((cpuBusValid >> firstValidBusId) & 0x1 )) firstValidBusId++;
1219
1210
int cpuBusNo0 = (cpuBusNo[(int )(firstValidBusId / 4 )] >> ((firstValidBusId % 4 ) * 8 )) & 0xff ;
1220
- PciHandleType sad_cfg_handler (msmDomain, cpuBusNo0, 0 , 0 );
1221
1211
1212
+ uint32 sadControlCfg = 0x0 ;
1213
+ PciHandleType sad_cfg_handler (msmDomain, cpuBusNo0, 0 , 0 );
1222
1214
sad_cfg_handler.read32 (SPR_SAD_REG_CTL_CFG_OFFSET, &sadControlCfg);
1223
1215
if (sadControlCfg == (std::numeric_limits<uint32>::max)())
1224
1216
{
0 commit comments