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