- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm writing an app which has to talk to the SPD table on a memory module. The app is to run on Win2k and XP onx86 basedPC's. As I am not very well experienced at the hardware level I need a few pointers on how to do this. As far as I know I will have to enumerate the SMBus to find the address of the EEPROM's on each of the installed memory modules. Can I do this by sending an SMB_REQUEST as per the Microsoft DDK documentation? I already have the SPD specs so I know which byte addresses I need to read - I'm just haveing trouble finding the device itself.
Any help appreciated.
Pat Magee
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is somewhat outside the scope of whatthe Intel Software Networkusually handles, but we will ask our engineering contacts and let you know how they respond.
Regards,
Message Edited by intel.software.network.support on 12-01-2005 10:19 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here issome information we received from ourengineering contacts:
The driver you are trying to write is for a function that typically resides in the BIOS. It can be done in a driver just fine, but the SPD addresses that you are interested in are hardware-specific and are either based on a resistor stuffing option on the board, or are somehow jumperable on the board. Most platforms do not have a machine-readable address, but have this hard-coded into the BIOS as a platform dependency. The BIOS can pass the address of various SMBus devices along to the OS in system management tables. This may be what you are thinking when issuing an SMB_REQUEST to the OS, where you would request the physical SMBus addresses of each of the DIMMs SPD prom devices. We cannot say for sure that this SMB_REQUEST OS API does this function, though, as we are not familiar with it.
In the short term, you could find a hardware spec for the platform and physically look up the SPD addresses, then hard code these addresses, or somehow make them configurable in the driver. These, unfortunately, change from platform to platform based on a number of factors (number of memory slots on the platform, number of other SMBus devices present like clock controllers or management controllers). Once you figure out the device addresses, then you need to be able to use the SMBus base address register found in one of the Southbridge PCI functions to read the data that is needed.
We hope this is helpful.
Regards,
Message Edited by intel.software.network.support on 12-01-2005 10:20 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Very helpful. Thank you very much. As there are quite a few available apps that already do this, I'd hazard a gues that the platform variations cannot be too severe. I try to get a range of hardware data as a starting point and then just keep testing.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page