Thanks for the response Dan,

As a developer of NVDIMMs we interface to our controller using the SMBUS
interface, which is part of the JEDEC standard.  In the past we have always
tested and accessed out NVDIMMs by directly manipulating the SMBUS
controller defined in the chipsets.  As you may be aware this was never a
very good solution as there is an inherent synchronization problem with any
other actors that may require SMBUS access, but it was the only method
available.  The solution above was good enough for testing hardware, but is
a security risk when deploying in an end user environment, not to mention
the multiple corner cases opened up trying to synchronize SMBUS access with
TSOD or the BMC.

The DSM interface provides functions 27 and 28 (I2C Read and Write
respectively) .  Most of the other functions provide the required
functionality for NVDIMMs and is almost a one to one mapping of our own API
using the method mentioned above.

Before the OS support was added this was the only method, and end users
needed this type of support.  So what was intended to be used for testing
and at the most reference code, ended up being used by early adopters of
the technology.  The way I interpret the ACPI support in the BIOS is that
now all access to the SMBUS will go through a single actor, which is
definitely appreciated and preferred.  I need to research this more elegant
solution so that I can communicate to the end user the best way to deploy
this technology.  We have been working with the Windows support, but we are
just getting started evaluating the Linux support as the JEDEC standard
gains traction.  My task is to provide a smooth transition for current
customers to the new paradigm, and provide a comprehensive reference for
potential new adopters of the technology.

As a low level guy I am always more comfortable starting at the bottom.  I
have been given a link to github of pmem/ndctl, do you believe that this
will provide me the visibility I need for my task described in the previous
paragraph?

Brian

On Tue, Sep 19, 2017 at 7:42 PM, Dan Williams <[email protected]>
wrote:

> On Tue, Sep 19, 2017 at 3:29 PM, Brian Stark <[email protected]>
> wrote:
> > Where can I find documentation on accessing NVDIMM JEDEC registers, for
> > example if I want to read page 0 offset 0x80 (defined to be CSAVE_INFO in
> > the JEDEC specification.  How do I do this through Linux given that the
> > BIOS has locked the chipset?
>
> Unless that register is mapped somewhere and the BIOS tells the OS how
> to access it Linux can't get to it.  Does any of the methods defined
> here retrieve the information you are looking for?
>
>     https://msdn.microsoft.com/library/windows/hardware/mt604741
>

-- 
CONFIDENTIALITY
This e-mail message and any attachments thereto, is intended only for use 
by the addressee(s) named herein and may contain legally privileged and/or 
confidential information. If you are not the intended recipient of this 
e-mail message, you are hereby notified that any dissemination, 
distribution or copying of this e-mail message, and any attachments 
thereto, is strictly prohibited. If you have received this e-mail message 
in error, please immediately notify the sender and permanently delete the 
original and any copies of this email and any prints thereof.
ABSENT AN EXPRESS STATEMENT TO THE CONTRARY HEREINABOVE, THIS E-MAIL IS NOT 
INTENDED AS A SUBSTITUTE FOR A WRITING. Notwithstanding the Uniform 
Electronic Transactions Act or the applicability of any other law of 
similar substance and effect, absent an express statement to the contrary 
hereinabove, this e-mail message its contents, and any attachments hereto 
are not intended to represent an offer or acceptance to enter into a 
contract and are not otherwise intended to bind the sender, Sanmina 
Corporation (or any of its subsidiaries), or any other person or entity.
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to