Laszlo, Thanks for your detailed educations:) For your suggestion (6), can you check this url (https://github.com/niruiyu/edk2/compare/master...niruiyu:new_bds)? Is this what you want me to do? What I did is to firstly fork a edk2 in my personal git repository and then clone that to my local machine. Then commit all my patches to that and push to github.
Thanks, Ray -----Original Message----- From: Laszlo Ersek [mailto:ler...@redhat.com] Sent: Wednesday, April 22, 2015 4:42 PM To: Ni, Ruiyu Cc: edk2-devel list; Ard Biesheuvel Subject: Re: [edk2] [Patch V2 00/15] Add pure UEFI Boot Manager On 04/22/15 07:37, Ruiyu Ni wrote: > The patches add a pure UEFI Boot Manager to MdeModulePkg. > Platform can link the BdsDxe driver to NULL class library LegacyBootManagerLib > to provide legacy boot support. > A very simple boot manager menu BootManagerMenuApp is provided. > DriverHealthManagerDxe provides the generic driver health checking logic. > PCD moving to MdePkg is because these PCDs can map to UEFI spec defined NV > variables. > PCD moving to MdeModulePkg is because these PCDs are implementation specific. > I tried to fix all the PCD references to resolve the build failure. > > Ruiyu Ni (15): > Move PCD from IntelFrameworkModulePkg to MdePkg and MdeModulePkg > IntelFrameworkModulePkg: Fix BdsDxe build failure due to PCD movement. > Nt32Pkg: Fix build failure due to PCD movement. > EdkCompatibilityPkg: Fix build failure due to PCD movement. > DuetPkg: Fix build failure due to PCD movement. > OvmfPkg: Fix build failure due to PCD movement. > EmulatorPkg: Fix build failure due to PCD movement. > ArmPlatformPkg: Fix build failure due to PCD movement. > CorebootPayloadPkg: Fix build failure due to PCD movement. > Vlv2TbltDevicePkg: Fix build failure due to PCD movement. > MdeModulePkg: Add UefiBootManagerLib > MdeModulePkg: Add BdsDxe driver and PlatformBootManagerNull library. > MdeModulePkg: Add BootManagerMenuApp. > IntelFrameworkModulePkg: Add LegacyBootManagerLib. > MdeModulePkg: Add DriverHealthManagerDxe driver. > > .../ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | 6 +- > .../ArmVirtualizationPkg/ArmVirtualizationXen.dsc | 2 +- > .../PlatformIntelBdsLib/PlatformIntelBdsLib.inf | 2 +- > .../Library/PlatformBdsLib/PlatformBdsLib.inf | 2 +- > DuetPkg/Library/DuetBdsLib/PlatformBds.inf | 14 +- > .../FrameworkHiiOnUefiHiiThunk.inf | 4 +- > EmulatorPkg/Library/EmuBdsLib/EmuBdsLib.inf | 4 +- > .../IntelFrameworkModulePkg.dec | 35 - > .../IntelFrameworkModulePkg.dsc | 3 +- > .../InternalLegacyBootManagerLib.h | 66 + > .../LegacyBootManagerLib/LegacyBootManagerLib.c | 1578 +++++++++++ > .../LegacyBootManagerLib/LegacyBootManagerLib.inf | 65 + > .../Universal/BdsDxe/BdsDxe.inf | 14 +- > .../BootManagerMenuApp/BootManagerMenu.c | 1041 +++++++ > .../BootManagerMenuApp/BootManagerMenu.h | 60 + > .../BootManagerMenuApp/BootManagerMenuApp.inf | 60 + > .../BootManagerMenuApp/BootManagerMenuStrings.uni | Bin 0 -> 2756 bytes > .../Include/Library/PlatformBootManagerLib.h | 62 + > MdeModulePkg/Include/Library/UefiBootManagerLib.h | 671 +++++ > MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf | 4 +- > .../PlatformBootManager.c | 67 + > .../PlatformBootManagerLibNull.inf | 36 + > MdeModulePkg/Library/UefiBootManagerLib/BdsBoot.c | 2858 > ++++++++++++++++++++ > .../Library/UefiBootManagerLib/BdsConnect.c | 322 +++ > .../Library/UefiBootManagerLib/BdsConsole.c | 810 ++++++ > .../Library/UefiBootManagerLib/BdsHotkey.c | 1104 ++++++++ > .../Library/UefiBootManagerLib/BdsLoadOption.c | 982 +++++++ > MdeModulePkg/Library/UefiBootManagerLib/BdsMisc.c | 507 ++++ > .../Library/UefiBootManagerLib/InternalBdsLib.h | 547 ++++ > .../Library/UefiBootManagerLib/Performance.c | 358 +++ > .../UefiBootManagerLib/UefiBootManagerLib.inf | 108 + > MdeModulePkg/MdeModulePkg.dec | 40 +- > MdeModulePkg/MdeModulePkg.dsc | 8 + > MdeModulePkg/Universal/BdsDxe/Bds.h | 103 + > MdeModulePkg/Universal/BdsDxe/BdsDxe.inf | 101 + > MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 1062 ++++++++ > MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c | 48 + > MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.h | 32 + > MdeModulePkg/Universal/BdsDxe/Language.c | 202 ++ > MdeModulePkg/Universal/BdsDxe/Language.h | 30 + > .../DriverHealthConfigureVfr.Vfr | 39 + > .../DriverHealthManagerDxe.c | 990 +++++++ > .../DriverHealthManagerDxe.h | 133 + > .../DriverHealthManagerDxe.inf | 74 + > .../DriverHealthManagerStrings.uni | Bin 0 -> 4140 bytes > .../DriverHealthManagerVfr.Vfr | 38 + > .../DriverHealthManagerVfr.h | 32 + > MdePkg/MdePkg.dec | 11 + > Nt32Pkg/Library/Nt32BdsLib/Nt32BdsLib.inf | 4 +- > Nt32Pkg/Nt32Pkg.dsc | 8 +- > .../Library/QemuBootOrderLib/QemuBootOrderLib.inf | 4 +- > OvmfPkg/OvmfPkgIa32.dsc | 8 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 8 +- > OvmfPkg/OvmfPkgX64.dsc | 8 +- > .../Library/PlatformBdsLib/PlatformBdsLib.inf | 12 +- > Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc | 14 +- > Vlv2TbltDevicePkg/PlatformPkgIA32.dsc | 14 +- > Vlv2TbltDevicePkg/PlatformPkgX64.dsc | 14 +- > 58 files changed, 14319 insertions(+), 110 deletions(-) This looks awesome. Thank you for using git! Here's some further hints for your consideration -- use whatever you like from them; I'll just put them out here. (1) When formatting the patches, please consider adding --stat=1000 --stat-graph-width=20 to the git-format-patch command line. This will make sure that all of the pathnames in the diffstats are displayed in full length (but not longer than necessary), and the plus/minus signs to the right will still remain at a reasonable width. (2) When posting v2, you can incorporate earlier Reviewed-by tags from the mailing list. Just do a "git rebase -i", set "reword" for the patches in question, and copy the Reviewed-by tag from the appropriate email to the end of the commit message. (Assuming you didn't change the patch for v2 intrusively, which would warrant a new review.) (3) In .git/config for your repo, you can set [commit] template = /.../tianocore.template [format] signoff = false and the tianocore.template can have the following contents: -------v----------- Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu...@intel.com> -------^----------- Two consequences: (a) "git commit" will prepare the Contributed-under tag automatically for the commit messages (b) the Signed-off-by tag will be added to the commit messages when you *commit* with git-commit, not when you *format* the patches with git-format-patches. This is useful because it will let you add the Reviewed-by tags from others *below* the Signed-off-by tag (see (2)), reflecting chronological order. (Otherwise, if the Signed-off-by tag is not part of the commit message, then you can't add the Reviewed-by tags below it during a rebase, and git-format-patch will place your Signed-off-by at the bottom, underneath the Reviewed-by tags, which doesn't look that nice.) (4) When posting a new version of the patchset, it is useful to point out differences with v1. It can be done in the cover letter, but it's also possible to list the v1->v2 changes per-patch: (a) add to .git/config: [notes] rewriteRef = refs/notes/commits (b) use git notes edit COMMIT_ID to attach such notes to commits (they will not be part of the commit messages, they won't change history) (c) pass "--notes" to "git-format patch". Then notes added with (b) will become part of the emails (in such a section under the commit messages that humans can read them, but "git am" will skip them -- as I said the notes are not part of the commit messages). (d) "git rebase" combines notes when squashing commits, and preserves notes when just picking. (e) "git log", "git show", and "gitk" should automatically display the notes as well. "gitk" even places a small yellow box near the subject line, to signal that the commit has an attached note. (5) Consider passing -O/.../diff-order.txt to "git-format patch", with "diff-order.txt" being: ------------- *.inf *.h *.vfr *.c ------------- This makes the hunks for files higher up the list appear earlier in the patch emails. Looking at INF and header changes earlier than C file changes usually helps reviewers understand the modifications -- for example if you introduce a new field in a struct, it's usually easier to see the struct change first and the referring new code second than the other way around. (6) Consider cloning edk2 on github.com, and whenever you post a set, please push that to your github clone, and reference the new branch in the cover letter. This way reviewers can easily fetch the series, for testing or just running git commands against it. As I said, please feel free to ignore any and all of this; it's just stuff I'd find helpful, going forward. (Seeing that you're interested in using git.) Thanks! Laszlo > create mode 100644 > IntelFrameworkModulePkg/Library/LegacyBootManagerLib/InternalLegacyBootManagerLib.h > create mode 100644 > IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.c > create mode 100644 > IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf > create mode 100644 > MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.c > create mode 100644 > MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.h > create mode 100644 > MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf > create mode 100644 > MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuStrings.uni > create mode 100644 MdeModulePkg/Include/Library/PlatformBootManagerLib.h > create mode 100644 MdeModulePkg/Include/Library/UefiBootManagerLib.h > create mode 100644 > MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManager.c > create mode 100644 > MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsBoot.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsConnect.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsConsole.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsHotkey.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsLoadOption.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsMisc.c > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/InternalBdsLib.h > create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/Performance.c > create mode 100644 > MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf > create mode 100644 MdeModulePkg/Universal/BdsDxe/Bds.h > create mode 100644 MdeModulePkg/Universal/BdsDxe/BdsDxe.inf > create mode 100644 MdeModulePkg/Universal/BdsDxe/BdsEntry.c > create mode 100644 MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c > create mode 100644 MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.h > create mode 100644 MdeModulePkg/Universal/BdsDxe/Language.c > create mode 100644 MdeModulePkg/Universal/BdsDxe/Language.h > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthConfigureVfr.Vfr > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerStrings.uni > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.Vfr > create mode 100644 > MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h > ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel