Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-08-01 Thread Kinney, Michael D
Giri,

Based on the information in this thread, I am in favor of adding to MdePkg.

If the number of files in MdePkg/Include/IndustryStandard grows too large
then some additional directory organization may be required.

Mike

> -Original Message-
> From: Mudusuru, Giri P
> Sent: Monday, August 1, 2016 9:52 AM
> To: Rothman, Michael A <michael.a.roth...@intel.com>; Tim Lewis 
> <tim.le...@insyde.com>;
> Kinney, Michael D <michael.d.kin...@intel.com>; Laszlo Ersek 
> <ler...@redhat.com>; edk2-
> de...@lists.01.org <edk2-de...@ml01.01.org>
> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>; 
> Mudusuru,
> Giri P <giri.p.mudus...@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Thanks for detailed conversation and I agree with direction.
> 
> As it is ACPI related which has multiple vendors owning specific tables 
> referred by
> ACPI spec MdePkg for now seems to be right place. That said we can start 
> separate
> discussion if we want to create vendor folders for better organization in 
> future.
> 
> For now we can close this thread to include in MdePkg. Any objections?
> 
> Thanks,
> -Giri
> 
> > -Original Message-
> > From: Rothman, Michael A
> > Sent: Thursday, July 28, 2016 11:53 AM
> > To: Mudusuru, Giri P <giri.p.mudus...@intel.com>; Tim Lewis
> > <tim.le...@insyde.com>; Kinney, Michael D <michael.d.kin...@intel.com>;
> > Laszlo Ersek <ler...@redhat.com>; edk2-devel@lists.01.org  > de...@ml01.01.org>
> > Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
> > Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > Personally,
> >
> > I see that we have two classes of data we have external references to in the
> > codebase.
> >
> > We have data that is in a standards-maintained spec like ACPI, UEFI, etc.  
> > This
> > might be something like FPDT, which is a reservation in ACPI, but also has a
> > litany of definitions contained within the main ACPI specification and bug 
> > fixes
> > or extensions associated with it will show up in the main spec.
> >
> > We also have data that one of the main industry specs may reference, but 
> > don't
> > define explicitly. Things like the PE/COFF format, XENV, DMAR, etc. These 
> > are
> > maintained by vendor owners such as MSFT, INTC, or others.
> >
> > In my mind, both of these categories are in essence industry spec material.
> > They're used by the industry and thus at least show up in some form within 
> > the
> > main industry specs.
> >
> > However, the key difference is who is maintaining it.
> >
> > I can easily see argued that the industrystandard directory should contain 
> > them
> > all.
> > I could further argue that if we end up having too much in the main
> > industrystandard directory, we could start to bucket them by having
> > subdirectories noting who maintains it.
> >
> > Being that it is reference by an industry standard seems to be the simplest 
> > litmus
> > test for what main directory (and thus .h file) it gets placed in - 
> > otherwise it
> > might get pretty confusing.
> >
> > Definitely feels like something the Codebase Grand Poobahs(Kinney/Fish/Leif)
> > need to discuss. :-)
> >
> > Thanks,
> > Mike Rothman
> > (迈克 罗斯曼 / माइकल रोथ्मेन् / Михаил Ротман / משה רוטמן)
> > רועה עיקרי של חתולים
> >
> >
> > -Original Message-
> > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> > Mudusuru, Giri P
> > Sent: Thursday, July 28, 2016 10:59 AM
> > To: Tim Lewis <tim.le...@insyde.com>; Kinney, Michael D
> > <michael.d.kin...@intel.com>; Laszlo Ersek <ler...@redhat.com>; edk2-
> > de...@lists.01.org <edk2-de...@ml01.01.org>
> > Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
> > Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > Hi Tim,
> > Yes it is historical, and if we want to change that let's define the 
> > guidelines.
> >
> > In initial review added to IntelSiliconPkg but looking at other usage and 
> > to keep
> > it consistent I have moved to MdePkg.
> >
> > For example HPET and SPMI is another example which falls under the same
> > bucket from Intel side.
> >
> > For now we have place for Intel silicon related at IntelSiliconPkg but not 
> > all
> > ve

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-08-01 Thread Mudusuru, Giri P
Thanks for detailed conversation and I agree with direction.

As it is ACPI related which has multiple vendors owning specific tables 
referred by ACPI spec MdePkg for now seems to be right place. That said we can 
start separate discussion if we want to create vendor folders for better 
organization in future.

For now we can close this thread to include in MdePkg. Any objections?

Thanks,
-Giri

> -Original Message-
> From: Rothman, Michael A
> Sent: Thursday, July 28, 2016 11:53 AM
> To: Mudusuru, Giri P <giri.p.mudus...@intel.com>; Tim Lewis
> <tim.le...@insyde.com>; Kinney, Michael D <michael.d.kin...@intel.com>;
> Laszlo Ersek <ler...@redhat.com>; edk2-devel@lists.01.org  de...@ml01.01.org>
> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming....@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Personally,
> 
> I see that we have two classes of data we have external references to in the
> codebase.
> 
> We have data that is in a standards-maintained spec like ACPI, UEFI, etc.  
> This
> might be something like FPDT, which is a reservation in ACPI, but also has a
> litany of definitions contained within the main ACPI specification and bug 
> fixes
> or extensions associated with it will show up in the main spec.
> 
> We also have data that one of the main industry specs may reference, but don't
> define explicitly. Things like the PE/COFF format, XENV, DMAR, etc. These are
> maintained by vendor owners such as MSFT, INTC, or others.
> 
> In my mind, both of these categories are in essence industry spec material.
> They're used by the industry and thus at least show up in some form within the
> main industry specs.
> 
> However, the key difference is who is maintaining it.
> 
> I can easily see argued that the industrystandard directory should contain 
> them
> all.
> I could further argue that if we end up having too much in the main
> industrystandard directory, we could start to bucket them by having
> subdirectories noting who maintains it.
> 
> Being that it is reference by an industry standard seems to be the simplest 
> litmus
> test for what main directory (and thus .h file) it gets placed in - otherwise 
> it
> might get pretty confusing.
> 
> Definitely feels like something the Codebase Grand Poobahs(Kinney/Fish/Leif)
> need to discuss. :-)
> 
> Thanks,
> Mike Rothman
> (迈克 罗斯曼 / माइकल रोथ्मेन् / Михаил Ротман / משה רוטמן)
> רועה עיקרי של חתולים
> 
> 
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Mudusuru, Giri P
> Sent: Thursday, July 28, 2016 10:59 AM
> To: Tim Lewis <tim.le...@insyde.com>; Kinney, Michael D
> <michael.d.kin...@intel.com>; Laszlo Ersek <ler...@redhat.com>; edk2-
> de...@lists.01.org <edk2-de...@ml01.01.org>
> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
> Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Hi Tim,
> Yes it is historical, and if we want to change that let's define the 
> guidelines.
> 
> In initial review added to IntelSiliconPkg but looking at other usage and to 
> keep
> it consistent I have moved to MdePkg.
> 
> For example HPET and SPMI is another example which falls under the same
> bucket from Intel side.
> 
> For now we have place for Intel silicon related at IntelSiliconPkg but not all
> vendors have same.
> 
> Will wait for the stewards (Mike, Leif and Andrew) to recommend the final
> location.
> 
> Thanks,
> -Giri
> 
> > -Original Message-
> > From: Tim Lewis [mailto:tim.le...@insyde.com]
> > Sent: Thursday, July 28, 2016 9:55 AM
> > To: Kinney, Michael D <michael.d.kin...@intel.com>; Laszlo Ersek
> > <ler...@redhat.com>; Mudusuru, Giri P <giri.p.mudus...@intel.com>;
> > edk2- de...@lists.01.org <edk2-de...@ml01.01.org>
> > Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming
> > <liming@intel.com>
> > Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > Mike --
> >
> > Not quite. That table has historically been a registry of claimed
> > table IDs similar to the registry for \EFI directory names. As noted,
> > there is a link to a page that gives the links to the actual spec,
> > which is hosted by Intel (or Microsoft or Xen) The listing in this
> > table is not an endorsement of an "industry standard" any more than XENV.
> (XEN Project Table). They are just vendor links.
> >
> > Tim
> >
> > -Original Message-
> > From: Kinney, Michae

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Andrew Fish

> On Jul 28, 2016, at 10:58 AM, Mudusuru, Giri P <giri.p.mudus...@intel.com> 
> wrote:
> 
> Hi Tim,
> Yes it is historical, and if we want to change that let's define the 
> guidelines. 
> 
> In initial review added to IntelSiliconPkg but looking at other usage and to 
> keep it consistent I have moved to MdePkg.
> 
> For example HPET and SPMI is another example which falls under the same 
> bucket from Intel side.
> 
> For now we have place for Intel silicon related at IntelSiliconPkg but not 
> all vendors have same.
> 
> Will wait for the stewards (Mike, Leif and Andrew) to recommend the final 
> location.
> 

Tim,

I agree there is a lack of symmetry. I don't have a real strong opinion about 
this but I'll start with a few thoughts to move the conversation forward. 
1) My 1st take is if the item is consumed by multiple sources, especially 
different operating systems MdePkg is a good landing spot. 
2) I'm fine with adding ARM stuff in MdePkg, especially if it things that would 
consumed by an Application or OS. 
3) It would seem a little strange to Include Silicon packages in an EFI 
Application or OS Loader that was a consumer. 
4) If the table is cross referenced by and Industry Standard it seems OK to 
have it in MdePkg. http://www.acpi.info/links.htm
5) If there is some firmware produced table for AMD-Vi that could get added to 
the MdePkg also? 

Thanks,

Andrew Fish

> Thanks,
> -Giri
> 
>> -Original Message-
>> From: Tim Lewis [mailto:tim.le...@insyde.com]
>> Sent: Thursday, July 28, 2016 9:55 AM
>> To: Kinney, Michael D <michael.d.kin...@intel.com>; Laszlo Ersek
>> <ler...@redhat.com>; Mudusuru, Giri P <giri.p.mudus...@intel.com>; edk2-
>> de...@lists.01.org <edk2-de...@ml01.01.org>
>> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
>> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
>> 
>> Mike --
>> 
>> Not quite. That table has historically been a registry of claimed table IDs 
>> similar
>> to the registry for \EFI directory names. As noted, there is a link to a 
>> page that
>> gives the links to the actual spec, which is hosted by Intel (or Microsoft 
>> or Xen)
>> The listing in this table is not an endorsement of an "industry standard" 
>> any more
>> than XENV. (XEN Project Table). They are just vendor links.
>> 
>> Tim
>> 
>> -Original Message-
>> From: Kinney, Michael D [mailto:michael.d.kin...@intel.com]
>> Sent: Thursday, July 28, 2016 9:51 AM
>> To: Tim Lewis <tim.le...@insyde.com>; Laszlo Ersek <ler...@redhat.com>;
>> Mudusuru, Giri P <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org > de...@ml01.01.org>; Kinney, Michael D <michael.d.kin...@intel.com>
>> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
>> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
>> 
>> Tim,
>> 
>> The 'DMAR' table is defined in the ACPI Specification.
>> 
>> This is similar to 'DBG2':
>> 
>>  MdePkg/Include/IndustryStandard/DebugPort2Table.h
>> 
>> And 'SPCD':
>> 
>>  MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
>> 
>> Mike
>> 
>>> -Original Message-
>>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
>>> Tim Lewis
>>> Sent: Thursday, July 28, 2016 9:42 AM
>>> To: Laszlo Ersek <ler...@redhat.com>; Mudusuru, Giri P
>>> <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org
>>> <edk2-de...@ml01.01.org>
>>> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Yao, Jiewen
>>> <jiewen@intel.com>; Gao, Liming <liming@intel.com>
>>> Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
>>> 
>>> Laszlo --
>>> 
>>> I hear what you are saying. However, I think this is a different case:
>>> 
>>> 1) How many ARM-defined standards are in the
>> MdePkg\Include\IndustryStandards.h file?
>>> By my count, none. This is by design. They are all in other packages.
>>> DMAR is there because it was grandfathered in from a generation of
>>> tianocore when only architectures provided by Intel were prevalent for UEFI.
>>> 2) Now that there is an Intel package for Intel-silicon related
>>> header files and modules, now is the time to move it.
>>> 3) OS cases are a little different, since we don't usually produce
>>> Microsoft (or Redhat or Canonical or BSD) specific modules for 

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Mudusuru, Giri P
Hi Tim,
Yes it is historical, and if we want to change that let's define the 
guidelines. 

In initial review added to IntelSiliconPkg but looking at other usage and to 
keep it consistent I have moved to MdePkg.

For example HPET and SPMI is another example which falls under the same bucket 
from Intel side.

For now we have place for Intel silicon related at IntelSiliconPkg but not all 
vendors have same.

Will wait for the stewards (Mike, Leif and Andrew) to recommend the final 
location.

Thanks,
-Giri

> -Original Message-
> From: Tim Lewis [mailto:tim.le...@insyde.com]
> Sent: Thursday, July 28, 2016 9:55 AM
> To: Kinney, Michael D <michael.d.kin...@intel.com>; Laszlo Ersek
> <ler...@redhat.com>; Mudusuru, Giri P <giri.p.mudus...@intel.com>; edk2-
> de...@lists.01.org <edk2-de...@ml01.01.org>
> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming....@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Mike --
> 
> Not quite. That table has historically been a registry of claimed table IDs 
> similar
> to the registry for \EFI directory names. As noted, there is a link to a page 
> that
> gives the links to the actual spec, which is hosted by Intel (or Microsoft or 
> Xen)
> The listing in this table is not an endorsement of an "industry standard" any 
> more
> than XENV. (XEN Project Table). They are just vendor links.
> 
> Tim
> 
> -Original Message-
> From: Kinney, Michael D [mailto:michael.d.kin...@intel.com]
> Sent: Thursday, July 28, 2016 9:51 AM
> To: Tim Lewis <tim.le...@insyde.com>; Laszlo Ersek <ler...@redhat.com>;
> Mudusuru, Giri P <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org  de...@ml01.01.org>; Kinney, Michael D <michael.d.kin...@intel.com>
> Cc: Yao, Jiewen <jiewen@intel.com>; Gao, Liming <liming@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Tim,
> 
> The 'DMAR' table is defined in the ACPI Specification.
> 
> This is similar to 'DBG2':
> 
>   MdePkg/Include/IndustryStandard/DebugPort2Table.h
> 
> And 'SPCD':
> 
>   MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
> 
> Mike
> 
> > -Original Message-
> > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> > Tim Lewis
> > Sent: Thursday, July 28, 2016 9:42 AM
> > To: Laszlo Ersek <ler...@redhat.com>; Mudusuru, Giri P
> > <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org
> > <edk2-de...@ml01.01.org>
> > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Yao, Jiewen
> > <jiewen@intel.com>; Gao, Liming <liming@intel.com>
> > Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > Laszlo --
> >
> > I hear what you are saying. However, I think this is a different case:
> >
> > 1) How many ARM-defined standards are in the
> MdePkg\Include\IndustryStandards.h file?
> > By my count, none. This is by design. They are all in other packages.
> > DMAR is there because it was grandfathered in from a generation of
> > tianocore when only architectures provided by Intel were prevalent for UEFI.
> >  2) Now that there is an Intel package for Intel-silicon related
> > header files and modules, now is the time to move it.
> > 3) OS cases are a little different, since we don't usually produce
> > Microsoft (or Redhat or Canonical or BSD) specific modules for UEFI.
> > There are header files and a smattering of files that deal with these.
> > If we created a MicrosoftOsPkg, I'd move the header files there as well.
> >
> > Tim
> >
> > -Original Message-
> > From: Laszlo Ersek [mailto:ler...@redhat.com]
> > Sent: Thursday, July 28, 2016 9:29 AM
> > To: Tim Lewis <tim.le...@insyde.com>; Giri P Mudusuru
> > <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org
> > <edk2-de...@ml01.01.org>
> > Cc: Michael Kinney <michael.d.kin...@intel.com>; Jiewen Yao
> > <jiewen@intel.com>; Liming Gao <liming@intel.com>
> > Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > On 07/28/16 18:00, Tim Lewis wrote:
> > > Giri --
> > >
> > > Is MdePkg the right place for this? This appears to be an
> > > Intel-specific definition, right? I understand that it was in
> > > IndustryStandard for EdkCompatibilityPkg, but it might do better now
> > > in the IntelSiliconPkg.
> >
> > DMAR is defined by a widely used industry standard / spec; I think it
> > belongs

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Kinney, Michael D
Tim,

The 'DMAR' table is defined in the ACPI Specification.

This is similar to 'DBG2': 

  MdePkg/Include/IndustryStandard/DebugPort2Table.h

And 'SPCD':

  MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h

Mike

> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Tim 
> Lewis
> Sent: Thursday, July 28, 2016 9:42 AM
> To: Laszlo Ersek <ler...@redhat.com>; Mudusuru, Giri P 
> <giri.p.mudus...@intel.com>;
> edk2-devel@lists.01.org <edk2-de...@ml01.01.org>
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Yao, Jiewen 
> <jiewen@intel.com>;
> Gao, Liming <liming@intel.com>
> Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Laszlo --
> 
> I hear what you are saying. However, I think this is a different case:
> 
> 1) How many ARM-defined standards are in the 
> MdePkg\Include\IndustryStandards.h file?
> By my count, none. This is by design. They are all in other packages. DMAR is 
> there
> because it was grandfathered in from a generation of tianocore when only 
> architectures
> provided by Intel were prevalent for UEFI.
>  2) Now that there is an Intel package for Intel-silicon related header files 
> and
> modules, now is the time to move it.
> 3) OS cases are a little different, since we don't usually produce Microsoft 
> (or Redhat
> or Canonical or BSD) specific modules for UEFI. There are header files and a 
> smattering
> of files that deal with these. If we created a MicrosoftOsPkg, I'd move the 
> header
> files there as well.
> 
> Tim
> 
> -Original Message-
> From: Laszlo Ersek [mailto:ler...@redhat.com]
> Sent: Thursday, July 28, 2016 9:29 AM
> To: Tim Lewis <tim.le...@insyde.com>; Giri P Mudusuru 
> <giri.p.mudus...@intel.com>;
> edk2-devel@lists.01.org <edk2-de...@ml01.01.org>
> Cc: Michael Kinney <michael.d.kin...@intel.com>; Jiewen Yao 
> <jiewen@intel.com>;
> Liming Gao <liming@intel.com>
> Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> On 07/28/16 18:00, Tim Lewis wrote:
> > Giri --
> >
> > Is MdePkg the right place for this? This appears to be an
> > Intel-specific definition, right? I understand that it was in
> > IndustryStandard for EdkCompatibilityPkg, but it might do better now
> > in the IntelSiliconPkg.
> 
> DMAR is defined by a widely used industry standard / spec; I think it belongs 
> to
> MdePkg.
> 
> Prior art (gathered with
> 
>   git log --reverse --stat=1000 --stat-graph-width=20 --
> MdePkg/Include/IndustryStandard
> 
> and by searching for "Microsoft", case-insensitively):
> 
> (1)
> 
> commit 32df01ff685b9de50555bac040166b17a061ea9b
> Author: Chao Zhang <chao.b.zh...@intel.com>
> Date:   Wed May 13 08:27:04 2015 +
> 
> MdePkg: Add Microsoft UX capsule GUID & layout
> 
> Add Microsoft UX capsule GUID & layout into IndustryStandard
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Chao Zhang <chao.b.zh...@intel.com>
> Reviewed-by: Gao Liming <liming@intel.com>
> 
> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17424 
> 6f19259b-4bc3-
> 4df7-8a09-765794883524
> 
>  MdePkg/Include/IndustryStandard/WindowsUxCapsule.h | 46 
>  1 file changed, 46 insertions(+)
> 
> (2)
> 
> commit c374aa43a199a5aab53218ef3cf99284ba19ae98
> Author: Heyi Guo <heyi@linaro.org>
> Date:   Fri Nov 13 03:27:54 2015 +
> 
> Update SPCR table definition per SPCR specification v1.03.
> 
> Document link:
> 
> http://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: "Heyi Guo" <heyi@linaro.org>
> Reviewed-by: "Jiewen Yao" <jiewen@intel.com>
> 
> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18782 
> 6f19259b-4bc3-
> 4df7-8a09-765794883524
> 
>  MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h | 12 
> 
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> (3)
> 
> commit 31a9d3b419accbbc5463c71221b3b30a46f9ee73
> Author: Yao, Jiewen <jiewen@intel.com>
> Date:   Tue Jan 19 13:17:10 2016 +
> 
> MdePkg: Update MorLock comment to latest doc.
> 
> Microsoft updated secure MOR lock document with version 2.
> So we update comment here.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: "Yao, Jiewen

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Tim Lewis
Laszlo --

I hear what you are saying. However, I think this is a different case:

1) How many ARM-defined standards are in the MdePkg\Include\IndustryStandards.h 
file? By my count, none. This is by design. They are all in other packages. 
DMAR is there because it was grandfathered in from a generation of tianocore 
when only architectures provided by Intel were prevalent for UEFI.
 2) Now that there is an Intel package for Intel-silicon related header files 
and modules, now is the time to move it.
3) OS cases are a little different, since we don't usually produce Microsoft 
(or Redhat or Canonical or BSD) specific modules for UEFI. There are header 
files and a smattering of files that deal with these. If we created a 
MicrosoftOsPkg, I'd move the header files there as well. 

Tim

-Original Message-
From: Laszlo Ersek [mailto:ler...@redhat.com] 
Sent: Thursday, July 28, 2016 9:29 AM
To: Tim Lewis <tim.le...@insyde.com>; Giri P Mudusuru 
<giri.p.mudus...@intel.com>; edk2-devel@lists.01.org <edk2-de...@ml01.01.org>
Cc: Michael Kinney <michael.d.kin...@intel.com>; Jiewen Yao 
<jiewen@intel.com>; Liming Gao <liming....@intel.com>
Subject: Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

On 07/28/16 18:00, Tim Lewis wrote:
> Giri --
> 
> Is MdePkg the right place for this? This appears to be an 
> Intel-specific definition, right? I understand that it was in 
> IndustryStandard for EdkCompatibilityPkg, but it might do better now 
> in the IntelSiliconPkg.

DMAR is defined by a widely used industry standard / spec; I think it belongs 
to MdePkg.

Prior art (gathered with

  git log --reverse --stat=1000 --stat-graph-width=20 -- 
MdePkg/Include/IndustryStandard

and by searching for "Microsoft", case-insensitively):

(1)

commit 32df01ff685b9de50555bac040166b17a061ea9b
Author: Chao Zhang <chao.b.zh...@intel.com>
Date:   Wed May 13 08:27:04 2015 +

MdePkg: Add Microsoft UX capsule GUID & layout

Add Microsoft UX capsule GUID & layout into IndustryStandard

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chao Zhang <chao.b.zh...@intel.com>
Reviewed-by: Gao Liming <liming@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17424 
6f19259b-4bc3-4df7-8a09-765794883524

 MdePkg/Include/IndustryStandard/WindowsUxCapsule.h | 46 
 1 file changed, 46 insertions(+)

(2)

commit c374aa43a199a5aab53218ef3cf99284ba19ae98
Author: Heyi Guo <heyi@linaro.org>
Date:   Fri Nov 13 03:27:54 2015 +

Update SPCR table definition per SPCR specification v1.03.

Document link:

http://msdn.microsoft.com/en-us/library/windows/hardware/dn639132(v=vs.85).aspx

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Heyi Guo" <heyi@linaro.org>
Reviewed-by: "Jiewen Yao" <jiewen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18782 
6f19259b-4bc3-4df7-8a09-765794883524

 MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h | 12 

 1 file changed, 8 insertions(+), 4 deletions(-)

(3) 

commit 31a9d3b419accbbc5463c71221b3b30a46f9ee73
Author: Yao, Jiewen <jiewen@intel.com>
Date:   Tue Jan 19 13:17:10 2016 +

MdePkg: Update MorLock comment to latest doc.

Microsoft updated secure MOR lock document with version 2.
So we update comment here.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <jiewen@intel.com>
Reviewed: "Zhang, Chao B" <chao.b.zh...@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19687 
6f19259b-4bc3-4df7-8a09-765794883524

 MdePkg/Include/IndustryStandard/MemoryOverwriteRequestControlLock.h | 16 

 1 file changed, 8 insertions(+), 8 deletions(-)

(4)

commit a0606fc705f5bdfbe2366a7f3c6dd7491da74394
Author: Sami Mujawar <sami.muja...@arm.com>
Date:   Fri Mar 4 14:58:33 2016 +

MdePkg: Add ARM Serial Port Subtype definitions

The Serial Port Console Redirection Table specification Version 1.03 -
August 10, 2015 adds support for Serial Port Subtypes for ARM. These
Subtypes are described in the Table 3 of the Microsoft Debug Port Table
2 (DBG2) Specification - December 10, 2015.

This patch adds macro definitions for these.

Code at: 
https://github.com/EvanLloyd/tianocore/commit/79678a0f399e97883cfba09275e750861e24cd70

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Evan Lloyd <evan.ll...@arm.com>
Reviewed-by: Yao Jiewen <jiewen@intel.com>
Reviewed-by: Liming Gao <liming@intel.com>

 MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h | 25 

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Tim Lewis
Giri --

Is MdePkg the right place for this? This appears to be an Intel-specific 
definition, right? I understand that it was in IndustryStandard for 
EdkCompatibilityPkg, but it might do better now in the IntelSiliconPkg.

Regards,

Tim

-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Giri P 
Mudusuru
Sent: Wednesday, July 27, 2016 11:46 PM
To: edk2-devel@lists.01.org
Cc: Michael Kinney <michael.d.kin...@intel.com>; Jiewen Yao 
<jiewen@intel.com>; Liming Gao <liming@intel.com>
Subject: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R) 
Virtualization Technology for Directed I/O (VT-D) Architecture Specification 
v2.4 dated June 2016.

This replaces the DMARemappingReportingTable.h from 
EdkCompatibilityPkg\Foundation\Include\IndustryStandard

Cc: Michael Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <liming@intel.com>
Cc: Jiewen Yao <jiewen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Giri P Mudusuru <giri.p.mudus...@intel.com>
---
 .../IndustryStandard/DmaRemappingReportingTable.h  | 254 +
 1 file changed, 254 insertions(+)
 create mode 100644 MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h

diff --git a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h 
b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
new file mode 100644
index 000..691aea0
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
@@ -0,0 +1,254 @@
+/** @file
+  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
+  Virtualization Technology for Directed I/O (VT-D) Architecture Specification.
+
+  Copyright (c) 2016, Intel Corporation. All rights reserved.  This 
+ program and the accompanying materials  are licensed and made 
+ available under the terms and conditions of the BSD License  which 
+ accompanies this distribution.  The full text of the license may be 
+ found at  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,  
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Revision Reference:
+- Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
+  Specification v2.4, Dated June 2016.
+  
+ http://www.intel.com/content/dam/www/public/us/en/documents/product-sp
+ ecifications/vt-directed-io-spec.pdf
+
+  @par Glossary:
+- HPET - High Precision Event Timer
+- NUMA - Non-uniform Memory Access
+**/
+#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_ #define 
+_DMA_REMAPPING_REPORTING_TABLE_H_
+
+#pragma pack(1)
+
+///
+/// DMA Remapping Reporting Table Revision ///
+#define EFI_ACPI_DMAR_DESCRIPTION_TABLE_REVISION   0x01
+
+///
+/// DMA-Remapping Reporting ACPI Table definitions from section 8.1 
+///@{
+#define EFI_ACPI_DMAR_TABLE_FLAGS_INTR_REMAP_SETBIT0
+#define EFI_ACPI_DMAR_TABLE_FLAGS_X2APIC_OPT_OUT_SETBIT1
+///@}
+
+///
+/// Remapping Structure Types definitions from section 8.2 ///@{
+#define EFI_ACPI_DMAR_TYPE_DRHD   0x00
+#define EFI_ACPI_DMAR_TYPE_RMRR   0x01
+#define EFI_ACPI_DMAR_TYPE_ATSR   0x02
+#define EFI_ACPI_DMAR_TYPE_RHSA   0x03
+#define EFI_ACPI_DMAR_TYPE_ANDD   0x04
+///@}
+
+///
+/// Definition for DMA Remapping Structure Header /// typedef struct {
+  UINT16Type;
+  UINT16Length;
+} EFI_ACPI_DMAR_STRUCTURE_HEADER;
+
+///
+/// Definition for DMA-Remapping PCI Path /// typedef struct {
+  UINT8 Device;
+  UINT8 Function;
+} EFI_ACPI_DMAR_PCI_PATH;
+
+///
+/// DMA-Remapping Device Scope Entry Structure definitions from section 
+8.3.1 ///@{
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT   0x01
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_BRIDGE 0x02
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_IOAPIC 0x03
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_MSI_CAPABLE_HPET   0x04
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_ACPI_NAMESPACE_DEVICE  0x05 
+///@}
+
+///
+/// Device Scope Structure is defined in section 8.3.1 /// typedef 
+struct {
+  UINT8 Type;
+  UINT8 Length;
+  UINT16Reserved2;
+  UINT8 EnumerationId;
+  UINT8 StartBusNumber;
+} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
+
+/**
+  DMA-remapping hardware unit definition (DRHD) structure is defined in
+  section 8.3. This uniquely represents a remapping hardware unit 
+present
+  in the platform. There must be at least one instance of this 
+structure
+  for each PCI segment in the platform.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  /**
+- Bit[0]: INCLUDE_PCI_ALL
+  - If Set, this remapping hardware unit has under its scope all
+PCI compatible devices in the specified Segment, except device

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Mudusuru, Giri P
Sure Jiewen. Will add these two defines and send v2 patch.

Thanks,
-Giri

> -Original Message-
> From: Yao, Jiewen
> Sent: Thursday, July 28, 2016 12:28 AM
> To: Mudusuru, Giri P <giri.p.mudus...@intel.com>; edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> <liming....@intel.com>
> Subject: RE: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> Thanks. It looks good.
> Reviewed-by: jiewen@intel.com
> 
> Do you think we can define below MACRO too?
> 
> #define EFI_ACPI_DMAR_DRHD_FLAG_INCLUDE_PCI_ALL  BIT0
> 
> #define EFI_ACPI_DMAR_ATSR_FALG_ALL_PORTS  BIT0
> 
> 
> > -Original Message-
> > From: Mudusuru, Giri P
> > Sent: Thursday, July 28, 2016 2:46 PM
> > To: edk2-devel@lists.01.org
> > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> > <liming....@intel.com>; Yao, Jiewen <jiewen@intel.com>
> > Subject: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> >
> > DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R)
> > Virtualization Technology for Directed I/O (VT-D) Architecture
> > Specification v2.4 dated June 2016.
> >
> > This replaces the DMARemappingReportingTable.h from
> > EdkCompatibilityPkg\Foundation\Include\IndustryStandard
> >
> > Cc: Michael Kinney <michael.d.kin...@intel.com>
> > Cc: Liming Gao <liming@intel.com>
> > Cc: Jiewen Yao <jiewen@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Giri P Mudusuru <giri.p.mudus...@intel.com>
> > ---
> >  .../IndustryStandard/DmaRemappingReportingTable.h  | 254
> > +
> >  1 file changed, 254 insertions(+)
> >  create mode 100644
> > MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> >
> > diff --git
> > a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> > b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> > new file mode 100644
> > index 000..691aea0
> > --- /dev/null
> > +++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> > @@ -0,0 +1,254 @@
> > +/** @file
> > +  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
> > +  Virtualization Technology for Directed I/O (VT-D) Architecture
> > Specification.
> > +
> > +  Copyright (c) 2016, Intel Corporation. All rights reserved.
> > +  This program and the accompanying materials
> > +  are licensed and made available under the terms and conditions of the
> > BSD License
> > +  which accompanies this distribution.  The full text of the license may be
> > found at
> > +  http://opensource.org/licenses/bsd-license.php
> > +
> > +  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> > BASIS,
> > +  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> > EXPRESS OR IMPLIED.
> > +
> > +  @par Revision Reference:
> > +- Intel(R) Virtualization Technology for Directed I/O (VT-D) 
> > Architecture
> > +  Specification v2.4, Dated June 2016.
> > +
> > http://www.intel.com/content/dam/www/public/us/en/documents/product
> > -specifications/vt-directed-io-spec.pdf
> > +
> > +  @par Glossary:
> > +- HPET - High Precision Event Timer
> > +- NUMA - Non-uniform Memory Access
> > +**/
> > +#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
> > +#define _DMA_REMAPPING_REPORTING_TABLE_H_
> > +
> > +#pragma pack(1)
> > +
> > +///
> > +/// DMA Remapping Reporting Table Revision
> > +///
> > +#define EFI_ACPI_DMAR_DESCRIPTION_TABLE_REVISION   0x01
> > +
> > +///
> > +/// DMA-Remapping Reporting ACPI Table definitions from section 8.1
> > +///@{
> > +#define EFI_ACPI_DMAR_TABLE_FLAGS_INTR_REMAP_SET
> > BIT0
> > +#define EFI_ACPI_DMAR_TABLE_FLAGS_X2APIC_OPT_OUT_SET
> > BIT1
> > +///@}
> > +
> > +///
> > +/// Remapping Structure Types definitions from section 8.2
> > +///@{
> > +#define EFI_ACPI_DMAR_TYPE_DRHD   0x00
> > +#define EFI_ACPI_DMAR_TYPE_RMRR   0x01
> > +#define EFI_ACPI_DMAR_TYPE_ATSR   0x02
> > +#define EFI_ACPI_DMAR_TYPE_RHSA   0x03
> > +#define EFI_ACPI_DMAR_TYPE_ANDD   0x04
> > +///@}
> > +
> > +///
> > +/// Definition for DMA Remapping Structure Header
> > +///
> > +typedef struct {
> > +  UINT16Type;
> > +  UINT16Length;
> > +} EFI_ACPI_DMAR_STRUCTURE_HEADER;
> > +
> > +///
> > +/// 

Re: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Yao, Jiewen
Thanks. It looks good.
Reviewed-by: jiewen@intel.com

Do you think we can define below MACRO too?

#define EFI_ACPI_DMAR_DRHD_FLAG_INCLUDE_PCI_ALL  BIT0

#define EFI_ACPI_DMAR_ATSR_FALG_ALL_PORTS  BIT0


> -Original Message-
> From: Mudusuru, Giri P
> Sent: Thursday, July 28, 2016 2:46 PM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> <liming@intel.com>; Yao, Jiewen <jiewen....@intel.com>
> Subject: [edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h
> 
> DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R)
> Virtualization Technology for Directed I/O (VT-D) Architecture
> Specification v2.4 dated June 2016.
> 
> This replaces the DMARemappingReportingTable.h from
> EdkCompatibilityPkg\Foundation\Include\IndustryStandard
> 
> Cc: Michael Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <liming@intel.com>
> Cc: Jiewen Yao <jiewen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Giri P Mudusuru <giri.p.mudus...@intel.com>
> ---
>  .../IndustryStandard/DmaRemappingReportingTable.h  | 254
> +
>  1 file changed, 254 insertions(+)
>  create mode 100644
> MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> 
> diff --git
> a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> new file mode 100644
> index 000..691aea0
> --- /dev/null
> +++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
> @@ -0,0 +1,254 @@
> +/** @file
> +  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
> +  Virtualization Technology for Directed I/O (VT-D) Architecture
> Specification.
> +
> +  Copyright (c) 2016, Intel Corporation. All rights reserved.
> +  This program and the accompanying materials
> +  are licensed and made available under the terms and conditions of the
> BSD License
> +  which accompanies this distribution.  The full text of the license may be
> found at
> +  http://opensource.org/licenses/bsd-license.php
> +
> +  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS"
> BASIS,
> +  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER
> EXPRESS OR IMPLIED.
> +
> +  @par Revision Reference:
> +- Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
> +  Specification v2.4, Dated June 2016.
> +
> http://www.intel.com/content/dam/www/public/us/en/documents/product
> -specifications/vt-directed-io-spec.pdf
> +
> +  @par Glossary:
> +- HPET - High Precision Event Timer
> +- NUMA - Non-uniform Memory Access
> +**/
> +#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
> +#define _DMA_REMAPPING_REPORTING_TABLE_H_
> +
> +#pragma pack(1)
> +
> +///
> +/// DMA Remapping Reporting Table Revision
> +///
> +#define EFI_ACPI_DMAR_DESCRIPTION_TABLE_REVISION   0x01
> +
> +///
> +/// DMA-Remapping Reporting ACPI Table definitions from section 8.1
> +///@{
> +#define EFI_ACPI_DMAR_TABLE_FLAGS_INTR_REMAP_SET
> BIT0
> +#define EFI_ACPI_DMAR_TABLE_FLAGS_X2APIC_OPT_OUT_SET
> BIT1
> +///@}
> +
> +///
> +/// Remapping Structure Types definitions from section 8.2
> +///@{
> +#define EFI_ACPI_DMAR_TYPE_DRHD   0x00
> +#define EFI_ACPI_DMAR_TYPE_RMRR   0x01
> +#define EFI_ACPI_DMAR_TYPE_ATSR   0x02
> +#define EFI_ACPI_DMAR_TYPE_RHSA   0x03
> +#define EFI_ACPI_DMAR_TYPE_ANDD   0x04
> +///@}
> +
> +///
> +/// Definition for DMA Remapping Structure Header
> +///
> +typedef struct {
> +  UINT16Type;
> +  UINT16Length;
> +} EFI_ACPI_DMAR_STRUCTURE_HEADER;
> +
> +///
> +/// Definition for DMA-Remapping PCI Path
> +///
> +typedef struct {
> +  UINT8 Device;
> +  UINT8 Function;
> +} EFI_ACPI_DMAR_PCI_PATH;
> +
> +///
> +/// DMA-Remapping Device Scope Entry Structure definitions from section
> 8.3.1
> +///@{
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT
> 0x01
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_BRIDGE
> 0x02
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_IOAPIC
> 0x03
> +#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_MSI_CAPABLE_HPET
> 0x04
> +#define
> EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_ACPI_NAMESPACE_DEVICE  0x05
> +///@}
> +
> +///
> +/// Device Scope Structure is defined in section 8.3.1
> +///
> +typedef struct {
> +  UINT8 Type;
> +  UINT8 Length;
> +  UINT16Reserved2;
> +  UINT8 EnumerationId;
> +  UINT8 StartBusNumber;
> +} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
> +
> +/**
>

[edk2] [PATCH] MdePkg: Add DmaRemappingReportingTable.h

2016-07-28 Thread Giri P Mudusuru
DMA Remapping Reporting (DMAR) ACPI table definitions from Intel(R)
Virtualization Technology for Directed I/O (VT-D) Architecture
Specification v2.4 dated June 2016.

This replaces the DMARemappingReportingTable.h from
EdkCompatibilityPkg\Foundation\Include\IndustryStandard

Cc: Michael Kinney 
Cc: Liming Gao 
Cc: Jiewen Yao 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Giri P Mudusuru 
---
 .../IndustryStandard/DmaRemappingReportingTable.h  | 254 +
 1 file changed, 254 insertions(+)
 create mode 100644 MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h

diff --git a/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h 
b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
new file mode 100644
index 000..691aea0
--- /dev/null
+++ b/MdePkg/Include/IndustryStandard/DmaRemappingReportingTable.h
@@ -0,0 +1,254 @@
+/** @file
+  DMA Remapping Reporting (DMAR) ACPI table definition from Intel(R)
+  Virtualization Technology for Directed I/O (VT-D) Architecture Specification.
+
+  Copyright (c) 2016, Intel Corporation. All rights reserved.
+  This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD 
License
+  which accompanies this distribution.  The full text of the license may be 
found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Revision Reference:
+- Intel(R) Virtualization Technology for Directed I/O (VT-D) Architecture
+  Specification v2.4, Dated June 2016.
+  
http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/vt-directed-io-spec.pdf
+
+  @par Glossary:
+- HPET - High Precision Event Timer
+- NUMA - Non-uniform Memory Access
+**/
+#ifndef _DMA_REMAPPING_REPORTING_TABLE_H_
+#define _DMA_REMAPPING_REPORTING_TABLE_H_
+
+#pragma pack(1)
+
+///
+/// DMA Remapping Reporting Table Revision
+///
+#define EFI_ACPI_DMAR_DESCRIPTION_TABLE_REVISION   0x01
+
+///
+/// DMA-Remapping Reporting ACPI Table definitions from section 8.1
+///@{
+#define EFI_ACPI_DMAR_TABLE_FLAGS_INTR_REMAP_SETBIT0
+#define EFI_ACPI_DMAR_TABLE_FLAGS_X2APIC_OPT_OUT_SETBIT1
+///@}
+
+///
+/// Remapping Structure Types definitions from section 8.2
+///@{
+#define EFI_ACPI_DMAR_TYPE_DRHD   0x00
+#define EFI_ACPI_DMAR_TYPE_RMRR   0x01
+#define EFI_ACPI_DMAR_TYPE_ATSR   0x02
+#define EFI_ACPI_DMAR_TYPE_RHSA   0x03
+#define EFI_ACPI_DMAR_TYPE_ANDD   0x04
+///@}
+
+///
+/// Definition for DMA Remapping Structure Header
+///
+typedef struct {
+  UINT16Type;
+  UINT16Length;
+} EFI_ACPI_DMAR_STRUCTURE_HEADER;
+
+///
+/// Definition for DMA-Remapping PCI Path
+///
+typedef struct {
+  UINT8 Device;
+  UINT8 Function;
+} EFI_ACPI_DMAR_PCI_PATH;
+
+///
+/// DMA-Remapping Device Scope Entry Structure definitions from section 8.3.1
+///@{
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_ENDPOINT   0x01
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_PCI_BRIDGE 0x02
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_IOAPIC 0x03
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_MSI_CAPABLE_HPET   0x04
+#define EFI_ACPI_DEVICE_SCOPE_ENTRY_TYPE_ACPI_NAMESPACE_DEVICE  0x05
+///@}
+
+///
+/// Device Scope Structure is defined in section 8.3.1
+///
+typedef struct {
+  UINT8 Type;
+  UINT8 Length;
+  UINT16Reserved2;
+  UINT8 EnumerationId;
+  UINT8 StartBusNumber;
+} EFI_ACPI_DMAR_DEVICE_SCOPE_STRUCTURE_HEADER;
+
+/**
+  DMA-remapping hardware unit definition (DRHD) structure is defined in
+  section 8.3. This uniquely represents a remapping hardware unit present
+  in the platform. There must be at least one instance of this structure
+  for each PCI segment in the platform.
+**/
+typedef struct {
+  EFI_ACPI_DMAR_STRUCTURE_HEADER  Header;
+  /**
+- Bit[0]: INCLUDE_PCI_ALL
+  - If Set, this remapping hardware unit has under its scope all
+PCI compatible devices in the specified Segment, except devices
+reported under the scope of other remapping hardware units for
+the same Segment.
+  - If Clear, this remapping hardware unit has under its scope only
+devices in the specified Segment that are explicitly identified
+through the DeviceScope field.
+- Bits[7:1] Reserved.
+  **/
+  UINT8   Flags;
+  UINT8   Reserved;
+  ///
+  /// The PCI Segment associated with this unit.
+  ///
+  UINT16  SegmentNumber;
+  ///
+  /// Base address of remapping hardware register-set for this unit.
+  ///
+  UINT64