Hi Mike,

This looks really nice.

I have a couple of comments with regards to the "Driver" directory.

This is the proposed structure:
>   Driver
>     EmbeddedPkg
>     FatPkg
>     NetworkPkg
>     OptionRomPkg
>     Vendor

Are there any plans to make it eventually look something like (I understand 
that it won't be
easy to keep backward compatibility), but a top level structure like the 
following would
be easier to comprehend:

        Driver
                UsbPkg
                SataPkg
                SpiPkg
                NetworkPkg
                OptionRomPkg
                FatPkg
                InterruptControllerPkg
                WatchDogPkg
                RealTimeClkPkg
                UartPkg
                .. and so on..

Regards,
Bhupesh 

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of
> Kinney, Michael D
> Sent: Wednesday, May 25, 2016 9:04 PM
> 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_Workspac
> e
> 
> 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\Common
> set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Silicon\Intel
> set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Arm
> set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Common
> set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Emulated
> set PACKAGES_PATH=%PACKAGES_PATH%;%WORKSPACE%\edk2\Platform\Intel
> 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