Bhupesh, There were some previous discussions on this RFC that packages such as MdeModulePkg do contain many drivers that may fit into the Driver category. Today, the MdeModulePkg contains the PEI Core, DXE Core, and SMM Core, so that is why that package is in the Core category.
We will investigate if it makes sense to split up a packages like MdeModulePkg up into smaller pieces, but not as part of this RFC. That will have to be a separate RFC to propose how to do that in a backwards compatible manner. Thanks, Mike > -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Bhupesh Sharma > Sent: Saturday, May 28, 2016 11:00 AM > To: Kinney, Michael D <[email protected]>; [email protected] > Subject: Re: [edk2] [RFC V2] Proposal to organize packages into directories > > 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 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

