Re: [Linux-nvdimm] [PATCH 04/21] nd: create an 'nd_bus' from an 'nfit_desc'
From: Toshi Kani
Date: Tue Apr 28 2015 - 13:06:28 EST
On Wed, 2015-04-22 at 13:00 -0700, Dan Williams wrote:
> On Wed, Apr 22, 2015 at 12:38 PM, Toshi Kani <toshi.kani@xxxxxx> wrote:
> > On Wed, 2015-04-22 at 12:28 -0700, Dan Williams wrote:
> >> On Wed, Apr 22, 2015 at 11:23 AM, Toshi Kani <toshi.kani@xxxxxx> wrote:
> >> > On Wed, 2015-04-22 at 11:20 -0700, Dan Williams wrote:
> >> >> On Wed, Apr 22, 2015 at 11:00 AM, Linda Knippers <linda.knippers@xxxxxx> wrote:
> >> >> Wait, point of clarification, DCRs (dimm-control-regions) have RFICs,
> >> >> not MEMDEVs (memory-device-to-spa-mapping). Toshi's original report
> >> >> was that an NFIT with a SPA+MEMDEV was failing to enable a PMEM
> >> >> device. That specific problem can be fixed by either deleting the
> >> >> MEMDEV, or adding a DCR.
> >> >
> >> > By a DCR, do you mean a DCR structure or SPA with Control Region GUID?
> >>
> >> Hmm, I meant a DCR as defined below. I agree you would not need a "SPA-DCR".
> >>
> >> > Adding a DCR structure does not solve this issue since it requires SPA
> >> > with Control Region GUID, which battery-backed DIMMs do not have.
> >>
> >> I would not go that far, half of a DCR entry is relevant for any
> >> NVDIMM, and half is only relevant if a DIMM offers BLK access:
> >>
> >> struct acpi_nfit_dcr {
> >> u16 type;
> >> u16 length;
> >> u16 dcr_index;
> >> u16 vendor_id;
> >> u16 device_id;
> >> u16 revision_id;
> >> u16 sub_vendor_id;
> >> u16 sub_device_id;
> >> u16 sub_revision_id;
> >> u8 reserved[6];
> >> u32 serial_number;
> >> u16 fic;
> >> <<<<< BLK relevant fields start here <<<<<
> >> u16 num_bcw;
> >> u64 bcw_size;
> >> u64 cmd_offset;
> >> u64 cmd_size;
> >> u64 status_offset;
> >> u64 status_size;
> >> u16 flags;
> >> u8 reserved2[6];
> >> };
> >
> > Yes, we do have a DCR entry. But we do not have a SPA-DCR.
>
> Got it. will fix.
Attached is an example implementation of the NFIT table with 2
battery-backed NVDIMM cards, which I have used for testing. I hope this
provides a good example of an NFIT table with SPA(PMEM), MEMDEV and DCR
entries, which allows optional _DSMs for battery-backed NVDIMMs as
necessary.
HP is also defining _DSM method for battery-backed NVDIMMs, and will
share the spec when it is ready.
Thanks,
-Toshi
Thanks,
-Toshi
ÿþ* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N V D I M M F i r m w a r e I n t e r f a c e T a b l e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
N F I T a d d r e s s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0 7 B 7 E 7 0 0 0
T a b l e H e a d e r :
S i g n a t u r e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' N F I T '
L e n g t h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 1 3 8
R e v i s i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 1
C h e c k s u m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 4 A
O E M I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' H P '
O E M T a b l e I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' P r o L i a n t '
O E M R e v i s i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 1
C r e a t o r I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' H P '
C r e a t o r R e v i s i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 1
T a b l e C o n t e n t s :
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T S y s t e m P h y s i c a l A d d r e s s R a n g e S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
R a n g e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
F l a g s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
H o t p l u g E n a b l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
P r o x i m i t y D o m a i n V a l i d . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 2
P r o x i m i t y D o m a i n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0
A d d r e s s R a n g e T y p e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 F 0 D 3 7 9 - B 4 F 3 - 4 0 7 4 - A C 4 3 - 0 D 3 3 1 8 B 7 8 C D B
A d d r e s s R a n g e B a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 4 8 0 0 0 0 0 0 0
A d d r e s s R a n g e L e n g t h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
A d d r e s s R a n g e A t t r i b u t e s . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 F
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T M e m o r y D e v i c e A d d r e s s R a n g e M a p S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
D e v i c e H a n d l e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 1 0
D e v i c e P h y s i c a l I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 1 4
D e v i c e R e g i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
R a n g e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
C o n t r o l R e g i o n I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
R e g i o n S i z e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
R e g i o n O f f s e t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D e v i c e A d d r e s s B a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 4 8 0 0 0 0 0 0 0
I n t e r l e a v e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
I n t e r l e a v e W a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
S t a t e F l a g s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
S a v e F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
R e s t o r e F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
F l u s h F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
N o t A r m e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
S m a r t E v e n t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
S m a r t N o t i f y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T N V D I M M C o n t r o l R e g i o n S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
S t r u c t u r e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
V e n d o r I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 2 C 0 0
D e v i c e I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 8 0 0 1
R e v i s i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 5 9
S u b s y s t e m V e n d o r I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 1 2 C
S u b s y s t e m D e v i c e I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 1 0
S u b s y s t e m R e v i s i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
S e r i a l N u m b e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x A 9 4 5 0 0 B 3
R e g i o n F o r m a t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 1 0 1
C o n t r o l W i n d o w C o u n t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T S y s t e m P h y s i c a l A d d r e s s R a n g e S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
R a n g e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
F l a g s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
H o t p l u g E n a b l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
P r o x i m i t y D o m a i n V a l i d . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 2
P r o x i m i t y D o m a i n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 1
A d d r e s s R a n g e T y p e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 F 0 D 3 7 9 - B 4 F 3 - 4 0 7 4 - A C 4 3 - 0 D 3 3 1 8 B 7 8 C D B
A d d r e s s R a n g e B a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 A 8 0 0 0 0 0 0 0
A d d r e s s R a n g e L e n g t h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
A d d r e s s R a n g e A t t r i b u t e s . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 F
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T M e m o r y D e v i c e A d d r e s s R a n g e M a p S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
D e v i c e H a n d l e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2 0 1 1 0
D e v i c e P h y s i c a l I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 2 0
D e v i c e R e g i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
R a n g e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
C o n t r o l R e g i o n I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
R e g i o n S i z e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
R e g i o n O f f s e t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
D e v i c e A d d r e s s B a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0 0 0 0 A 8 0 0 0 0 0 0 0
I n t e r l e a v e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
I n t e r l e a v e W a y s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 1
S t a t e F l a g s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
S a v e F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
R e s t o r e F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
F l u s h F a i l e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
N o t A r m e d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
S m a r t E v e n t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
S m a r t N o t i f y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* N F I T N V D I M M C o n t r o l R e g i o n S t r u c t u r e *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
S t r u c t u r e I n d e x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 2
V e n d o r I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 2 C 0 0
D e v i c e I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 8 0 0 1
R e v i s i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 5 9
S u b s y s t e m V e n d o r I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 1 2 C
S u b s y s t e m D e v i c e I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 1 0
S u b s y s t e m R e v i s i o n I D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
S e r i a l N u m b e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x A 0 4 5 0 0 B 3
R e g i o n F o r m a t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 1 0 1
C o n t r o l W i n d o w C o u n t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 x 0 0 0 0
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *