Index: trunk/i386/libsaio/spd.c =================================================================== --- trunk/i386/libsaio/spd.c (revision 1017) +++ trunk/i386/libsaio/spd.c (revision 1018) @@ -342,18 +342,17 @@ slot->Vendor, slot->PartNo, slot->SerialNo); + + //This should probably be inside the if... + // laptops sometimes show slot 0 and 2 with slot 1 empty when only 2 slots are presents so: + Platform.DMI.DIMM[i]= + i>0 && Platform.RAM.DIMM[1].InUse==false && fullBanks && Platform.DMI.CntMemorySlots == 2 ? + mapping[i] : i; // for laptops case, mapping setup would need to be more generic than this -#if DEBUG_SPD - //Azi: this was gone with mem.c... remove?? - dumpPhysAddr("spd content: ", slot->spd, spd_size); - getchar(); -#endif + } - // laptops sometimes show slot 0 and 2 with slot 1 empty when only 2 slots are presents so: - Platform.DMI.DIMM[i]= - i>0 && Platform.RAM.DIMM[1].InUse==false && fullBanks && Platform.DMI.CntMemorySlots == 2 ? - mapping[i] : i; // for laptops case, mapping setup would need to be more generic than this + slot->spd = NULL; Index: trunk/i386/libsaio/platform.h =================================================================== --- trunk/i386/libsaio/platform.h (revision 1017) +++ trunk/i386/libsaio/platform.h (revision 1018) @@ -141,7 +141,7 @@ } RAM; struct DMI { - int MaxMemorySlots; // number of memory slots polulated by SMBIOS + int MaxMemorySlots; // number of memory slots populated by SMBIOS int CntMemorySlots; // number of memory slots counted int MemoryModules; // number of memory modules installed int DIMM[MAX_RAM_SLOTS]; // Information and SPD mapping for each slot Index: trunk/i386/libsaio/smbios_getters.c =================================================================== --- trunk/i386/libsaio/smbios_getters.c (revision 1017) +++ trunk/i386/libsaio/smbios_getters.c (revision 1018) @@ -258,6 +258,9 @@ int map; idx++; + + DBG("getSMBMemoryDeviceSerialNumber index: %d, MAX_RAM_SLOTS: %d\n",idx,MAX_RAM_SLOTS); + if (idx < MAX_RAM_SLOTS) { map = Platform.DMI.DIMM[idx];