I found it in my junk folder.

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo 
Ersek
Sent: Friday, August 14, 2015 8:20 PM
To: Ni, Ruiyu <ruiyu...@intel.com>
Cc: Justen, Jordan L <jordan.l.jus...@intel.com>; edk2-de...@ml01.01.org
Subject: Re: [edk2] [Patch 2/3] OvmfPkg: use new BDS and UiApp in MdeModulePkg

On 08/14/15 10:28, Ni, Ruiyu wrote:
> Laszlo,
> Where can I read your first 17 remarks? I didn't find it in my mail folder.

Strange; your email address <ruiyu...@intel.com> was the only one in the
To: field. (The list and Jordan were Cc'd.)

In any case, here's the link into the archive:

http://thread.gmane.org/gmane.comp.bios.edk2.devel/759/focus=1153

Thanks!
Laszlo


> 
> Thanks,
> Ray
> 
> -----Original Message-----
> From: Laszlo Ersek [mailto:ler...@redhat.com] 
> Sent: Wednesday, August 12, 2015 10:59 PM
> To: Ni, Ruiyu <ruiyu...@intel.com>
> Cc: Justen, Jordan L <jordan.l.jus...@intel.com>; edk2-de...@ml01.01.org
> Subject: Re: [edk2] [Patch 2/3] OvmfPkg: use new BDS and UiApp in MdeModulePkg
> 
> Continuing:
> 
> On 08/12/15 00:53, Laszlo Ersek wrote:
>> On 08/03/15 07:41, Ruiyu Ni wrote:
>>> Compare to the old BDS, the new BDS separates the UI part to a standalone
>>> application UiApp.
>>> QemuBootOrderLib was changed to depend on the UefiBootManagerLib.
> 
>> I've covered the following files thus far:
>>>  OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c                        
>>>                                               | 347 +++++++----
>>>  OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf                      
>>>                                               |   4 +-
>>>  OvmfPkg/OvmfPkg.dec                                                        
>>>                                               |   5 +-
>>>  OvmfPkg/OvmfPkgIa32.dsc                                                    
>>>                                               |  28 +-
>>>  OvmfPkg/OvmfPkgIa32.fdf                                                    
>>>                                               |   3 +-
>>>  OvmfPkg/OvmfPkgIa32X64.dsc                                                 
>>>                                               |  30 +-
>>>  OvmfPkg/OvmfPkgIa32X64.fdf                                                 
>>>                                               |   3 +-
>>>  OvmfPkg/OvmfPkgX64.dsc                                                     
>>>                                               |  28 +-
>>>  OvmfPkg/OvmfPkgX64.fdf                                                     
>>>                                               |   3 +-
>>
>> and made 17 remarks that should be addressed in v2.
>>
>> I will continue the review later; the rest of the patch is preserved in
>> the trailing context, so I will follow up on that. The remaining
>> diffstat is, with rename & copy detection enabled:
>>
> 
> (sorting the below)
> 
>>>  EdkCompatibilityPkg/Foundation/Library/Dxe/GraphicsLite/Graphics.c => 
>>> OvmfPkg/Library/PlatformBootManagerLib/QuietBoot.c | 559 +++++++++---------
>>>  OvmfPkg/Library/PlatformBootManagerLib/Strings.uni                         
>>>                                               | Bin 0 -> 3658 bytes
>>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/BdsPlatform.c   
>>>                                               | 611 ++++++++------------
>>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/BdsPlatform.h   
>>>                                               | 132 ++---
>>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/PlatformData.c  
>>>                                               |  18 +-
>>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/QemuKernel.c    
>>>                                               |   0
>>>  OvmfPkg/Library/{PlatformBdsLib/PlatformBdsLib.inf => 
>>> PlatformBootManagerLib/PlatformBootManagerLib.inf}                 |  20 +-
>>>  {IntelFrameworkModulePkg/Universal/BdsDxe => 
>>> OvmfPkg/Library/PlatformBootManagerLib}/MemoryTest.c                        
>>> | 227 ++++----
> 
> Let's see "MemoryTest.c" and "Strings.uni" first.
> 
>>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/MemoryTest.c 
>>> b/OvmfPkg/Library/PlatformBootManagerLib/MemoryTest.c
>>> new file mode 100644
>>> index 0000000..c9a7ecb
>>> --- /dev/null
>>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/MemoryTest.c
> 
> [contents snipped]
> 
>>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/Strings.uni 
>>> b/OvmfPkg/Library/PlatformBootManagerLib/Strings.uni
>>> new file mode 100644
>>> index 
>>> 0000000000000000000000000000000000000000..7300975620fef86ea31c556a6fa66c098e8a0538
>>> GIT binary patch
>>> literal 3658
> 
> [contents snipped]
> 
> These two files do the following:
> 
> - "MemoryTest.c" is a slightly customized copy of
>   "IntelFrameworkModulePkg/Universal/BdsDxe/MemoryTest.c". The
>   customization comprises:
> 
>   - hard-coding PcdBootlogoOnlyEnable as FALSE
>   - removing DEBUG messages
>   - open coding some HII string lookup helper functions
> 
> - "Strings.uni" provides English and French text for the following
>   string tokens:
> 
>   - STR_PERFORM_MEM_TEST,
>   - STR_MEMORY_TEST_PERCENT,
>   - STR_ESC_TO_SKIP_MEM_TEST,
>   - STR_MEM_TEST_COMPLETED,
>   - STR_NO_EXT_MEM_FOUND,
>   - STR_SYSTEM_MEM_ERROR
> 
>   All of these tokens are needed for messages printed by "MemoryTest.c".
> 
> (18) Now that I understand what these files do: please drop them both.
> There's no need for them, for the following reasons:
> 
> - They complicate OvmfPkg for no benefit.
> 
> - The memory test for a virtual machine is a joke. We don't do it in
>   ArmVirtPkg, for example.
> 
> - Dropping these files -- and therefore the BdsMemoryTest() function --
>   only causes a *minimal* visual change on the splash screen. The amount
>   of total memory won't be printed, and the (completely useless,
>   immediately "full") memory test progress bar at the bottom will
>   disappear.
> 
>   That's all fine. The amount of memory can be queried with the "memmap"
>   UEFI shell command (it prints a summary and a grand total after the
>   UEFI memmap). I verified it.
> 
> I've always wanted to get rid of this fake memory test. (Note the
> protocol provider: MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe.)
> This is a good opportunity to do it. It will simplify both this patch,
> and OvmfPkg in general.
> 
> Should we decide later that we "absolutely" need this thing, we can
> always add it as a separate step. So, thank you for being careful and
> trying to preserve this feature, but it's a mis-feature, and we should
> cut it.
> 
> So please drop these two files, plus remove the BdsMemoryTest() function
> declaration from "BdsPlatform.h", and the BdsMemoryTest() function calls
> from "BdsPlatform.c". (I'll repeat these points separately, when
> reviewing those files.)
> 
> On to the next file:
> 
>>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/QuietBoot.c 
>>> b/OvmfPkg/Library/PlatformBootManagerLib/QuietBoot.c
>>> new file mode 100644
>>> index 0000000..13c0caa
>>> --- /dev/null
>>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/QuietBoot.c
> 
> [contents snipped]
> 
> So, the git copy detector works with a numeric similarity index. For
> that reason, it so happens that git thinks this file is a modified copy
> of "EdkCompatibilityPkg/Foundation/Library/Dxe/GraphicsLite/Graphics.c".
> 
> That's clearly not the case. This copy comes from
> "IntelFrameworkModulePkg/Library/GenericBdsLib/BdsConsole.c".
> 
> Many functions from that file have been dropped. But, the following
> functions have been preserved:
> - ConvertBmpToGopBlt()
> - EnableQuietBoot()
> - DisableQuietBoot()
> 
> The only changes in them are:
> - some new #include directives
> - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdBootlogoOnlyEnable
>   hardcoded as FALSE -- this is the default value in the DEC file, and
>   OVMF doesn't change it, so it's fine
> - dropped EFIAPI calling convention specifiers -- that's fine, these
>   functions are not an external interface any longer.
> 
> I agree that these functions should be preserved (they are needed for
> putting up the TianoCore logo, and that's something we want to keep.)
> 
> It's also fine (for now) that the file has overlong lines; it's a
> (partial) copy of another file (and it is kept separate under OvmfPkg
> too), so that's okay.
> 
> However, please implement the following changes:
> 
> (19) Please create "QuietBoot.c" in a separate patch, *before* this
> patch. It doesn't have to be added to any INF file, and at that stage it
> doesn't need to be compiled.
> 
> But, it should be split out for size reasons, and you should definitely
> explain in the commit message where it comes from, and why those three
> functions are preserved.
> 
> When I run "git log -- .../QuietBoot.c" in a year or two, with
> GenericBdsLib long gone by then, I'd like to be reminded that
> QuietBoot.c comes from GenericBdsLib.
> 
> (20) I notice that you forgot to remove EFIAPI from DisableQuietBoot();
> please fix that for consistency's sake.
> 
> (21) Please make ConvertBmpToGopBlt() STATIC.
> 
> 
> The next file, "PlatformBootManagerLib.inf", is a modified copy of
> "PlatformBdsLib.inf". Therefore I'm going to replace the patch for that
> file in your email, and review the copy+diff instead:
> 
>> diff --git a/OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf 
>> b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> similarity index 71%
>> copy from OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
>> copy to OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> index ab54683..1e3c3a2 100644
>> --- a/OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>> @@ -1,7 +1,7 @@
>>  ## @file
>>  #  Platform BDS customizations library.
>>  #
>> -#  Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
>> +#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
> 
> (22) Since this is obviously derivative work, please don't replace the
> copyright notice. The previous copyright notice is actually just right.
> 
>>  #  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
>> @@ -14,23 +14,26 @@
>>
>>  [Defines]
>>    INF_VERSION                    = 0x00010005
>> -  BASE_NAME                      = PlatformBdsLib
>> -  FILE_GUID                      = F844172E-9985-44f2-BADE-0DD783462E95
>> +  BASE_NAME                      = PlatformBootManagerLib
>> +  FILE_GUID                      = FB65006C-AC9F-4992-AD80-184B2BDBBD83
>>    MODULE_TYPE                    = DXE_DRIVER
>>    VERSION_STRING                 = 1.0
>> -  LIBRARY_CLASS                  = PlatformBdsLib|DXE_DRIVER
>> +  LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER
>>
>>  #
>>  # The following information is for reference only and not required by the 
>> build tools.
>>  #
>> -#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
>> +#  VALID_ARCHITECTURES           = IA32 X64
>>  #
>>
>>  [Sources]
>>    BdsPlatform.c
>>    PlatformData.c
>>    QemuKernel.c
>> +  MemoryTest.c
> 
> (23) So "MemoryTest.c" is not necessary. (Please see (18).)
> 
>> +  QuietBoot.c
> 
> Okay.
> 
>>    BdsPlatform.h
>> +  Strings.uni
> 
> (24) "Strings.uni" should be removed as well, for the same reason.
> 
>>
>>  [Packages]
>>    MdePkg/MdePkg.dec
>> @@ -45,8 +48,8 @@ [LibraryClasses]
>>    BaseMemoryLib
>>    DebugLib
>>    PcdLib
>> -  GenericBdsLib
>>    PciLib
>> +  UefiBootManagerLib
>>    NvVarsFileLib
>>    QemuFwCfgLib
>>    LoadLinuxLib
> 
> Good.
> 
>> @@ -58,6 +61,9 @@ [Pcd]
>>    gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent
>>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashVariablesEnable
>>    gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
>> +  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
>> +  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport                   ## 
>> CONSUMES
>> +  gUefiOvmfPkgTokenSpaceGuid.PcdShellFile
>>
>>  [Pcd.IA32, Pcd.X64]
>>    gEfiMdePkgTokenSpaceGuid.PcdFSBClock
>> @@ -67,6 +73,8 @@ [Protocols]
>>    gEfiPciRootBridgeIoProtocolGuid
>>    gEfiS3SaveStateProtocolGuid                   # PROTOCOL 
>> SOMETIMES_CONSUMED
>>    gEfiDxeSmmReadyToLockProtocolGuid             # PROTOCOL 
>> SOMETIMES_PRODUCED
>> +  gEfiOEMBadgingProtocolGuid
> 
> (25) This is fine (it comes with "QuietBoot.c"), but you should preserve
> the protocol usage comment from
> "IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf", which
> is: "## SOMETIMES_CONSUMES".
> 
> ... For consistency with the rest of the INF file here, I think you
> should add "# PROTOCOL SOMETIMES_CONSUMED" actually.
> 
>> +  gEfiGenericMemTestProtocolGuid
> 
> (26) Please remove this (see (18)).
> 
>>
>>  [Guids]
>>    gEfiEndOfDxeEventGroupGuid
> 
> Next file:
> 
>>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/QemuKernel.c 
>>> b/OvmfPkg/Library/PlatformBootManagerLib/QemuKernel.c
>>> new file mode 100644
>>> index 0000000..ef728df
>>> --- /dev/null
>>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/QemuKernel.c
> 
> [contents snipped]
> 
> This file is an identical copy of
> "OvmfPkg/Library/PlatformBdsLib/QemuKernel.c". Which is alright, but:
> 
> (27) it should be split out to a standalone patch (with nothing else in
> it), and the commit message should state where it comes from, and that
> there are no changes relative to the original file.
> 
> 
> Finally, three files remain:
> 
>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/BdsPlatform.c    
>>                                              | 611 ++++++++------------
>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/BdsPlatform.h    
>>                                              | 132 ++---
>>  OvmfPkg/Library/{PlatformBdsLib => PlatformBootManagerLib}/PlatformData.c   
>>                                              |  18 +-
> 
> (28) I tried to understand the changes to these files, but there are
> simply too many. It seems to be a big bag of unrelated changes mixed
> together.
> 
> Please, split up the changes to these files to *several* patches.
> Practically, a sub-series of patches. Each patch should contain a
> minimal, logically indivisible change, and a *detailed* commit message
> as to why that change is necessary and correct.
> 
> It is clear to me that while this is being done *gradually*, in small
> steps, the new library will not compile. That's 100% fine: until you are
> done with the final changes, please simply do not flip OvmfPkg (the DEC,
> DSC, FDF files) over to the new library.
> 
> The *new* code does not have to compile (nor be in use at all) until
> everything is ready. However, please do build up the new code in small
> logical steps, so that we have precise documentation (commit messages)
> for each atomic logical change. While that is in progress, the old code
> will continue to build and work just fine. Once everything is in place,
> the switch can be flipped to the new library, the new driver, and the
> new application, in the DEC / DSC / FDF files.
> 
> As-is, these three last files are unreviewable to me.
> 
> Ultimately, this one patch should be split up to many small patches.
> Please try to advance in as small logical steps as possible, and write
> extensive commit messages for all of them.
> 
> I'm looking forward to reviewing version 2!
> 
> Thanks!
> Laszlo
> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to