From: Toshi Kani <toshi.kani@hp.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "Moore, Robert" <robert.moore@intel.com>,
Jens Axboe <axboe@kernel.dk>,
"linux-nvdimm@lists.01.org" <linux-nvdimm@ml01.01.org>,
Neil Brown <neilb@suse.de>, Greg KH <gregkh@linuxfoundation.org>,
"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Linux ACPI <linux-acpi@vger.kernel.org>,
"Zheng, Lv" <lv.zheng@intel.com>, Christoph Hellwig <hch@lst.de>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH v3 02/21] libnd, nfit: initial libnd infrastructure and NFIT support
Date: Thu, 21 May 2015 13:44:18 -0600 [thread overview]
Message-ID: <1432237458.29840.17.camel@misato.fc.hp.com> (raw)
In-Reply-To: <CAPcyv4gjh_2Uy=gLN793=PTWh4X5e=A6tbtVTvaeLxEoHjxw0w@mail.gmail.com>
On Thu, 2015-05-21 at 12:06 -0700, Dan Williams wrote:
> On Thu, May 21, 2015 at 11:01 AM, Toshi Kani <toshi.kani@hp.com> wrote:
> > On Thu, 2015-05-21 at 17:49 +0000, Moore, Robert wrote:
> >> What ACPICA has done here is to define these values consistently with the ToUUID ASL macro:
> >>
> >>
> >> Byte encoding of UUID/GUID strings into ACPI Buffer objects (use ToUUID from ASL):
> >>
> >> Input UUID/GUID String format : aabbccdd-eeff-gghh-iijj-kkllmmnnoopp
> >> Expected output ACPI buffer : dd,cc,bb,aa, ff,ee, hh,gg, ii,jj, kk,ll,mm,nn,oo,pp
> >>
> >
> > I do not see any issue in this conversion, which is consistent with
> > ToUUID defined in ACPI spec.
> >
> > My point is that the string format of GUID is endian-neutral. Wiki
> > pages and EFI spec agree on it. EFI 2.5 spec, Table 225 (sorry not
> > Table 212, which is v2.4), is also clear about how String and Buffer are
> > related with actual values of GUID.
>
> I think the critical point from the UEFI spec is the "It should also
> be noted that TimeLow, TimeMid, TimeHighAndVersion fields in the EFI
> are encoded as little endian". That would imply the byte encoding
> of...
>
> { 0x92F701F6, 0x13B4, 0x405D, 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }
>
> ...should be:
>
> { f6,01,f7,92,b4,13,5d,40,91,0b,29,93,67,e8,23,4c }
The above NFIT GUID as data values means:
EFI_GUID(0x92F701F6, 0x13B4, 0x405D, 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8,
0x23, 0x4C)
> Which implies the text conversion should be:
>
> "92f701f6-13b4-405d-910b-299367e8234c"
Nope.
EFI 2.5 spec, Appendix A "GUID and Time Formats" defines that:
(NOTE, I simplified the table 225 to fit in this email)
==
This specification also defines a standard text representation of the
GUID. This format is also sometimes called the “registry format”. It
consists of 36 characters, as follows:
aabbccdd-eeff-gghh-iijj-kkllmmnnoopp
:
Table 225. Text representation relationships
String Offset In Buffer EFI_GUID
aa 3 Data1[24:31]
bb 2 Data1[16:23]
cc 1 Data1[8:15]
dd 0 Data1[0:7]
:
===
Therefore:
aa = Data1[21:31] = 92
bb = Data1[16:23] = F7
cc = Data1[8:15] = 01
dd = Data1[0:7] = F6
> ...not
>
> > +#define UUID_CONTROL_REGION "f601f792-b413-5d40-910b-299367e8234c"
Hence, the above string is correct.
ToUUD then stores the given string to Buffer according to "Offset In
Buffer" in the above table.
Another example, EFI 2.5 spec defines GPT partition GUID:
===
Table 19. Defined GPT Partition Entry - Partition Type GUIDs
EFI System Partition C12A7328-F81F-11D2-BA4B-00A0C93EC93B
===
The kernel defines it as:
#define PARTITION_SYSTEM_GUID \
EFI_GUID( 0xC12A7328, 0xF81F, 0x11d2, \
0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B)
Thanks,
-Toshi
next prev parent reply other threads:[~2015-05-21 20:03 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-20 20:56 [PATCH v3 00/21] libnd: non-volatile memory device support Dan Williams
2015-05-20 20:56 ` [PATCH v3 01/21] e820, efi: add ACPI 6.0 persistent memory types Dan Williams
2015-05-20 20:56 ` [PATCH v3 02/21] libnd, nfit: initial libnd infrastructure and NFIT support Dan Williams
2015-05-21 13:55 ` Toshi Kani
2015-05-21 15:56 ` Dan Williams
2015-05-21 17:25 ` Toshi Kani
2015-05-21 17:49 ` Moore, Robert
2015-05-21 18:01 ` Toshi Kani
2015-05-21 19:06 ` Dan Williams
2015-05-21 19:44 ` Toshi Kani [this message]
2015-05-21 19:59 ` Toshi Kani
2015-05-21 20:59 ` Linda Knippers
2015-05-21 21:34 ` Dan Williams
2015-05-21 22:11 ` Toshi Kani
2015-05-22 14:58 ` Moore, Robert
2015-05-22 15:21 ` Toshi Kani
2015-05-22 16:12 ` Moore, Robert
2015-05-20 20:56 ` [PATCH v3 03/21] libnd: control character device and libnd bus sysfs attributes Dan Williams
2015-05-20 20:56 ` [PATCH v3 04/21] libnd, nfit: dimm/memory-devices Dan Williams
2015-05-20 20:56 ` [PATCH v3 05/21] libnd: control (ioctl) messages for libnd bus and dimm devices Dan Williams
2015-05-20 20:56 ` [PATCH v3 06/21] libnd, nd_dimm: dimm driver and base libnd device-driver infrastructure Dan Williams
2015-05-20 20:56 ` [PATCH v3 07/21] libnd, nfit: regions (block-data-window, persistent memory, volatile memory) Dan Williams
2015-05-20 20:56 ` [PATCH v3 08/21] libnd: support for legacy (non-aliasing) nvdimms Dan Williams
2015-05-20 20:57 ` [PATCH v3 09/21] libnd, nd_pmem: add libnd support to the pmem driver Dan Williams
2015-05-23 14:39 ` Christoph Hellwig
2015-05-23 16:59 ` Dan Williams
2015-05-20 20:57 ` [PATCH v3 10/21] pmem: Dynamically allocate partition numbers Dan Williams
2015-05-20 20:57 ` [PATCH v3 11/21] libnd, nfit: add interleave-set state-tracking infrastructure Dan Williams
2015-05-20 20:57 ` [PATCH v3 12/21] libnd: namespace indices: read and validate Dan Williams
2015-05-20 20:57 ` [PATCH v3 13/21] libnd: pmem label sets and namespace instantiation Dan Williams
2015-05-20 20:57 ` [PATCH v3 14/21] libnd: blk labels " Dan Williams
2015-05-22 18:37 ` Elliott, Robert (Server Storage)
2015-05-22 18:51 ` Dan Williams
2015-05-20 20:57 ` [PATCH v3 15/21] libnd: write pmem label set Dan Williams
2015-05-20 20:57 ` [PATCH v3 16/21] libnd: write blk " Dan Williams
2015-05-20 20:57 ` [PATCH v3 17/21] libnd: infrastructure for btt devices Dan Williams
2015-05-20 20:57 ` [PATCH v3 18/21] nd_btt: atomic sector updates Dan Williams
2015-05-22 21:16 ` Elliott, Robert (Server Storage)
2015-05-22 21:39 ` Dan Williams
2015-05-20 20:57 ` [PATCH v3 19/21] libnd, nfit, nd_blk: driver for BLK-mode access persistent memory Dan Williams
2015-05-20 20:58 ` [PATCH v3 20/21] nfit-test: manufactured NFITs for interface development Dan Williams
2015-05-25 7:02 ` Elliott, Robert (Server Storage)
2015-05-20 20:58 ` [PATCH v3 21/21] libnd: Non-Volatile Devices Dan Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1432237458.29840.17.camel@misato.fc.hp.com \
--to=toshi.kani@hp.com \
--cc=axboe@kernel.dk \
--cc=dan.j.williams@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvdimm@ml01.01.org \
--cc=lv.zheng@intel.com \
--cc=mingo@kernel.org \
--cc=neilb@suse.de \
--cc=rafael.j.wysocki@intel.com \
--cc=robert.moore@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox