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

Reply via email to