Hey Mike, Thank you very much for your effort of introducing a new directory structure, it looks very nice so far!
Though, may I ask why IntelFspPkg and IntelFspWrapperPkg are now deprecated? If 'deprecated' does not mean that the packages are likely to be removed, but just means, if possible, developers should stop using it, then you can skip this paragraph. I don't know what Intel is sharing with its partners as I am none, but on the public site, even the Broadwell FSP is still v1.0 and there are only a few following the v1.1 specification. To me, "deprecated" sounds like the package will eventually be removed, but that maybe wouldn't be a good idea for these as, publicly, there isn't even a single FSP 2.0 release. Also, the "Compatibility" part of EdkCompatibilityPkg shouldn't be deprecated either, in my opinion, as it is a nice resource for easy-to-use backwards-compatibility. Furthermore, I recall someone already brought up that 'CorebootModulePkg' should probably not be part of the 'Core' directory as it isn't 'Platform agnostic'. Didn't you actually list them as part of 'Platform' in a reply to your V1 concept, as well as IntelFsp2Pkg and IntelFsp2WrapperPkg? The FSP packages should probably go in the same directory as UefiCpuPkg, because to me UefiCpuPkg seems to be just an Open Source part of FSP, isn't it that way? These three should, in my opinion, go to the Intel directory, as UefiCpuPkg only supports Intel code for now anyway... except if you are planning to merge ARM and other architecture's code into UefiCpuPkg in the future. Thank you for your time! Regards, Marvin. > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Kinney, Michael D > Sent: Thursday, May 26, 2016 4:04 AM > To: [email protected]; Kinney, Michael D > <[email protected]> > Subject: [edk2] [RFC V2] Proposal to organize packages into directories > > Hello, > > I have gone through all the feedback I have received and have updated this > proposal. Here is a summary of the changes in V2: > > * IntelFrameworkModulePkg -> Deprecated > * IntelFrameworkPkg -> Deprecated > * IntelFspPkg -> Deprecated > * IntelFspWrapperPkg -> Deprecated > * PerformancePkg -> Deprecated > * CorebootPayloadPkg -> Platform > * EmbeddedPkg -> Driver > * ArmPlatformPkg/ArmJunoPkg -> Silicon/Arm/ArmJunoPkg > * ArmPlatformPkg/ArmVExpressPkg -> Silicon/Arm/ ArmVExpressPkg > * Change Drivers to Driver so no top level directories are plural. > * Remove Vendor directory from Silicon and Platform to reduce directory > depth > * Add Platform/Common directory for non-vendor specific platform > packages > * Add Silicon/Common directory for non-vendor specific packages of > CPU/Chipset/SoC drivers > * Keep Vendor directory in Driver. > Non-vendor specific packages of drivers are flat just below Driver. > Provides area to migrate non-vendor specific drivers from Core over time > > Please let me know if I missed any feedback and if there is new feedback on > this revised proposal for the directory structure or the directory names. > > <proposal> > > # EDK II - Proposal to organize packages into directories > > There have been some discussions about organizing packages into > directories. > Below is a proposal for a top level directory structure and a first pass > mapping > of the packages from edk2/master. Where applicable, vendor specific > directories can be added. > > The PACKAGES_PATH feature documented in the link below is used to > support this proposed directory structure with no source file changes. An > example of setting PACKAGES_PATH in a windows environment is also > shown below and I have verified that platforms can be built using this > proposal. > > https://github.com/tianocore/tianocore.github.io/wiki/Multiple_Workspace > > Please provide feedback on the proposal (for, against, alternate proposal), > the number/type of top level directories, and the top level directory names. > > I have setup a branch with this directory structure in this proposal to help > with the review. I have verified that I can build some platforms in this > branch > using the PACKAGES_PATH settings shown below. > > https://github.com/mdkinney/edk2/tree/NewDirStruct > > > # Top Level Directory Structure (Listed Alphabetically) ``` > edk2 > Application Applications and application support libraries > BaseTools EDK II build tools/scripts > Conf EDK II build configuration files > Core Platform agnostic packages for core FW services > Deprecated Packages that will be removed from edk2/master soon > Driver EDK II Drivers (no platform assumptions) > <Package1> Non-Vendor specific EDK II drivers > <Package2> Non-Vendor specific EDK II drivers > . . . > Vendor Vendor specific EDK II drivers > <VendorA> > <VendorB> > Platform Platforms used to validate edk2/master features > Common Non-vendor specific platform packages > Emulated Non-vendor specific emulated platform packages > Arm ARM specific platform packages > Intel Intel specific platform packages > <VendorM> <VendorM> specific platform packages > <VendorN> <VendorN> specific platform packages > Silicon CPU/Chipset/SoC packages > Common Non-vendor specific CPU/Chipset/SoC drivers > Arm Arm specific CPU/Chipset/SoC drivers > Intel Intel specific CPU/Chipset/SoC drivers > <VendorX> <VendorX> specific CPU/Chipset/SoC drivers > <VendorY> <VendorY> specific CPU/Chipset/SoC drivers > ``` > > # Mapping packages from edk2/master into proposed directory structure ``` > edk2 > Application > AppPkg > ShellPkg > StdLib > StdLibPrivateInternalFiles > Core > CorebootModulePkg > CryptoPkg > IntelFsp2Pkg > IntelFsp2WrapperPkg > MdeModulePkg > MdePkg > SecurityPkg > SourceLevelDebugPkg > Deprecated > EdkCompatibilityPkg > EdkShellBinPkg > EdkShellPkg > FatBinPkg > IntelFrameworkModulePkg > IntelFrameworkPkg > IntelFspPkg > IntelFspWrapperPkg > PerformancePkg > ShellBinPkg > Driver > EmbeddedPkg > FatPkg > NetworkPkg > OptionRomPkg > Vendor > Platform > Common > DuetPkg > OvmfPkg > CorebootPayloadPkg > Emulated > EmulatorPkg > Nt32Pkg > UnixPkg > Arm > ArmPlatformPkg > ArmVirtPkg > BeagleBoardPkg > Intel > QuarkPlatformPkg > Vlv2TbltDevicePkg > Silicon > Common > PcAtChipsetPkg > UefiCpuPkg > Arm > ArmPkg > ArmJunoPkg > ArmVExpressPkg > Omap35xxPkg > Intel > QuarkSocPkg > Vlv2DeviceRefCodePkg > ``` > > # Setting PACKAGES_PATH to support builds using proposed directory > structure ``` set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Core > set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Driver > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Silicon\Arm > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Silicon\Com > mon > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Silicon\Intel > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Ar > m > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Co > mmon > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Em > ulated > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Int > el > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Application > set > PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Deprecated > set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2 > ``` > > </proposal> > > Best regards, > > Mike > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

