On 2015-04-14 09:49:00, Kinney, Michael D wrote:
>    Please review the attached patch that adds Quark SoC compatibility to the
>    BaseCacheMaintenanceLib in the MdePkg.
> 
>     
> 
>    Some EDK II libraries assume capabilities that are not available on Quark
>    SoC.  With these changes, applications and drivers built for IA32 are
>    compatible with Quark SoC.
> 
>    These patches do not modify X64 specific sources or SSE/SSE2 specific
>    sources.
> 
>     
> 
>    Change Summary:
> 
>    ===============
> 
>    1) Remove use of CMOVx from IA32 assembly. This matches compiler flags for
>    all supported C compilers.
> 
>    2) Use CPUID Leaf 01 to detect CPU capabilities for CLFLUSH, Cache Line
>    Size, FXSAVE/FXTSTOR, CR4.DE, and CR4.OSFXR

Maybe we should have a Dxe library version that can only call cpuid
once in a constructor? Or, would it make sense to have a Quark feature
flag?

Another case to think about for cflush is that wbinvd can also make
sense if the memory range size is bigger than the actual cache size.
(Maybe not too likely of a case for firmware to encounter. :)

This patch only has changes from item #2. I don't think it makes sense
to have all 4 items listed in the commit message for this patch.

Rather than fixing all 4 items in each module separately, I think it
would be better to fix MdePkg for item #1 in all MdePkg modules in a
single patch. (And so on for items 2, 3 and 4.)

I think if someone encounters an issue from these changes, they might
want to use a bisect to track down when the the issue was introduced.
If they encounter a patch that is doing up to 4 different things, they
will then have to split it apart to find out what the issue is.

This would also allow you to have a more accurate commit message,
because it will be just making 1 type of change to MdePkg.

-Jordan

>    3) Use CPUID Family/Model/Stepping to detect support for
>    MSR_IA32_APIC_BASE_ADDRESS.  Quark SoC does not support this MSR.
> 
>    4) Add stride PCD to MdeModulePkg to support 16550 UARTs with a register
>    stride that is not 1 byte.  Quark SoC uses a stride of 4 bytes.
> 
>    Contributed-under: TianoCore Contribution Agreement 1.0
>    Signed-off by: Michael Kinney <michael.d.kin...@intel.com>
> 
>     

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to