Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Oct 2017 00:12:48 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Rebecca Cran <rebecca@bluestop.org>
Cc:        freebsd-arch@freebsd.org, Ravi Pokala <rpokala@mac.com>
Subject:   Re: Re NVDIMM status report (2017-03-25)
Message-ID:  <20171027211248.GL2566@kib.kiev.ua>
In-Reply-To: <6a504eb3-0194-850a-4f36-345b7a2a738e@bluestop.org>

index | next in thread | previous in thread | raw e-mail

On Fri, Oct 27, 2017 at 02:56:47PM -0600, Rebecca Cran wrote:
> I'm replying to the original message at 
> https://lists.freebsd.org/pipermail/freebsd-arch/2017-March/018165.html 
> (sorry, I'm not sure how to get the raw email to import and reply to 
> properly).
> 
> 
> "Traditional" NVDIMMs have been standardized under JEDEC with the name 
> 'NVDIMM-N': NVDIMM-P is an upcoming specification that will be for 
> 'persistent'š or 'storage class' memory modules such as 3D X-Point. 
> NVDIMM-F is another standard, that puts NAND directly on the memory bus 
> and allows accesses directly. It's very slow, and only allows block 
> accesses. NVDIMM-P should be in-between NVDIMM-N and NVDIMM-F in terms 
> of speed/latency.
> 
> 
> In terms of proprietary interfaces, there are at least 3 ACPI DSMs: HPE, 
> Microsoft[0] and Intel[1]. The ACPI Working Group has started to work on 
> bringing them together under a single specification, but it's still 
> early days. JEDEC has however published the BAEBI (Byte Addressable 
> Energy Backed Interface) that's the basis for the DSM, and runs over 
> I2C. OEMs often lock down access to the I2C bus on boot however, 
> requiring all accesses to be via ACPI.
> 
> There's currently no widespread support in UEFI for NVDIMMs: I have 
> prototype code running which allows OVMF running under Qemu to enumerate 
> them and populate the "Persistent Memory" entry of the 'memmap' shell 
> command, but that's as far as it goes so far.

Perhaps I have some more code.  It is more of 'me too' response than
something that can be used practically.

My WIP patch is at https://kib.kiev.ua/kib/nvdimm.1.patch .

Half of it is the KPI to map very large physical memory ranges into
KVA, another half is the germ of the driver. The driver provides two
devices: one is /dev/nvdimm_spaX for each SPA region, which allows io
and zero-copy userspace mapping. Another device is /dev/spaX which is in
fact geom and it can be mounted after formatting in UFS.

Namespaces support is missed, but planned, same for the blocks access
interface.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171027211248.GL2566>